IBM Lotus Expeditorでのアプリケーション開発
ExpeditorはEclipseを拡張したプラットフォームであるため、その上で動作するアプリケーションはEclipse プラグインとして開発します。通常のEclipse プラグイン開発と同様の手順でExpeditorに対応したアプリケーションを開発することができます。ExpeditorではExpeditorが提供するサービスを利用したアプリケーションを開発をアシストするIBM Lotus Expeditor Toolkit を提供しており、Toolkitを使用することでExpeditorが提供するサービスを利用したアプリケーションの開発をスムーズに行うことができます。もちろんToolkitを使用することでコンポジット・アプリケーションに対応したプラグインの開発も行うことができます。
コンポジット・アプリケーションに対応したEclipseプラグイン形式のアプリケーション開発方法について説明します。既存のアプリケーション、新規のアプリケーションのどちらにおいても、同様の手法でコンポジット・アプリケーションに対応することが可能です。開発しているプラグインを、他のプラグインと連携するコンポジット・アプリケーションのコンポーネントとして利用可能にするためには、そのプラグインが持つパブリッシュ可能なPropertyと、Propertyを受け取った際に実行するアクションを定義する必要があります。その定義には WSDL 形式のファイルを使用し、コンポーネントの持がパブリッシュ可能なPropertyや、Propertyを受け取った際に実行されるアクションを、コンポーネント間通信を行うための Property Brokerに対して公開します。このWSDLの生成にはIBM Lotus Expeditor Toolkitに付属のProperty Brokerエディターが利用可能です。生成された WSDL ファイルを開発しているコンポーネントに含め、登録することでコンポジット・アプリケーションに対応することができます。
最後にコンポジット・アプリケーションを組み立てる作業を行います。組み立ての作業はプラグインの配置と、配置されたプラグインを連携されるためのワイヤリング作業になります。現在のバージョンではその作業を新たなプラグインを準備し、その中で定義を手作業で行う必要がありますが、将来のリリースにてコンポジット・アプリケーションのアセンブリー・ツールとしてComposite Application Editorがビジュアル・ツールとして提供予定になっています。
以上の作業で、新規のプラグインの開発または既存のアプリケーションをプラグイン化させることでExpeditor上のコンポジット・アプリケーションとしてより価値のあるアプリケーションを実現することが可能になります。
図6の例では、Expeditor上にそれぞれ単体で動作するSWTで作られたJavaのアプリケーションとJSR 168で作られたPortalアプリケーションのコンポジット・アプリケーションになります。Javaのアプリケーションは商品のリストの編集ツール、Portalのアプリケーションは商品のリストを表示するアプリケーションになっています。この、JavaとPortalといった異なるテクノロジーでできたアプリケーション同士であっても、Portalアプリケーションで発生したイベントをトリガーにしてJavaのアプリケーションを動作させることができます。このサンプルアプリケーションはこちらのページからダウンロード可能です。
まとめ
本稿では、コンポジット・アプリケーションを実現可能にするIBM のクライアント製品であるExpeditorを、コンポジット・アプリケーションを中心に紹介しました。次回は、Expeditorをベースとしたコラボレーション製品であるIBM Lotus Notes 8およびIBM Lotus Sametimeを紹介いたします。またIBM Lotus Notes 8で実現できる特徴的なコンポジット・アプリケーションについても紹介します。