Sunteți pe pagina 1din 70

Introduction lArchitecture

Oriente Service

- 1 -
Plan du cours

A quels besoins rpond le SOA ?


Pourquoi les solutions actuelles sont insuffisantes ?

Quels sont les principes de base du SOA ?

Quels sont les lments cl dune architecture oriente


services ?

Quel est le cycle de vie dun service ?

Quelles mthodes et outils permettent de mettre en


oeuvre une architecture oriente services ?

- 3 -
A quels besoins rpond le SOA ?
Pourquoi les solutions actuelles sont
insuffisantes ?

- 4 -
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 offres commerciales
changement technologiques

Ces oprations ont un impact sur le systme d'information


(SI) des entreprises

L'intgration difficile des SI est un frein ces


changements

Cest lactivit qui doit piloter la technologie et non


linverse
- 5 -
Problmatique de lintgration en entreprise
La cration d'applications dans l'entreprise est trs
souvent pilote par des besoins trs court terme

Dveloppement d'une application sous tel dlai avec telles


fonctionnalits

Modlisation et dveloppement dirig par les


choix/contraintes techniques

Dcalage entre besoins mtier et leur ralisation


(constituants informatiques)
Pas de place pour la prise en compte de l'volution des
besoins fonctionnels au niveau de l'application

- 6 -
Problmatique de lintgration en entreprise
Le dcoupage prsentation/traitement/base de donnes
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 projets


et peu de rutilisation possible
- 7 -
Problmatique de lintgration en entreprise
Entreprises dcoupes en dpartements fonctionnels y
compris le SI
Processus mtiers de + en + inter-dpartementaux
Les processus franchissent les fontires de l'entreprise
qui doit pouvoir prendre en compte les activits et
processus des partenaires pour tre reactive

Cots considrables dans la gestion des flux entre


dpartements et dans lintgration de leurs SI

- 8 -
Hier : plat de spaghettis

Dveloppements coteux
Interconnexions redondantes (point point)
Grande complexit
Maintenance difficile
- 9 -
Vers toujours plus d'abstraction

Procdures

Modules

Modles orients objets


Packages

Encapsulation

Design pattern

...

- 10 -
Limites de la programmation oriente Objet

Structure et architecture de lapplication peu visibles

Interactions entre objets enfouies dans le code

volution / modification difficile

Recherche des bouts de code impliqus source


derreur

Gestion de la consistance dun changement dlicate

- 11 -
Objets et encapsulation

Granularit encore trop fine



Mal adapte la programmation grande chelle

Couplage fort

Rend difficile la rutilisation

Accrot la complexit des Systmes OO

- 12 -
Encore plus de structuration avec les
composants logiciels
Analogie avec les composants
lectroniques, legos, puzzles

- 13 -
Un Composant : Quest-ce que cest ?

Dfinition usuelle
Une unit regroupant les fonctionnalits concernant une
mme ide
Un module logiciel autonome pouvant tre install sur

diffrentes plates-formes
qui exporte des attributs et des mthodes

qui peut tre configur (dploiement semi

automatique)
capable de sauto-dcrire

Intrt
tre des briques de base configurables pour permettre
la construction dune application par composition

- 14 -
Structure dun 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
proprits (attributs publics)
connexions
cycle de vie (arret, redemarrage, ...) Interface de
contraintes techniques configuration
(transaction, persistance, scurit, ...)

Interfaces
Interfaces

requises
fournies

- 15 -
Re-configuration dynamique
Consommer:
payer,
selectionner, Facturer:
prendre encaisser,
rendreMonnaie
Gerer:
ouvrir, Distributeur de Facturation
remplir, boissons
mettreMonnaie version 1
Rparer: Facturer:
ouvrirCapot, encaisser,
fermerCapot rendreMonnaie

Just in time binding


Facturation
Permet de modifier l'application version 2
chaud sans modification du code
en manipulant les assemblages Facturer:
encaisser,
rendreMonnaie

- 16 -
Les composants dans la nature

La modlisation des composants logiciels est intgre


UML 2.0

Spcification :

Composants CORBA (CCM)

Spring (JEE beans for Web apps)

Fractal (Etendu pour le rparti, 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
Convergence Composants / Services : Exemple

From :
Demain : Architecture urbanise
Lurbanisation informatique 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) qui
permettent de dcoupler les diffrents modules

Objectif : faire voluer le SI au mme rythme que la stratgie


et l'organisation des mtiers de l'entreprise

legacy services portail


...

Canal d'change
donnes processus partenaires
...

- 20 -
Quels sont les principes de base du SOA ?

- 21 -
Principes fondamentaux de larchitecture SOA
Il nexiste pas une recette pour garantir le succs
de la mise en place dune SOA mais des principes
respecter :

Discussion entre mtier et IT


Utilisation des use case mtier

Utilisation de standards
Pas de remise en cause de lexistant lors
dvolutions technologiques

Dcouplage entre fournisseur et


consommateur de services - 22 -
Quest ce quun Service (au sens SOA) ?
Partage les caractristiques suivantes dun objet
Modulaire (ensemble de fonctionnalits qui font sens)

Partage les caractristiques suivantes dun composant


Boite noire (sparation interface/implmentation)
Indpendant de la localisation
Neutralit vis--vis des protocoles de transport

Correspond un primtre fonctionnel que lon souhaite


exposer des consommateurs
Est faiblement coupl (indpendant des autres services)
Expose un petit nombre doprations offrant un
traitement de bout en bout
Sans tat

- 23 -
4 proprits du service retenir

Un Service est Autonome Un Service expose un


et sans tat (en gnral, Contrat
c.ex WSRF)
Conditions Gnrales de Vente
Rglement Intrieur
in Vos droits/Vos devoirs

out

Les Frontires entre Les services communiquent


services sont Explicites par messages

- 24 -
Exemple de couplage fort : Gestion de prts

Entits
LoanAgent LoanApproval Account Loan SMSGateway

calculateRisk
checkCredit

createLoan

sendConfirmation

LoanAgent est li LoanApproval et Loan


LoanApproval est li Account
Loan est li SMSGateway

- 25 -
Gestion de prts en couplage faible
Services
LoanProcess CheckAccount Calculate CreateLoan Notify
Balance LoanRisk ViaSMS

Quest ce que LoanProcess ?


Un processus mtier !
Il permet dorchestrer les services => couplage lche
- 26 -
Vision POO et SOA ? -> savoir o se situent les diffrences
Cliquez sur l'icne pour
ajouter une image de la
bibliothque
Modle orient objets
(POO)

Modle orient services


(SOA)

Services ?

27
Co
au up
ni lag
ve e
au fa
l o i bl e
gi
qu
e
Les couches SOA

**

Co
up
l ag
Co e
au up fo
ou n lag rt
vi a ive e
si u au fa
on n
i v te i b l
S C ea c e
Ex A u h ni
: lo q
gi ue
- 30 -
niveau dans

qu
e
dpendent du

larchitecture

:
Ces diffrents
modes de couplage
sont ncessaires et
e-store : Couches
AccountController CartController

Default
SignOut SignIn Search Category Items Item Shopping Help Error
Details Cart
Presentation
Layer

Check Order Order Order


My Edit Create
out Billing Shipping Process
Account Account Account

Account Profile Product Item Inventory Cart OrderInsert OrderRead


Business
Logic
Layer

IAccount IProfile IProduct IItem IInventory IOrder


Data
Access
Layer

- 31 -
e-store : Domaines

Default
SignOut SignIn Search Category Items Item Shopping Help Error
Details Cart
Presentation
Layer

Check Order Order Order


My Edit Create
out Billing Shipping Process
Account Account Account

Account Profile Product Item Inventory Cart OrderInsert OrderRead


Business
Logic
Layer

1.0 1.0 10.0 5.1 1.0


1.1 2.0 11.2 5.2 6.0
1.2 3.5 11.5 5.3 7.0
IAccount IProfile IProduct IItem IInventory IOrder
Data
Access
Layer

