web-dev-qa-db-fra.com

Orchestration vs chorégraphie

Quelles sont les différences entre l'orchestration de services et la chorégraphie de services d'un point de vue intra-organisationnel?.

146
PetrosB

Les technologies de base telles que (XML, SOAP, WSDL) permettent de décrire, de localiser et d'appeler des services comme une entité à part entière. Cependant, ces technologies ne donnent pas de détails comportementaux détaillés sur le rôle du service dans une collaboration plus complexe. Cette collaboration comprend une séquence d'activités et de relations entre les activités, qui construisent le processus métier. Ce processus peut être construit de deux manières: l’orchestration de services et la chorégraphie de services.

Orchestration de service

L'orchestration de service représente un seul processus métier exécutable centralisé (l'orchestrateur) qui coordonne l'interaction entre différents services. L'orchestrateur est responsable de l'appel et de la combinaison des services.

Les relations entre tous les services participants sont décrites par un seul point d'extrémité (c'est-à-dire le service composite). L'orchestration comprend la gestion des transactions entre des services individuels. Orchestration utilise une approche centralisée pour la composition du service.

Orchestration

Chorégraphie de service

La chorégraphie de service est une description globale des services participants, définie par l'échange de messages, les règles d'interaction et les accords entre deux ou plusieurs points d'extrémité. La chorégraphie utilise une approche décentralisée pour la composition des services.

Choreography

La chorégraphie décrit les interactions entre plusieurs services, l’orchestration représentant le contrôle du point de vue de l’une des parties. Cela signifie qu'un chorégraphie diffère d'un orchestration en ce qui concerne l'endroit où la logique qui contrôle le les interactions entre les services impliqués doivent résider.

245
Andrei

Orchestration du service: vous assemblez plusieurs services selon une logique fixe. Cette logique est décrite en un seul endroit. Vous pouvez imaginer une équipe de personnes avec un responsable en micro-gestion. Le responsable indique avec précision quoi, quand et qui doit faire. Les membres de l’équipe ne s’occupent pas de tout l’objectif du travail, le responsable combine les résultats en un seul livrable. Un exemple pratique est un processus BPEL. Le processus BPEL contient la logique, peut appeler plusieurs services et combiner leurs réponses en une réponse de service unique.

chorégraphie de service: la logique de décision est distribuée, sans point centralisé. Vous pouvez imaginer une maison où tout le monde aspire au bien commun et travaille de manière proactive sans micro-gestion. Ou vous pouvez imaginer un corps humain, où différents membres sont interdépendants et travaillent pour le même objectif. Un exemple pratique est le traitement basé sur les événements, dans lequel un agent est activé par un événement et fait son travail. Tous les agents font un système ensemble. Il n'y a pas de logique centralisée. Les possibilités de chorégraphie peuvent aller au-delà de l'orchestration, car elles sont plus alignées sur le monde réel.

Mon avis est que nous n’avons pas besoin de faire beaucoup de distinction entre les deux, nous devons nous concentrer sur la logique d’entreprise. Là où un seul point de logique fait le travail, nous faisons de l'orchestration. Là où un problème ne peut pas être couvert par une logique centralisée, nous sommes obligés de toute façon de chorégraphier. C'est pourquoi nous rencontrons souvent des orchestrations informatiques, alors que la chorégraphie reste davantage un concept académique et un sujet de recherche. Et très souvent, nous faisons des chorégraphies sans le savoir, comme dans le monde réel.

29
KarelHusa

Les services peuvent être distingués entre des services atomiques et des services composés d'autres services. Ces compositions sont appelées "orchestration". Parfois, flux de travail, parfois processus métier. Par exemple, BPEL est un langage d'orchestration, mais s'appelle lui-même "langage d'exécution de processus métier".

Il n'est pas nécessaire que les services soient composés de manière hiérarchique. Cela signifie que deux services peuvent se parler. Le protocole courant entre eux s'appelle "chorégraphie". Il peut s'agir de deux services, mais en général, il y a plus de deux services impliqués. Chaque service d'une chorégraphie peut être considéré comme un orchestrateur des services partenaires. Chaque service prenant part à une chorégraphie peut être réalisé sous forme d'orchestration/de workflow/de processus.

Une orchestration montre le comportement complet de chaque service, tandis que la chorégraphie combine les descriptions de comportement de l'interface de chaque service.

Un bon article scientifique distinguant chorégraphie, comportement d'interface, comportement de fournisseur et orchestration est le suivant: Dijkman, R. & Dumas, M. Conception orientée services: une approche multi-points de vue 2004, 13, 337-368

21
koppor

Puisque le fil est vieux mais écrit encore pour ceux qui vont trébucher ici à la recherche de cette question comme je l’ai fait. C'est une question très débattue dans architecture orientée service (SOA), qui nécessite des explications plus claires pour les débutants.

