利 用 者 のブラウザ 操 作 をWebサービス 化 するための 開 発 最 適 化 支 援 環 境 株 式 会 社 富 士 通 研 究 所 田 中 昌 弘
目 次 背 景 Webサービスを 追 加 開 発 にコストがかかる 課 題 関 連 研 究 利 用 者 のブラウザ 操 作 からWebサービスを 自 動 生 成 する 手 法 提 案 手 法 利 用 者 のブラウザ 操 作 から 不 要 な 通 信 を 排 除 し 再 現 処 理 を 高 速 化 実 験 考 察 まとめ 1
背 景 マッシュアップ ネットワーク 上 のリソースや 機 能 を 組 み 合 わせて 新 しいWebコンテンツを 作 成 マッシュアップの 例 : http://www.housingmaps.com/ エンタープライズマッシュアップ 業 務 の 効 率 化 が 目 的 Webサービスが 公 開 されていれば 統 合 は 比 較 的 容 易 2
背 景 エンタープライズマッシュアップ 企 業 内 の 複 数 のWebシステムを 統 合 し 業 務 を 効 率 化 することが 目 的 各 WebシステムにWebサービスが 公 開 されていればマッシュアップは 容 易 Webサービスが 無 い 場 合 は 認 証 や 画 面 遷 移 があるため マッシュアップは 困 難 顧 客 管 理 システム(Salesforce.com) 認 証 情 報 と 検 索 キーワードを 送 信 社 内 の 在 庫 検 索 システム 在 庫 検 索 用 Webサービス 在 庫 結 果 を 自 動 入 力 Webサービスが 公 開 されていないWebシステム Webサービスの 追 加 開 発 が 必 要 になる Webシステムの 修 正 に 伴 う 仕 様 書 修 正 再 テストによりコスト 大 Webサービスの 追 加 開 発 の 低 コスト 化 が 課 題 3
既 存 研 究 EMML Enterprise Mashup Markup Language (EMML) Webラッパーサービス 専 用 の 記 述 言 語 Webシステムに 対 してブラウザと 同 様 の 通 信 処 理 を 記 述 既 存 のWebシステムを 修 正 することなく Webラッパーサービスの 作 成 が 可 能 通 信 処 理 の 記 述 が 煩 雑 画 面 遷 移 や 認 証 方 式 について 詳 細 な 仕 様 理 解 が 必 要 記 述 を 容 易 にするだけでなく ある 程 度 の 自 動 生 成 も 必 要 4 <mashup xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" name="sampleemml"> <input name="id" type="string" default="" /> <input name="pw" type="string" default=""/> <output name="result" type="string"/> <variables> <variable name="codestring" type="string"/> <variable name="base64authorization" type="string"/> </variables> <template expr="{$id}:{$pw}" outputvariable="$codestring"/> <script type="text/javascript"> <![CDATA[ var s = new Packages.java.lang.String(codeString); var b = Packages.org.apache.commons.codec.binary.Base64.encodeBase64(s.getBytes()); var hash = new Packages.java.lang.String(b); base64authorization = "Basic " + hash; ]]> </script> <display message="hash = " variable="base64authorization"/> <variables> <variable name="reqheaders" type="document"/> </variables> <constructor outputvariable="reqheaders"> <headers> <Accept>text/html;q=0.9,*/*;q=0.8</Accept> <Authorization>{$base64Authorization}</Authorization> </headers> </constructor> <directinvoke endpoint="http://sample.com/index.htm" method="get" header="$reqheaders" outputvariable="result" /> <display message="result = " variable="result"/> </mashup>
既 存 研 究 ブラウザ 操 作 をWebサービス 化 ブラウザを 操 作 して 得 られる 通 信 からWebラッパーサービスを 生 成 詳 細 な 仕 様 理 解 はほぼ 不 要 であり 既 存 のシステムを 変 更 せずに 作 成 可 能 開 発 者 (1)ブラウザを 操 作 開 発 環 境 (2) 通 信 を 記 録 中 継 既 存 Web システム (3) 通 信 記 録 を 編 集 通 信 記 録 生 成 Web サービス (4) 他 システムから 実 行 配 備 (マッシュアップ) 5 Web サービス (5) 自 動 実 行 M. Tanaka, T. Kume, A. Matsuo, "Web API Creation for Enterprise Mashup," IEEE World Congress on Services (SERVICES) 2011.
課 題 画 像 などの 不 要 なWebコンテンツも 再 現 することで 実 行 時 間 悪 化 コンテンツの 種 類 でフィルタリング 可 能 だが 複 数 のフレームで 構 成 された Webページの 場 合 に 不 要 なフレームどうかの 自 動 判 別 は 困 難 ( 例 ) ブラウザに 表 示 された 画 面 トップ 画 面 (top.html) ログイン (info.html) (image.gif) 開 発 環 境 (2) 通 信 を 記 録 中 継 既 存 Web システム ブラウザが 画 面 表 示 のために 行 った 通 信 トップ 画 面 (top.html) info.html 通 信 記 録 Web サービス 配 備 (5) 自 動 実 行 時 間 image.gif 6 Web サービス
課 題 の 分 析 ブラウザに 表 示 されたページの 断 片 には 対 応 したURLが 含 まれる ( 例 ) ブラウザに 表 示 された 画 面 時 間 トップ 画 面 (top.html) ログイン (info.html) (image.gif) ブラウザが 画 面 表 示 のために 行 った 通 信 トップ 画 面 (top.html) info.html image.gif ブラウザ 内 部 のDocument Object Model (DOM) 7 header form action=/login document location=/top.html body input input input 入 力 操 作 を 行 わなかった 断 片 のURLから 不 要 な 通 信 を 排 除 することを 検 討 iframe src=/info.html document img src=/image.gif
提 案 手 法 開 発 者 の 入 力 操 作 を 監 視 する 機 能 を 付 加 し 操 作 を 行 ったDOMに 含 まれるURLを 抽 出 して 通 信 のフィルタリングを 行 う 入 力 操 作 にはマウスの 押 下 やキー 入 力 がある ( 例 ) ブラウザに 表 示 された 画 面 ブラウザ 内 部 のDocument Object Model (DOM) 選 択 された トップ 画 面 (top.html) document ノードから location=/top.html 入 力 ルートまでの (info.html) 入 力 親 ノードを 辿 り (image.gif) header body 各 ノードの 属 性 ログイン 押 下 からURLを 抽 出 時 間 ブラウザが 画 面 表 示 のために 行 った 通 信 トップ 画 面 (top.html) info.html image.gif 8 form action=/login input input input URLの 集 合 http://sample.com/top.html http://sample.com/login iframe src=/info.html document img src=/image.gif
提 案 手 法 開 発 者 (1)ブラウザを 操 作 入 力 操 作 を 監 視 開 発 環 境 (2) 通 信 を 記 録 中 継 既 存 Web システム (3) 通 信 記 録 を 編 集 操 作 したDOMに 含 まれるURLを 通 知 コンテンツの 種 類 だけでは 判 定 できないページに 対 しても 適 用 トップ 画 面 (top.html) 通 信 記 録 生 成 Web サービス URL 記 録 既 存 Webシステム から 受 信 した HTMLに 埋 め 込 む 時 間 info.html image.gif 従 来 はコンテンツの 種 類 でフィルタリング 9 開 発 者 のブラウザ 操 作 を 監 視 し 操 作 されたDOMに 含 まれるURLを 通 知 するスクリプト
実 験 社 内 の 業 務 システムで 出 張 申 請 の 操 作 をWebサービス 化 ブラウザを 操 作 通 信 を 記 録 画 像 ログイン 画 面 従 業 員 番 号 : パスワード: (3) ログイン クリア (1) (2) 画 像 出 張 内 容 入 力 出 張 先 : 交 通 費 : 戻 る 次 へ (14) (12) (13) 生 成 従 業 員 番 号 パスワード 出 張 先 などを パラメータに 与 えて 実 行 Web サービス 画 像 リンク リンク ログアウト 画 像 戻 る リンク リンク リンク 画 像 出 張 申 請 画 像 リンク 出 張 期 間 入 力 年 月 日 ~ (5) (6) (7) (8) (9) (10) 次 へ (4) 年 月 日 (11) 画 像 承 認 者 1: 承 認 者 2: 戻 る 回 送 先 入 力 回 送 申 請 完 了 終 了 (17) (15) (16) 10
実 験 本 手 法 を 用 いて 除 外 したいWebコンテンツ 社 内 の 業 務 システムで 出 張 申 請 の 操 作 をWebサービス 化 ブラウザを 操 作 通 信 を 記 録 画 像 ログイン 画 面 従 業 員 番 号 : パスワード: (3) ログイン クリア (1) (2) 画 像 出 張 内 容 入 力 出 張 先 : 交 通 費 : 戻 る 次 へ (14) (12) (13) 生 成 従 業 員 番 号 パスワード 出 張 先 などを パラメータに 与 えて 実 行 Web サービス 画 像 リンク リンク ログアウト 画 像 戻 る リンク リンク リンク 画 像 出 張 申 請 画 像 リンク 出 張 期 間 入 力 年 月 日 ~ (5) (6) (7) (8) (9) (10) 次 へ (4) 年 月 日 (11) 画 像 承 認 者 1: 承 認 者 2: 戻 る 回 送 先 入 力 回 送 申 請 完 了 終 了 (17) (15) (16) 11
実 験 本 手 法 の 適 用 前 と 後 で 通 信 回 数 を 比 較 最 小 値 ( 動 作 確 認 を 行 いながら 通 信 処 理 を 手 動 で 省 いて 求 めた 値 )とも 比 較 コンテンツの 種 類 従 業 員 番 号 : パスワード: 適 用 前 ログイン 画 面 ログイン コンテンツ フィルタ 適 用 通 信 回 数 本 手 法 適 用 本 手 法 + コンテンツ フィルタ 適 用 画 像 リンク リンク リンク リンク 画 像 出 張 申 請 (4) リンク 画 像 リンク ログアウト 最 小 値 HTML 10 10 6 6 5 画 像,スタイル, スクリプト 15 0 2 0 0 合 計 25 10 8 6 5 入 力 操 作 をしたDOMの 中 に 最 小 値 と 比 較 して 画 像 のURLが 含 まれていたために 余 分 に 抽 出 したWebページ 余 分 に 抽 出 した 画 像 コンテンツ 画 像 (3) クリア (1) (2) 12
考 察 開 発 者 の 操 作 に 関 係 の 無 いHTMLの 通 信 を 自 動 で 排 除 可 能 とくにフレームやポップアップ 画 面 の 通 信 が 多 いWebシステムに 対 して 有 効 操 作 したDOMに 画 像 などのコンテンツが 含 まれている 場 合 は 別 途 コンテン ツの 種 類 で 排 除 手 動 で 求 めた 最 小 の 通 信 と 比 較 して 余 分 な 通 信 を 含 む 場 合 がある 省 略 してもWebシステムに 影 響 を 与 えない 通 信 処 理 は 存 在 する 場 合 がある 通 信 を 省 略 して 影 響 を 与 えるかどうかはWebシステムの 仕 様 に 依 存 するため 自 動 的 な 排 除 は 困 難 制 限 事 項 HTMLで 書 かれたWebシステムに 対 して 有 効 JavaアプレットやFlashなどで 画 面 作 成 が 行 われたものには 無 効 HTMLの 仕 様 に 沿 った 認 証 や 画 面 遷 移 を 行 うWebシステムに 対 して 有 効 JavaScriptでセッション 情 報 を 更 新 するような 処 理 が 多 く 記 述 されている 場 合 認 証 に 必 要 なWebコンテンツも 操 作 に 関 係 が 無 いと 判 断 して 排 除 する 可 能 性 がある 記 録 した 通 りの 通 信 のみの 再 現 が 可 能 途 中 で 画 面 遷 移 に 分 岐 が 入 るものは 別 途 Webサービスの 修 正 が 必 要 13
まとめ 背 景 エンタープライズマッシュアップ Webサービスを 追 加 開 発 にコストがかかる 課 題 関 連 研 究 利 用 者 のブラウザ 操 作 からWebサービスを 自 動 生 成 する 手 法 ブラウザの 通 信 を 記 録 し その 通 信 を 再 現 する 処 理 をWebサービスとして 生 成 利 用 者 のブラウザ 操 作 に 関 連 しない 通 信 まで 再 現 する 課 題 提 案 手 法 利 用 者 ( 開 発 者 )の 入 力 操 作 から 不 要 な 通 信 を 排 除 し 再 現 処 理 を 高 速 化 実 験 社 内 のOAシステムで 出 張 申 請 の 操 作 をWebサービス 化 し 通 信 回 数 を 比 較 考 察 サブページで 構 成 されたHTMLのページに 有 効 ログイン 画 面 のような 入 力 画 面 を 表 示 するだけの 通 信 は 排 除 不 可 14
15