SOA : pour une interopérabilité intrinsèque du Système d’Information
Khaled BEN DRISS
Khaled.bendriss@oxiasoft.com
Tozeur le 25 novembre 2008
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
SOA– OXIA – 2008
Directeur Technique OXIA Consultant Senior : Architecte de Système d'Information www.oxiasoft.com
WIA: SOA pour une interopérabilité intrinsèque du SI
1
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
Objectif de la séquence
WIA: SOA pour une interopérabilité intrinsèque du SI
2
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
3
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
Technologie Réseaux globaux
Ordinateur personnel
1990
Terminal
1980
Mainframe
WIA: SOA pour une interopérabilité intrinsèque du SI
SOA– OXIA – 2008
1970
4
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Activités Travail coopératif
Informatique personnelle
1990
Transactionnel
1980
Batchs
WIA: SOA pour une interopérabilité intrinsèque du SI
SOA– OXIA – 2008
1970
5
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Services offerts
Information à la place de travail
1990
Industrialisation 1980
Gestion intégrée SOA– OXIA – 2008
1970 Automatisation des processus administratifs WIA: SOA pour une interopérabilité intrinsèque du SI
6
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Enjeux
1990
Vivant Objectif 1980
Réactif
Mécanique Cahier des charges Prévisible
WIA: SOA pour une interopérabilité intrinsèque du SI
SOA– OXIA – 2008
1970
7
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Besoin d’automatisation
1990
1980
WIA: SOA pour une interopérabilité intrinsèque du SI
SOA– OXIA – 2008
1970
8
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Contexte économique
• Mondialisation • Actionnaires • Fusion/acquisition
S.I.
Business Model
Eco-système
WIA: SOA pour une interopérabilité intrinsèque du SI
9
• Publicité • Open source • • • •
Compétition Compétition Compétition Compétition
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Marché
khaled.bendriss@oxiasoft.com
Environnement d’aujourd’hui Résolument Hétérogène
Client/Server réseaux
Mainframe
Net-Progress OXIA
WIA: SOA pour une interopérabilité intrinsèque du SI
SOA– OXIA – 2008
Internet et Web
10
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Architectures informatiques Types et contraintes Serveur Internet
Web Client-Serveur Distribuée
SOA– OXIA – 2008
Partage de fichiers
WIA: SOA pour une interopérabilité intrinsèque du SI
11
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Evolution de l'architecture des applications : De la centralisation vers la centralisation Centralisé
kkwkj kkwkj kkwkj kkwkj kkwkj kkwkj kkwkj
Client-serveur deux niveaux
Client-serveur trois niveaux
aaaawwwww aaaawwwww aaaawwwww aaaawwwww aaaawwwww aaaawwwww aaaawwwww
Interface utilisateur Services d'entreprise
Interface utilisateur
Services d'entreprise
Interface utilisateur Services d'entreprise Services de données
Services de données
WIA: SOA pour une interopérabilité intrinsèque du SI
12
Services de données
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Services d'entreprise
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
Contexte architectures informatiques
WIA: SOA pour une interopérabilité intrinsèque du SI
13
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
14
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
Objectifs des S.I. récapitulatif.
WIA: SOA pour une interopérabilité intrinsèque du SI Introduction
15
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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 + multidépartementaux Des Silos sans communication
L’information ou les données sont difficiles à trouver et à relier Division B • Problèmes au moment de l’échange des données
Division A
Division C
L’Intégration doit être le mot d’ordre! CRM
ERP
SOA– OXIA – 2008
Résultat : l’information et les données coûtent cher
DB
WIA: SOA pour une interopérabilité intrinsèque du SI
16
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Problématique de l’intégration en entreprise Entreprises découpées en départements fonctionnels y compris le système d'information (SI)
Coûts considérables dans la gestion des flux entre départements et dans l’intégration de leurs SI WIA: SOA pour une interopérabilité intrinsèque du SI
17
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Processus métiers des entreprises de + en + multi-départementaux
khaled.bendriss@oxiasoft.com
Problématique de l’intégration inter-entreprises
Application web
Tozeur) Agence de voyages (plateforme technique2)
Réservation
Client (plateforme technique6)
Compagnie aérienne (plateforme technique1)
Réservation Réservation, Tarifs
Chaîne hôtelière (plateforme technique4)
Tarifs, promotion
Assurance voyage (plateforme technique5)
SOA– OXIA – 2008
Location de voitures (plateforme technique3)
D’après : J-M Chauvet WIA: SOA pour une interopérabilité intrinsèque du SI
18
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
Applications distribuées & l’Interopérabilité
WIA: SOA pour une interopérabilité intrinsèque du SI
19
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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 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 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.
WIA: SOA pour une interopérabilité intrinsèque du SI
20
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
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).
khaled.bendriss@oxiasoft.com
Architectures d’interopérabilité
avec middleware
sans middleware)
Mise en œuvre systématique dans un cadre d’urbanisation
Deux modes de communication
Sans connexion (asynchrone, couplage faible) Avec connexion (synchrone, couplage fort)
Formats d’échange : XML (eXtended Markup Language)
Intégration de systèmes complexes: EAI (Enterprise Application Integration)
Modèle d’architecture cible: SOA ( Service Oriented Architecture)
WIA: SOA pour une interopérabilité intrinsèque du SI
21
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Intégration et communication entre composants applicatifs
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
Les types de middleware classiques
WIA: SOA pour une interopérabilité intrinsèque du SI
22
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
La réalité dans les SI: SOA (Spaghettis Orientée Service) Interconnexions redondantes (point à point)
Développements coûteux
Maintenance difficile
SOA– OXIA – 2008
Grande complexité
WIA: SOA pour une interopérabilité intrinsèque du SI
23
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
24
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
Interopérabilité : différents points de vue
WIA: SOA pour une interopérabilité intrinsèque du SI
25
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Interopérabilité : différents points de vue Indépendance , intégration
métier
Responsable IT Architecte
virtualization des Services, visibilité, sécurité
Ingénieur Système Développeur WIA: SOA pour une interopérabilité intrinsèque du SI
26
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
#$%! , java C#, bugs…I…
khaled.bendriss@oxiasoft.com
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.
SOA– OXIA – 2008
On a besoin d’une nouvelle approche !
WIA: SOA pour une interopérabilité intrinsèque du SI
27
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
28
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
Service Oriented Architecture SOA, qu’est-ce? (1/3)
Une nouvelle plate-forme architecturale pour le développement de solutions distribuées WIA: SOA pour une interopérabilité intrinsèque du SI
29
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
SOA est un paradigme abstrait, base de l’architecture distribuée sans aucune référence à une implémentation technique
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
Service Oriented Architecture SOA, qu’est-ce ? (2/3)
WIA: SOA pour une interopérabilité intrinsèque du SI
30
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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 principes nouveaux.
WIA: SOA pour une interopérabilité intrinsèque du SI
31
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Service Oriented Architecture SOA, qu’est-ce ? (3/3)
khaled.bendriss@oxiasoft.com
Une définition de la SOA La SOA c’est structurer en services contractualisés
une application
un bloc applicatif
Voire tout le S.I.
Afin d’adresser les enjeux de
mise en œuvre de services globaux entre blocs applicatifs
Politique de réutilisation
Pérennité des applications
recherche de la réutilisation à l’intérieur d’un bloc applicatif
WIA: SOA pour une interopérabilité intrinsèque du SI
32
Tunisie -Tozeur – 25/11/2008
"Faire du nouveau avec de l'ancien"
SOA– OXIA – 2008
Politique d’interopérabilité
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
Les Composants
WIA: SOA pour une interopérabilité intrinsèque du SI
33
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Service Oriented Architecture : une architecture Consommateur/Fournisseur
Fournisseurs
Consommateurs
de Services
De Service
Courtier de Services
Transformation
Sécurité
SLA
Monitoring
SOA– OXIA – 2008
Annuaire
WIA: SOA pour une interopérabilité intrinsèque du SI
34
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
35
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
Dans SOA il y a Service ?
SOA est une histoire de conception pas de technologie penser Architecture & Service.
Avant tout : un service doit être "abstrait"
Exemple Service d'enregistrement d'un abonnée
Un service n’est pas lié à une implémentation.
Service de réservation d'un train
Service de demande de l'état d'une commande
WIA: SOA pour une interopérabilité intrinsèque du SI
36
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Service de diffusion d'information
khaled.bendriss@oxiasoft.com
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
Correspond à un périmètre fonctionnel exposé à des consommateurs (une granularité plus forte qu’un composant) • Expose un petit nombre d’opérations offrant un traitement de bout en bout • Est faiblement couplé • Sans état WIA: SOA pour une interopérabilité intrinsèque du SI
37
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
• Boite noire (séparation interface/implémentation) • Indépendant de la localisation • Neutralité vis-à-vis des protocoles de transport
khaled.bendriss@oxiasoft.com
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
AgentDeCrédit est lié à ApprobationCrédit et Crédit ApprobationCrédit est lié à Compte Crédit est lié à SMSGateway
WIA: SOA pour une interopérabilité intrinsèque du SI
38
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
EnvoyerConfirmation
khaled.bendriss@oxiasoft.com
Après l’approche service : Gestion de prêts en couplage faible
VérifierBalanceCpt
Calculer RisqueCérdit
créerCrédit
ProcessusCrédit Un processus métier ! Il permet d’orchestrer les services => couplage lâche WIA: SOA pour une interopérabilité intrinsèque du SI
39
Tunisie -Tozeur – 25/11/2008
Notifier ViaSMS
SOA– OXIA – 2008
ProcessusCrédit
khaled.bendriss@oxiasoft.com
Zoom sur la phase de spécification
Chaque service a un coût et un risque
Challenge :
Un service peut être
trouver les “bons” services à exposer
Il faut éviter la prolifération des services
WIA: SOA pour une interopérabilité intrinsèque du SI
synchrone
Asynchrone
40
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Les services identifiés ne doivent pas être tous publiés :
khaled.bendriss@oxiasoft.com
4 propriétés du service à retenir Un Service est Autonome
Un Service expose un Contrat
in
Conditions Générales de Vente Règlement Intérieur Vos droits/Vos devoirs
out
Les services communiquent par messages
SOA– OXIA – 2008
Les Frontières entre services sont Explicites
WIA: SOA pour une interopérabilité intrinsèque du SI
41
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
SOA véhicule des Messages et non des objets
Le consommateur (client) est découplé de l’architecture technique du service qu’il invoque
Le consommateur et le fournisseur n'ont pas forcément les mêmes technologies
Importance de l'Architecture Importance des standards
WIA: SOA pour une interopérabilité intrinsèque du SI
42
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
4 propriétés : conséquences
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
4 propriétés : conséquences
WIA: SOA pour une interopérabilité intrinsèque du SI
43
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
44
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
Cycle de vie d’un service
4 grandes phases :
1 aspect transversal : la gouvernance
Identification
Les architectures orientées service impliquent une vision globale
Spécification
La gouvernance permet de casser les silos de l’entreprise
SOA– OXIA – 2008
Développement Gestion (versionning, …) WIA: SOA pour une interopérabilité intrinsèque du SI
45
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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 entre services
Composants
Les services permettent des relations faiblement couplées; les composants des relations fortement couplées
Fonctions WIA: SOA pour une interopérabilité intrinsèque du SI
46
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Données privées
khaled.bendriss@oxiasoft.com
exemples de services en fonction de la 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
Granularité
WIA: SOA pour une interopérabilité intrinsèque du SI
47
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
48
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
Deux approches d’identification des services Approche Bottom-up
Pour réutiliser l’existant (non SOA)
Pour démarrer un nouveau projet
On part des morceaux, on rassemble les bouts
Dans le cadre d’une vision globale très claire
Quelques méthodologies (nouvelles): Praxeme, SOMA (IBM) …
WIA: SOA pour une interopérabilité intrinsèque du SI
49
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Approche Top-down
khaled.bendriss@oxiasoft.com
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
SOA– OXIA – 2008
Penser métier Penser interopérabilité & standards WIA: SOA pour une interopérabilité intrinsèque du SI
50
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
51
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
Implémentations des Services
SOA– OXIA – 2008
Maximiser l’interopérabilité par l’usage systématique des standards?
WIA: SOA pour une interopérabilité intrinsèque du SI
52
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
SOA et web services Attention à ne pas confondre SOA et web services
SOA est un paradigme abstrait, base de l’architecture distribuée sans aucune référence à une implémentation technique Une SOA peut se mettre en œuvre sans Web Services
Les WS sont de l’ordre de la technologie :
Un service métier = un webservice
On peut utiliser les Web Services sans faire de SOA (architecture point à point sans réutilisation)
Les Web Services offrent une implémentation possible mais pas nécessaire
WIA: SOA pour une interopérabilité intrinsèque du SI
53
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
SOA est un ensemble de concepts :
Les WS constituent une bonne solution standardisée disponible
khaled.bendriss@oxiasoft.com
Points clés de l’architecture 1.a rechrcehr un service
Consommateur Service
Repository
1.b Returner le contract 2.a Creer une intsance du processus
Mediation layer/Service bus 2.c determiner le point de contact du service
2.d enjoyer la requêtte
Fournisseur Service
Registry Description “Business process”
WIA: SOA pour une interopérabilité intrinsèque du SI
54
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
2.b Executer processus
khaled.bendriss@oxiasoft.com
Services Web ~ quatre spécifications XML
SOAP : pour le transport des données et l’infrastructure de communication
WSDL : pour la description des services offerts
UDDI : annuaire pour le référencement des services par les fournisseurs et leur découverte par les utilisateurs. WIA: SOA pour une interopérabilité intrinsèque du SI
BPEL : décrit le processus métier
55
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
XML
khaled.bendriss@oxiasoft.com
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 Access Protocol
Web Services Description Language
Universal Description Discovery and Integration
Business Process Execution Language
Transporte
Décrit le contrat
Microsoft, IBM, HP, …
Spec pour Repository/Registry
Les trois piliers des Services Web WIA: SOA pour une interopérabilité intrinsèque du SI
56
Tunisie -Tozeur – 25/11/2008
Décrit les processus métier
Lien avec BPMN
SOA– OXIA – 2008
W3C
W3C
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
57
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
Qu'est ce qu'un Web Service ?
Définition [W3C]
Exposition
Un Web service est un système logiciel identifié par une URI, dont les interfaces publiques et les liens sont définis et décrits en XML.
Sa définition peut être découverte par d'autres systèmes logiciels.
Langage WSDL (Web Service Description Language) utilisé pour décrire le service
Protocole Web audessus de HTTP (RPC XML, SOAP)
Similaire à IDL mais basé sur XML
Autres protocoles possibles …
SOA– OXIA – 2008
Ces systèmes peuvent interagir avec le service Web d'une manière prescrite par sa définition, en utilisant des messages XML portés par les protocoles Internet.
WIA: SOA pour une interopérabilité intrinsèque du SI
Activation
58
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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 relation entre SOA & EDA Les 8 péchés capitaux de la SOA (anti-patterns SOA) SOA : 7 bonnes pratiques
WIA: SOA pour une interopérabilité intrinsèque du SI
59
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
La notion de maturité SOA
khaled.bendriss@oxiasoft.com
SOAP : Simple Object Access Protocol Intégration de XML audessus de HTTP :
• Pour accéder services, objets et serveurs • Indépendant de toute plate-forme
Port de connexion (URL) Pare-feu Procuration
Messages
d'interface
SOAP
Application Cliente
Pare-feu
Appel
Translateur SOAP
HTTP RPC
Parseur XML
Parseur XML
Application Serveur
WIA: SOA pour une interopérabilité intrinsèque du SI
60
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
local
Réponse
khaled.bendriss@oxiasoft.com
Structure d'un message
Protocol Headers
Entête de protocoles (HTTP, SMTP, …)
<Envelope>
SOAP Envelope
<Header> SOAP Header
<Body>
SOA– OXIA – 2008
SOAP Body
WIA:SOAP SOA pour une interopérabilité intrinsèque du SI XML-RPC et
61
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
SOAP : implémentation .Net Web Services Axis 1.x & Axis2 Xfire 1.2.2 SpringWS
SOA– OXIA – 2008
WebSphere ...
WIA: SOA pour une interopérabilité intrinsèque du SI
62
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
63
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
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
SOA– OXIA – 2008
- Offre une interface qui est le point d’entrée du service.
WIA: SOA pour une interopérabilité intrinsèque du SI
64
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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, <porttype> peut avoir plusieurs liaisons !
MIME, …). Un
<port> SOA– OXIA – 2008
• Spécifie un point d’entrée (endpoint) comme la combinaison d’un <binding> et d’une adresse réseau.
<service> • Une collection de points d’entrée (endpoint) relatifs.
WIA: SOA pour une interopérabilité intrinsèque du SI
65
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Contrat dans les web services : Contract -First pour une meilleure interopérabilité
Web Service deux approches
Contract-Last
créer les types de données, le messages envoyés puis associer le code source
créer le code source (classes java ou c#) puis définir (ou générer) le web service, wsdl, les types …
WIA: SOA pour une interopérabilité intrinsèque du SI
66
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Contract-First :
khaled.bendriss@oxiasoft.com
Contrat dans les web services Privilégier l'approche contract-first et Définir vos schéma XML (et gérer vos XSD )
Anticipe les problèmes d'interopérabilités
Les clients se concentrent sur le message XML
SOA– OXIA – 2008
Définir les interfaces XML des messages
Commencer par les types (XSD) et WSDL
WIA: SOA pour une interopérabilité intrinsèque du SI
67
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
68
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
UDDI : Annuaire des services Universal Description, Discovery and Integration Fonctions Annuaire UDDI
décrit par un document
Enregistrer votre société
WSDL, autre …
Enregistrer des services
Accessible en SOAP
Enregistrer des opérations Découvrir des services
Annuaire UDDI
Gérant de requêtes
Enveloppe + Document
Service
Programme WIA: SOA pour une interopérabilité intrinsèque du SI
69
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Annuaire des services
khaled.bendriss@oxiasoft.com
Scénario classique d'utilisation d'UDDI WIA: SOA pour une interopérabilité intrinsèque du SI
70
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
UDDI : utilité d’un annuaire de service
khaled.bendriss@oxiasoft.com
UDDI : implémentation
Microsoft, IBM, Oracle ( et aussi BEA )…
SOA– OXIA – 2008
open source : jUDDI
WIA: SOA pour une interopérabilité intrinsèque du SI
71
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
72
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
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)
Gartner believes that BPEL will emerge as the leading industry standard for Web service orchestration and coordination of business processes.
BPEL is the future of the integration space in my view…Why? Because the value is so much higher when you provide not only a way to integrate applications, but also a way to create services from them and put them into business processes - John Rymer, Vice President, Forrester Research, Inc.
- David Smith, Research Vice President and fellow, Gartner
WIA:SOAP SOA pour une interopérabilité intrinsèque du SI XML-RPC et
73
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Gestion des erreurs
khaled.bendriss@oxiasoft.com
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. User Tasks
Biztalk
WIA: SOA pour une interopérabilité intrinsèque du SI
74
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
75
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
Se conformer aux standards WS-I BP : Privilégier le couplage faible Fournisseur du Service : Serveur
SOA– OXIA – 2008
Consommateur du Service : Client
WIA: SOA pour une interopérabilité intrinsèque du SI
76
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
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)
SOAP 1.1 WSDL 1.1 UDDI 2.0 XML Schema XML 1.0 (Second Edition) HTTP 1.1
+
• Restrictions, • Integration Guidance • Best Practices
=
SSL 3.0 WIA: SOA pour une interopérabilité intrinsèque du SI
77
Tunisie -Tozeur – 25/11/2008
Basic Profile 1.1
SOA– OXIA – 2008
Profiles: Basic, Attachments et Basic Security
khaled.bendriss@oxiasoft.com
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)
• • • •
“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” “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”
WIA: SOA pour une interopérabilité intrinsèque du SI
78
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Exemple de conditions pour la conformité WS-Basic:
khaled.bendriss@oxiasoft.com
WS-I Profiles
Profiles WS-I
• WS-ReliableMessaging1.1 • WS-SecureConv
• WS-S 1.1 • SAML
SOAP 1.1
Reliable Secure Profile 1.0
WSDL 1.1 XML Schema XML 1.0 HTTP 1.1 SSL 3.0
Basic Profile 1.1, 1.2 SOA– OXIA – 2008
Basic Security Profile 1.1
UDDI 2.0
79
WS-Addressing
WIA: SOA pour une interopérabilité intrinsèque du SI
79
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
WS-I et Basic Profiles
WIA: SOA pour une interopérabilité intrinsèque du SI
80
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
WSDL et format des messages Styles s'applique au mécanisme de traduction d'un binding WSDL lors de la construction d'un message SOAP
Format RPC
Format Document
Structure imposée (nom de méthode contenant les paramètres)
Structure libre (n’importe quel arbre est transporté dans l’enveloppe)
WIA: SOA pour une interopérabilité intrinsèque du SI
81
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Deux styles d’encodage :
khaled.bendriss@oxiasoft.com
WSDL et format des messages Deux styles d’encodage : Format RPC
Structure imposée (nom de méthode contenant les paramètres)
Avantages et inconvénients :
Format Document
Structure libre (n’importe quel arbre est transporté dans l’enveloppe)
RPC
Document
Facile à valider : respecte le schéma imposé par SOAP
Uniquement appel de méthode (nom de méthode + paramètres)
(celui que je recommande
Plus difficile à valider (schéma non vérifiable un niveau SOAP)
Optimisations possibles (évite de passer la nom de la méthode par exp)
Bien sûr utilisable pour faire de l’appel de méthode!!!!
WIA: SOA pour une interopérabilité intrinsèque du SI
82
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Passage de messages purs (un arbre)
khaled.bendriss@oxiasoft.com
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 SOA– OXIA – 2008
valeurs…
WIA: SOA pour une interopérabilité intrinsèque du SI
83
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Modes des Services Web
Les types sont placés dans le message (encoding)
Avantages et inconvénients
Les types sont définis par un schéma via wsdl (literal)
WIA: SOA pour une interopérabilité intrinsèque du SI
Encoding :
84
Literal (celui que je recommande) :
Messages courts
Messages longs
Client et serveur doivent posséder le schéma pour valider le message
Client ou serveur n’ont pas besoin de connaître le schéma i.e. messages auto-validants
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Deux façon d’encoder les données
khaled.bendriss@oxiasoft.com
Modes des Services Web
SOA– OXIA – 2008
Style : RPC vs. Document Encodage : Encoded vs. Literal
WIA: SOA pour une interopérabilité intrinsèque du SI
85
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Modes des Services Web
SOA– OXIA – 2008
Style : RPC vs. Document Encodage : Encoded vs. Literal
WIA: SOA pour une interopérabilité intrinsèque du SI
86
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
SOAP Fault
Balise permettant de signaler des cas d’erreur.
La balise Fault contient les balises suivantes faultcode : un code permettant d’identifier le type d’erreur • Client, Server, VersionMismatch, MustUnderstand
faultstring : une explication en langage naturel
detail : définition précise de l’erreur.
WIA: SOA pour une interopérabilité intrinsèque du SI
87
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
faultactor : une information identifiant l’initiateur de l’erreur
khaled.bendriss@oxiasoft.com
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
Créer votre grammaire propre via XML Schema (s'inspirer de GS1, ebXML, …), fixer les espaces de nomages Possibilité d'utiliser les framework de mapping objet/XML (JAXB, …)
WIA: SOA pour une interopérabilité intrinsèque du SI
88
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
• – Les opérations peuvent être stables au cours du temps • – Seuls les schémas évoluent
khaled.bendriss@oxiasoft.com
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
Penser à mettre en place un mécanisme de notification
WIA: SOA pour une interopérabilité intrinsèque du SI
89
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Les meilleurs résultats sont obtenus en les couplant avec des MOM (JMS en Java EE)
khaled.bendriss@oxiasoft.com
Exemple de projet réalisé dans le monde des télecom Tunisiana (Tunisie) & Nedjma (Algérie) : approche contract First consumers
CRM
IVR
USSD
Content
Applications Applications Applications
Xpert
WSDL
SMS/MMS
Java
SOA Plate-form Plate
Policy Access SOA-plateofrme Engine Control
Portlet
Personal
Portal
.Net
notification
application Management
Monitoring
KHAS© (OXIA-Service-Framework) Application Server SQL
Java
CMS
BSCS
IN
WIA: SOA pour une interopérabilité intrinsèque du SI
VoMS / VAD
90
DMC
Tunisie -Tozeur – 25/11/2008
Applications Applications Applications
SOA– OXIA – 2008
Services providers
CORBA
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
91
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
Besoin d'infrastructure ?
WIA: SOA pour une interopérabilité intrinsèque du SI
92
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Standards Importants pour SOA
ERP/ Legacy Apps
Portal
Web Application
WS
Process Flow Logic
API MONITOR & OPTIMIZE BAM JMX
INTERACT/ACCESS PORTAL JSR-168 Struts/JSF
Custom Apps & Services
Web services
ORCHESTRATE
GATEWAY WS-Security WS-Policy, SAML
BPEL XSLT/XQuery
Web Services Mgmt
BUSINESS SERVICES XML/XML Schema WSDL/WSIF SOAP JCA JMS SCA
WIA: SOA pour une interopérabilité intrinsèque du SI
93
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Monitoring Optimization
Security Reliability Logging Failover Dynamic Routing
khaled.bendriss@oxiasoft.com
Besoin d'infrastructure ? BAM
System GOVERNANCE Monitoring
ROUTING &Business ORCHESTRATION Events Analytics Monitoring Rules
BPEL Process
Framework
Human Workflow
BPEL Engine App Dev Framework
Enterprise Manager
BI
Web Services Manager
Business Rules
Management
Enterprise Service Bus DATA SERVICES & (ESB) CONNECTIVITY Multi Protocol
XSLT Transform
Routing
Adapters
DI
B2B
B2B
Apps DB
ETL
Partners
Partners
Security Registry
MOM ActiveMQ, Mqseries, MSMQ WIA: SOA pour une interopérabilité intrinsèque du SI
Application Server J2EE / Windows .Net 94
Tunisie -Tozeur – 25/11/2008
Discovery Policies SOA– OXIA – 2008
IDE MANAGEMENT & Eclipse MONITORING V.S.
khaled.bendriss@oxiasoft.com
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
La notion de maturité SOA La relation entre SOA & EDA Les 8 péchés capitaux de la SOA (anti-patterns SOA) SOA : 7 bonnes pratiques WIA: SOA pour une interopérabilité intrinsèque du SI
95
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Le MDM
khaled.bendriss@oxiasoft.com
ESB (Enterprise Service Bus) infrastructure SOA au service de l’interopérabilité Middleware d’intégration fournissant des fonctionnalités comme l’acheminement le routage des messages, la connexion des applications/progiciels (via des adaptateurs dédiés ou des technologies standards – services web,..),
et au-delà l’ensemble des médiations nécessaires aux échanges dynamiques entre consommateurs et fournisseurs de services
WIA: SOA pour une interopérabilité intrinsèque du SI
96
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
la transformation des données,
khaled.bendriss@oxiasoft.com
L'ESB (bus de service d’entreprise) : composant d’infrastructure central d’une SOA Le but d’un ESB est de permettre de communiquer de manière simple et standardisée entre des applications hétérogènes
Services de médiation • Acheminement • Transformation
Services d’événement • Publier et abonner
Services de transport
Axé sur les normes • HTTP/HTTPS avec possibilité de messagerie fiable SW • MOM, JMS, JAX-RPC, SOAP • Sécurité Web, politique Web, adressage Web WIA: SOA pour une interopérabilité intrinsèque du SI
C’est le point d’entrée vers un service 97
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
• Synchrone / asynchrone • Constant / non constant • Couplage lâche / couplage étroit
khaled.bendriss@oxiasoft.com
ESB une maturité croissante de l’offre Infrastructure qui optimise les échanges entre consommateurs et fournisseurs de services
ESB
Plate-forme d’intégration IBM Websphere Process Server
Microsoft Biztalk
Microsoft Biztalk
IBM Websphere ESB
BEA Weblogic Acqualogic
Mule
Oracle fusion
Sonic ESB
SAP “Netweaver”
Petals de ObjectWeb OpenESB (Sun) serviceMix
WIA: SOA pour une interopérabilité intrinsèque du SI
98
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Standards
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
99
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
SLA : Service Level Agreement Une architecture orientée service (SOA) repose sur la définition et la publication de services Définit de manière explicite l’interface du service sans préjuger de la technologie utilisée par le consommateur ni de l’implémentation de ce service par le fournisseur
SOA– OXIA – 2008
Imposer l’interopérabilité dans le SLA
WIA: SOA pour une interopérabilité intrinsèque du SI
100
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Les contrats de services définissent les exigences opérationnelles d’exploitation des services exposés Producteurs et consommateurs définissent de objectifs de niveaux de services (SLO) • Par exemple: • Temps de réponse <2s • Disponibilité de 99,9% • Trafic maximum de 100 requêtes/h
Un engagement de services (SLA) est défini par • Le ou les consommateurs pour lesquels il s’applique • Le ou les services sur lesquels il s’applique • Un ensemble de SLO • La période de temps sur laquelle il s’applique
• Ils sont associé à un services • Ils correspondent à un critère de finalité ou de performance du service • Ils peuvent être mesurés de façon quantitative ou qualitative, afin d’être comparés au résultat attendu. • Leur étude doit permettre l’optimisation de la qualité de service.
WIA: SOA pour une interopérabilité intrinsèque du SI
101
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Des indicateurs de performances (KPI) seront utilisés pour gérer la qualité du service rendu
khaled.bendriss@oxiasoft.com
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
Web service pas forcément interopérable : WS-I et Basic Profiles SOA : quelles infrastructures? Notion de SLA et les besoins non fonctionnels Best Practices : SOA & interopérabilité WIA: SOA pour une interopérabilité intrinsèque du SI
102
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
BPEL
khaled.bendriss@oxiasoft.com
Inter-opérabilité & SOA Services d'infrastructure réutilisables Méta-information
Services métier réutilisables Services métier
Architecture orientée services
Bon niveau d'isolation vis-àvis des API
Protocole de communication à faible couplage
Gestion des versions
WIA: SOA pour une interopérabilité intrinsèque du SI
103
Tunisie -Tozeur – 25/11/2008
Modélisation métier
SOA– OXIA – 2008
Interopérabilité
Services métier technologiques
khaled.bendriss@oxiasoft.com
Best Practices : SOA & interopérabilité Gestion du portefeuille de service Modèle de maturité : Benchmarking
Cadre Commun d’interopérabilité
Sécurité et gestion
WIA: SOA pour une interopérabilité intrinsèque du SI
l'Industrialisation du développement des logiciels
104
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Orchestration de Processus, Workflow et Règles métiers
montée en charge à la demande
khaled.bendriss@oxiasoft.com
gérer le portefeuille de services
Bonnes pratiques Contract- First & Interface-First Documents à gros Grain Interactions Asynchrones Opérations d'annulation (Undo/Cancel)
WS-I, Wrapped Document Style Penser à SCA
WIA: SOA pour une interopérabilité intrinsèque du SI
105
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Versioning
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
Cadre Commun d’interopérabilité : Connectivité et Message
WIA: SOA pour une interopérabilité intrinsèque du SI
106
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Orchestrer les processus Bonnes pratiques BPEL & BPMN XSLT Transformation Service Workflow humain Service Moteur de règles Service de Notification Service de gestion des Erreurs
Trace et débogage Développement Itératif Test Unitaire WIA: SOA pour une interopérabilité intrinsèque du SI
107
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Lien vers l'ESB
khaled.bendriss@oxiasoft.com
Etablir une politique de sécurité
Bonnes pratiques
WS-Policy, WS-Security
Intégration avec un ESB (Multi-binding Support) WIA: SOA pour une interopérabilité intrinsèque du SI
108
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Capacité à changer la politique de sécurité sans changer les services
khaled.bendriss@oxiasoft.com
Industrialiser Avant l'Industrialisation du développement des logiciels Activité du développeur Concevoir le contrat & service Coder l’interface du contrat Coder le contrat des classes Coder le « Endpoint » du service
109
SOA– OXIA – 2008
Coder la configuration
WIA: SOA pour une interopérabilité intrinsèque du SI
109
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Industrialiser Après l'Industrialisation du développement des logiciels
Cadre commun d’interopérabilité
Encadrement en contexte
Usine logicielle
Cadres architecturaux
Générer le contrat & service Générer l’interface du contrat Développement selon un modèle
Générer le contrat des classes
SOA– OXIA – 2008
Générer le « Endpoint » du service
110
Générer la configuration
WIA: SOA pour une interopérabilité intrinsèque du SI
110
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
montée en charge à la demande
Bonnes pratiques Prévoir des Interactions Asynchrones Traiter judicieusement le cas des documents XML de grande taille “Stateless Architecture”
Prévoir le mode Batch (API batch) Réaliser des “POC performance” pour valider tous les choix techniques
WIA: SOA pour une interopérabilité intrinsèque du SI
111
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
JCA and Java Binding
khaled.bendriss@oxiasoft.com
Pourquoi un modèle de maturité: Benchmarking Pour planifier les étapes à suivre pour améliorer la maturité de la pratique SOA
Where do you want to go?
WIA: SOA pour une interopérabilité intrinsèque du SI
Définir une vision SOA
Objectifs
Ressources requises
Pratiques
Gains obtenus (ROI)
112
Tunisie -Tozeur – 25/11/2008
SOA– OXIA – 2008
Pour se positionner dans le chemin d'adoption d'une démarche SOA
khaled.bendriss@oxiasoft.com
Technology
Organization
Process
5
BP Modeling Standards
Bus. Process Modeling Tools
SOA Organizational Structure
Continuous Improvement
4
BAM, SCA WS-* Standards
BAM Tool EPM Standard Dashboard
Business Service Depts
Capacity Planning, Ent. Ref. Arch.
3
BPEL, BPMN WS-Security, JSR 168
BPEL Engine, Portal/Portlets
Enterprise SOA Education
SOA Best Practices, Int. Ref. Arch
SOM, UDDI Registry, Rules, Message Bus
EA Dept., Tech. Service Dept.
Governance, Operational Model
2
1
WSDL, UDDI Standards JMS SOAP, XML
Architect’s Collective
Web Services
App. Ref. Architecture
SOA– OXIA – 2008
Standards
ROI Maturity Automated Tools
The Hartford’s SOA Maturity Model
Question : Where we are ? WIA: SOA pour une interopérabilité intrinsèque du SI
113
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
SOA– OXIA – 2008
Modèle de référence de SOA de l’OASIS : des sujets de recherche, toujours d’actualité
Source : Norme du modèle de référence de SOA de l’OASIS, 12 octobre 2006 WIA: SOA pour une interopérabilité intrinsèque du SI
114
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
La suite …
SOA– OXIA – 2008
SaaS (Software as a Service
WIA: SOA pour une interopérabilité intrinsèque du SI
115
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com
Khaled BEN DRISS Directeur Technique Tel : +216 71 28 27 00 Mob.: +216 25 23 45 30 khaled.bendriss@oxiasoft.com
11 rue Claude Bernard 1002 Le Belvédère Tunis, Tunisia Tél : +216 71 28 27 00 Fax : +216 71 28 27 05
www.oxiasoft.com
L’organisation du SI en couches & Urbanisation une couche service à inventer
Description et structuration fonctionnelle du système d’information Définition de services contractualisés (contrat de Services)
Description et structuration du système informatique en composants logiciels (Implémentation des Services)
Fonctionnelle
Services métiers
Applicative
Technique Infrastructure de fonctionnement du système d'information et des composants logiciels et applicatifs
: : ::
: :
SOA– OXIA – 2008
Description du métier compréhensible par les acteurs du métier
Métier
Exemple d’une représentation adaptée : source CIGREF
WIA: SOA pour une interopérabilité intrinsèque du SI
117
Tunisie -Tozeur – 25/11/2008
khaled.bendriss@oxiasoft.com