Service Oriented Architecture Cours Master 2 Isi Esmt 22
Service Oriented Architecture Cours Master 2 Isi Esmt 22
Service Oriented Architecture Cours Master 2 Isi Esmt 22
Architecture (SOA)
Introduction à l’architecture orientée service
C’est quoi SOA ?
AGENDA Définitions – concepts généraux
Module 1 – Les avantages à utiliser SOA ?
Insuffisances des solutions actuelles
SOA Overview
Quand l’utiliser ?
Comment implémenter SOA ?
Méthodes et outils de mise en œuvre
Client Serveur
C’est quoi SOA ? Définitions – concepts généraux
Analystes
métier
C’est quoi SOA ? Définitions – concepts généraux
Les problématiques
Les problématiques
Les problématiques
Les problématiques
Développement coûteux
Interconnexions redondantes
Complexité de l’architecture
Maintenance difficile voire souvent impossible (swap précoce)
C’est quoi SOA ? Définitions – concepts généraux
La Solution :
Absence de Auto-description
contexte [discoverability]
Augmentation de la productivité
des employés
• Offre la capacité à casser les barrières organisationnelles (silos)
• Réduction en temps de cycle de développement des produits.
• Facilite la gestion des processus métier.
Les avantages à utiliser Insuffisances des
SOA ? solutions actuelles
Utilisation indépendante
Le faible couplage
de la plateforme
permet la flexibilité
• Il autorise ainsi les entreprises à sélectionner
le logiciel ou le matériel de leur choix.
• Il permet l'interaction de nouveaux canaux
avec les clients, partenaires et fournisseurs.
Quand utiliser SOA ?
Abstraction de la mise en
Réduction des coûts
œuvre des fonctionnalités
Raisonner en
Choisir un
termes Services et Sélectionner les
mécanisme de
non en termes services à exposer
communication
Objets
Penser à la
Penser à la sécurité
réutilisation
Comment implémenter Méthodes et outils de
SOA ? mise en oeuvre
Services :
Une fonction ou un traitement métier bien défini, autonome et ne
dépendant pas du contexte ou de l'état d'autres services
Connexions :
Lien reliant ces services distribués autonomes les uns aux autres
(HTTP/SOAP par exemple pour les services web).
Comment implémenter Méthodes et outils de
SOA ? mise en oeuvre
Souscription Publication
Bibliothèque des
descriptions des services Serveur hébergeant les
offerts (au format UDDI) applications (Provider)
Client
Message XML publication du service
Recherche du Requête (en WSDL)
service
Service offert (dans le
(Consumer) langage de la plate-forme)
Réponse
Message XML
Les services Web basés sur SOAP : SOAP est actuellement une
spécification et un standard dans le monde internet mais REST n’est pas
un standard et.
Lorsque vous disposez Lorsque les Lorsque le couplage fort Quand les choses
d'un environnement performances en est un avantage et non ne changent pas
informatique temps réel sont un inconvénient
homogène essentielles
ESB – Entreprise
Service Bus
SOA – ESB (Entreprise Service Bus)
…
SOA – ESB (Entreprise Service Bus) - Pourquoi utiliser un ESB ?
Billing CRM
Web user interface
DWH BI Autres..
Billing CRM
Web user interface
DWH BI Autres..
Les inconvénients d’une Integration E2E
• Complexité accrue
• Maintenance impossible (évolution ou
correction)
• Enormes impacts lors des « change
request »
• Flexibilité inexistante
Web user interface
SOA – ESB (Entreprise Service Bus) - Pourquoi utiliser un ESB ?
Solution apportée
Monitoring
Billing CRM BI
Services
Admin
registry
ESB
Autres.. DWH
Web user interface Web user interface
SOA – ESB (Entreprise Service Bus) - Fonctionnalités ?
Application Server
Business Process Execution Language Business Process Management
ESB as Gateway
• Il agit comme un point d’entrée vers un autre réseau.
• En tant que passerelle, il gère les données acheminées en interne ou en externe du
réseau.
• Si l'utilisateur souhaite accéder au service d'un réseau externe, il transmet le
paquet de données à la passerelle, qui se connecte ensuite à la destination de
service demandée.
SOA – ESB (Entreprise Service Bus)
Commercial
Microsoft Azure
IBM app connect
Mule ESB
SAP Process Integration
TIBCO Software
Web Service 1
Les services Web forment, sans nul doute, une « grande technologie » mais,
sans un moyen efficace de les gérer, ils ne parviendront pas à atteindre les
objectifs d’une SOA.
BPEL offre une norme commune sur la façon de publier plusieurs services, de
les orchestrer en processus métier, d'auditer et de gérer les résultats.
Présentation
BPMN 2.0
Business Process Model Notation
BPMN - Avènement
Plusieurs langages étaient utilisés pour la gestion des processus métier avec
deux tendances :
Les langages de modélisation (UML (diagramme d’activités), BPMN (version
antérieure à 2.0), etc…)
Les langages servant à leur exécution (BPEL)
Ainsi, la version BPMN 2.0 a été rendue exécutable, rendant ainsi possible
le passage du « process design » au « process implémentation » sans qu’il
soit nécessaire de retoucher au modèle.
BPMN - Avènement
BPMN 1.x
BPMN 2.0
BPEL
BPMN - Exemple
BPMN – Principaux constituants
Les événements
Les évènements sont modélisés sous la forme d’un point. Ils peuvent
prendre plusieurs formes suivant qu’ils soient :
un évènement de départ (en vert)
Les événements
BPMN permet aussi de spécifier la nature de l’évènement en recensent les différents
types.
Un évènement peut être :
abstrait : il sera alors un point vide,
un message
une minuterie
un signal
une correction d’erreur ou
un arrêt
BPMN – Principaux constituants
Les tâches
Les tâches sont les éléments qui nécessitent la mobilisation des fonctions de
l’organisation. Les actions peuvent être de différents types :
Il peut soit s’agir de tâches qui sont effectuées par des personnes (tâches humaines)
Si les tâches requièrent l’appel d’une fonction informatique, on parlera alors de tâche de
service
Il se peut aussi qu’une tâche soit d’un type indéfini. On parlera alors de tâche abstraite
Enfin, il est possible qu’un tâche soit elle-même composée de tâches. On parlera alors de
sous-processus.
BPMN – Principaux constituants
Les branchements
Le chemin que va prendre l’exécution d’un processus n’a pas besoin d’être
déterminé à son début. Il peut être soumis à des conditions.
Ceux-ci sont de trois types :
les branchements parallèles,
les branchements exclusifs et
les branchements inclusifs.
BPMN – Exemple
PROCESS BUSINESS
SERVICE SERVICE
Il permet de réaliser donc les opérations CRUD telles que créer, lire,
supprimer et mettre à jour ces entités.
Ils ont donc la réputation d’être réutilisable du fait des traitements qu’ils
réalisent.
Ces services contiennent de petits services qui sont utilisés comme blocs
de construction dans les systèmes orientés services.
Proxy Service
Les Proxy Services sont des services qui servent de connexion entre les
membres du système orienté services et les autres systèmes.
Le cycle de vie des services dans SOA est constitué de 4 grandes phases :
Identification
Spécification
Développement
Gestion
Yes Service Owner
Approval
Service Search for Existing
Exist ?
Identified Implementation
Cycle de vie des services dans SOA
Service Specification
Provider Interfaces Documented
Review
3- Service Development
4- Service Management
Analyste métier Architecte
Définit et modélise les services.
• Définit les processus métiers et les KPI associées
• Identification des services métier et optimise les
processus par des simulations
Intégrateur
Gestionnaire Assemble les services
Développeur
- Publie les services
Implémente les services
- Gère le cycle de vie des services
- Contrôle la qualité de service
Un des problèmes centraux pour mettre en œuvre une SOA est l’identification
des services.
La granularité des services est fondamentale car elle détermine en grande
partie la réutilisabilité des services.
Il faut d’une part, éviter une granularité trop « fine » qui entraîne :
beaucoup d’interactions et de problèmes de performance
1. Approche Bottom-up :
On part des briques informatiques, on rassemble les bouts.
Elle est réalisée généralement par la MOE
Elle est plus adéquate pour réutiliser l’existant non encore pris en
compte dans une SOA
Cycle de vie des services dans SOA
La phase d’identification
Approche « Bottom-up »
Besoins
Dagrammes Nouvelle
Orchestration
d’activités Application
Cycle de vie des services dans SOA
La phase d’identification
2. Approche Top-down :
On part des interactions métier pour aboutir aux interactions
techniques
Elle est réalisée généralement par la MOA
Elle est plus adéquate pour démarrer un nouveau projet
Cycle de vie des services dans SOA
La phase d’identification
Approche « Top-Down »
Décomposition du
processus métier
Nouvelle
Orchestration
Besoins Application
La sécurité Description
Attaques dans SOA
Attaques par injection : Cette attaque peut se produire lorsqu'aucune validation sur
l'entrée utilisateur n'est effectuée et qu'aucune séparation n'est effectuée entre
l'entrée utilisateur et l'application (injection SQL, injection XML, etc).
Définition d’une intégrité pour SOA qui fournit suffisamment de conditions pour
sécuriser l'intégrité des données.
…
Approches de solutions
Vers SOA …
SOA, une évolution et non une révolution
Before SOA After SOA
Closed – Monolithic - brittle Shared services – Collaborative – Interoperable
Vers SOA …
Data Repository
Marketting Sales CRM Finance Data Marketting Sales CRM Finance Data
WareHouse WareHouse
Data Repository
Module 2 – Implémentations
Web services – BPEL – BPMN 2.0 – Orchestration
Installation du plugin eclipse « BPEL Designer 2.0 »
Travail 1
Installation du moteur d’exécution « BPEL Apache ODE »
Configuration de l’environnement de travail sous Eclipse
BPEL
Implémentation de Implémentation des web services utilisés pour
processus BPEL avec l’orchestration
Eclipse Implémentation des processus BPEL.
Travail 1
BPEL
Implémentation de
processus BPEL avec
Eclipse
Travail 1
BPEL
Implémentation de
processus BPEL avec
Eclipse
Module 3 – Projet
Implémentation d’une architecture SOA
FIN
Ghislain AKINOCHO
Master SI 2 – Service Oriented Architecture - ESMT