IBM Lotus Expeditorに、Eclipse RCP アプリケーションを移行する

Eclipse Rich Client Platform と IBM Lotus Expeditor V6.1 は、クライアント側のアプリケーションを構築するためのプラットフォームです。この記事では、Eclipse RCP と Lotus Expeditor を取り上げます。RCP を使った Lotus Expeditor 対応のアプリケーションの開発が必要となる理由と条件を検討し、既存の RCP アプリケーションを Lotus Expeditor に移行する方法について説明します。

Peter Xu, Senior Managing Consultant, EMC

Peter Xu is a Senior Managing Consultant with IBM Software Services for WebSphere, working directly with IBM's largest customers and helping them design and deploy SOA-based solutions on broad range of IBM Software offerings. Peter specializes in business process analysis, modeling for execution and end-to-end BPM solutions. Peter is an OMG-Certified Expert in BPM (OCEB Business Track Advanced).


developerWorks 貢献著者レベル

2007年 4月 24日

Eclipse Rich Client Platform (RCP) アプリケーションは普及率が高まりつつあり、実際の企業向けアプリケーションの構築とデプロイメントにも利用されています。IBM Lotus Expeditor は IBM 提供の新製品で、Eclipse RCP アプリケーションを始めとする複合クライアント・アプリケーションの構築に役立ちます。ここでは、この 2 つのプラットフォームを比較対照していきます。

IBM Lotus Expeditor

IBM Lotus Expeditor は Eclipse RCP をベースにして構築された、一元管理型クライアント・ミドルウェア用の IBM の戦略的プラットフォームです。IBM Lotus Expeditor は Microsoft Windows 2000、Microsoft Windows XP、Linux などの各種オペレーティング・システムに対応しており、デスクトップやラップトップだけでなく、モバイル・デバイスやキオスク端末にも利用できます。これを実現しているのが、各種ランタイム環境、堅牢な OSGi コンポーネント・フレームワーク、追加コンポーネント・サービスを含む Managed Client Services です。

また、ダイナミック・プロビジョニングも Lotus Expeditor の重要な機能です。この機能を使用すると、クライアントや後続の更新を必要に応じてプロビジョニングできます。サーバー管理クライアントは、ソフトウェアのデプロイメントと保守にかかる管理コストを削減できます。Lotus Expeditor のこの機能は、Platform Management Services とも呼ばれます。このサービスには、Eclipse Update Manager や、クライアント・プラットフォーム上でアプリケーションやサービスのインストールと更新を行うための Enterprise Management Agent などが含まれています。

Lotus Expeditor には、一連のアクセス・サービスもあります。これらのサービスは、クライアント・コンポーネントとサーバー・コンポーネントを統合するためのミドルウェアとなります。Lotus Expeditor は Web サービス・プロバイダーとしての機能も果たすことができ、利用する側としての機能も可能です。また、Lotus Expeditor は任意の Web サービス対応アプリケーションと統合できます。Lotus Expeditor には、非同期プログラミング・パターンを使用可能にするローカル・メッセージング・プロバイダーのほか、データと同期サービス用のローカル・データベースも備わっています。これらの機能を利用すると、アプリケーションの切断モードが可能になります。サーバー側のコンポーネントと併用した場合は、ネットワークとターゲット側が使用可能なときにトランザクション同期を行うことができます。

最後に、Lotus Expeditor は複合アプリケーション用のクライアント統合プラットフォームとして設計されています。ユーザー・インターフェースの観点からは、SWT アプリケーション、Web アプリケーション、ポートレット・アプリケーション、ActiveX アプリケーション、Windows のネイティブ・アプリケーション、Swing などさまざまなアプリケーション・タイプを 1 つのクライアント・ビューにまとめることができます。Lotus Expeditor には J2EE Web コンテナーとポートレット・コンテナーが備わっており、従来サーバー・ベースのこれらのインターフェースをローカルで実行できます。この機能をインタラクション・サービスと呼びます。

図 1 に、Lotus Expeditor の概要を簡単な図で示します。

