SOAフレームワークBeehiveに挑戦(1) 1/4

Beehiveでメタデータ(JSR 175/181)を体験しよう

BEAシステムズがApache財団にWebLogic Workshopの一部を寄贈したことで誕生した、オープンソースのSOAフレームワーク「Apache Beehive」。本連載はその仕様を詳細に検証することで、J2EEの目指している新たな方向性を明らかにする。(編集局)

www.netpotlet.com
原田洋子
2005/1/21

Apache Beehiveの生い立ち

主な内容
--Page 1--
Apache Beehiveの生い立ち
Apache BeehiveはSOAなのか
SOAが目指してきたもの
--Page 2--
Apache Beehiveに適用されている仕様
--Page 3--
3つのサブプロジェクト
--Page 4--
Apache Beehiveを動かしてみよう
まとめ

 「オープンソース化」が注目されるようになってからどのくらいの年月がたったでしょうか。特にJavaの世界はオープンソース文化が花開いているところです。かつてはプログラム作りが大好きという優秀な開発者が面白い/便利/すごいだろうと思うものをオープンソースソフトウェアとしてリリースするケースが圧倒的でしたが、オープンソース化の動きが広まるにつれ、認知度や評価、社会的立場も上がり業務でも使われだしました。次第にソフトウェアベンダが戦略を視野に入れつつ社会貢献の意味も含めて、オープンソースとしてリリースするケースが増えてきました。こうした流れの中にはEclipseといった有名な製品がありますが、これから紹介するApache Beehiveもその1つです。

 Apache BeehiveはBEAシステムズがApache財団にWebLogic Workshopのコードを提供して開始されたオープンソースのプロジェクトとその製品です。2005年1月現在ではBeehiveはまだ正式なApacheのプロジェクトではなく、Incubatorプロジェクトに入っています。このためプロジェクトは次のURLで公開されています。

 なお、日本BEAのデベロッパー向け情報サイト

では日本語でApache Beehiveの情報が公開されているので参考にするといいでしょう。では、Apache Beehiveについて詳しく見ていきます。

Apache BeehiveはSOAなのか

 Beehiveについて調べていると、必ずといっていいほどSOAという言葉もセットで出てきます。SOAはいうまでもなくService Oriented Architecture(サービス指向アーキテクチャ)ですが、世間ではバズワード(buzzword:《素人を煙に巻く》専門用語 『リーダーズ英和辞典 第2版 研究社より』)というありがたくない形容をされる用語になってしまっているようです。

 SOAは大ざっぱないい方をすればWebサービスのためのDIコンテナ(DI:Dependency Injection:依存性の注入)です。1カ所以上の場所にコンポーネント化されて存在するWebサービスの中からダイナミックに必要なものを集めて組み立て、サービスを作り上げて提供する仕組みです。必要なサービスはメッセージがESB(エンタープライズサービスバス)を駆け巡って集めて回ります。

 SOAがバズワードに分類されてしまう理由は何なのでしょうか。SOAに触れているWebサイトや記事などを見るといくつもの理由が挙げられていますが、どれも決定的といえるほどのものではありません。サーバサイドJava分野で最も多いのはWebアプリケーション開発ですが、その現場からSOAを考えてみるとどうでしょうか。JSTL(JSP Standard Tag Library)にSQLタグライブラリがあることでも分かるように、現時点ではプレゼンテーション層のJSPでデータベース操作まで意識したプログラミングが行われることもあります。

 つまり、HTMLとデータベース操作が密接に関係していて、ロジックの分離やモデル化まで考慮されないプログラミングが正当化されているところがあります。このような現場の状況を考慮するとモデル化を基本とし、モデルの実体であるコンポーネントは疎結合が基本となっているSOAは、アイデアが先進的すぎて一般の開発者が喰い付けなかった。その結果、なかなか発展フェイズに移行できず、言葉だけが先行してしまったことが原因かもしれません。

 では、「利用者を大幅に増やせるような何かをしてはどうか」と誰もが考えるところです。利用者が増えれば活発に議論が行われるようになります。利点や欠点、問題点も明らかになり、要望も具体的になってくるはずです。製品についてもバグや不具合の報告が増え、製品の成熟度合いも上がるでしょう。そこで、オープンソース化です。WebLogic WorkshopをオープンソースにしてApache傘下で開発を進めることになったプロジェクトとその製品がApache Beehiveです。

 オープンソースとしてリリースされるようになったApache Beehiveですが、SOAのような壮大なシステムではなく、もう少し身近なところに注目しています。Apache Beehiveの基になっているWebLogic WorkshopもSOAプラットフォームではなく一種の開発環境ですから、SOAを動かすのではなくSOAでも使えるWebサービスやコンポーネントを簡単に作れる環境を提供しています。Apache BeehiveとSOAという言葉がセットで出てくるので勘違いしがちですが、Apache BeehiveはSOAとは違うものです。

SOAが目指してきたもの

 Apache BeehiveはSOAと直結した製品ではありませんが、SOAと無関係ではありません。Beehiveを使って何が作れるのかを理解しやすくするために、SOAについてもう少し説明を加えておきましょう。また、ここではアイデアと実装を分けてSOAを見ていきます。

 SOAというアイデアは

  • 疎結合
  • 再利用可能
  • OSや言語などに依存しない抽象化されたサービス

を実現するために考え出されました。この3つだけを見ると、どこにでもあるような概念です。オブジェクト指向設計にXMLを組み合わせたツールや製品は相当数がリリースされていますが、いずれもこの3つは目標の中にあるでしょう。この3つを実現するほかのツールとSOAの一番の違いはコンポーネントの粒度です。コンポーネントが小さい場合は汎用ライブラリの一部に組み込まれるようなツール、あるいはAPI(Application Programming Interface)になり、大きくなってくると最近の流行になっているDIコンテナのようになってくるでしょう。さらに大きくなりWebサービスやWebサービスで利用するコンポーネントになるとSOAになるという違いです。

 また、SOAが想定しているコンポーネントは認証やアクセス制御、検証といった横断的に利用されるWebサービスです。横断的に利用されるコンポーネントを分離独立させて、必要に応じて連携するという概念もAOPと同様のどこにでもある発想です。違うのはやはりWebサービスを対象にしていることで、Webサービスに応じた連携方法が取り入れられていることくらいでしょう。

 Webサービスを対象にしているので実装レベルでの違いは大きいですが、アイデア的にはSOAは特別な何かではなく、よくある発想でしかありません。だれもが気軽に使える実装がないという現状とSOAのアイデアを切り離して考えれば、いまどきの設計やプログラミングスタイルのWebサービス版となっています。(次ページに続く)

  1/4

 Index
SOAフレームワークBeehiveに挑戦(1)
Beehiveでメタデータ(JSR 175/181)を
体験しよう
Page 1
・Apache Beehiveの生い立ち
・Apache BeehiveはSOAなのか
・SOAが目指してきたもの
  Page 2
・Apache Beehiveに適用されている仕様
  Page 3
・3つのサブプロジェクト
  Page 4
・Apache Beehiveを動かしてみよう
・まとめ


「SOAフレームワークBeehiveに挑戦」


XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間