|
 |
ソフトウェア > Lotus > Lotus Developer Domain > 製品別技術情報 > Workplace Collaboration Services >
LDD Today
IBM Lotus Workplace 2.0 用のアプリケーション開発オプションを探る
|
 |
|
by Rohit Sahasrabudhe,(sahas@us.ibm.com),e-business Architect, IBM
レベル:初級
原文の掲載:2004年11月29日
Lotus Workplace Products API Toolkit のカスタマイズ用オプションについて理解しましょう。この Toolkit は、Lotus Workplace Messaging とインスタントメッセージングに使用できるパブリック API と SPI、JSP タグ、および Collaborative Application Component Interface を提供します。また、Workplace Builder についても簡単に見ていくことにします。
2003 年末、IBM は Lotus Workplace 製品のリリース 1.1 を出荷しました。リリース 1.1 では、メッセージング、Web 会議、インスタントメッセージング、オンライン学習など、Lotus の特長として知られるほとんどのコラボレーション機能が提供されています。Lotus Workplace は、組織やユーザーのニーズに合わせてカスタマイズすることが可能です。Lotus Workplace 製品のリリース 2.0 では IBM Lotus Workplace Products API Toolkit が導入され、Lotus Workplace をさらに詳細にカスタマイズできるようになりました。Lotus Workplace Products API Toolkit は Lotus Workplace 製品の飛躍的な進化を意味します。この Toolkit を用いると、コンポーネントを作成して JSP タグを使用することにより、既存の J2EE アプリケーションにコラボレーション機能を追加できます。また、Toolkit によって、Lotus の特長として知られるコラボレーション機能を活用し、標準ベースの J2EE アプリケーションを構築できます。
この記事では、Lotus Workplace 2.0 製品群で開発者が利用できるアプリケーション開発オプションを紹介します。Lotus Workplace Product API Toolkit 1.0 は Lotus Workplace システムに拡張機能を提供します。また、Lotus Workplace 2.0 には画期的な Web ベースのツールである Workplace Builder が導入され、これを使用してテンプレートを作成できます (Workplace Builder とテンプレートについては、後で詳しく解説します)。
この記事は、Lotus Workplace 2.0 製品の開発機能について、より多くのことを知りたいアプリケーション開発者を対象としています。Java プログラミングと WebSphere Portal の開発経験があると内容の理解に役立ちますが、必須ではありません。
最初に、IBM Lotus Workplace とは何かについて見ていきましょう。Lotus Workplace のアーキテクチャーを詳細に解説するリソースはありますが、この記事では、アプリケーション開発オプションを理解する上で基本となる背景のアーキテクチャーについて、その概要を説明します。
IBM Lotus Workplace は、統合されたコラボレーション製品群で、Lotus Workplace Messaging、Lotus Workplace Team Collaboration、Lotus Workplace Collaborative Learning、および Lotus Workplace Documents で構成されています。IBM Workplace Client Technology として知られるサーバー管理クライアントは、さまざまな種類のユーザーに、Lotus Workplace Messaging と Lotus Workplace Documents の機能をセキュアで動的な作業環境として提供します。
Lotus Workplace は、WebSphere Applications Server 上に積み上げられたコンポーネント群に基づく標準ベースのプラットフォームを採用しています。ベースの WebSphere Application Server 上には、WebSphere Portal によって統合機能がもたらされます。基本的に、Lotus Workplace 製品群は、インフラストラクチャー・コンポーネントと、WebSphere Portal 上で実行されるユーザーサイドのポートレットを組み合わせたものです。ポートレットと WebSphere Portal の詳細については、この記事の「リソース」セクションを参照してください。
アプリケーション開発オプションに関しては、Lotus Workplace 開発者は、インフラストラクチャー・レベルとユーザー・インターフェースでの拡張を利用できます。インフラストラクチャーは主に EJB を使用して構築され、Toolkit の最初のリリースでは、このレイヤーへのフックが提供されました。Toolkit の次のリリースでは、開発者に Service レイヤーへのアクセスを可能にすることで、インフラストラクチャーとのより緊密な統合がもたらされる予定です。ユーザー・インターフェースの面では、Lotus Workplace 環境により強く統合するため 2 つの JSP タグが Toolkit によって提供されています。また、メールやインスタントメッセージングなどのシステム拡張にアクセスする 2 つの Service Provider Interface (SPI) もあります。
Toolkit の最初のリリースにおける 4 つの主な構成要素について簡単に説明します。詳細については、この記事の後半で解説します。最初のリリースには、次のパブリック API (Application Programming Interface) と SPI (Service Provider Interface) が含まれています。
- IBM Lotus Workplace Mail Messaging SPI
システムに送受信されるメールメッセージをインターセプトできます。
- IBM Lotus Workplace Instant Messaging SPI
システム内を流れるインスタントメッセージングをキャプチャーできます。
- Two JSP Tag
JSP に在席確認を追加できます。
- Collaborative Application Component Interface (CACI)
独自のビジネス・コンポーネントを構築できます (次のセクションで解説)。
Lotus Workplace Products API Toolkit は、新しいポートレットまたはビジネス・コンポーネントを使用して Lotus Workplace プラットフォームを拡張する開発者向けに設計されています。Toolkit は、いくつかのパブリック API と SPI を Java で提供することによりこれを可能にします。Lotus Workplace のパブリック API は、基礎となる WebSphere Application Server および WebSphere Portal プラットフォームによって提供されるパブリック API (この Toolkit には含まれません) を補足します。これらの基礎となるプラットフォームの詳細については、「リソース」セクションを参照してください。
Lotus Workplace Products API Toolkit の目的は、J2EE プログラミング・モデルを使用して、ビジネス・コンポーネント、ポートレット、および他のコンポーネントの構築を可能にすることです。Lotus Workplace のビジネス・コンポーネントは、ミニ・アプリケーションと考えることができます。このコンポーネントはビジネス機能を提供しますが、必ずしも完全なアプリケーションではありません。たとえば、ビジネス・コンポーネントの例として、受信ボックスやアドレス帳が挙げられます。ビジネス・コンポーネント (受信ボックスやアドレス帳など) をメール・インフラストラクチャーと組み合わせることにより、完成されたメール・アプリケーションが得られます。
Lotus Workplace Products API Toolkit は、WebSphere Studio Application Developer などの J2EE 開発環境と共に使用できます。Toolkit のマニュアルには、WebSphere Studio Application Developer を使用して Toolkit に含まれるサンプル・コードを作成する方法が記載されています。これらのサンプルの作成方法を手順ごとに示すチュートリアルも、まもなく提供される予定です。
それでは、API と SPI をもう少し詳しく見ていきましょう。SPI は Lotus Workplace Extension サービス、つまり、最初のリリースに含まれるメールおよびインスタントメッセージング拡張へのフックを提供します。
IBM Lotus Workplace Mail Messaging SPI
IBM Lotus Workplace Mail Messaging SPI には、Lotus Workplace Messaging メールサービスへの拡張が含まれています。これらのメールサービス拡張は、ハンドラーおよびデリバラーと呼ばれる 2つの 特定のインターフェースのいずれかに適合する Java クラス形式になっています。この Java SPI を使用すると、配信前のメッセージをインターセプトし、リダイレクトやメッセージ内容の変更を行うメールメッセージ・ハンドラーを構築できます。メッセージ・ハンドラーは、ウイルス・スキャン、アクティブなコンテンツ・フィルタリング、スパム・フィルタリング、または希望する他のフィルタリング操作を実行できます。Toolkit に含まれるサンプルは、簡単なウイルス・スキャン用のアプリケーションの作成例を示します。
| メモ: | サンプルでは、メールメッセージを抽出してウイルス・スキャン用のアプリケーションに渡す方法が示されています。ウイルス・スキャン用のアプリケーション自体は、サンプルには含まれません。 |
|
ハンドラー拡張は、メールサービスを通過する任意のメッセージのエンベロープとコンテンツを調べることができます。そして、データを追加または削除することにより、メッセージのコンテンツを変更できます。また、ハンドラーはメールを拒否して、配信されないようにすることもできます。デリバラー拡張は、メッセージの配信先のフォルダを変更できます。ハンドラー拡張とデリバラー拡張は、Lotus Workplace Messaging のプロパティ・ファイル workplace.properties に登録することで、Lotus Workplace Messaging サーバーによって認識されます。
これらの Java クラスとメール処理インターフェースの詳細は、Toolkit に含まれる Javadoc に記載されています。
IBM Lotus Workplace Instant Messaging SPI
IBM Lotus Workplace Instant Messaging SPI は、インスタントメッセージング・ハンドラーを構築するために使用されます。このハンドラーは、受信者に届けられる前のインスタントメッセージをインターセプトすることができます。この Java SPI を使用すると、Lotus Workplace Team Collaboration 2.0 でインスタントメッセージングをブロックまたは変更できます。この SPI の最も一般的な使用方法はチャットのロギングですが、メッセージの翻訳など、他のタスクにも使用できます。この SPI を使用するアプリケーションは、WebSphere Portal 上のサーブレットとして導入できます。Toolkit に含まれるサンプルでは、この SPI を使用して簡単なチャット・ロギング用のアプリケーションを作成する方法が詳しく説明されています。
Instant Messaging SPI は、Lotus Workplace Team Collaboration 2.0 の在席確認サービスとインスタントメッセージング・サービスの一部です。この SPI には、Lotus Workplace 2.0 を構成する 3 つのサーバーの 1 つである WebSphere Portal 上にインストールされたサーブレットを介してアクセスできます。
Instant Messaging SPI には、次のクラスがあります。
- MessagingListener
このインターフェースは、Session Initiation Protocol (SIP) サーバーを通過する各メッセージのイベントを受け取ります。
- MessagingService
このインターフェースは、すべての MessagingListener インスタンスを管理するために使用されます。
- MessagingServiceFactory
このクラスは、MessagingService オブジェクトのインスタンスを取得するために使用されます。
- Contact
このクラスは SIP コンタクトを表します。メッセージの送信先の連絡先を調べるために使用されます。
API と SPI 以外にも、Toolkit には2 つの JSP (Java Server Pages) タグがあります。Lotus Workplace 用のこれらのタグはコンポーネントの 1 つのタイプで、Lotus Workplace 用のポートレットにコラボレーション用の機能を追加します。このリリースの Toolkit では、次のカスタム JSP タグを使用できます。Toolkit のマニュアルでは、Lotus Workplace に含まれる JSP タグについてのみ解説されています。
Person タグ
このタグは、アプリケーションにユーザーの在席確認を追加するために使用されます。Person タグによって、指定されたユーザーに関連する、状況に応じたコラボレーション機能がもたらされます。このタグを使用すると、メールの送信、チャットの開始、ユーザー情報の表示といったコラボレーション操作を含むリンク・メニューを生成できます。このタグを配置するだけで、プレーンテキストのユーザー名を「ライブ名」に変換する機能が得られます。ユーザー名を表す静的テキストに Person タグを追加するとリンクが生成され、リンクをクリックすると、そのユーザーとコミュニケーションするためのオプションが表示されます。もちろん、ユーザー名をライブ名として変換するためには、そのユーザーがいずれかのクライアントを使用して Instant Messaging サーバーに接続していなければなりません。ユーザーがオフラインのときは、ユーザー名はプレーンな静的テキストとして表示されます。このタグによって、単純ながらも強力な機能が得られます。
ライブ名をクリックしたときに表示されるコミュニケーション・オプションを図 1 に示します。
図 1. Person タグで利用できるコミュニケーション・オプション

