はじめに
この連載では、「オープンソースApache Tuscanyで楽しむSOA」として、オープンソースのSCA準拠製品である「Apache Tuscany」を取り上げ、SOA(サービス指向アーキテクチャ)の開発について説明していきたいと思います。第1回目の今回は、Tuscanyの誕生までの歴史と、Tuscanyとは何かを紹介していきます。
「楽しむ」という言葉に反応された方も多いでしょう。「SOAって楽しめるわけがない」「Webサービスの膨大な仕様書があるけどよくわからなかった」「簡単なことをやる割には、SOAPとかWSDLとか結構面倒だし」という声が聞こえてきそうです。そこなんです、当連載の目的は。Tuscanyは膨大なWebサービスの仕様書を読まなくても開発できます。Webサービスの面倒な部分はコンテナが勝手にやってくれます。JSONやATOMを使ったAjaxについてもほとんど知識は要りません。だまされたと思って、お付き合いいただければと思います。SOAガバナンスを決してないがしろにするわけではありませんが、とくかく作って、試して、驚いていただきたいのです。そのような思いで記事を書いています(アーキテクトの方は、Webサービスに熟知していなければならないですし、Ajaxについても理解しておかなければなりません)。
そのような意味からいえば、Tuscanyの誕生までの歴史など必要がないのかもしれません。そのように思われる方は第2回目から読んでいただいても一向に構わないのです。第1回目は今までのSOA製品に苦労した方を対象にしています。第1回目を読み飛ばされた方は、永遠に第1回目を読まれなくても結構ですし、「SOAの簡単な歴史も少しは知りたいな」とふと思われ時にでも第1回目に戻っていただければと思います。
Tuscanyの出現
SOAの熱気がすっかり冷め、クラウドがその座を奪ったようにも思えます。確かに、クラウドがシステム開発のあり方を大きく変えることは疑いようもなく、着実に既存システムを含め、システムはクラウド上に乗るようになるでしょう。
では、SOAはどうなってしまうのでしょう。消えてなくなる運命なのでしょうか? 答えは否です。SOAはクラウドに隠れている間にも研究・開発が続けられ、混沌とした段階からJBI(Java Business Integration)に準拠した製品、さらにSCA(Service Componet Architecture)に準拠した製品が開発されるに至り、エンタープライズレベルの採用も十分に考えられる段階へと進化し続けていたのです。
クラウドとSOAはもともと対立するものではありません。クラウドの落ち着きに伴い、企業はビジネスプロセスをサービスとして公開していくと予測されます。そのとき、SCA準拠のSOA製品が成熟し、十分その役割を果たせるようになるでしょう。SCA準拠のSOA製品の中でもオープンソースである「Apache Tuscany」(以降、Tuscany)は非常に魅力のある製品であり、エンタープライズレベルで採用する日が来ると思われます。
SCAの魅力とは
筆者がまず驚いたのが、コンポーネント(後述)の結合の簡単さです。サービスとプロトコルが分離されているため、インターフェースや実装部分にプロトコル固有のコーディングを加えなくていいのが何より嬉しいことです。さらにコンポーネントがJavaであろうが、C++であろうが、BPELであろうが簡単に結合できてしまうのです。これらを実現する仕様が「SCA Service Component Architecture Assembly Model Specification」です。このAssemblyの仕様こそSCAの核であり、今までのSOAとは一線を画する特長です。
筆者がTuscanyを通じてSCAの長所と考えているのは以下のとおりです(筆者の好み順です)。
- いろいろな言語を簡単に組み合わせることができる(言語中立)
- サービスの実装でプロトコルを意識する必要がない(プロトコル中立)
- 粗い、細かいというサービスの粒度を過度に意識しなくて良い
- マシンの境界を越えたワイアリングが簡単である
- アノテーションを使うことでコンテナに面倒なことを任せられる
- Eclipse3.5(Galileo)以降、SCA Toolsがプロジェクトとして追加された
- リファレンスやプロパティの依存性注入(DI)ができる
- Web 2.0も取り込んでいるため、JSONやATOMでのバインディングが可能。(ただし、SCAで正式にバインディングとしてサポートしていない)
上記の長所は当シリーズで実装コード、設定ファイルを用いて説明する予定です。SCAの魅力はまだまだあるため、その都度紹介できればと考えています。