図 1. IBM Lotus Expeditor のスタック
IBM Lotus Expeditor のスタック

前述したように、Lotus Expeditor は IBM の戦略的クライアント・プラットフォームです。IBM Lotus Sametime V7.5、IBM WebSphere Portal V6.0、および今後リリースされる IBM Lotus Notes V8 などの Lotus 製品ポートフォリオ全体で統一されたユーザー・エクスペリエンスを実現するための、基本的なプログラミング・モデルを提供します。


IBM Lotus Expeditor と Eclipse Rich Client Platform の比較

IBM Lotus Expeditor は Eclipse RCP をベースに構築されているため、Eclipse RCP の全機能をはじめとする多くの機能が備わっています。

第 1 に、Lotus Expeditor は次のような幅広いアプリケーションの開発とデプロイメントに対応します。

  • Eclipse Rich Client Platform アプリケーション (デスクトップ・クライアントのみ)
  • Eclipse 埋め込み Rich Client Platform アプリケーション
  • Web アプリケーション
  • 内蔵されたトランザクション・アプリケーション
  • ポートレット・アプリケーション (デスクトップ・クライアントのみ)
  • データベース・アプリケーション
  • メッセージング・アプリケーション
  • Web サービス・アプリケーション

このリストからもわかるように、Lotus Expeditor はクライアント側の Eclipse RCP アプリケーションをサポートするだけでなく、従来の J2EE サーバー側のアプリケーションをクライアント側で実行するように拡張することも可能です。これらのタスクの実行はすべて、Web コンテナー、ポートレット・コンテナー、およびトランザクション・コンテナーなどのミドルウェア・コンポーネントを組み込むことで可能になります。

第 2 に、Lotus Expeditor は複合アプリケーション用のプラットフォームであり、各種のスタンドアロン・アプリケーション (ActiveX、Swing、Eclipse SWT、ホスト・アクセス、ブラウザー・ベースのアプリケーション) を 1 つの複合ビューに統合することができます。複合アプリケーションは、複数のアプリケーションからの情報を統合して、ユーザーのロールとタスクに応じて必要なコンテンツを提供できるようにします。Lotus Expeditor では、プロパティー・ブローカーを使用してポートレットと Eclipse アプリケーションの統合を可能にしています。

ここでは、Lotus Expeditor での Eclipse RCP アプリケーションの開発とデプロイメントに重点を置いて説明します。Eclipse RCP アプリケーションを開発する場合、Expeditor をプラットフォームにするのが良いのはなぜでしょうか。答えは簡単です。Lotus Expeditor は、ベースとなる Eclipse RCP プラットフォームの全機能が備わっているだけでなく、さまざまな点で Eclipse RCP を強化しているからです。このため、ユーザーが自分でこれらの機能を最初から実装する必要はありません。

エンタープライズ・セキュリティー

Eclipse には、すぐに使えるセキュリティー機能が備わっていません。このため、Eclipse RCP アプリケーションのセキュリティー保護をしたい場合は、ユーザーが自分で行う必要があります。一方、Lotus Expeditor プラットフォームは、アプリケーション・データをセキュリティー保護できる安全なプラットフォームです。オペレーティング・システムを使用したシングル・サインオン機能は、デフォルトでプラットフォームに組み込まれています。

Lotus Expeditor では、以下を行うことで、クライアント上で稼働するアプリケーションやアプリケーション・データのセキュリティー保護が可能です。

  • アカウント・フレームワーク API を使用すると、認証メカニズムを実装できます。これにより、ローカルまたはリモート・サービスへの接続や通信に必要なプロパティーの格納、アクセス、および使用が可能になります。アカウント API は、アカウントの取得、追加、更新、および削除の手段を提供します。また、アカウントに対する変更の listen も行います。アカウント・コンポーネントは共通のユーザー・インターフェースも提供します。ユーザーはこのインターフェースから、すべてのサービスのアカウント情報とパスワードの確認と変更を行うことができます。
  • Lotus Expeditor クライアントで Java 認証・承認サービス (JAAS) を利用すると、柔軟性の高い、構成可能なプラットフォーム・ログイン/認証エクスペリエンスを実現できます。Lotus Expeditor クライアントには、パブリック・ログイン・モジュールが備わっています。このモジュールを拡張して、リモート・サーバーに対する認証をアプリケーションに実装することができます。
  • 認証の観点から、Lotus Expeditor は、有効な認証資格を持つユーザーのみにターゲット機能へのアクセス権を制限することで、クライアント上で稼働するアプリケーションやアプリケーション・データを保護します。
  • Lotus Expeditor では、ユーザー名およびパスワードなどの認証情報を暗号化された鍵ストアに格納することで、ユーザーの資格情報も保護します。

