Bonjour,
Dans le cadre d'un projet personnel, je me suis lancé dans le développement d'une librairie réseau permettant facilement d'échanger des objets java.
C'est ainsi qu'est né ObjectServer, se voulant simple et efficace, ce projet est open-source (LGPL) et accessible à l'adresse http://code.google.com/p/objectserver/
Une documentation est accessible au travers de la Javadoc.
Je suis conscient que ce projet entre en concurrence avec des projets matures comme Mina.
Cependant étant plus ciblé, cela permet de posséder une API plus simple tout en gardant l'efficacité demandé (basé sur nio).
Le planning de la version 2 est déja déterminé (du moins en terme de fonctionnalités) est peut être consulté Plan de la version 2.
Cette version 2 ira plus loin en permettant nottament de sérialiser les objets en flux XML.
La librairie est disponible sous deux versions compilées diffèrentes ( Java 5.0 et Java 6.0 )
Voila, je suis ouvert à vos remarques et espère que ce projet saura être utile à certains d'entres vous.
Présentation officielle
L'API ObjectServer permet d'échanger des objets Java entre plusieurs applications.
L'architecture est basée sur la nouvelle librairie d'entrées/sorties (nio) de Java permettant ainsi une meilleure montée en charge (scalable) que les systèmes utilisant l'api io standard.
Fonctionnalités
- Entrées / Sorties asynchrones avec la librairie (nio)
- Echange d'objets java sur des connections TCP/IP (mécanisme de sérialisation et dé-sérialisation)
- Possibilité d'activer des communications sécurisées avec le protocole SSL
- Possibilité de compresser les données transmises sur le réseau avec l'algorithme GZip
- Instrumentation possible grâce au support de JMX
- Empreinte mémoire restreinte, pas d'allocation mémoire spécifique à une connection (sauf pour les écouteurs)
- Gestion fine des threads (nombre de threads indépendant du nombre de connections)
- Mise en queue des demandes d'écriture (pas de rétention lors d'une écriture)
- Empilable, plusieurs services peuvent cohabiter au sein de la même JVM et se partager l'accés aux threads d'executions.
Organisation du projet (à titre d'informations)
- Hébergement sur Google Code
- Gestionnaire de sources subversion (utilisation des branches)
- Intégration continue pour le déploiement sur Google Code (Continuum)
- Tests unitaires de l'ensemble de la librairie avec JUnit
- Développement sous Netbeans 6.0
Sébastien.
Partager