技術的な解説
はじめに
本記事では、
- RSSって何?FEEDって何?
- これ(RSS)をどう使ったら便利なの?
といった基本的な解説は既知のものとして解説は省き、本サービスの技術的な仕組みや特徴について出来るだけわかりやすく解説していきたいと思います。どんなプログラムが裏で動いているかを知ってもらいたい気持ちと、俺のこだわりポイントを自慢したい 気持ちの2つが、記事執筆の主な動機となっております。
特徴
静的なHTMLを、ただ解析してRSSに変換するだけでは無く、本サービスには以下の機能が実装されています:
- 本文(序文)取得機能
ニュース一覧から "見出し" と本文HTMLへの "リンク" を取得するだけでなく、各本文HTMLも巡回して、導入部分の文章を取得してFEEDに加える事で、ユーザの興味をより引けるような内容にしています。 - ほぼリアルタイム更新機能
即時性を重視しつつ、かつ famitsu.com に余計な負荷をかけない様にする為に、ユーザアクセスの度に、最終更新時から 15分以上経過していた場合に限り、famitsu.com でニュース更新があったかどうかをチェックしに行きます。これにより、大切な新着情報をほぼリアルタイムで取得する事が可能、ライバルに差をつけれる事うけあいです。 - キャッシュ機能
famitsu.com に対して余計な負荷をサーバやネットワークにかけてしまう事を避けるべく、ニュース一覧の更新があった場合のみ、新着ニュース分の詳細情報取得(追加巡回) + RSS の再作成を行い、その他通常時はローカルのキャッシュを読みに行くように設計されています。結果、更新時以外のユーザレスポンス速度は快適なレベルが保てています。ユーザにやさしい、ファミ通にもやさしい。
ロジック図解
上記のような特徴が処理フロー上どのように実装されているかをわかりやすい図で表してみました。

おわりに
さらに一歩踏み込んで PERL 言語による実装方法まで説明しだすと極めてまとまりが悪くなるので、キレイさっぱり、解説はこの辺りでひとまず終了にしたいと思います。次の展望は、他のニュースサイトに対してもこのような FEED を取得できるようにした上で、それらの組み合わせ利用 - あわせ技 - でより便利なサービスにならないか?について検討していく予定です。ではでは、最後までお付き合いありがとうございました。
2006/01/24 22:46 たたみラボ見習い研究員 石橋利真