PR

 SOAによるシステム開発・運用をサポートする製品が多数リリースされている。どのような製品があり,その中からどのような観点で選べばよいのか。第5回は,SOA関連製品の動向と製品選択のポイントを解説する。

 前回は,SOAの考え方に基づいたシステムを安定運用するためのポイントを説明しました。以上で,SOAに基づいたアプリケーション開発のライフサイクルについて一通り押さえたことになります。実際にSOAに基づいたシステムを構築,運用するには,どのような製品があるのか知っておく必要があります。今回は,SOA関連製品の動向と製品選択のポイント,ベンダー各社の戦略を解説します。

「製品スイート」か「単独製品」か

 まず,SOA関連製品の全体像を把握しましょう。図1に,SOAに基づいたアプリケーション開発のライフサイクルをサポートする製品群を示しました。大きく,ビジネス・プロセスのモデリングやサービスの設計・実装などを担う「開発・組み立て」ツール,プロセスの統合エンジンやアプリケーション・サーバーなどの「プラットフォーム」ツール,ポリシー管理やサービスレベル管理,サービスのモニタリングなどの機能を担う「サービス管理」ツール,そしてサービス同士の仲介や変換,ルーティングなどの処理を行う「接続・通信」ツール,の四つで構成されます。

図1●SOAに基づいた開発ライフサイクルをサポートする製品群
図1●SOAに基づいた開発ライフサイクルをサポートする製品群
[画像のクリックで拡大表示]

 これらのツールの機能は,単独の製品で満たせることもあれば,複数の製品を組み合わせることもあります。また,こうしたツールを「SOAの製品スイート」として,すべて1社で提供できるベンダーもあれば,得意なツールのみを提供している専業ベンダーもあります。

 現在のところ,IBMやOracle,BEA Systemsといった海外の大手ベンダーは図1に挙げたツールのほとんどを1社で提供可能です。ただし,こうした大手ベンダーはすべてのツールを自社で開発したわけではありません。自社で技術を持っていなかったり,開発が遅れているツールについては,この2,3年の間に,高い技術力を誇るベンチャー企業を積極的に買収して手に入れました。そして自社製品との統合を進め,包括的なSOAのツール・セットとして提供できるようになったのです。

 NECや日立製作所,富士通といった国産のITベンダーも負けてはいません。海外ベンダーには後れをとったものの,2007年には,ESB(Enterprise Service Bus),BPM(Business Process Management)などの基盤製品を相次いで発表しました。運用管理ツールなど,一部のツールについてはまだ提供できていないベンダーもありますが,海外ベンダーとの差は次第に縮まってきているのは確かです。

 このような状況下で,製品選択のポイントとしてまず注目したいのは,製品の成熟度です。ベンダーの違いによる製品の成熟度の違いはもちろんですが,スイート製品として提供されているツール群の成熟度はツールごとにまちまちであることに注意が必要です。これは,他社買収によって手に入れたツールと自社開発のツールが混在することに加え,自社開発したツールであっても開発した時期が異なることに起因するものです。成熟度の違いは,機能やバグの多少,ユーザー・インタフェースの使い勝手などに影響します。製品選択の際には,市場に出てからどれくらいの年数が経過しているのか,何回バージョンアップされたのかといった点を考慮する必要があります。

 製品選択のポイントとしては,一つのベンダーから提供される製品スイートを購入するか,それとも,必要な機能に対して個別最適で製品を選択し,それらを組み合わせて利用する(Best-of-breed)かという観点も大切です(図2)。どちらにも一長一短があるので,それぞれのメリットとデメリットを以下にまとめておきます。

図2●製品スイートとBest-of-breed
図2●製品スイートとBest-of-breed
[画像のクリックで拡大表示]

【製品スイート】
メリット:ツール間で共通のユーザー・インタフェース,リポジトリ,配備方法を共有し,単一のランタイムで稼働するので,開発期間を短縮しアプリケーションの配備が迅速化できる。
デメリット:スイートを構成するツールがすべて優れているとは限らないので,ツールによっては,他社の製品に比べて機能的に足りない点があったり,使い勝手が悪かったりする場合がある。

【Best-of-breed】
メリット:当然ではあるが,各分野で最も優れていると思われる製品を自由に選択することができる。
デメリット:製品や技術を組み合わせて利用する場合には,組み合わせた際の検証作業が必要となるので,開発やテストなどの工数が必要になる。また,組み合わせがうまくいかないこともあるので,全体の整合性への配慮が欠かせない。