ゆーたんのつぶやき

株式会社ノークリサーチにてIT関連のシニアアナリストとして活動しています。

コンポーネント開発とWEBサービス

コンポーネント開発とSOAの関わりについて考えてみました。
ビジネスロジックをどこに配置し、どうやって提供するかという観点に立った場合、
両者には以下のような違いがあるように思います。


コンポーネント開発
   ビジネスロジックを部品化した再利用可能なモジュールを利用者毎のシステムに配置
SOA
   ビジネスロジックをサービスとして公開し、複数の利用者が1つのサービスを共用


つまりコンポーネント開発は利用者毎にコンポーネントが配置されるのに対し、SOAでは
特定の場所に配置され公開されたサービスへ利用者が接続しに行くといった違いがあると
見なすことができます。その違いを踏まえた上で、実際のシステム構築場面に当てはめて
考えてみた場合、それぞれが直面する困難としては


コンポーネント開発
   企業毎にシステム基盤が異なるとコンポーネントをそのまま再利用しづらい
SOA
   サービスを呼び出すために利用者側のインターフェースを変更する必要が生じる


といったことが想定されます。そうすると、これら両者の中間的な考え方として『提供者
側はSOAに基づくサービスの形態を取り、利用者側はサービスを呼び出すスタブに相当す
る部分にコンポーネント開発を適用する』というスタンスがあるのではないでしょうか。


つまり、


・企業をまたがったビジネスロジックについてはWEBサービスなどの標準技術に
 基づいた仕組みを導入し、そのインターフェースを公開しておく


・それを利用する個々の企業については利用先のサービスと企業内で従来から利用してい
 る業務システムとの間をブリッジして該当サービスを呼び出すためのスタブを社内で再
 利用可能なようにコンポーネントとして開発する


といったスタンスです。物理的なロケーションへの非依存性というメリットを考えると
(セキュリティ等の問題が解決すれば)SOAは社内のみならず企業横断的な利用にも適して
いると言えます。一方でシステム基盤や運用ポリシーが共通であれば再利用率も上がると
いうコンポーネント開発の特性を考えると、再利用の範囲を社内に限定したスタブコンポ
ーネント開発というスタンスは企業横断的なSOA導入の際に生じる既存システムへのイン
パクトを和らげる役割を演じると同時に自らのメリットも生かせる適用例と考えられるの
ではないでしょうか。


コンポーネント開発が1つの市場として開花すると言われて数年が経過しましたが、今後
SOAが普及してくれば、それと連動する形で「サービス利用者側のスタブ」としてのコン
ポーネント開発も普及してくるのではないかと予想しています。