先月ApacheTuscanyチームからService Component Architecture(SCA)(source)のバージョン1.2とService Data Objects(SDO)(source)のバージョン1.1がリリースされた。
SCAとSDOは最初IBMとBEAによって策定・開発されたもので、今は複数の企業によるコラボレーションチームであるOpen Service Oriented Architecture(OSOA)(OSOA)とOASIS Open Composite Service Architecture(Open CSA)(source)によって開発が続けられている。この活動に加わっているメンバ(source)には、IBM、BEA、Primeton、Sun、 SAP、 Oracle、 Red Hat、 SOA Software、 Xcaliaがある。
Apache Tuscany SCA 1.2で実装されている最新のSCA仕様には以下のものがある。
- SCA Assembly Model(SCAでのアプリケーション構成モデル) v1.0
- SCA Policy Framework V1.0
- SCA Java Common Annotations and APIs V1.0
- SCA Java Component Implementation V1.0
- SCA Spring Component Implementation V1.0
- SCA BPEL Client and Implementation V1.0
- SCA Web Services Binding V1.0
- SCA EJB Session Bean Binding V1.0
- SCA Domain ManagerアプリケーションによるSCAの分散ドメインのサポート改善
- SAXWSアノテーションのサポート
- JMSバインディングの改善と簡素化
- EclipseでTuscanyのランタイムライブラリとTuscanyランチャを提供する新しいEclipseプラグイン
- Tuscany用にWeb Container Testing Frameworkを統合(Tomcat、Jetty、Geronimo、Websphereで作動する)
SCA仕様ではまだ定義されてない次のような多くの機能の実装も含まれている。
- Direct Web Remoting・RSS・ATOMフィード・HTTPリソース・JSON-RPC・PUB/SUB(Publish/Subscribe)型のNotification(Webサービス間のメッセージング)・RMI向けSCAバインディング
- OSGi・XQuery・BPEL・Widget・各種動的言語(Groovy・Pythom・Ruby・Javascript)でのSCA実装
- SDO・JAXB・XmlBeans・Axis2のAXIOM・JSON・SAXON・DOM・SAX・StAX向けのデータバインディング
今回のバージョンは以下の実行環境でテストが行われている。
- Tomcat 5.5.20およびTomcat 6.0.14
- Jetty 6.1.3
- Geronimo 2.0.2
- WebSphere 6.1 fix pack 9
Apache Tuscany SDO 1.1には次の機能が含まれる。
- 同一名の属性(attribute)と要素(element)のサポート
- Swing UIのDataObjectsの独自データバインディングのサポート
また多くの既存の機能改善やバグフィックスも含まれている。
InfoQはApache Tuscanyプロジェクトに関わるIBMのLuciano Resende氏(source)に話を聞いた。
InfoQ: 今回のリリースで導入された機能の中で、あなたはどれが一番重要だと考えていますか?
LR: SCAは分散複合アプリケーションを構築するもので、SCA Domain ManagerアプリケーションによってSCA分散ドメインを新しくサポートしたことで複数のSCAノードに自分たちのシステムをデプロイすることができるようになりました。これらのノードは異なるプラットフォームや実行環境(例えばGeronimo、Tomcat、Jettyなど)で動かすことができますし、標準のJ2SEだけで動かすこともできます。OSGiのサポートでは、ユーザがTuscanyとSCAを同じOSGi実行環境で動かすことができるようになりました。新しいTusacny Eclipseプラグインは開発者がSCAアプリケーションを作る上でのユーザエクスペリエンスを向上させます。このEclipseとTuscanyを統合するプラグインによりプロジェクトへTuscanyランタイムを付け加えるのが容易になり、コード補完を使ったコンポジット(SCAの実際のプログラム構成要素の単位)コードの編集や開発環境から直接コンポジットを実行することができます。
InfoQ: TuscanyでWS-BPELのサポートを向上させる計画について教えてくれますか。
LR: Tuscanyの開発レポジトリにあるトランクコードでは、ちょうどBPELと SCAの統合をより進めたマイルストーンを達成したところです。ODEは現行のTuscanyでBPELプロセスがSCAサービスを参照できるようにするために含まれています。次の段階についていえば、次のような話が出てきています。
- WS_BPEL Processのイントロスペクション(内部情報を取得できること)
- 非同期実行のサポート向上
- ODEデプロイ記述子をSCAコンポジットで置き換える
InfoQ: SCAの各種設定を集中的に管理することは可能なのでしょうか?
LR: 現バージョンのTuscanyではアプリケーションと設定をバインディングしないでパッケージングしても、SCA Domain Compositeでバインディングエンドポイントと他のプロパティを定義すればいいようになっています。SCA Domain Compositeはネットワークやバインディングの設定情報を持っているコンポジットファイルの集まりで、この場合SCA Domainが分散レジストリの中心となります。
InfoQ: 今回のリリースではどのポリシー(SCAコンポーネントなどに制約や横断的機能を付与する)が使えるようになっていますか。
LR: ウェブサービスのバインディングについては、認証・完全性・機密性のポリシーが有効になっています。またJavaコンテナを使うサービス向けに JAAS(Java Authentication and Authorization Service)をベースにした認証(Authentication)システムを実装しています。JAASベースの権限付与(Authorization)については、認証コントロールの方がJavaのリソースに対して使われているようなのでサポートしていません。
Big Bankデモでは、認証を行うためと、認証されたユーザのセッショントークンをJavaコンテナへ引き渡すためにウェブサービスのバインディングが使われています。トークンを渡されたコンテナでは認証のためのチェックがされるでしょう。
またログ記録のポリシーもサポートしています。
InfoQ: JMSのサポートについて詳しく教えてももらえますか。
LR: JMS のサポートによりサービスや参照についてのJMSバインディングが可能になり、JNDI URLやInitial Context Factory、ConnectionFactory、JMSヘッダ、使用されるソースやJMSの送信先キューといった多くのことを設定/定義することも可能になります。TuscanyはデフォルトのJMSプロバイダとしてActiveMQを使っていますが、他のプロバイダを使うように設定することもできるので、細かい点は使用されるプロバイダによって違ってきます。
InfoQ: 将来どのような機能が追加されるでしょうか。
LR: これはTuscanyのコミュニティによりますが、現段階の議論からすると次のようなのが挙げられると思います。
- OSGiをTuscany実行環境のファーストクラスオブジェクトにする
- BPELのBusiness Integrationを強化する
- SCA仕様の展開に合わせたアップデート
また現在進行中のGoogle Summer of Code(学生がオープンソース開発に参加するためGoogleが資金提供している)プロジェクトには様々なアイディアがあり、ここからTuscanyの機能を次のような面で強化することになるものが出るかもしれません。
- Googleのサービスを使ってWeb 2.0のサポート強化する
- Map/Reduceを取り入れる
- モバイルへ展開する(TuscanyをAndroidで動かす)
また、STP/SCAのサブプロジェクトではSCA開発用のツールを提供していて、これを使うとTuscanyでのSCA実装を簡素化することができます。先月そのサブプロジェクトがSCA Composite Designerを使った新しいチュートリアル(source)を公開し、その中でSCA開発用ツールをどのように使うかを段階的にレクチャしています。
原文はこちらです: