本文へジャンプ

ソフトウェア Lotus Lotus Developer Domain 製品別技術情報 Lotus Sametime > 
   
 

IBM Lotus Sametime Connect 7.5の拡張

   
   
 
コンテンツ
古きを捨て、新しきを得る
Lotus Sametime Connectを拡張する理由
Lotus Sametime Connect UIの拡張
Lotus Sametime Connectアーキテクチャーの概要
Lotus Sametime Connect SDKのサンプル・プラグイン
その他のSDKサンプル
まとめ
リソース
筆者について(原文のまま)
アンケートにご協力ください
Dan Kehn, Senior Software Engineer, IBM
Lori Ott, BP Technical Enablement Specialist, IBM

レベル:中級
原文の掲載:2006年8月8日
原文はこちら (US)

この記事では、Lotus Sametime Connect Software Development Kit (SDK)を使用したIBM Lotus Sametime 7.5のプラグイン開発について紹介します。EclipseおよびIBM WebSphere Everyplace Deploymentをベースとする新しいSametimeアーキテクチャーについて見ていきます。Lotus Sametime 7.5で使用できるサンプル・プラグインを参照してください。

developerWorksの記事『IBM Lotus Sametime 7.5の新機能とテクノロジーの紹介』では、Lotus Sametime 7.5の新しい機能とユーザー・インターフェースについて紹介しましたが、製品の機能の拡張可能性については簡単に触れただけでした。この記事では、上記の記事で説明されなかった項目を取り上げ、開発者がIBM Lotus Sametime Connect Software Development Kit (SDK)を使用してユーザー・コミュニティーに導入できる拡張の種類について紹介します。

Lotus Sametime Connect 7.5が持つ重要な価値の1つに、サード・パーティー開発者がEclipseベースのプラグインを使用して、この製品の機能を拡張できる点が挙げられます。Lotus Sametime Connect 7.5は、クライアントの拡張に必要なAPIを文書化するSDKを備えています。その際、Eclipse Rich Clientアプリケーションのプラグイン開発モデルが使用されます。このSDKに含まれている「Lotus Sametime Connect Integration Guide」で、複数のサンプル・プラグインの実装について説明しています。これらのプラグインを開始点として、より複雑なプラグインを作成できます。開発者は、Eclipse(以下にリンク先あり)などの基本的な統合開発環境(IDE)や、より高度な IBM Rational Application Developer(US) などのIDEを使用して、これらのプラグインのソース・コードを確認して変更することができます。

: 以前に開発経験があれば(特にEclipseを使用した開発経験)、ここで説明するトピックの内容を理解するのに役立ちますが、必須ではありません。このシリーズの次回の記事では、Eclipseプラグインの開発経験を持つプログラマー向けに、Lotus Sametime Connectの拡張に必要なプログラミング手順を取り上げます。

Eclipse(US) はこちら

この記事では新しいLotus Sametimeアーキテクチャーを紹介し、Lotus Sametime 7.5でのアプリケーション開発についての概要と、Lotus Sametime Connect 7.5に付属するサンプル・プラグインについて説明します。


古きを捨て、新しきを得る

IBM Lotus Sametime Connect 7.5は市場をリードする製品であり、リアルタイム・コラボレーションのためのプラットフォームです。Lotus Sametimeは、在席確認、インスタント・メッセージ、Web会議などの機能を提供し、ユーザーが実際にいる場所に関係なくリアルタイム・コラボレーションを可能にします。Sametime 7.5には、次のような多数の新機能が用意されています。

  • 大幅に向上したユーザー・インターフェース
  • ロケーションの認識、「会議中」ステータス、選択可能な「応答不可」ステータスなどの在席確認の新機能
  • MacintoshユーザーおよびLinuxユーザー用に拡張されたプラットフォームのサポート
  • 標準のEclipseプラグイン・フレームワークを使用したサード・パーティー拡張

