SOAを理解する

2006年6月23日(金)
高安 厚思

レベル2

   レベル2ではインターフェースを静的に決定せずに、プログラムから動的に取り替えることができるようにしている。つまり、実行時にインタフェースを決定している。JavaのリフレクションAPIを利用してメソッドの呼び出しをしているイメージだ。

   しかし動的にルーティングされているわけではなく、インターフェースに対して1つの実装となっており、実装を取り替えることはできない。

レベル3

   レベル3では、インターフェースに対する実装も変更することができる。もちろん、クライアント側のプログラムが実装を指定しまえば依存関係が強く なってしまうが、対応するメッセージをインターフェースに送信するだけで適切な実装を発見し、実行することができるようになる。この、発見して呼び出すこ とを動的ルーティングと呼ぶ。

   「インタフェース=実装」という粒度でインターフェースを決定するとレベル2と変わらなくなってしまう。粒度の大きなインタフェースをサービスとし て定義する必要があるだろう。例えば、請求業務の例で考えてみるとA事業部請求書発行といったインタフェースでは意味がなく、請求書発行というインタ フェースに対して、A事業部用の実装があり、送信されたメッセージの中身によって実装が選択されることになる。

   このレベルを満たすためには動的なルーティングが必要になる。この動的ルーティングはコンテンツベースルーティング(CBR)と呼ばれ、メッセージの内容によって呼び出し先を変える機能のことを指す。このレベル3こそが、SOAが求める疎結合のレベルだ。

次回は

   さて、ここまででSOAを理解する上で問題となる疎結合ということばをレベル分けして説明してきた。この基準に異論はあるだろう。筆者としても完全に練られたものでないと思う。ご意見ご感想をお聞きしたい。

   それでもあえて図1をあらわしたのは、このように基準を明確にすることで疎結合についても議論することができるからだ。

   次回はレベル3の疎結合、つまりはSOAを実現する技術にはどのようなものがあるのかを説明していく。

株式会社オープンストリーム テクニカルコンピテンシーユニット 主管システムズアーキテクト

横浜国立大学経営学部卒。銀行系シンクタンクでオブジェクト指向技術の研究に携わった後、大手SIerにて アーキテクチャ構築、プロセス研究に携わった。現在株式会社オープンストリームにてSOAを中心とする研究開発およびアーキテクチャ構築に従事。最近は XMLのダイナミックさに魅了されている。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています