2004年度 SFC研究所プロジェクト補助事業 報告
無線LANアクセス網を利用した位置情報共有システムの構築と応用
慶應義塾大学 環境情報学部 専任講師 南 政樹
無線LANはその手軽さと簡便さから、非常に多くの場所で用いられている。
特に家庭では、ネットワーク用に新たな配線が必要ないことから普及しはじめている。
無線LANは電波を利用するため、アクセスポイントとそれにアソシエーションするクライアントPCは、物理的に近い距離にいなければ通信が成立しない。
このことは、逆に言えばアクセスポイントとクライアントPCの物理的位置の近さを保証することになり、位置に応じたサービス提供を目的とするアプリケーションにとっては、使い勝手の良い情報となりうる。
本研究では、この関係を用いてアクセスポイントの識別子(BSSID)から位置を特定し、それを元にデータベースに問い合わせることで新たな情報へのアクセスを行うアプリケーションを作成した。
このアプリケーションによって、たとえばキャンパス内で、時間と場所に応じた適切な情報提供を行うことができるようになる。
また、データベースと本アプリケーションとの通信方式を公開すると共に、簡便なインターフェイスで誰でも新たなサービスが提供できるようなプラットフォームを用意することで、新たなサービス提供を共通のアプリケーションで行うことができる。
システムの稼働環境は下記の通り定める。
項番 |
ソフトウェア |
条件 |
1 |
OS |
Microsoft Windows Server 2003 Service Pack1 DDKが対象とするオペレーティングシステム(Windows2000については SP4以上) |
2 |
Webブラウザ |
Microsoft Internet Explorer 6.0 SP2 (ただしOS上の既定ブラウザとして指定されていること) |
項番 |
ハードウェア |
条件 |
1 |
PC |
Microsoft Windows Server 2003 Service Pack1 DDKで開発されたアプリケーションが正常に動作すること |
2 |
無線LAN I/F |
NDISドライバ経由で本システム稼働に必要な情報の読み取りが可能であること |
本アプリケーションを使用するための条件を下記に定める。
(1) IEEE802.11bネットワークカードが正常に使用できる状態であること
(2) IEEE802.11bネットワークカードで正常にTCP通信ができる状態であること
(3) 本アプリケーション使用者がオペレーティングシステム上のAdministrator権限を有すること
(4) 本ソフトウェアは、無線LANカードからの情報を得る際に、WindowsのWirelessConfiguration(Windows XPではWireless Zero Configuration)を一時的にとめるため、情報取得中はWirelessConfigurationを利用している機能は利用できない。
本アプリケーションで想定するネットワークは以下のとおりであり、本ソフトウェアは、クライアントPC上で動作する。
クライアントPCでは、現在接続している無線アクセスポイント(以下AP)のBSSIDを取得し、位置管理サーバへ送信する。位置管理サーバでは、BSSIDから現在クライアントがどの位置にいるのかを検索し、必要な情報をクライアントPCに送信する。
クライアントPCでは、位置管理サーバから受け取った情報をユーザの画面に表示する。
クライアントPCソフトウェアの機能構成は以下のとおりである。
項番 |
機能 |
説明 |
1 |
一定周期機能 |
定期的に状態管理機能を呼び出す機能 |
2. |
状態管理機能 |
無線LANの状態を管理する機能。 |
3 |
NDIS UIO通信機能 |
NDIS UIOを利用し、無線LANデバイスの状態を取得する機能。 |
4 |
位置管理サーバ通信機能 |
位置管理サーバへ現在位置を通知し、それに対する応答を取得する機能。 |
5 |
Webサーバ通信機能 |
Webサーバと通信し、現在位置に該当する地図データを取得する機能。 |
6 |
設定ファイル入出力機能 |
設定ファイルを管理する機能 |
7 |
情報設定機能 |
本ソフトウェアが動作するために必要な情報を設定する機能。 |
8 |
メイン画面表示機能 |
ユーザとのI/Fを管理し、現在の位置や地図情報などを表示する機能。 |
番号 |
項目 |
説明 |
1 |
閉じるボタン |
設定内容を破棄して、ウインドウを閉じる |
2 |
利用無線LANデバイスコンボボックス |
本アプリケーションで利用する無線LANデバイスを選択する |
3 |
自動起動チェックボックス |
ログインと同時に自動起動を行うかどうかを選択する |
4 |
詳細設定ボタン |
詳細設定部分も表示する。 |
5 |
キャンセル |
設定内容を破棄して、ウインドウを閉じる |
6 |
OKボタン |
設定ファイル入出力機能を利用して、設定内容を保存する。その後、ウインドウを閉じる。 設定内容の保存に失敗した場合は、エラーダイアログを表示し、ウインドウを閉じる。 |
番号 |
項目 |
説明 |
7 |
位置管理サーバ |
位置管理サーバのURIを設定する |
8 |
ポーリング間隔 |
ポーリング間隔(秒)を設定する。 |
9 |
基本設定ボタン |
基本設定画面のみの表示に切り替える |
項番 |
名称 |
説明 |
1 |
電波状況 |
現在接続している無線の電波状況とチャンネルを表示する。 |
2 |
閉じる |
ウインドウを非表示にし、タスクトレイに入れる。 |
3 |
地図表示領域 |
Webサーバから取得した地図を表示する。 |
4 |
BSSID情報表示領域 |
NDIS UIO機能で取得した、現在利用可能なBSSIDの一覧を表示する。表示されているBSSIDをクリックすると、該当するBSSIDの名称にニックネームをつけることができ、次回以降該当するBSSIDはニックネームにて表示することができる。 現在接続中のBSSIDについては赤色表示する。 |
5 |
位置情報文章表示領域 |
位置管理サーバから取得した、位置情報文章を表示する。表示内容はワードラップして表示し、表示領域に収まらない場合は、スクロールバーを表示する。 |
6 |
URL表示領域 |
位置管理サーバから取得した、位置情報文章を表示する。 |
7 |
Ticker表示領域 |
位置管理サーバから取得した、Tickerを表示する。 |
8 |
ステータスバー |
現在の状態や、エラー情報を表示する。 |
タスクトレイのアイコンをクリックすると、メニューを表示する。
項番 |
名称 |
説明 |
1 |
画面表示 |
メインウインドウを表示する。メインウインドウがすでに表示されているときは、フォーカスをあて、一番手前に表示する。 |
2 |
情報設定 |
情報設定画面を呼び出す。 |
4 |
デバイス選択 |
利用するデバイスを選択する。 |
3 |
終了 |
プログラムを終了する。 |
メインウインドウを表示していない場合に、ユーザへ通知を行いたい場合は画面の右下にポップアップ表示を行う。ポップアップをクリックすると、メインウインドウを表示する。
本アプリケーションはHTTP(Hyper Text Transfer Protocol)を用いて通信を行う。
通信電文は下記をGETメソッドを用いて送信する。なお、送信・応答コマンドの順序は規定しない。また、COMMANDにより要求情報の種別を指定できるが、本バージョンにおいては固定1コマンドとする。受信電文も送信電文同様「項目名=値&項目名=値」を本文中に記述し、最終文字は改行文字(CR+LF)とする。
なお、送受信電文はともにRFC2396に従いエンコードを行う。
i) 本アプリケーション→サーバ 要求電文
番号 |
項目名 |
長さ |
値 |
形式 |
省略可 |
1 |
VERSION |
1byte |
コマンドのバージョン |
1(固定) |
× |
2 |
COMMAND |
任意 |
操作コマンド |
GETAREA(固定) |
× |
3 |
BSSID |
17byte |
通信中BSSID |
00:00:00:00:00:00 |
× |
4 |
MAC |
17byte |
自己MACアドレス |
00:00:00:00:00:00 |
× |
ii) サーバ→本アプリケーション 応答電文
番号 |
項目名 |
長さ |
値 |
形式 |
省略可 |
1 |
VERSION |
1byte |
コマンドのバージョン |
1(固定) |
× |
2 |
COMMAND |
任意 |
応答コマンド |
SENDAREA(固定) |
× |
3 |
RESULT |
2byte |
応答結果 |
0(正常応答) 1(要求電文異常) 2(要求結果なし) 8(利用停止中) 9(致命的エラー) |
× |
4 |
IMAGEURL |
任意 |
画像のURL |
URI形式 |
○ |
5 |
TICKER |
任意 |
Ticker用文字列 |
文字列 |
○ |
6 |
TEXT |
任意 |
位置情報文章 |
文字列 |
○ |
7 |
INFOURL |
任意 |
位置情報WEBページURL |
URI形式 |
○ |
※ 画像のURLはhttpプロトコル(SSLでないもの)であること。
※ Ticker用文字列、位置情報文章の漢字コードはUNICODE(UTF-8)であること。
本アプリケーションはHTTP(Hyper Text Transfer Protocol)を用いて通信を行う。
画像ファイルのフォーマットは、bmp, jpg, gif, pngのいずれかで、サイズは320x240であること。
· RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1
· RFC 2396 - Uniform Resource Identifiers (URI): Generic Syntax