オフライン機能

IBM Lotus Expeditor にはネットワーク・レイヤーがあり、このレイヤーによって、アプリケーションやプラットフォーム・コンポーネントがネットワーク呼び出しやネットワーク・エラーを処理するためのフレームワークが提供されます。これによりユーザーは、クライアント・プラットフォームの現在の状態を判別したり、リモート・サーバーや Web サービスなどの HTTP リソースに接続したりできるようになります。アプリケーションでは、クライアント状況の変更通知を受けることもでき、オフライン・マネージャー用のパブリック API を使用してクライアント・プラットフォームの状況をチェックすることも可能です。また、この機能と Synchronization Manager を併用すると、ユーザーやアプリケーションは 1 つ以上の同期サービスを使用して、ローカル・データ・ストアの同期を開始、制御、モニターできるようになります。RCP アプリケーションはこれらの機能を確実に活用することができます。

デプロイメントと更新の管理

Lotus Expeditor は、次の 2種類の管理クライアントを提供します。

  • Device Manager 管理クライアント。Device Manager サーバーには、照会機能や更新機能など、デバイスを管理するための機能が備わっています。クライアント・プラットフォームの一部として提供される Enterprise Management Agent は、Device Manager サーバーにとっては一種のデバイスと考えられます。このエージェントは、Device Manager サーバーを定期的にポーリングして、クライアントのために処理が必要なジョブを受け取ります (プル)。サーバー側では、Eclipse 機能を Device Manager サーバーに登録して、クライアントに機能を配信するためのジョブを作成する必要があります (プッシュ)。Device Manager サーバーは、ソフトウェア配布、インベントリー、および管理設定を処理します。管理はデバイス単位で行われます。
  • ポータル管理クライアント。Lotus Expeditor クライアント・ワークステーションが WebSphere Portal から構成情報を受け取るように設定することもできます。一元管理型で役割ベースのアクセス制御は、大企業では重要な要件となります。

WebSphere Portal の管理者は、携帯電話や PDA など普及率の高いデバイスからブラウザー・ベースのデスクトップに至るまで、さまざまなタイプのデバイス上で稼働するアプリケーション・コンポーネントを扱います。ポータル管理クライアントを利用すると、共通の Portal のページ/プレース管理、ユーザー管理、アクセス制御を使用して、これらのアプリケーション・コンポーネントを統合、管理、再利用できます。また、ポータル管理クライアントをさらに拡張して、Lotus Expeditor クライアント・ベースのリッチ・クライアント・デスクトップ・アプリケーションをサポートすることも可能です。この管理はユーザー単位で行われます。

Lotus Expeditor は、ソフトウェアの管理とプロビジョニングをユーザー単位またはデバイス単位で一元的に制御します。この機能により、ソフトウェアのデプロイメントと保守にかかるコストを大幅に削減することができます。

IBM提供のサポート

今後 Eclipse RCP アプリケーションを Lotus Expeditor にデプロイすることをお勧めするもう 1 つの重要な理由は IBM サポートです。Lotus Expeditor を使用すれば、公式にサポートされる RCP スタックとクライアント・サービス用のミドルウェア・スタックをベースにして、ソリューションを構築できます。これにより、実動アプリケーションのデバッグやトラブルシューティングにかかる時間を減らすことができます


Lotus Expeditor ツールキット

