集合知としてのニュース
※以前別の場所で書いた文章を備忘的に書き記しておきます。
【投稿年月日】2007-09-14 【ジャンル】JavaScript
「ニュースのソムリエ」というものを作成してみました。忙しい経営者のために注目ニュースをピックアップ。新聞や雑誌など12の媒体から、はてなブックマークで注目されているホットなニュースを厳選してお届けします。
はてなウェブサービスで提供されているリソースを利用して、PHPとJavaScriptとJSONによって構築された、いわゆるAjaxベースのマッシュアップ(MashUp)コンテンツです。主なブラウザの最新バージョンへの対応を確認しているので(Macを除く)、JavaScriptが利用できる環境にあるのならば、閲覧することができると思います。Ajaxベースのマッシュアップの主な利点は以下の通り。
- クライアント側での処理が多いので、サーバへの負荷が比較的少ない。
- ページの読込みにストレスを感じない場合が多い。
- システム構築が楽。
- 自分でデータを用意する必要がない。
- メンテナンスフリーで常に最新情報が表示される。
ところで、「ニュースのソムリエ」は、大袈裟に言えば「集合知としてのニュース」なのかな、と考えています。
- 利用者の多い代表的な12の商業媒体のニュースが対象。
- その中から「はてなブックマーク」で選別された人気のあるニュースを抽出。
- 1日4回、最新の情報を自動的に取得。(※詳しくは後述)
一昔前だったら、少なくとも個人や零細企業レベルでは実現できなかったことが、今では3日もあればできてしまうというのですから、何だか凄い時代ですね。。
ちなみに、以下のような流れでニュースの見出し等を取得しています。
- [HTML]: 誰かがページにアクセスする。
- [JavaScript]: データが格納されているページを非同期通信(XMLHttpRequest)で呼び出す。
- [PHP]: 呼び出されたページがキャッシュされているか、あるいは前回のキャッシュから6時間以上経過していないかを確認する。
- [PHP]: (※処理が以下のように分岐)
- キャッシュされたJSONデータを呼び出して、JavaScriptに渡す。
- 指定されたはてなブックマークのRSSを呼び出して必要なデータを取得した上で、はてなブックマーク件数も取得し、情報を加工した上でJSONデータとして保存。同時に、このJSONデータを、JavaScriptに渡す。
- キャッシュされたJSONデータを呼び出して、JavaScriptに渡す。
- [JavaScript]: 取得したJSONデータを加工した上で、ニュースを表示する。
取得したデータは軽量のJSONデータとして一時的に保存するだけで、データベースには一切格納しません。もちろんデータベースを利用すると、いろいろな機能を付加することができて面白いのですが、その分サーバに負荷もかかるので痛し痒しなのです。今回は、熟考の末、機能アップをはかることはやめました。
今後もAjaxベースのマッシュアップ(MashUp)コンテンツを作成していくことになると思いますが、他者が提供するリソースに依存するのは怖いので、マッシュアップについてはほどほどにする予定です。
EDIUNET | PHP/MySQL | 独り言 | 提供サービス | JavaScript