レベル: 初級 小野 充志 (onoat@jp.ibm.com), WPLC&PvCソリューション開発 / ソフトウェア開発研究所, IBM 祖父江 達也 (sobue@jp.ibm.com), WPLC&PvCソリューション開発 / ソフトウェア開発研究所 , IBM
2007年 2月 09日 IBMはWorkplace Client Technologyという企業向けリッチクライアント・テクノロジーをベースに、既にWED (WebSphere Everyplace Deployment) やWMC (Workplace Managed Client)といった次世代のクライアント製品を続々と世に送り出してきています。本稿で紹介するIBM Lotus Expeditor 6.1(以下、Lotus Expeditor)はWMCの機能も取り込んだWED 6.0の後継製品にあたり、企業向けのリッチクライアント・アプリケーションのためのプラットフォームを提供します。また、Lotus Expeditor 6.1で提供されるコンポーネントは、既に発表されているIBM Lotus Sametime7.5やこれから発表される次世代Notesクライアント(Hannover) のベース・プラットフォームの一部にもなっています(図1)。このようにIBMのリッチクライアント・ミドルウェアの基盤が1つに統合されたことにより、例えば、Lotus Expeditor 6.1用に開発されたユーザー・インターフェース (UI) やコンポーネント、さらにはアプリケーションを、Sametime7.5やHannoverなどベース・テクノロジーを共有する他のクライアント製品と、容易に共有・連携させることが可能となりました。本稿ではこのLotus Expeditorの概要について紹介します。
図1 IBMが提供するリッチクライアント・ミドルウェアの位置づけ
Lotus Expeditorの概要
先に述べたように、Lotus Expeditor 6.1はWED 6.0の後継製品で、企業向けのリッチクライアント・アプリケーションのためのプラットフォームです。一般に、リッチクライアントは大きく2種類に分類されます。1つ目は、ユーザー・インターフェースとしてブラウザーを用いるもので、AJAXなどブラウザーが最初から提供している標準的な技術のみを用いるものと、追加インストールが必要なプラグインを用いるものがあり、どちらもブラウザー上でダイナミックなユーザー・インターフェースを実現します。2つ目がクライアント上にアプリケーション実行プラットフォームをインストールし、その上で種々のアプリケーションを動作させるもので、ブラウザー・ベースのものよりも、より豊かな表現や高い操作性、自由度の高いアプリケーション構築環境を提供します。Lotus Expeditorが提供するリッチクライアントとは後者を指しており、次のような特徴があります。(リッチクライアントの詳細については、WEDやWMCのページを参考にしてください。)
- サーバーとの通信機能を持っている
- 豊かな表現力、高い操作性を提供できる
- アプリケーションの配布をサーバー側で管理できる (ランタイムの配布を除く)
- オフラインで使用可能
これらの特徴を踏まえた上で、Louts Expeditorのクライアント・アーキテクチャーについて説明します。
Eclipse RCP
Lotus Expeditor Clientは、オープンなプラットフォームであるEclipse RCP (Rich Client Platform) をベースとして構築されています。Eclipseとは元々はJavaをベースとしたオープンソースの統合プログラム開発環境です。オープンソースである、多くの優れた機能が提供されている、プラグイン構造と拡張ポイントにより高い拡張性を持つ、といった特徴から既に多くのユーザーを獲得しています。Eclipse RCPは、Eclipseの優れた環境を開発環境だけでなく、アプリケーション実行環境としても活用することを目指したものです。具体的には、Eclipse全体から、プログラム開発環境特有の機能を除いた構成となっています。(図2)
図2 Eclipse RCP
Eclipse RCPを基本構造としたことにより、Lotus Expeditor Client上で動くアプリケーションは、Eclipseのプラグインの形を取ります。そのため、Lotus Expeditor Client向けのアプリケーションの開発作業は基本的に従来のEclipse向けプラグイン開発そのものであり、Eclipseコミュニティに属する多くの開発者は、容易にLotus Expeditor Client用のアプリケーションを開発することが可能です。
Lotus Expeditor独自の拡張
Lotus Expeditor Clientは、ベースとなるEclipse RCP上に種々のコンポーネントを追加搭載した構成となっており(図3)、これによって先に述べた4つの特徴が実現されています。
図3 Lotus Expeditorのクライアント・アーキテクチャー (* 図はfor Desktopの構成。for Deviceでは若干異なる。)
拡張部分のもう少し細かい機能レベルでの構成は以下のようになります(図4)。
図4 Lotus Expeditorの機能レベルのアーキテクチャー構成
サーバーとの通信機能
サーバーとの通信機能としては、クライアント・ローカル環境に存在するリレーショナルDB (DB2eあるいはCloudscape) とサーバー・サイドのデータベースとの間で、データの同期機能が提供されています。メッセージング機能も提供されており (MQe)、サーバー・サイドに構築されたエンタープライズ・アプリケーションとの間で、トランザクション処理を実現することが可能です。また、Webサービスの利用/提供もサポートされており、Lotus Expeditor Clientをリッチなユーザー・インターフェースを有するSOAのフロントエンドとして利用することも可能にしています。
Lotus Expeditor Clientに組み込まれたこれらの機能は、サーバーとの通信機能を提供するだけでなく、クライアント・ローカルで用いることにより、オフラインでのアプリケーションの利用を可能とします。
豊かな表現力、高い操作性
Lotus Expeditor Clientでは、アプリケーションを開発する際にEclipse向けに用意されているさまざまなユーザー・インタラクション機能が利用可能です。具体的には、SWTとして提供される各種ウイジェットや、JFaceとして提供されるダイアログやウィザードなど、より複雑なユーザー・インターフェース (UI) を構成するためのコンポーネントを利用することが可能です。これにより、ネイティブ・アプリケーションと比べて遜色のないルック&フィールを持つアプリケーションを簡単に開発することができます。更には、テーマやブランディング、パーソナリティと言った、UI全体のトーンをカスタマイズする機能、リッチ・テキスト・エディタ、ポートレット・ビューアー、組込みブラウザーなどのユーティリティなど、UIに関するさまざまな機能も提供されます。
図5 Lotus Expeditor Clientの基本画面構成
サーバーからのアプリケーション管理
Lotus Expeditorでは、クライアントをサーバー管理下に置くことが可能であることが大きな特徴のひとつとなっています。これにより管理者は、アプリケーションのインストール、更新、アンインストールといったライフサイクル管理や、設定情報や構成情報の取得、設定と言った管理を、多数のクライアントに対してサーバー側から一括して行なうことができ、TCOの低減が可能となります。
Lotus Expeditorで利用可能なサーバーによるクライアント管理には、以下の2つの方法があります。
- Expeditorサーバーによる管理
- Portalサーバーによる管理
Expeditorサーバーによる管理を用いると、管理者は管理コンソールから各種クライアント管理ジョブを発行することが可能になります。発行可能なジョブには、アプリケーションのライフサイクル管理を行なうものや、設定の変更を行なうもの、クライアントのインベントリを取得するものなどがあります。これらのジョブは、個々のクライアント単位あるいはグループ単位で実行可能です。この方法による管理は通常エンドユーザーが意識することなく行なわれ、また管理ジョブの完了状況も確認可能なため、管理者主導の厳密な管理に向いています。
Portalサーバーによる管理を用いると、管理者はPortalサーバーを利用して、クライアント上で動くアプリケーションの画面レイアウトまでを含めた管理を行なうことができます。管理の単位は個々のクライアント単位ではなく、Portalサーバー上で定義されるロール・ベースとなります。この方法による管理は、新しいアプリケーションのインストールなどをある程度エンドユーザーが意識して選択的に実施できるため、比較的緩やかな管理となります。
この2つの管理方法は、それぞれExpeditorの元となった2つの製品であるWEDとWMCから引き継がれたものであり、これらの製品を既にお使いのお客様は、それぞれ従来同様のクライアント管理を行なうことが可能です。
オフラインでの使用
オフラインでのクライアントの動作を可能にするためのコンポーネントとしては、Webコンテナーやトランザクション・コンテナー、Portletコンテナーが提供されています。これらのコンテナーは従来、サーバー・マシン上で動作するアプリケーション・サーバーにより提供されている機能です。これらのコンテナー上で、Webアプリケーション、EJBロジック、Portletアプリケーションと言ったプログラムを動作させ、それを、ネットワークを通じてWebブラウザーでアクセスし利用する、といった使い方が従来の利用方法です。この方法は、ブラウザーさえあればどこからでも利用可能といった柔軟性を持つ反面、ネットワークに接続してオンラインになっていないと利用できないという欠点もありました。Lotus Expeditor Clientでは、これらの各種コンテナーをクライアント上でも提供することにより、従来サーバー上で動作させていたWebアプリケーション、EJBロジック、Portletアプリケーションをクライアント上で実行することが可能となりました。その結果、オフライン時でも、オンライン時と同様のアプリケーションを利用することができます。
図6 クライアント上でのWebアプリケーション・プログラミング・モデル
これらのアプリケーションはサーバー上でJ2EEのプログラミング・モデルであるMVC (Model-View-Controller) モデルに基づいて開発されています。Lotus Expeditor Clientではこのモデルをそのまま利用可能なことから、既に広く普及しているJ2EEの開発者は、それまでの知識を利用してLotus Expeditor Client向けのアプリケーションを簡単に開発することが可能です。
コンポジット・アプリケーション
これまでご紹介してきたものも含めて、Lotus Expeditor Client上ではさまざまなタイプのアプリケーションを実行することが可能です。
- SWTやJFaceを利用したRich アプリケーション
- Portletコンテナー上で動作し、ブラウザーからアクセスするPortletアプリケーション
- Webコンテナー上で動作し、ブラウザーからアクセスするWebアプリケーション
- VisualBasicなどで開発されたネイティブ・アプリケーション
- Swingなどを利用したJavaアプリケーション
これらのアプリケーションはそれぞれ単独でLotus Expeditor Client上で実行することも可能ですが、それらを統合して、更に上位の1つのアプリケーションとして動作させることも可能です。このように統合されたアプリケーションをコンポジット・アプリケーションと呼びます。コンポジット・アプリケーションでは、単純に単一画面上に複数アプリケーションがレイアウトされるのみでなく、アプリケーション間のダイナミックなデータ連携もサポートされています。
図7 コンポジット・アプリケーションの例
Lotus Expeditor 6.1の製品ラインアップ
Lotus Expeditorは以下の3つの主製品と1つの拡張パッケージから構成されています。
Lotus Expeditor 6.1 Client
Lotus Expeditorのリッチクライアント・プラットフォームを提供するクライアント・ソフトウェアです。Laptop、Desktop 向けの「Lotus Expeditor Client for Desktop」と、モバイル端末やPOS端末などのデバイス向けの「Lotus Expeditor Client for Device」の2種類があります。WebサービスやSyncMLのサポート、MQeやDB2e・Cloudscapeの搭載、WebコンテナーやPortalコンテナーの搭載(Portalコンテナーはfor Desktopのみ)、サーバーからのアプリケーション配信のためのエージェント、ユーザーがソフトウェアを更新するためのUpdate Managerなど、エンタープライズ・リッチクライアント・プラットフォームに必要なさまざまな機能を提供します。(図4)
Lotus Expeditor 6.1 Server
Lotus Expeditor Clientへのアプリケーション配信、Lotus Expeditor Clientが持つMQeとサーバー側のメッセージング・アプリケーションとのトランザクションの管理、Lotus Expeditor Clientが持つDB2e・Cloudscapeデータベースとサーバー側のデータベースとのデータ同期、といった機能を提供するサーバー・ソフトウェアです。(図4)
ここに挙げた機能が必要ないという場合には、Lotus Expeditor Serverは必須ではありません。アプリケーション管理については、先に述べたようにPortalサーバーを用いてアプリケーション管理することも可能ですし、独自にアプリケーションを配布してLotus Expeditor Client単体で使用していただくことも可能ですが、サーバー側から自動でアプリケーションの配信をしたい場合にはLotus Expeditor Serverを使用する必要があります。
Lotus Expeditor 6.1 Toolkit
Lotus Expeditor上で動作するアプリケーションを作成するためのToolkitです。開発に必要なコンポーネントをEclipse Plug-inとして提供します。EclipseやRational Application Developer(RAD)などのお手持ちの開発環境にToolkitをインストールすると、Lotus Expeditorアプリケーション開発に必要な環境設定を自動設定できるようになったり、アプリケーション開発のための新しいウィザードが提供されたりします。また、テスト環境としてLotus Expeditor Clientのコンポーネントが含まれているため、Lotus Expeditor Clientをインストールしていなくても作成したアプリケーションをテストすることが可能です。
Lotus Expeditor Toolkitをインストールしていなくても、代わりにLotus Expeditor Clientがインストールされた環境であれば、EclipseやRADなどの開発環境にJREの設定やターゲット・プラットフォームの設定などをすべて手動で行うことでLotus Expeditorアプリケーションの開発を行うことは可能です。しかし、自動環境設定機能やアプリケーション開発ウィザードが行ってくれていた部分をすべて手動で行わなければならないため、手間も開発の難易度も高くなってしまいます。アプリケーション開発にはLotus Expeditor Toolkitの使用をお勧めします。
IBM Device Runtime Environment
ラップトップまたはデスクトップにおいて、サーバー・サイドのユーザー・インターフェース(JSP, JSFなど)をローカルのJ2SE Runtime Environmentにホスティングする機能を提供します。Lotus Expeditor 6.1 ClientおよびLotus Expeditor 6.1 ToolkitにはJavaラインタイム環境としてjclDesktopと呼ばれるコンフィグレーションのみが組み込まれていますが、追加でこのIBM Device Runtime Environmentをインストールすることで、新たにJavaのランタイム環境としてJ2SE 1.5を使用することができるようになります。
まとめ
本稿ではLotus Expeditorの概要を説明しました。Lotus Expeditorが提供する各種機能や特徴をご理解いただけたものと思います。今回ご紹介した機能は、Lotus Expeditorの持つ機能の一部に過ぎません。他にもここでは紹介しきれないほど沢山の機能をプラットフォームとして持ち合わせていますので、さまざまなタイプのアプリケーションを提供することが可能です。そのアプリケーションを開発する際には、Eclipseのプラグインを開発した経験や知識、J2EEのプログラミングを行なった経験や知識が活用できます。思ったよりもLotus Expeditor用のアプリケーション開発は簡単かもしれない、と感じていただけましたでしょうか? Lotus Expeditorはあくまでリッチクライアントのプラットフォームですので、アプリケーションがないと威力を発揮しません。まずは皆様に興味を持っていただいて、「こんなアプリケーションがあると便利」、「こういう使い方もできる」というアイデアを持っていただければ幸いです。いろんなアプリケーションのアイデアを持ち寄れば、Lotus Expeditorがプラットフォームとして威力を発揮し、実現のお役に立つこと間違いなしです。
次回は、Lotus Expeditor Toolkitを使用して、Lotus Expeditor Client上で動作するアプリケーションを開発する手順についてご紹介します。
参考文献
著者について  | |  | 筆者は2003年入社後、ソフトウェア開発研究所・PvC開発に配属、主にPvC製品のサービス・プロジェクトに従事し、Expeditorの前身であるWCTMEを使用したプロジェクトなどに携わってきました。昨年9月Workplaceプロジェクト配属となり、Workplace FormsやLotus Expeditorなどを初めとしたWorkplace製品に携わり始めたばかりの新米です。現在、Workplace 製品のアプリケーションの開発に取り組んでいる ISV/BP様に対する技術支援を行っています。趣味はサッカーで、週末によくフットサルなどをやります。ポジションはキーパー以外お断りです。先日2ヵ月ぶりくらいにちょっとレベルが高めのフットサルの大会に参加したところ、キーパーしかやっていないのに翌日から筋肉痛が3日も続き、あまりの体の衰えにショックを受けてジムに通おうかと悩み始めた今日この頃です。 |
 | |  | 著者は日本アイ・ビー・エムのソフトウェア開発研究所に勤務。日本アイ・ビー・エムに入社後、長らくOS/2関連の仕事に関わり、その後はさまざまな製品の開発やお客様案件を経て、現在はLotus Expeditorの技術支援を行なっています。家庭生活では男の子3人、女の子1人の子沢山。日々さまざまな問題を起こしてくれる子供たちに振り回される毎日を送っています。今の「投資」が報われる未来が訪れる日は、いつかは来るのだろうか・・・。 |
記事の評価
|