Orchestration: Processus exécutable

  • Utilisé dans les processus commerciaux privés
  • Un processus central (qui peut être un autre service Web) prend le contrôle des services Web impliqués et coordonne l'exécution de différentes opérations sur les services Web impliqués dans l'opération.
  • Les services Web impliqués ne "savent" pas (et n'ont pas besoin de savoir) qu'ils sont impliqués dans un processus de composition et qu'ils participent à un processus commercial de niveau supérieur.
  • Seul le coordinateur central de l'orchestration est conscient de cet objectif. L'orchestration est donc centralisée avec des définitions explicites des opérations et l'ordre d'invocation des services Web.

enter image description here

Chorégraphie: collaboration multipartite

  • La chorégraphie, en revanche, ne repose pas sur un coordinateur central. Au contraire, chaque service Web impliqué dans la chorégraphie sait exactement quand exécuter ses opérations et avec qui interagir. La chorégraphie est un effort de collaboration axé sur l’échange de messages dans les processus d’entreprise publics.

  • Tous les participants à la chorégraphie doivent connaître le processus d’entreprise, les opérations à exécuter, les messages à échanger et le minutage des échanges de messages.

enter image description here

Chorégraphie et orchestration

  • Dans la perspective de la composition de services Web pour exécuter des processus métier, l'orchestration est un paradigme plus flexible et présente les avantages suivants par rapport à la chorégraphie:

  • La coordination des processus des composants est gérée de manière centralisée par un coordinateur connu.

  • Les services Web peuvent être incorporés sans qu’ils se rendent compte qu’ils participent à un processus commercial plus vaste.

  • Des scénarios alternatifs peuvent être mis en place en cas de défaillance.
14
Cyclotron3x3

Andrei et d’autres ont bien expliqué ce que sont l’orchestration et la chorégraphie. Pour que l’architecte logiciel choisisse entre ces deux alternatives, il est également important de les comparer en fonction de différentes qualités.

L'orchestration est un avantage sur la chorégraphie

  • Fiabilité: Les plates-formes d'orchestration disposent d'une prise en charge intégrée du traitement des erreurs et de la gestion des transactions (transactions compensatrices). En chorégraphie, les flux de travail et la gestion des erreurs développés sur mesure ont tendance à être plus sujets aux erreurs.
  • Modifiability: La création et la modification de workflows de processus et de compositions de services complexes sont plus faciles dans les outils de MPM visuels des plates-formes d’orchestration.

La chorégraphie est plus efficace que l'orchestration

  • Performance: L'orchestration entraîne une surcharge de performances en raison de l'interprétation de script de flux de travail et de la couche supplémentaire de la plateforme d'orchestration elle-même.

  • Coût: La chorégraphie ne nécessite pas de middleware ou de langage supplémentaire, qui comporte des courbes d'apprentissage et un fardeau de gouvernance associés.

7
Paulo Merson

Orchestration est utile lorsque vous avez le contrôle de tous les acteurs d'un processus - lorsqu'ils sont tous dans un seul domaine de contrôle et que vous pouvez dicter le déroulement des activités. C'est bien sûr le plus souvent lorsque vous spécifiez un processus métier qui sera mis en œuvre au sein d'une organisation sur laquelle vous avez le contrôle.

Chorégraphie est une manière de spécifier comment deux ou plusieurs parties - dont aucune n’a aucun contrôle sur les processus des autres parties, ni peut-être une visibilité de ces processus - peuvent coordonner leurs activités et processus afin de partager des informations et valeur. Utilisez la chorégraphie lorsque la coordination entre les domaines de contrôle/visibilité est requise. Vous pouvez penser à la chorégraphie, dans un scénario simple, comme un protocole réseau. Il dicte des modèles acceptables de demandes et de réponses entre les parties.

5
Peter Piper

Je dirais que la chorégraphie est bien adaptée en interne pour les organisations hautement décentralisées. Vous n'avez pas besoin d'un exécuteur de processus métier central. Cela facilite la croissance et le développement indépendants de chacune des sous-unités de l'organisation.

(Je souscris à cette interprétation de la question de l'orchestration et de la chorégraphie: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-services.html )

4
Danijel Arsenovski

Une autre façon de regarder Service Orchestration vs Chorégraphie:

- Service Orchestration: Autour d'un domaine d'activité.
- Chorégraphie de service: entre plusieurs domaines d’activité.

3
Michael Qin

En orchestration, il y a un chef d'orchestre et des instrumentistes. Les joueurs jouent selon le comportement du conducteur. Si le conducteur est remplacé, l’expression harmonique sera différente, c’est-à-dire qu’il s’agit toujours du même jeu (service) mais avec un résultat différent. Par exemple, pour fournir une proposition d’arrangement financier, le service d’orchestration procédera en demandant (en invoquant) chaque joueur (entité ou service public, par exemple, une vérification de la solvabilité) de jouer (restituer les résultats ou d’ajuster/mettre à jour sa lecture) en fonction du modèle du chef d’orchestre (entreprise). règles). En chorégraphie, il y a un chorégraphe et des groupes de danseurs. La chorégraphie est une direction, mais chaque groupe de danseurs est autonome dans la réalisation de cette direction.

1
Bran