WebSphere Portal には、ユーザーが IBM Lotus Instant Messaging/Web Conferencing (Sametime) サーバーに接続しているときに、そのユーザーのライブ名を WebSphere Portal 内に追加できる Person タグが初めて導入されました。Lotus Workplace の Person タグを使用すると、Lotus Workplace 上の Instant Messaging サーバーに接続できます。IBM Lotus Instant Messaging/Web Conferencing (Sametime) サーバーからのユーザーを Person タグを介して Lotus Workplace で利用可能するには、管理者に Lotus Instant Messaging Gateway が必要です。このゲートウェイによって、Lotus Instant Messaging/Web Conferencing のユーザーと Lotus Workplace のユーザーがインスタントメッセージングを使用して相互に通信することができます。
Toolkit のマニュアルでは、Lotus Workplace 2.0 と共に使用するためにこのタグに加えられた変更内容が詳細に説明されています。Person タグとその機能の詳細については、「IBM WebSphere Portal InfoCenter(US)」で提供されているマニュアルを参照してください。
Online Center タグ
Online Center タグは、ユーザーの在席確認を提供するために必要です。在席確認は、すでに Lotus Workplace のテーマでページの一番上に埋め込まれていますが、ポップアップ・ウィンドウにポートレットを作成する場合は、ページで在席確認を提供するためにこのタグが必要となります。ポップアップ・ウィンドウでは、Online Center タグを使用しない限り、Person タグでは在席確認を得られません。Person タグは、ユーザーが Instant Messaging サーバーにログインしているかどうかをチェックする機能を持ちますが、Instant Messaging サーバーへは接続しません。Online Center タグは Instant Messaging サーバーへの接続を開始し、CSEnvironment オブジェクトにログイン情報を生成します。(これらのオブジェクトは、WebSphere Portal の Person タグのオリジナル・リリースで提供される Collaborative Services の一部です。)基本的に、Person タグは CSEnvironment オブジェクトを使用してユーザーのログイン情報をチェックします。 Online Center からは、接続状況の「応答可」、「離席中」、「応答不可」を変更できます。ポートレットにユーザーと在席確認を取り込むには、これらの JSP タグを使用します。
接続状況オプションの例を図 2 に示します。
図 2. Online Center タグで利用できる接続状況オプション
Collaborative Application Component Interface (CACI) を使用すると、Lotus Workplace のコラボレーション・インフラストラクチャーに組み込むビジネス・コンポーネントを構築できます。Lotus Workplace はこれらの Java インターフェースを使用して、開発者が作成したコンポーネントとやり取りを行います。これらのインターフェースは、コラボレーション用のアプリケーション・コンポーネントのステートレスセッション EJB に実装します。Lotus Workplace Products API Toolkit には、Collaborative Application Component Interface を実装したコラボレーション用のアプリケーション・コンポーネント EJB を持つビジネス・コンポーネントのサンプルが含まれています。
Collaborative Application Component Interface を使用すると、Lotus Workplace はコンポーネントの次の状況を管理できます。
- Lifecycle
コンポーネントに対し、コンポーネントを含むアプリケーションが作成または廃棄されたことを通知します。あるいは、コンポーネントがテンプレートに追加、または削除されたことを通知します。アプリケーションの実行中に、必要な任意のリソースをコンポーネントが作成または廃棄できるようになります。
- Membership
コンポーネントに対し、コミュニティのロールにメンバーが追加または削除されたことを通知するために使用されます。コンポーネントは、管理するリソースにメンバー権限を付与または削除できるようになります。
- Templatable
アプリケーション・テンプレートでコンポーネントを使用可能にする情報を得るために使用します。これには、ユーザーがコンポーネントを含む新しいアプリケーションを作成するときに指定しなければならないパラメータも含まれます。
- Sensor
コンポーネントによって管理されるリソースに関する情報 (たとえば、ディスクスペースの使用度など) を取得するために使用します。たとえば、この情報は、Lotus Workplace アプリケーションに制限値を適用するときなどに使用されます。
- Transactional
コンポーネントの Lifecycle メソッドと Membership メソッドがグローバル・トランザクションをサポートするかどうかを判断するために使用します。
これらのインターフェースは、いずれも、Lotus Workplace アプリケーション・コンポーネントの作成に必須ではありません。必要なものだけ使用してください。
IBM Lotus Workplace Team Collaboration には Lotus Workplace Builder が含まれています。Lotus Workplace Builder は、アプリケーション開発者ではなく、ビジネス・アナリスト、アプリケーション管理者、および設計者など、いわゆる業務部門 (line-of-business) ユーザー向けのアセンブリ・ツールです。ビジネスモデルとプロセスを知るユーザーは、アプリケーション開発の経験がなくても、Workplace Builder を使用して Lotus Workplace で用いるコラボレーション用のコンポーネントおよびフォームを作成できます。
Workplace Builder を使用すると、業務部門ユーザーは Lotus Workplace アプリケーションおよびフォーム用のテンプレートを作成し、管理できます。これらのテンプレートから、ユーザーはアプリケーションを作成でき、新しいアプリケーションは、コンポーネントの再利用のためテンプレートとして保存できます。Workplace Template Library は、Lotus Workplace Team Collaboation と共に出荷されるいくつかの標準アプリケーション・テンプレートを提供します。これには、ディスカッションフォーラム、チャットルーム、文書ライブラリなどがあります。ユーザーは、ニーズに合わせて標準テンプレートをカスタマイズしたり、新規のテンプレートを作成することができます。
図 3. Workplace Template Library

