SOA : pour une interopérabilité intrinsèque du Système d’Information
1. SOA : pour une interopérabilité
intrinsèque du Système d’Information
Khaled BEN DRISS
Khaled.bendriss@oxiasoft.com
Tozeur le 25 novembre 2008
2. Ingénieur de l'Ecole Centrale de Lyon (ECL’1991)
Docteur de l'Université Paris 6 ( P&MC ‘ 1994)
Ancien Maître Assistant à l'Ecole Polytechnique de Tunisie
Directeur Technique OXIA
Consultant Senior : Architecte de Système d'Information
SOA– OXIA – 2008
www.oxiasoft.com
1 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
3. Objectif de la séquence
SOA– OXIA – 2008
2 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
4. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
SI : Problématique de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
3 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
5. Technologie
Réseaux
globaux
Ordinateur
1990 personnel
Terminal
1980
Mainframe
1970
SOA– OXIA – 2008
4 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
6. Activités
Travail
coopératif
Informatique
1990 personnelle
Transactionnel
1980
Batchs
1970
SOA– OXIA – 2008
5 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
7. Services offerts
Information
à la place de travail
1990
Industrialisation
1980
Gestion intégrée
1970
SOA– OXIA – 2008
Automatisation des
processus administratifs
6 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
8. Enjeux
1990
Vivant
Objectif
1980 Réactif
Mécanique
Cahier des charges
Prévisible
1970
SOA– OXIA – 2008
7 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
9. Besoin d’automatisation
1990
1980
1970
SOA– OXIA – 2008
8 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
10. Contexte économique
• Mondialisation
Marché • Actionnaires
• Fusion/acquisition
• Publicité
Business Model
S.I. • Open source
• Compétition
• Compétition
Eco-système • Compétition
SOA– OXIA – 2008
• Compétition
9 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
11. Environnement d’aujourd’hui
Résolument Hétérogène
Client/Server
Mainframe
réseaux
Net-Progress
Internet
OXIA
SOA– OXIA – 2008
et Web
10 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
12. Architectures informatiques
Types et contraintes
Serveur
Internet
Web
Client-Serveur
Distribuée
Partage de
fichiers
SOA– OXIA – 2008
11 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
13. Evolution de l'architecture des applications :
De la centralisation vers la centralisation
Client-serveur Client-serveur
Centralisé deux niveaux trois niveaux
kkwkj aaaawwwww
kkwkj aaaawwwww
kkwkj aaaawwwww
kkwkj aaaawwwww
kkwkj aaaawwwww
kkwkj aaaawwwww
kkwkj aaaawwwww
Interface utilisateur
Interface utilisateur
Services d'entreprise
Services
d'entreprise
Services d'entreprise
SOA– OXIA – 2008
Interface utilisateur
Services d'entreprise
Services de données Services de données
Services de données
12 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
14. Contexte
architectures informatiques
SOA– OXIA – 2008
13 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
15. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
S.I. : Problématiques de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
14 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
16. Objectifs des S.I.
récapitulatif.
SOA– OXIA – 2008
15
Introduction SOA pour une interopérabilité intrinsèque du SI Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA:
17. 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
Des Silos sans communication
L’information ou les données sont
difficiles à trouver et à relier
Division B Division C
Division A
• Problèmes au moment de l’échange des
données
Résultat : l’information et les
données coûtent cher
SOA– OXIA – 2008
L’Intégration doit être le mot
d’ordre!
CRM ERP
DB
16 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
18. 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
SOA– OXIA – 2008
Coûts considérables dans la gestion des flux entre départements et dans l’intégration
de leurs SI
17 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
19. Problématique de l’intégration inter-entreprises
Application web
Tozeur)
Agence de voyages Client
Réservation (plateforme technique2) (plateforme technique6)
Compagnie aérienne
(plateforme technique1)
Réservation
Réservation, Tarifs Tarifs, promotion
Location de voitures
(plateforme technique3)
SOA– OXIA – 2008
Chaîne hôtelière Assurance voyage
(plateforme technique4) (plateforme technique5)
D’après : J-M Chauvet
18 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
20. Applications distribuées
& l’Interopérabilité
SOA– OXIA – 2008
19 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
21. Définition générale de l’Interopérabilité
L'interopérabilité connecte
Les personnes : cet aspect de l'interopérabilité concerne les workflows et la
collaboration qui ont lieu au sein et entre les entreprises au niveau des
personnes. C'est l'aspect social du travail qui est ici concerné.
Les données : il s'agit là de répondre au besoin d'accéder à différentes sources de
données, d'optimiser les flux d'informations et d'intégrer des données
structurées (des bases de données par exemple) et des données non-structurées
(des fichiers par exemple).
Les systèmes variés : ce point concerne les processus techniques et les processus
d'exploitation au sein et entre les entreprises. Les besoins allant d'une simple
SOA– OXIA – 2008
connectivité entre des systèmes internes à des cadres de travail de l’industrie qui
facilitent la mise en oeuvre de workflows de création de chaîne de valeur.
20 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
22. Architectures d’interopérabilité
Intégration et
communication entre Mise en œuvre systématique dans
Deux modes de
composants un cadre d’urbanisation
communication
applicatifs
Sans connexion Formats d’échange : XML
avec (asynchrone, (eXtended Markup
middleware Language)
couplage faible)
Avec connexion Intégration de systèmes
sans (synchrone, complexes: EAI (Enterprise
middleware) Application Integration)
couplage fort)
SOA– OXIA – 2008
Modèle d’architecture cible:
SOA ( Service Oriented
Architecture)
21 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
23. Les types de middleware classiques
SOA– OXIA – 2008
22 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
24. La réalité dans les SI:
SOA (Spaghettis Orientée Service)
Interconnexions
Développements redondantes
coûteux (point à point)
Grande Maintenance
complexité difficile
SOA– OXIA – 2008
23 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
25. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
SI : Problématique de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
24 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
26. Interopérabilité : différents points de vue
SOA– OXIA – 2008
25 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
27. Interopérabilité : différents points de vue
Indépendance ,
intégration
métier
Responsable IT
Architecte
virtualization des
Services, visibilité,
sécurité
#$%! , java
C#,
bugs…I…
SOA– OXIA – 2008
Ingénieur Système
Développeur
26 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
28. Intégration & interopérabilité , différents points de vue :
le « nécessaire changement » de paradigme
on ne peut résoudre, définitivement, un
problème en utilisant le mode de pensée
à l’origine de ce problème.
On a besoin d’une
nouvelle approche !
SOA– OXIA – 2008
27 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
29. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
SI : Problématique de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
28 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
30. Service Oriented Architecture
SOA, qu’est-ce? (1/3)
SOA est un paradigme
abstrait, base de
l’architecture distribuée
sans aucune référence
à une implémentation
technique
SOA– OXIA – 2008
Une nouvelle plate-forme architecturale pour
le développement de solutions distribuées
29 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
31. Service Oriented Architecture
SOA, qu’est-ce ? (2/3)
SOA– OXIA – 2008
30 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
32. Service Oriented Architecture
SOA, qu’est-ce ? (3/3)
SOA est une évolution
des plateformes passées,
tout en préservant les
caractéristiques réussies
des architectures
traditionnelles, tout en y
ajoutant quelques
SOA– OXIA – 2008
principes nouveaux.
31 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
33. Une définition de la SOA
La SOA c’est structurer en services contractualisés
Voire tout le S.I.
une application un bloc applicatif
Afin d’adresser les enjeux de
Politique d’interopérabilité Pérennité des applications
Politique de réutilisation
SOA– OXIA – 2008
mise en œuvre de services recherche de la quot;Faire du nouveau
globaux entre blocs réutilisation à l’intérieur avec de l'ancienquot;
applicatifs d’un bloc applicatif
32 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
34. Les Composants
SOA– OXIA – 2008
33 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
35. Service Oriented Architecture :
une architecture Consommateur/Fournisseur
Consommateurs
Fournisseurs
de Services De Service
Courtier de
Services
Monitoring
Transformation Sécurité SLA
Annuaire
SOA– OXIA – 2008
34 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
36. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
SI : Problématique de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
35 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
37. Dans SOA il y a Service ?
SOA est une Avant tout : un Exemple
histoire de service doit
conception pas de être quot;abstraitquot;
technologie Service d'enregistrement
d'un abonnée
Un service n’est
penser
pas lié à une Service de réservation d'un
Architecture &
implémentation. train
Service.
Service de diffusion
d'information
SOA– OXIA – 2008
Service de demande de l'état
d'une commande
36 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
38. 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)
SOA– OXIA – 2008
• Expose un petit nombre d’opérations offrant un traitement de bout en bout
• Est faiblement couplé
• Sans état
37 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
39. Avant l’approche service:
couplage fort - Gestion de prêts
Entités
AgentDeCrédit ApprobationCrédit Compte Crédit SMSGateway
calculerRisque
vérifierCrédit
creerCrédit
EnvoyerConfirmation
AgentDeCrédit est lié à ApprobationCrédit et Crédit
SOA– OXIA – 2008
ApprobationCrédit est lié à Compte
Crédit est lié à SMSGateway
38 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
40. Après l’approche service :
Gestion de prêts en couplage faible
Notifier
ProcessusCrédit Calculer
VérifierBalanceCpt créerCrédit
ViaSMS
RisqueCérdit
SOA– OXIA – 2008
ProcessusCrédit Un processus métier !
Il permet d’orchestrer les services => couplage lâche
39 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
41. Zoom sur la phase de spécification
Les services identifiés
Challenge : Un service peut être
ne doivent pas être
tous publiés :
Chaque service trouver les
a un coût et un “bons” services synchrone
risque à exposer
Il faut éviter la
prolifération Asynchrone
SOA– OXIA – 2008
des services
40 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
42. 4 propriétés du service à retenir
Un Service est Autonome Un Service expose un Contrat
Conditions Générales de Vente
Règlement Intérieur
in Vos droits/Vos devoirs
out
Les Frontières entre services sont Les services communiquent par
Explicites messages
SOA– OXIA – 2008
41 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
43. 4 propriétés : conséquences
Le consommateur
SOA véhicule (client) est
découplé de
des Messages l’architecture
et non des technique du
objets service qu’il
invoque
Le consommateur
Importance de
et le fournisseur
l'Architecture
n'ont pas
forcément les Importance des
mêmes
SOA– OXIA – 2008
standards
technologies
42 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
44. 4 propriétés : conséquences
SOA– OXIA – 2008
43 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
45. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
SI : Problématique de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
44 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
46. Cycle de vie d’un service
1 aspect transversal : la
4 grandes phases :
gouvernance
Les architectures orientées service
Identification
impliquent une vision globale
La gouvernance permet de casser
Spécification
les silos de l’entreprise
Développement
SOA– OXIA – 2008
Gestion
(versionning, …)
45 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
47. Un service n’est pas un composant
Évolution naturelle et certaine
• Fonction Composant Service
Service
Les services gèrent messages,
données et composants
• Les données privées sont totalement
encapsulées par le service
• Les messages sont le seul moyen d’échanges Données
entre services privées
Les services permettent des
relations faiblement couplées;
SOA– OXIA – 2008
Composants
les composants des relations
fortement couplées
Fonctions
46 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
48. exemples de services
en fonction de la granularité
Granularité Exemple
Service métier applicatif Très forte Génération bulletins de paie
Service métier fonctionnel Moyenne Transaction bancaire
Service métier CRUD Faible Enregistrement nouvel inscrit
Service technique Moyenne/forte Archivage
SOA– OXIA – 2008
47 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
49. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
SI : Problématique de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
48 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
50. Deux approches d’identification des services
Approche Bottom-up
Approche Top-down
Pour réutiliser l’existant
Pour démarrer un
(non SOA)
nouveau projet
On part des morceaux, on
Dans le cadre d’une
rassemble les bouts
vision globale très claire
SOA– OXIA – 2008
Quelques méthodologies (nouvelles): Praxeme, SOMA (IBM) …
49 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
51. On utilise rarement une unique approche :Approche “Meet in the
Middle”
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
Penser réutilisation
Penser métier
SOA– OXIA – 2008
Penser interopérabilité & standards
50 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
52. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
SI : Problématique de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
51 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
53. Implémentations des Services
Maximiser l’interopérabilité par
l’usage systématique des
standards?
SOA– OXIA – 2008
52 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
54. SOA et web services
Attention à ne pas confondre SOA et Les WS constituent une
web services bonne solution
standardisée disponible
SOA est un ensemble de Les WS sont de l’ordre de la
concepts : technologie :
Un service métier = un
webservice
SOA est un paradigme On peut utiliser les Web
abstrait, base de Services sans faire de
l’architecture distribuée SOA (architecture point à
sans aucune référence à point sans réutilisation)
une implémentation
technique
Les Web Services offrent
SOA– OXIA – 2008
une implémentation
Une SOA peut se mettre
possible mais pas
en œuvre sans Web
nécessaire
Services
53 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
55. Points clés de l’architecture
1.a rechrcehr un service
Repository
Consommateur
1.b Returner le contract
Service
2.a Creer une intsance du processus
Mediation layer/Service bus
2.c determiner le point de
2.d enjoyer la requêtte contact du service
2.b Executer
processus
SOA– OXIA – 2008
Fournisseur
Service Registry
Description “Business
process”
54 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
56. Services Web ~ quatre spécifications XML
SOAP : pour le
transport des WSDL : pour la
données et description des
l’infrastructure de services offerts
communication
XML
UDDI : annuaire
pour le
référencement des
BPEL : décrit le
services par les
SOA– OXIA – 2008
processus métier
fournisseurs et leur
découverte par les
utilisateurs.
55 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
57. Standards de l’architecture WS
Les standards sont un élément clé d’une SOA, ils assurent
l’interopérabilité
SOAP WSDL UDDI BPEL
Simple Object Web Services Universal Description Business Process
Access Protocol Description Language Discovery and Integration Execution Language
W3C
W3C Microsoft, IBM, HP, …
Décrit le contrat
Transporte Décrit les processus
Spec pour
SOA– OXIA – 2008
métier
Repository/Registry
Les trois piliers des Services Web Lien avec BPMN
56 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
58. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
SI : Problématique de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
57 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
59. Qu'est ce qu'un Web Service ?
Définition [W3C] Exposition Activation
Un Web service est un système logiciel
Langage WSDL (Web
identifié par une URI, dont les interfaces Protocole Web au-
Service Description
publiques et les liens sont définis et décrits dessus de HTTP (RPC
Language) utilisé pour
en XML. XML, SOAP)
décrire le service
Sa définition peut être découverte par
Similaire à IDL mais Autres protocoles
d'autres systèmes logiciels.
basé sur XML possibles …
Ces systèmes peuvent interagir avec le
service Web d'une manière prescrite par sa
SOA– OXIA – 2008
définition, en utilisant des messages XML
portés par les protocoles Internet.
58 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
60. Contents
Plan du workshop
Quels sont les éléments clé d’une architecture orientée services ?
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Besoins d'interopérabilités : WS-I et Basic Profiles
SOA : quelles infrastructures?
ESB : un bus au service de SOA
Notion de SLA et les besoins non fonctionnels
Le besoin de supervision dans une architecture SOA
De nouvelles notions s'ajoutent à SOA:
le BAM
Le MDM
La notion de maturité SOA
La relation entre SOA & EDA
SOA– OXIA – 2008
Les 8 péchés capitaux de la SOA (anti-patterns SOA)
SOA : 7 bonnes pratiques
59 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
61. SOAP : Simple Object Access Protocol
Intégration de XML au- • Pour accéder services, objets et serveurs
dessus de HTTP : • Indépendant de toute plate-forme
Port de connexion (URL)
Pare-feu Pare-feu
Messages
Procuration Appel Translateur
SOAP
d'interface
SOAP
Application
HTTP
Cliente
RPC
local
Réponse
Parseur
Parseur
Application
SOA– OXIA – 2008
XML
XML
Serveur
60 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
62. Structure d'un message
Protocol Headers Entête de protocoles (HTTP, SMTP, …)
<Envelope>
SOAP Envelope
<Header>
SOAP Header
<Body>
SOAP Body
SOA– OXIA – 2008
61
XML-RPC et SOAP une interopérabilité intrinsèque du SI Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour
63. SOAP : implémentation
.Net Web Services
Axis 1.x & Axis2
Xfire 1.2.2
SpringWS
WebSphere ...
SOA– OXIA – 2008
62 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
64. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
SI : Problématique de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
63 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
65. 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.
SOA– OXIA – 2008
64 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
66. WSDL
Éléments d’une définition
<types>
• Contient les définitions de types utilisant un système de typage (comme XSD).
<message>
• Décrit les noms et types d’un ensemble de champs à transmettre
• Paramètres d’une invocation, valeur du retour, …
<porttype>
• Décrit un ensemble d’opérations. Chaque opération a zéro ou un message en entrée, zéro ou
plusieurs messages de sortie ou de fautes
<binding>
• Spécifie une liaison d’un <porttype> à un protocole concret (SOAP1.1, HTTP1.1, MIME, …). Un
<porttype> peut avoir plusieurs liaisons !
<port>
• Spécifie un point d’entrée (endpoint) comme la combinaison d’un <binding> et d’une adresse réseau.
SOA– OXIA – 2008
<service>
• Une collection de points d’entrée (endpoint) relatifs.
65 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
67. Contrat dans les web services :
Contract -First pour une meilleure interopérabilité
Web Service deux approches
Contract-Last Contract-First :
créer les types de données,
SOA– OXIA – 2008
créer le code source
le messages envoyés puis
(classes java ou c#) puis
associer le code source
définir (ou générer) le web
service, wsdl, les types …
66 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
68. Contrat dans les web services
Privilégier l'approche
contract-first
et Définir vos schéma XML (et gérer
vos XSD )
Les clients se
Définir les interfaces Anticipe les problèmes
concentrent sur le
XML des messages d'interopérabilités
message XML
SOA– OXIA – 2008
Commencer par les types (XSD) et
WSDL
67 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
69. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
SI : Problématique de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
68 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
70. UDDI : Annuaire des services
Universal Description, Discovery and Integration
Fonctions
Annuaire des services
Annuaire
Annuaire
UDDI
UDDI
Enregistrer
décrit par un
votre société
document
Enregistrer des
WSDL, autre … services Gérant de
requêtes
Enregistrer des
Accessible en
opérations
SOAP
Enveloppe
SOA– OXIA – 2008
Découvrir des +
Document
Service
services
Programme
69 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
71. UDDI : utilité d’un annuaire de service
SOA– OXIA – 2008
Scénario classique d'utilisation d'UDDI
70 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
72. UDDI : implémentation
Microsoft, IBM, Oracle ( et aussi BEA )…
open source : jUDDI
SOA– OXIA – 2008
71 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
73. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
SI : Problématique de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
72 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
74. Le langage BPEL
Business Process Execution Language
Standard de l’OASIS (10+ ans de recherche Microsoft (XLANG) et IBM (WSFL, FDML) )
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
Gartner believes that BPEL will emerge as the BPEL is the future of the integration space in my view…Why?
leading industry standard for Web service Because the value is so much higher when you provide not only
SOA– OXIA – 2008
orchestration and coordination of business a way to integrate applications, but also a way to create services
processes. from them and put them into business processes
- John Rymer, Vice President, Forrester Research, Inc.
- David Smith, Research Vice President and fellow, Gartner
73
XML-RPC et SOAP une interopérabilité intrinsèque du SI Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour
75. BPEL le chef d’orchestre :
créer de nouveaux services par composition de services existants
Web Service
PORTAL
Java Service
Biztalk, .Net
?
J2EE ERP
SAP, Oracle, etc.
BPEL
SOA– OXIA – 2008
User Tasks
Biztalk
74 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
76. Plan
Plan de la présentation
Evolution des architectures informatiques : applications & Système d’information
SI : Problématique de l’intégration en entreprise et intra-entreprises
Interopérabilité : différents points de vue
Présentation du concept SOA
La notion de service (au sens SOA)
Cycle de vie d’un service
Approches d’identification des services
Services Web : les spécifications XML de base
SOAP
WSDL
UDDI
BPEL
Web service pas forcément interopérable : WS-I et Basic Profiles
SOA– OXIA – 2008
SOA : quelles infrastructures?
Notion de SLA et les besoins non fonctionnels
Best Practices : SOA & interopérabilité
75 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
77. Se conformer aux standards WS-I BP :
Privilégier le couplage faible
Consommateur du Service : Client Fournisseur du Service : Serveur
SOA– OXIA – 2008
76 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
78. Profiles WS-I
Ensemble de spécifications ou standards à des niveaux de versions
spécifiques
Directives et conventions pour pouvoir connecter ces spécifications ensemble
Web Services-Interoperability Organization Group (www.ws-i.org)
Profiles: Basic, Attachments et Basic Security
SOAP 1.1
WSDL 1.1
Basic
UDDI 2.0
=
• Restrictions,
+ Profile 1.1
• Integration Guidance
XML Schema
SOA– OXIA – 2008
• Best Practices
XML 1.0 (Second Edition)
HTTP 1.1
SSL 3.0
77 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
79. WS-I Basic Profile
La WS-I Organisation a été créée pour promouvoir des schémas d’utilisation
interopérable des WS
Plus de 200 problèmes d'interopérabilité résolus avec WS-I Basic Profile 1.0
Conventions autour du messaging, description et découverte (discovery)
Exemple de conditions pour la conformité WS-Basic:
• “Un message doit être arrangé en série avec UTF-8 ou UTF-16”
• “Un message doit être envoyé avec HTTP/1.1 ou HTTP/1.0”
• “Un message ne doit pas contenir d'élément enfant de soap:Envelope après l'élément soap:Body”
SOA– OXIA – 2008
• “Le service doit utiliser le code HTTP “500 Internal Server Error” si la réponse est un message
SOAP fault”
• “Une description [WSDL] peux utiliser tous les composants de XML Schema 1.0”
78 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
80. Profiles WS-I
WS-I Profiles
• WS-ReliableMessaging1.1
• WS-S 1.1
• WS-SecureConv
• SAML
WS-Addressing
SOAP 1.1
Reliable
WSDL 1.1
Secure
UDDI 2.0
79
Basic Profile 1.0
XML Schema
XML 1.0
Security
HTTP 1.1
Profile 1.1 SSL 3.0
Basic Profile 1.1, 1.2
SOA– OXIA – 2008
79 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
81. WS-I et Basic Profiles
SOA– OXIA – 2008
80 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
82. WSDL et format des messages
Styles s'applique au mécanisme
de traduction d'un binding WSDL Deux styles
lors de la construction d'un d’encodage :
message SOAP
Format RPC Format Document
SOA– OXIA – 2008
Structure imposée (nom Structure libre (n’importe
de méthode contenant quel arbre est transporté
les paramètres) dans l’enveloppe)
81 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
83. WSDL et format des messages
Deux styles
Avantages et inconvénients :
d’encodage :
Format Format
RPC Document (celui que je recommande
RPC Document
Facile à valider :
Plus difficile à valider (schéma non
respecte le schéma
Structure vérifiable un niveau SOAP)
imposé par SOAP
Structure libre
imposée (nom de (n’importe quel
méthode arbre est
contenant les transporté dans
Optimisations possibles (évite de passer
paramètres) Uniquement appel de
l’enveloppe)
la nom de la méthode par exp)
méthode (nom de
méthode +
paramètres)
Passage de messages purs (un arbre)
SOA– OXIA – 2008
Bien sûr utilisable pour faire de l’appel
de méthode!!!!
82 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
84. Modes des Services Web
Un message SOAP contient des données typées (paramètres des services)
Il faut définir un moyen d’encoder et de décoder ces données
Vocabulaire SOAP :
Value (valeur d’une donnée)
Simple value (primtifs : string, integers, etc..)
Compound value (composées à partir des primitifs : array, struct, …)
• Type (d’une value) (Simple Type/Compond type)
Encodage : représentation de valeurs sous forme XML.
Décodage : construction de valeurs à partir d’XML
L’arbre XML représentant des valeurs a une structure qui dépend du type des
valeurs…
SOA– OXIA – 2008
83 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
85. Modes des Services Web
Deux façon d’encoder Avantages et
les données inconvénients
Les types sont placés Les types sont définis
Literal (celui que je
dans le message par un schéma via wsdl Encoding :
recommande) :
(encoding) (literal)
Messages courts Messages longs
SOA– OXIA – 2008
Client et serveur Client ou serveur n’ont
doivent posséder le pas besoin de connaître
schéma pour valider le le schéma i.e. messages
message auto-validants
84 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
86. Modes des Services Web
Style : RPC vs. Document
Encodage : Encoded vs. Literal
SOA– OXIA – 2008
85 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
87. Modes des Services Web
Style : RPC vs. Document
Encodage : Encoded vs. Literal
SOA– OXIA – 2008
86 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
88. SOAP Fault
La balise Fault contient les balises
Balise suivantes
permettant
de signaler faultcode : un code permettant d’identifier le type
d’erreur
des cas • Client, Server, VersionMismatch, MustUnderstand
d’erreur.
faultstring : une explication en langage naturel
faultactor : une information identifiant l’initiateur de
l’erreur
SOA– OXIA – 2008
detail : définition précise de l’erreur.
87 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
89. Conseil pour une meilleur interopérabilité
Utiliser les Schémas XML
Utiliser l’approche Contract-First
• garantit une interopérabilité dès la conception
Toujours utiliser des schémas XML
• Obligatoire pour les WS Document/Literal
Tout type de message défini dans le WSDL devrait être défini dans un Schéma
• – Messages In/Out des opérations
• – Fautes
Découple la sémantique de la signature des WS
• – Les opérations peuvent être stables au cours du temps
• – Seuls les schémas évoluent
Créer votre grammaire propre via XML Schema (s'inspirer de GS1, ebXML, …), fixer les
SOA– OXIA – 2008
espaces de nomages
Possibilité d'utiliser les framework de mapping objet/XML (JAXB, …)
88 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
90. Penser à concevoir des services web asynchrones
Selon les uses cases, identifier les besoins aux
web service asynchrone
• Les WS asynchrones sont adaptés aux processus longs et
coûteux
Les meilleurs résultats sont obtenus en les
couplant avec des MOM (JMS en Java EE)
Penser à mettre en place un mécanisme de
notification
SOA– OXIA – 2008
89 Tunisie -Tozeur – 25/11/2008 khaled.bendriss@oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI