Académique Documents
Professionnel Documents
Culture Documents
Orientées Service
teaching.bhiri@gmail.com
Sami BHIRI
AOS - Plan
res = obj.op(5,’’bonjour’’) ;
equiv
| invoke | op | 5| bonjour |
1
result = add_numbers(a,b)
…
4
}
Processus X
• Flot 1 et 3 sont les mêmes dans les deux cas (local et à distance)
• Mais dans deux processus différents thread/processus
• Flot 2: l’appel passe de X à Y
• Flot 4: le retour passe de Y à X Taken from Chris Greenhalgh
Le protocole IP est le plus utilisé pour Cependant, les sockets sont encore
la communication entre machines: de bas niveau pour plusieurs
envoie non fiable et livraison de applications systèmes de RPC
paquets ont émergé pour
IP est conçu pour être enfoui derrière • Masquer les détails de
d’autres couches logicielles: communication dans un appel de
• Le protocole TCP qui implémente un procédure
échange de messages connecté et • Réconcilie des environnements
fiable hétérogènes
• Le protocole UDP qui implémente un
échange (datagram) de messages non
fiable
TCP/IP et UDP/IP sont visibles aux Applications
applications via les sockets: SOCKETS
similaire à l’abstraction de fichier
dans UNIX TCP, UDP
IP
Une représentation intermédiaire doit être standardisée pour être vraiment utile
Utilisés par les compilateurs et les éditeurs de lien coté client (stubs) et
sereveur (skeleton) pour savoir comment procéder pour le (dé)marshalling et
la (dé)sérialisation lors d’un appel de procédure à distance.
Statique: l’appelant possède l’adresse de l’appelé et lui transmet les données directement
• La liaison statique est très efficace (pas d’indirection)
• La liaison statique conduit au couplage fort entre les différentes parties (assez
mauvais en général)
adresse du module
marshalling
envoie
appel de procédure à distance
26/09/2020
RPC: comment ça marche en pratique
unmarshalling
appel
local
ret. rslt
marshalling
unmarshalling
resultat
ret. envoie
rslt
26/09/2020
RPC en pratique
Un système RPC
• Fournit un langage de définition d’interface (IDL) pour décrire les services
• Génère tout le code additionnel nécessaire pour faire un appel de procédure à
distance et traiter les différents aspects de communication
• Fournit un “binder” en cas il utilise un service de nommage distribué
Applications
RPC
SOCKETS
TCP, UDP
IP
©IKS, ETH Zürich.
Application
servers
Object Message
TP-Monitors
brokers brokers
Sockets
TCP, UDP
Intégration top-down
• Les applications à intégrer n’existent pas déjà
• Elles sont développées en même temps que l’application
principale
• Spécification, conception et développement tout en tenant
compte de la répartition
Intégration bottom-up
• Les applications à intégrer existent déjà
• Elles sont opérationnelles sous différentes entités de
gouvernance
• Elles ont des protocoles et des formats de données
hétérogènes
Page 35 26/09/2020 Sami BHIRI
Exercice
Manque de confiance.
• Développer des systèmes intégrés impliquant différents domaines de confiance est
souvent assez difficile.
• Avec les services Web, l’API d’une entreprise est exposé sur le Web. Comment faire
confiance aux clients?
Une connexion directe entre les différentes organisations n’est pas permise
(mesures de sécurité et confidentialité) et parfois pas possible (intergiciel
incompatible).
Publier les systèmes à intégrer comme des services Web simplifie l’intégration et
garde les différentes parties faiblement couplées.
Eiffel
Java DCOM
.NET
Bean Object
Assembly
Legacy
CORBA COBOL
Object Program
Si les composants sont publiés comme des services Web, ils peuvent
inter-opérer à travers différents environnements de composants.
(Interoperability through Wrapping)
Eiffel
Java DCOM
.NET
Bean Object
Assembly
Web Legacy
CORBA COBOL
Services
Object Program
Les services Web peuvent être vus comme une évolution naturelle des
intergiciels existants.