SOA - Architecture Orientée Service :Démystification

Page 1

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’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 “Bottom Up� 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

À suivre ‌ 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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.