Lotus Sametime 3.1のユーザー・インターフェース(UI)とLotus Sametime 7.5のUIを、それぞれ図1と図2に示します。

図1. Lotus Sametime 3.1のUI

図2. Lotus Sametime 7.5のUI

これらの図からわかるように明らかな違いがいくつかありますが、最も大きな変更は、Lotus Sametime 7.5が単なる製品からプラットフォームに進化したことです。IBMまたはサード・パーティーによって作成されたプラグインにより、SDKを使用してLotus Sametime Connectの機能を拡張することができます。


上に戻る

Lotus Sametime Connectを拡張する理由

拡張可能なクライアントには、従来のアプリケーションに比べてより高い柔軟性があります。例えば、四半期ごとにアップグレード版を配布するのではなく、ユーザー自身がインストール可能なプラグインを提供することができます。また、Lotus Sametimeのすぐに使用できる機能であるClick-to-Voice-Chat機能からスタートすることができます。その場合、将来のある時点でプラグインを作成するかサード・パーティー・ベンダーから購入し、Click-to-Call機能用にLotus Sametimeを社内のPBX電話システムと統合することができます。

Lotus Sametimeの以前のリリースでは、インスタント・メッセージ・クライアントの拡張はできませんでした。Lotus Sametime Java Toolkitのリリース7.0では、Sametime認識ウィジェットの再利用とサーバー・データへのAPIアクセスが可能になりましたが、今回のLotus Sametime Connectではそれ以上の機能を提供します。

さらに、これが最も重要な点ですが、Lotus Sametime Connect 7.5のインスタント・メッセージや在席確認のコンポーネントは、IBM Lotus Notesの次回のリリース(コード名「Hannover」)や将来リリースされる予定のIBM Workplace Managed Clientといったその他のIBMマネージド・クライアント製品でも使用することができます。

Lotus Sametime Connect SDKの開発において、IBMは製品の拡張をデモンストレーションする30を超えるシナリオを検討し、最終的に5つのサンプルに絞り込みました。プロジェクト開発を行う場合、これらのSDKサンプルのソース・コードが有用な開始点となります。また、これらのソース・コードは十分に実用性を備えているため、インストール後も日常的に使用できます。


上に戻る

Lotus Sametime Connect UIの拡張

図3および図4は、追加のプラグインが提供するUI要素をメイン・ウィンドウに表示できる個所について、より具体的に示したものです。これらのUIは、大幅に変更することも小さな変更を加えることもできます。

「ツール」メニューで、関連アプリケーションを開くアクション・メニュー項目を作成できます(図3を参照)。また、「連絡先」のコンテキスト・メニューに、コンタクト・リストで選択したメンバーの社員情報を表示する選択肢を新たに追加できます。プラグインは基本コードを直接参照できるため、サード・パーティーのプラグインによって提供される機能が意図的に呼び出されるのでない限り、これらのプラグインの機能と製品が本来備える機能を区別することは困難です。

図3. 拡張可能なUI要素の例

図4は、Voice Over Internet Protocol (VoIP)を使用したボイス・チャットの対話を起動するアイコンなど、いくつかのプラグイン拡張が設定されているチャットUIを示しています。ユーザー独自の拡張により、アクション・バー、ツール・メニュー、メッセージ・ツールバーを変更できます。

図4. プラグイン拡張を組み込んだチャットUI

この2つのサンプルは、Lotus Sametime Connectの拡張によってどのようなことが実現できるかを示しています。


上に戻る

Lotus Sametime Connectアーキテクチャーの概要

Eclipseの簡単な概要

Lotus Sametime Connectの大幅な変更点の1つは、Eclipse上で構築されるという点です。Lotus Sametime Connectは、基本的にEclipseプラグインのパッケージです。Eclipseは単なるJava IDEと見なされることがありますが、リッチ・クライアント開発のためのオープン・プラットフォームでもあります。

