本文へジャンプ

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


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

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

  • 閉じる [x]

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

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

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


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

  • 閉じる [x]

Lotus Sametime 8.5 の Web Browser Client

CEBP を実現する Lotus Sametime 8.5 の Web Browser Client と Lotus Sametime Browser IM Toolkit

小峯 宏秋 (hkomine@jp.ibm.com), Lotus ビジネスパートナー技術支援, Lotus テクノロジー開発,ソフトウェア開発研究所, IBM
小峯 宏秋の写真

小峯 宏秋は、日本アイ・ビー・エム株式会社のソフトウェア開発研究所、Lotusテクノロジー開発に所属し、NotesやLotus SametimeといったグループウェアとIP電話を絡めたアプリケーションやソリューションの開発に取り組んでいます。 大学では理論量子力学を専攻し、外資系ミニコンメーカーとロータス株式会社を経てIBMに入社しました。

毎年、町内会のお祭りで神輿を担いでいますが、今年はついに四十肩らしき症状が出て出場が危ぶまれています。もう若くないのでしょうか?皆様からの励ましのお便りをお待ちしています。

概要: 本稿では新しくなったLotus Sametime 8.5の概要とLotus Sametime Web Browser Clientの機能とアーキテクチャーをご紹介するとともに、そのLotus Sametime Web Browser Clientを構成する基本技術であるLotus Sametime Browser IM Toolkitについて解説します。

日付:  2010年 7月 16日
レベル:  初級
アクティビティー: 4823 ビュー
お気軽にご意見・ご感想をお寄せください: 


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 8.5の新機能

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オンライン・ミーティング

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 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 ツールキットの概要

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ツールキットはLotus Sametime サーバー側での機能拡張をするサーバー・ツールキットとクライアントの機能拡張をするクライアント・ツールキットに分かれています。またPBX(構内交換機)などの電話システムやVoIPと連携する電話連携ツールキットがあります。Lotus Sametime 8.5では提供いているツールキットの一覧は以下のようになります。

これらのツールキットはIBM developerWorksにあるLotus製品のツールキット・ダウンロードページ (Lotus Toolkit Download) で取得することができます。以下の各ツールキットにつけたフォルダ名は、ダウンロードして展開したLotus Sametime 8.5 のツールキットの中での各コンポーネントのあるフォルダを示しています。


表1. Lotus Sametime ツールキットの一覧
ツールキット名フォルダ名説明
クライアント・ツールキット
Lotus Sametime Links Toolkitst85sdk\client\stlinksWebアプリケーションに軽量のJavaアプレットでLotus Sametimeの機能を追加するツールキット
Connect Web API Toolkitst85sdk\client\connectWebApiWebアプリケーションから、ローカルのLotus Sametime Connect Clientの機能を呼び出すためのツールキット
Browser IM Toolkitst85sdk\client\stproxyWebアプリケーションにWeb 2.0の技術を用いてLotus Sametimeの機能を追加するツールキット
Java Toolkitst85sdk\client\stjavaJavaアプリケーションやアプレットからLotus Sametimeの機能をよびだすためのツールキット
Connect Toolkitst85sdk\client\connectEclipseプラグインによってLotus Sametime Connectライアントの機能拡張をするためのツールキット
Lotus Sametime Helper Toolkitst85sdk\client\sthelperWindowsアプリケーションなどからLotus Sametime Connect Clientの機能を呼び出すためのツールキット
サーバー・ツールキット
Community server Toolkitst85sdk\server\commserverLotus Sametime Community Serverに新しいサービスとしてJava コンポーネントを追加するためのツールキット
Directory and Database Access Toolkitst85sdk\server\ddaLotus Sametime Community Serverにディレクトリ連携やチャットロギングの機能を C++ や Java コンポーネントとして追加するためのツールキット
Monitoring and Statistics Toolkitst85sdk\server\statsLotus Sametime Community Serverに稼動状態を問い合わせ、その統計情報をXML形式で取得するためのツールキット
Gateway Toolkitst85sdk\server\gateway外部コミュニティーに対してプレゼンスとインスタント・メッセージを連携するLotus Sametime Gatewayを拡張するツールキット
Meeting Toolkitst85sdk\server\meeting 
  Online Meeting Toolkitクラシック・ミーティングの予約やWebミーティング管理をREST APIで行うためのツールキット
  Meeting Room Client JavaScript Extensibility APIクラシック・ミーティングと外部アプリケーションとを連携させるためのJavaScript APIを提供するツールキット
