以下、気象庁としては一切保証する話ではありません。品質も万全ではないですし、どうしてもという場合だけにしか利用価値はないです。
(2019-10-31 最新状況をふまえて改題加筆修正)
(2020-09-05 PUSH型提供廃止をふまえ動作確認を補足)
はじめに
気象庁防災XMLのPUSH型提供は2020年8月末での廃止が予告されています。
http://xml.kishou.go.jp/open_trial/index.html
気象庁防災XMLのPUSH型提供では、PubSubHubub手順により利用者の皆さんに新着電文が通知されるわけですが、技術的にはそれは Google Alert Hub を通じてトピックURLつまり4つのAtomフィードの更新が通知されるということです。実はそのトピックURLは xml.kishou.go.jp に置かれており、PULL型提供で利用者さんがアクセスしていただくために用意したURL(www.data.jma.go.jp)とは異なります。
で、実は今のところGAHは公開されているフィードであれば誰でも勝手に登録していいんだそうです(cf. https://alert-hub.appspot.com/ のFAQ欄)。実際問題として誰かがPULL型用のフィードURLを登録してpublishの実験をしているようで、下記のフィードをsubscribeすると更新通知が流れてくるのです。じゃあ、PUSH型提供が廃止されても、ほとんど同じものが送られてきますね。
ところがそうは甘くないのです。2019-10-01夜まで数日間に観測した限りでは、なぜか publish notification の間隔が1~2時間と開きすぎていて、その間の更新がほとんど(9割近く)抜けてしまいます。誰かがプッシュしているのか、Googleさんがポーリングしているのか知りませんが、ちょっとこれでは使えません。
でも、ちゃんとさせられないでしょうか。更新通知も誰が送ってもいいので、僕がPULL型フィードを見て送り付けて、全部キチンと配信されるかチェックしてみよう… という実験をやっています。
実験設定
- フィード:以下の4つ(PULL型高頻度フィード)
- タイミング:上記フィードを毎分監視して、更新があったらプログラムを起動
- プログラム: https://github.com/etoyoda/feedfollow/blob/master/notifygah.rb
- 監視プログラムの作りの関係で、4つのフィードのどれかに更新があるとプログラムが起動します。受信記録をチェックして Last-Modified 時間が直近180秒以内であれば GAH に通知するようになっています。
結果
2019-10-28/30 に観測した限りでは次のようでした。
- 更新通知漏れは全体の10%程度に減少した
- 更新通知漏れが発生するのは、日本時間10時台、16時台、4時台で、これは府県天気予報など大量の(しかし緊急度は必ずしも高くない)電文が出る時間帯
- うまく動く日は、気象庁PUSH型提供の2~3分後に更新通知がやってくるが、うまく動かない日は10分くらい遅れる
胸を張って「完璧な代替です!」といえるような水準ではありませんが、仮にどうしても PubSubHubbub しか使えない場合、
まるきり稼働しないわけでもない程度には動くと言えましょうか。
すみません、Google Alert Hub の内部についてもわかりませんし、現時点ではこれ以上のことはわかりません。
2020-09-05補足: 気象庁PUSH型提供廃止後も動作しています
予告通り、気象庁からのPUSH型提供は 2020-09-01T10:05:14+09:00:00 の更新通知を最後に廃止となりました。その後も本件更新通知は今日まで動作を続けていることを確認しています。品質についてはまだチェックしていません、すみません。