Customer Catalog Inventory Shopping Billing

- 32 -
e-store : Domaines

Presentation
Layer

Business
Logic
Layer

Data
Access
Layer

Customer Catalog Inventory Shopping Billing

- 33 -
e-store : Services

Presentation
Layer

Business
Logic
Layer

Service Manage Show Make


Layer Shop Bill
Customer Catalog Inventory

Data
Access
Layer

- 34 -
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 dveloppement
des produits

Amliorer le retour sur investissement


Accrotre les opportunits de revenu

- 35 -
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 maintenabilit

- 36 -
Quels sont les lments cl dune
architecture oriente services ?

- 37 -
Points cls de larchitecture
1.a Search for service

Service Repository
consumer 1.b Return contract
Contract

2.a Create a process instance

Mediation layer/Service bus


2.c Retrieve service
2.d Send request end-point
2.b
Execute
process
Service
provider Business service
orchestrator Registry
Business
process description
- 38 -
Standards de larchitecture
Les standards sont un lment cl dune SOA, ils
assurent linteroprabilit

SOAP WSDL UDDI BPEL


W3C W3C Microsoft, IBM, HP Oasis
Simple Object Web Services Universal Description Business Process
Access Protocol Description Language Discovery and Integration Execution Language

Transporte Dcrit le contrat Spec pour Dcrit les


Repository/Registry processus mtier

Les trois piliers des Services Web

- 39 -
SOA et web services

Attention ne pas confondre les 2 !


SOA est un ensemble de concepts :
Une SOA peut se mettre en uvre sans Web
Services

Les WS sont de lordre de la technologie :


On peut utiliser les Web Services sans faire de SOA

Les WS constituent la meilleure solution


standardise disponible
Un service mtier = un webservice

- 40 -
Le langage BPEL

Standard de lOASIS
Norme permettant de dcrire des processus en XML

Propose les fonctions basiques dun langage de


programmation:
sequence, flow, loop, switch

Identification des Instances de Process

Gestion des transactions longue dure (scope,


compensation)

Gestion des fautes

- 41 -
BPEL le chef dorchestre

- 42 -
BPEL par lexemple
<PartnerLink> references to the
services participating in the process flow
<invoke> a credit rating service synchronously
PartnerLink <faultHandlers> catch and manage
exceptions when customer
has a bad credit history

<flow> initiates asynchronous loan processors in parallel of execution


flow PartnerLink
PartnerLink

<receive> asynchronous callbacks


from longrunning loan processors

<switch> to the lowest loan offer

loan.bpel
- 43 -
Quelques dtails sur le langage BPEL

Transparents 52 -> 67 de
http://arcad.essi.fr/riveill.old/enseignement/2007-08/S
AR02/SAR%2002%20bpel.pdf
ESB : couche de mdiation
Cest le point dentre vers un service => invocation
indirecte du service au travers du bus
Ce point dentre doit tre normalis mais on ne sait pas
qui fournit le service et comment il le fournit
(implmentation).
Infrastructure qui optimise les changes entre
consommateurs et fournisseurs de services. Il peut
prendre en charge :
Routage
transformation des donnes
transactions,
scurit,
qualit de service,

Ex: voir http://petals.ow2.org/what-is-petals-esb.html
Le but dun ESB est de permettre de communiquer de
manire simple et standardise entre des applications
htrognes
- 45 -
Quelques manires dimplmenter un ESB
Intergiciels de type MOM (Message Oriented
Middleware)
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 dimplmentation 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 entre
- 46 -
Exemples darchitecture techniques se
basant ou pas sur un ESB
Avec ESB Sans ESB

Communications inities par les


applications seront donc homognes
Plusieurs connecteurs Pas dorchestration, parce que pas
Orchestration importante dintermdiaire: invocations de
Transactions consquentes services directement pilotes par le
code
Peu de transactions, ou alors les grer
la main - 47 -
Intgration applicative via un bus JBI

