(57)【要約】【課題】  Webアプリケーションを呼び出すWebページ内にスクリプトが含まれる場合にも対応した、既存WebアプリケーションをWebサービスに変換する方法及びシステムを提供することを目的とする。【解決手段】  変換サーバは、事前にプロファイルにおいて入力情報として記述されたWebページを取得し、そのスクリプトとそのスクリプトの操作対象となるHTML文書のDOMを保持しておく。また、Webページに対するイベントに対応したメソッドをもつWebサービスを生成する。Webサービスクライアントからそのメソッドが要求されたとき、保持しているWebページの対応するスクリプトを実行する。これにより、WebアプリケーションをWebサービスに変換するシステムはスクリプトに対応できる。【選択図】  図１
2005107699.tif 000002
【特許請求の範囲】
【請求項１】
既存WebアプリケーションをWebサービスに変換する方法であって、
変換に必要な情報としてWebアプリケーションへの入力情報と出力情報とが記述されたプロファイルで、該入力情報としてスクリプトを含むWebページのURLが記述されているプロファイルを、生成する第一のステップと、
前記プロファイルに基づいてWebサービスを生成する第二のステップと、
生成したWebサービスを実行する第三のステップと
を備えたことを特徴とするスクリプトを含むWebコンテンツのWebサービスへの変換方法。
【請求項２】
請求項１に記載のスクリプトを含むWebコンテンツのWebサービスへの変換方法において、
前記第二のステップは、変換サーバにより、前記プロファイルにおいて入力情報として記述されたWebページを取得し、そのスクリプトとHTML文書のDOMを保持することを特徴とする変換方法。
【請求項３】
請求項２に記載のスクリプトを含むWebコンテンツのWebサービスへの変換方法において、
前記第二のステップは、前記変換サーバが入力情報として取得したWebページのスクリプトのうち、Webサービスでは不必要な式を削除したスクリプトを保持することを特徴とする変換方法。
【請求項４】
請求項２または３に記載のスクリプトを含むWebコンテンツのWebサービスへの変換方法において、
前記第二のステップは、前記変換サーバが入力情報として取得したWebページのHTML文書を、Webアプリケーションの呼び出し及びスクリプトの実行に関わる要素のみからなるDOMに変換して保持することを特徴とする変換方法。
【請求項５】
請求項１から４の何れか１つに記載のスクリプトを含むWebコンテンツのWebサービスへの変換方法において、
前記第二のステップは、Webアプリケーションへの入力変数を設定する設定メソッドと、イベントに対応したイベントメソッドと、Webアプリケーションの出力変数を取得する取得メソッドの、３種類のメソッドを持つWebサービスを生成することを特徴とする変換方法。
【請求項６】
請求項５に記載のスクリプトを含むWebコンテンツのWebサービスへの変換方法において、
前記第三のステップにおいて、前記設定メソッドがWebサービスクライアントからリクエストされた場合、前記変換サーバは、保持しているDOMに対して与えられた変数値を設定することを特徴とする変換方法。
【請求項７】
請求項５に記載のスクリプトを含むWebコンテンツのWebサービスへの変換方法において、
前記第三のステップにおいて、前記イベントメソッドがリクエストされた場合、前記変換サーバは、保持しているDOMを参照し、前記イベントメソッドに対応するスクリプトが存在する場合に当該スクリプトを実行することを特徴とする変換方法。
【請求項８】
請求項７に記載のスクリプトを含むWebコンテンツのWebサービスへの変換方法において、
前記第三のステップにおいて、前記スクリプトにメッセージボックスを表示させる命令がある場合、前記変換サーバは、メッセージボックス内のメッセージを例外のメッセージとして設定し、Webサービスクライアントに対して例外を投げることを特徴とする変換方法。
【請求項９】
請求項７に記載のスクリプトを含むWebコンテンツのWebサービスへの変換方法において、
前記第三のステップにおいて、リクエストされたイベントメソッドがsubmitである場合、前記変換サーバが保持しているDOMから必要な情報を取得し、HTTPリクエストを生成・送信し、WebアプリケーションからHTTPレスポンスを取得することを特徴とする変換方法。
【請求項１０】
請求項５に記載のスクリプトを含むWebコンテンツのWebサービスへの変換方法において、
前記第三のステップにおいて、前記取得メソッドがリクエストされた場合、前記変換サーバは、取得したHTTPレスポンスのHTML文書からプロファイルの出力情報で指定された部分を取得し、SOAPレスポンスに変換してWebサービスクライアントに送信することを特徴とする変換方法。
【請求項１１】
既存WebアプリケーションをWebサービスに変換するシステムであって、
変換に必要な情報としてWebアプリケーションへの入力情報と出力情報とが記述されたプロファイルで、該入力情報としてスクリプトを含むWebページのURLが記述されているプロファイルを、生成する手段と、
前記プロファイルに基づいてWebサービスを生成する手段と、
生成したWebサービスを実行する手段と
を備えたことを特徴とするスクリプトを含むWebコンテンツのWebサービスへの変換システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、既存WebアプリケーションのWebサービスへの変換方法及びシステムに関する。
【背景技術】
【０００２】
インターネットの普及により、Webサービスが広まりつつある。Webサービスとは、人間の介在を前提としたWebアプリケーションとは異なり、SOAPというデータ交換のプロトコルによって、人間が介在せずに、コンピュータ同士がネットワークを通して直接データを交換することができるアプリケーションのことである。
【０００３】
出願人は、既存WebアプリケーションをWebサービスに変換する技術として、例えば、特願２００３−４２２２１号や特願２００３−２８４８９９号（何れも本願と出願人同一で本願出願時点で未公開）を出願している。
【０００４】
特願２００３−４２２２１号に記載の技術は、Webサービスにおけるデータ交換のプロトコルSOAPとWebアプリケーションにおけるデータ交換のプロトコルHTTPの相互変換を行うものである。具体的には、FORMタグやＡタグを含むWebページから特定の既存Webアプリケーションを呼び出すのに必要な情報、及び既存Webアプリケーションの戻り値としてのWebページからWebサービスとして提供する部分を指定したプロファイルを、プロキシサーバに配置する。プロキシサーバは、このプロファイルに基づき、WebサービスクライアントからのSOAPリクエストからデータを取得し、HTTPリクエストを生成しWebアプリケーションからのHTTPレスポンスを取得する。また、HTTPレスポンスのHTMLデータからプロファイルに基づきデータを取得し、SOAPレスポンスを生成し、Webサービスクライアントへ送信する。これによって、既存WebアプリケーションをWebサービスに変換する。
【０００５】
また、特願２００３−２８４８９９号に記載の技術は、特願２００３−４２２２１号に記載の技術と同様に、プロキシサーバで動的に既存WebアプリケーションをWebサービスに変換するが、Webアプリケーションを提供するWebサーバがセッション管理を行っている場合に対応したものである。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した背景技術では、Webアプリケーションを呼び出すのに必要な情報をWebページ内のタグ単位で指定しているが、そのWebページ内に含まれるスクリプトを考慮していないという問題がある。最近のWebページは、サーバの負荷軽減等の目的で、スクリプトを記述しておくことにより、ユーザの入力値等に対して、入力値の妥当性検証や簡単な演算をクライアントで実行し、その結果をWebアプリケーションに送信するようにしている。
【０００７】
しかし、上述した背景技術は、プロトコルの変換しか行っておらず、スクリプトは無視されていた。このため、不適当な値がWebアプリケーションに送られてしまう問題があった。
【０００８】
本発明の目的は、Webアプリケーションを呼び出すWebページ内にスクリプトが含まれる場合にも対応した、既存WebアプリケーションをWebサービスに変換する方法及びシステムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明は、既存WebアプリケーションをWebサービスに変換する方法であって、変換に必要な情報を記述したプロファイルを生成する第一のステップと、プロファイルに基づいてWebサービスを生成する第二のステップと、生成したWebサービスを実行する第三のステップとを備えたことを特徴とする。前記第一のステップにおいて、Webアプリケーションへの入力情報と出力情報とが記述されたプロファイルを生成するものであり、Webアプリケーションへの入力情報として、スクリプトを含むWebページのURLが記述されたプロファイルを生成するものである。
【００１０】
前記第二のステップは、変換サーバにより、プロファイルにおいて入力情報として記述されたWebページを取得し、そのスクリプトとHTML文書のDOMを保持するものである。変換サーバが入力情報として取得したWebページのスクリプトのうち、文字列の表示方法や書式の指定など、Webサービスでは不必要な式を削除したスクリプトを保持するようにする。また、変換サーバが入力情報として取得したWebページのHTML文書をWebアプリケーションの呼び出し及びスクリプトの実行に関わる要素のみからなるDOMに変換して保持することとする。さらに、Webアプリケーションへの入力変数を設定する設定メソッドと、イベントに対応したイベントメソッドと、Webアプリケーションの出力変数を取得する取得メソッドの３種類のメソッドを持つWebサービスを生成する。
【００１１】
前記第三のステップにおいて、設定メソッドがリクエストされた場合、変換サーバは、保持しているDOMに対して与えられた変数値を設定する。イベントメソッドがリクエストされた場合、変換サーバは保持しているDOMを参照し、前記イベントメソッドに対応するスクリプトが存在する場合に当該スクリプトを実行する。スクリプトにメッセージボックスを表示させる命令がある場合、変換サーバは、メッセージボックス内のメッセージを例外のメッセージとして設定し、Webサービスクライアントに対して例外を投げる。リクエストされたイベントメソッドがsubmitである場合、変換サーバが保持しているDOMからHTTPリクエストを生成・送信し、WebアプリケーションからHTTPレスポンスを取得する。取得メソッドがリクエストされた場合、変換サーバは、取得したHTTPレスポンスのHTML文書からプロファイルの出力情報で指定された部分を取得し、SOAPレスポンスに変換してWebサービスクライアントに送信する。
【発明の効果】
【００１２】
本発明によれば、事前に変換サーバにスクリプトとそのスクリプトの操作対象となるHTML文書のDOMを保持しておくことで、WebアプリケーションをWebサービスに変換するシステムはスクリプトに対応できるようになる。また、変換及びスクリプトの実行に必要な要素だけから構成されるDOMを保持することによって、メモリ使用量の削減やDOM内のデータへのアクセスの高速化を可能にすることができる。さらに、Webサービスにとって不要なメソッドをスクリプトから削除したことによって、スクリプトの高速な実行が可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
【００１４】
図１は、本発明の実施の一形態のWebサービスへの変換システムの構成を示すブロック図である。Webサービスへの変換システムは、図１に示すように、Webアプリケーションを提供するWebサーバ１３０と、WebアプリケーションをWebサービスに変換する変換サーバ１４０と、WebアプリケーションをWebサービスに変換するのに必要な情報を記述したプロファイルを作成するプロファイル作成装置１２０と、変換サーバ１４０が提供するWebサービスをインターネット１１０を通して利用するWebサービスクライアント１００とを備える。
【００１５】
変換サーバ１４０は、他装置との通信を行う通信部１４１、プロファイル生成装置１２０で生成したプロファイルを解析するプロファイル解析部１４２、プロファイルに指定されたHTML文書をDOM(Document Object Model)として保持しておくDOM DB１４３、プロファイルに指定されたWebサービスの戻り値を保持する戻り値DB１４４、プロファイルで指定されたHTML文書内のスクリプトを解析するスクリプト解析部１４５、解析したスクリプトを保持するスクリプトDB１４６、スクリプト中の不要メソッドを定義して保持しておく不要メソッドDB１４７、プロファイルに基づきWebサービスを生成するWebサービス生成部１４８、生成したWebサービスを保持するWebサービスDB１４９、Webサービスクライアント１００からのSOAPリクエストを解析するSOAPリクエスト解析部１５０、Webサービスの提供に関する制御を行う制御部１５１、リクエストに基づき保持しているHTML文書のDOMを操作するDOM操作部１５２、スクリプトを実行するスクリプト実行部１５３、Webサーバ１３０に対するHTTPリクエストを生成するHTTPリクエスト生成部１５４、HTTPレスポンスを解析するHTTPレスポンス解析部１５６、及び、WebサービスクライアントへのSOAPレスポンスを生成するSOAPレスポンス生成部１５５を備える。
【００１６】
本発明の実施の一形態を具体的な例を挙げて説明する。
【００１７】
図２と図３は、従業員の情報を検索する既存Webアプリケーションの例である。図２はWebアプリケーションを呼び出すWebページ(http://www.×××.co.jp/whois.html)をブラウザ表示したもので、図３はそのHTML文書である。ユーザがこのWebページの従業員番号の入力欄２０１に従業員番号を入力し、検索ボタン２０２を押すと、クライアントはHTML文書内のスクリプトcheck()を実行し、まず入力したデータが数字か判定する（３０１）。もし、入力データが数字でないならば"半角の数字を入力してください。"（３０２）というメッセージを太字にして（３０３）、メッセージボックスに表示する（３０４）。もし、入力データが数字であるならば、従業員番号をWebアプリケーションに送信する（３０５）。従業員番号を取得したWebアプリケーションは、対応する従業員の情報を、図４に示すWebページとして返す。このWebページ内の従業員の情報には、従業員番号、従業員氏名、所属部署、及び電話番号が含まれる。
【００１８】
この従業員の情報を検索する既存WebページをWebサービスに変換するには、プロファイル作成装置１２０がこのWebアプリケーションに関するプロファイルを作成し、変換サーバ１４０にプロファイルを配置する必要がある。図５のフローチャートに基づき、その手順を説明する。
【００１９】
ステップ５０１では、プロファイル生成装置１２０が開発者の指示に従いプロファイルを生成する。
【００２０】
図６に、生成されたプロファイルの例を示す。このプロファイルは、変換サーバ１４０が提供するWebサービス(Whois)（６０１）の入力（６０２）と出力（６０３）に関する情報が記述してある。入力（６０２）には、Webアプリケーションを呼び出すWebページのURL(http://www.×××.co.jp/whois.html)が指定してある。出力（６０３）には、Webアプリケーションの戻り値であるWebページのURL(http://www.×××.co.jp/result.html)が指定してあり、このWebページ内のどの部分をWebサービスの出力値として提供するかを子要素PARAMETER（６０４、６０５）が指定している。ここでは、従業員氏名shimeiと電話番号telを出力値とし、これらが記述されているWebページ内の場所をXPathで指定している。
【００２１】
ステップ５０２では、プロファイル生成装置１２０がステップ５０１で生成したプロファイルを変換サーバ１４０に送信する。
【００２２】
ステップ５０３では、変換サーバ１４０の通信部１４１がプロファイル生成装置１２０の生成したプロファイルを読み込み、プロファイル解析部１４２に送る。プロファイル解析部１４２は、プロファイルのINPUT要素のurl属性を参照し、Webサーバ１３０からWebアプリケーションを呼び出すためのWebページ(図１及び２参照)を取得する。
【００２３】
ステップ５０４では、プロファイル解析部１４２がプロファイルを解析し、OUTPUT要素の子要素PARAMETERに基づいて、戻り値DB１４４に、戻り値を格納する領域を確保する。図７は、その格納例である。サービスWhoisの下に、戻り値shimeiとtelの領域が確保されている。
【００２４】
ステップ５０５では、プロファイル解析部１４２がステップ５０３で取得したWebページから必要な要素だけから構成されるDOMを生成しDOM DB１４３に格納する。ここで、必要な要素を判定する基準は次の２点である。一つ目の基準は、図３のFORM要素（３０６）のように、目的のWebアプリケーションを呼び出すのに直接関係している要素である。もう一つの基準は、図３の３０１の"form1.no.value"のように、Script内で参照される要素である。図８に、本例で生成されるDOMの例を示す。これと図３の元のHTML文書とを比較すると明らかなように、生成されたDOMはBR要素やCENTER要素がなくコンパクトになっていることがわかる。この工夫により、DOMに必要なメモリの使用量及びDOM内のデータへのアクセス時間を削減することが可能である。
【００２５】
ステップ５０６では、スクリプト解析部１４５が、ステップ５０３で取得したWebページからスクリプトの部分を取得し、スクリプトDB１４６に格納する。ただし、文字の書式を変更するなど、Webサービスとして不要な処理は削除する。このために、事前に不要メソッドDB１４７に不要なメソッド一覧を格納しておき、これと一致したメソッドを削除する。図９に、不要メソッドDB１４７への不要メソッド格納例を示す。また、図１０は、スクリプトDB１４６に格納されるスクリプトの例を示している。図３の元のスクリプトと比較すると、不要メソッドDB１４７に格納されているメソッド"bold()"の部分が削除されている。このように、Webサービスに不必要なメソッドを削除することにより、効率的にスクリプトを実行できる。
【００２６】
ステップ５０７では、Webサービス生成部１４８が、Webサービスのクラスを生成し、WebサービスDB１４９に格納する。図１１に、生成されるWebサービスのクラス例を示す。生成するクラスは、3種類のメソッドを持つ。一つ目は、Webアプリケーションを呼び出すのに必要な変数を設定する設定メソッド"setNo(string no)"で、これはHTML文書から自動的に設定される。２つ目は、submitなどイベントに対応したイベントメソッド"submit()"でこれもHTML文書から自動的に設定される。３つ目は、プロファイルのOUTPUT要素で設定された戻り値を取得する取得メソッド"getShimei(), getTel()"である。
【００２７】
以上で、変換サーバ１４０がWebアプリケーションをWebサービスに動的に変換するために必要な設定が完了した。
【００２８】
次に、図１２のフローチャートを用いて、変換サーバ１４０がWebサービスクライアント１００にWebサービスを提供する手順を説明する。
【００２９】
Webサービスクライアント１００からのSOAPリクエストを変換サーバ１４０の通信部１４１が受信すると、SOAPリクエスト解析部１５０が、そのSOAPリクエストを解析し、リクエストされたメソッドの種類を判定する(ステップ１２０１)。
【００３０】
リクエストされたメソッドが設定メソッドの場合、制御部１５１は、設定する値をDOM操作部１５２に渡す。DOM操作部１５２は、DOM DB１４３に格納されている対応するDOMに対して値を設定する(ステップ１２０２)。例えば、設定メソッド"setNo"がリクエストされた場合、"no"の値を図８のname属性が"no"であるINPUT要素の属性value８０１に設定する。
【００３１】
リクエストされたメソッドがイベントメソッドの場合、制御部１５１は、DOM DB１４３を参照し、リクエストされたイベントに対応するスクリプトが存在するか判定する(ステップ１２０３)。スクリプトが存在する場合には、スクリプト実行部１５３が、スクリプトDB１４６から対応するスクリプトを取得し、実行する(ステップ１２０４)。例えば、リクエストされたメソッドが"submit"の場合、図８のDOMにおいてFORM要素のonSubmit属性でスクリプト"check()"が指定されているので、スクリプトDB１４６に格納されている図１０のスクリプトを実行する。ここで、図１０のスクリプトのように、メッセージボックスを操作するメソッド(例えば"alart")が含まれている場合、メッセージボックス内のメッセージを例外のメッセージとする例外をWebサービスクライアント１００に投げる。
【００３２】
さらに、制御部１５１は、リクエストされたメソッドが"submit"であるか判定する(ステップ１２０５)。メソッドが"submit"である場合は、HTTPリクエスト生成部１５４が、DOM DB１４３に格納されている対応するDOMからHTTPリクエストを生成し、Webサーバ１３０に送信する(ステップ１２０６)。生成されるHTTPリクエストの例は、特願２００３−４２２２１号に記載されたものと同様である。HTTPレスポンス解析部１５６が、Webサーバ１３０からのHTTPレスポンスを受信する(ステップ１２０７)と、HTTPレスポンスに含まれるHTML文書から、プロファイルにおけるOUTPUT要素の子要素PARAMETERのxpath属性に設定されたXPathに従い、戻り値(ここでは、shimei及びtelの値)を取得する(ステップ１２０８)。取得した戻り値は、戻り値DB１４４に格納される。
【００３３】
リクエストされたメソッドが取得メソッドの場合、制御部１５１は、戻り値DB１４４から、対応する変数の値を取得し、SOAPレスポンス生成部１５５に渡す(ステップ１２０９)。SOAPレスポンス生成部１５５は、取得した値からSOAPレスポンスを生成し、Webサービスクライアント１００に送信する(ステップ１２１０)。生成されるSOAPレスポンスの例は、特願２００３−４２２２１号に記載されたものと同様である。
【００３４】
以上で、Webアプリケーションを呼び出すWebページにスクリプトが含まれている場合に、WebアプリケーションをWebサービスに動的に変換する処理が完了する。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施の形態のWebサービス変換システムの概略構成を示すブロック図
【図２】Webアプリケーションを呼び出すためのWebページ例を示すブラウザ表示例の図
【図３】Webアプリケーションを呼び出すためのWebページ例を示すHTML文書例の図
【図４】Webアプリケーションの出力結果であるWebページ例を示すブラウザ表示例の図
【図５】プロファイルの生成、配置処理の処理手順の概要を示すフロ−チャ−ト
【図６】WebアプリケーションをWebサービスに変換するための情報が記述されたプロファイル例を示す図
【図７】Webサービスの戻り値を格納する戻り値DBに格納されるデータ構造例を示す図
【図８】DOM DBに格納されるWebページのDOM構造の例を示す図
【図９】不要メソッドDBに格納された不要メソッド一覧の例を示す図
【図１０】スクリプトDBに格納されるスクリプト例を示す図
【図１１】プロファイルに基づいて生成されるWebサービス例を示す図
【図１２】Webサービスを実行する処理手順の概要を示すフローチャート
【符号の説明】
【００３６】
１００…Webサービスクライアント、１１０…インターネット、１２０…プロファイル作成装置、１３０…Webサーバ、１４０…変換サーバ。
【図１】
2005107699.tif 000003
【図２】
2005107699.tif 000004
【図３】
2005107699.tif 000005
【図４】
2005107699.tif 000006
【図５】
2005107699.tif 000007
【図６】
2005107699.tif 000008
【図７】
2005107699.tif 000009
【図８】
2005107699.tif 000010
【図９】
2005107699.tif 000011
【図１０】
2005107699.tif 000012
【図１１】
2005107699.tif 000013
【図１２】
2005107699.tif 000014