Introduction à l'Architecture SOA
Introduction à l'Architecture SOA
Orientée Service
1ère année Master SIC – SIR - WIC
-1-
Plan du cours
• A quels besoins répond le SOA ?
• Pourquoi les solutions actuelles sont insuffisantes ?
-3-
Plan du cours
• A quels besoins répond le SOA ?
• Pourquoi les solutions actuelles sont
insuffisantes ?
-4-
Problématique de l’intégration en
entreprise
• La création d'applications dans l'entreprise est très
souvent pilotée par des besoins à très court terme
Développement d'une application sous tel délai avec
telles fonctionnalités
• Développements coûteux
• Interconnexions redondantes (point à point)
• Grande complexité
• Maintenance difficile
-9-
Vers toujours plus d'abstraction
• Procédures
• Modules
– Encapsulation
• Design pattern
• ...
- 10 -
Limites de la programmation orientée Objet
Couplage fort
Rend difficile la réutilisation
Accroît la complexité des Systèmes OO
- 12 -
Encore plus de structuration avec les
composants logiciels
Analogie avec les composants
électroniques, legos, puzzles
- 13 -
Un Composant : Qu’est-ce que c’est ?
Définition usuelle
Une unité regroupant les fonctionnalités
concernant une même idée
Un module logiciel autonome pouvant être installé
sur différentes plates-formes
qui exporte des attributs et des méthodes
qui peut être configuré (déploiement semi
automatique)
capable de s’auto-décrire
Intérêt
Être des briques de base configurables pour
permettre la construction d’une application par
composition
- 14 -
Structure d’un composant
Interactions avec un composant
ce qui est fourni par le composant
ce qui est utilisé par le composant
modes de communication
Configuration du composant
propriétés (attributs publics)
connexions
cycle de vie (arret, redemarrage, ...) Interface de
contraintes techniques configuration
(transaction, persistance, sécurité, ...)
…
Interfaces
Interfaces
requises
fournies
- 15 -
Re-configuration dynamique
Consommer:
payer,
selectionner, Facturer:
prendre encaisser,
rendreMonnaie
Gerer:
ouvrir, Distributeur de Facturation
remplir,
mettreMonnaie boissons version 1
Réparer: Facturer:
ouvrirCapot, encaisser,
fermerCapot rendreMonnaie
- 16 -
Les composants dans la nature
La modélisation des composants logiciels est intégrée
à UML 2.0
Spécification :
Composants CORBA (CCM)
Spring (JEE beans for Web apps)
Fractal (Etendu pour le réparti, voir
GridComponentModel – Equipe I3S/INRIA OASIS)
SCA (Service component Architecture) =>
utilisé pour SOA (voir OSOA Tuscany, HydraSCA,
IBMWebSphere pack for SOA, etc)
Plates-formes d'éxecution
OpenCCM (GridCCM, Equipe PARIS IRISA Rennes)
Julia (Fractal), ProActive (GCM)
Sofa (Fractal)
... - 17 -
Convergence Composants / Services
• Exposer les interfaces offertes par les composants selon
une technologie au choix; Par exemple
– Services web, avec binding SOAP
– Interface Java avec binding RMI ou JMS
• Principe suivi par la norme SCA : Service Component
Architecture
– Notion de Composite Service
- 18 -
Convergence Composants / Services : Exemple
From :
- 19 -
Demain : Architecture urbanisée
• L’urbanisation informatique définit l'organisation d’un SI à
l’image d’une ville
− découper le SI en modules autonomes (zone, quartier, îlot, bloc)
− localiser les zones d’échange d’informations (routes, ponts, tunels)
qui permettent de découpler les différents modules
Canal d'échange
données processus partenaires
...
Non-
Interruptible
Reply
Invoke
Fault
- 20 -
Plan du cours
• A quels besoins répond le SOA ?
• Pourquoi les solutions actuelles sont insuffisantes ?
- 21 -
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 :
– Utilisation de standards
– Pas de remise en cause de l’existant lors
d’évolutions technologiques
• Les services
• Les Frontières entre
communiquent par
services sont messages
Explicites
- 24 -
Exemple de couplage fort : Gestion de
prêts
Entités
LoanAgent LoanApproval Account Loan SMSGateway
calculateRisk
checkCredit
createLoan
sendConfirmati
on
- 25 -
Gestion de prêts en couplage faible
Services
LoanProcess CheckAccount Calculate CreateLoan Notify
Balance LoanRisk ViaSMS
- 28 -
C
au ou
p
n la
iv g
ea e
u fai
lo bl
g e
iq
u
e
C
**
ou
p
la
C g
e
au ou fo
ou n pla rt
Les couches SOA
vi a iv g
si u ea e
on n u fa
i i
Ex S ve te ble
C a ch
: A u
modes de
lo niq
g u
niveau dans
iq e
u
l’architecture
Ces différents
dépendent du
couplage sont
nécessaires et
e
:
- 29 -
e-store : Couches
AccountController CartController
Default
SignOut SignIn Search Category Items Item Shopping Help Error
Details Cart
Presentation
Layer
- 30 -
e-store : Domaines
Default
SignOut SignIn Search Category Items Item Shopping Help Error
Details Cart
Presentation
Layer
- 31 -
e-store : Domaines
Presentation
Layer
Business
Logic
Layer
Data
Access
Layer
- 32 -
e-store : Services
Presentation
Layer
Business
Logic
Layer
Data
Access
Layer
- 33 -
Bénéfices métier
• Améliorer l’agilité et la flexibilité du métier
• Faciliter la gestion des processus métier
- 34 -
Bénéfices techniques
• Faciliter la maintenabilité
- 35 -
Plan du cours
• A quels besoins répond le SOA ?
• Pourquoi les solutions actuelles sont insuffisantes ?
- 36 -
Points clés de l’architecture
1.a Search for service
Service Repository
consumer 1.b Return contract
Contract
- 38 -
SOA et web services
- 39 -
Le langage BPEL
• Standard de l’OASIS
• Norme permettant de décrire des processus en
XML
- 41 -
BPEL par l’exemple
<PartnerLink> references to the
PartnerLink
services participating in the process flow
<invoke> a credit rating service synchronously
<faultHandlers> catch and manage
exceptions when customer
has a bad credit history
PartnerLink
- 42 -
Quelques détails sur le langage BPEL
• Transparents 52 -> 67 de
http://arcad.essi.fr/riveill.old/enseignement/2007-08/SAR
02/SAR%2002%20bpel.pdf
- 43 -
ESB : couche de médiation
- 45 -
Quelques manières d’implémenter un
ESB
• Intergiciels de type MOM (Message Oriented
Middleware)
• Intergiciels de type Bus (CORBA par exemple)
• Intergiciels de type EAI (Message Broker avec
connecteurs propriétaires liés au moteur
d’intégration)
• Routeurs Web services tel que WebSphere Web
Services Gateway
• Dans cet exemple, hormis le BPEL process, tous les autres éléments applicatifs
sont des services externes au bus.
• Mais, par ex. un élément pourrait être un autre BPEL process ou un composant EJB,
ou autre, déployé DANS le bus, et vu comme un service interne.
• Mais, est un composant applicatif
- 48 -
Specification JBI pour ESB (ouvert)
- 49 -
Plan du cours
• A quels besoins répond le SOA ?
• Pourquoi les solutions actuelles sont insuffisantes ?
- 50 -
Découpage du cycle de vie d’un
service
• 4 grandes phases :
– Identification
– Spécification
– Développement
– Gestion
- 51 -
Cycle de vie des services (activités de
gouvernance)
yes Service Owner
Search for Approval
Service
Existing exists?
Identified
Implementation Service Candidate
no reusability Consumers
Service Identification Commission Identified
Service Management
- 54 -
Rôles associés au cycle de vie des services
t io io n
ca Analyste métier a t
ifi fi c Architecte
t c i
en pé
Id • Définit les processus métiers et les S • Définit les services pour les use
n KPI associées cases
• Identification des services métier • Modélise les services
• Optimise les processus via la
simulation
n t n t
e e
em em
p Intégrateur p Développeur
lop lop
v e • Assemble les services v e• Implémente les services
D é D é
io n Gestionnai
est
G re
• Publie les services
• Gère le cycle de vie des
services
• Contrôle la qualité de service
- 55 -
Zoom sur la phase d’identification
• Un des problèmes centraux pour mettre en œuvre une
SOA
• La granularité des services est fondamentale
– détermine en grande partie la réutilisabilité des services
• Or succès SOA = % de réutilisation des services
• Approche Bottom-up :
– On part des briques informatiques, on rassemble les bouts
(abstraction)
– Réalisée généralement par la MOE
– Plus adéquat pour réutiliser l’existant non “SOA-isé”
• Approche Top-down :
– On part des interactions métier pour aboutir aux interactions
techniques
– Réalisée généralement par la MOA
– Plus adéquat pour démarrer un nouveau projet - 57 -
Approche “Outside in”
- 65 -
Zoom sur la phase de spécification
• Les services identifiés ne doivent pas être
tous publiés :
– Chaque service a un coût et un risque
– Il faut éviter la prolifération des services
Candidate
Candidate
Services
Services
services à exposer
SLT
Services
Services
(exposed)
(exposed)
- 66 -
Quelques critères d' “exposabilité”
• Le potentiel d'un service est d'autant plus
important qu'il :
– permet d'automatiser un processus métier
critique
– est réutilisable par plusieurs domaines métiers
– remplace une application désuette
– supporte des besoins non fonctionnels (sécurité,
logging, monitoring, ...)
- 67 -
Location de véhicules : services exposés
0.Rent Vehicle
1.1.1 1.1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.3.1 1.3.2 1.3.3 1.3.4
Check Make Locate Modify Create Rental Sign-out Locate Rental Process Return Process Return
Rates Reservation Reservation Reservation Agreement Vehicle from Lot Agreement Information Payment Vehicle to Lot
- 68 -
Exemple : quels sont les services
exposables ?
•A basic calculator for performing simple
arithmetic operations (+, -, *, /)
• SOMA (IBM)
• SODA (De Gamma)
• Praxeme (Unilog Management et
Orchestra Networks)
• + toutes les formations proposées par
les éditeurs tels que Softeam (SEA),
DreamSoft, etc sur leur “savoir-faire”
- 71 -
Modeleurs de processus
- 72 -
Moteurs d’exécution de processus
• Plate-forme d’intégration
– IBM Websphere Process Server
– BEA Weblogic Integrator/Acqualogic
– Microsoft Biztalk
– De Gamma Workflow
– Oracle BPEL PM
– Bull Orchestra
– SAP “Netweaver”
– Apache ODE
• ESB
– IBM Websphere ESB
– Celtix hosted on ObjectWeb/IONA Technologies
– OpenESB (java.net)
– Mule (codehaus.org)
– Sonic ESB
– EBM Web Sourcing Distributed Petals Bus (on OW2)
- 73 -
Contrôleurs/moniteurs
• Composants de sécurité
− Oracle Web Service Manager
− Oblix
- 74 -
Exemple: Gamme d'outils IBM couvrant le cycle de vie
complet
WebSphere Service
Repository & Registry
Service Registrar
Governance Performance
Business Analyst Server Administrator Manager Manager
- 76 -
Du déjà vu ?
SOA est une évolution des plate-forme passées, tout en
préservant les caractéristiques réussies des architectures
traditionnelles
– Découplage Interface/Implémentation,
interopérabilité, transparence des communications,
…
• Middlewares à la CORBA
– Découplage fournisseur/comsommateur
• Message Oriented Middleware (MOM)
objets
Langages machine
Langages *
procéduraux **
Assembleur
services
composants services
01011
10100
11000
01011
Depuis… …Vers…
- 79 -
Avantages et inconvénients
Architecture adaptative
Réutilisation du code
Utilisation de standards
Productivité accrue
- 80 -
Quelques références ...
• “Urbanisation et BPM” - Yves Caseau, DSI
Bouygues Télécom, Edition Dunod
- 83 -
Quelques références ...
• Composants
– CCM spec
http://www.omg.org/cgi-bin/doc?ptc/2002-08-03
– Fractal spec (GCM spec: proactive.inria.fr)
http://fractal.objectweb.org/
– Service Component Architecture (SCA)
http://www-128.ibm.com/developerworks/library/specification/
ws-sca/
– OpenCCM
http://openccm.objectweb.org/
– Sofa
http://dsrg.mff.cuni.cz/projects/sofa/tools/doc/
compmodel.html
- 84 -