SOA - Architecture Orientée Service : Démystification
Khaled BEN DRISS
Khaled.bendriss@oxia-group.com le Samedi 05 mai 2007 JCI
Un cabinet d'Architecture S.I.
Khaled.bendriss@oxia-group.com
2
Khaled BEN DRISS Consultant / Formateur Ingénieur de l'Ecole Centrale de Lyon (ECL 1991) Docteur de l'Université Paris 6 ( 1994) Ancien Maître Assistant à l'Ecole Polytechnique de Tunisie Fondateur Net-Progress Architecte de Système d'Information Khaled.bendriss@oxia-group.com
3
Plan • A quels besoins répond le SOA ? • Quels sont les principes de base du SOA ? • Quels sont les éléments clé d’une architecture orientée services ? • Quel est le cycle de vie d’un service ? • Quelles méthodologies permettent de mettre en oeuvre une architecture orientée services ?
Khaled.bendriss@oxia-group.com
4
SOA, différents points de vue • Two IT professionals were discussing their respective environments, when one asked the other, if his team was building a service-oriented architecture. The individual responded by saying : « My architect thinks it’s service-oriented, my developers insist it’s object-oriented, and my analysts whish it would be more business-oriented. All I can tell you is that it isn’t what it was before we started building Web services."
Khaled.bendriss@oxia-group.com
5
SOA, différents points de vue • C’est un signe des temps. SOA est devenu un des principaux focus de l’industrie informatique. • Tout le monde en parle, se réclame de cette mouvance
Khaled.bendriss@oxia-group.com
6
Objectifs des S.I. • Accès rapide, intégré et généralisé à l’information pertinente − en interne (Intranet) et en externe (Extranet, Internet)
• Système ouvert réduisant les coûts − capable d'inter-opérer avec les applications existantes − capable d'inter-opérer avec le monde extérieur (Extranet, Internet)
• Développement rapide d’applications (RAD) − utilisation de composants distribués − réduction des coûts de développement
• Administration simplifiée du système − depuis le Web avec des outils d'assistance
Introduction
Khaled.bendriss@oxia-group.com
7
Problématique de l’intégration en entreprise •Entreprises découpées en départements fonctionnels y compris le système d'information (SI) •Processus métiers des entreprises de + en + multi-départementaux Division B
Division A
CRM
Division C
ERP DB
Des Silos sans communication Khaled.bendriss@oxia-group.com
8
Problématique de l’intégration en entreprise •Entreprises découpées en départements fonctionnels y compris le système d'information (SI) •Processus métiers des entreprises de + en + multi-départementaux
Coûts considérables dans la gestion des flux entre départements et dans l’intégration de leurs SI
Khaled.bendriss@oxia-group.com
9
Problématique de l’intégration en entreprise • Les entreprises doivent s’adapter en permanence aux variations des marchés (diversification des offres commerciales, fusions, acquisitions, changement technologiques, …) • Leurs SI ne doivent pas être un frein à ces changements
SOA
C’est l’activité qui pilote la technologie et non l’inverse Khaled.bendriss@oxia-group.com
10
Hier : plat de spaghettis
• Développements coûteux • Interconnexions redondantes (point à point) • Grande complexité • Maintenance difficile Khaled.bendriss@oxia-group.com
11
Intégration de services Service Consumers
SOAP/HTTP
SOAP/HTTP
Service Consumers
Service Providers
SOAP/MQ
Service Providers
Legacy Systems
• Solution provisoire !
Khaled.bendriss@oxia-group.com
12
Service Oriented Architecture fournisseurs
Consommateurs
de Services
De Service
Courtier de Services
Khaled.bendriss@oxia-group.com
13
Service Oriented Architecture fournisseurs
Consommateurs
de Services
De Service
Courtier de Services
SĂŠcuritĂŠ Transformation
SLA
Monitoring
Annuaire
Khaled.bendriss@oxia-group.com
14
SOA, différents points de vue
virtualization des Services, visibilité, sécurité
Business
IT Ingénieur Système
Architecte #$%! bugs…I need a Diet Coke…
Développeur
Khaled.bendriss@oxia-group.com
15
Point de vue du développeur • • • • • • • • • • • •
Classes ? Composants ? Services ? Marshalling ? Corba ? Idl ? Spring ? .net ? WebServices ? Interopérabilité ? Langages Java, C#? … Khaled.bendriss@oxia-group.com
16
Point de vue de l’ingénieur système • Configuration des services ? − Et s’ils sont déplacés
• Sécurité des services ? • Intégration dans mon système ? • Qui a le droit ? • Interopérabilité ? • Montée en charge ? Disponibilité ? QOS • ESB & hardware & software • Installation ? Migration ? Khaled.bendriss@oxia-group.com
17
Point de vue de l’architecte • Spécifications des composants ? • Savent-ils parler entre eux ? • Granularité ? • Contrat ? • Qualité de service ? • Asynchronisme ? • Indépendance des briques ? • Réutilisation ? • Urbanisation ? Khaled.bendriss@oxia-group.com
18
Point de vue du responsable IT du projet • Indépendance entre les briques ? • Assemblage ? • Orchestration ? • Intégration ? • Interopérabilité ? • …
Khaled.bendriss@oxia-group.com
19
Point de vue du responsable métier • Réactivité ? • Souplesse ? • Accès des partenaires ? • Retour sur investissement ? • Capacité d'intégrer de nouveaux services ? • …
Khaled.bendriss@oxia-group.com
20
Quels sont les principes de base du SOA ?
Khaled.bendriss@oxia-group.com
21
SOA est une évolution des plate-forme passées
• SOA est une évolution des plate-forme passées, • tout en préservant les caractéristiques réussies des architectures traditionnelles, • tout en y ajoutant quelques principes nouveaux.
• SOA est un paradigme abstrait, base de l’architecture distribuée sans aucune référence à une implémentation technique (souvent implémentés sous forme de Web Services, mais pas obligatoirement)
Khaled.bendriss@oxia-group.com
22
SOA & Architecure • SOA représente une architecture ouverte, exensible, fédérée et composable qui promeut une orientation service et qui est composée de services − − − − −
Autonomes Capables de QOS Non liés à des vendeurs Intéropérables Potentiellement réutilisables
Khaled.bendriss@oxia-group.com
23
Notre définition de la SOA • La SOA c’est structurer − une application, − un bloc applicatif, − voire le SI,
en services contractualisés • Afin d’adresser les enjeux de − Politique d’interopérabilité • mise en œuvre de services globaux entre blocs applicatifs
− Politique de réutilisation • recherche de la réutilisation à l’intérieur d’un bloc applicatif
− Assurer la pérennité des applications • "Faire du nouveau avec de l'ancien" Khaled.bendriss@oxia-group.com
24
Dans SOA il y a Service ? • SOA est une histoire de conception pas de technologie : penser Architecture et Service. • Avant tout : un service doit être "abstrait" : il n’est pas lié à une implémentation. • Exemple − − − −
Service d'enregistrement d'un abonnée Carta+ (Tunisiana) Service de réservation d'un train Service de diffusion d'information Service de demande de l'état d'une commande (Tunicommerce : Gs1 Tunisie) Khaled.bendriss@oxia-group.com
25
Qu’est ce qu’un Service (au sens SOA) ? • Partage la caractéristique suivante d’un objet − Modulaire (ensemble de fonctionnalités qui font sens)
• Partage les caractéristiques d’un composant − Boite noire (séparation interface/implémentation) − Indépendant de la localisation − Neutralité vis-à-vis des protocoles de transport
• Correspond à un périmètre fonctionnel exposé à des consommateurs (une granularité plus forte qu’un composant) • Expose un petit nombre d’opérations offrant un traitement de bout en bout • Est faiblement couplé • Sans état Khaled.bendriss@oxia-group.com
26
4 propriétés du service à retenir •Un Service est Autonome
•Un Service expose un Contrat
in
Conditions Générales de Vente Règlement Intérieur Vos droits/Vos devoirs
out
•Les Frontières entre services sont Explicites
•Les services communiquent par messages
Khaled.bendriss@oxia-group.com
27
4 propriétés : conséquences • SOA véhicule des Messages et non des objets • Le consommateur (client) est découplé de l’architecture technique du service qu’il invoque
• Le consommateur et le fournisseur n'ont pas forcément les mêmes technologies
• Importance de l'Architecture ++ Khaled.bendriss@oxia-group.com
28
Découpage du cycle de vie d’un service • 4 grandes phases : − Identification − Spécification − Développement − Gestion
• 1 aspect traversal : la gouvernance − Les architectures orientées service impliquent une vision globale − La gouvernance permet de casser les silos de l’entreprise Khaled.bendriss@oxia-group.com
29
SOA
Khaled.bendriss@oxia-group.com
30
Et les Web Services dans tout cela?
Khaled.bendriss@oxia-group.com
31
SOA n'est pas Web Services • SOA est un paradigme abstrait, base de l’architecture distribuée sans aucune référence à une implémentation technique • L'accent est mis sur • les standards • L'interopéarbilité • Le couplage faible
• Les Web Services offrent une implémentation possible mais pas nécessaire
Khaled.bendriss@oxia-group.com
32
"Architecture" Web Services SERVEUR Service Provider
SERVEUR Service Provider Request
Publish Publish Request
SERVEUR Service Provider
Service Registry
Publish
SERVEUR
Publish Request Find SERVEUR Service Provider
WEB-HTTP
Request Service Requester
CLIENT
Khaled.bendriss@oxia-group.com
33
Les Composants • Service Provider (Fournisseur de service) − Application s'exécutant sur un serveur et comportant un module logiciel accessible par IxxNet en XML
• Service Registry (Annuaires de service) − Annuaire des services publiés par les providers (UDDI) − Géré sur un serveur niveau application, entreprise ou mondial
• Service Requester (Demandeur de service) − Application cliente se liant à un service et invoquant ses fonctions par des messages XML (SOAP)
Khaled.bendriss@oxia-group.com
34
Qu'est ce qu'un Web Service ? • Définition [W3C] − Un Web service est un système logiciel identifié par une URI, dont les interfaces publiques et les liens sont définis et décrits en XML. − Sa définition peut être découverte par d'autres systèmes logiciels. − Ces systèmes peuvent interagir avec le service Web d'une manière prescrite par sa définition, en utilisant des messages XML portés par les protocoles Internet.
• Exposition − Langage WSDL (Web Service Description Language) utilisé pour décrire le service − Similaire à IDL mais basé sur XML
• Activation − Protocole Web au-dessus de HTTP (RPC XML, SOAP) − Autres protocoles possibles … Khaled.bendriss@oxia-group.com
35
Services Web ~ quatre spécifications XML • SOAP : pour le transport des données et l’infrastructure de communication • WSDL : pour la description des services offerts • UDDI : annuaire pour le référencement des services par les fournisseurs et leur découverte par les utilisateurs. • BPEL : décrit le processus métier
Khaled.bendriss@oxia-group.com
36
SOAP : Simple Object Access Protocol •Intégration de XML au-dessus de HTTP : •Pour accéder services, objets et serveurs •Indépendant de toute plate-forme Port de connexion (URL) Pare-feu
Pare-feu
Messages Procuration d'interface
Application Cliente
Appel
SOAP
Translateur SOAP
HTTP RPC local
Réponse Parser XML
Parser XML
Serveur d'application
XML-RPC et SOAP
Khaled.bendriss@oxia-group.com
37
Structure d'un message
Protocol Headers
Entête de protocoles (HTTP, SMTP, …)
<Envelope>
SOAP Envelope
<Header> SOAP Header
<Body> SOAP Body
XML-RPC et SOAP
Khaled.bendriss@oxia-group.com
38
WSDL (Web Service Description Language) - Proposition jointe IBM, Microsoft, Ariba - septembre 2000. - Permet de décrire le service Web, en précisant : - Les méthodes qu'il rend disponible; - Les paramètres d'entrée et de sortie; - et comment y accéder.
- Grammaire XML (schéma XML ) : Modulaire - Offre une interface qui est le point d’entrée du service.
Khaled.bendriss@oxia-group.com
39
Description des services: WSDL • Elément Type − Types des paramètres (schéma XML)
• Elément Message − Appel et retour de chaque opération
• Elément Port type − Groupe d'opération
• Elément Binding − URL de l'opération − Type de protocole
Khaled.bendriss@oxia-group.com
40
UDDI : Annuaire des services •Universal Description, Discovery and Integration
Annuaire UDDI
Annuaire UDDI
•Annuaire des services − décrit par un document − WSDL, autre …
•Accessible en SOAP
Gérant de requêtes
•Fonctions −Enregistrer votre société Enveloppe + −Enregistrer des services Document Service −Enregistrer des opérations Programme −Découvrir des services −… Khaled.bendriss@oxia-group.com
41
UDDI : utilité
Scénario classique d'utilisation d'UDDI Khaled.bendriss@oxia-group.com
42
Le langage BPEL : Business Process Execution Language • Standard de l’OASIS • Norme permettant de décrire des processus en XML • Propose les fonctions basiques d’un langage de programmation: − sequence, flow, loop, switch…
• Identification des Instances de Process • Gestion des transactions longue durée (scope, compensation) • Gestion des erreurs XML-RPC et SOAP
Khaled.bendriss@oxia-group.com
43
BPEL le chef dâ&#x20AC;&#x2122;orchestre
Khaled.bendriss@oxia-group.com
44
Services Web au service du SOA • Une technologie "enabling" − facilite l'interopérabilité et la connaissance
• Capacité d'exposer des programmes existants − Exposer des services écrits en Cobol!!!
• SOAP : Un protocole normalisé par le W3C • XML : "chaîne de caractères" focalisée sur le contenu semistructuré, multi - plateforme • Apporte lisibilité, validation, contrôle, interopérabilité − IBM, Sun, Microsoft supporteront le même protocole
Architecture
Khaled.bendriss@oxia-group.com
45
SOA s'applique Ă tout les niveaux ?
Khaled.bendriss@oxia-group.com
46
Rappel de la définition de la SOA • La SOA c’est structurer − une application, − un bloc applicatif, − voire le S.I., en services contractualisés
•
Khaled.bendriss@oxia-group.com
47
Architecture en couches (simplifiée)
Présentation Applications Services métier Services de base Données Khaled.bendriss@oxia-group.com
48
Services de base • composants offrant un service générique à tout service métier qui veut l’utiliser • valeur ajoutée − permet d’économiser des coûts de développement et d’exploitation: develop once, use many − permet aux développeurs de services métier et d’applications de se concentrer sur les services métier − cohérence pour les utilisateurs des différentes applications − simplifie l’offre et le monitoring de processus et de chaînes de processus Khaled.bendriss@oxia-group.com
49
Services de base • • • • • • • • • •
gestion des utilisateurs signature électronique transformation de formats ticketing et accusé de réception time stamping routage gestion de statut orchestration logging ...
Khaled.bendriss@oxia-group.com
50
Services métier et applications • développement de services métier grâce à la coordination de composants et l’utilisation de services de base • développement d’applications répondant aux besoins des différents types d’utilisateurs par une coordination des services métier • où les mêmes composants et services de base peuvent être utilisés pour le développement de différents services métier, et où les mêmes services métier peuvent être utilisés pour le développement de différentes applications
Khaled.bendriss@oxia-group.com
51
SOA : des applications, Vue comme des clients d'autres applications Clients
Application
Application
Application
Services ExposĂŠs
Enterprise Service Bus Fournisseurs
Orchestration
Orchestration
Enterprise Application Integration Services ConsultĂŠs
Application
Application
Application
Khaled.bendriss@oxia-group.com
52
Principes fondamentaux de l’architecture SOA Il n’existe pas une recette pour garantir le succès de la mise en place d’une SOA mais des principes à respecter : − − − −
Discussion entre métier et IT Utilisation des use case métier Utilisation de standards Pas de remise en cause de l’existant lors d’évolutions technologiques − Découplage entre fournisseur et consommateur de services − Indépendance des ressources vis à vis de ceux qui les utilisent
•Quelques méthodologies encours : Praxeme … Khaled.bendriss@oxia-group.com
53
Identification des services :2 méthodologies • Approche Top-down : − Pour démarrer un nouveau projet − Dans le cadre d’un SI urbanisé
• Approche Bottom-up : − Pour réutiliser l’existant (non SOA) − On part des morceaux, on rassemble les bouts
Khaled.bendriss@oxia-group.com
54
Approche Top Down
WSDL
New & reusable Services
Service Specification
Requirements NonInterruptible
Story Board or process model
Receive
Invoke
Invoke
Reply
Invoke
Reply Fault
New Application Orchestration (business rules and processes)
Use Cases
Khaled.bendriss@oxia-group.com
55
Approche â&#x20AC;&#x153;Bottom Upâ&#x20AC;? Legacy application
WSDL Service Specification
reusable code
New Application NonInterruptible
Receive
Invoke
Invoke
Reply
Invoke
Interface Specification Story Board or process model
Reply Fault
Orchestration (business rules and processes)
New Requirements Change Cases
Khaled.bendriss@oxia-group.com
56
Approche “Meet in the Middle” • On utilise rarement une unique approche • Dans la pratique : − Faire l’analyse Top-down sans se préoccuper de l’existant − Faire l’analyse Buttom-up en ne considérant que l’existant − Comparer les services “remontés” avec ceux déduits des Uses case − Faire les compromis nécessaires pour réutiliser le maximum de code
Khaled.bendriss@oxia-group.com
57
Démarche articulée autour de 3 principes • Une démarche projet centrée sur le Dossier d’Architecture Générale (DAG) − Fédérateur des visions de tous les acteurs du projet
• Un socle de « référentiels SI » − Référentiel d’architecture (modèles d’architecture, principes organisationnels, outils et méthodes) − Cartographie générale (services, référentiels, processus) − Schéma directeur SI (cible et trajectoire)
• Une démarche de capitalisation fondée sur les retours d’expérience des projets − Alimentée par les équipes opérationnelles Khaled.bendriss@oxia-group.com
58
Où en est SOA par rapport à ce Cycle
Khaled.bendriss@oxia-group.com
59
BOSOA : Business Oriented SOA !!
Service Providers
Service Consumers
Business Process Flows
Service Broker(s)
Adaptors
Transformation
Security
Business Rules
Policies
Monitoring
Registry
Ă&#x20AC; suivre â&#x20AC;Ś Khaled.bendriss@oxia-group.com
60
Synthèse …Vers…
Depuis… • Orienté fonctionnalités
• Orienté processus
• Conçu pour durer
• Conçu pour changer
• Cycle de développement long
• Développement et déploiement interactif
• Silos applicatifs
• Orchestration de Services
• Couplage fort
• Couplage faible
• Orienté Objet
• Orienté message
Khaled.bendriss@oxia-group.com
61
SOA : Simple, Opérationnel et Accessible ! Un dernier conseil : Optimiser les performances de votre S.I. en fonction de vos besoins métiers
C’est l’activité qui pilote la technologie et non l’inverse
Khaled.bendriss@oxia-group.com
62
Merci Khaled BEN DRISS Net-Progress Conseil & IngÊnierie en Système d'Information GSM : (216) 98 33 46 17 email : Khaled.bendriss@net-progress.net
Khaled.bendriss@oxia-group.com
63