Qu’est-ce que la SOA ? Orienté service ArchiPrincipes de la structure

Qu'est-ce que SOA (Service Orienté Architecture) ?

Un service orienté Archiarchitecture (SOA) est un modèle architectural dans la conception de logiciels informatiques dans lequel les composants d'application fournissent des services à d'autres composants via un protocole de communication, généralement sur un réseau. Les principes d’orientation service sont indépendants de tout produit, fournisseur ou technologie.

SOA facilite simplement la collaboration entre les composants logiciels sur différents réseaux.

Les services Web construits selon l'architecture SOA ont tendance à rendre les services Web plus indépendants. Les services Web eux-mêmes peuvent échanger des données entre eux et, en raison des principes sous-jacents sur lesquels ils sont créés, ils ne nécessitent aucune interaction humaine ni aucune modification du code. Il garantit que les services Web d'un réseau peuvent interagir les uns avec les autres de manière transparente.

Orienté service Archiarchitecture (SOA) Principes

Il existe 9 types de principes de conception SOA qui sont mentionnés ci-dessous

1. Contrat de service standardisé

Les services respectent une description de service. Un service doit avoir une sorte de description décrivant en quoi consiste le service. Cela permet aux applications clientes de comprendre plus facilement ce que fait le service.

2. Couplage lâche

Less dépendance les uns envers les autres. C'est l'une des principales caractéristiques des services Web qui stipule simplement qu'il doit y avoir le moins de dépendance possible entre les services Web et le client qui appelle le service Web. Ainsi, si la fonctionnalité du service change à un moment donné, cela ne doit pas interrompre l'application cliente ou l'empêcher de fonctionner.

3. Abstraction des services

Les services cachent la logique qu’ils encapsulent au monde extérieur. Le service ne doit pas exposer la manière dont il exécute ses fonctionnalités ; il doit simplement indiquer à l'application client ce qu'elle fait et non comment elle le fait.

4. Réutilisabilité des services

La logique est divisée en services dans le but de maximiser la réutilisation. Dans toute entreprise de développement, la réutilisation est un sujet important, car il est évident que l'on ne voudrait pas consacrer du temps et des efforts à créer le même code encore et encore pour plusieurs applications qui en ont besoin. Par conséquent, une fois le code d’un service Web écrit, il devrait pouvoir fonctionner avec différents types d’applications.

5. Autonomie des services

Les services doivent avoir le contrôle sur la logique qu’ils encapsulent. Le service sait tout sur les fonctionnalités qu'il offre et devrait donc également avoir un contrôle total sur le code qu'il contient.

6. Service d'apatridie

Idéalement, les services devraient être apatrides. Cela signifie que les services ne doivent pas dissimuler des informations d’un État à l’autre. Cela devra être fait à partir de l'application cliente. Un exemple peut être une commande passée sur un site commercial. Vous pouvez désormais disposer d'un service Web qui vous donne le prix d'un article particulier. Mais si les articles sont ajoutés à un panier et que la page Web accède à la page où vous effectuez le paiement, la responsabilité du prix de l'article à transférer vers la page de paiement ne doit pas être assumée par le service Web. Au lieu de cela, cela doit être effectué par l’application Web.

7. Découverte du service

Les services peuvent être découverts (généralement dans un registre de services). Nous l'avons déjà vu dans le concept de l'UDDI, qui réalise un registre pouvant contenir des informations sur le service Web.

8. Composabilité du service

Les services divisent les gros problèmes en petits problèmes. Il ne faut jamais intégrer toutes les fonctionnalités d'une application dans un seul service, mais plutôt diviser le service en modules, chacun avec une fonctionnalité métier distincte.

9. Interopérabilité des services

Les services doivent utiliser des normes permettant à divers abonnés d'utiliser le service. Dans les services Web, les normes comme XML et la communication via HTTP est utilisée pour garantir qu'elle est conforme à ce principe.