Cours 2007-2008 MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Architectures Orientées Services Module 5 Les expressions de processus.

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

ACTIVE DIRECTORY. Qu'est-ce un service d'annuaire ?: Un service d'annuaire peut être comparé à un agenda téléphonique, celui- ci contient au départ des.
Le modèle de communication
SOA et Services Web Dr. Rim Samia Kaabi 26 mars 2017.
Transformation de documents XML
Xavier Blanc Web Services Xavier Blanc
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
Connecter des données métier à Office SharePoint Server 2007 via le Business Data Catalog.
Architectures Orientées Services
Cours MIAGE « Architectures 0rientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Module Linitiative SCA.
Julien HERON.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Urbanisation des Systèmes d'Information - Henry Boccon-Gibod1 Urbanisation de système d'information PLM 4 (Product Lifecycle Management) Préoccupation.
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Virtualisation dorchestration de services TER Master 1 Infomatique 4 Avril 2008 Encadrant : Philippe Collet.
L’architecture .net et ASP.net
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
1 Les technologies XML Cours 3 : Les Web Services – Implémentation – JAX-WS Février Version 1.0 -
Cours 2 : Les Web Services Concepts Généraux
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
Urbanisation et Architecture CNAM NFE107
Introduction aux services WEB
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
JAVASERVER FACES Un framework Java pour le développement Web.
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Sommaire Objectif de Peakup Principes de fonctionnement
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
.Net Remoting.
GESTION DE PARCS D’ORDINATEURS
OIL & UPML DREVET - HUMBERT Introduction OIL : un langage de description dontologies UPML : un langage de description de systèmes à base.
Structures de données IFT-2000
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Patrons de conceptions de créations
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
INTRODUCTION.
Variables et accès en Java. Déclaration des variables final transient static private Printer hp; transient => ne doivent pas être sérialisées volatile.
Créer des packages.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Le web service
Mastère Professionnel Systèmes de Communication et Réseaux
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Tutorat en bio-informatique
Dyalog.Net Peter Donnelly Managing Director Dyadic Systems Toronto 30/10/2002.
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Module : Langage XML (21h)
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
1 Journee gdr COSMAL 27/01/2009 Exécution Distribuée et Agile de Compositions de Services Françoise Baude & Virginie Legrand
21/02/2003DEA DISIC 1 Grid Computing Programming the grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications Tarak.
Web Services 17/01/2009.
Architecture Client/Serveur
Introduction aux technologies des web services en Java EE
TP D’UML Groupe N° 3.
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
IFT 703 Informatique cognitive ACT-R Modèle symbolique et perceptuel
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
Visual Information Solutions FastDL. Visual Information Solutions IDL pour le traitement parallèle ? -Beaucoup d’expériences/simulations génèrent de «
Transcription de la présentation:

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Architectures Orientées Services Module 5 Les expressions de processus d’orchestration BPEL L’initiative SCA

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Plan du module La problématique de « l’orchestration » des services sur le Web –Les langages d’expression de processus SOA L’initiative des composants standards d’architecture des services

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod BPEL : Business Process Execution Language BPEL est un langage XML standard pour l’expression de procédures d’appel à des services Il se décline en deux standards complémentaires –BPEL4WebServices Définit le langage pour l’organisation des appels aux web services –BPEL4People Définit le langage pour spécifier l’organisation des gestes des acteurs humains dans une architecture de web services

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Rappel sur la notion de services Un « web service » n’est que la description d’un service ; il ne spécifie en rien où et comment il fonctionne. Pour qu’il soit utilisable la description d’un web service doit spécifier un « binding » qui définit l’implémentation de l’appel à ce service. Le « binding » le plus fréquent est SOAP/HTTP pour appeler des services via le Web ; une autre forme de « binding » est celui de Java qui permet de définir des implémentations locales d’appel à des services. Par exemple si vous voulez écrire un web service permettant à des clients d’écrire quelque chose d’original, comme « hello world ! » vous pouvez l’écrire en java, et l’exposer comme un web service

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Option d’architecture Ordinairement BPEL est un langage de programmation coté serveur: –déployé pour servir et suivre une requête venue coté client –Déployé comme une sorte de Proxy commode pour un ensemble d’applications anciennes Dans les deux cas l’enchaînement typiquement des événements : –Le web service client demande quelque chose au serveur, via un navigateur ou un autre serveur –La requête du client est reçue par le serveur de processus BPEL –La requête du client est identifiée comme une nouvelle instance du processus BPEL invoqué pour le servir –Le client continue à interagir avec le processus en cours avec des échanges mutuels de messages selon l’organisation du processus, jusqu’à achèvement de celui-ci –L’instance du processus disparaît alors que le client achève son activité

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod BPEL : un langage XML de programmation Comme tout langage BPEL comporte : –Des déclaration de variables (typées) Utilisant le typage de données de XML-Schema (XSD) –Des entrées sorties Faisant appel à des descriptions de web services WSDL –Une logique d’exécution BPEL soi même L’exemple didactique qui suit montre un appel élémentaire pour un web service aussi élémentaire

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod La structure d’une expression BPEL entrées sorties Déclaration de Variables logique d’exécution

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod <process xmlns=" xmlns:print=" <import importType=" location=" namespace=" /> <partnerLink name="printService" partnerLinkType="print:printLink" partnerRole="printService"/> Hello World $MaVariable.value Approche par l’exemple : « hello world »

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod <process xmlns=" xmlns:print=" <import importType=" location=" namespace=" /> <partnerLink name="printService" partnerLinkType="print:printLink" partnerRole="printService"/> Hello World $MaVariable.value Les PartnerLinks peuvent être vus comme les emplacements pour les objets auxquels vous vous adressez effectivement Si un web service est décrit par une ressource WSDL, un PartnerLink définit une instance du web service invoqué. Il se mappe vers un « portType » WSDL de sorte qu’à un partnerLink correspond un seul web service. Approche par l’exemple L’adresse du web service invoqué

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod <process xmlns=" xmlns:print=" <import importType=" location=" namespace=" /> <partnerLink name="printService" partnerLinkType="print:printLink" partnerRole="printService"/> Hello World $MaVariable.value Approche par l’exemple La description d’un web service est semblable à la description de la façon dont on procède pour se faire livrer une pizza : vous appelez, donnez votre adresse, et spécifiez la ou les sortes de pizzas que vous voulez. L’élément « Partnerlink » est semblable aux Post-It ® sur lequel vous avez reporté le noms et les n° de teléphone de différents marchands de pizza… vous vous servez d’un de ces Post-It pour appeler un marchand particulier (sorte de Web Service). au numéro appelé correspond l’élément d’addresse 'endpoint ' défini dans la description WSDL ou dans la spécification BPEL, où il peut être placé dans un élément partnerLink pour appeler un autre fournisseur. Un « partnerlinks » spécifie aussi la façon dont d’autres web services s’adressent à vous. Le partner link définit ici le rôle du web service appelé. De façon symétrique, cette définition du « partnerlink » pourrait avoir un attribut ‘myRole' qui définirait le web service que cette expression BPEL implémenterait.

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod <process xmlns=" xmlns:print=" <import importType=" location=" namespace=" /> <partnerLink name="printService" partnerLinkType="print:printLink" partnerRole="printService"/> Hello World $MaVariable.value Approche par l’exemple Les Variables sont traitées in BPEL soit au travers des « endpoints » des web service ou par assignation. Cet exemple montre l’assignation d’une valeur littérale à la variable nommée 'MaVariable'. Dans ce cas cette variable est un message WSDL avec une partie nommée 'value‘ de type 'xsd:string' type. Il peut donc il y avoir d’autres contenus de type 'xsd:string‘ assignée à cette variable. La syntaxe '$varname' utilisée pour référencer la variable obéit au standard XPATH. Le séparateur '.' est utilisé pour spécifier la partie WSDL du message. Si cette variable ou cette partie était un complexType XSD un séparateur '/' pourrait être utilisé pour spécifier un sous élément (e.g. '$MaVariable.value/subvalue'). Les Variables contiennent des données en BPEL. peuvent contenir des valeurs selon un type XSD ou un message WSDL. Dans cet exemple, la variable nommée 'MaVariable' est declarée comme un conteneur de messages WSDL de type 'print:PrintMessage'. Au lieu d’un attribut 'messageType', la variable aurait pu avoir un attribut 'type' qui aurait defini un type XSD simple ou complexe tel que 'xsd:string' ou 'xsd:integer'. Les Variables sont utilisées pour passer des paramètres en entrée et en sortie des « endpoints » de web service.

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod <process xmlns=" xmlns:print=" <import importType=" location=" namespace=" /> <partnerLink name="printService" partnerLinkType="print:printLink" partnerRole="printService"/> Hello World $MaVariable.value Approche par l’exemple Analogie (en Programmation) invoquer un web service est semblable à l’appel d’une fonction ou une méthode via un API ou un objet. Une différence importante est que BPEL ne contient aucune référence explicite à cet API ou cet objet. Il ne connaît que la façon de lui « parler » et un moyen d’accéder à une d’implémentation. (Dans la vraie vie) l’appel du web service est semblable à l’appel téléphonique au marchand de pizza (dont vous ne connaissez que le numéro, et dont l’adresse effective vous indiffère de même que la marque du scooter du livreur. Les éléments variables que vous transmettez sont le nombre et les sortes de pizza voulues. Le seul lien que vous avez est ce numéro qui établit la relation partnerLink is. BPEL lit ce numéro fait l’appel et passe la commande. L’élément 'invoke' en BPEL s’adresse à un endpoint de web service. C’est à cet endroit que le processus passe la valeur 'Hello World' (placée dans la variable 'MaVariable') au web service 'print'. Le lien spécifié dans l’élement partnerLink indique au moteur BPEL l’adresse du web service à appeler. L’operation 'print' indique ce que vous attendez de lui et l’attribut 'inputVariable' indique que le message WSDL d’entrée vient de la variable 'MaVariable'. Ce que fait effectivement le Web service est spécifié dans le contrat WSDL..

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod <definitions xmlns=" targetNamespace=" xmlns:tns=" xmlns:xsd=" xmlns:wsdl=" xmlns:format=" xmlns:java=" > contrat WSDL du service invoqué

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod BPEL 4 People Les humains doivent être pris en compte dans des interactions longues

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod BPEL 4 People : vocabulaire Business Administrator. A person with an interest in the smooth running of all process instances of a particular process type. Generic human role. A descriptor identifying how a person interacts with the process. It includes the specific human roles such as potential owners, owners, and process initiator. Inline task. A task defined within a BPEL process either as part of a people activity or within the scope of a BPEL process so that it can be reused in different parts of the same BPEL process. Owner. A potential owner of a task becomes the owner when he or she claims the activity. People activity. A new BPEL activity that assumes that people are involved in the execution of the process activity. People links. A people link represents the group of people associated with a process or a people activity. It is evaluated at runtime using a people query.

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod BPEL 4 People : vocabulaire People query. An expression based on an organizational model used to resolve users who take on the responsibility for a particular generic human role. People resolution. The act of identifying the people who take on the responsibility for a particular generic human role. Potential owners. People who are entitled to claim and complete an activity. This is one type of generic human role. Process initiator. A person that creates an instance of a process, either directly or indirectly. This is one type of generic human role. Process stakeholder. A person with an interest in the outcome of the process instance. This is one type of generic human role. Standalone task. A task defined outside the scope of a BPEL process, but it can be referenced and invoked from different BPEL processes. Task. An indivisible unit of work performed by a human being.

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Approche ergonomique BPEL n’est qu’un nouvel avatar des multiples formalisation de processus opérationnel, –( Petri, Grafcet etc…) –Adapté à la problématique de l’appel des web services –Nécessaire et suffisant pour les adeptes du web commercial, –Exigeant un minimum de culture informatique. –Nécessitant une modalité d’expression graphique BPMN (Business Process Model Notation) –Est une notation d’expression graphique homologue d’une expression BPEL –Se veut intuitif pour être adapté à la culture des adeptes du commerce électronique

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Bibliothèque des représentations graphique des entités BPMN

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod BPMN : Événements et activités

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod BPMN : Tests et connexions

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod BPMN : Artefacts et « lignes de nage »

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod BPMN : Exemple de Workflow ordinaire Exemple de processus simple de rappel, par un web service, des questions à traiter par un groupe de travail

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod BPMN : discussion

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod BPMN : vote par

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod BPMN : dépouillement des votes

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod L’initiative SCA L’initiative SCA vise à une redéfinition logique de ce que devrait être l’architecture d’application orientée service Qu’est-ce qu’une application –un ensemble de composants logiciels travaillant ensemble –fondés sur des technologies homogènes ou non –tournant sur un ou plusieurs systèmes d’exploitation Pour qu’une application s’organise deux choses sont nécessaires : –un moyen de créer des composants –un moyen de décrire comment ils travaillent ensemble L’objet de SCA est une approche générale pour répondre à ces deux nécessités –Elle encapsule les technologies existantes (BPEL, UDDI, WSDL, SOAP) –Elles étend son modèle à toute technologie capable de l’implémenter

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA : Composants et Composites Concepts de base –Intérieur et extérieur de domaine SCA –Composites et composants, –Langage de description d’une configuration de composite Client SCA composite SCA Component SCA Component SCA Component DBMS SCDL Configuration XML Service Component Definition Language “skiddle” Extérieur Intérieur

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Syntaxe XML de Service Component Description SCDL

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod schéma XML de composition SCA

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA : Component

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA : Service et Binding

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA Domain SCA : Notion de domaine, Notion de Domaine –périmètre d’une offre de solution (i.e. par un vendeur (!)) SCA composite SCA Component SCA Component SCA Component SCA composite SCA Component SCA Component SCA Component SCA composite SCA Component Ordinateur Processus

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA : ouverture multi domaines SCA Domain SCA composite SCA Component SCA Component SCA Component SCA composite SCA Component SCA Component SCA Component SCA composite SCA Component SCA Domain SCA composite SCA Component SCA Component SCA Component Non SCA application Non SCA application

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Composant typiqueSCA Un composant SCA est une instance d’implémentation d’une fonction –Telles qu’un processus BPEL –Telles qu’une classe Java –… Une configuration SCDL définit comment un composant interagit avec son entourage Quelle que soit sa technologie un composant SCA se caractérise par –Des services, excusant des opérations –Des propriétés variables valorisées à l’instanciation du composant –Des références éventuelles à d’autres services SCA ne préjuge pas de la technologie sous jacente au composant –BPEL et WSDL –Classe Java –… SCA Component QB PA référence service propriété

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Communication La communication s’effectue par des « bindings » explicites hors des domaines circonscrits SCA Component QB PA SCA Component SCA Component Non SCA application SCA Component

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Exemple d’implémentation Java Pour autoriser l’appel par des procédures distantes en Java, SCA utilise un mécanisme d’annotation, plutôt qu’un mécanisme d’appel d’ API Cet exemple commence par l’import d’une annotation d’un package standard SCA. Il utilise ensuite cette pour indiquer que le service fourni par l’interface AS peut être accessible à des clients distants. Les autres informations nécessaires pour accéder à ce service sont reportées dans la spécification SCDL Ici l’interface AS est donc accessible par un processus externe, alors que l’interface MD n’est accessible que par un processus interne comme instance de la classe Calculator import public interface AS { int add(int a, int b); int subtract(int a, int b); } public interface MD { int multiply(int a, int b); int divide(int a, int b); } public class Calculator implements AS, MD{ public int add(int a, int b) { return a + b; } public int subtract(int a, int b) { return a - b; } public int multiply(int a, int b) { return a * b; } public int divide(int a, int b) { if (b == 0) { throw new IllegalArgumentException(); } else { return a / b; }}}

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA pour JAVA : référence SCA prévoit qu’un service puisse faire appel à un autre service en le référençant; pour l’implémentation Java, SCA spécifie ce référencement par Par exemple pour un interface nommé protected MonitoringService monitorService; Ainsi spécifié l’accès à au service monitorService ne nécessite pas d’instancier la classe MonitoringService. Il appartient au « runtime »SCA de localiser et de valoriser l’accès aux méthodes du service monitorservice. monitorService.usageCount(x); La façon dont un runtime trouve l’instance d’un service qui satisfasse une référence est spécifié au niveau du Domaine, (cependant cela ne fonctionne pas pour l’invocation de service dans un autre domaine)

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA pour Java : Propriétés Comme pour les références, SCA pour Java utilise le même mécanisme pour les propriétés protected String region; Cette annotation peut être assignée à un champ d’une classe Java, ou d’une méthode pour assigner une valeur. Elle indique que cette valeur devra être lue selon les prescriptions de la spécification SCDL du composite auquel le composant appartient. Les propriétés peuvent être plus complexes, le principe reste le même : fournir le moyen de configurer un composant par des valeurs lues par le runtime

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Architecture classique vs. Architecture SCA Application Jax-WS SOAP JMS Queed messaging protocol EJB IIOP RMI Binary protocol SCA Component SCA Component architecture SOAP Queed messaging protocol IIOP Binary protocol Web service binding JMS binding EJP Session Bean binding SCA binding Une application classique implique la programmation de connecteurs spécifiques à chaque protocole employé Plutôt que d’introduire des connecteurs par des API vers différents protocoles SCA permet à tout service distant et toute référence de spécifier le protocole qu’il supporte au moyen de bindings Le modèle de programmation reste semblable quel que soit le protocole utilisé.

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA : spécification d’un binding Indique à la fois le type « web service » de l’association et son adresse SCA spécifie d’autres bindings, pour chaque technologie Java Message Service binding, EJB session bean binding. SCA permet ainsi d’associer toutes sortes de technologies distantes écrites en C, C++, Cobol etc.

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA pour Java : autres conventions En plus de précédente, le modèle de composant SCA pour Java en définit d’autres : indique qu’une opération ne renvoie pas de réponse, et donc ne bloque pas un processus. contrôle l’existence de l’instance du comosant; il peut par exemple être « conversational », ce qui implique de maintenir son état entre des appels ou « stateless », ne maintenant rien au contraire entre deux appels. permet de définir un interface callback pour supporter une communication bidirectionnelle, ce que SCA nomme bi-directional interfaces. Tous les atributs ne sont pas utilisables par tous les bindings. –Par avec l’option « conversational »ne peut être utilisé que par les protocoles pouvant passer des informations de session tels qu’un binding SOAP utilisant WS-ReliableMessaging.

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Configuration SCDL d’un composant Exemple de composant exploitant les ressources Java précédentes : Europe Exemple de composant exploitant une ressource BPEL Europe

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA : Composite ; le modèle d’assemblage de SCA SCA composite SCA Component D CA SCA Component PC SCA Component QB D A Q P B Promotion Wire

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA : spécification SCDL d’un composite Signifie au runtime SCA de tenter de connecter automatiquement les services et références entre composants du composite, en comparant leurs intitulés. Il est aussi possible de définir des liens explicites entre composants avec des éléments « wire » Les services et références promues définissent l’interface entre un composite et l’extérieur

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA : policies Les interactions entre les différentes parties d’une architecture peuvent être complexes SCA intègre des notions de « policy » pour exprimer les intentions relatives à ces interactions indépendamment de leur réalisation effective SCA définit deux grandes sortes de policies : –Interaction policies Modifie la façon dont les composants interagissent, par exemple pour prendre en compte des contraintes de sécurité ou de fiabilité. Elles concernent typiquement les bindings –Implementation policies Modifie la façon dont les composants se comportent localement. Les policies sont des éléments optionnels du langage SCDL –Dans son modèle pour Java SCDL prévoit aussi des annotations à associer aux interfaces, méthodes, … <operation name="xs:string" service="xs:string"? policySets="listOfQNames"? requires="listOfQNames"?/>* … …

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA Domain SCA : assemblage des notions SCA composite SCA Component D CA SCA Component PC SCA Component QB D A Q P B SCA Domain SCA composite SCA Component D A SCA Component QB D A QB Client DBMS SCDL Configuration SCDL Configuration Not SCA Windows Communication Fondation Service

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Technologies d’implémentation de SCA Solutions Libres : –Tuscany –Fabric3 –Eclipse ? Architecture typique d’un runtime SCA: –Chaque technologie est encapsulée dans un conteneur recevant les composants SCA runtime Java binding Web service binding EJB binding JMS binding Java SCA ContainerWS SCA ContainerCobol SCA Container SCA Component SCA Component SCA Component SCA Component SCA Component SCA Component SCA binding SCDL Configuration

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod SCA : quelques observations en guise de conclusion La technologie SCA est trop récente pour pouvoir faire valoir des retours d’expérience Elle est structurante des architectures orientés services, indépendamment des technologies employées, en associant la mode nouvelle des web services aux plus anciennes (EJB etc.) Elle est destinée à des « vendeurs de solutions logicielles, qui peuvent privilégier tel ou tel aspect de la spécification SCA est extensible… … les vendeurs ne se priveront pas d’en exploiter la possibilité comme avantage concurrentiel

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Un avis sur SCA relevé dans la presse (été 2007) Burton Cautiously Optimistic about SCA for SOA Rich Seeley, SearchWebServices.com The analysts who cover service-oriented architecture (SOA) for BurtonGroup Inc. have some reservations about the Service Component Architecture (SCA) specification, but have concluded the vendor backingis so strong "adoption may be inevitable.“ Touted as "a new programming model for SOA" by its vendor sponsors led by IBM and now making its way through the OASIS standards process, SCA is not yet baked into many products beyond IBM's WebSphere, but Burton analysts expect adoption to pick up in Given its apparent inevitability as a vendor supported standard, Anne Thomas Manes, vice president and research director at Burton, spent more than an hour Tuesday in a Web seminar explaining SCA's potential promise and problems to clients. She said the concerns about SCA at Burton Group include the fact that SCA is made up of more than 14 specifications. Analysts are skeptical that the various technical committees working on those specifications can reach the goal of creating an overall standard to "simplify" service creation and composition. This leads to concern that SCA could suffer the same fate as Common Object Request Broker Architecture (CORBA), which failed to achieve its promise in the 1990s because, as one analyst put it, "too many cooks spoiled the broth." "There is some concern that SCA can hide all the complexities," she said. The good news is that SCA has potential, yet unproven, to be a language-and protocol-independent programming model for SOA. Languages that will be supported in SCA cover most of those a non-Microsoft coder would be working on today, ranging from COBOL to Ruby. Support is planned for Java, including Plan Old Java Objects (POJO), Spring, Enterprise Java Beans, C, C++, BPEL and PHP. See also OASIS SCA-TCs:

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Le Web3 et les architectures SOA Existe-t-il des relations entre ces notions ? À suivre dans un prochain cours…