Multitâche sans thread 5/5 – async/await


Programmation réactive

Après avoir étudié quatre approches permettant de faire du multitâche sans threads, nous allons voir la dernière, probablement la plus sympathique pour le développeur. C’est une évolution syntaxique des langages permettant de porter le principe d’un pool de hard-threads unique à tout un programme, et donc de porter dans la syntaxe de quoi programmer facilement avec le modèle réactif.
Lire la suite

Vivement 2015 ! OCTO vous souhaite une excellente année

Les Octos vous souhaitent une excellente année 2015 !  Découvrez notre carte de voeux avec le traditionnel dessin de Vuillemin dont le thème choisi cette année est… la digitalisation !

Voeux-2015-Vuillemin (1)L’équipe profite de cet article pour se prêter au jeu de la retrospective OCTO 2014. Quels ont été les faits marquants ? les évènements phare et fiertés des Octos cette année ? Voici notre sélection ! Lire la suite

Comment j’ai battu CORBA

Dans le domaine de l’intégration, il existe encore des cas d’usages où la technologie CORBA restait souveraine par manque de challengers suffisamment performants. Je pense à des services interopérables avec plusieurs milliers d’appels synchrones par seconde et une latence en dessous des 5 millisecondes.

Avec mon client, j’ai fait le pari que je pouvais atteindre le même niveau de performance avec des technologies JAVA en utilisant le standard JSON sur HTTP (REST) …

… mais il ne m’a pas cru. (Sic)

Disclaimer : CORBA est une technologie riche pouvant mettant en œuvre des objets distribués avec une gestion de callbacks mais aussi des transactions distribuées. Le cas présenté ici se « limite » à l’appel de méthodes stateless comme on le ferait à la manière d’un web service ou de systèmes dits « Remote Procedure Call » (RPC) et ne représente pas donc la totalité des possibilité offertes.

Lire la suite

PerfUG : Phaser et StampedLock Concurrency Synchronizers

Phaser est une barrière de synchronisation Java 7 utilisée pour orchestrer, entre plusieurs threads, un lot de tâches répétitives. Le système offre une interface plus simple à utiliser que son prédécesseur CountDownLatch.

StampedLock est un mécanisme de verrou apparu en Java 8 qui peut s’apparenter à un ReadWriteLock avec de meilleures performances et un système de lecture optimiste inédit.

 

Avec Java 7, l’introduction de l’API Phaser offrait un usage plus flexible des existants CountDownLatch et CyclicBarrier.

Au cours de cette présentation, nous vous exposerons un certain nombre d’exemples d’utilisation de Phaser dans la communication entre Threads et en quoi cela pourra vous simplifier le code ! En Java 8, nous pouvons profiter de la nouvelle construction StampedLock. Ce nouveau type de verrou permet l’accès concurrent à plusieurs lecteurs de manière plus efficiente qu’un ReadWriteLock grâce à son « mode » optimiste. A travers la présentation, nous vous montrerons comment l’utiliser et dans quels patterns communs ces constructions peuvent s’inscrire.

 

Heinz Kabutz est auteur du Java Specialists Newsletter où il expose ses recherches autour de nouvelles constructions Java. Il étudie régulièrement les techniques d’écriture de code Java optimisé pour la concurrence et de meilleure qualité. Il publie également des cours Java, plus particulièrement dans le domaine de la programmation concurrente.

 

La session aura lieu dans les locaux d’OCTO Technology.
Inscriptions et informations sur Meetup. Cette session sera suivie d’un pot dans les locaux d’Octo, puis d’un restaurant aux frais des convives (une invitation Meetup pour le restaurant suivra).

Aerospike : du Clé-Valeur sous stéroïdes

Aerospike est un Key-Value store haute performance édité par la société du même nom, anciennement CitrusLeaf.

Quelques chiffres pour illustrer l’aspect haute performance : on parle ici de plusieurs centaines de milliers à un million d’opérations par seconde par serveur (sur une instance AWS C3.8XL à $1.308 /h) avec 99,9% des requêtes ayant une latence inférieure à 5 millisecondes.

Aerospike (la société) a “Open Sourcé” en juin dernier le fruit de 5 ans de travail afin de s’ancrer dans le panorama des solutions de stockage NoSQL.

En quelques mots, Aerospike est comparable à un Redis mais avec une architecture distribuée shared nothing proposant sharding et réplication permettant ainsi une scalabilité linéaire.

Il est à noter qu’Aerospike est conçu et implémenté pour tirer partie d’un stockage Flash (SSD) en accédant directement aux disk blocks.

Dans les fonctionnalités intéressantes que nous allons détailler par la suite, nous pouvons nommer :

  • Multi-DataCenter
  • Rack awareness
  • Index secondaires
  • TTL
  • User Defined Functions (MapReduce, …)

Lire la suite

Frameworks front-end, talking about a revolution?

DotJS, meetup majeur du monde Javascript a eu lieu en novembre dernier à Paris et nous avons eu droit à un florilège de ce qui se fait de mieux en qualité de speakers.

L’ensemble des sujets abordés étaient globalement intéressant même s’il est à regretter l’absence de mise en application pratique des différents sujets qui aurait permis de quitter la conférence avec des idées concrètes à utiliser sur ses propres projets.dotJS

Le fait le plus marquant fût pour ma part  l’absence d’AngularJS, sujet jamais abordé ni même effleuré. Quand on a passé ses deux dernières années à s’y intéresser, il y a de quoi être dubitatif.
Comment le framework le plus tendance du marché a t-il pu être snobé de la conférence, encore plus au moment où son actualité est des plus débattues dans le monde du développement web?

On pourrait penser à une omerta technologique par la communauté, ayant eu pour mot d’ordre de ne pas parler de ce qui est populaire… Mais essayons de rester rationnel!

Lire la suite

Software Craftsmanship : une culture à transmettre

Software CraftsmanshipLe manifeste du mouvement Software Craftsmanship est sous-titré par Raising the bar, élever le niveau.

 

Nous pensons effectivement que c’est l’enjeu principal derrière les motivations de ce mouvement : pour créer des produits qui “déchirent”, il faut s’appuyer sur les personnes qui savent le faire, qui aiment le faire, et qui veulent toujours apprendre à le faire mieux.

Il ne s’agit pas que de pratiques à mettre en oeuvre : c’est une véritable culture du développement, qui implique des changements, dans les mentalités, dans le fonctionnement des équipes et de l’entreprise.

Mais une culture ça ne s’impose pas : comment faire entrer les valeurs du Craftsmanship dans l’entreprise afin qu’elles deviennent le standard et non l’exception ?

Lire la suite

Designer une API REST

La période de fêtes approchant à grands pas, nous vous proposons une “Quick Reference Card” sur le design des API dont l’objectif est de synthétiser les bonnes pratiques de conception et de design d’API REST.
➡ Télécharger l’API Design – Quick Reference Card
OCTO – RESTful API Design

Si vous avez plus de temps, le présent article reprend – point par point – les éléments de la « carte de référence », en étayant et justifiant les propositions.

Bonne lecture!

Lire la suite

Multitâche sans thread 4/5 – Pipeline/composition


Programmation réactive

Le modèle réactif propose de n’utiliser que des hard-threads (exploitant les cœurs  des processeurs) à la place des soft-threads (simulant des traitements parallèles). Nous avons regardé comment les langages de développement évoluent pour proposer différents modèles permettant de proposer des traitements concurrents, sans pour autant utiliser des soft-threads.

Nous continuons notre exploration avec l’approche que l’on peut appeler pipeline ou composition.
Lire la suite