狠狠撸

狠狠撸Share a Scribd company logo
プッシュ通知サービスを利用した 
火山活動情報配信の試み 
鹿児島大学 工学部 情報生体システム工学科 吉村 圭一郎 
鹿児島大学 学術情報基盤センター 山之上 卓,小田 謙太郎,下園 幸一 
IOTS2014 Work in Progress, 2014/12/04
背景 
確実かつ迅速な情報配信ができていれば, 救えた命は増え, 
被害を最小にすることができたかもしれない 
2 
東北地方太平洋沖地震に伴う大津波広島県八木地区 豪雨被害
緊急時にロボットがお年寄りを深夜に起こすなどといった 
利用者への呼びかけ型の情報提供手段が将来的には必要 
3 
背景
背景 
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 
Subs購cr読ib者er 
Subscriber 
②フィードを返答
PubSubHubbub (PuSH) 
11 
PuSH 
? 購読者と出版者の間にハブを入れる 
? 出版者がフィードの更新をハブに通知, ハブは購読者にプッシュ 
? 更新情報を瞬時に得られ, ネットワーク負荷を減らせる 
出版者 
Publisher 
購読者 
Subs購cr読ib者er 
Subs購cr読ib者er 
Subscriber 
ハブ 
Hub 
①更新を通知 
③フィードを配信②フィードを取得
PubSubHubbub (PuSH) 
12 
?公開XML電文の配信にはGoogleによる“Alert Hub”が利用されている 
?受け取るためには, Alert Hubへの登録を気象庁に申請する 
Atomフィード公開XML電文 
①更新を通知 
Subscriber 
気象庁 
Google 
Alert Hub 
④Atomフィード※をパースして 
 公開XML電文のURLを取得 
