(57)【特許請求の範囲】
【請求項１】
所定のシステム装置を対象とする処理を要求する処理要求を受信する処理要求受信部と、
前記処理要求受信部が受信する前記処理要求に対応し、かつ、前記所定のシステム装置に対するユーザ操作が定義された実行定義を格納した実行定義格納部から前記処理要求に対応する前記実行定義を読込み、読み込まれた前記実行定義の示す前記ユーザ操作の定義に基づいて、前記所定のシステム装置に対するブラウザエンジンの操作を指示するブラウザ操作指示信号を生成し、生成した前記ブラウザ操作指示信号を出力する定義実行部と、
前記定義実行部により出力された前記ブラウザ操作指示信号を入力し、前記ブラウザ操作指示信号を入力するとブラウザエンジンを生成し、生成された前記ブラウザエンジンを前記ブラウザ操作指示信号に従って操作することにより前記所定のシステム装置に対するユーザ操作を代行するブラウザエンジン操作部と
を備え、
前記実行定義格納部に格納される前記実行定義は、
前記ユーザ操作の定義として、複数のブラウザエンジンの生成と生成されたブラウザエンジンのそれぞれに対する所定の初期化とからなる初期化処理と、初期化された前記複数のブラウザエンジンのそれぞれを用いた実行処理とが定義されており、
前記定義実行部は、
予め設定されているタイミングで前記初期化処理の定義を前記実行定義格納部から読み込み、読み込まれた前記初期化処理の定義に基づいて、前記ブラウザエンジン操作部に前記初期化処理に対応するブラウザエンジンの操作を指示するブラウザ初期化処理信号を前記ブラウザ操作指示信号として生成し、生成された前記ブラウザ初期化処理信号を出力し、
前記ブラウザエンジン操作部は、
前記定義実行部によって出力された前記ブラウザ初期化処理信号を入力し、前記ブラウザ初期化処理信号を入力すると前記複数のブラウザエンジンを生成するとともに、前記ブラウザ初期化処理信号に従って、生成されたブラウザエンジンのそれぞれに対して前記所定の初期化処理を実行させ、
前記定義実行部は、
前記実行処理の定義を前記実行定義格納部から読み込み、読み込まれた前記実行処理の定義に基づいて、前記ブラウザエンジン操作部に前記実行処理に対応するブラウザエンジンの操作を指示するブラウザ実行処理信号を前記ブラウザ操作指示信号として生成し、生成された前記ブラウザ実行処理信号を前記ブラウザ初期化処理信号の出力後に前記ブラウザエンジン操作部に出力し、
前記ブラウザエンジン操作部は、
前記定義実行部によって出力された前記ブラウザ実行処理信号を入力し、入力された前記ブラウザ実行処理信号に従って、前記複数のブラウザエンジンのそれぞれを操作することを特徴とするユーザ操作代行装置。
【請求項２】
所定のシステム装置に対するユーザ操作が定義されたユーザ操作ロジックのインスタンスである実行ロジックと、前記実行ロジックのユーザ操作を実行するブラウザエンジンのインスタンスであるブラウザエンジンインスタンスとの組をセッションを識別するセッションＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）と対応付けることによりセッション管理対象として記憶し管理するセッション管理部と、
前記所定のシステム装置を対象とする処理を要求するとともにセッションＩＤを含む処理要求を受信し、受信された前記処理要求に含まれるセッションＩＤと同一のセッションＩＤによって管理されている前記セッション管理対象の取得を前記セッション管理部に依頼し、前記セッション管理部から前記セッション管理対象を取得すると、取得された前記セッション管理対象に含まれる前記実行ロジックに処理を依頼する処理要求受信部と、
ブラウザエンジンの操作を指示するブラウザ操作指示信号に従って前記ブラウザエンジンを操作するブラウザエンジン操作部と
を備え、
前記処理要求受信部から前記処理を依頼された前記実行ロジックは、
自己である前記実行ロジックの前記ユーザ操作の定義に基づいて前記ブラウザ操作指示信号を生成し、生成された前記ブラウザ操作指示信号を前記ブラウザエンジン操作部に出力し、
前記ブラウザエンジン操作部は、
前記実行ロジックから前記ブラウザ操作指示信号を入力し、入力された前記ブラウザ操作指示信号の指示に従って、前記セッション管理部から取得された前記ブラウザエンジンインスタンスを操作することにより前記所定のシステム装置に対するユーザ操作を代行することを特徴とするユーザ操作代行装置。
【請求項３】
前記実行ロジックは、
前記ユーザ操作として、少なくとも、前記所定のシステム装置に対する第１の処理と、前記第１の処理の後に実行されるとともに前記第１の処理で使用されるブラウザエンジンインスタンスと同一のブラウザエンジンインスタンスが使用される第２の処理とが定義されており、
前記ブラウザエンジン操作部は、
前記第１の処理における所定の状態のブラウザエンジンインスタンスを複製するとともに、複製された前記ブラウザエンジンインスタンスを前記第２の処理に使用することを特徴とする請求項２に記載のユーザ操作代行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、既存のＷｅｂシステムをラッピングするＷｅｂシステムラッピング装置（ユーザ操作代行装置）、ユーザ操作代行プログラムに関する。
【背景技術】
【０００２】
既存システムが持つ機能を再利用して新規システムを構築する場合、再利用する機能を新規システムのインタフェースに合わせるためにプロトコル変換などといったラッピングする方法が用いられる。特に再利用の対象がＷｅｂ画面などの場合はスクリーンラッピングと呼ばれている。
【０００３】
既存Ｗｅｂシステムのスクリーンラッピングによって既存資産のサービス化を図る場合、一般的にはサービス化対象とする画面遷移と入力処理を代行して処理するエミュレーションプログラムの作成もしくはブラウザエンジンの利用を行っていた。
【０００４】
しかし、１つのプログラムで既存Ｗｅｂシステムの画面遷移処理を実行すると、画面遷移回数が多い場合や大量の画像データなどによってロードに時間のかかってしまう画面が存在する場合、画面内のスクリプト処理に時間がかかる場合にラッピングされたサービスの応答も時間がかかってしまっていた。
【０００５】
このような問題を解決するために、複数のエミュレーションプログラムを用意し、あらかじめ調査しておいた既存Ｗｅｂシステムの画面遷移にかかる時間と遷移方法を用いて目的の画面に最短の時間で遷移できるエミュレーションプログラムを選択して処理要求を発行する機能を用いられていた（例えば、特許文献１）。
【特許文献１】特開２００４−３０２７２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
（１）従来の複数のプログラムを用いて高速化を図るラッピング方式は、あらかじめ既存Ｗｅｂシステムの画面遷移にかかる時間と遷移方法を調査しておく必要があるため、新規システム構築に工数がかかるという課題があった。
（２）また、プログラム同士の連携が図れないため、複数画面にまたがった操作をラッピングできないという課題があった。
（３）また、既存システムにおいてユーザ認証が必要な場合、全てのプログラムについてユーザ認証処理を行わなければならないという課題があった。
【０００７】
この発明は、
（１）可能な限り、既存Ｗｅｂシステムに対する調査内容を減らし、
（２）また、複数画面にまたがる操作のラッピングを可能とし、
（３）また、ユーザ認証がある場合でも、処理の効率化を図った上で、ラッピングされたサービスの応答時間の高速化を図ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明のユーザ操作代行装置は、
所定のシステム装置を対象とする処理を要求する処理要求を受信する処理要求受信部と、
前記処理要求受信部が受信する前記処理要求に対応し、かつ、前記所定のシステム装置に対するユーザ操作が定義された実行定義を格納した実行定義格納部から前記処理要求に対応する前記実行定義を読込み、読み込まれた前記実行定義の示す前記ユーザ操作の定義に基づいて、前記所定のシステム装置に対するブラウザエンジンの操作を指示するブラウザ操作指示信号を生成し、生成した前記ブラウザ操作指示信号を出力する定義実行部と、
前記定義実行部により出力された前記ブラウザ操作指示信号を入力し、前記ブラウザ操作指示信号を入力するとブラウザエンジンを生成し、生成された前記ブラウザエンジンを前記ブラウザ操作指示信号に従って操作することにより前記所定のシステム装置に対するユーザ操作を代行するブラウザエンジン操作部と
を備えたことを特徴とする。
【発明の効果】
【０００９】
この発明により、複数のプログラムを用いて高速化を図るラッピング方式において、既存Ｗｅｂシステムに対する調査内容を減らすことができる。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
図１は、コンピュータで実現されるサーバ装置８００の外観の一例を示す図である。サーバ装置８００は、図３で後述するＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ：第１のプロトコル）クライアント１００、ＳＯＡＰ通信機能２００、ラッパー３００、実行定義４００を含む。すなわち図１では、ＳＯＡＰクライアント１００〜実行定義４００は、サーバ装置８００により実現されている。なお、ＳＯＡＰクライアント１００は、別個のサーバとされる場合もある。
【００１１】
図１において、サーバ装置８００は、システムユニット８３０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置８１３、キーボード８１４（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス８１５、ＦＤＤ８１７（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・  Ｄｒｉｖｅ）、コンパクトディスク装置８１８（ＣＤＤ：Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｄｒｉｖｅ）、プリンタ装置８１９などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。サーバ装置８００はインターネットを介して既存Ｗｅｂシステム５００と通信可能である。
【００１２】
図２は、サーバ装置８００のハードウェア資源の一例を示す図である。図２において、サーバ装置８００は、プログラムを実行するＣＰＵ８１０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、プリンタ装置８１９、磁気ディスク装置８２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
【００１３】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファの一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３、プリンタ装置８１９などは、出力部、出力装置の一例である。通信ボード８１６はインターネットに接続され、既存Ｗｅｂシステム５００と通信可能である。
【００１４】
磁気ディスク装置８２０には、オペレーティングシステム８２１（ＯＳ）、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０、オペレーティングシステム８２１、ウィンドウシステム８２２により実行される。
【００１５】
上記プログラム群８２３には、以下に述べる実施の形態の説明において「〜機能」、「〜エンジン」、「ＳＯＡＰクライアント１００」、「実行ロジック３５０」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ８１０により読み出され実行される。
【００１６】
ファイル群８２４には、以下に述べる実施の形態の説明において、「実行定義４００」として説明する情報や、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明する情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ８１０によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００１７】
また、以下に述べる実施の形態の説明においては、データや信号値は、ＲＡＭ８１２のメモリ、ＦＤＤ８１７のフレキシブルディスク、ＣＤＤ８１８のコンパクトディスク、磁気ディスク装置８２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス８２５や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１８】
また、以下に述べる実施の形態の説明において、「〜機能」、「〜エンジン」、「ＳＯＡＰクライアント１００」、「実行ロジック３５０」として説明するものは、「〜手段」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜機能」、「〜エンジン」等として説明するものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ８１０により読み出され、ＣＰＵ８１０により実行される。すなわち、プログラムは、以下に述べる「〜機能」、「〜エンジン」等としてコンピュータを機能させるものである。あるいは、以下に述べる「〜機能」、「〜エンジン」等の手順や方法をコンピュータに実行させるものである。
【００１９】
図３は、実施の形態１のＷｅｂラッピングシステム１０００の構成図である。Ｗｅｂラッピングシステム１０００は、ＳＯＡＰクライアント１００、ＳＯＡＰ通信機能２００、ラッパー３００（ユーザ操作代行装置）、既存Ｗｅｂシステム５００から構成される。
【００２０】
（１）ＳＯＡＰクライアント１００は、ラッピングされたＷｅｂサービスへ処理要求を送信するプログラムである。
（２）ＳＯＡＰ通信機能２００は、ＳＯＡＰメッセージを送受信し、メッセージ処理機能３１０へ処理要求を発行する。
（３）ラッパー３００は、既存Ｗｅｂシステム５００をラッピングする装置である。
（４）既存Ｗｅｂシステム５００は、ラッピングの対象とするシステムである。
【００２１】
ラッパー３００は、メッセージ処理機能３１０（処理要求受信部）、定義実行エンジン３２０（定義実行部）、ブラウザエンジン操作機能３３０（ブラウザエンジン操作部）、ブラウザエンジン３４０及び実行定義４００を格納する実行定義格納部４１０を備える。実行定義格納部４１０に格納された実行定義４００は、ラッピングしたい操作や処理が記述されたデータである。
【００２２】
ラッパー３００において、
（１）メッセージ処理機能３１０は、ＳＯＡＰボディを解析し、定義実行エンジン３２０へ処理要求を発行する。
（２）定義実行エンジン３２０は、処理要求に対する実行定義４００を読み込み実行する。
（３）ブラウザエンジン操作機能３３０は、クリック操作やデータ入力、抽出操作などをブラウザエンジンで実行したり、ブラウザエンジンを複製する。
（４）ブラウザエンジン３４０は、既存Ｗｅｂシステム５００にアクセスしてＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：第２のプロトコル）通信する。
【００２３】
図４は、実施の形態１において、ラッピングの対象とする既存Ｗｅｂシステム５００に対するユーザ操作の流れを示す。図４において、ユーザが検索メニュー画面２０００にアクセスして“○○検索”をクリックすると、検索メニュー画面２０００は○○検索画面２００１に遷移する。ユーザが「○○検索画面２００１」において“キーワード”を入力し”検索”ボタンをクリックすることで、「○○検索画面２００１」は「検索結果画面２００２」に遷移する。「検索結果画面２００２」には、検索結果として項目１〜項目３が表示されるものとする。これらのユーザ操作によって、ユーザは、表中の２行２列目の値”ＢＢＢＢＢ”を得たいとする。
【００２４】
（実行定義４００）
図５は、前記ユーザ操作の流れにおけるユーザ操作を定義した実行定義４００の内容である。ｏｐｅｒａｔｉｏｎ（ｋｅｙｗｏｒｄ）がＷｅｂサービスオペレーションの動作定義となる。オペレーション名がｏｐｅｒａｔｉｏｎであり、引数がｋｅｙｗｏｒｄで、ｋｅｙｗｏｒｄは検索のキーワードとなる。
【００２５】
（ＳＯＡＰクライアント１００、ＳＯＡＰ通信機能２００）
次に図６〜図１３のフローチャート、及び図１４の全体動作を示すシーケンス図を参照して動作を説明する。図１４は、各フローチャートの動作をシーケンス（ステップＳ１〜Ｓ１０）として表している。まず図６、図７、図１４を参照して説明する。図６は、ＳＯＡＰクライアント１００の動作のフローチャートである。また図７は、ＳＯＡＰ通信機能２００の動作のフローチャートである。まず、図６のように、ＳＯＡＰクライアント１００は、ＳＯＡＰメッセージ（ＳＯＡＰリクエスト）をラッピングされたサービス（ＳＯＡＰ通信機能２００）に送信し（Ｓ１０００、Ｓ１）、ＳＯＡＰ通信機能２００からレスポンスを受信する（Ｓ１００１）。また、図７に示すように、ＳＯＡＰ通信機能２００は、ＳＯＡＰクライアント１００からＳＯＡＰメッセージを受信する（Ｓ１１００）。そして、ＳＯＡＰ通信機能２００は、受信したＳＯＡＰメッセージからＳＯＡＰボディを抜き出し、メッセージ処理機能３１０にＳＯＡＰボディと共に処理要求を渡す（Ｓ１１０１、Ｓ２）。ＳＯＡＰ通信機能２００はメッセージ処理機能３１０から処理結果を受け取り（Ｓ１１０２）、この処理結果（ＳＯＡＰレスポンス）をＳＯＡＰクライアント１００へ返す（Ｓ１１０３）。
【００２６】
（メッセージ処理機能３１０）
図８は、メッセージ処理機能３１０の動作を示すフローチャートである。メッセージ処理機能３１０は、ＳＯＡＰ通信機能２００から受け取ったＳＯＡＰボディ（Ｓ１２００）から、Ｗｅｂサービスオペレーションの引数となる値を取り出し（Ｓ１２０１、Ｓ３）、定義実行エンジン３２０に処理要求と共に、取り出された引数を渡す（Ｓ１２０２、Ｓ４）。メッセージ処理機能３１０は、定義実行エンジン３２０から処理結果を受け取り（Ｓ１２０３）、定義実行エンジン３２０から受け取った処理結果をＳＯＡＰボディに格納し（Ｓ１２０４）、このＳＯＡＰボディをＳＯＡＰ通信機能２００へ返す（Ｓ１２０５）。
【００２７】
（定義実行エンジン３２０）
図９は、定義実行エンジン３２０の動作を示すフローチャートである。図９に示すように、定義実行エンジン３２０は、メッセージ処理機能３１０から受け取った（Ｓ１３００）処理要求に応じた実行定義４００を実行定義４００から読み込み（Ｓ１３０１、Ｓ５）、実行定義４００に定義された処理を実行する（Ｓ１３０２、Ｓ６）。すなわちＳ１３０２において、定義実行エンジン３２０は、実行定義４００の定義情報に従ってブラウザエンジン操作機能３３０に処理依頼（ブラウザ操作指示信号）を出力する。定義実行エンジン３２０は、実行定義４００の処理の最終的な実行結果をメッセージ処理機能３１０に返す（Ｓ１３０３）。
【００２８】
（ブラウザエンジン操作機能３３０）
図１０は、ブラウザエンジン操作機能３３０の動作を示すフローチャートである。図１０に示すように、ブラウザエンジン操作機能３３０は、定義実行エンジン３２０からブラウザエンジンの操作依頼（ブラウザ操作指示信号）を受け取り（Ｓ１４００、Ｓ７）、操作依頼に応じたブラウザエンジン操作を実行し（Ｓ１４０１、Ｓ８）、ブラウザエンジン操作の実行結果を定義実行エンジン３２０に返す（Ｓ１４０２）。
【００２９】
（ブラウザエンジン３４０）
図１１は、ブラウザエンジン３４０の動作を示すフローチャートである。図１１に示すように、ブラウザエンジン３４０は、ブラウザエンジン操作機能３３０から処理要求を受け取り（Ｓ１５００）、この処理要求に従って、既存Ｗｅｂシステム５００とＨＴＴＰ通信を行い（Ｓ１５０１、Ｓ９）、処理結果（通信結果）をブラウザエンジン操作機能３３０に返す（Ｓ１５０２）。
【００３０】
（既存Ｗｅｂシステム５００）
図１２は、既存Ｗｅｂシステム５００の動作を示すフローチャートである。図１２に示すように、既存Ｗｅｂシステム５００では、従来通りの処理がなされる（Ｓ１６００〜Ｓ１６０２、Ｓ１０）。すなわち、Ｓ１６００において、既存Ｗｅｂシステム５００は、ブラウザエンジン３４０からＨＴＴＰリクエストを受信する。Ｓ１６０１において、既存Ｗｅｂシステム５００の処理が実行される。Ｓ１６０２において、既存Ｗｅｂシステム５００は、ブラウザエンジン３４０にＨＴＴＰレスポンスを送信する。
【００３１】
（実行定義エンジン３２０）
図１３は、定義実行エンジン３２０が図５に示した実行定義４００を読み込み、実行することによって処理される流れを示したフローチャートである。この処理によって図４で説明した前記ユーザ操作の流れが再現される。上述のように、ブラウザエンジン操作機能３３０が定義実行エンジン３２０から受け取った操作要求（ブラウザ操作指示信号）に従ってブラウザエンジン３４０を操作することにより、図１３の処理が実行される。即ち、以下の説明では図１３では定義実行エンジン３２０を動作主体として記載しているが、実際には以下の（１）〜（５）のように、定義実行エンジン３２０がブラウザエンジン操作機能３３０に操作要求を出し、この操作要求を受けたブラウザエンジン操作機能３３０がブラウザエンジンを操作することにより動作が実行される。すなわち、定義実行エンジン３２０は、ブラウザエンジン操作機能３３０、及びブラウザエンジンを介して動作を実行する。
（１）Ｓ３０００において、ブラウザエンジン操作機能３３０がブラウザエンジン３４０を生成する。生成されたブラウザエンジン３４０が、既存Ｗｅｂシステム５００から「検索メニュー画面２０００」を読み込む。
（２）Ｓ３００１において、ブラウザエンジン３４０が、「○○検索」をクリックすることによって、「検索メニュー画面２０００」から「○○検索画面２００１」に遷移する。
（３）Ｓ３００２において、ブラウザエンジン３４０が、「キーワード」を入力し、「検索」ボタンをクリックすることによって、「○○検索画面２００１」が「検索結果画面２００２」に遷移する。
（４）Ｓ３００３において、ブラウザエンジン３４０が、検索結果の表において、２行２列に表意されている値「ＢＢＢＢＢ」を取得する。
（５）Ｓ３００４において、ブラウザエンジン３４０は、取得した値「ＢＢＢＢＢ」を返す
【００３２】
以上のように、ユーザ操作を代行するためのブラウザエンジン３４０と、その操作機能を実行定義４００の実行によって処理することで、画面操作や画面遷移の流れをラッピングしサービス化することができる。また、実行定義４００はユーザが実際の既存Ｗｅｂシステム５００を扱う際の操作レベルに近い操作定義であるため、既存Ｗｅｂシステム５００に対する調査は必要最小限になっており、新規システム構築の際の工数を削減することができる。
【００３３】
実施の形態２．
次に図１５〜図２０を参照して実施の形態２を説明する。以上の実施の形態１では、ユーザの操作する既存Ｗｅｂシステム５００の画面の流れが、単一で単純な場合を説明したが、実施の形態２では、画面の流れが複数に分かれており、各流れにまたがったユーザ操作のラッピングを示す。
【００３４】
（システム構成）
まず、システム構成について説明する。図１５は実施の形態２のＷｅｂラッピングシステム１０００の構成図である。図１５において、実行定義４００の内容と、ブラウザエンジン３４１が追加された以外は、図３に示した実施の形態１のシステム構成と同じである。
【００３５】
（１）図１５の実行定義４００には、「初期化処理」と「複数のブラウザエンジンを用いた処理」（実行処理）とが記述されている。
（２）ブラウザエンジン３４１は、ブラウザエンジン３４０と同等の機能を有する。ブラウザエンジン３４１は、既存Ｗｅｂシステム５００にアクセスし、ＨＴＴＰ通信する。
【００３６】
（既存Ｗｅｂシステム５００の画面）
図１６は実施の形態２においてラッピング対象とする既存Ｗｅｂシステム５００のユーザ操作の流れである。図１６において、
（１）ユーザは「検索メニュー画面２１００」にアクセスして“○○検索”をクリックすることで、画面は「○○検索画面２１０１」に遷移し、
（２）ユーザが“キーワード”を入力して”検索”ボタンをクリックすることで、画面は「検索結果画面２１０２」に遷移し、
（３）ユーザは表中の２行２列目の値（ＢＢＢＢＢ）を得ることができるとする。
（４）さらに、再びユーザは、「検索メニュー画面２１００」にアクセスして“××検索”をクリックすることで、画面は「××検索画面２１０３」に遷移し、
（５）ユーザが“キーワード”を入力して”検索”ボタンをクリックすることで、画面は「検索結果画面２１０４」に遷移し、
（６）ユーザは表中の２行２列目の値（ＥＥＥＥＥ）を得て、２種の検索結果「ＢＢＢＢＢ」と「ＥＥＥＥＥ」とを得たいとする。
【００３７】
（実行定義４００）
図１７は、図１６に示した前記ユーザ操作の流れにおけるユーザ操作（実行処理）と初期化処理とを定義した実施の形態２の実行定義４００である。実行定義４００では「ｉｎｉｔ（）」に初期化処理が記述され、Ｗｅｂサービスオペレーションの動作定義となる「ｏｐｅｒａｔｉｏｎ２（ｋｅｙｗｏｒｄ，ｓｅｐａｒａｔｏｒ）」に、ユーザ操作（実行処理）が記述される。オペレーション名が「ｏｐｅｒａｔｉｏｎ２」であり、引数が「ｋｅｙｗｏｒｄ」、「ｓｅｐａｒａｔｏｒ」である。「ｋｅｙｗｏｒｄ」は検索のキーワードとなる。また、「ｓｅｐａｒａｔｏｒ」は２つの検索結果文字列を連結する際の区切り文字となる。初期化処理では、複数のブラウザエンジンをそれぞれユーザ操作にて画面遷移回数が最少となる状態に遷移させる処理が、記述されている。また、ユーザ操作の定義では、初期化処理にて最適な状態に遷移したブラウザエンジンを用いた操作が、記述されている。
【００３８】
次に動作について説明する。定義実行エンジン３２０以外の動作は、実施の形態１における動作と同様である。
【００３９】
（定義実行エンジン３２０の動作フロー）
図１８は、定義実行エンジン３２０の動作を示すフローチャートである。図１８を参照して説明する。定義実行エンジン３２０では、ラッピングシステム起動時からサービスの初期化スレッドが動作する。また、メッセージ処理機能３１０から処理要求を受けたときには、処理実行スレッドが動作する。
【００４０】
初期化スレッドでは、定義実行エンジン３２０はサービスの初期化状況を監視する（Ｓ１３１５）。定義実行エンジン３２０は、初期化されていなければ、実行定義４００に記述された初期化処理を実行する（Ｓ１３１６）。
【００４１】
（定義実行エンジン３２０による初期化処理の内容）
図１９は、定義実行エンジン３２０による初期化処理の内容を示すフローチャートである。初期化処理においては、定義実行エンジン３２０は、予め設定されているタイミング（図１８の初期化スレッド時、あるいは処理スレッドにおけるＳ１３１０の判定時（Ｓ１３１０でＮＯ））で初期化処理の定義を実行定義格納部４１０から読み込む。そして、定義実行エンジン３２０は、読み込まれた初期化処理の定義に基づいて、ブラウザエンジン操作機能３３０に初期化処理に対応するブラウザエンジンの操作を指示する操作要求（ブラウザ初期化処理信号）を生成し、生成された操作要求をブラウザエンジン操作機能３３０に出力する。ブラウザエンジン操作機能３３０は、操作要求を受信すると、操作要求に従って処理を実行する。初期化処理では、ブラウザエンジン操作機能３３０は、ブラウザエンジン３４０を「○○検索画面２１０１」に遷移させた状態（Ｓ３１００、Ｓ３１０１）とブラウザエンジン３４１を「××検索画面２１０３」に遷移させた状態とを作り（Ｓ３１０２、Ｓ３１０３）、初期化済みフラグを立てる（Ｓ３１０４）。
【００４２】
（処理実行スレッド）
処理実行スレッドでは、サービスの初期化チェック（図１８のＳ１３１０〜１３１１）以外は、実施の形態１における図９の定義実行エンジン３２０の動作と同様である。実行スレッドでは定義実行エンジン３２０は、実行処理の定義を実行定義格納部４１０から読み込み、読み込まれた実行処理の定義に基づいて、ブラウザエンジン操作機能３３０に実行処理に対応するブラウザエンジンの操作を指示する操作要求（ブラウザ実行処理信号）を生成し、生成された操作要求（ブラウザ実行処理信号）を初期化処理の操作要求の出力後にブラウザエンジン操作機能３３０に出力する。ブラウザエンジン操作機能３３０は、操作要求（ブラウザ実行処理信号）を入力すると、この操作要求（ブラウザ実行処理信号）に従って、ブラウザエンジンのそれぞれを操作する。
【００４３】
（定義実行エンジン３２０による実行処理）
図２０は、定義実行エンジン３２０がメッセージ処理機能３１０から処理要求を受け取った時に、実行定義４００の「複数のブラウザエンジンを用いた操作（処理）」（実行処理）を記述した部分を実行することによって処理される流れを示したフローチャートである。まず、定義実行エンジン３２０は、「初期化処理」において「○○検索画面」に遷移させたブラウザエンジン３４０を用いて検索を実行し（Ｓ３２００）、検索結果を持っておく（Ｓ３２０１）。次に、定義実行エンジン３２０は、初期化処理において「××検索画面」に遷移させたブラウザエンジン３４１を用いて検索を実行し（Ｓ３２０２）、検索結果を持っておく（Ｓ３２０３）。そして、定義実行エンジン３２０は、初期化済みフラグを下げ（Ｓ３２０４）、２つの検索結果をセパレータで結合して返す（Ｓ３２０５）。この処理によって前記ユーザ操作の流れが再現される。
【００４４】
以上のように、「複数のブラウザエンジンを用いた処理」（実行処理）と、「各ブラウザエンジンに対する初期化処理」とを定義することによって、既存Ｗｅｂシステム５００の画面の流れが複数に分かれており各流れにまたがったユーザ操作をラッピングし、サービス化することができる。また、初期化処理において各ブラウザエンジンを事前に最適な状態に遷移させておくことができるので、サービスとしての処理要求時に無駄な画面遷移が無くなり処理を高速化できる。なお、画面の流れが単一で途中画面に読み込みが遅い画面が存在する場合でも初期化処理によって高速化を図ることもできる。
【００４５】
実施の形態３．
次に図２１〜図２８を参照して実施の形態３を説明する。以上の実施の形態１、実施の形態２では、既存Ｗｅｂシステム５００の利用にユーザ認証が必要ない場合であったが、実施の形態３では、既存Ｗｅｂシステム５００の利用に、ユーザ認証が必要な場合を説明する。
【００４６】
図２１は、実施の形態３のＷｅｂラッピングシステム１０００の構成図である。図２１において、実行ロジック３５０、セッション管理対象３６０及びセッション管理機能６００以外は、図３に示した実施の形態１のシステム構成と同様である。
【００４７】
（１）実行ロジック３５０は、実行定義４００が定義実行エンジン３２０によって実行されるユーザ操作ロジックのインスタンスである。以下の説明では実行ロジック３５０を動作主体として説明しているが、実際には実施の形態１の定義実行エンジン３２０と同様に、実行ロジック３５０がブラウザエンジン操作機能３３０に操作要求（ブラウザ操作指示信号）を出し、この操作要求を受けたブラウザエンジン操作機能３３０がブラウザエンジンを操作することにより、以下の動作が実行される。すなわち、実行ロジック３５０は、ブラウザエンジン操作機能３３０、及びブラウザエンジンを介して以下に説明する動作を実行する。
（２）セッション管理対象３６０は、セッション管理機能６００によって管理される対象である。
（３）セッション管理機能６００は、ＳＯＡＰ通信のセッションを識別し、セッションごとの変数を管理する機能である。
【００４８】
（既存Ｗｅｂシステム５００の画面）
図２２は、実施の形態３においてラッピング対象とする既存Ｗｅｂシステム５００のユーザ操作の流れである。図２２において、ユーザは「ログイン画面２２００」にアクセスし、“ユーザ名”と”パスワード”を入力して”ログイン”をクリックすることで、画面は検索メニュー画面２２０１に遷移し、ユーザが“○○検索”図をクリックすることで、画面は「○○検索画面２２０２」に遷移し、ユーザが“キーワード”を入力して”検索”ボタンをクリックすることで画面が検索結果画面２２０３に遷移するものとし、ユーザは表中の２行２列目の値（ＢＢＢＢＢ）を得ることができるとする。
【００４９】
（実行定義４００）
図２３は、図２２で説明した前記ユーザ操作の流れにおけるユーザ操作を定義した実行定義４００の内容である。実行定義４００では、オペレーション名がｏｐｅｒａｔｉｏｎ３、引数がｕｓｅｒｎａｍｅであり、ｐａｓｓｗｏｒｄ、ｋｅｙｗｏｒｄである。ｕｓｅｒｎａｍｅとｐａｓｓｗｏｒｄはユーザ認証に用いるユーザ名とパスワードとなり、ｋｅｙｗｏｒｄは検索のキーワードとなる。Ｗｅｂサービスオペレーションの動作定義となるｏｐｅｒａｔｉｏｎ３（ｕｓｅｒｎａｍｅ，ｐａｓｓｗｏｒｄ，ｋｅｙｗｏｒｄ）では、次の（１）〜（３）の動作が定義されている。
（１）ブラウザエンジンが存在しなければ生成し、生成されたブラウザエンジンにより検索画面のＵＲＬを開く。
（２）ログイン画面が表示されたならユーザ名とパスワードを入力してログインして検索画面へ遷移し、キーワードを入力して検索する。
（３）検索結果の表から２行２列目の値を抽出し返す。
【００５０】
次に図２４から図２８のフローチャート、及び図２９のシーケンス図を参照して動作を説明する。図２９は、各フローチャートの動作をシーケンス（ステップＳ１１〜Ｓ１６）として表しており、実行ロジックの動作開始以前までを示している。ＳＯＡＰ通信機能２００、メッセージ処理機能３１０、定義実行エンジン３２０、実行ロジック３５０、セッション管理機能６００以外の動作は、実施の形態１における動作と同様である。
【００５１】
（ＳＯＡＰ通信機能２００）
図２４は、ＳＯＡＰ通信機能２００の動作を示すフローチャートである。図２４に示すように、ＳＯＡＰ通信機能２００は、ＳＯＡＰクライアント１００からＳＯＡＰメッセージを受信し（Ｓ１１１０、Ｓ１１）、このＳＯＡＰメッセージのＳＯＡＰボディと「セッションＩＤ」と共に、メッセージ処理機能３１０に処理要求を送る（Ｓ１１１１、Ｓ１２）。ＳＯＡＰ通信機能２００は、メッセージ処理機能３１０から処理結果を受け取ると（Ｓ１１１２）、この処理結果（ＳＯＡＰレスポンス）をＳＯＡＰクライアント１００へ送信する（Ｓ１１１３）。
【００５２】
（メッセージ処理機能３１０）
図２５は、メッセージ処理機能３１０の動作を示すフローチャートである。図２５に示すように、メッセージ処理機能３１０は、ＳＯＡＰ通信機能２００から受け取ったセッションＩＤ（Ｓ１２１０）を基に、セッション管理機能６００からセッション管理対象３６０を取得する（Ｓ１２１１、Ｓ１３）。すなわち、メッセージ処理機能３１０は、セッションＩＤと共に、セッション管理機能６００が管理しているセッション管理対象３６０のうち、このセッションＩＤに対応するセッション管理対象３６０の取得要求をセッション管理機能６００に送る。メッセージ処理機能３１０は取得要求の結果、セッション管理機能６００にセッション管理対象３６０が存在しない場合（Ｓ１２１２）には、定義実行エンジン３２０に実行ロジック３５０の生成を要求する生成処理要求（実行定義のインスタンス化処理の依頼）を出力し、定義実行エンジン３２０から実行ロジック３５０を得る（Ｓ１２１３、Ｓ１４）とともに、取得した実行ロジック３５０をセッション管理機能６００に登録する（Ｓ１２１４、Ｓ１５）。さらにメッセージ処理機能３１０は、ＳＯＡＰ通信機能２００から受け取ったＳＯＡＰボディからＷｅｂサービスオペレーションの引数となる値を取り出して実行ロジック３５０に処理依頼と共に渡す（Ｓ１２１５、Ｓ１２１６、Ｓ１６）。メッセージ処理機能３１０は、実行ロジック３５０から処理結果を受け取ると（Ｓ１２１７）、処理結果からレスポンス用のＳＯＡＰボディを生成し（Ｓ１２１８）、生成したＳＯＡＰボディをＳＯＡＰ通信機能２００へ返す。
【００５３】
（セッション管理機能６００）
図２６は、セッション管理機能６００の動作を示すフローチャートである。前述のように、セッション管理機能６００は、メッセージ処理機能３１０から受け取った「セッションＩＤ」（Ｓ１７００）に対応するセッション管理対象３６０のインスタンス（実行ロジック３５０と、対応するブラウザエンジンインスタンスの組）を返す（Ｓ１７０１）。また、セッション管理機能６００は、メッセージ処理機能３１０からセッション管理対象３６０を受け取ると（Ｓ１７０２）、受け取ったセッション管理対象３６０の登録を行う（Ｓ１７０３）。
【００５４】
（定義実行エンジン３２０）
図２７は、定義実行エンジン３２０の動作を示すフローチャートである。前述のように、定義実行エンジン３２０は、メッセージ処理機能３１０から受け取った実行ロジック３５０の生成処理要求（Ｓ１３２０）に応じた実行定義４００を読み込み、ユーザ操作ロジック部分を実行ロジック３５０として生成し（Ｓ１３２１）、メッセージ処理機能３１０に返す（Ｓ１３２２）。
【００５５】
（実行ロジック３５０）
図２８は、実行ロジック３５０の動作を示すフローチャートである。実行ロジック３５０は、実行定義４００に定義されている操作内容に従って、図２８に示すフローチャートの動作を実行する。まず、実行ロジック３５０は、ブラウザエンジン３４０のインスタンスが存在するか確認し（Ｓ３３００）、存在しなければ、ブラウザエンジン３４０のインスタンスを生成する（Ｓ３３０１）。実行ロジック３５０は、ブラウザエンジン３４０で検索メニュー画面を読み込み（Ｓ３３０３）、表示された画面が”ログイン画面”であれば（Ｓ３３０４）、“ユーザ名”と”パスワード”を入力してログインする（Ｓ３３０５）。ここまでで、ブラウザエンジン３４０は検索メニュー画面が表示された状態となる。
【００５６】
次に、実行ロジック３５０は、”○○検索”をクリックして画面は検索画面に遷移し（Ｓ３３０６）、実行ロジック３５０が”“キーワード”を入力して”検索”ボタンをクリックし画面は検索結果画面に遷移する（Ｓ３３０７）。実行ロジック３５０は検索結果の表の２行２列目に表示されている値を取得して（Ｓ３３０８）返す（Ｓ３３０９）。この処理によって図２２の前記ユーザ操作の流れが再現される。
【００５７】
以上のように、セッション管理機能６００が、実行ロジック３５０とブラウザエンジン３４０とをセッション管理対象３６０として管理することによって、既存Ｗｅｂシステム５００がユーザ認証を必要とする場合でも、ユーザごとに処理を分けたままラッピングし、サービス化することができる。また、ユーザ操作の流れの部分だけを実行ロジックとしてインスタンス化することにより、ユーザ数が多い場合でもリソースを節約することができる。
【００５８】
実施の形態４．
次に図３０〜図３３を参照して実施の形態４を説明する。以上の実施の形態３は、ユーザ認証が必要であるとともに既存Ｗｅｂシステム５００の画面の流れが単一で単純な場合であったが、次に実施の形態４は、ユーザ認証が必要であるとともに、画面の流れが複数に分かれており、各流れにまたがったユーザ操作がラッピングされる場合を示す。
【００５９】
（システム構成）
図３０は、実施の形態４のＷｅｂラッピングシステム１０００の構成図である。図３０において、実行定義４００とブラウザエンジン３４１以外は、図２１に示した実施の形態３のシステム構成と同様である。
【００６０】
（１）実行定義４００は、１回目の処理要求に対する処理（初期化に相当）と、２回目以降の処理要求に対する処理とが記述されている。
（２）ブラウザエンジン３４１は、既存Ｗｅｂシステム５００にアクセスし、ＨＴＴＰ通信するための機能であり、ブラウザエンジン３４０と同等の機能を有する。
【００６１】
（既存Ｗｅｂシステム５００の画面）
図３１は実施の形態４においてラッピング対象とする既存Ｗｅｂシステム５００の「ユーザ操作」の流れである。図３１において、
（１）ユーザは、「ログイン画面２３００」にアクセスし、“ユーザ名”と”パスワード”を入力して”ログイン”をクリックすることで、画面が「トップメニュー画面２３０１」に遷移し、
（２）ユーザが“検索フロー”をクリックすることで画面が「検索メニュー画面２３０２」に遷移し、
（３）ユーザが“○○検索”をクリックすることで画面が「○○検索画面２３０３」に遷移し、
（４）ユーザが“キーワード”を入力して”検索”ボタンをクリックすることで画面が「検索結果画面２３０４」に遷移し、ユーザは、表中の２行２列目の値（ＢＢＢＢＢ）を得る。
（５）そして、ユーザは“トップメニューへ戻る”をクリックして画面が「トップメニュー画面２３０１」へ遷移し、
（６）ユーザが“登録フロー”をクリックして画面が「登録メニュー画面２３０５」に遷移し、
（７）ユーザが“△△登録”をクリックして画面が「△△登録画面２３０６」に遷移し、
（８）ユーザが“項目１”を入力し”項目２”に検索結果画面で得た値を入力して”登録”ボタンをクリックすることで画面が「登録結果画面２３０７」に遷移し、ユーザは、以上の操作によって、この「登録結果画面２３０７」を得たいとする。
【００６２】
（実行定義４００）
図３２の実行定義４００では、図３１で述べた「ユーザ操作」の流れにおける「ユーザ操作」が「１回目の処理要求」と、「２回目以降の処理要求」とに分けて定義されている。図３２の実行定義４００において、Ｗｅｂサービスオペレーションの動作定義となるｏｐｅｒａｔｉｏｎ４（ｕｓｅｒｎａｍｅ，ｐａｓｓｗｏｒｄ，ｋｅｙｗｏｒｄ，ｉｎｆｏ）は、フラグｆｌｇ＿ｉｎｉｔによって、１回目の処理要求（ｆｌｇ＿ｉｎｉｔ＝＝ｆａｌｓｅ）と２回目以降の処理要求とに区別されている。
【００６３】
（１回目の処理要求定義、２回目以降の処理要求定義）
１回目の処理要求時の定義では、前記ユーザ操作の流れに加え、ブラウザエンジンが「○○検索画面２３０３」を表示している状態で、ブラウザエンジン操作機能３３０がクローンをｓｃｒ＿ｓｅａｒｃｈに保存し、ブラウザエンジンが「△△登録画面２３０６」を表示している状態で、ブラウザエンジン操作機能３３０がクローンをｓｃｒ＿ｒｅｇｉｓｔに保存するように定義されている。また、２回目以降の処理要求時の定義では、保存しておいたブラウザエンジンｓｃｒ＿ｓｅａｒｃｈとｓｃｒ＿ｒｅｇｉｓｔのクローンを用いた「検索と登録の操作」が定義されている。オペレーション名がｏｐｅｒａｔｉｏｎ４である。引数は、ｕｓｅｒｎａｍｅ、ｐａｓｓｗｏｒｄ、ｋｅｙｗｏｒｄ、ｉｎｆｏである。ｕｓｅｒｎａｍｅとｐａｓｓｗｏｒｄとは、ユーザ認証に用いられるユーザ名とパスワードとなり、ｋｅｙｗｏｒｄは検索のキーワードとなり、ｉｎｆｏは項目２として登録する情報となる。
【００６４】
次に動作について説明する。実行ロジック３５０以外の動作は、実施の形態３における動作と同様である。図３３のフローチャートを参照して、実施の形態４の実行ロジックの動作を説明する。
【００６５】
（実行ロジック３５０）
図３３は、実行ロジック３５０の動作を示すフローチャートである。実行ロジック３５０は、実行定義４００に定義した操作内容に従って、図３３に示すフローチャートの動作を実行する。以下の説明では実行ロジック３５０を動作主体として説明しているが、実際には実施の形態３で述べたように、実行ロジック３５０がブラウザエンジン操作機能３３０に処理要求を出し、この処理要求を受けたブラウザエンジン操作機能３３０がブラウザエンジンを操作することにより、以下の動作が実行される。すなわち、実行ロジック３５０は、ブラウザエンジン操作機能３３０、及びブラウザエンジンを介して以下の動作を実行する。
【００６６】
（実行定義４００における「１回目の処理」）
（１）まず、実行ロジック３５０は、処理要求が１回目であるかを判断し（Ｓ３４００）、１回目であれば、ブラウザエンジンを生成し、「ログイン画面２３００」を読み込む（Ｓ３４０１）。
（２）実行ロジック３５０は“ユーザ名”と”パスワード”を入力し、そして”ログインボタン”をクリックすることで、画面が「トップメニュー画面２３０１」に遷移する（Ｓ３４０２）。
（３）そして実行ロジック３５０は、“検索フロー”をクリックし、画面は「検索メニュー画面２３０２」に遷移する。
（４）実行ロジック３５０は、「検索メニュー画面２３０２」において”○○検索”をクリックし、画面は「○○検索画面２３０３」に遷移する（Ｓ３４０３）。ここまでの処理で、ブラウザエンジンには「○○検索画面２３０３」が表示されており、実行ロジック３５０（ブラウザエンジン操作機能３３０）は、この状態のブラウザエンジンをブラウザエンジン３４０として複製しておく（Ｓ３４０４）。
（５）実行ロジック３５０は、「○○検索画面２３０３」に、続いて”キーワード”を入力し、”検索”ボタンをクリックする。画面は、「検索結果画面２３０４」に遷移する（Ｓ３４０５）。実行ロジック３５０は、検索結果の表で２行２列目に表示されている値を取得する（Ｓ３４０６）。
（６）実行ロジック３５０は、「検索結果画面２３０４」において“トップメニューへ戻る”をクリックし、画面は「トップメニュー画面２３０１」に遷移する。
（７）そして、実行ロジック３５０は、”登録フロー”をクリックし、画面が「登録メニュー画面２３０５」に遷移する。
（８）実行ロジック３５０は、”△△登録”をクリックし、画面は「△△登録画面２３０６」に遷移する（Ｓ３４０７）。ここまでの処理でブラウザエンジンには「△△登録画面２３０６」が表示されており、実行ロジック３５０（ブラウザエンジン操作機能３３０）は、この状態のブラウザエンジンをブラウザエンジン３４１として複製しておく（Ｓ３４０８）。
（９）続いて実行ロジック３５０は、”項目１”に引数として渡された値を入力し、”項目２”にＳ３４０６にて取得した値を入力して”登録”ボタンをクリックし、画面は「登録結果画面２３０７」に遷移する（Ｓ３４０９）。
（１０）実行ロジック３５０は、１回目の処理完了フラグを更新して（Ｓ３４１０）、「登録結果画面２３０７」を返す（Ｓ３４１１）。
【００６７】
（２回目以降の処理）
次に、処理要求が２回目以降であれば（Ｓ３４００）、実行ロジック３５０（ブラウザエンジン操作機能３３０）は、ブラウザエンジン３４０の複製を作成する（Ｓ３４１２）。ここで作成する「複製」とは、Ｓ３４０４で作成した「○○検索画面２３０３」の表示状態のブラウザエンジンの複製（第１コピーという）をオリジナルとして複製した第２コピー（コピーのコピー）である。これは「第１コピー」を第２コピーの代わりに使用すると、３回目、４回目等の処理において、「第１コピー」が使用できなくなるためである。すなわち、２回目以降の処理では、「第１コピー」をオリジナルとして、「第２コピー」を作成して使用することとなる。実行ロジック３５０は、そのブラウザエンジン（「○○検索画面２３０３」の表示状態の第２コピー）を用いて”キーワード”を入力し、”検索”ボタンをクリックし、画面は「○○検索結果画面２３０４」に遷移し（Ｓ３４１３）、実行ロジック３５０は、検索結果の表で２行２列目に表示されている値を取得する（Ｓ３４１４）。
【００６８】
以上の説明では、ラッパー３００は、「１回目の処理」（第１の処理の一例）で生成したブラウザエンジンインスタンスの複製を「２回目の処理」（第２の処理の一例）で利用したが、「３回目の処理」（第２の処理の一例）、あるいは「４回目の処理」（第２の処理の一例）で利用しても良いことは当然である。また、「２回目の処理」（第１の処理の一例）で生成したブラウザエンジンインスタンスの複製を、それ以降の、例えば「３回目の処理」（第２の処理の一例）で利用しても構わない。
【００６９】
続いて実行ロジック３５０（ブラウザエンジン操作機能３３０）は、ブラウザエンジン３４１の複製を作成する（Ｓ３４１５）。ここで作成する「複製」とは、Ｓ３４１２の場合と同じく、Ｓ３４０８で作成した「○○登録画面２３０３」の表示状態のブラウザエンジンの複製（第１コピー）をオリジナルとして複製した第２コピー（コピーのコピー）である。理由は、Ｓ３４１２の場合と同じである。実行ロジック３５０は、そのブラウザエンジンを用いて”項目１”に引数として渡された値を入力するとともに、”項目２”にＳ３４１４にて取得した値を入力して”登録”ボタンをクリックし、画面は「登録結果画面２３０７」に遷移する（Ｓ３４１６）。最後に実行ロジック３５０は、「登録結果画面２３０７」を返す（Ｓ３４１１）。以上の処理によって前記ユーザ操作の流れが再現される。
【００７０】
以上のように、１回目の処理と２回目以降の処理で定義を分け、１回目の処理で複製しておいたブラウザエンジンを２回目以降の処理で複製して用いることによって、ユーザ認証が必要で画面の流れが複数に分かれており各流れにまたがったユーザ操作をラッピングしサービス化することができる。また、１回目の処理においてブラウザエンジンを最適な状態で複製しておくことで、サービスとしての処理要求時に無駄な画面遷移が無くなり処理を高速化できる。実施の形態３と同様にユーザ操作の流れの部分だけを実行ロジックとしてインスタンス化しているので、ユーザ数が多い場合でもリソースを節約することができる。なお、画面の流れが単一で途中画面に読み込みが遅い画面が存在する場合でも１回目の処理によって２回目以降の処理を高速化することもできる。
【００７１】
以上の実施の形態では、既存Ｗｅｂシステムのユーザ操作をラッピングするＷｅｂシステムラッピング装置（ユーザ操作代行装置）を説明した。このＷｅｂシステムラッピング装置は、ユーザ操作を代行するブラウザエンジンと、ブラウザエンジン操作機能と、ユーザ操作を定義した実行定義を実行する定義実行エンジンとを備える。
【００７２】
以上の実施の形態では、次のＷｅｂシステムラッピング装置を説明した。即ち、前記ユーザ操作代行の実行定義は、複数のブラウザエンジンに対する初期化処理と、複数のブラウザエンジンを用いた処理とを定義することがでる。そして、定義実行エンジンが、この実行定義を実行する。
【００７３】
以上の実施の形態では、次のＷｅｂシステムラッピング装置を説明した。即ち、定義実行エンジンは、実行定義を入力し、入力された実行定義から生成される実行ロジック部分のみをインスタンス化する機能を有するとともに、さらに、Ｗｅｂシステムラッピング装置は、ＳＯＡＰ通信のセッションを管理するセッション管理機能を備える。
【００７４】
以上の実施の形態では、次のＷｅｂシステムラッピング装置を説明した。ブラウザエンジン操作機能は、ブラウザエンジンを複製する機能を備え、ユーザ操作代行の実行定義は、処理要求が１回目の場合にブラウザエンジンが適当な状態で複製される操作処理の定義が可能であるとともに、処理要求が２回目以降の場合には１回目で複製されたブラウザエンジンを用いた操作処理の定義が可能である。
【図面の簡単な説明】
【００７５】
【図１】実施の形態１のサーバ装置８００の外観の一例を示す図。
【図２】実施野形態１のサーバ装置８００のハードウェア資源の一例を示す図。
【図３】実施の形態１のＷｅｂラッピングシステム１０００の構成図。
【図４】実施の形態１の既存Ｗｅｂシステム５００に対するユーザ操作の流れを示す図。
【図５】図４のユーザ操作の流れにおけるユーザ操作を定義した実行定義４００。
【図６】実施の形態１のＳＯＡＰクライアント１００のフローチャート。
【図７】実施の形態１のＳＯＡＰ通信機能２００のフローチャート。
【図８】実施の形態１のメッセージ処理機能３１０のフローチャート。
【図９】実施の形態１の定義実行エンジン３２０のフローチャート。
【図１０】実施の形態１のブラウザエンジン操作機能３３０のフローチャート。
【図１１】実施の形態１のブラウザエンジン３４０のフローチャート。
【図１２】実施の形態１の既存Ｗｅｂシステム５００のフローチャート。
【図１３】実施の形態１の定義実行エンジン３２０の実行定義処理のフローチャート。
【図１４】実施の形態１のラッパー３００の動作を示すシーケンス。
【図１５】実施の形態２のＷｅｂラッピングシステム１０００の構成図。
【図１６】実施の形態２の既存Ｗｅｂシステム５００へのユーザ操作の流れを示す図。
【図１７】図１６のユーザ操作の流れにおけるユーザ操作を定義した実行定義４００。
【図１８】実施の形態２の定義実行エンジン３２０のフローチャート。
【図１９】実施の形態２の定義実行エンジン３２０の初期化処理のフローチャート。
【図２０】実施の形態２の定義実行エンジン３２０の実行定義処理のフローチャート。
【図２１】実施の形態３のＷｅｂラッピングシステム１０００の構成図。
【図２２】実施の形態３の既存Ｗｅｂシステム５００へのユーザ操作の流れを示す図。
【図２３】図２２のユーザ操作の流れにおけるユーザ操作を定義した実行定義４００。
【図２４】実施の形態３のＳＯＡＰ通信機能２００のフローチャート。
【図２５】実施の形態３のメッセージ処理機能３１０のフローチャート。
【図２６】実施の形態３のセッション管理機能６００のフローチャート。
【図２７】実施の形態３の定義実行エンジン３２０のフローチャート。
【図２８】実施の形態３の実行ロジック３５０のフローチャート。
【図２９】実施の形態３のラッパー３００の動作を示すシーケンス。
【図３０】実施の形態４のＷｅｂラッピングシステム１０００の構成図。
【図３１】実施の形態４の既存Ｗｅｂシステム５００へのユーザ操作の流れを示す図。
【図３２】図２９のユーザ操作の流れにおけるユーザ操作を定義した実行定義４００。
【図３３】実施の形態４の実行ロジック３５０のフローチャート。
【符号の説明】
【００７６】
１００  ＳＯＡＰクライアント、２００  ＳＯＡＰ通信機能、３００  ラッパー、３１０  メッセージ処理機能、３２０  定義実行エンジン、３３０  ブラウザエンジン操作機能、３４０，３４１  ブラウザエンジン、３５０  実行ロジック、３６０  セッション管理対象、４００  実行定義、４１０  実行定義格納部、５００  既存Ｗｅｂシステム、６００  セッション管理機能、８００  サーバ装置、１０００  Ｗｅｂラッピングシステム。
【図１】
0005268390.tif 000002
【図２】
0005268390.tif 000003
【図３】
0005268390.tif 000004
【図４】
0005268390.tif 000005
【図５】
0005268390.tif 000006
【図６】
0005268390.tif 000007
【図７】
0005268390.tif 000008
【図８】
0005268390.tif 000009
【図９】
0005268390.tif 000010
【図１０】
0005268390.tif 000011
【図１１】
0005268390.tif 000012
【図１２】
0005268390.tif 000013
【図１３】
0005268390.tif 000014
【図１４】
0005268390.tif 000015
【図１５】
0005268390.tif 000016
【図１６】
0005268390.tif 000017
【図１７】
0005268390.tif 000018
【図１８】
0005268390.tif 000019
【図１９】
0005268390.tif 000020
【図２０】
0005268390.tif 000021
【図２１】
0005268390.tif 000022
【図２２】
0005268390.tif 000023
【図２３】
0005268390.tif 000024
【図２４】
0005268390.tif 000025
【図２５】
0005268390.tif 000026
【図２６】
0005268390.tif 000027
【図２７】
0005268390.tif 000028
【図２８】
0005268390.tif 000029
【図２９】
0005268390.tif 000030
【図３０】
0005268390.tif 000031
【図３１】
0005268390.tif 000032
【図３２】
0005268390.tif 000033
【図３３】
0005268390.tif 000034