Dans cet exemple, hormis le BPEL process, tous les autres lments applicatifs sont
des services externes au bus.

Mais, par ex. un lment pourrait tre un autre BPEL process ou un composant EJB,
ou autre, dploy DANS le bus, et vu comme un service interne.
Specification JBI pour ESB (ouvert)

BC et SE peuvent se rajouter (et senregistrer)


sur le bus dynamiquement
Quel est le cycle de vie dun service ?

- 50 -
Dcoupage du cycle de vie dun service

4 grandes phases :
Identification
Spcification
Dveloppement
Gestion

1 aspect tranversal : la gouvernance


Les architectures orientes service impliquent
une vision globale
La gouvernance permet de casser les silos de
lentreprise

- 51 -
Cycle de vie des services (activits de gouvernance)
yes Service Owner
Search for Approval
Service
Existing exists?
Identified
Implementation Service Candidate
no reusability Consumers
Service Identification Commission Identified

Service Specification Created


Service
Provider Interfaces Documented Specification
Review
Service/Process Workflow Created
Service Specification

Develop Integrate Create Acceptance Code in


Components & Test Deployment Unit Test repository
Service Development

Plan Decommis Deprec


Certify Service in Service Monitor
New sion ate
Service registry in use service
Version Service Service

Service Management
- 54 -
Rles associs au cycle de vie des services
i o n i on
a t t
ic Analyste mtier i ca Architecte
t i f
cif
d en Sp Dfinit les services pour les use
I Dfinit les processus mtiers et les
KPI associes cases
Identification des services mtier Modlise les services
Optimise les processus via la
simulation

e nt e nt
m m
ppe Intgrateur p pe Dveloppeur
l o lo
ve Assemble les services ve Implmente les services
D D

t i on Gestionnaire
s
Ge
Publie les services
Gre le cycle de vie des services
Contrle la qualit de service

- 55 -
Zoom sur la phase didentification

Un des problmes centraux pour mettre en uvre une SOA


La granularit des services est fondamentale
dtermine en grande partie la rutilisabilit des services
Or succs SOA = % de rutilisation des services

viter une granularit trop fine qui entrane :


beaucoup dinteractions
des problmes de performance

On recommande des services gros grain


attention une granularit trop paisse
un service qui fait trop de chose, risque de ne pas tre rutilisable

Trouver le juste milieu


- 56 -
2 mthodes didentification des services
Une premire phase d'indentification doit tre effectue sur
l'ensemble du SI dans le cadre de son urbanisation en s'appuyant sur
la cartographie des domaines mtiers de l'entreprise et sur le code
existant
Approche incrmentale : une phase d'identification est ncessaire au
dmarrage de chaque nouveau projet SOA en s'appuyant sur les
processus et services rpertoris prcdemment

Approche Bottom-up :
On part des briques informatiques, on rassemble les bouts (abstraction)
Ralise gnralement par la MOE
Plus adquat pour rutiliser lexistant non SOA-is
Approche Top-down :
On part des interactions mtier pour aboutir aux interactions techniques
Ralise gnralement par la MOA
Plus adquat pour dmarrer un nouveau projet

- 57 -
Approche Outside in

Dans la pratique on utilise rarement une seule approche

Pour obtenir une granularit pertinente des services, il


est ncessaire de concilier les 2
Faire lanalyse Top-down sans se proccuper de lexistant
Faire lanalyse Buttom-up en ne considrant que lexistant
Comparer les services remonts avec ceux dduits des processus
Faire les compromis ncessaires pour rutiliser le maximum de
code

- 65 -
Zoom sur la phase de spcification
Les services identifis ne doivent pas tre
tous publis :
Chaque service a un cot et un risque
Il faut viter la prolifration des services

Le Service Litmus Test


d'IBM aide
trouver les bons
services exposer

- 66 -
Quelques critres d' exposabilit
Le potentiel d'un service est d'autant plus
important qu'il :
permet d'automatiser un processus mtier critique
est rutilisable par plusieurs domaines mtiers
remplace une application dsuette
supporte des besoins non fonctionnels (scurit,
logging, monitoring, ...)

