Certains domaines fonctionnels nécessitent d'avoir du traitement en temps réel, comme le domaine bancaire, le domaine du jeu, l'aviation, etc.

On peut retrouver dans tous ces domaines le langage Java. Malheureusement, il souffre de certains maux qui ont un impact directement sur les temps de réponse.
Bien entendu, ces problématiques de temps de réponse sont vraiment liés à ces domaines fonctionnels très exigeants.

L'origine de ces problèmes est liée en général aux points suivants :

– Garbage collector, lorsqu'il "stoppe le monde" ,
– des temps de réponse liés au JIT,
– l'initialisation des classes,
– dans le cadre des collections, le redimensionnement interne.
– etc

Je le répète, les points soulevés ci-dessus sont critiques dans certains domaines fonctionnels exigeants.

Face à ces problématiques, IBM et Sun ont développé respectivement IBM Websphere Real Time et Sun Mackinac. Ces deux solutions sont payantes. En face, Jean-Marie Dautelle a développé une librairie gratuite nommée : Javolution.

L'objectif de cette librairie est de permettre des temps d'exécution beaucoup plus rapides et prévisibles.
Les points suivants vous donnent une idée des possibilités de Javolution.

Elle permet :
– d'exploiter plusieurs coeurs sur un processeur.
– de réduire les temps d'exécution à l'aide d'un jeu d'annotations
– l'intégration native avec un écosystème OSGi.
– collections : support de Map-Reduce, parallélisme, views (~Stream dans Java8).
– manipulation des collections.
– etc…

Cette liste n'est pas exhaustive. L'ensemble des fonctionnalités est décrit dans le lien attaché à ce post.

Il est intéressant de souligner la légèreté du jar de la librairie : ~400Ko
Javolution supporte Maven, et est disponible sur les repositories publiques.

L'ayant découvert que très récemment au travers d'une discussion technique, Je n'ai pas eu le temps de la mettre en oeuvre. je vous recommande de parcourir le site ainsi que l'ensemble des liens disponibles sur le site attaché à l'article.

#java #real #time #api