Approche des services Web vers une architecture orientée services
Vous pouvez utiliser les services Web dans un environnement SAO (service-oriented architecture).
Vous pouvez utiliser les services Web pour implémenter une architecture SOA. Une des fonctions principales des services Web est de rendre fonctionnels les blocs de construction accessibles via les protocoles Internet standard qui sont indépendants des plateformes et des langages de programmation. Ces services peuvent être de nouvelles applications ou des systèmes centraux encapsulés afin que ces services puissent être activés pour le réseau. Un service peut utiliser un autre service pour aboutir à ses buts.
- Fournisseur de services
Le fournisseur de services crée un service Web et publie son interface et accède aux informations du registre de services. Chaque fournisseur doit décider des services à exposer, comment établir des liens entre la sécurité et une disponibilité facile, comment définir le prix des services ou comment exploiter des services gratuits pour une autre valeur. Le fournisseur doit également décider dans quelle catégorie le service doit être placé pour un service de courtier donné et décider des types d'accords entre partenaires commerciaux requis pour l'utilisation du service.
- Courtier de services
Le courtier de services, également connu sous le nom d'registre de services, est chargé de rendre disponibles l'interface de services Web et les informations d'accès d'implémentation à tout demandeur de services potentiel. L'implémenteur du courtier doit décider de la portée du courrier. Les courtiers publics sont disponibles via Internet alors que les courtiers privés sont accessibles uniquement pour un public limité, par exemple les utilisateurs d'un réseau intranet d'entreprise. En outre, des décisions doivent être prises quant au volume d'informations mises à disposition. Certains courtiers se spécialisent dans la multiplicité des listes. Les autres proposent des niveaux élevés de sécurisation dans les services répertoriés. Certains couvrent un large éventail de services et d'autres éléments essentiels d'un secteur d'activité. Certains courtiers cataloguent d'autres courtiers. En fonction du modèle métier, les courtiers peuvent tenter d'optimiser les demandes de recherche, le nombre des listes ou la pertinence de ces listes. La spécification UDDI (Universal Description, Discovery and Integration) définit une manière de publier et rechercher des informations sur les services Web.
- Demandeur de service
Le demandeur de services ou client de services Web localise les entrées du registre du courtier à l'aide de diverses opérations de recherche puis les associe au fournisseur de services afin d'appeler un de ses services Web.

Caractéristiques de l'architecture SOA :
- Un client est couplé à un service. C'est pourquoi, l'intégration du serveur s'effectue hors des programmes d'application client.
- Les anciens et les nouveaux blocs fonctionnels, ou les applications et les systèmes, sont encapsulés dans des composants qui fonctionnent en tant que services.
- Les composants fonctionnels et leurs interfaces sont séparés, ce qui permet de connecter plus facilement de nouvelles interfaces.
- Dans des applications complexes, le contrôle des processus métier peut être isolé. Un moteur de règles métier peut être incorporé afin de contrôler le flux d'un processus métier défini. En fonction de l'état du flux, le moteur appelle les services respectifs.
- Les services peuvent être incorporés dynamiquement lors de l'exécution.
- Les liaisons sont spécifiées à l'aide des fichiers de configuration et peuvent être facilement adaptées en fonction des nouveaux besoins.
Propriétés d'une architecture orientée services :
- Les services Web sont autonomes.
Côté client, aucun logiciel supplémentaire n'est requis. Un langage de programmation avec support client XML (eXtensible Markup Language) et HTTP est suffisant pour commencer. Côté serveur, un serveur Web et un serveur SOAP sont requis. Il est possible d'activer une application existante pour services Web sans écrire une seule ligne de code.
- Les services Web contiennent leur propre description.
Ni le client, ni le serveur ne connaît ou prend en charge uniquement le format et le contenu des messages de demande et de réponse (intégration de l'application faiblement couplée). La définition du message est transmise avec le message. Aucun référentiel de métadonnées ou outil de génération de code n'est requis.
- Les services Web peuvent être publiés, localisés et appelés via Internet.
Cette technologie utilise des normes Internet établies, telles que HTTP, et permet de réutiliser l'infrastructure existante. D'autres normes, telles que SOAP, Web Services Description Language (WSDL) et UDDI, sont requises.
- Les services Web sont indépendants du langage et sont interopérables.
Le client et le serveur peuvent être implémentés dans différents environnements. Il n'est pas nécessaire de changer le code existant afin d'activer les services Web.
- Les services Web sont, de manière inhérente, ouverts et dépendants des normes.
XML et HTTP constituent les principales bases techniques des services Web. Une grande partie de la technologie de service Web a été créée à l'aide de projets de source ouvertes.
- Les services Web sont dynamiques.
L'infrastructure dynamique e-business peut devenir réalité à l'aide des services Web car, avec UDDI et WSDL, la découverte et la description de service Web peuvent être automatisées.
- Les services Web sont composables.
Les services Web simples peuvent être agrégés dans des services plus complexes, soit à l'aide de techniques de flux, soit par l'appel de services Web de niveaux inférieurs à partir d'une implémentation de service Web. Les services Web peuvent être associées afin d'effectuer des fonctions métier de niveau plus élevé. Ce chaînage réduit le temps de développement et permet d'optimiser des implémentations.
- Les services Web sont faiblement couplés.
Généralement, la conception de l'application dépend d'interconnexions étroites entre les deux extrémités. Les services Web requièrent un niveau plus simple de coordination qui permet une nouvelle configuration plus flexible pour une intégration des services.
- Les services Web fournissent un accès par programmation.
L'approche ne fournit aucune interface utilisateur graphique. Elle agit au niveau du code. Les clients du service doivent connaître les interfaces des services Web mais pas forcément les détails d'implémentation de ces services.
- Les services Web offrent la possibilité d'encapsuler les applications existantes.
Les applications autonomes existantes peuvent facilement être intégrées dans l'architecture orientée services en implémentant un service Web en tant qu'interface.