Les services non exposs

- 67 -
Location de vhicules : services exposs

- 68 -
Exemple : quels sont les services exposables ?
A basic calculator for performing simple arithmetic
operations (+, -, *, /)

A printing application, shared by multiple applications,


running in multiple environments

A credit card authorization application

A Database lookup that returns application-specific


data
(c) 2007, Occello Audrey, SAR O2/SAR O3 SOA - 69 -
Quelles mthodes et outils permettent de
mettre en oeuvre une architecture oriente
services ?

- 70 -
Mthodes de conception des services

SOMA (IBM)
SODA (De Gamma)
Praxeme (Unilog Management et Orchestra
Networks)
+ toutes les formations proposes par les
diteurs tels que Softeam (SEA),
DreamSoft, etc sur leur savoir-faire

Autant doffres que de mthodes


diffrentes : de quoi sy perdre !

- 71 -
Modeleurs de processus

Outils de modlisation des processus mtier

IBM WebSphere Business Modeler


Bull Bonita
De Gamma BPM
MEGA
Aris
Corporate Modeler
WinDesign
Power AMC
Popkin System Architecture
- 72 -
Moteurs dexcution de processus
Plate-forme dintgration
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 - 73 -
Contrleurs/moniteurs

BAM (Business Activity Monitoring)


IBM WebSphere Business Monitor
Oracle BAM
Systar Business Bridge
BMC Service Impact Manager

Composants de scurit
Oracle Web Service Manager
Oblix

(c) 2007, Occello Audrey, SAR O2/SAR O3 SOA - 74 -


Exemple: Gamme d'outils IBM couvrant le cycle de vie complet

Business Analyst Service Architect

WebSphere Business Rational Software


Modeler Architect
Service Specification

BPEL WSDL
Developer

WebSphere Rational Application


KPIs Integration Developer
Integration Developer
Developer
Service Development

WebSphere Service
Repository & Registry
Service Registrar

Governance Performance
Business Analyst Server Administrator Manager Manager

WebSphere Business WebSphere Process Server WebSphere


Monitor WebSphere ESB Business Services
Fabric
Service execution & Management
- 75 -
Conclusions

- 76 -
Du dj vu ?
SOA est une volution des plate-forme passes, tout en
prservant les caractristiques russies des architectures
traditionnelles

Contractualisation des services


Design by Contract (Meyer)

Dcouplage Interface/Implmentation,
interoprabilit, transparence des communications,
Middlewares la CORBA

Dcouplage fournisseur/comsommateur
Message Oriented Middleware (MOM)

- 77 -
Chronique dune volution

objets
Langages machine

Langages *
procduraux **
Assembleur

services
composants services

01011
10100
11000
01011

Niveaux dabstraction grandissant


- 78 -
Synthse

Depuis Vers

Orient processus
Orient fonctionnalits
Conu pour changer
Conu pour durer
Dveloppement et
Cycle de dveloppement long
dploiement interactif

Silos applicatifs Orchestration de Services


Couplage fort Couplage faible
Orient Objet Orient message

- 79 -
Avantages et inconvnients

Architecture adaptative
Rutilisation du code
Utilisation de standards
Productivit accrue

Manque de maturit des standards


Lenteur dexcution
Difficile effectivement implmenter
Encore peu de chose sur la contractualisation

- 80 -
Quelques rfrences ...
Urbanisation et BPM - Yves Caseau, DSI
Bouygues Tlcom, Edition Dunod

SOA la sauce IBM


http://www-306.ibm.com/software/fr/soa/

SOA la sauce Orchestra


http://www.orchestranetworks.com/fr/soa/index.cfm

CBM appliqu au scnario Rent-a-car


http://www.research.ibm.com/journal/sj/444/cherbakov.h
tml

- 83 -
Quelques rfrences ...

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/comp
model.html

- 84 -

S-ar putea să vă placă și