Lotus Workplace アプリケーションのページにあるフォーム・ビューアを使用すると、アプリケーション・ユーザーはフォームを編集し、送信できます。Workplace Builder には、次のコンポーネントがあります。
- Workplace Template Library
Template Editor (Template Owner を含む) が表示および操作できるテンプレートのリストを表示します (図 3 参照)。
- Template editor
Lotus Workplace アプリケーション (プロパティ、パラメータ、ページとレイアウト、およびロール) 用のテンプレートを維持するためのポートレットのセットを表示します。
- Application editor
特定の Lotus Workplace アプリケーション (プロパティ、ページとレイアウト、およびロール) を維持するためのポートレットのセットを表示します。
- Form Template Library
Lotus Workplace 管理者が表示および操作できるフォーム用のテンプレートのリストを表示します。
| メモ: | Lotus Workplace 2.0 では、Form Template Library と Form Viewer ポートレットを含む Lotus Workplace フォームは、テクニカルプリビューとして提供されます。 |
|
Workplace Builder の使い方をより詳しく知りたいときは、developerWorks のチュートリアル『Customize Lotus Workplace: Using the Workplace Builder(US)』をお試しください。
この記事では、Lotus Workplace 2.0 製品群で使用できるアプリケーション開発オプションの概要を紹介しました。現在、この記事の執筆者は、Lotus Workplace Products API Toolkit 1.0 の一部として、API と SPI の使い方を手順ごとに説明するチュートリアルを作成しています。また、世界各地の IBM Innovation Center(US) では、2日コースのハンズオン・ワークショップが開催されます。このワークショップでは、Lotus Workplace 2.0 でのアプリケーション開発の詳細を学習できます。

筆者について(原文のまま)
Rohit Sahasrabudhe is an e-business Architect for IBM Developer Relations Technical Consulting in Austin, Texas. Rohit is an IBM Certified for e-business Solution Designer, a Solution Technologist, and a Red Hat Certified Engineer. He holds a BS from the University of Louisville in Engineering in Math and Computer Science. He did three co-ops, including one in Germany, before joining IBM in 2000. He joined IBM as a Software Engineer, working on Lotus Domino Solutions. He is always working on improving his WebSphere skills and is looking forward to traveling around the world, consulting, and teaching courses. You can contact Rohit at sahas@us.ibm.com.
|
 |
|
|
|