Comments
Description
Transcript
Webアプリの新たな使い方
Webラッパ R&D SOA マッシュアップ Webアプリの新たな使い方 ――ラッパによるWebアプリ連携 NTTネットワークサービスシステム研究所 な か の す な が ひろし 中野 雄介 /山登 庸次 /武本 充治 /須永 ゆうすけ や ま と よ う じ たけもと みちはる 宏 既存Webアプリをコンポーネント化し,他のコンポーネントと連携させること による新たなアプリケーションの創出を目指し,Webアプリをコンポーネント化 するラッパに関する研究を行ってきました.ここではラッパの仕組みとラッパの 作成を支援する仕組みについて説明し,ラッパの利用例を紹介します. Webアプリ連携とラッパ 手法が注目を集めています.マッシュ ルに沿ってプロトコル変換の処理を行い アップはWeb2.0のコンセプトに含まれ, ます.例えば,ホテル検索Webアプリを 現在,さまざまなWebアプリケーショ 近年のユーザによるアプリケーション作 コンポーネント化する場合は,ホテル検 ン(Webアプリ)を利用可能です.ホ 成を促進しています.マッシュアップに 索用のコンフィグファイルを作成します. テル検索Webアプリと路線検索Webア よるアプリケーション作成では,作成者 しかし,多くのWebアプリをコンポーネ プリとを立て続けに使い,結果をプリン はWebサービス等のプログラムコンポー ント化するためには膨大なコンフィグ タで印刷するなど,複数のWebアプリと ネントを見つけ,それらをつなぎ合わせ ファイルを記述する必要があり,この作 他のシステムとを同時に利用することも ます.これにより,容易にアプリケー 業の削減が求められています. あります.このように同時に使われやす ションを作成できます.しかし,多くの いWebアプリと他のシステムとを連携さ 作成者の意図するアプリケーションを実 せることで,より有用なアプリケーショ 現するためには膨大なコンポーネントが ンを創出できることが分かります.連携 必要となります. 結果部分自動抽出でルール生成 コンフィグファイルにはWebアプリが 生成するHTMLドキュメントのどの部分 にはそれぞれのWebアプリをコンポーネ このように現在,膨大で多様なコン を抽出し,どういうかたちのXMLドキュ ント化する必要があります.これを実現 ポーネントが求められています.しかし, メントに変換するべきかが書かれていま する技術が私たちが研究開発を行ってい コンポーネントを一から作成することは す.そこで,ラッパ生成ツールはHTML るラッパです. 容易ではありません. ドキュメントから検索結果の部分を自動 コンポーネントの重要性 Webアプリのコンポーネント化 NTTネットワークサービスシステム研 そこで,筆者らは既存のWebアプリ, 抽出し,その抽出位置がHTMLドキュ メントのどこなのかを自動でコンフィグ ファイルに書き出すことで,コンフィグ 究所はコンポーネントの組合せをユビキ 特に検索系のWebアプリをコンポーネン ファイルの生成を支援します (図1の タスサービスの提供に応用しようとする トとして利用するためのラッパに関する ラッパ生成ツール部分). 研究を行っています(1).ユーザの状態に 研究を行ってきました(2).ラッパはWeb より,コンポーネントを動的に組み合わ アプリのプロトコルとコンポーネントのプ 次のように検索系Webアプリが生成す せることで,ユーザの状態にあったユビ ロトコル (SOAP)とを相互変換する るHTMLドキュメントの特徴を利用しま キタスサービスを提供することができま ことで,Webアプリをコンポーネントと す. 検 索 系 W e b アプリは検 索 結 果 の す.しかし,このようなユビキタスサー して利用可能とします (図1のラッパ部 HTMLドキュメントをデータベース等か ビスの提供には,ユーザの状態の変化に 分). ら自動生成する場合が多く,このような 対応できる,多様なコンポーネントが必 しかし,それぞれのWebアプリ個別に 検索結果部分を自動抽出するために, HTMLドキュメントにはタグの規則的な ラッパを作成するためには,多大な労力 繰返しパターンがあると考えられます. また,マッシュアップ(Mashup)と が必要です.このため,ラッパはWebア ラッパ生成ツールはこの繰返しパターン 呼ばれる簡易なアプリケーションの作成 プリごとに用意されたコンフィグファイ を手掛かりとして,HTMLドキュメント 要となります. 40 NTT技術ジャーナル 2008.6 R & D ホ ッ ト コ ー ナ ー リクエスト (URL) サービスの ユーザ W e b ア プ リ ケ ー シ ョ ン の プ ロ ト コ ル ラッパ生成 ツール 生成 Config マッシュアップ アプリケーション 利用 HTML 操作 ラッパ 管理者 S O A P ユビキタス サービス Config Config ラッパ Webアプリ 他のシステム (家電等) 図1 ラッパとラッパ生成ツール からWebアプリの検索結果の部分を自 動抽出します. (a)タグの深度 規則的なタグ深度変化を利用 本手法はタグの繰返しパターンを発見 するために,タグの深度が規則的に変化 する部分を発見します.タグの深度とは タグの入れ子の回数のことで,図2(a) のように可視化できます.Webアプリは 機械的にHTMLドキュメントを生成する ため,生成されたHTMLドキュメントに は図2(b)のような規則的な深度変化が 現れることがよくあります.このような, 規則的な深度変化がある部分を検索結 (b)深度パターン 深度 <html> <head> <title> ①○○トラベル 深 度 旅館検索 </title> </head> 14 12 10 8 <body> 旅館検索の結果です. <table> <tr> <td> </td> 旅館A <td> 6 4 2 0 1 179 268 357 446 535 624 713 802 891 980 11304 11393 11482 タグ 特徴的な深度パターン <td>XXXX-XX-XXXX</td> </tr> ②△△旅行 <tr> <td> 旅館B <td> 熊本県B市 </td> 深 度 </td> 旅館C </td> 25 20 15 <td> YYYY-YY-YYYY </td> </tr> <td> 90 大分県A郡 </td> 10 5 タ グ 0 1 19 37 55 73 91 109 127 145 163 181 199 217 235 253 271 289 307 325 343 361 379 397 415 433 451 469 487 505 937 955 973 991 1009 1027 1045 1063 1081 1099 1117 1135 1153 1171 1189 タグ 果部分として抽出します. この手法は人がWebアプリの検索結 図2 タグ深度とパターン 果ページから検索結果部分を見つける方 法とよく似ています.ある人が知らない 外国の言葉で書かれたホテル検索サイト メニューといった,検索結果以外の情報 続している範囲を探します.このとき, の結果ページからホテルの検索結果を探 も含まれます.そこで,この人はホテル この人はHTMLのタグや書かれている意 し出すとします.検索結果のページに の情報を見つけるために,検索結果のペ 味を見ているわけではなく,見た目だけ はホテルの情報以外に,バナー広告や ージから繰返し同じようなパターンが連 でホテルの検索結果の位置を判断しま NTT技術ジャーナル 2008.6 41 す.この方法はうまく機能し,この人は パのコンフィグファイルを生成するため ボックスを選択し,入力の名前を入 ホテルの検索結果を見つけることができ のツールを実装しました.図3にラッパ 力します(例:都道府県名が表示 ます.このような,人が経験で身に付け 生成ツールのGUIを示します.これを用 されている行のチェックボックスを ている方法を用いることで,さまざまな い,以下のようにしてコンフィグファイ 選択し,入力名としてareaを入力 Webアプリに適用可能な,柔軟な抽出 ルを生成します. する). を実現できます. ① コンポーネントのポートタイプ (クラス名)とオペレーション(メソッ URLをURL入力フィールドに入力 抽出成功率の評価 筆者らは実際のWebアプリが生成す ④ 対象Webアプリの結果ページの ド名)とを入力します. し,次へボタンを押下します. ② ⑤ Webアプリの処理結果1件が抽 生 成 されるX S L T ファイル るHTMLドキュメントからの抽出成功率 出結果として表示されます(宿検索 (HTMLからSOAPメッセージへの を評価するために,100個のWebアプリ の結果ページ中の宿情報1件分な 変換のためのルール) と変換以外 が生成するHTMLドキュメントを収集し ど).ラッパ作成者は正しい部分が の設定ファイルとの,2種類のコン ました(検索結果が5件以上あるもの). 抽出されていることを確認し,誤っ フィグファイルを確認し,これらの 同時に,これらのHTMLドキュメントか た抽出結果が表示された場合は, コンフィグファイルを書庫ファイル ら深度が周期的に変化する部分を発見 次の抽出結果の候補を確認します. し,その周辺を検索結果部分として抽 正 しい抽 出 結 果 を表 示 後 , コン このように,簡単な操作でコンフィグ 出するプログラムを実装しました. としてまとめてダウンロードします. ポーネント(Webサービス)の出力 ファイルを生成でき,これをラッパに適 このプログラムを用 い, 収 集 した に含めたい文字列のチェックボック 用することで,Webアプリはコンポーネ HTMLドキュメントから抽出を試みまし スを選択し,出力の名前を入力し ントとして利用可能となります. た. この結 果 , プログラムは8 割 の ます(例:宿名が表示されている行 HTMLドキュメントの検索結果の部分 のチェックボックスを選択し,出力 を見つけることができました.これによ 名としてhotelNameを入力する) . ところで,コンポーネントの使い道は Webアプリの検索結果ページの ユビキタスサービスとマッシュアップアプ アプリに対して適用可能だといえます. URLを構成する要素が表示されま リケーションのみなのでしょうか.1つ り,この手法は世の中のほとんどのWeb ③ ラッパ生成技術の応用 抽出に失敗した2割の主な失敗原因 す(URLのパスに含まれるディレク の大きな使い道としてアカウントアグリ は,検索結果以外の部分に周期的な深 トリ名とクエリ文字列に含まれる各 ゲーションや横断検索への応用がありま 度変化部分があったことでした.例えば, 引数).ラッパ管理者はコンポーネ す.これらは複数のWebアプリの検索結 リンク集やメニューのような部分は検索 ントの入力としたい要素のチェック 果等の画面を1つの別の画面上にまとめ 結果ではありませんが,同じようなタグ の構造が繰返しがちです.このため,こ のような部分にも周期的な深度変化が現 れます.プログラムは見つかった部分が 正しい検索結果の部分なのか,メニュー なのか区別することができないのです. ①URLを入力してください ②出力の名前を入力してください 前の候補1 2 3 4 5 6 7 8 9 10次の候補 を区別するため,規則的な深度変化以 ます. ラッパ生成ツール 筆者らは抽出プログラムを基に,ラッ 42 NTT技術ジャーナル 2008.6 ⑤設定ファイルを生成します XSLT hotel search.php ▲ 次へ>> 現在,検索結果の部分とそれ以外と 外の特徴も併用することを検討してい ③入力の名前を入力してください http://www.ntt-p.co.jp/hotel/search.php?y=2007& hotelName bgcolor=#f6f6dc align=center width=8% href=http://www.ntt-h.com/ ホテル電電 10000円 0422-59-1234 東京都武蔵野市緑町 area y=2007 m=08 d=31 area=tokyo ▼ 次へ>> その他の設定 ▲ ④Webサービスの情報を 入力してください ポートタイプ NTTPortal オペレーション searchHotel 次へ>> 次へ>> 図3 ラッパ生成ツールのGUI ▼ ダウンロード R & D ホ ッ ト コ ー ナ ー アプリ側のデザインの変更にラッパが自 動的に追従し,ラッパのメンテナンスコ 旅行会社A ストをさらに抑えるための研究開発を行 複数旅行会社の宿 横断検索サービス 整形 抽出 旅行会社B ページ 生成 旅行会社Aの Config 旅行会社C ■参考文献 (1) 山登・中辻・須永:“ユビキタス環境で動的 にサービス実現するためのサービス合成技 術,” 情処学論, Vol.48, No.2, pp.562-577, 2007. (2) 中野・山登・武本・須永:“Webアプリケー ションWeb サービス化ラッパシステムの実装 と評価,”情処学論,Vol.49, No.2, pp.727-738, 2008. 送信 ラ ッ パ う予定です. 閲覧 旅行会社Bの Config 旅行会社Cの Config ユーザ 図4 ラッパによる横断検索の例 るためのサービスです.ユーザは複数の うにして,先ほど説明した,ラッパ生成 画面を表示する必要がなく,1つのWeb ツールの操作を行うだけで,Webアプリ ページでそれぞれの検索結果を比較でき からの抽出の処理をラッパに任せること ます.これを実現するためには,各Web ができ,プログラムの作成を減らし,簡 アプリのHTMLドキュメントから特定の 易に横断検索サービスを作成することが 部分を抜き出すためのプログラムを作成 可能となります.同時に,Webアプリ する必要がありました. 側のデザインが変更され,抽出位置が変 図4はラッパを用いた,旅行会社A, わったとしても,ツールを用いて簡易に B,Cの旅館検索サイトの横断検索サー コンフィグファイルを再生成できるため, ビスの例です.ラッパはそれぞれのWeb これまで必要であったプログラムの変更 アプリの検索結果のページから検索結果 が不要となり,メンテナンスコストを抑 部分のみを抽出し,それぞれの抽出結果 えることもできます. を共通のフォーマットに変換し,それら を横断検索サービスのサーバに送信しま ま と め す.サーバは送信された各Webアプリの 既存の多くのWebアプリを簡易にコ 検索結果から1つのHTMLドキュメント ンポーネント化できるラッパとラッパ生 を生成し,ユーザに提供します.このよ 成ツールを開発しました.今後は,Web (左から)武本 充治/ 中野 雄介/ 山登 庸次/ 須永 宏 さまざまなWebアプリのコンポーネント 化を目指し,研究開発を進めています. ◆問い合わせ先 NTTネットワークサービスシステム研究所 次世代ネットワークサービスプロジェクト TEL 0422-59-7431 FAX 0422-59-2042 E-mail [email protected] NTT技術ジャーナル 2008.6 43