Lotus Expeditor ツールキットは、Eclipse 3.2.1 をベースにしており、クライアント・サービスを利用するクライアント・アプリケーションの開発、デバッグ、テスト、パッケージ、デプロイに役立つツールをすべて一括して提供します。Lotus Expeditor ツールキットは、パスポート・アドバンテージ(US) を通じて入手できます。

ツールキットのウィザードを使用すると、クライアント・アプリケーションを開発するための Client Services プロジェクトを作成できます。このツールキットでは、ランタイム環境、ビルド時環境、およびプラットフォーム上で実行できるコンポーネント・セットを指定するための便利な手段として、ターゲット定義を使用します。たとえば、Client Services プロジェクトを作成する場合、ユーザーが利用可能なターゲットのリストからターゲット定義と一連の機能を選択すると、そのプロジェクト用の Java ビルド・パスとランタイムが自動的に設定されます。設定後は、プロジェクトの編集、コンパイル、およびデバッグを行うことができます。ツールキットにはターゲット定義のデフォルト・リストが用意されていますが、ユーザーが独自に定義を作成することも可能です。

このツールキットは、リッチ・クライアント・アプリケーションの開発で必要となるため、この記事の後述の作業に進む前にインストールしておいてください。


サンプル RCP アプリケーションの移行

ここでは、既存の RCP アプリケーションを IBM Lotus Expeditor に移行する方法について説明します。

サンプル RCP アプリケーションのインポート

本書は RCP アプリケーションの開発方法の説明ではないので、詳しい作成手順は記載していません。ここでは、既存の Eclipse RCP アプリケーションをインポートした後、そのアプリケーションを移行します。作業を始める前に、この記事の「ダウンロード」セクションでサンプル・コードをダウンロードしておいてください。

  1. 新しいワークスペースで Eclipse を起動し、「ウィンドウ」-「パースペクティブのオープン」-「Plug-in Development」を選択して、Plug-in Development パースペクティブに切り替えます。
  2. 「ファイル」メニュー・オプションから、「インポート・ウィザード (Import wizard)」を選択します。
  3. 「インポート・ウィザード (Import wizard)」で、「既存のプロジェクトをワークスペースへ (Existing Projects into Workspace)」を選択し、「次へ」をクリックします。
  4. 「プロジェクトのインポート (Import projects)」ウィンドウで (図 2 を参照)、「アーカイブ・ファイルの選択 (Select archive file)」オプションを選択し、ダウンロードした zip ファイル org.eclipse.rcp.mail.zip を指定して、「完了」をクリックします。
図 2. プロジェクトの選択
プロジェクトの選択
  1. プロジェクト org.eclipse.rcp.mail をワークスペースにインポートしたら、このプロジェクトを展開し、plugin.xml を選択し、ダブルクリックして開きます。
  2. 「概要」タブを選択し (図 3 を参照)、右列の「テストする」で「Eclipse アプリケーションの起動 (Eclipse application)」リンクをクリックします。
図 3. RCP アプリケーションの起動
RCP アプリケーションの起動
  1. 数秒後、「RCP 製品 (RCP Product)」ウィンドウが開きます (図 4 を参照)。
図 4. Eclipse RCP メール
Eclipse RCP メール

これは、Eclipse のデフォルトの RCP メール・テンプレートで作成した RCP アプリケーションです。ここでは、このアプリケーションの作成方法については詳しく説明しません。詳しくは、RCP のマニュアルの『リソース』セクションを参照してください。

アプリケーションの移行

これで、この RCP メール・アプリケーションを Lotus Expeditor に移行する準備ができました。

  1. Eclipse の「ファイル」メニューで、「新規」-「プロジェクト」を選択します。
  2. ウィザードのダイアログ・ボックスで、「Client Services」を展開し、「プロジェクトを Client Services プロジェクトに変換」を選択します (図 5 を参照)。 メモ: Lotus Expeditor のリッチ・クライアント・アプリケーションの開発は、「Client Services プロジェクト」で行われます。
図 5. プロジェクトの変換
プロジェクトの変換
  1. 先ほどインポートしたリッチ・クライアント・プラグイン・プロジェクト org.eclipse.rcp.mail を選択し、これを com.ibm.expeditor.mail という別の Client Services プロジェクトに変換することを指定します (図 6 を参照)。
