XMLデータベースとGoogleマップを用いた地域安全マップシステムの開発

平成22年度 卒業研究発表会
XML データベースと Google マップを用いた地域安全マップシステムの開発
著者 笠川敦史 指導教員 1 . は じ め に 近 年 、 増 え 続 け て い る 莫 大 な 情 報 を 高 速 に 保
存・管 理・抽 出 で き る シ ス テ ム に デ ー タ ベ ー ス (DB)
が あ る 。DB の 種 類 の ひ と つ に XML デ ー タ ベ ー ス が
あ る 。 こ れ は 、 情 報 を 保 存 す る 形 式 に XML ド キ ュ
メ ン ト を 用 い る DB の こ と を 言 う 。 本 研 究 で は 、 以 前 か ら 斉 藤 卒 研 室 で 研 究 さ れ て
き た 地 域 安 全 マ ッ プ シ ス テ ム に XML デ ー タ ベ ー ス
を実装したシステムを開発することを目的として
い る 。複 数 の ユ ー ザ は 、Google マ ッ プ を 使 用 し た
入力フォームから犯罪情報を入力する。この情報
は XMLDB に よ っ て 保 存 ・ 管 理 さ れ る 。 ま た 、 情 報
を 閲 覧 す る 場 合 に は 、 DB で 保 管 し て い る 情 報 を
Google マ ッ プ 上 に 表 示 さ せ る 。こ の シ ス テ ム に よ
り、複数のユーザにより、犯罪情報をまとめた 1
つ の 地 図 を 作 り 上 げ る こ と が で き る 。 成果として、ユーザが情報を入力する動作、年
月を選択して、情報を出力する動作を行うシステ
ム を 開 発 す る こ と が で き た 。 斉藤徹 2.3 Ajax(Asynchronous JavaScript and XML) Ajax と は 仕 組 み の 総 称 で あ る 。 JavaScript と
XML に よ り サ ー バ と の 非 同 期 通 信 を 実 現 し て い る 。
ク ラ イ ア ン ト 側 で 動 作 す る JavaScript が ク ラ イ
アントとサーバ間通信の中間層としてバックグラ
ウ ン ド で 動 作 す る 。 そ の た め 、 Web ブ ラ ウ ザ が サ
ーバとの通信中に、サーバからの返信を待つ必要
が な く 、 ユ ー ザ は 別 の 動 作 を 行 う こ と が で き る 。 図 2. Ajax 動 作 モ デ ル 3 . シ ス テ ム 概 要 3.1 シ ス テ ム 構 成
本 シ ス テ ム の 構 成 を 図 3 に 示 す 。 2 . 技 術 概 要 2.1 デ ー タ ベ ー ス (DB : Data Base) 独 立 し て 存 在 し て い た フ ァ イ ル を 1 つ に ま と め 、
複数の関連業務間でデータの共有を図るのがデー
タベースである。データはデータベース管理シス
テ ム (DBMS)に 管 理 さ れ 、 検 索 要 求 に 応 じ て 必 要 な
データを提供し、データレコードの追加・削除・
更新などのデータベース操作を提供する。
2.2 XML(eXtensible Markup Language) XML は 個 別 の 目 的 に 応 じ た マ ー ク ア ッ プ 言 語 を
作 成 す る た め の 言 語 の 総 称 を 言 う 。 XML に よ っ て
記 述 さ れ た 文 章 を XML ド キ ュ メ ン ト と 言 う 。 デ ー タ を 記 述 す る 要 素 は 、 タ グ と そ の タ グ の 間
にある子要素からなる。このように、要素同士が
親子の関係をもつ木構造のデータ形態をとってい
る の が XML の 特 徴 の 1 つ で あ る 。 も う ひ と つ は 、
タグの名前が任意であるということがある。管理
者はタグ名から、その要素以下のデータはどのよ
う な 内 容 の デ ー タ か を 想 像 す る こ と が で き る 。 図 1. XML の 構 成
図 3. シ ス テ ム 構 成 図
地 図 情 報 登 録 で の 各 資 源 の 動 作 を 以 下 に 示 す 。 (1)HTTP で 1.Google サ ー バ と 、 XMLHttpRequest
に よ る Ajax の 非 同 期 通 信 で 2.Tomcat を 実 装 し
た Web サ ー バ と 通 信 を 行 う (2-1)Google Maps API で Google マ ッ プ を 描 画 (2-2)Java サ ー ブ レ ッ ト プ ロ グ ラ ム 呼 び 出 し (3)サ ー ブ レ ッ ト と DBMS が JDBC と い う API を 用 い
て 接 続 、 入 力 項 目 を 要 求 (4)要 求 結 果 よ り 入 力 フ ォ ー ム を 作 成 、 返 信 (5)Web ペ ー ジ の 入 力 フ ォ ー ム に ユ ー ザ が 入 力 (6)XMLHttpRequest で 入 力 情 報 等 を Web サ ー バ に
送 信 (7)送
信 情 報 を 元 に XML ド キ ュ メ ン ト を 生 成 (8)XML ド キ ュ メ ン ト を DB に 格 納 す る 平成22年度 卒業研究発表会
3.2 デ ー タ ベ ー ス 構 成
3.4 地 図 情 報 検 索
本 研 究 で は 、 XML ド キ ュ メ ン ト を 格 納 す る XML
ユ ー ザ は デ ー タ ベ ー ス に 格 納 さ れ て い る 情 報 を
型 の 列 (DOC)と XML ド キ ュ メ ン ト を 識 別 す る ID で
検 索 ・ 確 認 ・ 削 除 が で き る 。 こ の 流 れ を 示 す 。 あ る int 型 の 列 (NUMBER)か ら な る 表 を 用 い て い る 。 (1)出 力 用 Web ペ ー ジ に ア ク セ ス す る と 、入 力 時 と
同じようにサーバと非同期通信を行う。サーブレ
本 シ ス テ ム で は 、 XML 形 式 で さ ま ざ ま な 属 性 の
ッ ト は 、DBMS に 格 納 さ れ て い る XML ド キ ュ メ ン ト
情 報 を 記 録 で き る よ う に す る こ と で 、 XMLDB の 利
の Date 要 素 か ら Select フ ォ ー ム を 作 成 す る 。 こ
点 を 生 か す こ と を 目 標 と し た 。 の Select フ ォ ー ム は Web ペ ー ジ に 出 力 さ れ る 。 しかしながら、入力するデータをどのような属
性が利用できるのかをすぐに読み出せるようにし
(2)ユ ー ザ は Select フ ォ ー ム か ら 年 月 を 選 択 す る 。
ておかないと、データ登録画面の表示が困難にな
この情報はサーブレットに送信され、この条件に
る 。 合 う XML が DB か ら 抽 出 さ れ る 。 こ の 複 数 の XML
このため、本システムでは、入力の際に利用で
は 1 つ の XML と し て ま と め ら れ 、 ク ラ イ ア ン ト に
き る 属 性 を 検 索 ID=0 の デ ー タ に 要 素 と し て 保 存
送 信 さ れ る 。 しておく方式をと
った。この方法を
(3)ク ラ イ ア ン ト で
採用することで、
は、送信されてきた
途中で入力できる
XML を DOM と 呼 ば れ
属性が増えた場合
る API を 用 い て 解 析
にも、入力画面を
し、必要な情報を取
柔軟に変更できる
り出す。この抽出し
ようになると期待
た情報を、マップ上
し た 。 図 4.属 性 取 得 用 XML にマーカーと吹き出
3.3 地 図 情 報 登 録
し を 用 い て 表 示 す る 。 図 6. 出 力 フ ォ ー ム
ユ ー ザ は ま ず 地 図 情 報 を DB に 登 録 す る 。3.1 で
述 べ ら れ て い る が 、 さ ら に 詳 し い 流 れ を 示 す 。 4 . ま と め (1) 入 力 用 Web ペ ー ジ に ア ク セ ス す る と 、 各 サ ー
バとの通信により図 5 の入力フォームが出力され
このシステムには、データ保存にスキーマレス
る (3.1 参 照 ) 。 こ の と き 、 入 力 す る 要 素 は 、 3.2
XMLDB を 使 う こ と で 以 下 の 機 能 が 実 現 で き た 。 の ID=0 の XML の 要 素 名 を 、XQuery と 呼 ば れ る XML
1. ユ ー ザ ・管 理 者 が 入 力 項 目 を 追 加 で き る の ク エ リ 言 語 を 用 い る こ と で 取 得 し て い る 。 2. ユ ー ザ は 必 要 な 項 目 の み 入 力 す れ ば よ い 1.に つ い て は 、 XML が 木 構 造 で 要 素 の 追 加 が 容
(2)図 5 に 示 す フ ォ
易 に で き る デ ー タ 構 造 で あ る こ と か ら 、 2.に つ い
ームを用いてユーザ
て は ス キ ー マ レ ス な DB な の で 構 造 の 異 な る XML
は情報を入力する。
が DB に 格 納 で き る こ と か ら 実 現 す る こ と が で き
このとき、新たに追
た 。 加したい要素を入力
以 上 の よ う に 、 XMLDB の 特 徴 を あ る 程 度 生 か し
することもできる。
た シ ス テ ム を 開 発 す る こ と が で き た 。 入力された情報と、
マーカーで示された
し か し 、 現 時 点 で は 格 納 す る XML の 形 式 を 地 図
位 置 の 情 報 (緯 度 、 情 報 用 に 半 ば 固 定 し て い る 。 こ れ を ど の よ う な 構
経 度 、 住 所 )が GET 図 5. 入 力 フ ォ ー ム 造 の XML で も プ ロ グ ラ ム で 処 理 で き る よ う に す れ
メ ソ ッ ド で サ ー バ に 送 ら れ る 。 ば
、ユ
ー
ザ・管
理 者 が DB
で 管 理 さ れ る 構 造 を 自 由
に設計できるようになる。そうすれば、データ項
(3)サ ー ブ レ ッ ト は 受 け 取 っ た 情 報 か ら XML ド キ
目 が 異 な る ほ か の シ ス テ ム (た と え ば Web カ タ ロ
ュ メ ン ト を 生 成 す る 。こ の と き UNIX タ イ ム を 付 加
グ )に こ の シ ス テ ム を 流 用 す る こ と が 可 能 に な る 。 す る (要 素 Date)。こ の XML ド キ ュ メ ン ト を ク エ リ
5 . 参 考 文 献 言 語 SQL で DB に 格 納 す る 。 また、新たな項目が入力されていた場合、0 番の
XQuery + XML デ ー タ ベ ー ス 入 門 要 素 取 得 用 の XML を 更 新 す る 。 菅 原 香 代 子 , 米 持 幸 寿 著 / 日 経 BP 社