Eclipseプラグインは、Eclipseアプリケーションまたはプロジェクトの最小の独立した構成要素です。Eclipseプラグインについて考える上で、電源コードをイメージするのも1つの方法です。この場合の電源コードは、拡張ポイントになります。ソケットに差し込むプラグが拡張になります。

Lotus Sametime Connectの拡張ポイントは、Lotus Sametime Connect SDKに文書化されています。Lotus Sametime Connectプラグインの拡張ポイントに機能を追加する(または拡張する)プラグインを作成することにより、Lotus Sametime Connectを拡張することができます。ユーザーのプラグインは、Lotus Sametimeやその基盤となるWebSphere Everyplace Deploymentなどのプラットフォームにより公開されるどのサービスにもアクセスすることができます。

プラグイン、拡張、および拡張ポイント間の相互接続は、プラグイン・マニフェストによって定義されます。Eclipse IDEには、そのプラグイン開発環境(PDE)においてプラグイン成果物を作成して変更するための専用エディターが含まれています。これらのエディターには、プラグインの作成、プラグインの依存関係の宣言、他のプラグインの拡張ポイントへの機能の追加、作成したプラグインの拡張ポイントの宣言を行う手順をガイドするウィザードが開発者用に用意されています。

Eclipse Rich Client Platform (RCP)およびIBM WebSphere Everyplace Deploymentは、Lotus Sametime Connectの基盤として機能します。これらのプラットフォームを選択する主な利点は、他のアプリケーション・コンポーネント、つまり他のプラグインとのシームレスな統合が得られることです。これらのプラグインの機能は、ダイアログ・ボックスに情報を表示する新しいメニュー選択肢のような単純なものから、完全に統合されたミニ・アプリケーションのような複雑なものまで様々です。Lotus Sametime Connectアーキテクチャーの最大の目的は、拡張可能性、統合、再利用の3つの利点を提供することです。

Eclipseを統合プラットフォームとして使用する場合のユーザーにとっての利点は、現在の環境に新たな機能を追加できることです。柔軟でありながら一貫性のあるユーザー・エクスペリエンスは強力なセールス・ポイントですが、Eclipseプログラマーにとっての利点は、標準的なEclipse RCPの基幹業務アプリケーション開発における従来のスキルを活用できるという点です。Eclipseを初めて使用する場合は、役に立つ記事が豊富に掲載されているEclipseおよびdeveloperWorksのWebサイトを参照してください。「The Java Developer's Guide to Eclipse」などのEclipseアプリケーション開発に関する書籍も入手できます。

Eclipseアプリケーション開発の原則のほとんどは、Lotus Sametime Connectの拡張作成にそのまま適用できます。Eclipseアプリケーションの開発経験がないユーザーでも、共通するオブジェクト指向のプログラミング・パターンをこれらの原則から見つけることができます。例えばEclipseは、モデル(Workbench)およびビュー(JFaceフレームワーク内のViewPartsおよび下位レベルのグラフィック・コンポーネント)の従来の区分に従っています。コンポーネントの役割が明確に区分されているため、すべてを新たに学習する必要はありません。Lotus Sametimeアーキテクチャーも同じ原則に従っています。

図5は、Lotus Sametime Connectの主なコンポーネントを示しています。Java Runtime、Eclipse RCP、WebSphere Everyplace Deploymentのレイヤーは、Lotus Notes HannoverリリースやIBM Workplace Managed Clientの将来のリリースなど、IBMのマネージド・クライアント製品の共通基盤を形成します。図5の四角で囲まれたコンポーネントは、Lotus Sametime Connect固有のものです。これらのコンポーネントには、公開プラグインおよび実装プラグインが含まれます。

 

 

図5. Lotus Sametime Connectの主なコンポーネント