電話連携ツールキット
Client Telephony Toolkitst85sdk\telephony\clientLotus Sametime Connect Clientで音声やビデオ連携の機能を拡張するツールキット
Telephony Conferencing Service Provider Interface (TCSPI) Toolkitst85sdk\telephony\tcspiLotus 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」を参照してください。

Webブラウザ・クライアントのためのツールキット

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 Clientsametime.WebClientLotus Sametime Web Browser Clientをそのままページに埋め込むためのウィジェット
Awarenesssametime.Awarenessプレゼンスに表示される自分のステータスを変更するコントローラーを表示するためのウィジェット
Quick Findsametime.QuickFindユーザーの簡易検索を行うための検索フィールドを表示するウィジェット
Live Namesametime.LiveName指定したユーザーのステータスを表示し、そこからチャットなどを開始できるウィジェット
Chatsametime.Chat他のユーザーとの一対一のチャット画面を表示するウィジェット
Group Chatsametime.GroupChat複数のユーザーとのグループでのチャット画面を表示するウィジェット
User Informationsametime.UserInfoユーザーのステータスやそれに付随するコメント、ビジネスカードを表示するウィジェット
Business Cardsametime.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 オブジェクト説明
Loginstproxy.loginLotus Sametime サーバーへのログインとログアウトを行うメソッドを提供します。 ログインにはユーザー名とパスワードを指定してのログイン、シングル・サインオン(SSO)のトークンを使用してのログイン、匿名ユーザーとしてのログインができます。
Contactsstproxy.buddylistLotus Sametimeサーバーに登録されている、ユーザーの連絡先リストを操作するメソッドを提供します。連絡先リスからのユーザーやグループの取得や、連絡先リストへのユーザーやグループの追加や削除もできます。
User statusstproxy.statusプレゼンスに表示される自分自身のステータスやそれに付随するメッセージを設定するメソッドを提供します。
Watch Liststproxy.WatchListプレゼンスを監視する対象となるユーザーのウォッチ・リスト(監視対象リスト)を管理するメソッドを提供します。この管理対象リストには連絡先リストも含まれ、管理対象リストに含まれるユーザーのステータスなどのプレゼンス情報が変わると通知されます。このオブジェクトのクラスで管理対象リストでのユーザーの追加や削除ができます。
Chatstproxy一対一のチャットや、複数ユーザーとのチャットのセッションを開始するメソッドを提供します。
Privacy liststproxy.privacy他のユーザーから自分自身のプレゼンの参照の可否を制御するプライバシー・リストを管理するメソッドを提供します。
Quick Findstproxy.quickfindLotus Sametimeコミュニティーに登録されているユーザーの簡易検索を行うメソッドを提供します。
Personstproxy.personユーザーの情報を取得するメソッドを提供します。
Meetingsstproxy.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テクノロジー開発に所属し、NotesやLotus SametimeといったグループウェアとIP電話を絡めたアプリケーションやソリューションの開発に取り組んでいます。 大学では理論量子力学を専攻し、外資系ミニコンメーカーとロータス株式会社を経てIBMに入社しました。

毎年、町内会のお祭りで神輿を担いでいますが、今年はついに四十肩らしき症状が出て出場が危ぶまれています。もう若くないのでしょうか?皆様からの励ましのお便りをお待ちしています。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


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=499801
ArticleTitle=Lotus Sametime 8.5 の Web Browser Client
publish-date=07162010
author1-email=hkomine@jp.ibm.com
author1-email-cc=

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。