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

30
プッシュ通知サービスを利用した 火山活動情報配信の試み 鹿児島大学 工学部 情報生体システム工学科 吉村 圭一郎 鹿児島大学 学術情報基盤センター 山之上 卓,小田 謙太郎,下園 幸一 IOTS2014 Work in Progress, 2014/12/04

Upload: kei-yoshimura

Post on 18-Jul-2015

238 views

Category:

Technology


3 download

TRANSCRIPT

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

鹿児島大学 工学部 情報生体システム工学科 吉村 圭一郎 鹿児島大学 学術情報基盤センター 山之上 卓,小田 謙太郎,下園 幸一

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購読者

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

概要を取得 (電文一覧ページ)

電文本体を取得 (電文詳細ページ)

プッシュ通知を受信する手順

24

③“SAKURAJIMA”と入力

④送信②最下部の追加ボタン

一度送信すると以降, 噴火・爆発時に“SAKURAJIMA”よりYoが届く

①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"

台風19号台風18号

東京大雨広島土砂災害

MB

御嶽山噴火

日付

12/1寒波台風16号

課題・展望

30

気象庁防災情報XMLフォーマット形式電文• 試行の開始から2年経過しているが, 有効活用されている事例が少ないのではないか

利用者視点• 気象, 防災, 公共交通機関など, 様々な情報源の中から必要な情報を得られると便利ではないか

ネットワーク負荷• プッシュ通知後の利用者の一斉アクセスをどのように分散するか