Eclipse 3.2 RCPレイヤーの上の行にある四角内のコンポーネントのほとんどは、1つ以上のプラグインに対応しています。その一部は、Lotus Sametime Java APIのように、その上のプラグインによって参照されるライブラリーですが、それ自体はプラグインではありません。つまり、Eclipseプラグイン・モデルよりも前から存在するため、またはEclipseが提供する拡張性を必要としないためのいずれかの理由により、すべてのコードがプラグインを認識するわけではありません。


上に戻る

Lotus Sametime Connect SDKのサンプル・プラグイン

Lotus Sametime Connect SDKに付属するサンプルについて見ていきます。

Quick Responseプラグイン

多くのチャットは「Hi (こんにちは)」などのあいさつで始まり、「Thanks, I’ll talk to you later. (それではまた)」などの一般的な応答で終わります。または、「Sorry, I’m in a meeting right now. Can I ping you later? (今会議中なので、後で連絡します)」や「Let’s talk about it. Please call me at 555-1212. (それについては相談しましょう。555-1212に電話してください)」などの定型の応答によって、対話を一時的に中断する場合があります。このような場合に一部のインスタント・メッセージのユーザーは、BRB (be right back:すぐ戻ります)やOTP (on the phone:電話で)などの略語を相手が理解しているものと想定して、省略した応答を使用します。Quick Responseプラグインでは、完全な文章による応答をあらかじめ定義しておくことにより、こうした場合の定型の応答を手際よく処理することができます。

これと同じ方法を、オンライン・チャットのヘルプ・デスク用として共通の応答を処理する場合など、その他の状況に適用するのはそれほど難しいことではありません。例えば、顧客サービス担当者がよくある質問を受けた場合、数回のクリック操作でテキストによる応答や関連するWebページへのリンクを返すことができます。Lotus Sametime Connectはリッチ・テキストの応答をサポートしているため、パートナーのインスタント・メッセージ・クライアントが同様の機能を備えていれば、顧客サービス担当者はグラフィック付きのHTMLを応答に含めることもできます。

つまり、Quick Responseプラグインにより、ボタンを1回クリックするだけであらかじめ入力しておいた応答を挿入できるようになるということです。Quick Responseでは、プログラマーが次の内容を理解できます。

  • 新機能をチャット・ウィンドウに統合する。
  • アクション・バーにアイコンを追加してドロップダウン・メニューに選択肢を追加することにより、UIを変更する。
  • Lotus Sametime Connectの共通プリファレンス・ダイアログ・ボックスに、プリファレンス・ページを追加する。

図6は、Quick Responseプラグインによるチャット・ウィンドウへの追加機能の例を示しています。

図6. Quick Responseプラグインの例

Recent Buddiesプラグイン

Lotus Sametime Connectの標準コンタクト・リストは、パートナーをグループに編成します。これは大量の連絡先を管理する際に便利ですが、多くの場合、チャットを行う人数はごく少数で、時間の経過とともにメンバーも変わります。Recent Buddiesは、ユーザーが最近行ったチャットに基づいて動的にその内容が決まるという点で、コンタクト・リストとは異なります。コンタクト・リストに存在するユーザーとチャットを開始したり、コンタクト・リストに存在するかどうかに関係なくいずれかのユーザーからチャットを受信すると、そのユーザーが自動的にRecent Buddiesリストに追加されます。このリストにパートナーが追加されると、そのパートナーをプライマリー・パートナー(名前の横にアスタリスクが表示される)に昇格させることができます。プライマリー・パートナーのエントリーは、一番上に並べ替えられます。または、動的に追加されたパートナーをリスト表示から除外することもできます。

以上をまとめると、Recent Buddiesプラグインにより、ユーザーが最近行ったチャットに基づいて連絡先のリストを動的に作成する機能が提供されるということになります。このプラグインでは、プログラマーが次の操作方法を理解できます。

  • Lotus Sametime Connectクライアント内の重要イベント(受信チャットや送信チャットなど)に対応する。
  • Sametimeディレクトリーからユーザー情報を取得する。
  • ユーザー独自のデータ(この場合は最近チャットを行ったユーザーのリスト)をローカルに保存する。


