ニュース News
Event Report : 「JJUG Cross Community Conference 2008 Spring」リポート
SOA、Webサービス、Web 2.0時代のコンポーネントは「サービス連携」を前提に考えよ
“Java EEの父”が語る、コンポジット・アプリケーションのためのコンポーネント・モデル
2008年5月1日更新
社会のIT化を推し進めるSOA
|
日本Javaユーザー・グループ(JJUG)は今年4月30日、開発者向けセミナー「JJUG Cross Community Conference 2008 Spring」を開催した。その基調講演に登壇したのは、Java EEの核となるEJB仕様の策定に大きく貢献し、“EJBの父”、“Java EEの父”とも称されるDon Ferguson(ドン・ファーガソン)氏だ。ここでは、氏の講演の内容をリポートしよう。
かつて米国IBMで“フェロー”の称号を授かり、チーフ・アーキテクトとしてWebSphereの開発を主導。Java EEの黎明期から発展期にかけEJB仕様(バージョン1.0〜2.0)の制定に尽力したFerguson氏。2006年末にIBMを退社後、一時マイクロソフトでTechnical Fellow Platforms and Strategyの要職に就いた後、今年3月にCAに移籍。現在は同社でChief Architect Enterprise IT Managementを務めている。
そのFerguson氏による基調講演のテーマは『A Component Model for SOA, Web Services and Web 2.0』。ここ数年、企業システムのアーキテクチャとしてSOA(Service Oriented Architecture)が関心を集め、欧米を中心に適用が進んでいる。「そうした時代にソフトウェア・コンポーネントはどうあるべきか」――それが氏の講演のテーマだ。
講演の冒頭、Ferguson氏は、ITを巡る今日の大きなトレンドとして、次の6つを挙げた。
●ハードウェアの高性能化
●携帯電話、モバイル端末、タブレットPCなど各種端末とワイヤレス・ネットワークの普及
●SOAの浸透
●人々のワーク・スタイル/ライフ・スタイルのデジタル化
●経済活動のデジタル化
●ソフトウェア技術の進化
現在、これらのトレンドが相互に関連し合いながら、ITのあり方を大きく変えようとしているのだという。その起点となっているのはハードウェアの高性能化であり、それによるメリットを他のトレンドに波及させているのがSOAである。
「ハードウェアの高性能化によって、ソフトウェアをより高速に動作させられるようになった。その結果、複雑な処理を伴うSOAを企業システムに適用するチャンスが広がり、SOAにより各種端末やモバイルでのサービス利用、ワーク・スタイル/ライフ・スタイルのデジタル化、経済活動のデジタル化、そしてソフトウェア技術の進化が促進されているのだ」(Ferguson氏)
SOA/コンポジット・アプリケーション時代のコンポーネント・モデル
このように、社会のIT化を押し進める基盤としてSOAの重要性が高まっている今、アーキテクトなどの開発者らは、このアーキテクチャを十分に理解し、適切に使いこなさなければならない。例えば、現状では「SOAの定義」についてすら、まだ認識のズレが見られる。その点を指摘したFerguson氏は、「サービス」、「サービス指向」、そして「SOA」の定義を次のように示した。
●サービス:「新規取り引き口座の開設」や「決済方法のチェック」といった、繰り返し発生するビジネス・タスク
●サービス指向:ビジネスを、サービスの連携によって統合する方法
●SOA:サービス指向を実現するアーキテクチャ・スタイル
こう定義されるSOAを用いたシステム設計で課題となるのは、「サービスの連携をどう実現するか」であり、それを考える際に基礎となるソフトウェアの単位が「コンポーネント」である。SOAとは、コンポーネントの組み合わせ(複合:コンポジット)によってアプリケーション(コンポジット・アプリケーション)を組み立てるためのアーキテクチャにほかならない。つまり、SOAが浸透しつつある今日、複合されることを前提にしてコンポーネントのあり方を考えるべきなのだ。
「SOA時代には、コンポーネントの作り方も、それ単体に閉じた視点ではなく、組み合わせることを前提に考えなければならない。開発者は、コンポーネントの複合、すなわちコンポジット・アプリケーションへの理解をもっと深めるべきだろう」(Ferguson氏)
ちなみに、SOAにおけるコンポジット・アプリケーションの形態には、次の4つのスタイルがあるという。
●コンポジット・ワークプレース:ポータルなどのように、複数のコンポーネントを並置して1つの画面を構成するスタイル
●イベント駆動アーキテクチャ:イベントの発生に応じて必要なコンポーネントを呼び出し、連携させるスタイル。Ferguson氏は、「Yahoo! Pipes」などをその例として挙げた
●インフォメーション統合:ETLなどによって各種データ・ソース内の情報を統合し、それにサービスとしてアクセスするスタイル
●ビジネス・プロセス:ビジネス・プロセスに従ってコンポーネントを連携させるスタイル









