(57)【要約】      （修正有）【課題】Webアプリケーションの通信ログを元にWebアプリケーションのショートカットサービスを提供する。【解決手段】Webアプリケーションの、一連の操作の際に発生する通信のログを元に、Webアプリケーションの任意の機能に対するショートカットサービスを提供する。通信ログをそのまま利用した場合、必要の無い膨大な量のログを削除しなければならない。必要最小限の通信ログのみ採取するよう、通信ログ取得を制御する。また、通信ログを用いる方式では、JavaScriptの影響を受けることがないので、JavaScriptにより画面遷移先やフォームの内容が動的に決定されるようなWebアプリケーションに対しても、任意の機能に対するショートカットサービスの提供が実現可能となる。【選択図】図１
2008117339.tif 000002
【特許請求の範囲】
【請求項１】
Webアプリケーションの操作を行うWebブラウザとWebサーバとの間の一連の通信ログから、Webアプリケーションの任意の機能に対するショートカットを実現するサービスを定義する方法であって、
プロキシとして動作し、サービスを定義するために必要な通信のみを記録指示する第１のステップと、
該記録指示に従ってWebアプリケーションのWebサーバへのリクエスト情報をHTTPリクエストから取得する第２ステップと、
取得した通信ログを解析し、URIとパラメータとを抽出し、サービス定義者にその情報を提示する第３のステップと、
前記サービス定義者からサービス化に必要な情報を受け取る第４のステップと、
前記第３のステップと前記第４のステップとで取得した情報を元にサービス実行のためのシナリオを生成する第５のステップと、
を有することを特徴とする情報定義方法。
【請求項２】
Webアプリケーションの任意の機能に対するショートカットを定義する装置であって、
WebクライアントとWebアプリケーションサーバとの間の通信を仲介し、各種通信ログを取得するHTTPプロキシ部と、
WebアプリケーションのWebサービス化に必要な情報のみの記録を前記HTTPプロキシ部に指示する通信ログ取得制御部と、
前記記録された通信ログを解析し、Webサービスのインターフェイスとして必要な情報を抽出するサービスのパラメータ設定部と、
を有することを特徴とするショートカットの定義装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Webアプリケーションの通信ログを元に、Webアプリケーションの任意の機能に対するショートカットサービスを定義して提供する方法および装置に関する。
【背景技術】
【０００２】
Webアプリケーションでは、様々な機能を提供しているが、一般的に特定の機能を直接呼び出すことは想定されていない。例えば、資材発注システムの発注機能を利用しようとする場合、資材発注システムにログインし、発注品を選択し、選択した品を発注するといった、一連の処理を行う必要がある。このように、Webアプリケーションではステートを持つことが多く、特定の機能に対応するURI（Uniform Resource Identifiers）を呼び出しても、その機能を利用できるとは限らない。
【０００３】
これに対して、REST（Representational State Transfer）（非特許文献１）と呼ばれるWebアプリケーションのためのアーキテクチャスタイルがある。RESTアーキテクチャには幾つかの設計原則があり、例えば「ステートレスなクライアント/サーバープロトコル」、「すべてのリソースは URIで表されるユニークなアドレスを持つ」といった原則がある。例えば前者の原則は、HTTPリクエストを受け取ったサーバが、HTTPリクエストに、そのリクエストを処理するために必要な情報が全て含まれていなければならないと言うことを意味する。この原則を考慮すると、前節で例示した資材発注システムは、発注を行う機能に関しては、RESTの設計原則に従っていないことになる。RESTの原則に従っているシステムの例としては、Yahoo! やGoogleなどの検索エンジンがある。例えば、「日立製作所」をYahoo! JAPANで検索する場合のURIは、「http://search.yahoo.co.jp/search?ei=UTF-8&fr=sfp&p=%E6%97%A5%E7%AB%8B%E8%A3%BD%E4%BD%9C%E6%89%80&meta=vc%3D」となる。このURIは日立製作所の検索結果というリソースに割り当ててある一意のURIであり、また、サーバは本URIから処理に必要な情報を取得し、結果を応答することができる。RESTの考え方は、近年注目されているWebを介したAPI (Application Programming Interface)であるWebAPIによく用いられている。
【０００４】
Web技術を用いたAPIとしては、SOAP（非特許文献２）と呼ばれるプロトコルを用いる方法もある。SOAPでは、通信プロトコルとして主にHTTPを用い、データ表現形式としてはXML (Extensible Markup Language)を用いる。SOAPでは、データをXMLで表現することで言語やプラットフォームに依存しない通信が可能である。
【０００５】
Webアプリケーションの特定の機能を、ネットワークを介して利用することを目的に、WebアプリケーションをSOAPサービスにラッピングする方法が幾つか開示されている。
【０００６】
例えば、特許文献１では、プロキシ型の変換サーバにより、SOAPサービス化対象の操作に関連した通信ログを予め採取し、その通信ログからWebアプリケーション操作のためのシナリオを生成する技術が開示されている。また、SOAP-HTTPプロトコルの変換装置を持つことも記載されている。ここでの構成によれば、SOAPクライアントからプロキシ型の変換サーバにSOAPリクエストが到着すると、SOAPリクエストから必要なWebアプリケーションを呼び出すために必要なパラメータを取得し、事前に採取したシナリオに沿って、WebアプリケーションにHTTPリクエストを送信する。
【０００７】
このようにWebアプリケーションの通信ログの解析、シナリオの作成、シナリオの実行およびプロトコル変換により既存WebアプリケーションをSOAPサービス化する方法が特許文献１には開示されている。
【０００８】
また、他の例として、特許文献２が挙げられる。特許文献２においても特許文献１と同様にシナリオの作成・実行およびプロトコル変換に基づいてWebアプリケーションのSOAPサービス化を実現する技術が開示されている。しかし特許文献２には、特許文献１と異なりシナリオを作成する際に、ブラウザを拡張した開発環境を用いることが記載されている。具体的には、開発環境のブラウザ上に対象となるWebアプリケーションを表示しながら、マウスを用い、ブラウザに表示されるハイパーリンクからURIの情報を取得し、次の呼び出し先としてシナリオに追加したり、フォームから入力すべきパラメータの情報を抽出したりするなど、表示されている画面のデータを元にシナリオを作成する構成となっている。画面からの情報取得には、画面の構成情報にアクセスするAPIであるDOM (Document Object Model)を利用している。
【０００９】
以上のように、特許文献１、特許文献２に示すようなSOAP変換装置では、Webアプリケーションの画面からXMLデータを生成する。そのため、クライアントは利用者（ブラウザ）ではなく、一般的には、計算機（SOAPクライアント）となる。
【００１０】
【特許文献１】特開2004-246747号公報
【特許文献２】特開2005-056058号公報
【特許文献３】特開2005-321970号公報
【非特許文献１】Roy Fielding, Architectural Styles and the Design of Network-based Software Architectures, http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
【非特許文献２】W3C, SOAP Specifications, http://www.w3.org/TR/soap
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記Yahoo! JAPAN検索の例のように、Webアプリケーションの任意の機能を直接呼び出せるような方法は存在していない。一方、上記従来技術で示したように、Webアプリケーションの任意の機能をSOAPサービスとして焼き直して、すなわち形式を変換させて提供可能とするSOAP変換装置が幾つか存在する。
【００１２】
特許文献１に開示された発明においては、通信ログを元にシナリオを作成する点が示されているが、膨大な通信ログからシナリオを作成するための方法は考慮していない。一般にＷｅｂアプリケーションの画面はHTML（Hyper Text Markup Language）以外に、GIFやJEPGなどの画像やスタイルシート（CSS: Cascading Style Sheets）など様々なデータにより構成されている。また、IFRAME要素やFRAMESET要素を用いた場合は、複数のHTMLのデータから画面が構成されることになる。特に近年では、Webアプリケーションの見栄えの良さが要求されるため、画面の構成要素が増える一方である。
【００１３】
一方、特許文献２に開示された発明においては、ブラウザを拡張した開発環境上でWebアプリケーションを操作しつつ、画面に表示されているリンクを選択しつつ、DOMでURIなどの情報を取得し、シナリオを作成していくことを示している。しかしながら、この方法の場合、リンクを構成するA要素のhref属性にURIが直接指定されず、JavaScriptなどのスクリプト言語を用いて画面遷移が行われるような場合には対応できない。フォームから入力すべきパラメータを抽出する際においても、JavaScriptなどのスクリプト言語を用いて、パラメータを追加したり、フォームのサブミット先URIすなわちaction属性を動的に変更させたりするような場合にも対応できない。
【課題を解決するための手段】
【００１４】
本発明の目的は、Webアプリケーションの任意の機能を、上記Yahoo! JAPAN検索の例のように、直接呼び出せるような方法を提供することである。そのために、Webアプリケーションの、一連の操作の際に発生する通信のログを元に、Webアプリケーションの任意の機能に対するショートカットサービスを提供する。前述したとおり、通信ログをそのまま利用した場合、必要の無い膨大な量のログを削除しなければならない。そこで、本発明では、必要最小限の通信ログのみ採取するよう、通信ログ取得を制御する。また、通信ログを用いる方式では、JavaScriptの影響をうけることがないので、JavaScriptにより画面遷移先やフォームの内容が動的に決定されるようなWebアプリケーションに対しても、任意の機能に対するショートカットサービスの提供が実現可能となる。
【発明の効果】
【００１５】
本発明によれば、Webアプリケーションの任意の機能に対するショートカットを作成することが可能となる。さらに、他のWebアプリケーションからショートカットに必要なパラメータを与えて呼び出すなど、Webアプリケーション同士の連携も可能となる。
【実施例１】
【００１６】
第１の実施例について図面を用いて説明する。図１に本発明のショートカットサービスを実現するための全体構成図を示す。
【００１７】
ショートカットサービス提供装置１００は、ショートカットサービスの定義を行うツールであるショートカットサービス定義ツール１０１、ショートカットサービス定義ツール１０１によりショートカットサービス化されたサービスを実行するショートカットサービス実行部１０２からなる。ショートカットサービス定義ツール１０１で定義されたショートカットサービスは、ショートカットサービスリポジトリ１０３に登録される。ショートカットサービス実行部１０２は、クライアントからショートカットサービス実行の要求を受け取った場合、ショートカットサービスリポジトリ１０３を参照し、サービス実行に必要な情報を取得し、ショートカットサービスの実行を行う。ショートカットサービスリポジトリ１０３の詳細は後で述べるが、必要な情報が管理できれば、リレーショナルデータベース、ファイル、オンメモリのテーブルなどどのような機構を用いても良い。ショートカットサービス定義ツール１０１はショートカットサービス定義用Webブラウザ１０５からアクセスされ、サービス化対象のWebアプリケーション１０４のショートカットサービス化を行う。ショートカットサービスは、ショートカットサービス呼び出し用のWebブラウザ106から呼び出される。ショートカットサービス提供装置１００、Webアプリケーション１０４そして操作用のブラウザ１０５、１０６はネットワーク１０７により接続されている。
【００１８】
図１に示した各種プログラムは、図２に示すような一般的な計算機２００の上で動作する。計算機２００は、相互に接続されたCPU２０１、入力装置２０２、出力装置２０３、メモリ２０４、外部記憶装置２０５及び通信装置２０６を備える。ＣＰＵ２０１は、メモリ２０４に格納されたプログラムを実行するプロセッサである。メモリ２０４は、例えば半導体記憶装置であり、ＣＰＵ２０１によって実行されるプログラム及びその他のデータを格納する。具体的には、メモリ２０４には、外部記憶装置２０５に格納されたプログラム等がロードされる。外部記憶装置２０５は、例えばハードディスクドライブであり、ＣＰＵ２０１によって実行されるプログラム及びその他のデータを格納する。図２には一般的な計算機のハードウェア構成を示したが、上記プログラムを実行可能であれば、どのようなハードウェア構成の計算機でもよい。なお、ショートカットサービス提供装置１００を構成するショートカットサービス定義ツール１０１、ショートカットサービス実行部１０２は別の計算機２００で稼動しても良い。
【００１９】
次いで、図３から図７を用いて本実施例でショートカットサービス化を行うWebアプリケーション１０４の一例について説明する。Webアプリケーションの例としてブックマーク管理アプリケーションを用いる。
【００２０】
図３はWebアプリケーション１０４のログイン画面を示している。ログイン画面のURIはhttp://ap1.example.com/login.jsp（３０１）であり、本画面には、ログインに必要なユーザIDの入力エリア302とパスワードの入力エリア３０３および該入力をWebアプリケーションサーバ１０４に送信するためのログインボタン３０４からなる。これらの構成要素はHTMLのフォーム機能を用いて作成されることが多い。
【００２１】
ログインボタン３０４を押下し、ログインに成功すると図４に示したログイン後のユーザホーム画面が表示される。本画面のURI４００はhttp://ap1.example.com/index.jspである。本例ではログインボタン３０４押下によりhttp://ap1.example.com/index.jspが呼ばれユーザ認証のための処理が行われる。ユーザホーム画面は、ブックマークに対する操作へのリンク４０１、４０２およびユーザのブックマークの一覧４０３、４０６で構成される。本例では、操作としては、ブックマークの追加４０１、ブックマークの検索４０２をサポートしている。なお、本実施例ではブックマークの検索については取り扱わない。ブックマーク一覧の項目ごとにブックマークの内容編集へのリンク４０４、４０７およびブックマークの削除へのリンク４０５、４０８が設置されている。なお、本実施例ではブックマークの削除については取り扱わない。
【００２２】
次いで、図５を用いてブックマークの編集画面について説明する。編集画面のURI５００はhttp://ap1.example.com/editbookmark.jsp?id=52384728である。URI５００中に含まれるidパラメータはブックマークの項目を特定するためのパラメータである。本Webアプリケーション１０４ではブックマークの内容として、一覧表示用のタイトル５０１、ブックマーク対象のURI５０２、ブックマーク対象の詳細情報５０３、分類用のタグ５０４を保持する。本編集画面では、必要に応じて前記項目の内容を編集し、完了ボタン５０５をクリックすることで、編集内容を反映する。なお、本例ではタイトル５０１とアドレス５０２の入力は必須としている。ブックマーク内容の編集をキャンセルした場合には、キャンセルボタン５０６をクリックする。
【００２３】
さらに、図６を用いてブックマークの追加画面について説明する。追加画面のURI６００はhttp://ap1.example.com/addbookmark.jspである。ブックマーク追加のための入力内容としては前記編集画面と同様にタイトル６０１、アドレス６０２、詳細６０３、分類タグ６０４である。本追加画面では、必要項目入力後、追加ボタン６０５をクリックすることで、入力内容をブックマーク一覧に追加する。なお、本例ではタイトル６０１とアドレス６０２の入力は上記編集画面と同様に必須としている。ブックマーク内容の追加をキャンセルした場合には、キャンセルボタン６０６をクリックする。
【００２４】
図６に示すブックマーク追加画面で、追加ボタン６０５をクリックし、ブックマークを追加した後の画面を図７に示す。本例では追加ボタン６０５をクリックした場合、ユーザホーム画面であるhttp://ap1.exapmle.com/index.jspが呼び出され、ブックマークの追加処理およびブックマークの一覧表示の処理が行われる。図６において、追加されたブックマークはブックマーク一覧の一番目に挿入される。追加前に一番目だったブックマーク４０３は2番目に表示される。同様に追加前にN番目だったブックマークはN+1番目に表示されることになる。
【００２５】
以上が本実施例で用いるWebアプリケーションの一例の詳細である。本実施例では、ブックマークの追加操作についてショートカットサービスとしてサービス化する手順を示す。
【００２６】
図８にショートカットサービス定義ツール１０１の機能構成図を示す。ショートカットサービス定義ツール１０１は、Webアプリケーション１０４とショートカットサービス定義用Webブラウザ１０５との間にプロキシとして介在するHTTPプロキシ８０１、HTTPプロキシの通信ログ取得を制御する通信ログ取得制御部８００および通信ログ取得制御コンソール８０５、通信ログ取得制御部８００がHTTPプロキシ８０１に対して出力を指示した通信ログを解析する通信ログ解析部８０２、通信ログ解析部８０２が解析した情報を元にショートカットサービスのための設定を受け付ける画面を生成する設定画面生成部８０３及び設定画面生成部８０３が生成した設定画面の結果を元にショートカットサービスを実行するためのシナリオを生成するシナリオ生成部８０４からなる。
【００２７】
通常、WebクライアントとWebアプリケーションサーバとの間の通信は、ログインやショートカットサービス化したい操作以外にも、途中の画面遷移や画像、スタイルシートなど多岐に渡る。そこで、通信ログ取得制御部８００により、ショートカットサービス化に必要なログインとショートカットサービス化対象操作の通信ログのみ取得するよう制御する。制御は、図９に示す通信ログ取得制御コンソールを用いて、ログイン操作とショートカットサービス化対象操作の直前に、それぞれ、「ログイン操作を記録」ボタン９０３、「ショートカットサービス化対象操作を記録」ボタン９０４を押下することで、取得対象通信ログを限定することで実現する。
【００２８】
上記により、ブックマーク管理アプリケーションの通信ログを取得した結果を図１０に示す。通信ログ１０００および１００１は、ログイン操作のHTTPリクエスト、HTTPレスポンスにそれぞれ対応する。通信ログ１００２および１００３は、ショートカットサービス化対象操作のHTTPリクエスト、HTTPレスポンスに対応する。
【００２９】
次いで、取得したログを元にショートカットサービス化するために、ショートカットサービスのパラメータを定義する。具体的には、入力として必要となるパラメータを定義する。図１１に示すように、通信ログで現れたパラメータについて、ショートカットサービスの、パラメータの種別の定義を行う。パラメータとしては、シングルサインオンのための「ユーザID」および「パスワード」、固定の値を示す「固定値」、外部から与えられるパラメータを示す「引数」から選択する。本例では、ログイン用のuserid、password、ショートカットサービス化対象操作として登録するブックマークの内容に対応するtitle、address、description、tagがショートカットサービスの入力パラメータとなる。actionパラメータについては、ブックマーク管理アプリケーション操作の過程で手動入力したものではないので、「固定値」とする。本設定情報をXML形式で表現したデータを図１２に示す。本ショートカットサービスシナリオは、ショートカットサービスリポジトリ１０３に格納される。本リポジトリには、ショートカットサービスシナリオ以外に、サービスパラメタ設定画面から受け取ったサービスID、サービス名称があわせて格納される。
【００３０】
ショートカットサービス実行部については、特許文献３に開示された技術（バックエンドの改変なしでシングルサインオンを実現）を元に実現する。
【００３１】
上記ショートカットサービスは、図１３に示すようなアプリケーション連携に適用可能である。図１３の例はメールからショートカットサービスでサービス化したアプリケーションを呼び出す例を示している。図１３に示す例では、パラメータとしてURLを持ったショートカットサービスを３つ予め定義している。具体的には、先の例でショートカットサービス化した「ブックマークに追加」ショートカットサービス１３０１、Yahoo!のホームページ翻訳サービスをショートカットサービス化した「Ｙａｈｏｏ！で日→英翻訳」ショートカットサービス１３０２、「Ｙａｈｏｏ！で英→日翻訳」ショートカットサービス１３０３の３つである。連携元であるメールアプリケーションでは、メール本文中に含まれるアンカーの情報を元にこれらショートカットサービスとの連携を実現する。例えば、アンカー上にマウスポインタがのった際に、ショートカットサービス呼び出し用のメニュー１３０４を表示し、利用者が呼び出したいショートカットサービスを選択した場合、先に述べたショートカットサービス実行部を呼び出す。これにより、Webアプリケーション同士をユーザインターフェイスレベルで連携することが可能となる。連携用メニュー１３０４の表示は、図１４に示すショートカットサービスリポジトリ１０３を参照し作成する。本例の場合、URLをパラメータとして持つショートカットサービスをショートカットサービスリポジトリ１０３から検索し、連携用のメニューとして生成している。本メニューの生成はメールアプリケーションが画面を生成する際に実行しても良いし、アンカー上にマウスポインタがのったタイミングで行っても良い。メールアプリケーションに連携用の機能を埋め込む方法は、ショートカットサービスが予め連携メニューを生成するライブラリを提供し、組み込んでもらうことで実現が可能である。
【００３２】
このようにして、ショートカットサービスにより既存Webアプリケーションの部品化・再利用化が容易になる。ショートカットサービスとして部品化されたサービスは、アプリケーション間の連携に応用可能である。
【産業上の利用可能性】
【００３３】
本発明を用いることにより、既存Webアプリケーションのサービス化を促進し、更にWebアプリケーション同士の連携が可能となる。従来手動でWebアプリケーション間のデータ入力などを行っていたものが、本発明によりデータ連携可能となり、それにより、システム利用者の生産性が向上する。
【図面の簡単な説明】
【００３４】
【図１】本発明の全体構成図の一例。
【図２】本発明のプログラムが動作する計算機の構成の一例。
【図３】Webアプリケーションの一例であるブックマーク管理アプリケーションにおけるログイン画面の例。
【図４】Webアプリケーションの一例であるブックマーク管理アプリケーションにおけるユーザホーム画面の例。
【図５】Webアプリケーションの一例であるブックマーク管理アプリケーションにおけるブックマーク編集画面の例。
【図６】Webアプリケーションの一例であるブックマーク管理アプリケーションにおけるブックマーク追加画面の例。
【図７】Webアプリケーションの一例であるブックマーク管理アプリケーションにおけるブックマーク追加後画面の例。
【図８】ショートカットサービス定義ツールの機能構成図。
【図９】通信ログ取得制御コンソールの画面例。
【図１０】ショートカットサービス定義ツールで取得した通信ログの一例。
【図１１】サービスパラメタ設定画面例。
【図１２】ショートカットサービスのシナリオ定義例。
【図１３】ショートカットサービスの応用例。
【図１４】ショートカットサービスリポジトリの項目例。
【符号の説明】
【００３５】
１００：ショートカットサービス提供装置、１０１：ショートカットサービス定義ツール、１０２：ショートカットサービス実行部、１０３：ショートカットサービスリポジトリ、１０４：ショートカットサービス化対象Webアプリケーション、１０５：ショートカットサービス定義用Webブラウザ、１０６：ショートカットサービス呼び出し用Webブラウザ。
【図１】
2008117339.tif 000003
【図２】
2008117339.tif 000004
【図３】
2008117339.tif 000005
【図４】
2008117339.tif 000006
【図５】
2008117339.tif 000007
【図６】
2008117339.tif 000008
【図７】
2008117339.tif 000009
【図８】
2008117339.tif 000010
【図９】
2008117339.tif 000011
【図１０】
2008117339.tif 000012
【図１１】
2008117339.tif 000013
【図１２】
2008117339.tif 000014
【図１３】
2008117339.tif 000015
【図１４】
2008117339.tif 000016