Upload
kei-yoshimura
View
238
Download
3
Embed Size (px)
Citation preview
プッシュ通知サービスを利用した 火山活動情報配信の試み
鹿児島大学 工学部 情報生体システム工学科 吉村 圭一郎 鹿児島大学 学術情報基盤センター 山之上 卓,小田 謙太郎,下園 幸一
IOTS2014 Work in Progress, 2014/12/04
背景
4
情報発信元
情報発信元
情報発信元
モバイル
IoTデバイス
etc...
?
• 地域に特化した最適な情報を効果的に配信する必要性 • 情報を配信するための仕組みが必要 ➡発信元と情報を必要としている人を結ぶ手段
背景
5
鹿児島県(降灰する地域)在住民にとって桜島から飛来する火山灰は生活に影響する存在である
๏ 年間噴火回数:2013年 1097回,2014年 609回(11/24現在) ๏ 2013年の降灰量は302,083g/m2 ➡ 頻繁な噴火, 地域に密着しているという点で, このようなインフラの設計・実装・検証に最適であると考える
背景
6
鹿児島県(降灰する地域)在住民にとって桜島から飛来する火山灰は生活に影響する存在である
๏ 年間噴火回数:2013年 1097回,2014年 609回(11/24現在) ๏ 2013年の降灰量は302,083g/m2 ➡ 頻繁な噴火, 地域に密着しているという点で, このようなインフラの設計・実装・検証に最適であると考える
気象庁が2012年より“防災情報XMLフォーマット形式電文”(以後, 公開XML電文)を試行している
๏ “噴火に関する火山観測報”も公開XML電文で発表されている ๏ 配信された電文の二次利用可(気象業務法に抵触しない範囲で) ➡ これを用いて,噴火タイミングを配信できないか?
背景
7
情報発信元
気象庁
情報発信元
モバイル
IoTデバイス
etc...
利用者のモバイル端末にプッシュ通知で配信 ➡プッシュ通知を送る仕組みとしてYoを利用
本研究
• 地域に特化した最適な情報を効果的に配信する必要性 • 情報を配信するための仕組みが必要 ➡発信元と情報を必要としている人を結ぶ手段
Yo (http://www.justyo.co/)
• 2014年6月に公開された, プッシュ通知を特定ユーザに送信できるサービス
• 当初はユーザ間でのみ, 7月にAPI公開
• 8月にURLの添付が可能に
• クライアントアプリはiOS, Android, Windows Phoneなどに対応
➡今回,桜島の噴火・爆発時の プッシュ通知送信に“Yo”を利用
8
気象庁防災情報XMLフォーマット形式電文
• 2012年12月より試行
• 配信の仕組みとしてPubSubHubbub(後述)を利用 ➡受信するには常時稼働, グローバルIPの振られたサーバが必要
9
“噴火に関する火山観測報”• 全国の火山において噴火が発生したことを通知する
• 現象, 有色・白色噴煙の高度, 噴煙の流向, 空振, 噴石 など
• 現象は爆発(第1報, 第2報),噴火,噴火継続・開始・終了
PubSubHubbub (PuSH)
• 購読者は 出版者が公開しているフィードに直接アクセス • 更新情報を確認するためには, 一定期間ごとにフィードにアクセス ➡リアルタイム性を高める為にはアクセス間隔を短くする必要性
10
従来
購読者 Subscriber
出版者 Publisher購読者
Subscriber購読者 Subscriber
①更新の確認
②フィードを返答
PubSubHubbub (PuSH)
11
• 購読者と出版者の間にハブを入れる • 出版者がフィードの更新をハブに通知, ハブは購読者にプッシュ ➡更新情報を瞬時に得られ, ネットワーク負荷を減らせる
PuSH
出版者 Publisher
購読者 Subscriber購読者 Subscriber購読者 Subscriber
ハブ Hub
①更新を通知
③フィードを配信 ②フィードを取得
PubSubHubbub (PuSH)
12
Subscriber
気象庁
Google Alert Hub
①更新を通知
④Atomフィード※をパースして 公開XML電文のURLを取得
③Atomフィード※がPOSTされる
Atomフィード 公開XML電文
⑤公開XML電文をGET
②Atomフィードを取得
※POSTされるフィードはAtom配信フォーマット(RFC 4287)準拠
•公開XML電文の配信にはGoogleによる“Alert Hub”が利用されている •受け取るためには, Alert Hubへの登録を気象庁に申請する
全体の構成
13
Client
Server
Tomcat Subscriber (Servlet)
気象庁
Google Alert Hub
Push (WebSocket) JavaYo All
MySQL DB
Apache +mod_wsgi django
Yo API Server
info viewer
Mobile
Web browser
HDD (XML file)
Yo client
Web browser
今回構築したサーバ
全体の構成
14
Client
Server
Tomcat Subscriber (Servlet)
気象庁
Google Alert Hub
Push (WebSocket) JavaYo All
MySQL DB
Apache +mod_wsgi django
Yo API Server
info viewer
Mobile
Web browser
HDD (XML file)
Yo client
Web browser
Publisher
Subscriber
Hub
電文発表~利用者が閲覧するまでの流れ
15
Client
Server
Tomcat Subscriber (Servlet)
気象庁
Google Alert Hub
Push (WebSocket) JavaYo All
MySQL DB
Apache +mod_wsgi django
Yo API Server
info viewer
Mobile
Web browser
HDD (XML file)
Yo client
Web browser
電文発表
電文発表~利用者が閲覧するまでの流れ
16
Client
Server
Tomcat Subscriber (Servlet)
気象庁
Google Alert Hub
Push (WebSocket) JavaYo All
MySQL DB
Apache +mod_wsgi django
Yo API Server
info viewer
Mobile
Web browser
HDD (XML file)
Yo client
Web browser
POST
電文発表~利用者が閲覧するまでの流れ
17
Client
Server
Tomcat Subscriber (Servlet)
気象庁
Google Alert Hub
Push (WebSocket) JavaYo All
MySQL DB
Apache +mod_wsgi django
Yo API Server
info viewer
Mobile
Web browser
HDD (XML file)
Yo client
Web browser
概要を受信、パース
電文発表~利用者が閲覧するまでの流れ
18
Client
Server
Tomcat Subscriber (Servlet)
気象庁
Google Alert Hub
Push (WebSocket) JavaYo All
MySQL DB
Apache +mod_wsgi django
Yo API Server
info viewer
Mobile
Web browser
HDD (XML file)
Yo client
Web browser
詳細を要求、取得
電文発表~利用者が閲覧するまでの流れ
19
Client
Server
Tomcat Subscriber (Servlet)
気象庁
Google Alert Hub
Push (WebSocket) JavaYo All
MySQL DB
Apache +mod_wsgi django
Yo API Server
info viewer
Mobile
Web browser
HDD (XML file)
Yo client
Web browser
概要とXMLファイルのパスを記録
詳細情報をXML 形式のまま保存
電文発表~利用者が閲覧するまでの流れ
20
Client
Server
Tomcat Subscriber (Servlet)
気象庁
Google Alert Hub
Push (WebSocket) JavaYo All
MySQL DB
Apache +mod_wsgi django
Yo API Server
info viewer
Mobile
Web browser
HDD (XML file)
Yo client
Web browser
桜島の爆発第1報、噴火の場合のみ実行
電文発表~利用者が閲覧するまでの流れ
21
Client
Server
Tomcat Subscriber (Servlet)
気象庁
Google Alert Hub
Push (WebSocket) JavaYo All
MySQL DB
Apache +mod_wsgi django
Yo API Server
info viewer
Mobile
Web browser
HDD (XML file)
Yo client
Web browser
生成した詳細情報ページ へのURLを添付
電文発表~利用者が閲覧するまでの流れ
22
Client
Server
Tomcat Subscriber (Servlet)
気象庁
Google Alert Hub
Push (WebSocket) JavaYo All
MySQL DB
Apache +mod_wsgi django
Yo API Server
info viewer
Mobile
Web browser
HDD (XML file)
Yo client
Web browser
利用者が通知を開くとURLを取得してアクセス
電文発表~利用者が閲覧するまでの流れ
23
Client
Server
Tomcat Subscriber (Servlet)
気象庁
Google Alert Hub
Push (WebSocket) JavaYo All
MySQL DB
Apache +mod_wsgi django
Yo API Server
info viewer
Mobile
Web browser
HDD (XML file)
Yo client
Web browser
概要を取得 (電文一覧ページ)
電文本体を取得 (電文詳細ページ)
サービスの拡張例
27
利用者当サービス
利用者
利用者の スマートフォン
気象庁
桜島
火山灰
①噴火の観測
②電文の配信
④降灰状況の フィードバック
③プッシュ通知
⑤降灰予想地域, 降灰量 到達時間などの配信
3ヶ月運用して・・・
• PubSubHubbubの仕組みは問題なく動作
• 噴火・爆発→電文発表→プッシュ通知まで5~20分程度 ➡気象庁内での遅延, ハブの遅延, プッシュ通知の遅延
• 公開XML電文の取りこぼしは無し
• 全ての公開XML電文を保存すると, 20MB/日,600MB/月程度
28
公開XML電文の受信量と気象現象
29
0"
10"
20"
30"
40"
50"
60"
70"
2014/8/19"
2014/8/22"
2014/8/25"
2014/8/28"
2014/8/31"
2014/9/3"
2014/9/6"
2014/9/9"
2014/9/12"
2014/9/15"
2014/9/18"
2014/9/21"
2014/9/24"
2014/9/27"
2014/9/30"
2014/10/3"
2014/10/6"
2014/10/9"
2014/10/12"
2014/10/15"
2014/10/18"
2014/10/21"
2014/10/24"
2014/10/27"
2014/10/30"
2014/11/2"
2014/11/5"
2014/11/8"
2014/11/11"
2014/11/14"
2014/11/17"
2014/11/20"
2014/11/23"
2014/11/26"
2014/11/29"
2014/12/2"
台風19号台風18号
東京大雨広島土砂災害
MB
御嶽山噴火
日付
12/1寒波台風16号