You are on page 1of 64

http://membres-liglab.imag.

fr/donsez/cours

Architecture Orientée Service (Service-Oriented Architecture)
Didier Donsez
Université Joseph Fourier PolyTech’Grenoble LIG/ADELE
Didier.Donsez@imag.fr Didier.Donsez@ieee.org

18/07/2010

Sommaire
Un peu d’histoire Notion de contrats 3 entités SOA Composant versus Service Domaine d’administration et cycles de vie Canevas

2

18/07/2010

Un petit rappel
Racoon [1997]

10 to 15 years

Interest

Innovation Growth Maturity

Convention

Time
3

18/07/2010 Un petit rappel Racoon [1997] 4 .

18/07/2010 Racoon revisité HTTP HTML CORBA SOAP WSDL XML EJB n e ctio dul ru t mo ins et obj t e san rvic po se com ? 1980 1990 2000 2005 2010 Premiere Vague du e-Business: Le B2C Deuxieme Vague du e-Business: Le B2B Trosième Vague du e-Business: Le M2M 5 .

18/07/2010 Revisited RacoonXML HTTP HTML CORBA EJB SOAP WSDL REST e ent dul tem mo sta t jec ob t e nen rvic po se com ? 1980 1990 2000 2005 2010 e-Business 1st wave: B2C e-Business 2nd wave: B2B e-Business 3rd wave: M2M 6 .

