Celtixの生まれ
ESBとは
ESBについては様々なところで記事が書かれていますが、今ひとつクリアな定説が見られないのが、現状かと思います。しかし、ここでオープンソース のESBの位置づけを明らかにしないと何を説明しているのかがわからなくなってしまうので、誤解を恐れずにESBの定義なるものを表にしてみました。
分類 | 機能項目 |
基本機能 | HTTPによる連携 |
JMSインフラ(あるいは非同期メッセージング基盤) | |
WS-RMインフラ | |
SOAP、XMLバインディング | |
WSDL(サービス・コントラクト) | |
WSDLおよび各種メタ情報によるAPIの抽象化 | |
Java WebサービスAPI(JAX-WSなど) | |
メッセージング交換パターン(MEP) | |
サービス生成。スタブ/スケルトン、ソースコード生成の開発支援 | |
ロギング | |
拡張機能 | 上記以外のマルチトランスポート |
上記以外のマルチペイロード・バインディング | |
非Java機能 | マルチプラットフォーム・エンドポイント |
C++Webサービス | |
基本サービス | コンテンツ・ベース・ルーティング |
メッセージ変換(トランスフォーメーション) | |
UDDIサポート | |
サービス・コンポジション | サービス・オーケストレーション(BPELエンジンなど) |
エンタープライズQoS基本 | セキュリティ(SSL、WS-Security、SSO、LDAPなど) |
トランザクション(WS-Transactionなど) | |
エンタープライズQoS拡張 | レジストリ(サービス登録/参照/削除) |
サービス・フェイルオーバ(ホット・スタンドバイ) | |
サービス・ロードバランス(アクティブ・アクティブ) | |
高可用性機能 | |
エンタープライズQoS運用 | サービス運用管理(サービス状態、トラヒック、SLA/SLM(注2)、OLA/OLM(注3)など) |
サービス基盤統合 | リポジトリ(サービス生成メタ情報、サービス運用管理、ポリシーなど) |
その他 | プラガブル(プラグインなどによるコンポーネントの追加/削除) |
※注3: Operational Level Agreement/Operational Level Management
Celtix 1.0はおおむね、表1の基本機能と拡張機能、基本サービスの中の基本的なルーティング、エンタープライズQoSのセキュリティの中のSSLとサービス運 用管理をJMXで実現するというところがサポート範囲になります。したがって、Celtix 1.0だけでエンタープライズが要求するSOAの基盤を作ることは現実的ではありません。Celtix 1.0の位置付けは、ESBのインターフェースにのとってエンドポイント同士を連携する場合などに適用することです。
Celtixプロジェクトにおいて、2005年9月にプロジェクトの開始を発表してから2006年5月にバーション1.0をリリースするまでに7ヶ 月余りの期間でリリースできたのは、後述する商用製品のArtixのアーキテクチャ(ArtixはC++で開発されており、Pure JavaのCeltixとの共通のコードは多くありません)を踏襲していることと他のオープンソースを利用していることにあります。特にJMSインフラを サポートするActiveMQなどを利用しています。ただし、CeltixはActiveMQに全面的に依存している訳ではなく、他のJMSのエンジンと 交換することもできるように、設定によって構成を変更できます。
つまり、ESBとして不足する機能も今後は他のオープンソースで補完することが想定されます。例えば、BPELエンジンあるいはJBI(Java Business Integration)とのインテグレーションなどです。ただし、筆者は今のESBの要件定義では究極のSOA基盤としては不足すると考えています。よ りビジネスとの融合を進めるためには、アプリケーションのセマンティクスをハンドリングできる必要があると考えています。いつ実現できるか不明ではありま すが、寿命の長いSOA基盤を構築する上で、ESBの将来像を想定しておくことは重要です。
Celtixのパッケージ
CeltixプロジェクトをホスティングしているObejctWeb(前述のようにCeltixプロジェクトはObjectWebからApache Software Foundationに移りました)は、あまり知られてはいませんが、ヨーロッパではJ2EEアプリケーションサーバのJOnASなどのミドルウェアを中 心にサポートしています。
ObectWebは、Celtixプロジェクトがはじまる1年ほど前からESBi(ESB Initiative)というイニシアティブを立ち上げて、ESBの研究をしていました。ObejctWebは、Bullやフランステレコム、 INRIA(フランス国立情報・自動制御研究所)が設立した商用を利用を目指したコミュニティであり、ラインセスはLGPL(GNU Lesser General Public License)を基本としています。
後にも解説しますが、Celtixの管理用のGUIはEclipse FoundationのSTP(SOA Tool Platform)プロジェクトの成果を流用する予定で、EPL(Eclipse Public License)の適用も必要となっています。このため、CeltixのディストリビューションはEPL用とLGPL用の2つに分かれます。
また、ソースコードのディストリブーションからデプロイする場合には、デプロイ環境のライフサイクルをApacheのMavenで管理するため、 Maven 2.0を導入する必要があります。詳しくは、Celtixのインストレーション・ガイドをご参照ください。
http://maven.apache.org/
・Celtixのインストレーション・ガイド
http://celtix.objectweb.org/docs/user_guides/installation/installation.html