View
225
Download
0
Category
Preview:
Citation preview
7/23/2019 Intro Concepts Principes Soa
1/108
c 2012-2013, Occello Audre , module SOA & Workflow - 1-
Module Architecture SOA & Workflow
SI5/Master IFIAudrey Occello
occello@polytech.unice.fr
http://anubis.polytech.unice.fr/cours/2012_2013:si5:soa:start
7/23/2019 Intro Concepts Principes Soa
2/108
c 2012-2013, Occello Audre , module SOA & Workflow - 2-
Chaque rle s'approprie SOA diffremment :
Vous avez dit SOA?Service Oriented Architecture
Des services que l'entreprise souhaite exposer leurs clients et
partenaires, ou d'autres parties de l'organisation
Un style de programmation avec ses standards,
paradigmes, technologies et outils associs
Une architecture base sur un fournisseur, un
consommateur et une description de service, et supportant
les proprits de modularit, encapsulation, dcouplage,
rutilisation et composabilit
Un intergiciel offrant des fonctionnalits en terme
d'assemblage, d'orchestration, de surveillance et
de gestion des services
Dirigeants
Analystes mtier
Architectes
Dveloppeurs
Intgrateurs
7/23/2019 Intro Concepts Principes Soa
3/108
c 2012-2013, Occello Audre , module SOA & Workflow - 3-
Contenu du module Les concepts que vous allez apprendre
des notions : composants, services, processus mtier ... des principes : d'orchestration, de contratualisation,d'urbanisation
tout en rvisant vos connaissances : bus, annuaire, web services ...
Les langages/technologies/outils que vous allez utiliser : Un environnement de modlisation utilisant la notation BPMN Le langage BPEL Une plate-forme dexcution incluant un ESB
Et bien sr les web services (WSDL/XSD)
7/23/2019 Intro Concepts Principes Soa
4/108
c 2012-2013, Occello Audre , module SOA & Workflow - 4-
Plan et valuation du module
Des rendus de projet en groupe Une soutenance de projet lors de la dernire sance Un examen individuel sur table lors de la dernire sance
7/23/2019 Intro Concepts Principes Soa
5/108
c 2012-2013, Occello Audre , module SOA & Workflow - 5-
Introduction lArchitecture
Oriente ServiceModule Architecture SOA
SI5 - Master 2 IFI
7/23/2019 Intro Concepts Principes Soa
6/108
- 6-c 2012-2013, Occello Audre , module SOA & Workflow - 6-
Plan du cours
A quels besoins rpond SOA ?
Quels sont les principes de base de SOA ?
Quels sont les liens entre objets et services ?
Quels sont les lments cl de larchitecture technique ?
7/23/2019 Intro Concepts Principes Soa
7/108- 7-c 2012-2013, Occello Audre , module SOA & Workflow - 7-
A quels besoins rpond SOA ?
7/23/2019 Intro Concepts Principes Soa
8/108- 8-c 2012-2013, Occello Audre , module SOA & Workflow - 8-
Problmatique de lintgration en entreprise Les entreprises doivent sadapter en permanence et tre
de + en + ractives aux variations des marchs
fusions acquisitions scissions diversification des offrescommerciales changement technologiques
Ces oprations ont un impact sur les systmesd'informations (SI) des entreprises
L'intgration difficile des SI est un frein ceschangements
Cest lactivit qui doit piloter la technologie et non
linverse
7/23/2019 Intro Concepts Principes Soa
9/108- 9-c 2012-2013, Occello Audre , module SOA & Workflow - 9-
Du "conu pour durer" au "conu pour changer"
Cration d'applications dans l'entreprise trs souventpilote par des besoins trs court terme
Dveloppement d'une application sous tel dlai avec telles
fonctionnalits
Pas de place pour la prise en compte de l'volution des
besoins fonctionnels au niveau de la conception de
l application, cest la technologie dapporter la
flexibilit
7/23/2019 Intro Concepts Principes Soa
10/108- 10-c 2012-2013, Occello Audre , module SOA & Workflow - 10-
Besoins mtier vs contraintes techniques Problme de comprhension entre maitrise d'ouvrage
(MOA) et maitrise d'oeuvre (MOE)
Modlisation et dveloppements dirigs par leschoix/contraintes techniques
Dcalage entre besoins mtier et leur ralisation
(constituants informatiques)
Pas dimplication
de la MOA dansle pilotage de la
variante
7/23/2019 Intro Concepts Principes Soa
11/108- 11-c 2012-2013, Occello Audre , module SOA & Workflow - 11-
Rutilisation vs cloisonnement Le dcoupage de l'architecture 3-tiers facilite le travail
de la MOE mais favorise le cloisonnement en silos
applicatifs indpendants (blocs monolithiques) Certaines fonctions sont redondantes : une version pour
chaque application
Pas de mutualisation des dveloppements entre projetset peu de rutilisation possible
Prsentation
Logique applicative
Base de donnes
Prsentation
Logique applicative
Base de donnes
Prsentation
Logique applicative
Base de donnes
Application 1 Application 2 Application 3
7/23/2019 Intro Concepts Principes Soa
12/108- 12-c 2012-2013, Occello Audre , module SOA & Workflow - 12-
PresentationLayer
BusinessLogicLayer
Account CartInventoryItem OrderInsert OrderReadProductProfile
Category
Checkout
CreateAccount
DefaultErrorHelpItem
DetailsItems
MyAccount
EditAccount
OrderBilling
OrderProcess
OrderShipping
SignOut ShoppingCart
SearchSignIn
e-store : domaines mtier et architecture
DataAccessLayer
IAccount IInventoryIItem IOrderIProductIProfile
7/23/2019 Intro Concepts Principes Soa
13/108- 13-c 2012-2013, Occello Audre , module SOA & Workflow - 13-
DataAccessLayer
IAccount IInventoryIItem IOrderIProductIProfile
e-store : domaines mtier et architecture
PresentationLayer
BusinessLogicLayer
Account CartInventoryItem OrderInsert OrderReadProductProfile
Category
Checkout
CreateAccount
DefaultErrorHelpItem
DetailsItems
MyAccount
EditAccount
OrderBilling
OrderProcess
OrderShipping
SignOut ShoppingCart
SearchSignIn
Catalogue Inventaire ShoppingClient Facturation
7/23/2019 Intro Concepts Principes Soa
14/108- 14-c 2012-2013, Occello Audre , module SOA & Workflow - 14-
Silos et transversalit Entreprises dcoupes en dpartements fonctionnelsMais : Processus mtiers de + en + inter-dpartementaux Les processus franchissent les fontires de l'entreprise
qui doit pouvoir prendre en compte les activits etprocessus des partenaires pour tre reactive
Cots considrables dans la gestion des flux entre
dpartements et dans lintgration de leurs SI
7/23/2019 Intro Concepts Principes Soa
15/108- 15-c 2012-2013, Occello Audre , module SOA & Workflow - 15-
Hier : plat de spaghettis
Dveloppements coteux Interconnexions redondantes (point point) Grande complexit
Rutilisation & maintenance difficile Source : DotNetGuru.org
7/23/2019 Intro Concepts Principes Soa
16/108- 16-c 2012-2013, Occello Audre , module SOA & Workflow - 16-
Demain : Architecture urbanise Lurbanisationinformatique dfinit l'organisation dun SI
limage dune ville
dcouper le SI en modules autonomes (zone, quartier, lot, bloc) localiser les zones dchange dinformations (routes, ponts, tunels) quipermettent de dcoupler les diffrents modules
Objectif : faire voluer le SI au mme rythme que la stratgie
et l'organisation des mtiers de l'entreprise
Receive
Invoke
Invoke Invoke Reply
Reply
Fault
Non-
Interruptible
Receive
Invoke
Invoke Invoke Reply
Reply
Fault
Non-
Interruptible
Canal d'change
donnes processus partenaires
portailserviceslegacy
...
...
7/23/2019 Intro Concepts Principes Soa
17/108- 17-c 2012-2013, Occello Audre , module SOA & Workflow - 17-
Procdures
Modules
Modles orients objets
Packages Encapsulation Design patterns
Et maintenant les services !
Vers toujours plus d'abstraction
7/23/2019 Intro Concepts Principes Soa
18/108- 18-c 2012-2013, Occello Audre , module SOA & Workflow - 18-
Quels sont les principes de base du SOA ?
P f d d l h O
7/23/2019 Intro Concepts Principes Soa
19/108- 19-c 2012-2013, Occello Audre , module SOA & Workflow - 19-
Principes fondamentaux de larchitecture SOAIl nexiste pas une recette pour garantir le succsde la mise en place dune SOA mais des principes
respecter : Discussion entre mtier et IT Utilisation des specifications mtier
Dcouplage entre fournisseur etconsommateur de services
Indpendance des ressources vis vis de
ceux qui les utilisent Utilisation de standards Conservation de lexistant lors dvolutions
technologiques
Q t S i ( SOA) ?
7/23/2019 Intro Concepts Principes Soa
20/108- 20-c 2012-2013, Occello Audre , module SOA & Workflow - 20-
Quest ce quun Service (au sens SOA) ?
Correspond un primtre fonctionnel que lon souhaite
exposer un certain type de consommateurs (ensemblede fonctionnalits qui font sens) Expose un petit nombre doprations offrant un
traitement de bout en bout
Indpendant de la localisation Neutralit vis--vis des protocoles de transport
Sans tat En couplage faible
E l d l f G i d
7/23/2019 Intro Concepts Principes Soa
21/108- 21-c 2012-2013, Occello Audre , module SOA & Workflow - 21-
Exemple de couplage fort : Gestion de prts
LoanAgent
calculateRisk
LoanAccount
createLoan
checkBalance
LoanApproval SMSGateway
sendConfirmation
LoanAgent est li LoanApproval et Loan LoanApproval est li Account Loan est li SMSGateway
E l d l f t G ti d t
7/23/2019 Intro Concepts Principes Soa
22/108- 22-c 2012-2013, Occello Audre , module SOA & Workflow - 22-
Exemple de couplage fort : Gestion de prts
LoanAgent
calculateRisk
LoanAccount
createLoan
checkBalance
LoanApproval SMSGateway
sendConfirmation
Entits = Objets
LoanAgent est li LoanApproval et Loan LoanApproval est li Account Loan est li SMSGateway
G ti d t l f ibl
7/23/2019 Intro Concepts Principes Soa
23/108- 23-c 2012-2013, Occello Audre , module SOA & Workflow - 23-
Gestion de prts en couplage faible
LoanProcess CreateLoanCheckAccountBalance CalculateLoanRisk NotifyViaSMS
Est ce quune entit a un rle part ?
G ti d t l f ibl
7/23/2019 Intro Concepts Principes Soa
24/108- 24-c 2012-2013, Occello Audre , module SOA & Workflow - 24-
Gestion de prts en couplage faible
LoanProcess CreateLoanCheckAccountBalance CalculateLoanRisk NotifyViaSMS
Est ce quune entit a un rle part ?
LoanProcess : un processus mtier!Il permet dorchestrerles services => couplage lche
G ti d t l f ibl
7/23/2019 Intro Concepts Principes Soa
25/108- 25-c 2012-2013, Occello Audre , module SOA & Workflow - 25-
Gestion de prts en couplage faible
LoanProcess CreateLoanCheckAccountBalance CalculateLoanRisk NotifyViaSMS
Que reprsentent ces entits ?
Est ce quune entit a un rle part ?
LoanProcess : un processus mtier!Il permet dorchestrerles services => couplage lche
G ti d t l f ibl
7/23/2019 Intro Concepts Principes Soa
26/108- 26-c 2012-2013, Occello Audre , module SOA & Workflow - 26-
Gestion de prts en couplage faible
LoanProcess CreateLoanCheckAccountBalance CalculateLoanRisk NotifyViaSMS
Des services
Est ce quune entit a un rle part ?
LoanProcess : un processus mtier!Il permet dorchestrerles services => couplage lche
l
7/23/2019 Intro Concepts Principes Soa
27/108
- 27-(c) 2012-2013, Occello Audrey, module SOA & Workflow - 27-
Orient application vs orient services
D i
7/23/2019 Intro Concepts Principes Soa
28/108
- 28-(c) 2012-2013, Occello Audrey, module SOA & Workflow - 28-
DataAccessLayer
PresentationLayer
BusinessLogicLayer
e-store : Domaines
Catalogue Inventaire ShoppingClient Facturation
i
7/23/2019 Intro Concepts Principes Soa
29/108
- 29-(c) 2012-2013, Occello Audrey, module SOA & Workflow - 29-
e-store : Services
PresentationLayer
BusinessLogicLayer
DataAccessLayer
ServiceLayer
Voircatalogue
Faireinventaire
AcheterGererclients
Facturer
S i
7/23/2019 Intro Concepts Principes Soa
30/108
- 30-(c) 2012-2013, Occello Audrey, module SOA & Workflow - 30-
e-store : Services
PresentationLayer
BusinessLogicLayer
DataAccessLayer
ServiceLayer
Voircatalogue
Faireinventaire
AcheterGererclients
Facturer
M i ' ' i ?
7/23/2019 Intro Concepts Principes Soa
31/108
- 31-c 2012-2013, Occello Audre , module SOA & Workflow
Mais qu'est ce qu'un processus mtier ? Un ensemble d'activits qui s'enchanent de manire
chronologique pour atteindre un objectif, gnralementdlivrer un produit ou un service, dans le contexted'une organisation de travail - Wikipdia
Un flux d'informations au sein d'une organisation
Une vue transversale sur les activits de l'entreprise
permet d'identifier, de matriser et d'optimiser leschanges entre les diffrents dpartements et corpsde mtiers
Ex mpl d p ss s (n t ti n inf m ll )
7/23/2019 Intro Concepts Principes Soa
32/108
- 32-(c) 2012-2013, Occello Audrey, module SOA & Workflow
Exemple de processus (notation informelle)
B i P M t (BPM)
7/23/2019 Intro Concepts Principes Soa
33/108
- 33-c 2012-2013, Occello Audre , module SOA & Workflow - 33-
Business Process Management (BPM) But : Donner l'Entreprise les moyens de grer ses processus
mtiers de manire informatise (modlisation, simulation,excution et audit)
Optimisation, adaptation aux besoins en temps rel
Un processusest compos de sous processus, de dcisions(Business rules) et dactivits
Un sous processus a son propre but, entres et sorties Les activits
correspondent aux parties du processus mtier qui nincluent pas dedcision et sont associes des rles
Sont ralises par des systmes ou des humains
Des mesures(KPI pour Key Performance Indicators) permettentde capturer les performances du processus
Un processus est le rsultat dune orchestrationde service Le processus est lui-mme accessible en tant que service
St d d BPMN
7/23/2019 Intro Concepts Principes Soa
34/108
- 34-c 2012-2013, Occello Audre , module SOA & Workflow
Standard BPMN BPMN = Business Process Modeling Notation
Standard OMG (Object Management Group)
La reprsentation est standard, la notation ne l'est pas Modlisation autour de la notion de processus mtier Amliorer la communication entre les mondes mtier et
technique Cration de modles graphiques de processus mtier
Rseau d'objets graphiques o... ... les objets reprsentent des activits... ... qui interviennent dans le processus selon l'agencement
reprsent
BPMN et UML A l'origine, les diagrammes d'activit UML taient utiliss Pauvret de ces diagrammes UML / mtier ! Similitudes dans certains symboles
Source : ICARE'08
Exemple d'un processus de paiement en BPMN
7/23/2019 Intro Concepts Principes Soa
35/108
- 35-c 2012-2013, Occello Audre , module SOA & Workflow
Exemple d un processus de paiement en BPMN
Source : bpmn.org
4 it d i t i
7/23/2019 Intro Concepts Principes Soa
36/108
- 36-c 2012-2013, Occello Audre , module SOA & Workflow - 36-
Un service exposeun contrat
Les services communiquentpar messages
Conditions Gnrales de VenteRglement Intrieur
Vos droits/Vos devoirsin
out
Un service est autonomeet sans tat
Les frontires entreservices sont explicites
4 proprits du service retenir
B fi ti
7/23/2019 Intro Concepts Principes Soa
37/108
- 37-c 2012-2013, Occello Audre , module SOA & Workflow
Bnfices mtier
Amliorer lagilit et la flexibilit du mtier Faciliter la gestion des processus mtier
Offrir la capacit casser les barrires
organisationnelles (silos) Rduire en temps le cycle de dveloppementdes produits/services
Amliorer le retour sur investissement Accrotre les opportunits de revenu
B fi t h i
7/23/2019 Intro Concepts Principes Soa
38/108
- 38-c 2012-2013, Occello Audre , module SOA & Workflow
Bnfices techniques
Rduire la complexit de la solution
Construire les services une seule fois et les
utiliser frquemment Garantir une intgration standardise et le
support de clients htrognes
Faciliter la maintenance
7/23/2019 Intro Concepts Principes Soa
39/108
- 39-c 2012-2013, Occello Audre , module SOA & Workflow
Quels sont les liens entre objets et services ?
volution des paradigmes lis la rutilisation
7/23/2019 Intro Concepts Principes Soa
40/108
- 40-
Technologieprocedurale
Technologiecomposant
Technologieobjet
Objects,Classes,
Smalltalk, C++, ...Procedures,Pascal, C, ...
Composants, ContainersInterfaces in et out,
EJB, CCM,
1980 1995
Raffinement Composition par assemblageEncapsulation et
Spcialisation
volution des paradigmes lis la rutilisation
c 2012-2013, Occello Audre , module SOA & Workflow
XML si d s T m t
7/23/2019 Intro Concepts Principes Soa
41/108
- 41-
En rouge, les lignes de code concernes par le parsingBonne modularisation : code concentr en un seul endroit
Copyright aspectj.org
XML parsing dans Tomcat
c 2012-2013, Occello Audre , module SOA & Workflow
URL p tt n m t hin d ns T m t
7/23/2019 Intro Concepts Principes Soa
42/108
- 42-
En rouge, les lignes de code pour grer la correspondance dURLsBonne modularisation : code concentr en 2 endroits
Copyright aspectj.org
URL pattern matching dans Tomcat
c 2012-2013, Occello Audre , module SOA & Workflow
Tr c d ns T mc t
7/23/2019 Intro Concepts Principes Soa
43/108
- 43-
En rouge, les lignes de code pour tracer lexcution Mauvaise modularisation : le code est mlang, parpill et redondant
Copyright aspectj.org
Trace dans Tomcat
c 2012-2013, Occello Audre , module SOA & Workflow
Quelques unes des limites de la POO
7/23/2019 Intro Concepts Principes Soa
44/108
- 44-
programming in the small
Interactions entre objets enfouies dans le code
Structure et architecture de lapplication peu visiblesvolution fastidieuse
Gestion de la consistance dun changement dlicate
Quelques unes des limites de la POO
c 2012-2013, Occello Audre , module SOA & Workflow
Objets et encapsulation
7/23/2019 Intro Concepts Principes Soa
45/108
- 45-
Granularit encore trop fineMal adapte la programmation grande chelle
Couplage fort et primtre non dfini
Rend difficile la rutilisationAccrot la complexit des Systmes OO
Objets et encapsulation
c 2012-2013, Occello Audre , module SOA & Workflow
Programmation constructive (ou par composition)
7/23/2019 Intro Concepts Principes Soa
46/108
- 46-
Motivation : le time to market Amlioration de la productivit et de la qualit des logiciels
Rduction des cots
Approche : rduire la complexitet monter le niveau
d'abstraction
Dcrire l'architecture et les interactions entre instances
Assembler plutt que dvelopper
programming in the large (programmation gros grain)
La modlisation des composants est intgre UML 2.0
Programmation constructive (ou par composition)
c 2012-2013, Occello Audre , module SOA & Workflow
Analogie avec les composants lectroniques legos puzzles
7/23/2019 Intro Concepts Principes Soa
47/108
- 47-
Analogie avec les composants lectroniques, legos, puzzles
c 2012-2013, Occello Audre , module SOA & Workflow
Analogie avec les composants lectroniques legos puzzles
7/23/2019 Intro Concepts Principes Soa
48/108
- 48-
*
*
*
Composants logiciels
Des units interchangeables
Analogie avec les composants lectroniques, legos, puzzles
c 2012-2013, Occello Audre , module SOA & Workflow
Structure dun composant
7/23/2019 Intro Concepts Principes Soa
49/108
- 49-
Interactions avec un composantce qui est fourni par le composantce qui est utilis par le composantmodes de communication
Configuration du composantproprits (attributs publics)connexionscycle de vie (arret, redemarrage, ...)
contraintes techniques (transaction, persistance, scurit, ...)
Type de composants vs instance de composants
Interf
aces
four
nies
Interfaces
requ
ises
Interface deconfiguration
!
Structure d un composant
c 2012-2013, Occello Audre , module SOA & Workflow
Notion dinterfaces & de contrats
7/23/2019 Intro Concepts Principes Soa
50/108
- 50-
Une interface est un contrat dutilisation
Quelles sont les conditions de dclenchement des exceptions ?Quen est-il des accs concurrents ?Quelles conditions y-a-t-il sur les valeurs des oprations ?Dans quel ordre faut-il appeler les oprations ?
Diffrents niveaux de contractualisationSyntaxique : signature dopration (interfaces Java)Comportemental : assertions UML/OCL, Fractal/Confract, JML, ...Synchronisation : automates (StateCharts, protocoles Sofa, ...)Qualit de services : attributs spcifiques (temps de rponse,
prcision du rsultat, cout d'accs, ...)
Plus les interfaces dun composant sont dtailles, plus lacomposition du composant avec son environnement estdfinie et claire
Notion d interfaces & de contrats
c 2012-2013, Occello Audre , module SOA & Workflow
Points de vue
7/23/2019 Intro Concepts Principes Soa
51/108
- 51-
Arbre
V.I.Nourriture
M.I.CalculDuVol
Arbre
V.I.
Couleurs,TailleM.I.
Dessiner
Arbre
V.I. valeur-Estime
M.I.
Estimer-Valeur
Calculer-Taxe
Arbre
V.I.
Taille,Poids, Couleur,feuillage
M.I.
Grandir
Arbre
V.I.prixDeVente
Temps-De-Coupe
M.I.Calcul-Profit
Dcoupage de la spcification des fonctionnalits dun composant enplusieurs interfacesLocalisation des dpendances inter-composants et rduction de
limpact des changements
Gestion des points de vue utilisateur
Points de vue
c 2012-2013, Occello Audre , module SOA & Workflow
Interface requise, notion de port et utilisation des composants
7/23/2019 Intro Concepts Principes Soa
52/108
- 52-
Interface requiseUn composant prcise les interfaces fournies par d'autrescomposants qu'il utilise pour raliser ses traitementsMoyen de composition des composants et meilleure visibilit des
dpendances
PortUn composant fournit des mcanismes pour tre connect,ventuellement dynamiquement, d'autres composants. Un portcorrespond une interface fournie ou requise.
Utilisation dun composantOn ne sadresse pas directement un composant comme pour unobjetObligation de passer par lun de ses ports
f q , p mp
c 2012-2013, Occello Audre , module SOA & Workflow
Exemple de composant : distributeur de boissons
7/23/2019 Intro Concepts Principes Soa
53/108
- 53-
Exemple de composant : distributeur de boissonsTo use a vending machine, you put money into it and make a selection.When you make your selection, the vending machine goes through
several steps; verifying that it has received sufficient amount,computing change and making sure selected item is in stock.The item you selected and change get out of the vending machine.(http://www.cs.uct.ac.za/mit_notes_devel/Java/Latest/html/single-html.html)
De temps en temps la machinedoit aussi tre :
rapprovisionnerpare
Que fournit la machine ?Que require-telle?
c 2012-2013, Occello Audre , module SOA & Workflow
Exemple de composant : distributeur de boissons
7/23/2019 Intro Concepts Principes Soa
54/108
- 54-
Distributeur deboissons
payer,
slectionner,
prendreProduit,prendreMonnaie,
ouvrir,
remplir,
mettreMonnaie,
mettreProduit,
fermer
Exemple de composant : distributeur de boissons
encaisser,calculerAppoint,
majStock
c 2012-2013, Occello Audre , module SOA & Workflow
Exemple de composant : distributeur de boissons
7/23/2019 Intro Concepts Principes Soa
55/108
- 55-
Distributeur deboissons
payer,
slectionner,
prendreProduit,prendreMonnaie,
ouvrir,
remplir,
mettreMonnaie,
mettreProduit,
fermer
Exemple de composant : distributeur de boissons
encaisser,calculerAppoint,
majStock
c 2012-2013, Occello Audre , module SOA & Workflow
Exemple de composant : distributeur de boissons
7/23/2019 Intro Concepts Principes Soa
56/108
- 56-
Distributeur deboissons
payer,
slectionner,
prendreProduit,
prendreMonnaie
ouvrir,
remplir,
mettreMonnaie,mettreProduit,
fermer
ouvrir,
fermer
Exemple de composant : distributeur de boissons
encaisser,
calculerAppoint
majStock
Consommateur
Fournisseur
Dpanneur
Modularit au niveau des fournis mais aussi au niveau des requis
Flexibilit dutilisation : on exporte que ce que lon utilise vraiment
Facturation
Stock
c 2012-2013, Occello Audre , module SOA & Workflow
Constat
7/23/2019 Intro Concepts Principes Soa
57/108
- 57-
Peu de guidelines Dans quel cas utiliser un composant ?
Dans quel cas continuer utiliser un objet ?
Est ce que tout doit devenir composant ?Est ce que tout peut devenir composant ?
On a besoin des 2 niveauxde granularit !Mais quand passer de lun lautre?
Constat
c 2012-2013, Occello Audre , module SOA & Workflow
Identification des composants
7/23/2019 Intro Concepts Principes Soa
58/108
- 58-
Mthode Grady Booch / SofteamA partir dun diagramme de classes UMLRegrouper les classes en catgoriesLimiter le regroupement 12 classes max
Proprit dune catgorie : ensemble de classesstable, consistant, mono proccupation, continu(agrgat de classes)
Le choix de la cration des catgories est enpartie empirique : limportant est de promouvoirles catgories dun projet lautre
Identification des composants
c 2012-2013, Occello Audre , module SOA & Workflow
Exemple de composant : gestion bancaire
7/23/2019 Intro Concepts Principes Soa
59/108
- 59-
Exemple de composant gestion bancaire
c 2012-2013, Occello Audre , module SOA & Workflow
Exemple de composant : gestion bancaire
7/23/2019 Intro Concepts Principes Soa
60/108
- 60-
Exemple de composant gestion bancaireEncaissement Portefeuille
Client Devis Ventesc 2012-2013, Occello Audre , module SOA & Workflow
Exemple de composant : gestion bancaire
7/23/2019 Intro Concepts Principes Soa
61/108
- 61-
Exemple de composant gestion bancaire
Client Encaissement
Ventes
Portefeuille
Devis
c 2012-2013, Occello Audre , module SOA & Workflow
Assemblage de composants et interactions
7/23/2019 Intro Concepts Principes Soa
62/108
- 62-
L'assemblage de deux composants se fait en connectant un port desortie (interface requise) avec un port d'entre (interface fournie)
qui doivent respecter un contrat
Type de communicationUn mode d'interaction doit tre choisi pour que la connexion soittablie
CompositeLes composants peuvent tre composs d'autres composantsAssemblages manipulables comme des composants
Re-configuration dynamiquePermet de modifier l'application chaud sans modification du code enmanipulant les assemblagesUtilit trs importante dans le cadre de linformatique ambiante
Apparition & disparition de services suivant le contexte
Assemblage de composants et interactions
c 2012-2013, Occello Audre , module SOA & Workflow
Assemblage de composants : distributeur de boissons
7/23/2019 Intro Concepts Principes Soa
63/108
- 63-
Distributeur deboissons
Facturation
Facturer:encaisser,rendreMonnaie
Facturer:encaisser,rendreMonnaie
Consommer:payer,selectionner,prendreProduit,prendreMonnaie
Rapprovisionner:ouvrir,remplir,
mettreMonnaie,mettreProduit,fermer
Rparer:ouvrir,fermer
g p
Contrat
StockGererStock:majStock
GererStock:majStock
Contrat
c 2012-2013, Occello Audre , module SOA & Workflow
Assemblage de composants : gestion bancaire
7/23/2019 Intro Concepts Principes Soa
64/108
- 64-
m g mp g
Client Encaissement
Ventes
Portefeuille
Devis
c 2012-2013, Occello Audre , module SOA & Workflow
Re-configuration dynamique
7/23/2019 Intro Concepts Principes Soa
65/108
- 65-
Distributeur deboissons
Facturer:
encaisser,rendreMonnaie
Consommer:payer,selectionner,
prendreProduit,prendreMonnaie
Rapprovisionner:ouvrir,remplir,mettreMonnaie,mettreProduit,fermer
Rparer:ouvrir,fermer
Re configuration dynamique
c 2012-2013, Occello Audre , module SOA & Workflow
Re-configuration dynamique
7/23/2019 Intro Concepts Principes Soa
66/108
- 66-
Distributeur deboissons
Facturationversion 1
Facturer:
encaisser,rendreMonnaie
Consommer:payer,selectionner,
prendreProduit,prendreMonnaie
Rapprovisionner:ouvrir,remplir,mettreMonnaie,mettreProduit,fermer
Rparer:ouvrir,fermer
Re configuration dynamique
c 2012-2013, Occello Audre , module SOA & Workflow
Re-configuration dynamique
7/23/2019 Intro Concepts Principes Soa
67/108
- 67-
Distributeur deboissons
Facturation
version 2Facturer:encaisser,rendreMonnaie
Consommer:payer,selectionner,
prendreProduit,prendreMonnaie
Rapprovisionner:ouvrir,remplir,mettreMonnaie,mettreProduit,fermer
Rparer:ouvrir,fermer
Re configuration dynamique
Facturationversion 1
c 2012-2013, Occello Audre , module SOA & Workflow
Composition et vrifications
7/23/2019 Intro Concepts Principes Soa
68/108
- 68-
Interconnexions manquantes ou invalides
Proprits de vivacit et de sret Contractualisation ...
Si les composants en entre sont corrects, l'oprationde composition garantit que le composant rsultant estcorrect galement
Composition et vrifications
A Bm n p
c 2012-2013, Occello Audre , module SOA & Workflow
Les composants dans la nature
7/23/2019 Intro Concepts Principes Soa
69/108
- 69-
Spcifications :EJB (Enterprise Java Beans)CCM (CORBA Component Model)FractalSCA (Service component Architecture) => pour SOA...
Plates-formes d'xecutionPour EJB : IBM Websphere, BEA Weblogic, Jboss, Jonas, ...Pour SCA : Apache Tuscany, IBM Websphere, HydraSCA, fabric3, ......
Il nexistepas un unique modle composants Pas un modle meilleur que les autres Utilisation d'un modle particulier guide par les besoins applicatifs
et techniques
Beaucoup deconcepts
Pas dunification
Diffrentes faons
de les implmenter
Les composants dans la nature
c 2012-2013, Occello Audre , module SOA & Workflow
Convergence composants / services
7/23/2019 Intro Concepts Principes Soa
70/108
- 70-
Ports de composants = services
Le service dsigne le point de vue du consommateur, cest dire la vue externe du composant
Composant = fournisseur / consommateur de services
Notion de contrat trs importante dans les SOA
Norme SCA, le meilleur reprsentantde cette convergence
Convergence composants / services
c 2012-2013, Occello Audre , module SOA & Workflow
Composant SCA
7/23/2019 Intro Concepts Principes Soa
71/108
- 71-
Initiative :IBM, Oracle, BEA, SAP, Sun, TIBCO,
But :structurer l'implmentation des SOA
Indpendances langage de programmation protocoles de communication
Composant SCA
c 2012-2013, Occello Audre , module SOA & Workflow
Assemblage de composants SCA
7/23/2019 Intro Concepts Principes Soa
72/108
- 72-
Choixcommunication au niveau desconnecteurs
WSDL/SOAP Java RMI JMS ...
Choixdu langagedimplmentation Java C++ BPEL ...
Source : oasis-open.org
Assemblage de composants SCA
c 2012-2013, Occello Audre , module SOA & Workflow
Bilan : les couches SOA
7/23/2019 Intro Concepts Principes Soa
73/108
- 73-(c) 2012-2013, Occello Audrey, module SOA & Workflow
Bilan : les couches SOA
**
Bilan : les couches SOA
7/23/2019 Intro Concepts Principes Soa
74/108
- 74-(c) 2012-2013, Occello Audrey, module SOA & Workflow
Bilan : les couches SOA
**
Bilan : les couches SOA
7/23/2019 Intro Concepts Principes Soa
75/108
- 75-(c) 2012-2013, Occello Audrey, module SOA & Workflow
Bilan les couches SOA
**
Ces diffrentsmodes de couplagesont ncessaires et
dpendent duniveau danslarchitecture
7/23/2019 Intro Concepts Principes Soa
76/108
- 76-c 2012-2013, Occello Audre , module SOA & Workflow
Quels sont les lments cl dune
architecture oriente services ?
Architecture triangulaire
7/23/2019 Intro Concepts Principes Soa
77/108
- 77-c 2012-2013, Occello Audre , module SOA & Workflow
Architecture triangulaire
Source : Didier Donsez
Toutes les parties ne sont pas forcment rifies
Standards de larchitecture triangulaire
7/23/2019 Intro Concepts Principes Soa
78/108
- 78-c 2012-2013, Occello Audre , module SOA & Workflow
g
Transporte
SOAPW3C
Simple Object Access Protocol
WSDLW3C
Web Services
Description Language
Dcrit le contrat
WSDLW3C
Web Services
Description Language
Dcrit le contrat
Enregistre les services
UDDIMicrosoft, IBM, HP
Universal Description Discovery and Integration
Les standards sont un lmentcl dune SOA, ils assurentlinteroprabilit
Les trois piliersdes Services Web
BPEL le chef dorchestre
7/23/2019 Intro Concepts Principes Soa
79/108
Standard de lOASIS Norme permettant de dcrire des orchestrations de
services en XML
Support des processus mtier
Propose les fonctions basiques dun langage deprogrammation : sequence, flow, loop, switch
Identification des Instances de Process
Gestion des transactions
Gestion des fautes
c 2012-2013, Occello Audre , module SOA & Workflow
BPELOasis
Business Process
Execution Language
Dcrit les
processus mtier
- 79-
SOA et web services
7/23/2019 Intro Concepts Principes Soa
80/108
- 80-c 2012-2013, Occello Audre , module SOA & Workflow
SO t w s r c s Attention ne pas confondre les 2 !
SOA est un ensemble de concepts :Une SOA peut se mettre en uvre sans WebServices
Les WS sont de lordre de la technologie :On peut utiliser les Web Services sans faire de SOA
Les WS constituent la meilleure solutionstandardise disponible
Architecture triangulaire enrichie
7/23/2019 Intro Concepts Principes Soa
81/108
- 81-c 2012-2013, Occello Audre , module SOA & Workflow
gServices annots et recherchs smantiquement
Architecture triangulaire avec composants
7/23/2019 Intro Concepts Principes Soa
82/108
- 82-c 2012-2013, Occello Audre , module SOA & Workflow
g pLes fournis et requis sont explicits (en vert)Fournisseurs et consommateurs sont des composants
Implmentation ddie en SCA
Dtails de larchitecture technique
7/23/2019 Intro Concepts Principes Soa
83/108
- 83-c 2012-2013, Occello Audre , module SOA & Workflow
Service
consumer
Serviceprovider Registry
Mediation layer/Service bus
RepositoryContract
Business serviceorchestrator
Businessprocess description
Dtails de larchitecture technique
7/23/2019 Intro Concepts Principes Soa
84/108
- 84-c 2012-2013, Occello Audre , module SOA & Workflow
Service
consumer
Serviceprovider Registry
Mediation layer/Service bus
RepositoryContract
Business serviceorchestrator
1 . a Search for service
Businessprocess description
Dtails de larchitecture technique
7/23/2019 Intro Concepts Principes Soa
85/108
- 85-c 2012-2013, Occello Audre , module SOA & Workflow
Service
consumer
Serviceprovider Registry
Mediation layer/Service bus
RepositoryContract
Business serviceorchestrator
1 . a Search for service
1 . b Return contract
Businessprocess description
Dtails de larchitecture technique
7/23/2019 Intro Concepts Principes Soa
86/108
- 86-c 2012-2013, Occello Audre , module SOA & Workflow
Service
consumer
Serviceprovider Registry
Mediation layer/Service bus
RepositoryContract
Business serviceorchestrator
1 . a Search for service
1 . b Return contract
2. a Create a process instance
Businessprocess description
Dtails de larchitecture technique
7/23/2019 Intro Concepts Principes Soa
87/108
- 87-c 2012-2013, Occello Audre , module SOA & Workflow
Service
consumer
Serviceprovider Registry
Mediation layer/Service bus
RepositoryContract
Business serviceorchestrator
1 . a Search for service
1 . b Return contract
2. a Create a process instance
2.b
Execute
process
Businessprocess description
Dtails de larchitecture technique
7/23/2019 Intro Concepts Principes Soa
88/108
- 88-c 2012-2013, Occello Audre , module SOA & Workflow
Service
consumer
Serviceprovider Registry
Mediation layer/Service bus
Repository
2. c Retrieve service
end- point
Contract
Business serviceorchestrator
1 . a Search for service
1 . b Return contract
2. a Create a process instance
2.b
Execute
process
Businessprocess description
Dtails de larchitecture technique
7/23/2019 Intro Concepts Principes Soa
89/108
- 89-c 2012-2013, Occello Audre , module SOA & Workflow
Service
consumer
Serviceprovider Registry
Mediation layer/Service bus
Repository
2. c Retrieve service
end- point
Contract
Business serviceorchestrator
1 . a Search for service
1 . b Return contract
2. a Create a process instance
2.b
Execute
process
2. d Send request
Businessprocess description
ESB : couche de mdiation
7/23/2019 Intro Concepts Principes Soa
90/108
- 90-c 2012-2013, Occello Audre , module SOA & Workflow
Fournit des points dentre normaliss vers les services On ne sait pas qui fournit le service ni comment il le fournit
Infrastructure qui optimise les changes entreconsommateurs et fournisseurs de services. Il peutprendre en charge : routage
transformation des donnes orchestration transactions, scurit, qualit de service,
Le but dun ESB est de permettre de communiquer demanire simple et standardise entre des applicationshtrognes
Quelques manires dimplmenter un ESB
7/23/2019 Intro Concepts Principes Soa
91/108
- 91-c 2012-2013, Occello Audre , module SOA & Workflow
Intergiciels de type MOM (Message OrientedMiddleware)
Intergiciels de type Bus (CORBA par exemple) Intergiciels de type EAI (Message Broker avec
connecteurs propritaires lis au moteur dintgration) Routeurs Web services tel que WebSphere Web
Services Gateway Selon le type d implmentation retenu, lESB
assurera plus ou moins de services : le choix
dpend des besoins
LESB nest pas obligatoire : mais il est fortement
recommand pour viter le couplage entrefournisseur et consommateur
Java Business Integration (JBI)
7/23/2019 Intro Concepts Principes Soa
92/108
- 93-c 2012-2013, Occello Audre , module SOA & Workflow
g ( ) Spcification visant standardiser les plates-formes
d'intgration via un jeu d'API
But : faciliter l'intgration de donnes en provenance desources diffrentes au sein d'un SI compos
d'applications htrognes Permet tout fournisseur les respectant de pouvoir se
connecter un conteneur JBI pour changer desmessages avec le reste du SI
Petals ESB (utilis en TD) est une implmentation de cettenorme
Architecture JBI
7/23/2019 Intro Concepts Principes Soa
93/108
- 94-c 2012-2013, Occello Audre , module SOA & Workflow
Architecture composants pluggable pour intergiciels 2 types de composants :
Service Engine (SE) : hbergement des composants mtier Binding Component (BC) : gestion des communications externes Les composants peuvent tre rajouts sur le bus dynamiquement Packaging des services 2 niveaux :
Service Unit (SU) : dploiement dun composant mtier Service Assembly (SA) : dploiement dun assemblage
SEBC
Mapping JBI/SCA : Approches complmentaires
7/23/2019 Intro Concepts Principes Soa
94/108
- 95-c 2012-2013, Occello Audre , module SOA & Workflow
SCA pour la dfinition et l'assemblage des composants JBI plateforme d'excution pour lhbergement des
composants et la gestion des bindings distants Hberger les composants via les Service Engines Appeler les rfrences distantes via les Bindings Components Exposer les services comme des endpoints JBI
Source : ICARE'08
Autre dclinaison de SOA : la WOAREST (Representational State Transfer)
7/23/2019 Intro Concepts Principes Soa
95/108
- 97-c 2012-2013, Occello Audre , module SOA & Workflow
Les services Restful exposent leurs donnes etfonctionnalits en tant que ressources travers des URI
Principe duniformit des interfaces : les consommateursinteragissent avec les ressources travers un ensembleprdfini et fixe de verbes(essentiellement CRUD)
Plusieurs reprsentionsdes ressources sont acceptes
i.e., GET, POST, PUT, DELETE i.e., (X)HTML, XML, JSON, txt
HTTP
methods
Content-
Types
URLs
7/23/2019 Intro Concepts Principes Soa
96/108
- 98-c 2012-2013, Occello Audre , module SOA & Workflow
Conclusions
Du dj vu ?
7/23/2019 Intro Concepts Principes Soa
97/108
- 99-c 2012-2013, Occello Audre , module SOA & Workflow
jSOA est une volution des paradigmes passs, tout enprservant les caractristiques russies des architecturestraditionnelles
Contractualisation des services Design by Contract (Meyer)
Dcouplage Interface/Implmentation,
interoprabilit, transparence des communications, Middlewares la CORBA
Dcouplage fournisseur/comsommateur Message Oriented Middleware (MOM)
Orchestration des services Travaux autour des workflows, langages de coordination
SOA est une volution plutt quune rvolution
Chronique dune volution
7/23/2019 Intro Concepts Principes Soa
98/108
- 100-c 2012-2013, Occello Audre , module SOA & Workflow
**
objets
*
servicesservicesservicescomposants
Niveaux dabstraction grandissant
Assembleur
Langagesmachine
Langagesprocduraux
0101110100
11000
01011
Source : cole Hes SO
Synthse
7/23/2019 Intro Concepts Principes Soa
99/108
- 101-c 2012-2013, Occello Audre , module SOA & Workflow
Orient fonctionnalits Conu pour durer
Cycle de dveloppement long
Depuis Vers
Orient processus Conu pour changer
Dveloppement etdploiement interactif
Silos applicatifs
Couplage fort Orient Objet
Orchestration de Services
Couplage faible Orient message
Source : cole HEVs
Avantages et inconvnients
7/23/2019 Intro Concepts Principes Soa
100/108
- 102-c 2012-2013, Occello Audre , module SOA & Workflow - 102-
Architecture adaptative
Rutilisation du codeUtilisation de standards Productivit accrue
Manque de maturit de certains outils Lenteur dexcution
Difficile effectivement implmenter Peu de chose sur la contractualisation avane
Paradoxe des principes fondamentaux
7/23/2019 Intro Concepts Principes Soa
101/108
- 103-c 2012-2013, Occello Audre , module SOA & Workflow
Utilisation de standardsMAIS un standard reste un standard tant quil y a
hgmonie (cf chec de CORBA)Course la spcification
W3C vs OASIS vs OMG
WS-CDL
BPMN
SOAML
BPEL
ebXML BPSS
UML
Paradoxe des principes fondamentaux
7/23/2019 Intro Concepts Principes Soa
102/108
- 104-c 2012-2013, Occello Audre , module SOA & Workflow
Pas de remise en cause de lexistant lorsdvolutions technologiquesMAIS les diteurs nous asservissent avec leurs
suites doutils
servicesservices
Paradoxe des principes fondamentaux Dcouplage entre fournisseurs et consommateurs de
7/23/2019 Intro Concepts Principes Soa
103/108
- 105-c 2012-2013, Occello Audre , module SOA & Workflow
Dcouplage entre fournisseurs et consommateurs deservices
MAIS pas de garde fou par rapport au couplage fort entre
fournisseurs et consommateurs possiblement rintroduit par la
couche IT
servicesservices
Paradoxe des principes fondamentaux Dcouplage entre fournisseurs et consommateurs de
7/23/2019 Intro Concepts Principes Soa
104/108
- 106-c 2012-2013, Occello Audre , module SOA & Workflow
Dcouplage entre fournisseurs et consommateurs deservices
Mais les services sont fortement coupls une prsentation
(IHMs) cest- - dire les consommateurs ultimes
Flight Application Hotel Application
Tour operator Application
service
IHM*
service
IHM*
Orchestration
de services
IHM*
Lorsque des services sont orchestrs, commentles prsenter lutilisateur ? Comment obtenirune orchestration de leur IHM ?
*Les IHM ne sont pas desservices actuellement
Paradoxe des principes fondamentaux
7/23/2019 Intro Concepts Principes Soa
105/108
- 107-c 2012-2013, Occello Audre , module SOA & Workflow
Indpendance des ressources vis vis de ceux qui
les utilisent MAIS la gestion des donnes et leur virtualisation
est encore un enjeu
Les services doivent tre sans tat MAIS beaucoup proposent de fdrer laccs aux
donnes par des services
7/23/2019 Intro Concepts Principes Soa
106/108
c 2012-2013, Occello Audre , module SOA & Workflow
Visionnez la vido suivante :http://www.youtube.com/watch?v=ohPFC-9zuLs
Quelques rfrences ...U b nis ti n t BPM Y s C s DSI B s Tl m Editi n
http://www.youtube.com/watch?v=ohPFC-9zuLs7/23/2019 Intro Concepts Principes Soa
107/108
- 109-c 2012-2013, Occello Audre , module SOA & Workflow
Urbanisation et BPM - Yves Caseau, DSI Bouygues Tlcom, EditionDunod
Consortiums autour de SOA, SCA, BPM et BPEL et standards desservices web
http://www.soa-consortium.org http://www.osoa.org http://www.oasis-open.org http://www.bpmn.org http://www.w3c.org
Voir la bibliographie complte sur le site web du module
Quelques rfrences ...Modles composants
7/23/2019 Intro Concepts Principes Soa
108/108
Modles composants
CCM spechttp://www.omg.org/cgi-bin/doc?ptc/2002-08-03
Fractal spechttp://fractal.objectweb.org/
Service Component Architecture (SCA)http://www-128.ibm.com/developerworks/library/specification/ws-sca/
OpenCCM
http://openccm.objectweb.org/
Sofahttp://dsrg mff cuni cz/projects/sofa/tools/doc/compmodel html
Recommended