本文へジャンプ

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


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

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

  • 閉じる [x]

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

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

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


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

  • 閉じる [x]

IBM Lotus Sametime 7.5 のロケーション認識

Shruti Gandhi, Sametime developer, IBM
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.

概要: IBM Lotus Sametime 7.5のロケーション認識機能では、ユーザーが現在どこにいても、その場所を検知できます。このロケーション認識を可能にするサーバー・サイドとクライアント・サイドのメカニズムについて知り、ロケーション・データを使用して地域固有のサービスを提供するプラグインの先端技術を見ていきましょう。

日付:  2006年 9月 05日
レベル:  初級 この記事の原文:  英語
アクティビティー: 2543 ビュー
お気軽にご意見・ご感想をお寄せください: 


IBM Lotus Sametime 7.5は、リアルタイム・コラボレーションのメジャー・アップグレード版です。これは、インスタント・メッセージングのユーザー・エクスペリエンスをアップグレードした次世代クライアントであり、Eclipseフレームワーク上で構築される拡張可能なプラグイン・モデルを提供します。したがって、単なるツールにとどまらず、イノベーションのためのプラットフォームとして使用できます。 簡易検索、ミニ・アプリケーション、ビジネス・カード、オーディオ統合など、多数の新機能が追加されましたが、その中でも特筆すべきクライアント機能の1つに、ロケーション認識が挙げられます。ここでは、ロケーション認識機能についてご紹介し、その仕組みと活用方法について説明します。また、ロケーション・データを使用して地域固有のサービスを提供するConciergeプラグインに関するコードをご紹介します。 この記事は、Lotus Sametimeを初めて使用するユーザーおよび使用経験のあるユーザー、Lotus Sametimeの機能拡張に関心のあるアプリケーション開発者を対象としています。

ロケーション認識とは

ロケーション認識の概念は、ユーザーの「応答可」ステータスと似ています。その基本は、ユーザーがオンラインに接続していることを互いに通知することです。この概念を拡大したものがロケーション認識です。ロケーション認識機能を使用して、ユーザーは自分のロケーション(ユーザーの地理情報)を他のユーザーに知らせることにより、自分が現在どこにいるか相手が分かるようにします。さらに、ロケーション情報を使用して、そのロケーションに基づいたサービスを受けることができます。Lotus Sametime 7.5では、コンタクト・リストの右上に、ユーザーの現在のロケーション情報が表示されます。図1は、ユーザーの現在のロケーションがアメリカ合衆国マサチューセッツ州ケンブリッジであることを示しています。


図1. ロケーション情報

自分のロケーション情報を他のユーザーと共有すると、他のユーザーは、Lotus Sametime Connectの次の2箇所でそのロケーション情報を確認できます。

  • コンタクト・リスト上でマウス・ポインターを置くと表示されるビジネス・カード(図2を参照)

図2. ビジネス・カード

  • チャット・ウィンドウのビジネス・カード(図3を参照)

図3. チャット・ウィンドウ


ロケーション認識の仕組み

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プリンターおよびカフェテリアの場所を検索して、ユーザーに提供します。

天気情報は、National Oceanic and Atmospheric Administration Web サイト(US) から取得します。Google Maps(US) を使用して地域のレストランを検索します。またIBMサービスを使用して、ローカル・プリンターやサイトのカフェテリアを検索します。ユーザーの個人ロケーションを検出すると、そのロケーション情報でNational Oceanic and Atmospheric AdministrationのWebサイトを呼び出して、XML形式で天気情報を取得します。取得したXMLデータは描画形式に変換され、Lotus Sametime 7.5の「ミニ・アプリケーション」領域に表示されます。

地域のレストランの場合は、保有しているロケーション情報で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を使用できます。


<extension point="com.ibm.collaboration.realtime.imhub.miniApps">
      <miniApp
            category="shelf.applications"
            class="com.ibm.collaboration.realtime.concierge.Concierge"
            displayName="WeatherHead"
            icon="images/ST_Weather.png"
            id="com.ibm.collaboration.realtime.concierge.Concierge"
            maxHeight="105"/>
   </extension>

Conciergeプラグインは、初期値「false」を持つAbstractMiniAppクラスのisInitiallyVisible()メソッドを使用します。isInitiallyVisible()メソッドの値「false」は、そのプラグインが最初は表示されないことを意味します。Lotus Sametime 7.5のメッセージ・イベントにより、ユーザーのロケーションが変更されたことがプラグインに通知された後、プラグインが起動して表示されます。


public boolean isInitiallyVisible() {
	if (URLvalid) {
		return true;
}
	return false;
}

この時点で、AbstractMiniAppクラスからcreateControl(Composite parent)メソッドが呼び出されます。createControlメソッドにより、Conciergeクラスの親Compositeが渡され、「ミニ・アプリケーション」領域でのデータ表示に使用されます。Conciergeプラグインでは、Webブラウザー・ウィジェットを使用してURLから天気情報を表示します。


public Control createControl(Composite parent) {
		Composite composite = new Composite(parent,SWT.NULL);	
		composite.setLayout(new FillLayout());		
		final Browser browser = new Browser(composite, SWT.NONE);	
		browser.setURL(“www.abc.com”);			
		browser.setData("refresh", "false");		
		composite.setEnabled(true);
		composite.layout();
		return composite;
	}


まとめ

この記事では、IBM Lotus Sametime 7.5でロケーション認識がどのように行われるについて詳しく説明しました。また、ロケーション情報を収集し共有するさまざまな方法についてもご紹介しました。さらに、Lotus Sametime SDKのロケーション・オブジェクトを使用して、そのオブジェクトを「ミニ・アプリケーション」領域に表示する方法について、その概要を示しました。別の記事 『Developing a location awareness plug-in for IBM Lotus Sametime Connect 7.5』(US) では、ロケーション・データを使用してロケーション・ベースの天気情報プラグインを作成する方法について詳しい説明が記載されています。ユーザーのロケーション情報を取得し、その情報を使用して地域の天気を確認する手順をステップごとに確認することができます。


参考文献

学ぶために

製品や技術を入手するために

  • developerWorksの Lotus Downloads (US) よりIBM Lotus Sametime 7.5のSDK(ソフトウェア開発ツールキット)がダウンロードできます。

  • Eclipseのダウンロードページ Eclipse downloads home (US) からEclipseのSDK(ソフトウェア開発ツールキット)がダウンロードできます。

議論するために

著者について

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.

不正使用の報告のヘルプ

不正使用の報告

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


不正使用の報告のヘルプ

不正使用の報告

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


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=340633
ArticleTitle=IBM Lotus Sametime 7.5 のロケーション認識
publish-date=09052006
author1-email=
author1-email-cc=

タグ

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

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

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

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

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