From: Stefane Fermigier <sf@fermigier.com> To: lwn@lwn.net Subject: ObjectWeb conference Date: Tue, 30 Oct 2001 21:46:42 +0100 Hi, I was this morning at the first ObjectWeb conference. I think it is a very promising project in the open source middleware field. I took the following notes. Unfortunately for your readers, they are in french. S. Conférence ObjectWeb, ENST, 30/10/2001 ====================================== Introduction (Jean-Bernard Stefani, INRIA) ------------------------------------------ Initiative logiciel libre / open source (GPL/LGPL) qui a pour objectif de construire du middleware ("intergiciel" en québequois). ObjectWeb veut être à l'intergiciel ce qu'Apache est au serveur Web. ObjectWeb est actuellement une structure informelle, qui va bientôt se transformer en consortium international abrité par l'INRIA. Création fin 1999 par INRIA, FT R&D et BullSoft sur une base de code: Jonathan + JOnAS. Intégration de nouveaux composants en 2000 (Joram, RMIJdbc) et de nouveaux partenaires (Libelis, Lutris...). Le projet est motivé par l'intérêt que représente le logiciel libre pour les logiciels d'infrastructure car ces logiciels ont pour vocation d'être standardisés et largement diffusés. Il y a aussi des impératifs philosophiques liés au libre accès à ce type de code. On ne dispose pas encore à l'heure actuelle d'un ensemble suffisamment complet et de qualité suffisante en matière d'intergiciel. Il y a donc deux types d'objectifs: techniques et communautaires. Pour ces derniers, il s'agit de construire une communauté vivante, pérenne, dynamique, similaire à la FSF ou l'ASF. Les objectifs techniques sont de suivre les spécifications les plus ouvertes actuellement dans le domaines, dont notamment CORBA (CORBA 3.0, CCM), Java (EJB 2.0, JDBC, JDO), LDAPWeb Services (HTTP, SOAP, WSDL...). Il s'agit de développer une infrastructure logicielle répartie sous forme de composants, afin de permettre d'administrer et de faire évoluer au cours du temps cette infrastructure. Ceci n'est pas encore universellement établi, il y a donc un réel défi technique. La couverture fonctionnelle d'ObjectWeb doit inclure notamment des fonctions de sécurité et de haute disponibilité / tolérance aux pannes. La base de code doit être suffisamment robuste pour permettre des développements de qualité industrielle, donc il faut mettre en oeuvre des procédure de contrôle de la qualité. Concernant la communauté, il faut s'attacher notamment aux questions de formation (ObjectWeb peut servir de support pour des cours sur les intergiciels dans les universités nationales et européennes). ObjectWeb doit fédérer un certain nombre d'efforts (soutien du RNRT et du RNTL, recherche de financements de la CE pour attirer d'autres partenaires). Il faut aussi des partenaires industriels qui vont utiliser et accompagner le développement de la base de code d'ObjectWeb: c'est ce qui s'est passé cette année avec plusieurs startups qui ont basé tout ou partie de leur activité autour de l'exploitation de la base de code d'ObjectWeb. Plus généralement, il y a un travail d'évangélisation afin de faire passer l'intérêt du logiciel libre et de la base de code ObjectWeb. ObjectWeb est structuré par projets: chaque projet identifie le développement d'un composant particulier, il est dirigé par une chef de projet. Ce dernier est architecte en chef du composant, responsable des livraisons, et il anime les développeurs. Le consortium ObjectWeb va être composé de membres qui vont élire un conseil d'administration. Ce dernier aura pour rôle de superviser la stratégie d'ensemble du consortium et d'élire un comité exécutif qui aura pour charge d'animer et de gérer le consortium au quotidien. Il y a aussi un collège d'architectes, qui sera l'organe de décision technique, qui va décider notamment le lancement de nouveaux projets. Il y a actuellement 7 membres de ce collège, les 7 architectes des 7 composants actuels d'ObjectWeb. En conclusion: il s'agit d'une initiative ambitieuse mais opportune. Si on croit au logiciel libre, il faut compléter l'offre actuelle Linux/Apache avec un intergiciel libre. "It's fun: join us!" <contact@objectweb.org> Question: dimension européenne ? lien avec le W3C ? Réponse: Lutris est partenaire d'ObjectWeb. Il y a également des contacts avec des universités en Europe. Le consortium va tenter de monter un projet financé par la CE. En Allemagne, il y a plusieurs initiatives dans le domaine du LL, notamment autour de MICO et JacORB qui pourraient être intéressantes pour ObjectWeb. Question: position par rapport avec JBoss ? Réponse: JBoss est le concurent le plus direct d'ObjectWeb. Il y a eu des discussion avec JBoss, mais pas de rapprochement prévu. Les ambitions sont différente: ObjectWeb n'a pas pour ambition, comme JBoss, d'être seulement un serveur d'applications. Question: quel est l'impact de la dépendance / Java ? Réponse: l'architecture est indépendante de Java, mais le code est développé en Java. On pourrait la développer dans un autre langage (C#!). Point de vue personnel: Java est un bon langage, meilleur que C++. Il y a un inconvénient lié aux éléments de propriété intellectuel que SUN parsème dans ses spécifications. Il y a un débat qui fait rage actuellement, qui n'a pas encore connu sa conclusion. ObjectWeb considère que les spécifications de SUN permettent une implémentation "cleanroom". Mais on ne pourra pas utiliser la marque déposée "EJB" ou "J2EE" car ça coûte très cher. J'ai personnellement (mais cela n'engage que mois) d'énormes préventions contre le "SUN community process" qui est un caricature de processus ouvert. Question: comment suivre le foisonnement des standards (Java, CORBA, W3C, Microsoft...) sans être un géant de l'informatique? Réponse: je pense qu'on peut. Sinon, on a un gros problème. L'évolution des infrastructures ne peut pas être dominée par seulement trois entreprises mondiales. Mais la communauté du libre a montré qu'elle était capable de développer des bases de code avec des couvertures fonctionnelles très larges (ex: Linux). Utilisations industrielles d'ObjectWeb (Gérard Vandôme, INRIA) -------------------------------------------------------------- Le développement d'ObjectWeb est financé en partie par les projets: - PEPITA; - PAROL (platforme d'applications réparties à objets libres): consolidation du code d'ObjectWeb et développement de la communauté; - IMPACT (infrastructure et middleware pour plates-formes à composants techniques), financé par le RNTL: extension du projet ObjectWeb; Liens également avec: RNTL ARCAD, PHENIX, MARVEL... Les utilisateurs industriels ont besoin de l'open source avec de la qualité industrielle. Cela implique du code, des tests et de la documentation. JOnAS a des centaines de développeurs et des milliers d'utilisateurs. Il est embarqué déja dans de nombreuses applications. Ex d'applications industrielles: - FT R&D: utilisation dans des projets internes comme CORSICA, PEPITA, Continuum, Athos, Ping, Sidrah, Ambiance. - Bull/Evidian: offre de support depuis mai 2001. - Bull infrastructure et systèmes: offre Linux + JOnAS. - Schlumberger: CP8, serveur GSM (?) avec Jonas, Apache. - Startups: Expelog (Expershop), Kelua (outils d'optimisation basés sur Jonathan), Libelis (serveur J2EE Orcas qui intègre JOnAS, Apache/Tomcat et une base de données objets, avec offre produit et services), Lutris, Scalagent (en cours de création). Exploitations internes: - Deutsche Post (application opérationnelle avec 19 serveurs) - E-fb2: ReponseNET - Compuware - High Sierra - TeraPort - Venetica - Ferma (intégrateur pour les telcos) - Kovair: offre de "strategic relationship management", utilise JOnAS depuis 1999. Ils sont très contents (de la stabilité et des performances: JOnAS est 2 à 5 fois plus rapide que JBoss). Utilisent JOnAS avec Jetty. - Intelligent Computer Systems (ICS): utilisent JOnAS pour du e-commerce (plusieurs applications opérationnelles). "JOnAS est aussi rapide sinon plus que BEA. Le bénéfice en terme de marge financière est énorme! On ne comprend pas pourquoi JOnAS reste confidentiel alors que c'est le meilleur serveur d'application du marché." Jonathan (Bruno Dumant, Kelua) ------------------------------ Il s'agit de permettre de construire des ORBs spécifiques à des problématiques courantes dans les télécoms: il faut permettre de relier et développer des services sur des systèmes de taille et de nature très diverses. Il faut supporter des protocoles variés, pas seulement IIOP, et supporter aussi le temps-réel. Il fallait développer une plateforme permettant de ne pas imposer des câblages trop spécifiques. Le projet a démaré en 1996 et a été mis en Open Source en 1999. Jonathan offre un système de "personnalités", par exemple CORBA, RMI/IIOP, JRMI ainsi qu'un toolkit permettant de réaliser un ORB (gestion des resources, naming, binding...) suivant des spécifications diverses. Rappel: un ORB sert à envoyer des message d'un objet à un autre avec les problèmes suivant à résoudre: - encodage du message - adressage des objets - progammation (respect d'API standards) - des services (annuaires, transactions, sécurité...) - des protocoles de transport, avec la gestion des informations contextuelles - la gestion des ressources (mémoire, CPU, ordonnancement) - le respect des standards Les deux personnalités principales de Jonathan sont David et Jérémie. Caractéristiques de David: - API: CORBA 2.2, RMI/IIOP - services: CosNaming, naming, events - encodage: CDR - identification: IOR - protocoles: GIOP 1.0, TCP/IP, RTP, IP Multicast, ou API ouverte - resources: pools de buffers et de threads Caractéristiques de Jérémie: - API: similaire à RMI - services: registry - encodage: sérialisation - identification, protocoles, resources: comme David Mais Jonathan est aussi un toolkit à ORB, qui permet de réaliser des ORB non-standards propres à chaque besoin. Pour cela, il faut que les différents composants soient développés de façon rigoureusement indépendante des autres. Cela ne peut marcher qu'à la condition d'avoir un système d'assemblage de composants atomiques qui entre en jeu au dernier moment (compilation ou runtime), en fonction d'un fichier de configuration. Il n'y a pas besoin de recompiler l'application ou l'infrastructure. Le futur: - API: intégration de POA (CORBA 2.4), par exemple en récupérant le POA de JacORB ; création d'une personnalité pour l'embarqué. - services: repositoty d'interface (Jérémie), transactions (JOnAS), persistance (JORM), GC distribuée. - encodage: objects par valeur (David) - protocoles: GIOP 1.2, UDP, SOAP... - performances et utilisation du JDK 1.4. Question: qui utilise Jonathan ? Réponse: utilisateurs universitaires ou académiques (FT R&D). JORAM (Frédéric Maistre, Scalagent) ----------------------------------- JORAM est une implémentation de la norme JMS, qui est un standard pour les MOM (middleware orientés messages) asynchrones. Ces spécifications spécifient plusieurs modes de communication (publish/subscribe et point to point), ce qu'est un message et une API. JMS sert à construire des applications distribuées hétérogènes qui englobent des organisations de taille importante. JORAM implémente JMS au-dessus de la plateforme ScalAgent qui est basée sur des agents (!), transactionnelle et totalement distribuée. Les "virtual channels" de JMS (objets ConnectionFactory) sont des agents de la plateforme ScalAgent. JORAM est intégré dans le serveur d'EJB JOnAS, en particulier implémente XA et ASF. Futur: JORAM 3.0 = réécriture du code avec performances améliorées, accès XML/HTTP pour des clients non-Java, variante pour l'embarqué. Question: que valent les performances ? Réponse: performances similaires aux produits commerciaux. La prochaine release sera nettement plus performante. Question: qu'est-ce qu'un agent ? Réponse: les agents sont des petites entités logicielles très légère. Ils communiquent entre eux uniquement par le biais de notifications. Notre plateforme à agents a déjà quelques années d'existence. Elle ne sert pas uniquement à faire des MOM. -- Stéfane Fermigier, Tel: +33 (0)6 63 04 12 77 (mobile). http://nuxeo.com/ & http://portalux.com/ & http://aful.org/