Exposé Soa
Compte Rendu : Exposé Soa. Rechercher de 53 000+ Dissertation Gratuites et MémoiresAuteur : Thomas Erl Éditeur : Prentice Hall Ptr Edition : Août 2005 - 792 pages - ISBN : 0131858580
SOA - M. Baron - Page 6
Vers une architecture SOA Une application distribuée est définie par un ensemble de composants
Collaborent pour l’exécution de tâches communes Distants géographiquement Interconnectés via un réseau de communication Hétérogènes
Solutions qui ont fait leur preuve
DCOM, CORBA, EJB, RMI, .Net Remoting, …
keulkeul.blogspot.com
Faiblesses de ces solutions
Format de représentation données spécifiques Interopérabilité si les composants utilisent la même solution Protocole de transport spécifique nécessite une configuration réseau
SOA - M. Baron - Page 7
Vers une architecture SOA Evolution des applications distribuées
Serveurs
Serveurs
Serveurs Téléphone
Tablet PC
keulkeul.blogspot.com
EeePC Clients
Clients Portable
Architecture Client / Serveur
Architecture Fondée sur les Applications Web
Architecture Orientée Service
SOA - M. Baron - Page 8
SOA : Généralités SOA est l’acronyme de Service Oriented Architecture qui est traduis comme « Architecture Orientée Service » Le Service (ou Composant) désigne le fondement de ce modèle d’interaction entre applications Le paradigme SOA : Chercher, Publier et Consommer
Annuaire / Entrepôt
Consommateur du Service cherche un service répondant à ces exigences (Un contrat lui est retourné) Fournisseur du Service publie son service via le contrat
Chercher
2 1
Publier
keulkeul.blogspot.com
3
Consommer
Contrat
Fournisseur du Service
Consommateur du Service
Consommateur du Service envoie des messages (respect du contrat) au fournisseur du Service
SOA - M. Baron - Page 9
SOA : Concepts de Service Qu’est-ce qu’un Service ?
« Un Service est un composant logiciel distribué, exposant les fonctionnalités à forte valeur ajoutée d’un domaine métier » [XEBIA BLOG : 2009]
Huit aspects caractérisant un Service
Contrat standardisé Couplage lâche Abstraction Réutilisabilité
keulkeul.blogspot.com
Autonomie Sans état Découvrabilité Composabilité
Dans la suite nous détaillons chaque aspect d’un Service
SOA - M. Baron - Page 10
Service : Contrat Standardisé Contrat entre le fournisseur de service et le consommateur de service Trois types de contrat sont à distinguer
Lié à la syntaxe du service (opération, messages d’entrée, messages de sortie, …) Lié à la sémantique du service (définition de règles et de contraintes d’usage, …)
keulkeul.blogspot.com
Lié à la qualité de service (temps de réponse attendu, procédures en cas de panne, temps de reprise après interruption, …)
S’appuie sur des standards d’interopérabilité pour faciliter le dialogue (exemple : WSDL)
SOA - M. Baron - Page 11
Service : Couplage lâche L’échange entre le fournisseur de service et le consommateur doit se faire à travers des messages (couplage lâche vis-à-vis de son environnement) L’utilisation d’une orchestration évite que les services aient besoin de connaître les autres services
Services 2 Services 1 Services 5 Services 1 Services 2
1
2 3
Services 3
keulkeul.blogspot.com
Services 3 Moteur Orchestration Services 4
4
Services 4
Couplage fort
Etudié dans le dernier cours
Couplage lâche
SOA - M. Baron - Page 12
Service : Abstraction Le contrat du service ne doit contenir que les informations pertinentes à son invocation Fonctionnement du service dit en « boîte noire »
Seul le contrat exposé au consommateur du service est connue Le fonctionnement interne du service ne doit pas être visible Logique métier Implémentation
keulkeul.blogspot.com
Il est par conséquent important d’assurer la prédictabilité d’un service
Pas de variation dans le comportement et dans la réponse d’un service lors de la réception d’une requête
SOA - M. Baron - Page 13
Service : Réutilisabilité / Découvrabilité Un service doit être accessible depuis un entrepôt ou un annuaire pour faciliter sa découverte Le fournisseur de services a la charge de déposer et de mettre à jour ses services depuis l’annuaire Le service est enrichi par un ensemble de méta-données pour faciliter la recherche du consommateur de services
keulkeul.blogspot.com
S’appuie sur des standards (UDDI, ebXML) D’après la gouvernance SOA
Un service est défini avec l’intention d’être réutilisé
SOA - M. Baron - Page 14
Service : Autonomie / Sans état Un service doit disposer
de l’ensembles des informations nécessaires à son exécution ne doit dépendre d’aucun service externe (couplage lâche)
Garantir l’autonomie d’un service permet de s’assurer de sa prédictabilité Un service doit être sans état de façon à minimiser la
keulkeul.blogspot.com
consommation de ressources
Maintenance : rend complexe la composition de services Performance : gourmand en ressources systèmes
SOA - M. Baron - Page 15
Service : Composabilité Un service doit fonctionner de manière modulaire et non pas intégrée Assurer la décomposition d’un service complexe en sous services plus simples entre eux (garantie l’autonomie) S’inscrire dans une logique de composition de services à travers l’utilisation de l’orchestration (couplage lâche)
keulkeul.blogspot.com
L’orchestration favorise l’indépendance des services et assure que des services n’appellent pas directement d’autres services
SOA - M. Baron - Page 16
Client / Serveur Versus SOA
Intra-entreprise Limitée à un sous ensemble de langages de programmation Procédurale Protocole de transport propriétaire Fortement couplé
keulkeul.blogspot.com
Entre Entreprises Indépendance du langage de programmation
VS
Pilotée par les messages Possibilité de choisir le protocole de transport Faiblement couplé Traitement plus lourd
Architecture Orientée Service
Traitement efficace
Architecture Client / Serveur
SOA - M. Baron - Page 17
Applications « Web » Versus SOA
Interaction Programme / Utilisateur Intégration statique des composants Service monolithique Référencement via des annuaires de sites non
keulkeul.blogspot.com
Interaction Programme / Programme Intégration dynamique
VS
...