③Atomフィード※がPOSTされる 
⑤公開XML電文をGET 
②Atomフィードを取得 
※POSTされるフィードはAtom配信フォーマット(RFC 4287)準拠
全体の構成 
13 
Client 
今回構築したサーバ 
Server 
気象庁 
Google 
Alert Hub 
Web browser 
Tomcat Subscriber 
(Servlet) 
Push 
(WebSocket) Yo All Java 
MySQL 
DB 
Apache 
+mod_wsgi django 
Yo API 
Server 
info viewer 
Mobile 
HDD 
(XML file) 
Yo 
client 
Web 
browser
全体の構成 
14 
Client 
Server 
気象庁 
Google 
Alert Hub 
Web browser 
Tomcat Subscriber 
(Servlet) 
Push 
Hub 
(WebSocket) Yo All Java 
MySQL 
DB 
Apache 
+mod_wsgi django 
Yo API 
Server 
info viewer 
Mobile 
HDD 
(XML file) 
Yo 
client 
Web 
browser 
Publisher 
Subscriber
電文発表~利用者が閲覧するまでの流れ 
15 
Client 
Server 
気象庁 
Google 
Alert Hub 
Web browser 
Tomcat Subscriber 
(Servlet) 
Push 
(WebSocket) Yo All Java 
MySQL 
DB 
Apache 
+mod_wsgi django 
Yo API 
Server 
info viewer 
Mobile 
HDD 
(XML file) 
Yo 
client 
Web 
browser 
電文発表
電文発表~利用者が閲覧するまでの流れ 
16 
Client 
Server 
気象庁 
Google 
Alert Hub 
Web browser 
Tomcat Subscriber 
(Servlet) 
Push 
(WebSocket) Yo All Java 
MySQL 
DB 
Apache 
+mod_wsgi django 
Yo API 
Server 
info viewer 
Mobile 
HDD 
(XML file) 
Yo 
client 
Web 
browser 
POST
電文発表~利用者が閲覧するまでの流れ 
17 
Client 
Server 
気象庁 
Google 
Alert Hub 
Web browser 
Tomcat Subscriber 
(Servlet) 
Push 
(WebSocket) Yo All Java 
MySQL 
DB 
Apache 
+mod_wsgi django 
Yo API 
Server 
info viewer 
Mobile 
HDD 
(XML file) 
Yo 
client 
Web 
browser 
概要を受信、パース
電文発表~利用者が閲覧するまでの流れ 
18 
Client 
Server 
気象庁 
Google 
Alert Hub 
Web browser 
Tomcat Subscriber 
(Servlet) 
Push 
(WebSocket) Yo All Java 
MySQL 
DB 
Apache 
+mod_wsgi django 
Yo API 
Server 
info viewer 
Mobile 
HDD 
(XML file) 
Yo 
client 
Web 
browser 
詳細を要求、取得
電文発表~利用者が閲覧するまでの流れ 
19 
Client 
Server 
気象庁 
Google 
Alert Hub 
Web browser 
Tomcat Subscriber 
(Servlet) 
Push 
(WebSocket) Yo All Java 
MySQL 
DB 
概要とXMLファイルのパスを記録 
Apache 
+mod_wsgi django 
Yo API 
Server 
info viewer 
Mobile 
HDD 
(XML file) 
Yo 
client 
Web 
browser 
詳細情報をXML 
形式のまま保存
電文発表~利用者が閲覧するまでの流れ 
20 
Client 
Server 
気象庁 
Google 
Alert Hub 
Web browser 
Tomcat Subscriber 
(Servlet) 
Push 
(WebSocket) Yo All Java 
MySQL 
DB 
Apache 
+mod_wsgi django 
Yo API 
Server 
info viewer 
Mobile 
HDD 
(XML file) 
Yo 
client 
Web 
browser 
桜島の爆発第1報、噴火 
の場合のみ実行
電文発表~利用者が閲覧するまでの流れ 
21 
Client 
Server 
気象庁 
Google 
Alert Hub 
Web browser 
Tomcat Subscriber 
(Servlet) 
Push 
(WebSocket) Yo All Java 
MySQL 
DB 
Apache 
+mod_wsgi django 
Yo API 
Server 
info viewer 
Mobile 
HDD 
(XML file) 
Yo 
client 
Web 
browser 
生成した詳細情報ページ 
へのURLを添付
電文発表~利用者が閲覧するまでの流れ 
22 
Client 
Server 
気象庁 
Google 
Alert Hub 
Web browser 
Tomcat Subscriber 
(Servlet) 
Push 
(WebSocket) Yo All Java 
MySQL 
DB 
Apache 
+mod_wsgi django 
Yo API 
Server 
info viewer 
Mobile 
HDD 
(XML file) 
Yo 
client 
Web 
browser 
利用者が通知を開くと 
URLを取得してアクセス
電文発表~利用者が閲覧するまでの流れ 
23 
Client 
Server 
気象庁 
Google 
Alert Hub 
Web browser 
Tomcat Subscriber 
(Servlet) 
Push 
(WebSocket) Yo All Java 
概要を取得 (電文一覧ページ) 
MySQL 
DB 
Apache 
+mod_wsgi django 
Yo API 
Server 
info viewer 
Mobile 
HDD 
(XML file) 
Yo 
client 
Web 
browser 
電文本体を取得 (電文詳細ページ)
プッシュ通知を受信する手順 
24 
③“SAKURAJIMA”と入力 
④送信 
②最下部の追加ボタン 
①Yoを起動 
一度送信すると以降, 噴火?爆発時に“SAKURAJIMA”よりYoが届く
プッシュ通知の受信, 情報の閲覧 
25 
ロック画面通知センター通知を开いた时
電文一覧 
26 
レスポンシブ デザイン 
画面横幅に応じて表示変更
サービスの拡張例 
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" 
台風18号台風19号 
広島土砂災害東京大雨 
MB 
御嶽山噴火 
日付 
台風16号12/1寒波
課題?展望 
30 
気象庁防災情報XMLフォーマット形式電文 
? 試行の開始から2年経過しているが, 有効活用されている事例が 
少ないのではないか 
利用者視点 
? 気象, 防災, 公共交通機関など, 様々な情報源の中から必要な情報 
を得られると便利ではないか 
ネットワーク負荷 
? プッシュ通知後の利用者の一斉アクセスをどのように分散するか

More Related Content

プッシュ通知サービスを利用した 火山活動情報配信の試み

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