Orchestration vs Chorégraphie

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

Les technologies de base telles que (XML, SOAP, WSDL) fournissent des moyens de décrire, localiser et invoquer des services en tant qu’entité à part entière. Cependant, ces technologies ne fournissent pas un détail comportemental riche 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 constituent le processus métier. Il existe deux manières de créer ce processus: l’orchestration des services et la chorégraphie des services.

Service d’orchestration

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

La relation entre tous les services participants est décrite par un seul sharepoint terminaison (le service composite). L’orchestration comprend la gestion des transactions entre services individuels. L’orchestration utilise une approche centralisée pour la composition des services.

Orchestration

Service Chorégraphie

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.

Chorégraphie

La chorégraphie décrit les interactions entre plusieurs services, où l’orchestration représente le contrôle du sharepoint vue d’une partie. Cela signifie qu’une chorégraphie diffère d’une orchestration par rapport à l’endroit où doit se trouver la logique qui contrôle les interactions entre les services impliqués.

Les services peuvent être distingués entre services atomiques et services composés d’autres services. De telles compositions sont appelées “orchestration”. Parfois, le workflow, parfois le 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 hiérarchisés. Cela signifie que deux services peuvent se parler. Le protocole entre eux s’appelle “chorégraphie”. Il peut s’agir de deux services, mais il y a généralement plus de deux services. Chaque service dans une chorégraphie peut être considéré comme orchestrateur des services partenaires. Chaque service participant à une chorégraphie peut être réalisé sous forme d’orchestration / workflow / processus.

Une orchestration montre le comportement complet de chaque service alors que la chorégraphie combine les descriptions de comportement d’interface de chaque service.

Un bon article scientifique distinguant la chorégraphie, le comportement d’interface, le comportement du fournisseur et l’orchestration est le suivant: Dijkman, R. & Dumas, M. Conception orientée vers le service: une approche multi-points de vue International Journal of Cooperative Information Systems, 2004, 13, 337-368

Orchestration de service : vous assemblez plusieurs services par une logique fixe. Cette logique est décrite à un seul endroit. Vous pouvez imaginer une équipe de personnes avec un responsable de la micro-gestion. Le gestionnaire indique précisément quoi, quand et qui devrait faire. Les membres de l’équipe ne se préoccupent pas de tout l’objective du travail, le gestionnaire 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 seule réponse de service.

Chorégraphie de service : la logique de décision est dissortingbuée, sans point centralisé. Vous pouvez imaginer une maison où tout le monde vise le 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 un objective commun. Un exemple pratique est le traitement événementiel, 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 car nous devons nous concentrer sur la logique métier. Là où un seul sharepoint 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 sums de toute façon obligés de chorégraphier. C’est pourquoi nous sums souvent confrontés à l’orchestration en informatique, alors que la chorégraphie rest davantage un concept académique et un sujet de recherche. Et très souvent, nous faisons de la chorégraphie sans le savoir, comme dans le monde réel.

Puisque le fil est ancien mais qu’il est toujours écrit pour ceux qui vont tomber ici à la recherche de cette question comme je l’ai fait. C’est une question très controversée dans l’ architecture orientée services (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 des 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 métier de niveau supérieur.
  • Seul le coordinateur central de l’orchestration est conscient de cet objective. L’orchestration est donc centralisée avec des définitions explicites des opérations et l’ordre d’appel des services Web.

entrer la description de l'image ici

Chorégraphie: Collaboration multi-parties

  • La chorégraphie, en revanche, ne repose pas sur un coordinateur central. 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’affaires publics.

  • Tous les participants à la chorégraphie doivent connaître le processus métier, les opérations à exécuter, les messages à échanger et la synchronisation des échanges de messages.

entrer la description de l'image ici

Chorégraphie vs. Orchestration

  • Du sharepoint vue 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 de composants est gérée de manière centralisée par un coordinateur connu.

  • Les services Web peuvent être intégrés sans qu’ils soient conscients qu’ils participent à un processus métier plus vaste.

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

L’orchestration est utile lorsque vous contrôlez tous les acteurs d’un processus – lorsqu’ils se trouvent tous dans un seul domaine de contrôle et que vous pouvez dicter le stream d’activités. C’est le plus souvent lorsque vous spécifiez un processus métier qui sera mis en place dans une organisation que vous contrôlez.

La chorégraphie est un moyen de spécifier comment deux parties ou plus, dont aucune ne contrôle les processus des autres parties, ni aucune visibilité de ces processus, ne peuvent coordonner leurs activités et leurs processus pour partager des informations et de la valeur. Utiliser la chorégraphie lorsqu’une coordination entre domaines de contrôle / visibilité est requirejse. 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.

Je dirais que la chorégraphie est bien adaptée en interne pour les organisations fortement décentralisées. Vous n’aurez 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 orchestration vs chorégraphie: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-services.html )

Andrei et d’autres ont fait un bon travail en expliquant ce qu’est l’orchestration et ce qu’est la chorégraphie. Pour l’architecte du logiciel qui choisit entre ces deux alternatives, il est également important de les comparer par rapport aux différentes qualités.

L’orchestration plus que la chorégraphie

  • Fiabilité: les plates-formes d’orchestration prennent en charge la gestion des erreurs et des transactions (transactions compensatoires). En chorégraphie, le workflow et la gestion des erreurs développés sur mesure ont tendance à être plus sujets aux erreurs.
  • Possibilité de modification: la création et la modification des stream de travail de processus et des compositions de service complexes sont plus faciles dans les outils de MPM visuels des plates-formes d’orchestration.

Chorégraphie plus sur l’orchestration

  • Performances: l’ orchestration entraîne une surcharge de performances due à l’interprétation des scripts de workflow et à la couche supplémentaire de la plate-forme d’orchestration elle-même.

  • Coût: La chorégraphie ne nécessite pas de middleware ou de langage supplémentaire, ce qui implique des courbes d’apprentissage et une charge de gouvernance.

Une orchestration lie généralement les services de niveau inférieur. C’est comme un médiateur . Une chorégraphie consortingbue à réduire encore le couplage. Je l’ai expliqué plus en détail ici .

En orchestration, il y a un chef d’orchestre et il y a des joueurs d’instruments. Les joueurs jouent selon la conduite du chef. Si le conducteur est remplacé, l’expression harmonique sera différente, c’est-à-dire qu’il rest le même jeu (service) mais avec un résultat différent. Par exemple, pour fournir une proposition d’arrangement financier, le service d’orchestration effectuera en demandant (appelant) chaque joueur (entité ou service d’utilité, par exemple, vérification de crédit) à jouer 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 manière de réaliser cette direction.

Une autre façon d’examiner l’orchestration des services par rapport à la chorégraphie:

– Orchestration de service: autour d’un domaine métier.
– Chorégraphie de service: parmi plusieurs domaines d’entreprise.