図7は、標準のコンタクト・リストの下にRecent Buddiesプラグインの例を示したものです。このユーザーのポップアップ・コンテキスト・メニューには、別の個所で表示されるのと同じ選択肢のほかに、一番下にRecent Buddies独自の3つの選択肢が表示されます。基本のユーザー・インターフェースとシームレスに統合されるため、ユーザーは新たに導入されたRecent Buddiesプラグインの機能と出荷時設定により提供される機能を区別することはできません。

図7. Recent Buddiesプラグインの例


上に戻る

その他のSDKサンプル

SDKには、このほかにもLotus Sametime Connect APIの使用方法をわかりやすくデモンストレーションする例が用意されています。

BuddyNote

このサンプルは、Recent Buddiesのように、コンタクト・リストに存在するミニ・アプリケーションを定義します。この場合、この複合アプリケーションには、ビジネス・カードとユーザーのメモ用のテキスト領域が含まれます。コンタクト・リストのパートナーを選択するとBuddyNoteが更新され、そのパートナーのビジネス・カード情報とユーザーが以前に入力したメモが表示されます。このサンプル例の実装については、通常の「Hello World」サンプルよりも多少複雑です。

Acronym Expander

このサンプルは、受信した頭字語をフル・テキストに自動変換します。例えば、LOLは「laughing out loud(大笑い)」に、BRBは「be right back(すぐ戻ります)」に変換されます。このソース・コードは、言語の翻訳、会社独自の在庫コードの頭字語など、様々な変換を処理するように簡単に変更することができます。

Snippets

Snippetsは、異なるビューやオブジェクトにメニュー項目を追加したり、n-wayチャットの参加者リストを拡張したりする多数の簡単なソース・コード例を提供します。

これらは意図的に自己完結型のサンプルとしているため、Lotus Sametimeサーバーにより提供されるサービス以外のものを必要としません。ただし、Lotus Sametime ConnectはIBM WebSphere Everyplace Deployment上で構築されるため、ユーザー独自の拡張を使用すれば、データへのエンタープライズ・アクセスを利用できます。

Lotus Sametime Betaプログラムの開発にはIBMパートナーが積極的に参加し、現在Lotus Sametime Connect 7.5は一般出荷されているため、多数の統合された新機能を利用できます。


上に戻る

まとめ

IBM Lotus Sametimeは、インスタント・メッセージ・アプリケーションから完全に拡張可能な開発環境へと進化を遂げました。Quick ResponseやRecent Buddiesなどのプラグインは、SDKを使用してLotus Sametime Connectの機能を拡張することができます。Eclipse Rich Client PlatformはLotus Sametime Connectの基盤として機能し、ユーザーによる現在の環境への新機能の追加を可能にします。

この記事のほかにも、Lotus Sametime Connect 7.5のプラグインの構築およびデプロイにおける全手順を解説した記事があります。ぜひそちらの記事もお読みください。


上に戻る

リソース

学ぶ
製品と技術情報を入手する
議論する
上に戻る

筆者について(原文のまま)

 

Dan Kehn is a Senior Software Engineer at IBM in Research Triangle Park, NC. He has a broad range of software experience, having worked on development tools, such as Rational Application Developer, and on operating system performance, memory analysis, and user interface design. He is also co-author of the award-winning book, The Java Developer's Guide to Eclipse. Currently, he is a Technical Enablement Specialist helping business partners integrate their products into IBM Lotus Sametime Connect.


Lori Ott is a BP Technical Enablement Specialist. She joined IBM in 2000 as a curriculum developer for the Lotus Notes Application Development team for Lotus Education. She is a co-author of the IBM Redpaper, "IBM Workplace Managed Client: ISV Integration Guide."



上に戻る


上に戻る