Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Perl Conference Japan ’98 朝日奈アンテナによる コンテンツ情報の取得と利用

Similar presentations


Presentation on theme: "The Perl Conference Japan ’98 朝日奈アンテナによる コンテンツ情報の取得と利用"— Presentation transcript:

1 The Perl Conference Japan ’98 朝日奈アンテナによる コンテンツ情報の取得と利用
平成10年 11月 12日 岩本 圭司 98/11/12 (c) 1998 Keiji Iwamoto

2 朝日奈アンテナとは “コンテンツ情報” 取得システム 最新版は1.914(公式)/1.983(非公式)
Internet上のコンテンツに関する情報を取得 更新時刻 タイトル、著作者、キーワード等… 最新版は1.914(公式)/1.983(非公式) 98/11/12 (c) 1998 Keiji Iwamoto

3 開発経緯 Web Pageを効率よく巡回したい “べんりくん” (加内氏)発見 “べんりくん” 相当プログラムを自作
前回参照から更新されているページだけを見たい “べんりくん” (加内氏)発見 “べんりくん” 相当プログラムを自作 “朝日奈アンテナ” と命名 最新情報をキャッチする、受信「アンテナ」 HEADで情報が取れない場合に対応 アンテナ間通信を実装 送信「アンテナ」としても機能 98/11/12 (c) 1998 Keiji Iwamoto

4 公開後の進化過程 V1.x V2.x(開発中) コンテンツ「更新時刻」取得システム V1.0x:情報取得対象ページ個別の設定が多い
コンテンツ「情報」取得システム 更新時刻以外にもさまざまな情報を処理 98/11/12 (c) 1998 Keiji Iwamoto

5 朝日奈アンテナの動作(単体) 98/11/12 (c) 1998 Keiji Iwamoto

6 Web Clientとしての動作 PerlでのHTTP通信 日本語対応はnkfと連携
まずはsocket → connect → あとはファイル入出力と同様) 入力/出力ルーチンで別プロセス化(fork) alarmでタイムアウト処理 HTTPリクエストを出力 print SOCKET “HEAD /content.html HTTP/1.1\n”; print SOCKET “Host: gabi-n.hauN.org\n\n”; コンテンツ情報/内容を取得 while (<SOCKET>) ~ 日本語対応はnkfと連携 フィルタつき入出力 98/11/12 (c) 1998 Keiji Iwamoto

7 HTTPヘッダの解析 Last-Modified: フィールドから情報取得 SSI使用等でLast-Modified: が存在しない場合
フォーマットが決まっているため解析は容易 パターンマッチングで該当行を特定 if (/Last\-Modified\:\s+(.*)/o) ~ splitを用いてフィールドに分離→値を取得 split(“ /:”, $1); SSI使用等でLast-Modified: が存在しない場合  →コンテンツ内容を解析 98/11/12 (c) 1998 Keiji Iwamoto

8 コンテンツ内容の解析 解析対象行の決定 時刻フォーマットの解析 URLごとに設定したキーワードとマッチングして特定
splitでフィールドに分離 時刻フォーマットの解析 年は00~99 / 1900~2099の数値 月は1~12の数値 / 月名を表わす文字列 日は1~31の数値 時は0~23、分は0~59、秒は0~60の数値 タイムゾーン文字(GMT, JST, EDT, ...) 98/11/12 (c) 1998 Keiji Iwamoto

9 時刻フォーマットの解析 各フィールドのうち、意味が確定するものを探す 意味が確定したフィールドをもとに、さらに推定
パターンマッチング、数値の範囲 (例1)数値 “98” は1998年として確定 (例2)数値 “23” は月、時ではないが…年? 日? 分? 秒? 意味が確定したフィールドをもとに、さらに推定 (例)数値 “26” の意味は? 年、日、秒が既に確定していれば、分であると確定する。 フィールドの位置関係等も考慮 時、分、秒は通常、その順に並べて記述される。 時、分を省略し秒は記述するといったことは通常しない。   …など 98/11/12 (c) 1998 Keiji Iwamoto

10 時刻フォーマット自動解析 初期のバージョン(1.0x)では… 自動解析の実装、改良により… フォーマット情報を明示して与える必要があった。
第○フィールドは月、第△フィールドは分… 自動解析の実装、改良により… フォーマット情報明示の必要はなくなってきた。 V1.2xの入力仕様ではフォーマット情報明示を廃止。 98/11/12 (c) 1998 Keiji Iwamoto

11 アンテナ間通信 アンテナ間通信による協調動作 負荷分散 情報の補完 HTTPによる通信は実装済
データフォーマットは独自(plain text) HTMLも使用可能(機能に制限あり)  →他の更新時刻取得エージェントとも連携可能    ex. べんりくん、WatchLynxなど多種 98/11/12 (c) 1998 Keiji Iwamoto

12 朝日奈アンテナの動作(協調) 98/11/12 (c) 1998 Keiji Iwamoto

13 キャッシュ処理 アンテナ間通信で得た情報は連想配列に格納 直接通信して取得した情報も連想配列に格納 URLをキーとしてメモリ上にDBを作成。
より新しい/信頼性の高い情報を洗濯し格納。 ある程度古い情報は破棄。 アンテナ間通信の結果が無効なURLに対してのみ直接通信。 直接通信して取得した情報も連想配列に格納 連想配列をメモリキャッシュとして使用。 複数回の情報参照に対し、不要な通信を行わない。 98/11/12 (c) 1998 Keiji Iwamoto

14 今後の展望 独自プロトコルによるアンテナ間通信 通信効率の向上
中村氏のDIRP(Document Information Relay Protocol)構想 V3.xで実装予定 情報の “PUSH” は? 通信効率の向上 Keep-Alive 複数同時connect 98/11/12 (c) 1998 Keiji Iwamoto


Download ppt "The Perl Conference Japan ’98 朝日奈アンテナによる コンテンツ情報の取得と利用"

Similar presentations


Ads by Google