SOA et services web
INSAT 2015-2016
Mariem Chaabouni
1. Ingénierie orientée services : Généralités
Ingénierie orientée services
Ingénierie orientée services
• Un paradigme pour développer des logiciels distribués et collaboratifs
• Un tel logiciel se compose de plusieurs entités, appelés services• Des services généralement développés indépendamment et sont composés
pour atteindre des exigences
• Les chorégraphies de services définissent ces exigences avec une perspective globale, basée sur les interactions entre des participants • Les services communiquent entre eux pour atteindre des exigences
communes
Ingénierie orientée services Généralités
2 Approches de construction d’un système basé sur les services• Approche top-down (descendante)• Basée sur la décomposition du système en services qui peuvent être mis en
place selon les spécifications du système
• Approche bottom-up (ascendante)• Basée sur la composition de services existants pour atteindre les exigences du
système
Ingénierie orientée services Généralités
System
Service 1 Service 2 Service 3
System
Service 1 Service 2 Service 3
Service-Oriented Computing (SOC)
• Un terme générique utilisé pour représenter une plate-forme informatique distribuée de nouvelle génération. Il englobe:• Les principes de conception, • les catalogues de patrons de conception, • les langages de patrons, • le modèle architectural,• les concepts, les technologies et les frameworks associés.
• « Un paradigme informatique qui utilise les services comme brique de base pour supporter le développement d'applications distribuées rapide, de faible coût et facile à composer, même dans des environnements hétérogènes. »
Ingénierie orientée services Généralités
Service-Oriented Computing (SOC)
• Promesses du SOC • un monde de services
coopératifs où les composants de l'application sont assemblés avec peu d'effort dans un réseau de services faiblement couplés pour créer des « business process » dynamiques et flexibles et des applications agiles
Ingénierie orientée services Généralités
Service-Oriented Computing (SOC)
• Comment mettre en place une plateforme informatique orientée services – Principaux éléments:
• service-oriented architecture (SOA)• service-orientation• service-oriented solution logic• services• service compositions• service inventory
Ingénierie orientée services Généralités
Service-Oriented Computing (SOC)Ingénierie orientée services Généralités
9
• Service-Oriented Architecture (SOA) – Niveau architecture• Un modèle architectural pour les solutions orientées services ayant comme
caractéristique de supporter la réalisation de l’aspect « service-orientation » et les objectifs stratégiques • Une forme d’architecture technologique• Une implémentation SOA peut consister en une combinaison de :
• Technologies• Produits• APIs• Ressources, repositories• ...
Ingénierie orientée services Généralités
Service-Oriented Computing (SOC)Ingénierie orientée services Généralités
• Service-orientation (design paradigm)• Service-orientation est le paradigme de conception destiné à la création d’unités logiques
(services) formées individuellement pour être utilisées collectivement et de manière répétitive• est généralement considéré comme une approche qui régit la conception de logique de solutions.
Il se compose d'un ensemble de règles ou de principes complémentaires qui définissent collectivement l'approche globale.
• Une manière de penser…
Ingénierie orientée services Généralités
1. Standardized Service Contract (Standardisation)2. Service Loose Coupling (Faible couplage)3. Service Abstraction (Abstraction)4. Service Reusability (réutilisabilité)5. Service Autonomy (autonomie)6. Service Statelessness (sans état)7. Service Discoverability (découverte)8. Service Composability (composabilité)
• 8 principes de conception
Ingénierie orientée services Généralités
• Service-orientation (design paradigm)
Service orientation
Object-orientation
Web services
BPM (Business Process
Management)
EAI (Enterprise Application Integration)
Others…
• Service-oriented solution logic • Tout corps d’une logique de solution pour laquelle le paradigme de « service-
orientation » a été appliqué
Ingénierie orientée services Généralités
Exemples de 3 conceptions d’applications distinctes :
Chaque conception dispose d’une liste de caractéristiques de conception « design characteristics »
Unité d’une logique de solution
Réutilisation au accès partagé
Transfert de données
• Services• Un service = un contrat, une ou plusieurs interfaces et une implémentation• Un service = une aptitude métier ou IT, exposée par un fournisseur de services• Un service = un mécanisme pour donner l'accès à une ou plusieurs capacités l'accès est fourni en utilisant une interface prescrite et est exercé en accord avec les
contraintes et les politiques comme spécifié par la description du service• Les services = des logiciels physiquement indépendants avec
• des caractéristiques de conception distinctes • prennent en charge la réalisation des objectifs stratégiques liés à l'informatique orientée services.
• Chaque service est affecté à son propre contexte fonctionnel distinct et est composé d'un ensemble de capacités liées à ce contexte.
Ingénierie orientée services Généralités
Billing CRM
getNextInvoiceDate updateCustomerAdress
Service-Oriented Computing (SOC)Ingénierie orientée services Généralités
Ingénierie orientée services Généralités
• Service Composition• Une composition de service est un agrégat de services
composés pour automatiser une tâche ou un processus métier particuliers.
• Pour être considéré comme une composition, il faut avoir au moins deux services participants + un initiateur de composition. Sinon l'interaction de service représente seulement un échange point-to-point.
• Les compositions de services peuvent être classés en variations complexes et primitives.
• Plusieurs processus métiers peuvent être automatisées par la création de compositions de services disponibles à partir d'un pool de services existants qui résident dans un inventaire de service (service inventory).
Service-Oriented Computing (SOC)Ingénierie orientée services Généralités
Ingénierie orientée services Généralités
• Service inventory• Un inventaire de services est une collection standardisée de services complémentaires représentant
une entreprise ou un segment significatif de l'entreprise. Quand une organisation a plusieurs inventaires de services nous parlons d’ « inventaire des services de domaine ».
• Une collection de services standardisés, formant la base d'un inventaire de service, peut être administrée de façon indépendante dans son propre environnement de déploiement physique.
• Un inventaire de service établit un pool de services qui sont conçus pour être réutilisés dans les compositions de services multiples.
Service-Oriented Computing (SOC)Ingénierie orientée services Généralités
Modèles de service (Service Models)Ingénierie orientée services Généralités
• Les services diffèrent selon• Le type de logique qu’ils encapsulent• Le degré de réutilisation de cette logique• Comment cette logique est reliée aux domaines dans l’entreprise
• 3 types de services• Entity Services• Task services• Utility services
Modèles de service (Service Models)Ingénierie orientée services Généralités
• Entity Services• Généralement dans une entreprise, il y a des
modèles de documents métiers qui définissent les entités métiers pertinentes de l'organisation
-> Services entités• Exemples d'entités métiers (clients, employés,
facture, demande) • Le modèle de l’entity service représente un service
centré métier. • Il est considéré comme un service hautement
réutilisable parce qu'il est commun à la plupart des processus métiers : un service peut être mis à profit pour automatiser de multiples processus métiers.
Entity Service
Utility Service
Task Service
Modèles de service (Service Models)Ingénierie orientée services Généralités
• Task Services• Un service métier (entity service) ayant un champs
fonctionnel bien défini, et qui est directement associé à une tâche ou un processus métier, est basé sur le modèle de « task service ».
• Ce type de service a tendance à avoir moins de potentiel de réutilisation et est généralement positionné comme le contrôleur d'une composition /responsable de la composition d'autres services.
Entity Service
Utility Service
Task Service
Modèles de service (Service Models)Ingénierie orientée services Généralités
• Utility Services• la représentation de la logique NON-métier. • une couche distincte de services axée sur la
technologie. • Le modèle du service utilitaire "utility service" est
dédié à fournir des fonctionnalités utilitaires réutilisables, transversales
• Exemples : la journalisation des événements, la notification et la gestion des exceptions.
• Egalement appelés : application services, infrastructure services, technology services.
Entity Service
Utility Service
Task Service
Modèles de service (Service Models)Ingénierie orientée services Généralités
SOA et services webIngénierie orientée services Généralités
• Dans le marché actuel, la plateforme technologique la plus associée à la réalisation d’une SOA sont les services WEB• L’une des solutions technologiques possibles pour implémenter une SOA, y’en a
d’autres…• Les web services : C’est une série de protocoles, langages et standards émergents, qui
permettent à des applications informatiques d’exposer leurs fonctionnalités et/ou leurs données via le web. • l’infrastructure permettant d’invoquer un objet ou d’échanger des données à distance• WSDL, SOAP, v
• SOA est un ensemble de concepts : Elle peut être implémenter sans Web ServicesOn peut utiliser les Web services sans SOA
SOA et OSGI (Open Services Gateway Initiative)
Ingénierie orientée services Généralités
• Framework OSGi (environnement d’exécution)+ services OSGI (Log, XML Parser, JMX, JNDI, …)
• Une autres solution technologique pour une implémentation du SOA• Open Services Gateway Initiative (OSGi) est une
spécification ouverte pour la définition d'une plate-forme de déploiement et d'exécution des services administrés à distance• Initialement utilisé dans des environnements
embarqués tels que des passerelles résidentiels et industriels de véhicules, ...
SOA et OSGI (Open Services Gateway Initiative)
Ingénierie orientée services Généralités
OSGI définit une multitude de services :• Logs• Gestion de configuration• Préférences• Services HTTP (e.g :servlets)• Gestion des utilisateurs• Parseurs XML• Gestion de droits,• Politique de sécurité• Monitoring• Gestion de périphériques• Connecteurs d'entrés-sorties…
Ingénierie orientée services Généralités
1. Standardized Service Contract (Standardisation)2. Service Loose Coupling (Faible couplage)3. Service Abstraction (Abstraction)4. Service Reusability (réutilisabilité)5. Service Autonomy (autonomie)6. Service Statelessness (sans état)7. Service Discoverability (découverte)8. Service Composability (composabilité)
• 8 principes de conception
Ingénierie orientée services Généralités
1. Standardized Service Contract (Standardisation du contrat)
• 8 principes de conception
Service 1 Service 2
Contrat
Ingénierie orientée services Généralités
2. Service Loose Coupling (Faible couplage)
• 8 principes de conception
Service 1
Service 2 Service 3
Service 1
Service 2 Service 3
Minimiser la dépendance
Consumer
Consumer
Ingénierie orientée services Généralités
3. Service Abstraction (Abstraction)
• 8 principes de conception
Consumer InterfaceTraitement
Service 1
La logique du service doit être invisible par le client
Ingénierie orientée services Généralités
4. Service Reusability (réutilisabilité)
• 8 principes de conception
ServiceConsumer 2
Consumer 1
Consumer 3
Ingénierie orientée services Généralités
5. Service Autonomy (autonomie)
• 8 principes de conception
Service Logic and ressources
Le service devrait avoir le control de ressources et logique métier qu’il encapsuleIl doit pouvoir fonctionner avec autonomie
Ingénierie orientée services Généralités
6. Service Statelessness (sans état)
• 8 principes de conception
• Ne garde pas des états d’une utilisation a une autre• La gestion de beaucoup d’informations sur l’état peut compromettre l’accessibilité du service et
affecte son potentiel de scalabilité service inadapté à la réutilisation
Ingénierie orientée services Généralités
7. Service Discoverability (découverte)
• 8 principes de conception
Service
Consumer 1
Registry (Annuaire)
Ingénierie orientée services Généralités
8. Service Composability (composabilité)
• 8 principes de conception
BIG ServiceConsumer 1
Service
Service
Service
• La conception de services doit permettre la composition de nouveaux services (service composite) à partir de services existants pour gérer des problèmes de grands tailles
Ingénierie orientée services Généralités
Références ERL, Thomas. Soa: principles of service design. Upper Saddle River : Prentice Hall, 2008.