モバイル環境におけるアクティブデータベース
を用いた地理情報システムについて
寺田 努 塚本昌彦 西尾章治郎
大阪大学
発表内容
•
モバイル環境において,位置依存サービ
スを実現するシステムActiveGISについて.
l
位置依存サービスについて.
l
地理情報記述言語G-XMLについて.
l
G-XML処理言語ECA-MLについて.
l
ECA-MLを用いたサービス例.
研究の背景
•
モバイルコンピューティング環境の普及
•
GPS機器が付属した携帯端末の登場
l
ロカティオ(エプソン),GORILLA(サンヨー),
PROTREK(カシオ),ポケナビ(エンペックス)など
•
地図ソフトとGPS機器の連携
地理情報システムを屋外で利用できるようになった
固定ネット ワーク 移動体 固定ホスト 移動体サーバ セルサーバが無線で
オブジェクト情報を送信
第一ビル 第三ビル 目的地想定環境
u屋外で携帯端末を持ち歩く(個人情報管理).
uGPS等を用いて自分の位置が特定できる.
u携帯端末は無線通信機能をもっている.
u移動体サーバがオブジェクト情報を配信.
想定するサービス
•
観光名所での案内.
•
アミューズメント施設でのナビゲーション.
•
本屋での書籍検索.
位置依存性の高い
アプリケーションが必要
従来のシステムの問題点
•
多様な位置依存サービスへの要求に対応できない.
l
各施設固有のサービスが必要.
•
情報の統合利用が難しい.
l
システム,アプリケーションを統合できない.
•
柔軟なデータ管理機構をもっていない.
l
必要なデータのみを蓄積したい.
l
データベースとの連携が取りたい.
l
端末上でデータ収集を行いたい.
l
必要なデータが自動的に記録されてほしい.
ActiveGIS
•
地理情報システムの基盤となるシステム.
l
アクティブデータベースを基盤としている.
l
柔軟なデータ管理機構をもつ.
l
ECAルールによりさまざまな位置依存サービスを提供.
l
突発的な事象を取り扱う.
l
地理情報記述言語G-XMLをデータ形式の統一
フォーマットとして利用.
E(イベント) :
データ更新
C(コンディション):品数が一定以下
A(アクション) :発注票に書込み
商品数が一定以下になった時に自動的に
発注作業をしたい...
E
E
vent
vent
C
C
ondition
ondition
A
A
ction
ction
発生した事象
発生した事象
条件
条件
実行する操作
実行する操作
地理情報記述G-XML(Ver1.0)
•
XMLを用いた地理情報記述言語の一つ.
l
GML,POIX,RWML,NVML...
•
4種類のDTDに基づく実装仕様があり,それらを
自由に組合せて利用できる.
<RW-GXML version="1.0A"> <Feature Fid="1" Thame="本屋"> <Polygon> <Coordinate>15300000,16350000</Coordinate> <Coordinate>15380000,16350000</Coordinate> <Coordinate>15380000,16400000</Coordinate> <Coordinate>15300000,16400000</Coordinate> </Polygon> </Feature> </RW-GXML>本屋
〒
ECA-ML
•
ECAルールを用いて,受信・
表示・
変換処理を行なう.
•
ECAルールをXML形式で表現したECA-MLの提案.
l
ECA-MLを場所に応じて配信することで,位置依存アプリケー
ションを実現する.
l
アクション部にXSLT記述を書けるので,容易にG-XMLの
変換処理が行なえる.
G-XMLコンテンツ
ECA-ML
ECA-ML
•
アクティブデータベースの動作記述言語である
ECAルールをXML形式で表現.
<ECARULE id=“Rule1" scope="entire"> <EVENT type="CLOSE"/>
<CONDITION> <AND>
<ITEM type="LESS_THAN">NEW.distance, 50</ITEM> <ITEM type="=">NEW.theme, "本屋"</ITEM>
</AND>
</CONDITION> <ACTION>
<ITEM type="QUERY" ret="QDATA">
SELECT Name FROM myProfile WHERE DataType = 'reqBook' </ITEM> <ITEM type="SEND"> Header:BookRequest, BookName:%s2 <VARIABLE>%s2, QDATA.Data</VARIABLE> </ITEM> </ACTION> </ECARULE>
ECA-ML
•
アクティブデータベースの動作記述言語である
ECAルールをXML形式で表現.
<ECARULE id=“Rule1" scope="entire"> <EVENT type="CLOSE"/>
<CONDITION> <AND>
<ITEM type="LESS_THAN">NEW.distance, 50</ITEM> <ITEM type="=">NEW.theme, "本屋"</ITEM>
</AND>
</CONDITION> <ACTION>
<ITEM type="QUERY" ret="QDATA">
SELECT Name FROM myProfile WHERE DataType = 'reqBook' </ITEM> <ITEM type="SEND"> Header:BookRequest, BookName:%s2 <VARIABLE>%s2, QDATA.Data</VARIABLE> </ITEM> </ACTION> </ECARULE>
記述できるイベント
• データベース操作
• パケット受信
• セルへの接続・切断
• タイマの発火
• オブジェクトへの接近・離脱
ECA-ML
•
アクティブデータベースの動作記述言語である
ECAルールをXML形式で表現.
<ECARULE id=“Rule1" scope="entire"> <EVENT type="CLOSE"/>
<CONDITION> <AND>
<ITEM type="LESS_THAN">NEW.distance, 50</ITEM> <ITEM type="=">NEW.theme, "本屋"</ITEM>
</AND>
</CONDITION>
<ACTION>
<ITEM type="QUERY" ret="QDATA">
SELECT Name FROM myProfile WHERE DataType = 'reqBook' </ITEM> <ITEM type="SEND"> Header:BookRequest, BookName:%s2 <VARIABLE>%s2, QDATA.Data</VARIABLE> </ITEM> </ACTION> </ECARULE>
コンディション指定
AND・
OR条件が利用可能
ECA-ML
•
アクティブデータベースの動作記述言語である
ECAルールをXML形式で表現.
<ECARULE id=“Rule1" scope="entire"> <EVENT type="CLOSE"/>
<CONDITION> <AND>
<ITEM type="LESS_THAN">NEW.distance, 50</ITEM> <ITEM type="=">NEW.theme, "本屋"</ITEM>
</AND>
</CONDITION> <ACTION>
<ITEM type="QUERY" ret="QDATA">
SELECT Name FROM myProfile WHERE DataType = 'reqBook' </ITEM> <ITEM type="SEND"> Header:BookRequest, BookName:%s2 <VARIABLE>%s2, QDATA.Data</VARIABLE> </ITEM> </ACTION> </ECARULE>
記述できるアクション
• データベース操作
• パケット送信
• ECAルールの格納・
削除
• ECAルールの停止・再開
• タイマ設定
• 画面表示
• XML処理
• XSLT変換
サービス例
•
ActiveGIS端末を持って遊園地に出かける場合
を想定する.
敷地内
入り口
ディスプレイ画面
サービス例
•
ActiveGIS端末を持って遊園地に出かける場合
サービス例
•
セルに入るとオブジェクト情報やECAルールを受信.
サービス例
•
XSLTにより,空き駐車場のデータが強調される.
<Feature fid="3" theme="観覧車"> <Point oid="10">
<PointStyle pcolor="AQUAMARINE" psize="30" /> <Coordinate>48781000, 12492260</Coordinate> </Point> <TextLabel oid="2"> <Coordinate>48780989, 12492250</Coordinate> <Caption>HEP FIVE内大観覧車</Caption> </TextLabel>
<Property name="StoreName" >観覧車</Property> </Feature>
G−XML
コンテンツ
ECA-ML
<ECARULE id=“Rule1" scope="entire"> <EVENT type=“RECEIVE"/>
<CONDITION>
<ITEM type=“=”>NEW.Header, “駐車指定"</ITEM> </CONDITION>
<ACTION>
<ITEM type=“XSLT" ret=“RetDATA"> %s <VARIABLE>%s, NEW.XSLT</VARIABLE> </ITEM> <ITEM type=“XML_PROC"> %s2 <VARIABLE>%s2, RetData</VARIABLE> </ITEM> </ACTION> </ECARULE>
サービス例
•
入口に移動すると自動的に最適な経路や所要時間
を示してくれる.
推奨経路
待ち時間メリーゴーランド:
10
スーパーカー:
20
ジェットコースター:
15
サービス例
•
G-XMLとDisplayアクションで実現.
推奨経路
待ち時間メリーゴーランド:
10
スーパーカー:
20
ジェットコースター:
15
<ECARULE id=“Rule2" scope="entire"> <EVENT type=“CLOSE"/>
<CONDITION> <AND>
<ITEM type="LESS">NEW.distance,50</ITEM> <ITEM type=“=”>NEW.theme, “入口"</ITEM> </AND>
</CONDITION>
<ACTION>
<ITEM type=“QUERY" ret=“RetDATA"> SELECT NAME FROM mySchedule WHERE TYPE=‘RequestRide’ </ITEM> <ITEM type=“SEND"> MHS,”Header:RequestInfo”,”Ride:%s” <VARIABLE>%s, RetData</VARIABLE> </ITEM> </ACTION> </ECARULE>
ゴーカート
RequestRide
メリーゴーランド
RequestRide
ジェットコース
ター
RequestRide
データベース内容を送信
}
サービス例
•
Semantic G-XMLとDisplayアクションで実現.
推奨経路
待ち時間メリーゴーランド:
10
スーパーカー:
20
ジェットコースター:
15
<ECARULE id=“Rule3" scope="entire"> <EVENT type=“CLOSE"/>
<CONDITION> <AND>
<ITEM type="LESS">NEW.distance,50</ITEM> <ITEM type=“=”>NEW.theme, “入口"</ITEM> </AND>
</CONDITION>
<ACTION>
<ITEM type=“QUERY" ret=“RetDATA"> SELECT NAME FROM mySchedule WHERE TYPE=‘RequestRide’ </ITEM> <ITEM type=“SEND"> MHS,”Header:RequestInfo”,”Ride:%s” <VARIABLE>%s, RetData</VARIABLE> </ITEM> </ACTION> </ECARULE>
<ECARULE id=“Rule3" scope="entire"> <EVENT type=“RECEIVE"/> <CONDITION> <ITEM type=“=">NEW.header,RideInfo</ITEM> </CONDITION> <ACTION> <ITEM type=“XML_PROC"> %s <VARIABLE>%s=NEW.SGXML</VARIABLE> </ITEM> <ITEM type=“DISPLAY"> MSGBOX,”待ち時間”,%s2 <VARIABLE>%s2, New.Data</VARIABLE> </ITEM> </ACTION> </ECARULE>