Accueil > Autres > Décodeur terminologique

Décodeur terminologique

Qu’est-ce qu’une architecture orientée service (SOA) ?

Une architecture orientée service (SOA) est une approche de plus en plus répandue pour fournir des fonctionnalités métiers par le biais de logiciels dont la structure permet de procurer et/ou de consommer des services. En termes très simples, un service dans une architecture SOA ressemble énormément à un appel de procédure. Concrètement, un service, comme une procédure, est implémenté dans un segment de code qui renvoie un résultat ou qui provoque des effets secondaires. Par exemple, le code peut calculer et renvoyer une cote de solvabilité pour une personne, réserver un billet d’avion, envoyer un message électronique ou démarrer un équipement.

Les aspects essentiels d’une architecture orientée service

Les services SOA présentent trois aspects techniques essentiels :

  • Les applications peuvent invoquer des services SOA localement ou à distance via un protocole d’invocation qui n’est lié à aucun langage, système d’exploitation ni même à aucune plateforme d’application Web
  • Les services SOA peuvent être invoqués de manière asynchrone ou synchrone
  • L’implémentation de service ne conserve aucun état entre deux invocations

Les deux premières caractéristiques procurent une plus grande souplesse et interopérabilité que les appels de procédure locaux et distants qui dépendent du langage ou de la plateforme. La contribution centrale de l’architecture SOA est la possibilité de faire des appels de procédure sur un très grand nombre d’environnements. Par exemple, une application LANSA qui s’exécute sous i5/OS peut invoquer un service implémenté en C# s’exécutant dans un environnement .NET.

La troisième caractéristique, les services « sans état », produit un couplage lâche entre une application utilisant un service et l’implémentation du service, ce qui permet d’invoquer des services simplement sur Internet.

L’architecture SOA peut être utile pour intégrer les applications s’exécutant entièrement sur un seul système, en particulier dans les processus de workflow ou lors de l’intégration d’applications héritées ou nouvelles. L’architecture SOA est également un excellent outil pour les applications distribuées qui communiquent sur Internet.

Phases d’implémentation d'une architecture SOA

L’importance des services Web

Bien qu'il existe plusieurs formes potentielles d'architecture SOA, la plus répandue repose sur les normes de service Web, qui permettent de communiquer sur un intranet ou sur Internet. Voici les normes de services Web les plus importantes :

  • XML pour la structure et la syntaxe des messages et des informations de configuration
  • SOAP (initialement l’acronyme de Simple Object Access Protocol) définit la structure des messages et la façon dont ils sont échangés sur un réseau
  • WSDL (Web Services Definition Language) décrit les interfaces publiques pour les services Web disponibles, y compris les formats de message à utiliser pour interagir avec les services
  • UDDI (Universal Description, Discovery and Integration) est une norme pour un répertoire (ou un registre) contenant des entrées qui décrivent les services disponibles

Il existe de nombreuses normes de services Web qui couvrent la sécurité, la fiabilité et d’autres aspects de l’invocation des services et de la réponse aux requêtes de service.

Implémentation pratique du protocole SOAP et des services Web avec LANSA

Les services Web sont un parfait exemple de l’importance des frameworks et des outils LANSA pour une stratégie de développement d’application flexible, fiable et productive. Bien que l’invocation conceptuelle d’un service Web ne soit pas plus compliquée que l’appel d’une procédure, le code de « plomberie » est complexe et rigoureux. Pour coder manuellement une invocation de service Web, le programmeur doit apprendre un très grand nombre de détails et veiller à bien coder les étapes et les propriétés de configurations appropriées, dont aucune ne contribue à implémenter les règles ou processus métiers réels. Toutefois, avec LANSA, le code et les propriétés de configuration obligatoires peuvent être générés de manière fiable à partir de quelques spécifications simples. De la même façon, l’implémentation manuelle d’un service Web est une tâche pénible, mais avec l’Assistant SOAP de LANSA, ce n’est pas plus complexe que d’écrire une procédure ordinaire.