Richard Veryard 氏は最近の投稿(サイト)で SOA・BPM・イベントの間の関係について論じ、次のように記している。
SOA が登場したばかりのころ、私たちはエンタープライズをサービスのネットワークとして理解することについて語っていたが、いうまでもなく、これが唯一の視点というわけではない。エンタープライズをイベントのネットワークとしてとらえることはできないだろうか?
Ramesh Loganathan 氏も彼の見方を共有しており、最近出くわした調査(サイト)について述べている。その調査は、あるコンサルティング企業によるガバナンス、リスク、コンプライアンス( GRC )ソリューションの構築に関するもので、アーキテクチャ的にはその実装は以下のパターンをベースにしている。
- 進行中のビジネスプロセスの一部としてビジネスイベントが発生する
- イベントは関連するビジネスデータをもつ
- 一連の GRC チェックとルールが実行される
- 違反があればすべて記録され警告が発生する
このコンサルティング企業はさらに一歩すすみ、ビジネスドメイン全体を、そのドメインに属するすべての人がよく理解している主要なビジネスイベントの集まりとしてモデル化することも行っている。各ビジネスイベントには関連するデータの明確な定義がふくまれている。
これまでのところ、エンタープライズのことを一連のサービスを呼び出すビジネスプロセスの集まりとして描いたモデルは見たことがあるが、上述の視点では、エンタープライズはビジネスイベントとしてモデル化される。前者は企業のビジネス処理を形づくるビジネスフロー(プロセス)を定義する視点であり、後者の視点はそれよりも、事実を企業内で発生するイベントとしてとらえる企業のスナップショットであるといえる。両者とも、目的とそれにともなうデータを非常に明確にモデル化するが、前者の方法では、流れていくのはデータであり、後者のアプローチでは生成されたデータがビジネスアクティビティを届ける。
Richard 氏は Ramesh 氏の投稿にたいして次のようにコメントしている。
戦略的なレベルでは、私たちは、外側で起こりうるイベントと内側で起こりうるイベントの間の関連を理解する必要がある。それぞれの企業はある種の外部イベントにたいしてある方法で応じることができる。企業をよりアジャイルにするということは、企業がより広い範囲にわたる外部イベントに適切に応じることを、むやみに複雑化せずに可能にすることを意味する。システム思考では、これは最小有効多様性とよばれる。 なので、わたしたちがエンタープライズをイベントのネットワークと捉えるなら、これは戦略的事業改善について推論する直接的な方法をわたしたちに与えてくれる。
このような議論は新しいものではない。たとえば 2006 年に Jack van Hoof 氏が次のように書いている。
このような議論は新しいものではない。たとえば 2006 年に Jack van Hoof 氏が次のように書いている(サイト)。
...SOA の同期された命令と制御という性質は、アプリケーションコンポーネントを強く結びつける。... SOA は、共通のウェブサービスが使われる技術的ドメインではゆるやかな結合を実現するかもしれないが、SOA が外部の(再利用可能な)サービスの呼び出しと冗長なデータの排除に利用される機能的ドメインにおいてはそうではない。... SOA とは対照的に、EDA はゆるやかな結合の方法を提供する。EDA は同期された命令/制御タイプのパターンではなく、実はその正反対、非同期なパブリッシュ/サブスクライブタイプのパターンである。パブリッシャーはサブスクライバのことを一切知らないし、その逆もまた同様である。コンポーネントはただメッセージの意味を共有するのみで、ゆるやかに結合される。
いくつかの理由から、人々はまだ SOA/BPM と EDA が二つの相反するアプローチだと考えている。この誤解が広まったのは、ウェブサービスの伝統的な RPC 構造が原因だ。SOA 実装の進歩と様々なメッセージ交換方式(一方通行のメッセージングも含めて)の出現にともない、SOA と EDA の違いはぼやけはじめた。Bobby Wolf の言葉(サイト)でいうと次のようになる。
... いずれにせよ、サービスを実装するとは、そのサービスがどのように呼び出されるかという問題だ。それらのサービスは、コンシューマがプロバイダを直接呼び出す SOA 的な方法で呼び出されるのか? あるいはイベントがハンドラにサービスの呼び出しを行わせるというより抽象的、間接的な方法で呼び出されるのか?
イベントとビジネスプロセスはどちらもエンタープライズビジネスモデルに欠かせない。最適な SOA 実装とは、サービスの実行を編成するエンタープライズビジネスプロセスの集まりであると定義できる。それらのプロセスは別のプロセスによって直接呼び出されるか、あるいは、内部および外部のエンタープライズイベントにたいする応答として呼び出される。プロセスはまた、他のエンタープライズプロセスの実行のためや、ビジネスアクティビティモニタが企業の活動を評価するために、イベントを発行する。