図 6. RCP メールの変換
RCP メールの変換
  1. 「ターゲット定義」ウィンドウでデフォルト・ターゲットを受け入れ、「完了」をクリックします。
  2. 「Package Explorer」ビューで (図 7 を参照)、新しいアイコンを使ってオリジナル・プロジェクトが装飾されます。これにより、このプロジェクトが Client Service プロジェクトとして識別されます。 Lotus Expeditor 用のアプリケーションを開発する場合は、すべてのアイテムが Client Service プロジェクトの下にまとめられます。このプロジェクトには Eclipse ネイチャー com.ibm.pvc.tools.bde.ExtensionServicesNature と、専用のビルダーとランチャーのセットがあります。
図 7. プロジェクト・ネイチャー
プロジェクト・ネイチャー
  1. プロジェクト com.ibm.expeditor.mail を選択して展開し、plugin.xml を選択し、ダブルクリックして開きます。
  2. plugin.xml タブを選択し、リスト 1 に示すコード・スニペットを <plugin> タグの直後にコピーします。 メモ: Lotus Expeditor ランタイムによって認識されるためには、Lotus Expeditor アプリケーションが WctApplication 拡張ポイントの登録と拡張を行う必要があります。ただし、この Lotus Expeditor アプリケーションが期待した RCP アプリケーションとは異なることに注意してください。実際、Lotus Expeditor アプリケーションは RCP パースペクティブをそのままミラーリングします (図 8 を参照)。

リスト 1. Lotus Expeditor アプリケーションの定義

<extension
                 id="com.ibm.expeditor.mail"
                 point="com.ibm.eswe.workbench.WctApplication">
         <Application
                         DisplayName="Expeditor Mail"
                         PerspectiveId="org.eclipse.rcp.mail.perspective">
        </Application>
</extension>
図 8. 拡張の定義
拡張の定義
  1. 「概要」タブに切り替え、右列の「テストする」で「Client Services アプリケーションを起動する」リンクをクリックします。
  2. 数秒後、パスワードを求めるウィンドウが表示されます (図 9 を参照)。Lotus Expeditor デスクトップ・クライアントのインストール時に選択したパスワードを入力します。
図 9. プラットフォームへのログイン
プラットフォームへのログイン
  1. ログイン後、ワークベンチ・ウィンドウが開いたら、「開く」をクリックするとドロップダウン・メニューが表示されます。変換したアプリケーション ExpeditorMail を選択します (図 10 を参照)。
図 10. アプリケーションの選択
アプリケーションの選択

これで、Lotus Expeditor のデフォルトのパーソナリティー設定を使用して、オリジナルの RCP メール・アプリケーションが Lotus Expeditor 内で稼働するようになります (図 11 を参照)。

図11. IBM Lotus Expeditor 内のメール・アプリケーション
図11. IBM Lotus Expeditor 内のメール・アプリケーション

まとめ

これで、Eclipse RCP アプリケーションを IBM Lotus Expeditor クライアントに正常に移行できました。おわかりのように、Lotus Expeditor ツールキットを利用すれば移行は単純にかつ簡単に実行できます。Lotus Expeditor プラットフォームの利点を十分に活用するには、セキュリティーなどの Lotus Expeditor 機能を利用したり、ニーズに合わせて Lotus Expeditor をカスタマイズおよびブランド化したりして、既存のアプリケーションを拡張することをお勧めします。Lotus Expeditor には、短期間で RCP アプリケーションを開発するための使いやすい機能やサービスが多数用意されています。


謝辞

この記事のレビューをしてくださった J. Christopher Hawley 氏と James Robbins 氏に感謝します。


ダウンロード

内容ファイル名サイズ
org.eclipse.rcp.mail.zip72KB
com.ibm.expeditor.mail.zip145KB

参考文献

学ぶために

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Lotus
ArticleID=341065
ArticleTitle=IBM Lotus Expeditorに、Eclipse RCP アプリケーションを移行する
publish-date=04242007