2009年12月にリリースされたIBM Lotus Sametime 8.5(以下 Lotus Sametime 8.5)では大幅なアーキテクチャーの変更を行うとともに、大きな機能拡張を行いました。Webブラウザへの対応ではWeb 2.0の技術を利用した軽量で使い勝手の良いLotus Sametime Web Browser Clientを提供し、リッチ・クライアントであるLotus Sametime Connect Clientと同じような機能が、特別なモジュールのインストール無しでWebブラウザから利用できるようになりました。さらにこのLotus Sametime Web Browser Client を構成する部品はLotus Sametime Browser IM Toolkit として公開され、Lotus Sametimeの機能を既存のWebアプリケーションに柔軟に組み込むことが可能になりました。これによりお客様の業務やビジネス・プロセスを実行するアプリケーションに、プレゼンス(在席確認)やインスタント・メッセージなどのLotus Sametimeによるリアルタイムのコミュニケーション機能を簡単に追加することができ、CEBP (Communication Enabled Business Process) を実現することができるようになりました。
Lotus Sametimeは、Lotus が提供するコラボレーション製品の中で、リアルタイムのコミュニケーションを実現する製品です。相手の状態や居場所を確認するプレゼンス(在席確認)、テキストや画面キャプチャなどで会話するインスタント・メッセージ、そして遠隔地にいながら資料を共有して会議をするオンライン・ミーティングの機能を提供しています。そしてこれらの機能を業務の中で利用できるよう、安全性、高可用性、そして拡張性を持った製品です。
数年前からユニファイド・コミュニケーション(Unified Communications)という用語が広まってきました。メール、電話、ビデオ電話、遠隔会議、インスタント・メッセージなどのさまざまなコミュニケーションを組み合わせ、自分や相手の状態、そしてコミュニケーションの目的に応じて最適なコミュニケーション手段を手軽にそして柔軟に選択できる環境を提供するための仕組みがユニファイド・コミュニケーションです。IBMではこのユニファイド・コミュニケーションをさらに発展させたユニファイド・コミュニケーション&コラボレーション(UC2, Unified Communications & Collaboration)という戦略を打ち出しています。単にコミュニケーションを統合するだけではなく、コミュニケーションを通じて実現される企業内外のコラボレーションも連携させて、より社員の生産性を高めていくことを目指しています。
その中心となる製品としてLotus Sametimeの機能強化を図り、ソーシャル・ネットワーク・サービス(SNS)を提供するLotus Sametime Advanced、電話システムとの連携を行うLotus Sametime Unified Telephony といった製品を提供しています。またLotus Sametimeの基本機能の強化も行いました。最新のリリースであるLotus Sametime 8.5ではWebブラウザに対応するための機能強化を行うとともに、Lotus Sametimeを既存のWebアプリケーションの中に取り込んで利用できるためのソフトウェア開発ツールキットを追加しました。
ここ数年、企業の基幹業務の中にユニファイド・コミュニケーションを積極的に応用し、コミュニケーションをビジネス・プロセスに統合するCEBP(Communication Enabled Business Process)が注目されています。Lotus Sametime 8.5で行われたWebブラウザへの対応は、Lotus SametimeをCEBPのインフラストラクチャーとして利用できる可能性を高めました。
CEBP (Communication Enabled Business Process)とは
CEBPとは企業の業務プロセスの中にユニファイド・コミュニケーションを適用することで、企業内の意思決定を迅速に進めるための手法です。企業の業務プロセスの中で「人的な処理の待ち時間」(イベントに対する人間の反応時間)が企業の対応速度や俊敏性を落とすひとつの原因となっています。たとえば電子メールに過剰に依存した社内コミュニケーションによって、重要な連絡事項がメールの中に埋没して企業内のコラボレーションが滞り、意思決定の遅れを招くことがあります。CEBP によるビジネス・プロセスとユニファイド・コミュニケーションの統合により、このような「人的な処理の待ち時間」を減少させることが期待されています。
CEBPとは企業内の業務アプリケーションによって行われるビジネス・プロセスをさまざまなコミュニケーション・システムと緊密に結びつけることで実現されるプロセスです。そのプロセスにはいくつかのバリエーションがあります。たとえば、業務アプリケーション上のユーザー操作によって関連する人々とのコミュニケーションがはじまるといった、人によって駆動される CEBPがあります。一方、外部の状況の変化やイベントに対して業務アプリケーションが反応し、一連のコミュニケーション・プロセスが自動的に開始されるといった、アプリケーションによって駆動されるCEBPもあります。商品の受発注業務の中にCEBPの仕組みを取り入れることで、顧客からの受注を受けたコールセンターのオペレーターの処理を起点としてプロセスを起動し、サプライヤーに対する確認や連絡をユニファイド・コミュニケーションで行うということもできます。また在庫状況や天候、市場動向などの変化に対してシステムが反応し、関係者にアラートを上げて予想される問題に迅速に対応するといったCEBPのプロセスも考えられます。
いずれにしても実際のCEBPにおいては、業務内容によって適用できる箇所が異なり、さまざまな実装方法が存在します。そこでCEBPを導入するためには、それが適用できる対象となるビジネス・プロセスを発見し、その中で必要に応じてユニファイド・コミュニケーションの仕組みを柔軟に取り入れていくことが必要になります。具体的には既存の業務アプリケーションの中で、今までメールベースで行っていた通知にインスタント・メッセージを取り入れたり、担当者の名前や電話番号を表示していたところにその担当者のプレゼンスを表示して直ちにコミュニケーションが取れるようにしたりといったことです。そして、それを実現するためには既存のアプリケーションに柔軟に取り入れることができるユニファイド・コミュニケーションのサービスが必要となります。
Webアプリケーションとの連携を大幅に強化したLotus Sametime 8.5は、既存のさまざまな業務アプリケーションとの連携が可能となっており、CEBPを実現するためのユニファイド・コミュニケーションのサービスを提供するためのインフラストラクチャーとして大きく進歩しました。このあとで紹介するLotus Sametime Browser IM Toolkitを利用することでLotus Sametimeのコミュニケーション機能を企業内の業務アプリケーションに柔軟に取り込むことが可能になっています。
Lotus Sametimeの提供するコミュニケーションの機能は、相手の状態や居場所を確認するプレゼンス、テキストや画面キャプチャなどで会話するインスタント・メッセージ、そして遠隔地にいながら資料を共有して会話をするオンライン・ミーティングの機能があります。以前のバージョンでは、プレゼンスとインスタント・メッセージは主にリッチ・クライアントであるLotus Sametime Connect Clientを中心に利用され、オンライン・ミーティングはWebブラウザで行うというように、利用シーンでクライアントが分かれていました。Lotus Sametime 8.5ではこのような垣根を取り払い、リッチ・クライアントでもWebブラウザからでも一通りのLotus Sametimeの機能が使用でき、ユーザーの利用環境や目的に応じてクライアントを柔軟に選択できるようになりました。さらにLotus Sametimeのアーキテクチャーの見直しを行い、システム構成についても大幅な変更を行いました。
Lotus Sametime 8.0以前ではサーバーのすべての機能がLotus Dominoの上で動作するアプリケーションとして構成されていました。Lotus Sametime 8.5でもインスタント・メッセージとプレゼンスの基本機能を提供するLotus Sametime Community Serverにその技術は引き続き利用されていますが、オンライン・ミーティングの機能はWebSphere Application Server(WAS)のアプリケーションとして再構成されました。またインスタント・メッセージのWebブラウザ対応や、複数のLotus Sametimeサーバーを統一して管理する仕組みなども新たにWAS上のアプリケーションとして構成されました。WASを利用することで、Lotus Dominoでは不十分だった最新のWebアプリケーションの技術をLotus Sametimeに取り入れることができたばかりではなく、Lotus Sametimeサーバーのスケーラビリティや耐障害性など高可用性の確保にWASの技術が利用できるようになっています。
Lotus Sametime 8.5の大きな特徴は以下の点です。
- Web 2.0 の技術を取り入れた、新しいWebブラウザからのアクセスの提供
- Webブラウザとリッチ・クライアントに対応する新しいオンライン・ミーティング機能の提供
- 分散されたLotus Sametime サーバーを統一して管理するためのシステム・コンソールの提供
Lotus Sametime Web Browser Client
Lotus Sametimeは初期のリリースより、そのときどきの最新の技術を利用してWebブラウザへの対応を行っていました。Webアプリケーションに簡単に組み込むためのJavaアプレットの部品や、Javaアプレット自体をユーザーが自作できるAPIを提供してきました。またLotus Sametime Connect Clientと同等な機能をWebブラウザで実行できるJavaアプレットのクライアントであるLotus Sametime Java Connect Clientを提供していたこともあります。しかしJavaアプレットをベースにすることでのJavaランタイム・バージョン互換性の問題やJava仮想マシンのオーバヘッドもありました。さらに近年のWeb 2.0と言う言葉に代表される、よりリッチで軽量なWebアプリケーション開発技術の広まりもあり、Lotus Sametime 8.5で大幅な機能拡張を行い、AjaxやDojoを採用したWebブラウザ向けの新しいLotus Sametime Web Browser Clientを提供しました
Lotus Sametime Web Browser Clientでは、リッチ・クライアントであるLotus Sametime Connect Clientに近いユーザー・インターフェースでプレゼンスとインススタント・メッセージの機能を提供します。サーバーで管理された連絡先リストを表示し、一対一や複数のメンバーとチャットしてリッチテキストや、コミュニケーションを円滑にする顔文字を送ることができます。
図1. Lotus Sametime 8.5 のWeb Browser Clientの連絡先リストとチャット画面
Lotus Sametimeのプレゼンスとインスタント・メッセージは Virtual Place (VP)プロトコルによってコントロールされており、その通信はLotus Domino上に構築されたLotus Sametime Community Serverによって管理されています。Lotus Sametime 8.5では、このプレゼンスとインスタント・メッセージをWebブラウザからでも使用できるようにするためにLotus Sametime Proxy Serverを用意しました。このサーバーはVPプロトコルのエンド・ポイントとしてWebブラウザとの通信を中継します。Webブラウザで動作するLotus Sametime Web Browser ClientはDojoが提供するウィジェットを元に画面を構成し、REST APIを通じてLotus Sametime Proxy Serverと通信してプレゼンスやインスタント・メッセージを利用します。またこのLotus Sametime Web Browser Clientを構成するコンポーネントや機能を部分的に取り出し、他のWebアプリケーションの中に組み込んだり、他のアプリケーションから呼び出したりすることも可能です。そのような機能を提供するのがLotus Sametime Browser IM Toolkitです。
Lotus Sametime 8.0以前でもLotus Domino上のコンポーネントとして、Webミーティングの機能(クラシック・ミーティング)を提供していました。このWebミーティングの機能もまたLotus Sametimeの比較的早いリリースから提供していたため、Javaアプレットを使用して画面を構成しておりJavaランタイム・バージョンの互換性の問題がありました。またクラシック・ミーティングで提供していた音声とビデオ会議の機能も最新の技術動向や利用環境には必ずしもそぐわなくなっていました。そこでLotus Sametime 8.5ではこのLotus Domino上のミーティングの機能も残しつつも、WAS上にLotus Sametime Meeting Serverという新しいサーバーを用意して、より高機能で使いやすいオンライン・ミーティングの機能を提供しました。この新しいオンライン・ミーティングはリッチ・クライアントであるLotus Sametime Connect Clientでも、Webブラウザからも利用できます。またLotus Sametime Media Manager Serverを利用することで、Lotus Sametime Connect Clientのオンライン・ミーティングで音声やビデオによるコミュニケーションを使用することができます。Lotus Sametime Media Management Serverではセッション管理にSIP (Session Initiation Protocol)、音声コーデックには G.722.1など、ビデオ・コーデックには H.264などを採用しており高品質な音声と映像でのコミュニケーションが取れ、さらに他の音声やビデオ会議システムとの接続が可能になっています。
図2. Lotus Sametime 8.5 のオンライン・ミーティングの画面
Lotus Sametime 8.5では以前のLotus Sametimeから大幅な機能拡張を行いました。そしてサーバーのインフラストラクチャーとしてWASを利用することで最新のWebアプリケーションの技術を取り入れるとともに、サーバーのスケーラビリティや耐障害性の確保にWASの技術が利用できるようになりました。
Lotus Sametime 8.5は以下のようなサーバー・コンポーネントによって構成されます。
- Lotus Sametime System Console Server
- Lotus Sametimeのシステムを構成する複数のサーバーを統一して管理するために、Lotus Sametime 8.5 より追加されたサーバーです。このサーバーによって、Lotus Sametimeの各サーバーの構成管理、インストール、モニターなどが行うことができます。
- Lotus Sametime Community Server
- 8.0 以前の Lotus Sametimeのバージョンから存在し、プレゼンスやインスタント・メッセージといったLotus Sametimeの基本機能を提供するサーバーです。このサーバーはLotus Domino Serverで動作します。
Lotus Sametime Community Serverの冗長構成をするときにはLotus Dominoのクラスタリング機能を利用します。
- Lotus Sametime Proxy Server
- Lotus Sametime Community ServerとWebブラウザの間を仲介し、Webブラウザからのアクセスに対してのプレゼンスとインスタント・メッセージの機能を提供する、Lotus Sametime 8.5 より追加されたサーバーです。Webブラウザ上のプレゼンスやインスタント・メッセージの情報は Lotus Sametime Proxy Serverを通じて、Lotus Sametime Community Serverによって管理されます。
- Lotus Sametime Meeting Server
- Lotus Sametime 8.5 より追加された新しいオンライン・ミーティングの機能を提供するサーバーです。Lotus Sametime Meeting Serverでは、各ユーザーに割り当てられた常設のミーティング・ルームが用意され、ミーティング・ルームの所有者が議長として参加者を招待してミーティングを開始できます。
- Lotus Sametime Media Manager Server
- 音声やビデオによるコミュニケーションを Lotus Sametime Connect Clientに対して提供する、Lotus Sametime 8.5 より追加されたサーバーです。コミュニケーションのセッション管理にはSIPを使用し、音声やビデオの通信にも標準のコーデックを採用しているため、外部の音声会議システムやビデオ会議システムとの接続も可能になっています。
- Lotus Sametime Classic Meeting Server
- 8.0以前の Lotus Sametimeのバージョンから存在する、Web ミーティングの機能を提供するサーバーです。このサーバーもLotus Dominoで動作します。Lotus Sametime 8.5 ではLotus Sametime Meting サーバーによって新しいミーティング機能が提供されていますが、Lotus Sametime Classic Meeting ServerのWebミーティングを使用することもできます。
図3はLotus Sametimeのサーバー構成を示しています。プレゼンス、インスタント・メッセージ、オンライン・ミーティングなどすべての機能を使用するために必要な構成です。実際の構成ではさらに負荷分散や障害対応のための冗長構成を行う必要があります。Lotus Sametime 8.5で新たに加わったサーバーはすべて WAS上に構成されています。そのためこれらのサーバーの冗長構成を行う際にはWASのマルチ・ノード構成の考え方が適用できます。一方、Lotus Sametimeのすべての機能を使わないのであれば、実際の運用において不要なコンポーネントは構成から取り除くことができます。たとえばプレゼンスとインスタント・メッセージだけを使うのであればオレンジ色の枠で示したサーバーだけを構成すれば十分です。
図3. Lotus Sametime のサーバー構成
Lotus Sametime は企業内で使用できるリアルタイムのコラボレーションを提供する製品として、安全性、高可用性、拡張性という 3つの特徴を持っています。安全性については、インスタント・メッセージなどの通信をエンド・トゥー・エンドで暗号化するなどコミュニケーションにおける高いセキュリティを確保しています。高可用性については、ユーザー数や目的に応じて同じLotus Sametimeサーバーのコンポーネントを複数配置したクラスタ構成にしたり、単一サーバー内の機能を別サーバーに分散化するなどの柔軟なサーバー構成が可能になっています。
拡張性という点では、Lotus Sametimeサーバーとクライアントに対しさまざまな機能追加をするためのツールキット(SDK: Software Development Kit) を提供しています。ユーザーやビジネスパートナーのみなさんはこれらのLotus Sametimeツールキットを使うことで、Lotus Sametime環境に新たなサービスや機能を追加したり、既存のアプリケーションの中からLotus Sametimeの機能を取り出して利用できるようになっています。Lotus Sametime 8.5ではLotus Sametime Web Browser Clientが登場しましたが、このクライアントもツールキットのひとつであるLotus Sametime Browser IM Toolkitによって構成されています。またこのLotus Sametime Browser IM ToolkitのAPIはアプリケーション開発者に公開されており、Lotus Sametimeの機能を他のWebアプリケーションに取り込んで連携させることができます。
Lotus SametimeツールキットはLotus Sametime サーバー側での機能拡張をするサーバー・ツールキットとクライアントの機能拡張をするクライアント・ツールキットに分かれています。またPBX(構内交換機)などの電話システムやVoIPと連携する電話連携ツールキットがあります。Lotus Sametime 8.5では提供いているツールキットの一覧は以下のようになります。
これらのツールキットはIBM developerWorksにあるLotus製品のツールキット・ダウンロードページ (Lotus Toolkit Download) で取得することができます。以下の各ツールキットにつけたフォルダ名は、ダウンロードして展開したLotus Sametime 8.5 のツールキットの中での各コンポーネントのあるフォルダを示しています。
表1. Lotus Sametime ツールキットの一覧
| ツールキット名 | フォルダ名 | 説明 |
|---|---|---|
| クライアント・ツールキット | ||
| Lotus Sametime Links Toolkit | st85sdk\client\stlinks | Webアプリケーションに軽量のJavaアプレットでLotus Sametimeの機能を追加するツールキット |
| Connect Web API Toolkit | st85sdk\client\connectWebApi | Webアプリケーションから、ローカルのLotus Sametime Connect Clientの機能を呼び出すためのツールキット |
| Browser IM Toolkit | st85sdk\client\stproxy | WebアプリケーションにWeb 2.0の技術を用いてLotus Sametimeの機能を追加するツールキット |
| Java Toolkit | st85sdk\client\stjava | JavaアプリケーションやアプレットからLotus Sametimeの機能をよびだすためのツールキット |
| Connect Toolkit | st85sdk\client\connect | EclipseプラグインによってLotus Sametime Connectライアントの機能拡張をするためのツールキット |
| Lotus Sametime Helper Toolkit | st85sdk\client\sthelper | WindowsアプリケーションなどからLotus Sametime Connect Clientの機能を呼び出すためのツールキット |
| サーバー・ツールキット | ||
| Community server Toolkit | st85sdk\server\commserver | Lotus Sametime Community Serverに新しいサービスとしてJava コンポーネントを追加するためのツールキット |
| Directory and Database Access Toolkit | st85sdk\server\dda | Lotus Sametime Community Serverにディレクトリ連携やチャットロギングの機能を C++ や Java コンポーネントとして追加するためのツールキット |
| Monitoring and Statistics Toolkit | st85sdk\server\stats | Lotus Sametime Community Serverに稼動状態を問い合わせ、その統計情報をXML形式で取得するためのツールキット |
| Gateway Toolkit | st85sdk\server\gateway | 外部コミュニティーに対してプレゼンスとインスタント・メッセージを連携するLotus Sametime Gatewayを拡張するツールキット |
| Meeting Toolkit | st85sdk\server\meeting | |
| Online Meeting Toolkit | クラシック・ミーティングの予約やWebミーティング管理をREST APIで行うためのツールキット | |
| Meeting Room Client JavaScript Extensibility API | クラシック・ミーティングと外部アプリケーションとを連携させるためのJavaScript APIを提供するツールキット | |
| 電話連携ツールキット | ||
| Client Telephony Toolkit | st85sdk\telephony\client | Lotus Sametime Connect Clientで音声やビデオ連携の機能を拡張するツールキット |
| Telephony Conferencing Service Provider Interface (TCSPI) Toolkit | st85sdk\telephony\tcspi | Lotus Sametimeサーバーで電話会議や電話システムと連携する機能を提供するツールキット |
これらのツールキットの多くは Lotus Sametime 8.5 より前のバージョンから提供されています。Lotus Sametime Browser IM ToolkitだけがLotus Sametime 8.5で新たに追加されたツールキットで、Webブラウザからプレゼンスとインスタント・メッセージのサービスを利用可能にします。以前よりあったツールキットではLotus Sametime Links ToolkitとLotus Sametime Connect Web API Toolkitが同じようにWebブラウザからインスタント・メッセージとプレゼンスの機能を追加するツールキットです。また、Lotus Sametime Java ToolkitはJava API を提供するツールキットで、このAPIを元にJavaアプレットを作成してWebアプリケーションに組み込むこともできます。これらの違いについて次の節で説明しましょう。その他のツールキットの詳細ニついては本稿の範囲外となるためこれ以上は説明しません。詳細についてはLotus Sametime 8.5 Toolkitに含まれる「Lotus Sametime 8.5 Software Development Kit – Software Development Kit Overview」を参照してください。
Lotus Sametime ツールキットでは、Webブラウザからプレゼンスとインスタント・メッセージを利用するための4つのツールキットを提供しています。これらのツールキットを使用することで既存のWebアプリケーションにLotus Sametimeのコミュニケーションを追加できます。これらのツールキットはいずれも異なるLotus Sametimeのバージョンで、その当時の最新技術を利用して用意されたものです。その後の製品のバージョンアップの中で上位互換性のために残されており、Webアプリケーション連携のために複数のツールキットが存在することとなっています。
Lotus Sametime Java Toolkit はLotus Sametime のツールキットで最も古いものです。このツールキットでLotus Sametime Connect Clientで使用できる一通りの機能がJava APIから利用可能になります。アプリケーション開発者はJavaアプリケーションやJavaアプレットなどの中でLotus Sametime Java ToolkitのAPIによってLotus Sametimeの機能を使用することができます。Javaアプレットとして開発したオブジェクトはWebアプリケーション内に埋め込むことも可能です。Lotus Sametimeサーバーとの通信はLotus Sametime Java Toolkitのライブラリ内で処理され、VPプロトコルで通信をします。ほかのクライアント向けツールキットに比べてLotus Sametimeの機能を利用するめのもっとも豊富なAPIがあり、Javaのプログラミングをすることでその機能を柔軟に利用することができます。
Lotus Sametime Links ToolkitはLotus Sametime 2.5より提供されているツールキットです。プレゼンスとインスタント・メッセージが利用できる軽量なJavaアプレットで構成され、既存のWebアプリケーションにHTMLとJavaScriptによる実装でLotus Sametimeの機能を埋め込むことができます。クライアントPCにLotus Sametimeのコンポーネントをあらかじめインストールしておく必要はなく、トータルでも50KB以下のアプレットが使用時にクライアントにダウンロードされます。このアプレットには基本的なユーザー・インターフェースが含まれており、アプリケーション開発者が新たなユーザー・インターフェースを作成する必要はありません。また十分な帯域の取れないネットワーク環境での利用も考慮して、Lotus Sametimeサーバーとの通信にはLotus Sametime Linksプロトコルと呼ばれるVPプロトコルの軽量版を使用しサーバーとの通信量を少なくしています。しかし2000年頃の技術を元に作られているために今となってはユーザー・インターフェースが洗練されているとは言えず、またJavaアプレットを利用していることで、対応するバージョンのJavaランタイムがクライアントに必要となります。
Lotus Sametime Connect Web API ToolkitはWebブラウザからより使いやすく柔軟に Lotus Sametimeの機能を利用することを目指して、Lotus Sametime 7.5で追加されたツールキットです。JavaScriptのAPIを提供しており、Webアプリケーション内に JavaScript のコード埋め込むことで、プレゼンス情報を表示したりインスタント・メッセージを送受信したりすることができます。Lotus Sametime Connect Web API Toolkitでは、ローカルPCにインストールされ動作しているLotus Sametime Connect Clientをプロキシーとして利用します。つまりLotus Sametime Connect Web API ToolkitはローカルのLotus Sametime Connect Clientからプレゼンス情報を取得し、Lotus Sametime Connect Clientを呼び出してインスタント・メッセージの送信をします。クライアント上のLotus Sametime Connect Clientを使用しているのでWebブラウザのユーザーに対しても十分な機能を提供していますが、クライアントPCにはLotus Sametime Connect Clientをインストールしておかなくてはなりません。
Lotus Sametime 8.5で新たに提供されたLotus Sametime Browser IM ToolkitはWebブラウザ向けの新しいツールキットです。以前から存在していながら技術的には古くなってしまったLotus Sametime Links Toolkitを置き換えるものです。Lotus Sametime Browser IM Toolkit はDojoが提供するウィジェットを使用したユーザー・インターフェースのコンポーネントやJavaScriptライブラリを提供し、WebブラウザやクライアントPCへの特別なモジュールのインストールなしにLotus Sametimeのプレゼンスとインスタント・メッセージの機能が利用できます。サーバーとの通信はLotus Sametime Proxy Server が提供するREST APIによって行います。
図4. Webブラウザで利用できるLotus Sametimeツールキットの概要
Lotus Sametime Browser IM Toolkit
Lotus Sametime Browser IM ToolkitはさまざまなかたちでLotus Sametime と Webアプリケーションとを連携するための階層化されたアーキテクチャーを持っています。その最下層のレイヤーでLotus Sametimeサーバーとの通信を行っていますが、プレゼンスの更新や他のユーザーからのメッセージを遅滞なくクライアントに通知するための、Webブラウザに対する擬似プッシュの仕組みを取り入れています。また上位のレイヤーではWebアプリケーションから利用できるさまざまなAPIを提供しています。ここではLotus Sametime Browser IM Toolkitのアーキテクチャーやその内部の仕組み、さらにこのツールキットを利用したアプリケーションの開発について説明します。
Lotus Sametime Browser IM Toolkitのアーキテクチャー
Lotus Sametime Browser IM Toolkitは以下の図のような3層のレイヤー構成になっており、Lotus Sametime Web Browser Clientはこのツールキットの上に構築されています。アプリケーション開発者はこれらのレイヤーの提供するAPIを使って、WebアプリケーションにLotus Sametimeの機能を組み込むことができます。
図5. Lotus Sametime Browser IM Toolkit のアーキテクチャー
Lotus Sametime Browser IM Toolkitの最下層はREST APIです。クライアントはこのREST APIのリクエストをLotus Sametime Proxy Serverに送ることで、ログイン・ログアウト、プレゼンスの取得、インスタント・メッセージの送受信といった機能を利用することができます。また他のユーザーのステータスの変更やインスタント・メッセージの受信を遅滞なく受け取るために、ロングポール (Long poll)と呼ばれる仕組みを使いサーバーからの擬似プッシュを行っています。ロングポールについては次節で解説します。
この非同期通知でのサーバーからのメッセージ受信の仕組みを提供するREST APIは少し複雑になっており、使いこなすのは簡単ではありません。そこでLotus Sametime Browser IM Toolkitでは REST APIのレイヤーを隠蔽し、簡単に呼び出すためのBase Component APIと呼ばれるJavaScriptのライブラリを用意しています。REST APIの提供する機能はすべてBase Component APIのJavaScriptライブラリから呼び出し可能になっています。Base Component APIにはユーザー・インターフェースを構成する部品は含まれていないため、開発者はWebアプリケーションの独自のユーザー・インターフェースを使用して、Lotus Sametimeの機能を利用できます。
最上位のレイヤーにはUser Interface APIで、Lotus Sametimeのプレゼンスやチャット画面などのコンポーネントをWebアプリケーションに組み込むためのウィジェットを提供しています。User Interface APIはDojo ツールキットの技術を元にしており、Lotus Sametime Web Browser Clientの画面を構成する部品をDojoのウィジェットとして提供しています。このウィジェットを呼び出すことで、Lotus Sametime Web Browser Clientで表示される部品をそのまま、既存のWebアプリケーションに組み込むことができます。またユーザー・インターフェースを構成するウィジェットはスタイルシートの変更で簡単に見た目を変更することができます。
このように、Lotus Sametime Browser IM Toolkitを構成する各レイヤーにはそれぞれ、開発者が利用可能なAPIが用意されています。最下層のREST APIを直接呼び出すことも可能ですが、実際にはそれより上層のBase Component APIやUser Interface APIのウィジェットを呼び出すほうが便利です。
Webブラウザで動作するWebアプリケーションでは一般的にクライアントからサーバーへのリクエストを発行し、そのレスポンスとしてサーバーからのデータを受信します。しかしLotus Sametimeのプレゼンスの更新やメッセージの受信では、クライアントのリクエストとはまったく非同期にサーバーからクライアントへのデータ送信が必要になります。これはHTTPを使用した通常のWebアプリケーションでは簡単には実現できません。サーバー側で何らかのイベントが発生したときにそのデータを遅滞なく受信をするためには、クライアントは頻繁にサーバーにリクエストを投げるなどの処理が必要となり、無駄なネットワーク・トラフィックを発生させることになります。この問題を解決するためにLotus Sametime Proxy Serverではサーバーからクライアントへの、プレゼンスの更新やインスタント・メッセージの送信にロングポールとよばれる手法を使用しており、Lotus Sametime Browser IM Toolkitにはクライアント側でロングポールを処理する機能が実装されています。
ロングポールの仕組みは図6にようになります。クライアントはHTTPなどのWebアプリケーションで使用できる普通のプロトコルでサーバーにリクエストを送信します。リクエストを受信したサーバーはただちにレスポンスを返すのではなく、数十秒から数分の間処理を保留します。その間に何もなければ、何もなかったことを示すレスポンスを返します。レスポンスを受けたクライアントはただちに次のリクエストを投げて、またレスポンスが返るのを待ちます。
もしサーバー側で他のユーザーのステータス変更やインスタント・メッセージの受信など、クライアントに送信したいメッセージが発生したときは、保留しているレスポンスにのせてクライアントに送ります。クライアントからは常にリクエストが送られてサーバーに保留されているので、サーバーからのレスポンスは必要なときに即時に発行することができます。このような仕組みでWebブラウザ上でもLotus Sametimeのプレゼンスの更新やインスタント・メッセージの受信を滞りなく表示することができます。このロングポールの技術はLotus Sametime Connect ClientやLotus Sametime Links Toolkitでも使用されている技術です。
図6. ロングポールの仕組み
Lotus Sametime Browser IM Toolkit のUser Interface APIによる、Lotus Sametime 機能の組み込み
User Interface APIは、Lotus Sametimeのユーザー・インターフェースを構成するウィジェットをそのまま取り込んで使用できる、もっとも簡単に使えるAPIです。既存のWebアプリケーションにHTMLやJavaScriptでLotus Sametimeのユーザー・インターフェースを構成する部品を埋め込むことができます。
Lotus Sametime Browser IM ToolkitのUser Interface APIでは、Lotus Sametimeクライアントを構成する以下のような部品をそれぞれウィジェットとして提供しています。
表2. Lotus Sametime Browser IM ToolkitのUser Interface APIのウィジェット一覧
| ウィジェット名 | JavaScript オブジェクト | 説明 |
|---|---|---|
| Web Client | sametime.WebClient | Lotus Sametime Web Browser Clientをそのままページに埋め込むためのウィジェット |
| Awareness | sametime.Awareness | プレゼンスに表示される自分のステータスを変更するコントローラーを表示するためのウィジェット |
| Quick Find | sametime.QuickFind | ユーザーの簡易検索を行うための検索フィールドを表示するウィジェット |
| Live Name | sametime.LiveName | 指定したユーザーのステータスを表示し、そこからチャットなどを開始できるウィジェット |
| Chat | sametime.Chat | 他のユーザーとの一対一のチャット画面を表示するウィジェット |
| Group Chat | sametime.GroupChat | 複数のユーザーとのグループでのチャット画面を表示するウィジェット |
| User Information | sametime.UserInfo | ユーザーのステータスやそれに付随するコメント、ビジネスカードを表示するウィジェット |
| Business Card | sametime.BusinessCard | ユーザーのビジネスカードを表示するウィジェット |
これらのウィジェットを使用すれば、既存のWebアプリケーションにLotus Sametimeの機能を簡単に埋め込むことができます。たとえば以下の例ではWebClientウィジェットを使用してWebアプリケーションの中にLotus Sametime Web Browser Clientをそのまま埋め込んでいます。
図7. Webページに埋め込まれたLotus Sametime Browserクライアント(WebClient)のウィジェット
また、すでにあるWebアプリケーションで社員名などが表示されているのであれば、LiveNameウィジェットを使うことで、社員名表示に社員のプレゼンスを表示させることもできます。以下の図8はブログのページに作成者のプレゼンス表示を追加しています。
図8. ブログのWebページに埋め込まれたLiveNameウィジェット
LiveNameウィジェットでは右クリックで表示される標準のコンテキスト・メニューも用意されており、チャットを開始するなどの操作を画面内からスムーズに行うことができます(図9)。
図9. LiveNameウィジェットのコンテキスト・メニュー
User Interface APIで組み込まれるウィジェットは、あらかじめLotus Sametime製品が用意しているユーザー・インターフェースを表示しますが、これらのウィジェットはDojoツールキットに準拠しており、その仕組みに従って拡張することができます。またスタイルシートを提供してウィジェットの見栄えを変えることも可能です。たとえばLiveNameウィジェットに表示される応答可能なユーザーの表示を変えるには.stproxy_liveNameAvailableTextセレクタにスタイルの指定を行います。
リスト1. LiveNameウィジェットに表示される応答可能なユーザーの表示を変えるスタイルシート
.stproxy_liveNameAvailableText {
color: #009900;
font-weight: bold;
background-color: #CCFF99;
}
|
このスタイルシートを、先のブログのページを適用することで、LiveNameウィジェットの表示を以下のように変更することができます。
図10. スタイルシートで変更されたLiveNameウィジェット
Lotus Sametime Browser IM ToolkitのBase Component API
User Interface APIでは製品が用意しているユーザー・インターフェースの部品が使われますが、既存のWebアプリケーションのデザインにきれいに当てはまらないこともあるかもしれません。またWebアプリケーションの中でLotus Sametimeの操作をプログラムによって制御したいという要望があるかも知れません。そのようなときにはUser Interface APIの下のレイヤーであるBase Component APIが使用できます。Base Component APIはユーザー・インターフェースのないJavaScriptのAPIです。そのさらに下層にあるREST APIをラップしており、ロングポールによるLotus Sametime Proxy Serverに対する呼び出しを制御しています。Base Component API を使用することでアプリケーション開発者は複雑なロングポールの制御を意識することなく、インスタント・メッセージとプレゼンスの操作をするための一通りのAPIが利用できます。
Base Component APIは以下の機能を提供します。
| ウィジェット名 | JavaScript オブジェクト | 説明 |
|---|---|---|
| Login | stproxy.login | Lotus Sametime サーバーへのログインとログアウトを行うメソッドを提供します。 ログインにはユーザー名とパスワードを指定してのログイン、シングル・サインオン(SSO)のトークンを使用してのログイン、匿名ユーザーとしてのログインができます。 |
| Contacts | stproxy.buddylist | Lotus Sametimeサーバーに登録されている、ユーザーの連絡先リストを操作するメソッドを提供します。連絡先リスからのユーザーやグループの取得や、連絡先リストへのユーザーやグループの追加や削除もできます。 |
| User status | stproxy.status | プレゼンスに表示される自分自身のステータスやそれに付随するメッセージを設定するメソッドを提供します。 |
| Watch List | stproxy.WatchList | プレゼンスを監視する対象となるユーザーのウォッチ・リスト(監視対象リスト)を管理するメソッドを提供します。この管理対象リストには連絡先リストも含まれ、管理対象リストに含まれるユーザーのステータスなどのプレゼンス情報が変わると通知されます。このオブジェクトのクラスで管理対象リストでのユーザーの追加や削除ができます。 |
| Chat | stproxy | 一対一のチャットや、複数ユーザーとのチャットのセッションを開始するメソッドを提供します。 |
| Privacy list | stproxy.privacy | 他のユーザーから自分自身のプレゼンの参照の可否を制御するプライバシー・リストを管理するメソッドを提供します。 |
| Quick Find | stproxy.quickfind | Lotus Sametimeコミュニティーに登録されているユーザーの簡易検索を行うメソッドを提供します。 |
| Person | stproxy.person | ユーザーの情報を取得するメソッドを提供します。 |
| Meetings | stproxy.meeting | オンライン・ミーティングの一覧を取得したり、他のユーザーをオンライン・ミーティングに招待するメソッドを提供します。 |
Lotus Sametime 8.5ではさまざまな機能拡張が行われましたが、その中でもWebブラウザからのアクセスに対しては大きな機能拡張を行い、新しいクライアントとツールキットを追加しました。
Lotus Sametime Web Browser Clientにより、今までリッチ・クライアントで利用できた豊富なLotus Sametimeの機能が、Webブラウザで軽量に利用できるようになりました。さらにLotus Sametime Web Browser Clientを構成するLotus Sametime Browser IM Toolkitにより、さまざまなレベルで既存のWebアプリケーションとLotus Sametimeとの連携が可能になりました。プレゼンスやインスタント・メッセージの機能を、Lotus Sametimeのユーザー・インターフェースをそのまま使って組み込むことも、独自のユーザー・インターフェースを使って連携させることも可能です。この新しいLotus Sametimeの拡張性によって、企業内に存在するさまざまな業務アプリケーションと連携の可能性が広がりました。社内にあるさまざまなビジネス・プロセスにユニファイド・コミュニケーションを提供することでCEBPを実現し、コラボレーションのボトルネックを取り払い業務のスピードを上げ、意思決定を迅速化できるでしょう。
新しくなったLotus Sametimeとその拡張性をぜひご理解いただき、皆様の業務の中へのLotus SametimeによるCEBPの実現の可能性についてぜひご検討ください。
- Lotus Sametime 8.5 製品ページ (日本語)
- Lotus Sametime 8.5 製品ページ (英語)
- IBM developerWorks: Lotus Sametime 技術リソース
- Lotus Sametime 8.5 Documentation
- Lotus Toolkit Download
