index
SOA Service-oriented architecture
Le SOA est simple! .
Qu'est ce que SOA ?
Comme son nom l'indique, l'approche SOA repose sur l'organisation des applications en ensembles fonctionnels appelés services.
Un service est une application accessible par une interface XML standard (langages SOAP/WSDL), connue sous le nom de Web Services, couches d'invocation normalisée.
Au sein d'une telle architecture, des services (dits "producteurs") sont ainsi utilisés par d'autres services (dits "consommateurs").
Utilisation des service Web
Le « Service Web » est utilisé pour retourner le résultat d'une fonction de traitement d'un objet Métier.
Concrètement, vous n'aurez pas à modifier vos anciens développements pour transformer votre classe métier en service Web car vous utiliserez les Web Services comme une surcouche.
Cela permet d’éviter les re-développement de l'application.
Une bonne pratique consiste à ne pas appeler directement les classes métiers mais en passant par des «Classes Façades » qui permettent de définir clairement quelles sont les méthodes de accessibles par le Web.
Architectures et technologies equivalentes
Bien souvent, vous mettrez en comparaison les Web Service avec des appels RMI (ou CORBA ) car la fonction première du RMI (Remote Method Invocation) est la même que les services WEB.
Si les "web services" sont moins performants que le rmi, leur simplicité de développement et de déploiement ont fait leur succes.
La performance d'une méthode dépend aussi de la qualité de sa programmation et des tests réalisés:
Même si des appels aux WS sont plus coûteux que des appels RMI, il sont plus simples à développer, à tester, et donc à optimiser.
Interrêt des Web Services ?
Par son caractère standard, l'approche SOA améliore la rapidité des développements.
Un composant exposé sous forme de Web Services peut être réutilisé facilement par d'autres applications.
Limite des Web Services
Les WS ne sont pas appropriés pour tous les types de traitements.
Ils ne concernent qu’une sous classe de service (Qu’on appelle les services sans état – stateless ) :
Les WS ne conviennent pas:
- pour des processus asynchrones.
- pour des fonctions qui doivent être fréquemment appelées
Enfin, il ne faut pas en abuser
Exemple:
La gestion des annuaire d'entreprise, permettant de gérer les droits d'accès aux applications en stockant les profils utilisateur. Une fois publiées par le biais de Web Services, ces fonctions peuvent être aisément intégrées aux différentes applications de l'entreprise.
Lexique
- BPEL : Business Process Execution Language ( prononcer 'bipeul', ou 'bipèl'), est un langage de description des procédures d'entreprise qui est issu des langages WSLF (Web Services Flow Language) et XLANG. Il est sérialisé en XML et vise à rendre possible le programming in the large. Les concepts de programming in the large et programming in the small distinguent deux aspects de l'écriture de procédures asynchrones à long terme qu'on voit généralement dans les procédures d'entreprise.Ce langage a été défini dans sa version 2.0 par une spécification du consortium OASIS à la fin du mois de mars 2007.
-
-
- SOA : Service-oriented architecture
- WSDL : Web Services Description Language
- UDDI : Universal Description Discovery and Integration
- Web Services :Application web accessible par des protocoles d'échanges basé sur XML comme SOAP, XML-RPC ou XMLP. D'autres normes permettent de décrire et de rechercher ces services : ebXML (electronic business XML), UDDI (Universal Discovery, Description and Integration) et WSDL (Web Services Description Language). Le but est de permettre à une application de trouver automatiquement sur Internet le service dont elle a besoin et d'échanger des données avec lui, y compris le paiement éventuel du service.
wsdl
wsdl Les spécifs
Un wsdl comporte 7 types d'éléments:
- Types– Définition des types, pouvant utiliser les schema (XSD).
- Message– Une définition des données typées échangées.
- Operation– Une définition d'une action supportée par le service.
- Port Type– Un ensemble d'opérations supportés par un ou plusieurs "endpoints".
- Binding– Un protocole et un format d'échange pour un "port type".
- Port– Un "endpoint" défini comme une combinaison d'un "binding" et d'une URL.
- Service– Un enesemble de endpoint.
Clients SOAP
Client SOAP en ligne:
A Propos de soap :=))
Les specifs http://www.w3.org/TR/soap/
Soap a Propos
Editeur SOA (BPMN, BPEL...)
http://spagic.org/ spagic Un eclipse configurer avec les plugins STP (SOA Tools Platform)
Oracle propose un IDE pour SOA. Je ne l'ai pas essayé.
Annuaires publics
Microsoft, IBM et SAP ont fermé leurs "UDDI registries".
Mais on peut trouver des annuaires public, de type google, qui essayent de recenser les WS du web:
Exemple de web services en ligne
Quelques Liens
UDDI
BPM Business Process Management
BPEL
http://www.zdnet.fr/actualites/informatique/0,39040745,2123382,00.htm
Bus de Service