Paul-Alexandre LUCK Passionné de nouvelles technologies... la mise en place d'architecture de services informatisés est mon métier...

L'émergence et la popularité grandissante des technologies objet (méthodes, architectures et langages) influence fortement l'agencement des systèmes. La mise en place d'un nouveau système doit être progressive, faisant migrer les systèmes actuels vers de nouvelles architectures (CORBA, ActiveX COM/DCOM, JavaBeans RMI).
Les architectures de ces nouveaux systèmes doivent mettre en avant le respect des concepts immanents objet afin de garantir l'obtention des facteurs qualité.

Les architectures actuelles visent l'interopérabilité des systèmes et des Hommes tout en respectant l'identité et les origines de chacun.
Chaque métier (Banques, Informatiques, Constructeurs de matériel, Éleveurs, etc.) met à la disposition d'autres métiers un ensemble d'objets capables d'interagir entre eux, ou d'être assemblés et spécialisés pour répondre aux besoins spécifiques de chacun. L'objectif étant de pouvoir fournir rapidement une multitude de services intégrables et adaptables pour chaque spécificité de métier, pour chaque organisation, pour chaque politique et stratégie de société.

Deux stratégies peuvent être envisagée :

L'optimum se situe probablement à mis chemin entre ces deux extrêmes. Créer des systèmes spécifiques capables de communiquer facilement entre eux.
L'évolution des systèmes ont fait apparaître dans un premier temps des protocoles de communication standards (Réseau TCP/IP, HTTP, IIOP etc.), des spécifications d'interface standards (IDL, HTML, Interfaces ActiveX ou JavaBean etc.) et des passerelles d'interaction ou modules de conversion adaptés aux particularités de chaque système.


Architecture de services d'objets distribués

Architecture d'objets

Un même objet peut être tantôt client (demandeur de services), tantôt serveur (fournisseur de service). Il cumule les propriétés des objets client et des objets serveur.

Architecture de services

Pour déléguer un service , il nous faut

Dans une architecture objet on ne différencie pas les notions de client (maître) et de serveur (esclave). Chaque objet est tantôt client tantôt serveur.
On peut en déduire que chaque objet doit Une infrastructure de communication doit permettre transmettre et de synchroniser les demandes de service dans des conditions acceptables.

Les principes d'architecture de services sont cohérents avec les principes de gestion de production.
Chaque objet


Objet

Un objet est ACIDe. Un objet rend au moins un service.
Un objet est identifié de manière unique, non ambiguë. L'identification d'un objet est identique durant toute sa durée de vie.

Un objet présente un ensemble de propriétés :

Un objet est généralement hébergé dans un ou plusieurs serveurs d'objet.

Serveur d'objets

Un serveur d'objet est un objet qui a pour responsabilité de fournir une interface de manipulation des objets qu'il est susceptible d'héberger : Un serveur d'objets fournit un ensemble de services aux objets : Dans une architecture à objets distribués, un objet peut transiter d'un serveur d'objets vers un autres serveurs d'objets ou même coexister dans plusieurs serveurs d'objets. Si un message est envoyé à un objet distribué dans plusieurs serveurs d'objet, les objets dupliqués doivent rester homogène, identique, synchrone. Un mécanisme de synchronisation de l'états de ces objets est donc nécessaire (neutralisation d'objet et distribution des modifications d'état d'objet).

Annuaire de services

Un annuaire de service permet de recenser l'ensemble des services offerts par des objets. Chaque objet nouvellement crée ou chaque objet changeant d'état peut se faire répertorier ou dérépertorier dans un ou plusieurs annuaires de services. L'objet présente les services qu'il met à la disposition d'autres objets connectés à cette annuaire.
Un même service peut être rendu par plusieurs objets. Chaque objet demandeur possède ses règles de choix de l'objet cible.
Un annuaire de services permet de retrouver un service d'après les caractéristiques de chaque service.

Service d'identification d'objets

Un service permet à d'autres objet créateur d'objet d'obtenir une identification unique pour chaque nouvel objet.
Il peut exister différents services d'identification d'objet mais il ne doivent pas pouvoir donner le même identifiant. L'identifiant d'un objet peut être calculé à partir de l'identifiant du service d'identification et d'un chrono d'identification. Ce service d'identification est synchrone. C'est à dire que deux transactions différentes nécessitant la création d'objets ne peuvent appeler ce service simultanément.

Synchronisation des demandes de service

Une demande de service ou un envoi de message à un objet peut entraîner l'envoi d'autres messages par l'objet récepteur et ainsi de suite une cascade de messages synchrones peuvent être émis et réceptionnés. Cet ensemble de messages forme une transaction. Une transaction débute lors de l'émission d'un message synchrone et se termine lorsque l'ensemble des messages synchrones ont été pris en compte. Si une anomalie survient lors de la prise en compte d'un de ces messages alors l'ensemble des objets impliqués par cette transaction de messages doivent retrouver leur état initial, et l'ensemble des messages asynchrones ignorés. Chaque message et chaque objet est donc porteur d'une identification de transaction. Tous les messages issus d'une même transaction porte le même identifiant de transaction. Tous les objets impliqués par un ou plusieurs messages d'une même transaction neutralise la prise en compte d'autres messages.
Les messages doivent pouvoir être stockés dans une file d'attente de fin de transaction.

Protocole de communication

Le protocole de communication fédère l'ensemble de ces objets. Ce protocole permet à chaque objets d'émettre et de réceptionner des demandes de services compréhensibles.
En fonction des protocoles et des caractéristiques des réseaux utilisés et des spécificités d'implantation de chaque objet des interfaces sont nécessaires pour transcrire les demandes de services et les objets conformément à un protocole de communication homogène.

Dans le cadre d'une architecture à objets distribués où les objets doivent pouvoir transiter vers différents serveur d'objet hétérogène la spécification des objets doit être transmissible. C'est à dire que la spécification de la fabrication des objets doit être homogène et normalisée. Il nous faut donc établir un langage commun de spécification d'objet .


Langage de spécification d'objet

Ce langage doit permettre de décrire les objets : Ce langage doit permettre de décrire les services. C'est à dire une succession ordonnée de services au travers de messages délégués aux différents objets référencés ou identifiés par les attributs internes de l'objet :
Dans l'architecture CORBA (Common Object Request Broker Architecture) organisée par le consortium international appelé l'OMG (Object Management Group) un ensemble de services facilites la mise en œuvre d'architectures à objets distribués : (Référence : CORBA Des concepts à la pratique InterEditions Jean-Marc Geib, Christian Gransart, Phillipe Merle)
CV : LUCK Paul-Alexandre

EMail : paulalexandre.luck@free.fr