18/07/2010 Première vague du e-Business Le B2C Business to Consumer Web 1.0 (133 millions de comptes fin 2006) Google/Yahoo Maps Google AdSense You Tube (http://www.com/results?search_query=* returns 66.200.426.0 (8 milliards de pages Web indexés (cachées parfois) ) (+ 5 Gobjets mis en vente début 2006) … Web 2.074 times Tweeter Facebook (le 8eme pays du Monde) … Web 3.youtube.0 (+5 500 000 résidents en avril 2007 +11 000 000 résidents en novembre 2007) … 7 .000 in Jan 2008) Top 1 video viewed 72.

18/07/2010

Deuxième vague du e-Business Exemple de Scénario de B2B et B2Gov
Achat de benzène par un producteur sur le Web + requiert des services additionnels fournit par des tiers

Achat benzene Paiement avec credit

ebXML/HTTP eSpeak/SMTP

Producteur Finance Transporteur Assureur Gouvernement

Acheteur B2B

Expédition avec delai ebXML/SMTP de livraison Assurrance sur le transport Autorisation gouvernemental pour un transport sécurisé

BizTalk/DotNet

EDI/SMTP

9

18/07/2010

Deuxième vague virgule cinq du e-Business Informatique en Nuage (Cloud)
Informatique « à la demande »
Synonymes : Edge computing, Utility computing, Elastic computing, …

Des acronymes « tendances »
SaaS : Software as as Service PaaS : Platform as as Service IaaS : Infrastructure as as Service

Quelques acteurs
Akamai, Amazon, Google, …

Quelques pré-requis
Virtualisation, Autonomic Computing

Conséquences
Green computing, …

10

18/07/2010

Troisième vague du e-Business Exemple de Scénario de M2M
Serveur Fournisseur de service (société gardiennage) Serveur Fournisseur de service (hôpital) Serveur Fournisseur de service (distributeur électricité)

Usager/Agent hors foyer

Contrôle climatisation Compteur électrique

® Adele, 2002
Réseau Camera surveillance Domotique
Passerelle OSGi

Bundles

Console

WEB Déploiement Interactions

Usager
Centrale alarme Moniteur cardiaque

Serveur Opérateur de la Passerelle

11

osgi.18/07/2010 Exemple de Scénario M2M Le photocopieur en location Le photocopieur est installé en location chez le client Le loueur (est une organisme financier) facture mensuellement à la consommation Fixe mensuel + tarif par feuille Le loueur sous-traite la maintenance simple à une société spécialisée La société de maintenance réalise un diagnostic à distance avant d’envoyer un agent L’agent de maintenance interroge sur place le logiciel de diagnostic Le fabricant peut mettre à jour le logiciel embarqué Pour info RICOH (26% copier market share) inclut une passerelle OSGi dans ses photocopieurs (en 2006).org/wiki/uploads/Conference/OSGiCommunityBushnaq.pdf 12 . http://www2.

2004 Customer Customer install and start the new version of the diagnotic tools update the version on the panel GUI core Manufacturer Manufacturer add a custom tab (ie plugin) to the panel GUI Renter Renter start the scanner function and the mail function of the copier subscribe ($€£) to the scanner function and the mail function of my copier 13 .18/07/2010 Exemple de Scénario M2M Le photocopieur en location (c) Didier Donsez.

18/07/2010 Le mass market (Electronic Consumer) Taken from the JES book 14 .

18/07/2010 Besoins Intégration (EAI) Entreprise B Entreprise A Entreprise C Langage commun Protocole commun DivisionA1 Filiale A1 Usine A1a 15 .

jaunes. vertes) Entreprise G Entreprise F Entreprise A Entreprise C Division A1 Contrat Usine A1a 16 .18/07/2010 Besoins Contrat (B2B) Entreprise B Annuaire (pages blanches.

18/07/2010 Service Définition « un service est un comportement défini par contrat. qui peut être réalisé et fourni par tout composant pour être utilisé par tout composant. Service Service Consumer Consumer interact Service Service Provider Provider 17 . sur la base unique du contrat » [Bieber and Carpenter 2002].

18/07/2010 Service Définition Pas forcement de consensus des dizaines de définition 18 .

org/scc/2010/images/pic/SC-confs-Landscape.jpg 19 .18/07/2010 A Big Picture .-( http://conferences.computer.

18/07/2010 Les 3 acteurs dans le SOA Service Service Registry Registry lookup register Service Service Consumer Consumer interact inter act Service Service Provider Provider Service Service Provider Provider 20 .

18/07/2010 Propriétés du SOA Couplage faible Substituabilité Liaison retardée Reconfiguration dynamique (durant l’exécution) 21 .

18/07/2010 Courtage et Liaison rétardée infrastructure or adhoc Service Service Registry Registry search register Service Service Consumer Consumer interact Service Service Provider Provider synchronous or asynchronous 22 .

18/07/2010 Reconfiguration en cours d’exécution Dynamic arrival of new services Service Service Registry Registry notify push and/or poll register Service Service Consumer Consumer interact i n t e ra c t service contract not matched Service Service Provider Provider Service Service Provider Provider Service Service Acme.com Acme.com Acme.com 23 .com Provider Provider Acme.

18/07/2010 Reconfiguration en cours d’exécution Dynamic removal of in-use services Service Service Registry Registry notify unregister Service Service Consumer Consumer bind/invoke i n t e ra c t Service Service Provider Provider Service Service Provider Provider Acme.com Acme.com 24 .

…) output msg Service Service Provider Provider servant 25 .18/07/2010 Types d’interaction (Elément <operation> de WSDL) bind © Didier Donsez One-way Service Service Consumer Consumer (1) input msg Service Service Provider Provider servant bind Request-Response © Didier Donsez Service Service Consumer Consumer (1) input msg (2) output msg Service Service Provider Provider servant bind Solicit-Response Service Service Consumer Consumer © Didier Donsez (1) output msg (2) input msg Service Service Provider Provider servant bind Notification Service Service Consumer Consumer © Didier Donsez (1) output msg (2.3.

18/07/2010 Service Notion de contrat Formes Variées (langage. 26 . la synchronisation (L3). …) Décrit la syntaxe (L1). la qualité de services (L4) du service Conformité d’un service aux termes du contrat Service Level Agreement (SLA) Accord sur contrat legal entre le fournisseur et le client d'un service Engagement le contrat s'applique dans les deux sens : il engage le fournisseur comme le demandeur. le comportement (L2).

public Job[] list() throws PrintException. public Job status(int jobnumber) throws PrintException.18/07/2010 Exemple de service OSGi/Java Une interface «published» (L1) Interface org.PrintService package org. } 27 .print. public interface PrintService { public int print(OutputStream out.print. String[] printparams) throws PrintException. public void kill(int jobnumber) throws PrintException.device.device.

device.dpimax=2400 org.print.PrintService org.dpimax=1200 org.printer.color=256 org.hp.printer.device.type=laser geo.device.print.lexmark.device.device.location=1st floor Classe d’implémentation com.laserjet. Indépendant de la réalisation (ie implémentation) Interface org.location=4th floor Classe d’implémentation com.print.Driver Interface org.device.PrintService org.print.type=laser geo.Driver 28 .18/07/2010 Exemple de service OSGi/Java Une interface Java «published» (L1) Qualifiée par des propriétés (½ L4).impl.print.device.color=2 org.impl.laser.print.print.print.device.

device (objectClass=org.print.*) L1+L4 ½ Certains services d’impression (& (objectClass=org.device.print.print.FaxService) (location=4th floor)) 29 .PrintService) (&(type=laser)(capability=double-sided)(!(dpi<=300))(location=*)) Le service d’impression et de fax au 3ième étage (&(objectClass=org.18/07/2010 Exemple de recherche de services OSGi/Java (Expression LDAP) L1 Tous les services d’impression (objectClass=org.device.PrintService)(objectClass=org.fax.device.device.device.*PrintService) Tous les services de org.print.device.PrintService) (objectClass=org.

18/07/2010 Exemple avec WSDL TODO 30 .

Assertion Java 1. parallèle. Interface Java Non-negociable Comportemental Conception orientée contrat [Meyer 96] Invariants pré et post conditions Eiffel.4 Synchronisation Ordre d'éxécution des services: concurrente... Qualité de service liste de propriétés d’un service OSGi (Re)Négociable dynamiquement .Contrat logiciel 4 niveaux de contrat [Beugnard 99] Syntaxique CORBA IDL2.

18/07/2010 Composition structurelle SCA (Service Component Architecture) P Propriétés Services P A A Composant 1 P P Composant 2 T T Références Q Q Composant 3 U U Wire Promotion iPOJO Thanks to Gabriel Pedraza 33 .

FOCAS Service Service Provider Provider Service Service Provider Provider Orchestrateur Orchestrateur (Process) (Process) A2 A2 A1 A1 A3 A3 A4 A4 Service Service Provider Provider Service Service Provider Provider Service Service Provider Provider Avantages Passage à l’échelle Performance de la composition Service Service Provider Provider Avantages Expression facile Monitoring. XPDL. gestion facile Inconvénients Goulot d’étranglement La performance de l’application Passage à l’échelle Inconvénients Difficile expression Non-exécutable (top-down) Thanks to Gabriel Pedraza 34 .18/07/2010 Composition par procédés Orchestration versus Chorégraphie BPEL.

18/07/2010 Pyramide de Papazouglu Service operator Management & Monitoring Managed services Metrics State management Load balancing Change management Composite services Coordination Conformance Transactions Composition Basic services Foundation Capability Interface Behaviour Publication Discovery Selection Binding Service provider Service customer Service aggregator Role Actions Uses Publishes Performs Becomes Semantics Non-functional Characteristics QOS Thanks to Eric Simon. inspired by Papazouglu 37 .

Négociation Liaison retardée (Late binding) Accord de niveau de service (SLA) Domaines d’administration disjoints 44 .18/07/2010 Service Propriétés Couplage faible Substituabilité Courtage.

18/07/2010 Rappel du cycle de vie d’une application à composant [Cervantes 04] 45 .

18/07/2010 Cycle de vie d’une application à services Administration indépendante Entreprise B Entreprise C Cycle de vie indépendant Entreprise D 46 .

Ces engagements. contenant le niveau de service fourni ainsi que les pénalités encourrues en cas de manquement de part et d'autre. Thanks to Lionel Touseau . sont définis par des critères objectifs de qualité de service pouvant être évalués par les deux parties.Accords de niveau de service Définitions Définition Contrat souscrit entre le fournisseur d'un service et un usager de ce service définissant les engagements de ces deux parties.

Accords de niveau de service Concepts Parties contractantes Description du service Admission Termes de l’accord Volume (réseaux) Disponibilité (hébergement) Fiabilité Compensation Pénalités En cas de non-respect ou de rupture signed Vérifications évaluation du respect du contrat Auditeur tiers (objectif et précis) Mesures de qualité Négociation et renégociation Thanks to Lionel Touseau .

langue naturelle Solutions ad-hoc Domaines très différents Représentations existantes Web Service Level Agreement (WSLA) Rule-Based Service Level Agreements (RBSLA) ContractLog [Paschke03] WS-Agreement Pourtant fondamental Contexte Multi-organisations Thanks to Lionel Touseau .Formalismes pour les accords de niveau de service Peu de standard ou de formalisme générique Souvent papier.

mcs.anl.pdf 50 Thanks to Lionel Touseau .gov/~keahey/Meetings/GRAAP/WS-Agreement%20Structure.18/07/2010 WS-Agreement Formalisation des termes d’un accord Formalisation du processus de négociation Meta Modèle http://www-unix.

…) Streaming et qualité de l'image Durée Ex: location pour 24h Prix Thanks to Lionel Touseau . Silver. débit. Best-effort Multimédia-on-demand (VOD. gigue Prix par Mb par heure Prix de la pénalité en cas de débit dépassé dépassement du forfait Différents niveaux de service (DiffServ) Premium. Gold.Exemples de SLA Réseau (système autonome) Latence.

SOA et Accord de niveau de service Service Registry search register Service Requester interact Accord de niveau de service Service Provider Thanks to Lionel Touseau .

SOA et Accord de niveau de service Annuaire de Service recherche publication Usager du Service interaction Accord de niveau de service Gestionnaire d’accord signed Fournisseur du Service Thanks to Lionel Touseau .

SLA •(1) Uptime > 1h •(2) Délai < 100 ms •(3) Prix < 7 Euros / Gbit •(4) Débit > 90 Mbits/s •(5) Gigue < 20 ms Service Registry Serv1 notify Serv2 search register Service Provider 2 Service Provider 2 1 Service Requester interact SLA •Débit: 100 Mbits/s 1 Gbits/s •Délai_max: 80 ms 100 ms •Gigue_max: 10 ms •Uptime: 2h •Prix: 4 Euros / Gbit 5 ROMP U 54 Thanks to Lionel Touseau .SLA SOA et Accord de niveau de service •Débit: 100 Mbits/s •Délai_max: 80 ms Scénario .réseau •Gigue_max: 10 ms •Uptime: 2h •Prix: 4 Euros / Gbit Serv2 .SLA •Débit: 1 Gbits/s •Délai_max: 100 ms •Gigue_max: 10 ms •Uptime: 2h •Prix: register 5 Euros / Gbit Requirements .18/07/2010 Serv1 .

Localiser Composer Orchestrer ou Coordonner Substituer Négocier et Courter Conformément au SLA 55 .18/07/2010 Les points durs Décrire Rechercher.

DPWS DNS-SD SLP JINI Centralisés OSGi (pour Java) Un peu à part REST ESB 56 . …) UPnP (Universal Plug and Play). OASIS.18/07/2010 Les (principaux) représentants Distribués Web Services (W3C.

XACML. 57 Security SAML. XKMS Transactions BTP. MIME.18/07/2010 Web Services Global picture Business Process BPEL. WSFL … Management WSP. WTP Advanced Extended Core Base .. … Discovery UDDI Description WSDL Exchange SOAP Transport HTTP. JMS..

JSON. Irvine. KIS (Keep It Simple) for RIA.Representational State Transfer Fielding. Doctoral dissertation.18/07/2010 Remarque REST .0 … Vision CRUD de ce que doit être un service Retour au client-serveur SQL (années 90) Technologies Web Transport HTTP/HTTPS Sans état (stateless) encore moins transactionnel Requêtes: POST/GET/PUT/DELETE for CRUD Réponses: what you want (XML. Architectural Styles and the Design of Network-based Software Architectures. mashups. Web 2. …) + status code 58 . HTML. University of California. Roy Thomas. 2000.

18/07/2010 Remarque Enterprise Service Bus [Chappell] Event-driven SOA Couplage faible Piloté par la réception d’événements interaction asynchrone de type publish-subscribe routage des événements (Médiation) … Exemple d’API JBI (Java Business Integration (JSR 208. …) Composants ESB pouvant s’ajouter (pluggable) Contrat fonctionnel : WSDL Administration : JMX 59 .

18/07/2010 60 .

ISBN 059600-675-6 61 . IDEA Group. (June 1.18/07/2010 Bibliographie Conférences & Journaux Les premières: ICSOC. ISBN 1-59140-426-6 David Chappell . 2005. Enterprise Service Bus. on SOC Cependant chaque grande conférence a sa track ou son workshop SOA/SOC Livres x*100 now … Zoran Stojanovic . 2004). Ajantha Dahanayake. IEEE Trans. SCC. « Service-Oriented Software System Engineering: Challenges and Practices ». O'Reilly. ICWS.

18/07/2010 La semaine prochaine Les plateformes dynamiques de services Motivations Sensibilité au contexte Comportement autonomique Exécution sans interruption de service (Non-Stop) Définition Deux représentants OSGi UPnP 63 .

uninstallation centralized platforms / distributed platforms Non-stop runtime Dynamism must be taken into account by developers Not easy since not the primary concern 64 .18/07/2010 Dynamic Service Platform (DSP) Execution environnement for DSOA based applications Application : set (orchestration:choregraphy) of services Service : contractually defined Requires service trading and late-binding Supports partial installation. update.

18/07/2010 Dynamic Service Platform Zoo Invocation JINI OpenWings CORBA CosTrading UPnP V1 DPWS Web Services SLP / DNSSD OSGi Remote (RMI) Remote (RMI IIOP ) Remote (IIOP) Remote (HTTP/SOAP) Removal Lease Connector No Message Bye No Message Bye Java Event Registry Type Distributed (ad-hoc) Distributed (?) Distributed (?) Distributed (ad-hoc) Centralized (replicated ) Distributed Centralized Programming Language Java Java all all all all Java 65 Remote (HTTP/SOAP) / Locale (Référence) .

18/07/2010 Annexe Quelques modèles SOA 66 .

18/07/2010 SeCSE Service Description Model 67 .

18/07/2010 SeCSE Service Discovery Model 68 .

18/07/2010 SeCSE Service Monitoring Model 69 .

Thone. Heckel.18/07/2010 Baresi. Varro – Structural types for SOA (2005) 70 .

Thone. Varro – Static architectural service model (2003) 71 .18/07/2010 Baresi. Heckel.

Benatallah.Service Interaction (2005) 72 .R. Dijkman . M.18/07/2010 B.

Benatallah.R. M.18/07/2010 B.Service Interaction (2005) 73 . Dijkman .

Papazoglou – Service Composition (2003) 74 .18/07/2010 Bart Orriens. P. and Mike. Jian Yang.

pdf 75 .com/wsla/WSLASpecV1-20030128.ibm.18/07/2010 SLA : Modèle d’accord WSLA http://www.research.