Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Architecture logicielleGLO-3001
Partie II : Introduction à SOA
Félix-Antoine Bourbonnais
Département d’informatique et de génie logicielUniversité Laval
Hiver 2010
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction
Partie II : Introduction à SOAPlan
1 IntroductionIntroductionMotivations
2 SOA
3 Architecture SO
4 Conclusion
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 2 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction
Définitions
Définitions
• SOA : Service-oriented architecture
• SO : Service-orientation
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 3 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction
SOA
Définition générale :
• Paradigme
• Dans le but d’augmenter la flexibilité
• Faiblement couplé
• Basé sur des standards
• Hétérogène
• Plusieurs propriétaires *
• Distribué *
La définition peut varier en fonction du point de vue :client, TI, direction, fonctionnel, architecture, ...
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 4 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction
Avertissement
• Ceci est une trop courte introduction à SOA...
• Il existe plusieurs définitions de SOA
• SOA est à la mode...• Chaque vendeur a sa définition pour vendre ses produits
« SOA »• Même les organismes de normalisation impliqués ne partagent
pas tous la même définition
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 5 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction
SOA, une philosophie...
SOA est un paradigme, une philosophie...
SOA n’est pas une architecture concrète...
SOA n’est pas une technologie...
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 6 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction
SOA, une philosophie...
SOA 6= WS
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 7 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction
Désillusion...
On ne peut pas acheter SOA !
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 8 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction
Désillusion...
Il n’y a pas de miracle SOA !
SOA n’est pas simple !
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 9 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction → Motivations
Partie II : Introduction à SOAPlan
1 IntroductionIntroductionMotivations
2 SOA
3 Architecture SO
4 Conclusion
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 10 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction → Motivations
Architecture distribuée
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 11 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction → Motivations
Architecture distribuée
Pour mieux répondre aux besoins de nos clients, le processus defacturation sera amélioré...
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 12 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction → Motivations
Architecture distribuée
Pour mieux répondre aux besoins de nos clients, le processus defacturation sera amélioré...
NNNOOONNnn ! ! !Pas le composant de facturation ! !
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 12 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction → Motivations
Avec SOA (idéal)
Service
registryBD
Oracle
BD
MySQLService
repository
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 13 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction → Motivations
Avec SOA (idéal)
[3]
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 14 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction → Motivations
Motivations
• Les besoins des entreprises changent de plus en plusrapidement
• Adaptabilité de l’entreprise aux marchés• De nouveaux services doivent pouvoir être développés
rapidement et pouvoir durer• L’intégration des services est traditionnellement un goulot• Nécessité de réutiliser et éviter les doublons• Pouvoir répondre aux besoins d’affaires plus rapidement en
utilisant l’existant
• Monde inter-connecté
• Entre les départements• Connexion entre les entreprises• Utilisation de services globaux
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 15 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Introduction → Motivations
Architectures traditionnelles
• Programmation en silo
• Conception centrée sur une application (un projet)
• Conception cloisonnée dans un département (un client)
• Intégration une à une des applications (cas par cas)
• Point à point• Connecteurs spécifiques
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 16 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Le paradigme SOA
Partie II : Introduction à SOAPlan
1 Introduction
2 SOALe paradigme SOAConcepts clésIngrédients
3 Architecture SO
4 Conclusion
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 17 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Le paradigme SOA
Fondements
[3]
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 18 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Le paradigme SOA
Postulats
• Les logiciels s’adaptent aux besoins d’affaires pas l’inverse !
• Difficile de prévoir les besoins logiciels à l’avance• Le besoins changent rapidement (en cours de route)
• Interopérabilité et généralisation des services
• Éviter les cloisonnements• Accepter l’hétérogénéité
• Flexibilité
• Évolution graduelle et agilité
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 19 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Le paradigme SOA
SOA Manifesto
We have been applying service orientation to help organizations consistentlydeliver sustainable business value, with increased agility and cost effectiveness, inline with changing business needs.
Through our work we have come to prioritize :
• Business value over technical strategy
• Strategic goals over project-specific benefits
• Intrinsic interoperability over custom integration
• Shared services over specific-purpose implementations
• Flexibility over optimization
• Evolutionary refinement over pursuit of initial perfection
That is, while we value the items on the right, we value the items on the left more.
ALI ARSANJANI GRADY BOOCH TOUFIC BOUBEZ PAUL C. BROWN DAVID CHAPPELL JOHN DEVADOSS THOMAS ERLNICOLAI JOSUTTIS DIRK KRAFZIG MARK LITTLE BRIAN LOESGEN ANNE THOMAS MANES JOE MCKENDRICK STEVEROSS-TALBOT STEFAN TILKOV CLEMENS UTSCHIG-UTSCHIG HERBJÖRN WILHELMSEN
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 20 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Le paradigme SOA
Orienté services
• Unité : le service
• SOA est une autre manière de penser
• Conception OO 6= conception SOA• Centré sur les services !• Besoin d’affaires découpé en services• Plus haut niveau que l’OO
• Implique un changement de mentalité
• À tous les niveaux (direction, architecture, ...)
• On peut utiliser les technologies et standards sans SOA
• SOAP, WSDL, ...
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 21 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Le paradigme SOA
Orienté servicesIdée de base
Il est plus simple de gérer et construire un système avec despièces détachées.
Chaque pièce ayant une préoccupation propre etindépendante des autres.
Exemple
Ceci ne suit PAS la philosophie SOA !
1 Concevoir en OO
2 Exposer certaines fonctionnalités
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 22 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Le paradigme SOA
Processus d’affaires
[1]
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 23 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Le paradigme SOA
Haut niveau
• OO se focalise sur l’objet (ex. : classe Personne)SOA se focalise sur le processus d’affaires
• Indépendant de la technologie
• Systèmes hétérogènes• Peut utiliser WS, REST, CORBA (OBV), ...
• Le processus d’affaire est indépendant de
• l’infrastructure• l’architecture
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 24 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Le paradigme SOA
Avertissement !
Le diable est dans les détails !Ne pas sous-estimer les difficultés d’implémentation...
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 25 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Concepts clés
Partie II : Introduction à SOAPlan
1 Introduction
2 SOALe paradigme SOAConcepts clésIngrédients
3 Architecture SO
4 Conclusion
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 26 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Concepts clés
Concepts clés [5]
• Services
• Interopérabilité
• Couplage lâche (loose coupling)
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 27 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Concepts clés
Services
• Niveau d’abstraction : Processus/fonctionnalités d’affaires
• Représentation TI d’une fonctionnalité d’affaires
• Cache les détails techniques au monde extérieur
• Les gens d’affaires devraient pouvoir comprendre la raison d’êtred’un service
• Indépendant de la plateforme, des technologies, etc.
• Permet l’hétérogénéité
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 28 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Concepts clés
Services (suite)
Exemples
• Créer un client
• Produire une facture
• Générer les T4
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 29 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Concepts clés
Couplage lâche
• Postulat : Prédire les intégrations futures est impossible
• Solution : Indépendance !
• Facilite l’intégration• Augmente la robustesse
• Couplage lâche : Réduire les dépendances
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 30 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Concepts clés
Couplage lâcheObjectifs
• Minimiser les effets des modifications
• Augmenter la tolérence aux fautes
• Réduire les goulots d’étranglement (bottleneck)
• Augmenter la flexibilité et l’extensibilité
Niveau de couplage
• La quantité de couplage lâche doit être déterminée en fonctiondes besoins et du contexte
• Peut varier entre les inventaires
• Doit être décidé, analysé et encadré (SOA)
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 31 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Ingrédients
Partie II : Introduction à SOAPlan
1 Introduction
2 SOALe paradigme SOAConcepts clésIngrédients
3 Architecture SO
4 Conclusion
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 32 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Ingrédients
Ingrédients [5]
• Infrastructure
• Architecture
• Processus
• Gouvernance
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 33 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Ingrédients
Infrastructure
• Donne l’interopérabilité
• Technologies :
• ESB,• ...
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 34 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Ingrédients
Architecture
• Implémentation de « SOA »
• Décisions et choix
• Des règles et politiques• Des standards• Des façons de faire• Des technologies• Des rôles et responsabilités• Etc.
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 35 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Ingrédients
ArchitectureExemples de décisions
Exemples
• Quantité de couplage lâche
• Classement des services
• Patrons à utiliser (inventaires, couches, ...)
• WS ou REST
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 36 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Ingrédients
Processus
• Permet de traduire la fonctionnalité d’affaires en terme deservices
• BPM
• Diviser un processu d’affaires en tâches (services)
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 37 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → SOA → Ingrédients
Gouvernance
• Niveau : Organisation
• Méta-processus + stratégie
• Gestion des équipes
• Relations avec les services• Trouver les « bonnes personnes »• Équipe centrale, distribuée, ...
• Politiques et gestion
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 38 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Architecture SO → Principes
Partie II : Introduction à SOAPlan
1 Introduction
2 SOA
3 Architecture SOPrincipesPatrons et styles
4 Conclusion
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 39 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Architecture SO → Principes
Principes de design [2]
• Couplage lâche
• Contrats de service
• Exposition standardisée des capacités et de l’objectif
• Autonomie
• Chaque service contrôle sa logique
• Abstraction
• Cache la logique au monde extérieur• Le niveau d’abstraction doit être choisi
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 40 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Architecture SO → Principes
Principes de design [2] (suite)
• Réutilisabilité
• Composabilité
• Les services sont conçus de manière à pouvoir être coordonnéset assemblés pour former facilement des composites
• Sans état (stateless)
• Le niveau peut être choisi• Indépendance !
• Découvrable (discoverability)
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 41 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Architecture SO → Patrons et styles
Partie II : Introduction à SOAPlan
1 Introduction
2 SOA
3 Architecture SOPrincipesPatrons et styles
4 Conclusion
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 42 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Architecture SO → Patrons et styles
Service [3]
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 43 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Architecture SO → Patrons et styles
Centralisation
• Le degré de centralisation doit être décidé
• Attention ! Ne pas essayer de généraliser ce qui est spécifiquepar définition... [5]
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 44 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Architecture SO → Patrons et styles
Inventaires [4]Service Inventories
• Design et règles communs
• « Pool » de services
• Souvent une gestion commune
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 45 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Architecture SO → Patrons et styles
Couches [4]Service Layers
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 46 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Architecture SO → Patrons et styles
Couches [4] (suite)Service Layers
Notifications
CommissionFacture
Rapport
annuel
Processus
d’affaires
Entités
d’affaires
Utilitaires
Non-agnostique
Agnostique
(neutre)
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 47 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Architecture SO → Patrons et styles
Couches [4] (suite)Service Layers
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 48 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Architecture SO → Patrons et styles
MEP
• Message Exchange Patterns (MEP)
• MEPs courants :
• « Request-Response »• « One-Way »• « Request-Callback »• « Publish-Subscribe »
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 49 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Conclusion
Partie II : Introduction à SOAPlan
1 Introduction
2 SOA
3 Architecture SO
4 Conclusion
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 50 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Conclusion
Autres sujets
• Tests
• Sécurité
• Versionnage
• Gouvernance
• Processus
• Etc.
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 51 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Conclusion
Migration vers SOA
• Long terme !
• Assurer le financement
• Avoir le réel appui de la direction à long terme
• SOA donne une stratégie
• Migration incrémentale et itérative
• « Interfacer » les systèmes existants
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 52 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Conclusion
Mythes [2]
• SOA = WS
• SOA est un terme de vente
• SOA simplifie les architecture distribuées
• Si je comprends les WS alors l’implémentation de SOA serafacile
• SOA⇒ interropérabilité naturelle
NON ! FAUX !
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 53 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Conclusion
Attention !
SOA est un paradigme qui s’étend sur plusieurs niveaux :
• La direction doit être dans le coup
• Beaucoup de « départements » sont impactés (infrastructure,développement, clients, direction, etc.)
• Tous doivent être impliqués
• Nécessite de comprendre et de considérer les impacts surchacun
• Devra entraîner des changements organisationnels
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 54 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Conclusion
Dangers [2]
• Concevoir une architecture SOA comme une architecturedistribuée
• Mauvais découpage• Services difficiles à composer• Pas de consistance entre les services
• Ne pas établir de standards et de normes
• Toujours établir des règles, conventions, etc... comme en OOd’ailleurs !
• Ne pas avoir de plan de transition
• Ne pas considérer la performance
• Ne pas comprendre les aspects sécuritaires liés aux services
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 55 / 56
Introduction SOA Architecture SO Conclusion Annexes
Partie II : Introduction à SOA → Annexes
Références
[1] Ali Arsanjani, Liang-Jie Zhang, Michael Ellis, Abdul Allam, et KishoreChannabasavaiah, Design an SOA solution using a reference architecture,Mars 2007.http://www.ibm.com/developerworks/architecture/library/ar-archtemp/.
[2] Thomas Erl. Service-Oriented Architecture : Concepts, Technology, andDesign. Prentice Hall PTR, 1 edition, Août 2005.
[3] Thomas Erl. SOA Principles of Service Design. Prentice Hall, 1 edition, Juillet2007.
[4] Thomas Erl. SOA Design Patterns. Prentice Hall PTR, 1 edition, 2009.
[5] Nicolai M. Josuttis. Soa in Practice : The Art of Distributed System Design.O’Reilly Media, 1 edition, Août 2007.
Félix-Antoine Bourbonnais Architecture logicielle GLO-3001 Hiver 2010 56 / 56