組織内から見たサービスオーケストレーションとサービスコレオグラフィーの違いは何ですか。
(XML、SOAP、WSDL)などの基本的なテクノロジーは、サービスをエンティティとして記述、検索、および呼び出す手段を提供します。ただし、これらのテクノロジーは、より複雑なコラボレーションにおけるサービスの役割についての豊富な動作の詳細を提供しません。このコラボレーションには、ビジネスプロセスを構築する一連のアクティビティとアクティビティ間の関係が含まれます。このプロセスを構築するには、サービスオーケストレーションとサービスコレオグラフィの2つの方法があります。
サービスオーケストレーションは、さまざまなサービス間の相互作用を調整する、単一の集中実行可能ビジネスプロセス(オーケストレーター)を表します。オーケストレーターは、サービスの呼び出しと結合を担当します。
参加しているすべてのサービス間の関係は、単一のエンドポイント(つまり、複合サービス)によって記述されます。オーケストレーションには、個々のサービス間のトランザクションの管理が含まれます。オーケストレーションは、サービス構成に集中型のアプローチを採用しています。
サービスコレオグラフィーは、参加するサービスのグローバルな説明であり、メッセージの交換、相互作用の規則、および2つ以上のエンドポイント間の合意によって定義されます。振り付けでは、サービス構成に分散型アプローチを採用しています。
振り付けは、複数のサービス間の相互作用を記述します。オーケストレーションは、一方の側からの制御を表します。つまり、コレオグラフィーはオーケストレーションとは異なる関係するサービス間の相互作用は常駐する必要があります。
サービスオーケストレーション:固定ロジックにより複数のサービスをまとめます。このロジックは1か所で説明されています。マネージャーと一緒にマイクロ管理を行う人々のチームを想像できます。マネージャーは、何を、いつ、誰が行うべきかを正確に伝えます。チームメンバはジョブの目標全体を気にしません。マネージャは出力を単一の成果物に結合します。実用的な例は、BPELプロセスです。 BPELプロセスにはロジックが含まれ、複数のサービスを呼び出して、それらの応答を単一のサービス応答に結合できます。
サービスコレオグラフィ:集中化されたポイントなしで、決定ロジックが配布されます。誰もが共通の利益を目指し、ミクロ管理なしで積極的に働く家を想像できます。または、異なるメンバーが相互に依存し、共通の目標のために働く人体を想像できます。実際的な例は、エージェントがイベントによってアクティブにされ、そのジョブを実行するイベント駆動型処理です。すべてのエージェントが一緒にシステムを作ります。集中化されたロジックはありません。振り付けの可能性は、実際の世界とより整合しているため、オーケストレーションをはるかに超える可能性があります。
私の意見は、ビジネスロジックに焦点を合わせる必要があるため、これら2つをあまり区別する必要がないということです。単一ポイントのロジックが仕事をする場合、オーケストレーションを行います。集中型ロジックでは問題をカバーできない場合、とにかく振り付けを余儀なくされます。だからこそ、私たちはしばしばITのオーケストレーションに出くわしますが、choreograhyは依然として学問的な概念であり、研究の主題です。そして、実世界のように、私たちは実際にそれを知らずに振り付けをします。
サービスは、アトミックサービスと他のサービスで構成されるサービスとを区別できます。このような構成は「オーケストレーション」と呼ばれます。時にはワークフロー、時にはビジネスプロセス。たとえば、BPELはオーケストレーション言語ですが、それ自体を「ビジネスプロセス実行言語」と呼びます。
サービスを階層的に構成する必要はありません。つまり、2つのサービスが相互に通信できます。それらの間で実行されるプロトコルは「振り付け」と呼ばれます。 2つのサービスがありますが、通常は3つ以上のサービスが関係しています。振り付けの各サービスは、パートナーサービスのオーケストレーターと見なされる場合があります。コレオグラフィーに参加する各サービスは、オーケストレーション/ワークフロー/プロセスとして実現できます。
オーケストレーションは各サービスの完全な動作を示しますが、コレオグラフィーは各サービスのインターフェース動作の説明を組み合わせます。
振り付け、インターフェイスの動作、プロバイダーの動作、およびオーケストレーションを区別する優れた科学記事は次のとおりです。 Dijkman、R.&Dumas、M. 2004、13、337-368
スレッドは古いので、私がやったように、この質問を探してここでつまずいた人たちのためにまだ書いています。これは、 サービス指向アーキテクチャ (SOA)でかなり議論されている質問であり、初心者にとってはより明確な説明が必要です。
オーケストレーション:実行可能プロセス
振付:マルチパーティコラボレーション
対照的に、振り付けは中央のコーディネーターに依存しません。むしろ、振り付けに関係する各Webサービスは、操作をいつ実行し、誰と対話するかを正確に知っています。振り付けは、パブリックビジネスプロセスでのメッセージ交換に焦点を当てた共同作業です。
振り付けのすべての参加者は、ビジネスプロセス、実行する操作、交換するメッセージ、およびメッセージ交換のタイミングを認識する必要があります。
振付とオーケストレーション
Webサービスを構成してビジネスプロセスを実行するという観点から見ると、オーケストレーションはより柔軟なパラダイムであり、振り付けよりも以下の利点があります。
コンポーネントプロセスの調整は、既知のコーディネーターによって集中管理されます。
Webサービスは、より大きなビジネスプロセスに参加していることを意識せずに組み込むことができます。
アンドレイなどは、オーケストレーションとは何で、振り付けとは何であるかを説明する良い仕事をしました。これら2つの選択肢から選択するソフトウェアアーキテクトにとって、異なる品質に関してそれらを比較することも重要です。
オーケストレーションと振り付けの組み合わせ
振り付けとオーケストレーションの組み合わせ
パフォーマンス:オーケストレーションは、ワークフロースクリプトの解釈とオーケストレーションプラットフォーム自体の追加レイヤーにより、パフォーマンスのオーバーヘッドが発生します。
コスト:コレオグラフィーは、学習曲線とガバナンスの負担を伴う追加のミドルウェアや言語を必要としません。
Orchestrationは、プロセス内のすべてのアクターを制御できる場合、つまり、すべてが1つの制御ドメインに属し、アクティビティのフローを指示できる場合に役立ちます。もちろん、これは、管理している1つの組織内で実行されるビジネスプロセスを指定する場合に最もよく起こります。
コレオグラフィは、2人以上のパーティ-他のパーティのプロセスを制御できない、またはおそらくそれらのプロセスの可視性を持たない-アクティビティとプロセスを調整して情報を共有し、値。制御/可視性のドメイン間での調整が必要な場合は、振り付けを使用します。ネットワークプロトコルのように、単純なシナリオで振り付けを考えることができます。当事者間の要求と応答の許容可能なパターンを指示します。
振り付けは、高度に分散された組織に内部的に適しています。中央のビジネスプロセスエグゼキューターは必要ありません。これにより、各組織サブユニットによる独立した成長と開発が促進されます。
(オーケストレーションと振り付けの質問のこの解釈を購読します: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-services.html )
サービスオーケストレーションとコレオグラフィーの別の見方:
-サービスオーケストレーション:ビジネスドメイン周辺。
-サービスコレオグラフィー:複数のビジネスドメイン間
オーケストレーションでは、指揮者と楽器奏者がいます。プレイヤーは指揮者の行動に従ってプレイします。指揮者が交換されると、調和表現は異なります。つまり、同じプレイ(サービス)ですが、結果は異なります。たとえば、財務アレンジメントの提案を提供するために、オーケストレーションサービスは、指揮者のテンプレート(ビジネスルール)。振り付けには、振付師とダンサーのグループがあります。振り付けは方向性ですが、ダンサーの各グループはその方向性を実現する方法について自律的です。