|
||||||||||||||||||||||||||||||||||||||||||||||||||
IBM Lotus Sametime 7.5 のロケーション認識 |
||||||||||||||||||||||||||||||||||||||||||||||||||
レベル:初級 原文の掲載:2006年9月5日
IBM Lotus Sametime 7.5は、リアルタイム・コラボレーションのメジャー・アップグレード版です。これは、インスタント・メッセージングのユーザー・エクスペリエンスをアップグレードした次世代クライアントであり、Eclipseフレームワーク上で構築される拡張可能なプラグイン・モデルを提供します。したがって、単なるツールにとどまらず、イノベーションのためのプラットフォームとして使用できます。 簡易検索、ミニ・アプリケーション、ビジネス・カード、オーディオ統合など、多数の新機能が追加されましたが、その中でも特筆すべきクライアント機能の1つに、ロケーション認識が挙げられます。ここでは、ロケーション認識機能についてご紹介し、その仕組みと活用方法について説明します。また、ロケーション・データを使用して地域固有のサービスを提供するConciergeプラグインに関するコードをご紹介します。 この記事は、Lotus Sametimeを初めて使用するユーザーおよび使用経験のあるユーザー、Lotus Sametimeの機能拡張に関心のあるアプリケーション開発者を対象としています。 ロケーション認識とはロケーション認識の概念は、ユーザーの「応答可」ステータスと似ています。その基本は、ユーザーがオンラインに接続していることを互いに通知することです。この概念を拡大したものがロケーション認識です。ロケーション認識機能を使用して、ユーザーは自分のロケーション(ユーザーの地理情報)を他のユーザーに知らせることにより、自分が現在どこにいるか相手が分かるようにします。さらに、ロケーション情報を使用して、そのロケーションに基づいたサービスを受けることができます。Lotus Sametime 7.5では、コンタクト・リストの右上に、ユーザーの現在のロケーション情報が表示されます。図1は、ユーザーの現在のロケーションがアメリカ合衆国マサチューセッツ州ケンブリッジであることを示しています。図1. ロケーション情報 ![]() 自分のロケーション情報を他のユーザーと共有すると、他のユーザーは、Lotus Sametime Connectの次の2箇所でそのロケーション情報を確認できます。
![]()
ロケーション認識の仕組みLotus Sametime 7.5では、ロケーション認識にクライアント・ベースのプロファイル・メカニズムを採用しています。現在、ロケーション認識機能を拡張するためのサーバー・ベースの自動プロファイル・メカニズムをテスト中です。この記事では、この2つのロケーション検出について見ていきます。クライアント・ベースのロケーション認識 クライアント・ベースのロケーション認識では、IPベースのプロファイル・メカニズムを使用します。IPベースのロケーション認識では、サブネット、ネット・マスク、ルーターのMacアドレスなど、ユーザーのネットワーク情報を使用します。このメカニズムでは、各ユーザーはロケーションが新しくなるたびに自分の詳細な地理情報を手動で入力する必要があります。入力したデータは、ユーザーのマシンのプロファイルに保存されるため、以前のロケーションに戻るたびに、ユーザーが既に入力した情報に基づいて自動的にそのロケーション情報が入力されます。入力されない場合は、図4のようなアラートが表示され、その地域の情報を入力するように求められます。 図4. ロケーション・アラート ![]() このアラートをクリックすると、「設定」ダイアログ・ボックスの「ロケーション設定」にロケーション詳細が表示されます(図5を参照)。市区町村、都道府県、国、郵便番号、タイム・ゾーン、電話番号の入力が求められます。 図5. 「設定」ダイアログ・ボックスの「ロケーション設定」 ![]() サーバー・サイドのロケーション認識 IBMでは、ユーザーのロケーションを自動検出するサーバー・サイドのソリューションを社内に導入しました。このソリューションは、製品として将来リリースされる可能性があります。製品として提供されるときには、サーバー・サイドのメカニズムがクライアント・サイドのメカニズムと連携できるようになる予定です。 サーバー・サイドのロケーション認識にも、IPベースの検出メカニズムが使用されます。IPベースのロケーション認識では、サブネット、ネット・マスク、ルーターのMacアドレスなど、ユーザーのネットワーク情報を使用します。この情報は、他のネットワーク・ロケーション間マッピング機能を持つ中央データベースに保存されている地理情報と連結されます。仮想プライベート・ネットワーク(VPN)と区別するため、クライアントが接続する最初のルーターのMacアドレスを識別要素として用います。 データベースにネットワーク詳細が存在しないロケーションに初めてアクセスすると、Lotus Sametime Connectクライアントにより、「設定」ダイアログ・ボックスの「ロケーション設定」(図5を参照)に情報の入力を求めるメッセージが表示されます。市区町村、都道府県、国名、郵便番号、タイム・ゾーン、電話番号の入力が求められます。 ロケーション設定情報を入力すると、中央データベース内にそのロケーションのエントリーが作成されます。このエントリーはネットワーク情報と連結され、Lotus Sametime Connectクライアントによって自動的に検出されます。次回に別のユーザーが同じロケーション(同じサブネットとルーター)にアクセスすると、そのサブネットのエントリーが既にデータベースに存在しているため、ロケーション情報が自動的にそのユーザーに提供されます。簡単なクエリーによって、その地域のすべてのユーザーに対するプッシュ型のロケーション検出が可能になります(図6を参照)。 図6. ロケーション検出 ![]() 例えば、ネットワーク上のユーザー1がサブネット129.1.1.0およびMacアドレス00:06:2A:CE:F4:A9のロケーション詳細を「Cambridge, MA, US」と入力すると、以降、そのネットワークにログオンする他のすべてのユーザーには、そのロケーションとして自動的に「Cambridge, MA, US」が割り当てられます(図7を参照)。割り当てられたデータは、誰でもそのユーザーのいる場所を確認する際に見ることができます。 図7. ネットワーク・ロケーション間のマッピング ![]() このサーバー・サイドのメカニズムでは、投票システムに基づく自己学習モデルを使用します。ユーザーが特定のネットワークの地理情報を入力することにより、ネットワーク・ロケーション間のマッピングが中央データベースに作成されるたびに、1票としてカウントされます。投票システムによってこのデータが検証されます。検証プロセスは、そのロケーションに対して行われた投票履歴に基づいて自動的に実行されます。ユーザーは自分の投票を変更することができます。例えば、特定のロケーションを23人のユーザーが「Cambridge, MA, US」として確認し、別の24人のユーザーがそのロケーションを「Poughkeepsie, NY, US」に書き換えた場合、投票システムはそのネットワーク・ロケーションのエントリーを「Poughkeepsie, NY, US」に変更します。このように、自己学習型の堅固なシステムにより、そのロケーションにログインする新規のユーザーに最も確度の高いデータを提供することができます。 この技術にはデータのリポジトリーが必要ではあるものの、他のリポジトリー・ベースのソリューションと違って、このシステムは自律性を備えています。最小限のユーザー対話またはシステム管理を行うだけで、ユーザーはロケーション情報を更新できます。プロセス全体が透過的にユーザーに見えるため、高い信頼性を提供できます。このモデルでは、ネットワーク・ロケーション間マッピングの誤りが少なくなるため、ロケーション・データの信頼性が増します。 サーバー・ベースのメカニズムは、IBM ResearchによるGrapevineプロジェクトの成果です。このメカニズムが使用できるようになれば、Lotus Sametime 7.5に簡単に組み込むことができます。そのため、Lotus Sametime 7.5上で両方のメカニズムが連携できるようになります。クライアントに特定のロケーションに関するローカル・プロファイルが存在する場合、そのローカル・プロファイルが使用されます。存在しない場合は、サーバー・ベースのメカニズム(組み込まれている場合)にロケーション情報が照会されます。 ユーザー・インターフェースも、両方のメカニズムで共有できます。「設定」ダイアログ・ボックスでロケーション設定を入力または編集すると、Lotus Sametimeではサーバー・エントリーとクライアント・プロファイルの両方が更新されます。 クライアント・ベースまたはサーバー・ベースのいずれのメカニズムを使用しているかにかかわらず、ロケーション情報を他のユーザーやアプリケーションと共有することも、共有しないように選択することもできます。同様にして、新しいロケーションが検出されたときにアラートが表示されないようにすることもできます。これらの設定はすべて、「設定」ダイアログ・ボックスの「ロケーション設定」で行います。
Sametimeロケーション・サーバーLotus Sametimeサーバーは、クライアント・メカニズムまたはサーバー・メカニズムからロケーション・オブジェクトとして取り出したロケーションを保存します。ロケーション・オブジェクトは、市区町村、都道府県、国、郵便番号、ユーザー定義のロケーション名、およびタイム・ゾーンで構成されます。ユーザーの地理上のロケーションが上記のメカニズムのいずれかで更新されると、その情報がLotus Sametimeサーバーに渡されます。 Lotus Sametimeサーバーは、ユーザーがオンラインに接続している間、この情報を属性として一時的に保存します。また、Lotus Sametimeサーバーは、ユーザーが自分のロケーションの共有を選択した場合に、ユーザーのロケーションを他のユーザーおよびアプリケーションに通知します。 クライアント・メカニズムまたはサーバー・メカニズムから集約されたロケーション情報には、プラグイン用のLotus Sametime 7.5 Software Development Kit (SDK)を介してアクセスできます。オンライン接続を終了すると、クライアント/サーバー・メカニズムとは異なり、Lotus Sametimeサーバー上のロケーション情報は失われます。
Sametimeプラグインのロケーション認識クライアントが収集したロケーション情報は、ユーザーが作成したどのプラグインでも使用できます。このデータはLotus Sametime SDKを介して公開されます。各プラグインは、ユーザーの現在のロケーションに関する情報にアクセスできます。ロケーション情報の内容は次のとおりです。
この情報を使用して、ロケーション・ベースのサービスを作成できます。ロケーション・ベースのサービスとは、ロケーション・データを使用してその地域のローカル情報を提供するサービスをいいます。例えば、近隣のレストラン、ガソリン・スタンド、映画館などの情報サービスを提供できます。 Conciergeプラグイン 先に進む前に、Lotus Sametimeプラグイン開発について知ることにより、この後のConciergeプラグインの説明が理解しやすくなります。プラグイン開発およびLotus Sametime SDKについて記載した、以前のLotus Sametime 7.5関連記事については、『リソース』のセクションを参照してください。ここでは、読者が拡張ポイントについて熟知し、Eclipse SDK/プラットフォームについて多少の知識があることを想定しています。 図8の例は、ロケーション・データを使用して、Lotus Sametime 7.5で地域の天気情報などのコンシェルジュ・サービスがPoughkeepsie, NY, USにいるユーザーに提供される仕組みを示しています。 図8. Poughkeepsie, NYのロケーション関連情報 ![]() Conciergeプラグインは、ユーザーがPoughkeepsie, NY, USにいることを検知し、その情報はすべてのプラグインに提供されます。プラグインでは、そのロケーション情報を使用して地域の天気情報や、地域のレストラン、IBMプリンターおよびカフェテリアの場所を検索して、ユーザーに提供します。 天気情報は、 地域のレストランの場合は、保有しているロケーション情報でGoogle Mapsを検索し、あらかじめURLを入力します。次のURLの#city# and #state#を、保有している市区町村と都道府県の情報に置き換えます。 http://local.google.com/local?f=l&hl=en&q=restaurant&near=#city#,+#state# &ie=UTF8&z=13&om=1同様にして、IBMプリンターおよびカフェテリアの該当するURLを示します。 Conciergeプラグインは、「ミニ・アプリケーション」領域の拡張ポイントを使用して、ロケーション・ベースのプラグインを表示します。「ミニ・アプリケーション」領域とは、プラグイン用に拡張可能なコンタクト・リストの下部にある領域です。Lotus Sametime SDKのBuddyNoteなどのサンプル・プラグインでは、「ミニ・アプリケーション」領域を使用してデータを表示します。 次のように、Lotus Sametimeのプラグインはそれぞれのplugin.xmlにある拡張ポイント、com.ibm.collaboration.realtime.imhub.miniAppsを使用できます。
Conciergeプラグインは、初期値「false」を持つAbstractMiniAppクラスのisInitiallyVisible()メソッドを使用します。isInitiallyVisible()メソッドの値「false」は、そのプラグインが最初は表示されないことを意味します。Lotus Sametime 7.5のメッセージ・イベントにより、ユーザーのロケーションが変更されたことがプラグインに通知された後、プラグインが起動して表示されます。
この時点で、AbstractMiniAppクラスからcreateControl(Composite parent)メソッドが呼び出されます。createControlメソッドにより、Conciergeクラスの親Compositeが渡され、「ミニ・アプリケーション」領域でのデータ表示に使用されます。Conciergeプラグインでは、Webブラウザー・ウィジェットを使用してURLから天気情報を表示します。
まとめこの記事では、IBM Lotus Sametime 7.5でロケーション認識がどのように行われるについて詳しく説明しました。また、ロケーション情報を収集し共有するさまざまな方法についてもご紹介しました。さらに、Lotus Sametime SDKのロケーション・オブジェクトを使用して、そのオブジェクトを「ミニ・アプリケーション」領域に表示する方法について、その概要を示しました。別の記事 『Developing a location awareness plug-in for IBM Lotus Sametime Connect 7.5』(US) では、ロケーション・データを使用してロケーション・ベースの天気情報プラグインを作成する方法について詳しい説明が記載されています。ユーザーのロケーション情報を取得し、その情報を使用して地域の天気を確認する手順をステップごとに確認することができます。
リソース学ぶ
製品/技術ダウンロード
議論する
筆者について(原文のまま)Shruti Gandhi is the lead architect for location-based services for real-time collaboration. She is also a developer on the IBM Lotus Sametime Connect V7.5 client. She is in the process of finishing her Masters of Science in Computer Science at Columbia University.
|
||||||||||||||||||||||||||||||||||||||||||||||||||