Note de lecture : Au cœur de Corba avec Java, par Jérôme Daniel

Note : 7 ; Corba clairement expliqué

Dans les années 90, Corba régnait en maître sur les applications distribuées ou peu s’en faut. Celui-ci, paru vers la fin de l’ère Corba, a pour but de nous initier complètement à Corba en s’appuyant sur une implémentation Java. Mais c’est avant tout un livre sur Corba. L’auteur, Jérôme Daniel est l’architecte de l’ORB JavaORB (il est également celui de OpenORB, son successeur). Il est donc logique que les exemples s’appuient sur ce broker.

L’ouvrage est assez conséquent, puisqu’il compte 380 hors annexes, structurées en 4 parties pour un total de 20 chapitres. La première partie se focalise sur les mécanismes de base, mais la facture est quand même de 6 chapitres pour 115 pages ! Le premier chapitre traite des environnements répartis et plus particulièrement de l’invocation à distance (donc de RPC) et tout ce qui va avec : fiabilité et sécurité. Le second chapitre, c’est un peu le « hello world » avec Corba, en y incluant de l’IDL, l’implémentation client et serveur jusqu’à l’exécution. C’est très bien fait. L’IDL, justement, va être utilisé opérationnellement au chapitre 2 durant lequel nous allons développer un véritable serveur Corba. Même si cela reste simple, on y est très bien guidé. Le 3ème chapitre est un peu en décalage des 2 premiers, car il prend des allures de manuel de référence IDL, bien qu’étant moins sec que ce qu’il est convenu de croiser en la matière.

En abordant le chapitre 4, on prend bien conscience que l’IDL est au cœur de Corba, car c’est encore de cela qu’il est question ici, sur les aspects avancés, en continuité directe du chapitre 3. Le chapitre 5 continue dans la même voie, mais en abordant des sujets qui font la jonction avec les ORB : identifiants, contextes d’opération, etc. Alors que ce chapitre devrait redevenir concret à l’image des deux premiers, cela reste hélas pas mal abstrait ! Cette partie se referme sur un chapitre 6 évoquant les références, contextes et autres URL. Il s’y trouve pas mal de code, ce qui mitige un peu le côté aride du propos.

La seconde partie va nous emmener vers les aspects avancés de Corba. Le sujet couvre 5 chapitres pour un total de 90 pages environ. Le chapitre 7 qui ouvre cette partie explore en profondeur, côté serveur, les notions de Servant et de POA et les différentes approches du POA, par héritage ou par adaptation. C’est d’ailleurs précisément autour du POA que gravite le chapitre 8 : on y voit comment le créer from scratch et les règles et stratégies qui peuvent s’y appliquer. Au chapitre 9, cette odyssée se complète par le cycle de vie du POA, et sa relation avec le Servant. Ces notions sont plutôt pointues mais bien illustrées par du code clair et aussi par de trop rares schémas.
C’est un aspect assez différent qui est abordé au chapitre 10 : les types de données. Plus exactement, il s’agit d’appréhender la manière dont ces types sont encapsulés en Java et construits via des fabriques. Le sujet se poursuit au chapitre 11 pour conclure cette seconde partie avec les types complexes et les héritages. L’auteur fait un bon travail pédagogique sur ces deux chapitres.

Les mécanismes dynamiques sont au menu de la troisième partie. Ils couvrent 4 chapitres pour un total de 80 pages. Le chapitre 12 qui entame les hostilités a des allures de manuel de référence des interfaces standard Java. Les efforts de l’auteur à rendre cet abord moins fastidieux ne suffisent pas à rendre le chapitre passionnant. Le chapitre 13 s’inscrit dans cette continuité en abordant types et interfaces « Dyn ».
Le cœur de cette 3ème partie est sans doute le chapitre 14 qui nous fait découvrir les requêtes dynamiques : depuis le lookup pour retrouver les références jusqu’à la gestion des erreurs en passant par la gestion des paramètres et des types de retour. Sans être passionnant, le chapitre fait bien le boulot. Le chapitre 15 fait le même travail, cette fois pour les attributs.

La 5ème partie nous propose des compléments, on aurait pu l’appeler « divers » si cela ne faisait pas mauvais effet dans une table des matières. 5 chapitres sont au programme pour un total d’une centaine de pages. Le chapitre 16 nous propose un coup de projecteur sur les protocoles de communication. L’encodage et le protocole de transmission y sont clairement expliqués, mais le texte est plus succinct sur les aspects GIOP / IIOP. Au chapitre 17 on aborde, mais assez légèrement, les aspects runtime de l’ORB, avec le modèle de threading, les aspects transactionnels des appels, etc. Le contenu est surtout frustrant par son manque de profondeur.

Le chapitre 18 est plus spécifiquement dédié au monde Java. Les deux éléments majeurs en sont RMI et JNDI, mais c’est surtout RMI sur IIOP sur lequel le texte se concentre. Cette partie est réellement technique et peu facile à suivre, contrairement au début du chapitre. Ce sont les nouveautés de Corba 3 que va nous faire découvrir le chapitre 19. On reste un peu au niveau découverte et l’ensemble est assez hétéroclite mais il nous permet d’apercevoir des concepts tels que les conteneurs, le packaging et le tout nouveau (à l’époque) langage de script. Bref, le chant du cygne de Corba. L’ouvrage se referme sur l’affrontement Corba versus DCOM. Bref, le choc des dinosaures. On aurait pu s’attendre à une confrontation biaisée à l’avantage de Corba, il n’en est rien. L’auteur focalise sur les fonctionnalités cœur et propose des tableaux récapitulatifs. C’est plutôt intéressant.

Si vous cherchez un livre expliquant comment mettre en œuvre Corba avec Java de façon didactique et progressive, ne cherchez plus : voici votre livre. On pourra juste regretter que les quelques diagrammes (il n’y en a pas assez) aient fait l’impasse sur la notation UML pour employer une convention exotique qui n’apporte rien de plus. De même, les explications sur le POA ne sont pas extrêmement limpides, mais le sujet est lui-même complexe.

Référence complète : Au cœur de Corba avec Java – Jérôme Daniel – Vuibert 2000 – ISBN : 2-7117-8659-5

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.