100万ページのデータの旅
テクニカルディレクター 水上 勇人mediajamの扱うWebページのデータが100万件へ
サービスインして約1年4カ月、mediajamの扱うデータが100万件を超えました。合同会社メディアジャムが優良サイトと判断し、かつ許可をいただいたサイト、あるいは自推のサイトも含めた特定のWebサイトを自動巡回(ウェブクロール)させていただき、その一部(見出しとページの要約、画像、そして巡回先ページへのリンク)をWebサービスとして公開してきました。
データが100万ページ分に至った今、mediajamへのアクセスは継続的に増え、また外部リンクは増えつづけています。その結果、一部のサイトでは、mediajamを経由した情報発信元サイトへのトラフィックも増加するという結果が出てきています。また、データが増えることにより、以下のような情報収集の効率化をサポートするページ同士のつながりを表現できるようになりました。
- 関連記事
-
AというWebサイトでの1つのニュース記事がBやCというWebサイトでもニュース記事として扱われている場合、それらの記事を1つのページに関連記事としてまとめ、情報収集の効率化をサポートします。
たとえば、iPhoneが日本でも販売されることが決まった記事は38個の関連記事が存在しています。 - ニュース年表
-
検索結果や、特定のキーワードが含まれる記事を時系列で視覚的に表示します。また、個々のニュース記事ページから、内容の類似した記事を時系列で視覚的に情報収集できます。
たとえば、スマートフォンをみてみると、各通信事業者、通信端末開発会社が力を入れ始めた時期から始まり、KDDI社が発売に関するリリースを出すまでが把握できるようになっています。
100万ページのデータをどう保存、管理するか
巡回(ウェブクロール)して抽出したテキスト、そして画像はWebサービスをするにあたり必要となるフォーマットで保存し、プログラムを利用して更新していきます。1つのページごとに以下のような情報を持っています。
- 巡回日時mediajamが巡回してページを発見した日時を記録します。
- 巡回先サイトの詳細ページURLmediajamからの外部リンクを構成する要素です。
- ページのタイトル
- ページに含まれる画像
- ページの本文
- テキスト情報
- ページのスコアユーザーに情報提供するにあたり、ページにスコアという名の優先順位を記録し、更新します。
- ページに含まれるキーワード文章を解析して意味を持つ最小単位に分割し、あらかじめ登録済みのキーワードにマッチしたものを自動付与します。
- 公開ステータスページが公開なのか、非公開なのかのフラグ
- ページへのアクセスに利用されたキーワードユーザーが検索エンジンからアクセスしてきた際に検索キーワードを抽出し、記録し、更新していきます。
- ページへのアクセス数Webブラウザを利用して閲覧された回数の合計値
実際には上記よりも多くの項目を保管して更新していますが、基本的には上記を利用してユーザーの要求(リクエスト:Webブラウザからページを閲覧する)に対する応答(レスポンス:htmlページなどを返信)をしていきます。運用業務中に迅速な対応が必要となる処理が発生した場合でも、Webブラウザから管理画面を通してすべてのページが検索可能であり、ただちに上記項目に変更を行ない、結果をユーザーが閲覧可能な環境(サイト)に反映することが可能です。
このようにmediajamはウェブクロール技術を利用してデータを収集するシステムであり、そのデータ・コンテンツをマネジメントするシステムでもあります。つまり、データを集めて閲覧・検索可能にしているWebアプリケーションとしてだけではなく、コンテンツマネジメントシステム(CMS)としての側面も持っていることになります。
通信端末(機器・ハードウェア)ごとにデータを整理する必要がない
続いては、集まったデータがどのように、そしてどのような通信端末向けに提供されていくかについて紹介させていただきます。mediajamでは、集まったデータに手を入れることなく、各種通信端末に最適なインターフェースを提供してサービスを展開しています。現時点では、以下の通信端末向けにサービスを提供しています。
- PC(ここではWindows、MacOS、Linux、FreeBSDなどを搭載した機器とします)
- iPhone
- 携帯電話
呼び名はPCサイト、iPhoneサイト、携帯サイトと一般的なものがついてはいますが、利用しているデータはすべて共通です。特に準備はしていませんが、アクセスログを眺めてみると、WiiやPlayStationなどの通信端末からのアクセスも確認できます。通信端末やサイトごとにデータ・コンテンツを「手作業」というコストを投入することなく、手作業によるミスなしでサービスが提供されています(ワンソース・マルチユースの実現)。上記にある通信端末からはページの閲覧(記事全文の閲覧は掲載サイトへのアクセスが必要)が可能ですし、キーワードによる検索も可能です。将来的に新たな通信端末が登場してもhttpプロトコルとそれを利用するWebブラウザが搭載されているものであれば、最適なインターフェースを用意して適用するのみで、通信端末に特化したサイトが準備可能です。
外部サービスやシステムごとにデータを整理する必要がない
外部サービスやシステムとの連携までを視野に入れた場合、Webブラウザではなくシステム同士のデータ転送やその処理もフォーマットを決めて(たとえばXML)、要求と応答を管理するAPI(Application Program Interface)を用意するだけです。つまり、技術的側面からみると、データは新たに準備しなくても再利用可能であり、その回数に制限がなく、データの利用対象が人だけに限らないというのが現状です。ただし、連携に関しては技術的側面以外の制約や制限もあります。実現するには、技術的側面以外の各種調整をしていく必要があるのが現実です。
集めたデータで何ができるか — 「ニュース年表を自動生成する」
続いては、データをつかって具体的に何ができるかの紹介です。いくつか例をあげてみてみましょう。まずは「ニュース年表」です。1つのページごとに保管しているデータを利用して、「SIMILEプロジェクトのTimeline」にデータを流し込むとニュース年表が出来上がります。Timelineを利用した他の事例ではクロード・モネ(画家)、アメリカの歴代大統領の年表や恐竜の歴史などがあります。mediajamではキーワードごとや検索結果ごと、そしてすべての詳細ページごとに年表を自動生成しています。
ニュース年表を生成することでユーザーは、点(1つのページ、1つのニュース)から線(歴史、ながれ)で把握することが可能になりました。
- 興味ある製品(たとえばiPhone)のうわさ〜発売までを一気に振り返る
- 興味ある製品(たとえばiPhone)の発売〜ファームウェアアップデート情報を一気に集める
- 気になる著名人(たとえばアップル社のスティーブ・ジョブズ氏)の動向や、興味あるスポーツ選手(たとえばサッカーの中村俊輔選手)の成績を一気に振り返る
上記の年表はデータが更新される(情報が追加されていく)度に自動的に更新されていくことになります。時系列を利用してニュースを閲覧できるようになったことは、ユーザーに新たな視点を提供できたといえるのではないでしょうか。
集めたデータで何ができるか — 「みんなのあしあとを自動生成する」
ニュース年表とは違った形の表現として、「みんなのあしあと」という、ほぼリアルタイムでサイトへのユーザーのアクセス状況を表示する実験プロジェクトがあります。「みんなのあしあと」は、どこかの誰かがどんなキーワードを利用してサイトやページにたどり着いたのかを、ページを遷移することなく把握可能となっています。少し眺めるだけで、「新たな気づき・発見」を得ることができるでしょう。これもまた、1つのページごとに保管しているデータを利用しています。「みんなのあしあと」に関連するデータを、プログラムを介してWebページとして生成し、更新しつづけています。
情報を効率よく収集するためのサポートをしつつ、こういった“遊び・発見”といった視点を提供してより広く世の中で起きている事象を見渡すこともできるようにしています。
100万ページ分のデータを処理する環境
100万ページのデータを保管している環境はオープンソースソフトウェア(OSS)のみを利用して構築しています。各種サーバーのOSには、オープンソースソフトウェアの代名詞ともいえるLinuxを採用しています。不必要なリクエストを遮断するファイアウォール(iptablesなど)、アクセス集中を分散させるためのロードバランサ(IPVS)や、ユーザーからのリクエストを処理するWebアプリケーションサーバー(ApacheやTomcatなど)、100万件のデータを保存しているDBサーバー(MySQL)などがLinux上で動作するオープンソースソフトウェアを利用しての構築となっています。また、各サーバーは冗長化し、サービス停止時間を可能な限り少なくするように努めています。今後のアクセス増加に対する対策としては、Webアプリケーションサーバーの追加のみで対応可能な範囲となっています。
100万ページのデータの行方
集まった100万ページのデータは、mediajamを経由し、ユーザーの要求(リクエスト)に“応答”(レスポンス)する対話的な形式でユーザーの利用する通信端末までの道のりをたどります。“応答”は、オープンソースソフトウェアを利用して構築された環境から、開発したプログラムに処理され、通信端末別に最適化したインターフェースを経由して、通信端末を利用するユーザーのもとまで届いています。収集したデータの利用方法やその目的に関してはユーザー次第ではありますが、インターネットという環境を通じて提供されつづけています。
最後に、mediajamでは上述の“応答”をより最適化していきたいと考えています。それがページへのメタ情報(コンピュータ向け、システム向けの情報)の付与による“応答”の最適化かもしれませんし、ユーザーの参加を促進することでページに何らかの価値を付与して“応答”を生成していくことかもしれません。そのためにできること・すべきことを判断しながら、仕組みや機能、サービスの開発・改善に取り組んでいく予定です。
Newsletter
メールニュースでは、本サイトの更新情報や業界動向などをお伝えしています。ぜひご購読ください。