(57)【要約】【課題】アプリケーションプログラム移植時の疎通確認の迅速化及び移植の容易さを向上でき、また、アプリケーションプログラムが実行するベンダー固有メソッドを仮想マシンで吸収することができるプログラム実行装置を提供する。【解決手段】既存のＪ２ＥＥアプリケーションプログラム移植時の疎通動作検証作業において、ＪａｖａＶＭプログラム２２０のＪａｖａＶＭ差分管理部２３０は、アプリケーションプログラムが実行するベンダー固有メソッドと、代用メソッドとを関連付ける１対１の変換テーブル２４５を作成する。アプリケーションプログラムのメソッドを実行の際に、１対１の変換テーブル２４５を参照してベンダー固有メソッドを検知すると、ベンダー固有メソッドを代用メソッドに変換してアプリケーションプログラムの実行を継続する。【選択図】図１
2011048605.tif 000002
【特許請求の範囲】
【請求項１】
記憶部にアプリケーションプログラムおよび前記アプリケーションプログラムを実行可能なように処理する仮想マシンを記憶し、処理部が前記仮想マシンを実行するプログラム実行装置であって、
前記仮想マシンは、
前記仮想マシンで標準に使用される標準メソッドのライブラリである標準メソッドライブラリと、
前記標準メソッドに含まれない非標準メソッドの代わりに使用される代用メソッドのライブラリである代用メソッドライブラリと、
前記非標準メソッドと、前記代用メソッドとを関連付けるメソッド対応情報と、
前記アプリケーションプログラムのメソッドの実行の際に、前記メソッド対応情報を参照して前記非標準メソッドを検知すると、前記非標準メソッドを前記代用メソッドに変換して前記アプリケーションプログラムを実行するメソッド管理部とを有する
ことを特徴とするプログラム実行装置。
【請求項２】
前記記憶部に前記非標準メソッド実行の際の入力値と、出力値とを関連付けるテスト情報を記憶しており、
前記メソッド管理部は、
クライアントから前記メソッド対応情報の作成要求を受理すると、
前記代用メソッドライブラリから代用メソッドを順に実行し、前記テスト情報の入力値に基づいて実行した出力値と前記テスト情報の出力値とが合致するメソッドを、前記非標準メソッドの代用メソッドとして関連付けて前記メソッド対応情報に登録する
ことを特徴とする請求項１に記載のプログラム実行装置。
【請求項３】
前記仮想マシンは、Ｊａｖａ（登録商標）仮想マシンであり、かつ、前記アプリケーションプログラムは、Ｊａｖａプログラムである
ことを特徴とする請求項１または請求項２に記載のプログラム実行装置。
【請求項４】
アプリケーションプログラムを実行可能なように処理する第１の仮想マシンを備える移植元サーバと、前記アプリケーションプログラムの移植先であり、前記アプリケーションプログラムを実行可能なように処理する第２の仮想マシンを備える移植先サーバとを有する情報処理システムにおいて、
前記第２の仮想マシンは、前記第２の仮想マシンで標準に使用される標準メソッドのライブラリである標準メソッドライブラリと、前記標準メソッドに含まれない非標準メソッドの代わりに使用される代用メソッドのライブラリである代用メソッドライブラリと、を備えており、前記アプリケーションプログラムを前記移植先サーバに移植した際のアプリケーションプログラムの実行方法であって、
前記第２の仮想マシンは、
第１の仮想マシンのメソッドの実行状態を監視し、
前記メソッドの実行を検知すると、前記メソッドのメソッド名が、前記標準メソッドライブラリ中のメソッド名と合致するか否かを判定し、
メソッド名が合致しない場合、非標準メソッド実行の際のメソッド名、入力値、出力値とを関連付けるテスト情報を前記移植先サーバの記憶部に登録し、
前記非標準メソッドと、前記代用メソッドとを関連付けの要求をクライアントから受理すると、
前記代用メソッドライブラリから代用メソッドを順に前記テスト情報に基づいて実行し、前記テスト情報の入力値に基づいて実行した出力値と前記テスト情報の出力値とが合致するメソッドを、前記非標準メソッドの代用メソッドとして関連付けてメソッド対応情報として前記記憶部に登録し、
前記移植先サーバにおいて前記アプリケーションプログラムのメソッドを実行する際に、前記メソッド対応情報を参照して前記非標準メソッドであると検知すると、前記非標準メソッドを前記代用メソッドに変換して前記アプリケーションプログラムを実行する
ことを特徴とするアプリケーションプログラムの実行方法。
【請求項５】
前記第１の仮想マシンおよび前記第２の仮想マシンは、Ｊａｖａ（登録商標）仮想マシンであり、かつ、前記アプリケーションプログラムは、Ｊａｖａプログラムである
ことを特徴とする請求項４に記載のアプリケーションプログラムの実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションサーバにデプロイ（利用可能なように準備）しているアプリケーションプログラムが実行するベンダー固有メソッドを、仮想マシンが実行可能なように処理できるプログラム実行装置及びアプリケーションプログラムの実行方法に関する。
【背景技術】
【０００２】
現在、Ｊａｖａ（登録商標）プログラムは、種々の情報機器（情報処理システムも含む。）で実行されており、情報機器には、ＪａｖａＶＭ（Virtual Machine）プログラムと呼ばれるＪａｖａプログラムを実行する仮想マシンが搭載されている。
【０００３】
既存のＪ２ＥＥ（Java 2 Enterprise Edition）アプリケーションプログラム移植時の疎通動作検証作業において、アプリケーションサーバにデプロイしているアプリケーションプログラムが実行するベンダー固有メソッド（非標準メソッド）があると、Ｊ２ＥＥの標準メソッドと差分があるため、アプリケーションプログラムに改良を加えるか、または、ベンダー固有メソッド相当の実装も移植時に準備する必要がある。
【０００４】
通常、アプリケーションサーバにデプロイしているアプリケーションプログラムがメソッドを実行すると、アプリケーションサーバのＪａｖａＶＭプログラムによりアプリケーションサーバに実装済みの対応メソッドを実行する。この対応メソッドの実行方法について、実行負荷及び使用メモリ量を低減する技術は、特許文献１に公開されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−５１８５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
アプリケーションプログラムには、ベンダー固有メソッドを実行するものも多く、アプリケーションサーバに実装済みの対応メソッドが存在しない場合はエラーが発生し疎通確認が速やかに完了しないという問題が発生する。アプリケーションプログラムの移植性という面では大きな欠点であり、疎通確認の迅速化及び移植の容易さを向上するため、ベンダー固有メソッド実行時にエラーを回避して実行の継続を図る工夫の余地は考えられる。
【０００７】
具体的には、アプリケーションプログラムが実行するメソッドのうちベンダー固有メソッド実行時に、アプリケーションサーバにインタフェースも含め完全一致する対応メソッドが実装されていない場合がある。このため、ClassNotFoundExceptionなどのエラーが発生し実行処理が異常停止する。前記のエラー原因であるＪ２ＥＥ仕様に閉じていないベンダー固有メソッドの差分を吸収するために、アプリケーションプログラムもしくはアプリケーションサーバのソースコードに修正を加えて対応する必要があり、時間及び労力を費やしてしまう。さらに、その修正版での再テスト作業も別途必要になるためアプリケーションプログラムをアプリケーションサーバに移植する時の障壁になる。
【０００８】
本発明は、前記の課題を解決するための発明であって、アプリケーションプログラム移植時の疎通確認の迅速化及び移植の容易さを向上でき、また、アプリケーションプログラムが実行するベンダー固有メソッドを仮想マシンで吸収することができるプログラム実行装置及びアプリケーションプログラムの実行方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
前記目的を達成するために、本発明は、既存のＪ２ＥＥアプリケーションプログラム移植時の疎通動作検証作業において、アプリケーションサーバにデプロイしているアプリケーションプログラムが実行するベンダー固有メソッド（非標準メソッド）とアプリケーションサーバで実装済みの実行可能な代用メソッドとの変換テーブルを作成したものである。さらに、仮想マシン（ＪａｖａＶＭプログラム）において、作成した変換テーブルに基づきメソッド呼び出しを非標準メソッドから実行可能な代用メソッドへ変換することでアプリケーションプログラムの実行を継続することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、アプリケーションプログラム移植時の疎通確認の迅速化及び移植の容易さを向上でき、また、アプリケーションプログラムが実行するベンダー固有メソッドを仮想マシンで吸収することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態の移植先アプリケーションサーバを含む情報処理システム構成を示す図である。
【図２】アプリケーションプログラム移植前の実行状態を把握する処理を示す図である。
【図３】メソッド変換シミュレーションテスト実行時の処理を示す図である。
【図４】アプリケーションプログラム移植後のベンダー固有メソッド変換実行時の処理を示す図である。
【図５】アプリケーションプログラム移植後の標準メソッド実行時の処理を示す図である。
【図６】メソッド変換シミュレーション準備作業のシミュレーションテストテーブル作成処理を示すフローチャートである。
【図７】メソッド変換シミュレーションによるベンダー固有メソッド変換テーブルの作成処理を示すフローチャートである。
【図８】移植先アプリケーションサーバにデプロイしているアプリケーションプログラムのベンダー固有メソッド実行から代用メソッド実行への変換処理を示すフローチャートである。
【図９】ベンダー固有メソッドテーブルを示す図である。
【図１０】シミュレーションテストテーブルを示す図である。
【図１１】代用メソッドテーブルを示す図である。
【図１２】１対ｎの変換テーブルを示す図である。
【図１３】１対１の変換テーブルを示す図である。
【図１４】手動変換シミュレーション実行前のメソッド変換用テーブルの確認及び調整を行う画面例を示す図である。
【図１５】手動変換シミュレーション実行後のメソッド変換用テーブルの確認及び調整を行う画面例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態を図面に基づいて詳細に説明する。
図１は、移植先アプリケーションサーバを含む情報処理システム構成を示す図である。情報処理システムは、クライアントマシン１００と移植先アプリケーションサーバ２００を含んで構成され、クライアントマシン１００と移植先アプリケーションサーバ２００は、ネットワーク３００を介して接続されている。
【００１３】
クライアントマシン１００は、主記憶装置１０１、ＣＰＵ（処理部、Central Processing Unit）１０２、画面表示装置１０３などを有する。主記憶装置１０１には、アプリケーションプログラムＡ（１１０）が記憶されている。アプリケーションプログラムＡ（１１０）には、例えば、Ｗｅｂブラウザ、コマンドによるスクリプト実行のバッチアプリケーションがある。なお、Ｗｅｂブラウザとは、Ｗｅｂページを閲覧するためのアプリケーションプログラムをいう。インターネットからＨＴＭＬ（HyperText Markup Language）ファイルや画像ファイル、音楽ファイルなどをダウンロードし、レイアウトを解析して表示・再生する。入力フォームを使用してデータをＷｅｂサーバに送信したり、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｆｌａｓｈ（登録商標）、Ｊａｖａなどで記述されたソフトウェアやアニメーションなどを再生・動作させる機能を持ったものもある。
【００１４】
疎通動作検証者は、シミュレーションテストテーブル作成処理（図６参照）及び１対１の変換テーブル作成処理（図７参照）をするテーブル作成モード、メソッド実行変換処理（図８参照）の実行モードなどの操作指令を、画面表示装置１０３を介して、例えば入力手段から入力する。
【００１５】
移植先アプリケーションサーバ２００は、主記憶装置２０１（記憶部）、ＣＰＵ２０２（処理部）などを有している。主記憶装置２０１には、アプリケーションプログラムＢ（２１０）、ＪａｖａＶＭプログラム２２０（第２の仮想マシン）が記憶されている。アプリケーションプログラムＢ（２１０）には、例えば、Ｗｅｂアプリケーション、Ｊ２ＥＥ仕様のＥＪＢ（登録商標）（Enterprise JavaBeans）を実行するＥＪＢアプリケーションなどがある。
【００１６】
主記憶装置１０１，２０１は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）などにより構成される。ＣＰＵ１０２，２０２は、ＲＡＭ、ＲＯＭなどに記憶されているプログラムを実行する。画面表示装置１０３は、ディスプレイなどであり、後述する手動変換シミュレーション実行前の画面（図１４参照）、手動変換シミュレーション実行後の画面（図１５参照）などを表示する。なお、プログラムはＣＰＵにより実行されるが、以下の説明において、例えば、アプリケーションプログラムＡ（１１０）がアプリケーションプログラムＢ（２１０）のメソッドを実行するなどと表現する場合もある。
【００１７】
クライアントマシン１００のＣＰＵ１０２は、アプリケーションプログラムＡ（１１０）を実行する。移植先アプリケーションサーバ２００のＣＰＵ２０２は、アプリケーションプログラムＢ（２１０）及びＪａｖａＶＭプログラム２２０を実行する。アプリケーションプログラムＢ（２１０）は、１以上のベンダー固有メソッド２１１と１以上のＪ２ＥＥ標準メソッド２１２とを有している。
【００１８】
ＪａｖａＶＭプログラム２２０は、Ｊａｖａ言語で記述されたプログラムを逐次解析して実行するＪａｖａ用仮想マシンである。Ｊａｖａ言語で記述されたプログラムは、バイトコードと呼ばれる、ハードウェアに依存しない中間コードにコンパイルされる。Ｊａｖａ用仮想マシンは、このバイトコードを実行するインタープリタである。
【００１９】
ＪａｖａＶＭプログラム２２０には、ＪａｖａＶＭ差分管理部２３０、５種類のテーブル（ベンダー固有メソッドテーブル２４１（図９参照）、シミュレーションテストテーブル２４２（図１０参照）、代用メソッドテーブル２４３（図１１参照）、１対ｎの変換テーブル２４４（図１２参照）、１対１の変換テーブル２４５（図１３参照））、代用メソッドライブラリ２２１、及びＪ２ＥＥ標準メソッドライブラリ２２２が含まれる。ＪａｖａＶＭ差分管理部２３０は、シミュレーション部２３１、テーブル操作部２３２及びメソッド変換部２３３で構成する。
【００２０】
シミュレーション部２３１は、移植元アプリケーションサーバ４００（図２参照）のアプリケーションプログラムを移植先アプリケーションサーバ２００に移植する準備段階に、移植元アプリケーションサーバ４００のＪａｖａＶＭプログラム４２０（第１の仮想マシン）を監視しメソッドの実行情報（例えば、メソッド名、入力値、出力値、内部値）を取得する。シミュレーション部２３１は、実行されたメソッドがベンダー固有メソッドか否かを確認し、ベンダー固有メソッドである場合に、テーブル操作部２３２を介してメソッドの実行情報をベンダー固有メソッドテーブル２４１及びシミュレーションテストテーブル２４２に登録する。また、シミュレーション部２３１は、ベンダー固有メソッドを代用メソッドに変換した場合のメソッド変換の実行結果が、シミュレーションテストテーブル２４２（図１０参照）の実行情報（ベンダー固有メソッド名、入力値、出力値、内部値）と比較して正常実行であると判定すると、ベンダー固有メソッドの代用のメソッドであることを、テーブル操作部２３２を介して、１対ｎの変換テーブル２４４及び１対１の変換テーブル２４５に登録する。
【００２１】
テーブル操作部２３２は、５種類のテーブルへの登録／削除／更新の機能、５種類のテーブルからの情報取得の機能を有する。例えば、テーブル操作部２３２は、代用メソッドライブラリ２２１から取得した代用メソッド名を代用メソッドテーブル２４３（図１１参照）に登録する。また、テーブル操作部２３２は、ベンダー固有メソッドテーブル２４１及びシミュレーションテストテーブル２４２から情報を取得する。また、テーブル操作部２３２は、シミュレーション部２３１の実行結果を、１対ｎの変換テーブル２４４（図１２参照）及び１対１の変換テーブル２４５（図１３参照）に登録する。
【００２２】
メソッド変換部２３３は、アプリケーションプログラムＢ（２１０）を実行する際に、ベンダー固有メソッドが検知された場合、１対１の変換テーブル２４５（図１３参照）を参照してベンダー固有メソッドを代用メソッドに変換し、実行を継続する機能を有する。また、ベンダー固有メソッドを代用するための代用メソッドがない場合に、クライアントマシン１００の画面表示装置１０３にエラーメッセージを出力する。
【００２３】
次に５種類のテーブルについて説明する。適宜図１を参照する。
図９は、ベンダー固有メソッドテーブルを示す図である。ベンダー固有メソッドテーブル２４１は、アプリケーションプログラムＢ（２１０）が実行するベンダー固有メソッド２１１のテーブルである。テーブル操作部２３２は、本テーブルのベンダー固有メソッド名（９０１）の列にベンダーメソッドのインタフェースを登録する。具体的には、アプリケーションプログラムＢ（２１０）には、ベンダーメソッド１、ベンダーメソッド２、・・・、ベンダーメソッド６などが含まれていることがわかる。
【００２４】
図１０は、シミュレーションテストテーブルを示す図である。シミュレーションテストテーブル２４２は、移植元アプリケーションサーバ４００（図２参照）においてベンダー固有メソッド２１１の実行時の実行状態テーブルである。シミュレーション部２３１は、移植元アプリケーションサーバ４００において、アプリケーションプログラムＢ（２１０）で実行するベンダー固有メソッド２１１のＪａｖａＶＭプログラム４２０（図２参照）から内部の実行情報（例えば、メソッドの実行情報）を取得する。テーブル操作部２３２は、取得した実行情報として、ベンダー固有メソッド名１００１の列にベンダーメソッドのインタフェースを、入力値１００２の列にメソッドの引数値を、出力値１００３の列にメソッドの戻り値を、内部値１００４の列にメソッド内部での状態値を登録する。同一のベンダー固有メソッド２１１の実行でも入力値１００２が複数パターン存在する場合は、全パターンの組み合わせを登録する。
【００２５】
具体的には、ベンダーメソッド１は、入力値は整数型で「１」（ｉｎｔ１）及び整数型で「２」（ｉｎｔ２）のとき、実行結果の出力値は整数型で「３」（ｉｎｔ３）である。そのときの内部値として、変数ａが整数型で「１」（ｉｎｔ  ａ＝１）、変数ｂが整数型で「２」（ｉｎｔ  ｂ＝２）である。
【００２６】
シミュレーションテストテーブル２４２は、アプリケーションプログラムＢ（２１０）を移植元アプリケーションサーバ４００で稼働させた実行状態の値をもとに、アプリケーションプログラムＢ（２１０）を移植先アプリケーションサーバ２００で検証する際のテストデータとなる。
【００２７】
図１１は、代用メソッドテーブルを示す図である。代用メソッドテーブル２４３は、移植先アプリケーションサーバ２００で実行可能な代用メソッドライブラリ２２１のテーブルである。テーブル操作部２３２は、本テーブルの代用メソッド名１１０１の列に代用メソッドのインタフェースを登録する。
【００２８】
図１２は、１対ｎの変換テーブルを示す図である。１対ｎの変換テーブル２４４は、ベンダー固有のメソッドを代用メソッドに変換した際のメソッド変換シミュレーションの結果による正常実行変換テーブルである。メソッド変換シミュレーションとは、シミュレーション部２３１が、移植先アプリケーションサーバ２００にデプロイしているアプリケーションプログラムＢ（２１０）のベンダー固有メソッド２１１を、メソッド変換部２３３を介して代用メソッドライブラリ２２１からの代用メソッドに変換し、メソッド変換後の実行をシミュレーションすることをいう。その結果、正常実行が確認できた組み合わせについて、テーブル操作部２３２は、ベンダー固有メソッド名１２０１の列にベンダーメソッドのインタフェースを、代用メソッド名１２０２の列に代用メソッドライブラリ２２１からの代用メソッドのインタフェースを、平均実行時間（ｍｓ）（１２０３）の列に変換実行に費やした平均時間を登録する。１つのベンダー固有メソッド２１１に対し正常変換可能な代用メソッドライブラリ２２１のインタフェースが複数存在する場合は、全組み合わせを登録する。
【００２９】
図１３は、１対１の変換テーブルを示す図である。１対１の変換テーブル２４５は、アプリケーションプログラムＢ（２１０）実行時の動作を決定するメソッド変換テーブルである。図１３のテーブルは、ベンダー固有メソッド名１３０１、代用メソッド名１３０２、平均実行時間（ｍｓ）（１３０３）から構成され、図１２のテーブルと同じ構成のテーブルであり、ベンダー固有メソッド２１１と正常にメソッド変換可能な代用メソッドライブラリ２２１のインタフェースの組み合わせを１対１に結びつけるテーブルである。テーブル操作部２３２は、図１２の１対ｎの変換テーブル２４４で正常にメソッド変換可能な組み合わせが１つしか存在しない場合は、その組み合わせで登録する。組み合わせが複数存在している場合は、平均実行時間（ｍｓ）（１２０３）の列が最短の組み合わせで登録する。正常にメソッド変換可能な組み合わせが１つも存在しない場合は、クライアントマシン１００の画面表示装置１０３にエラーメッセージを出力し、疎通動作検証者にエラー内容の確認及び調整を促す。また、メソッド変換シミュレーションの結果、正常実行した新規作成の代用メソッドＦ１が追加されると、図１３に登録される。
【００３０】
具体的には、図１２に示すベンダーメソッド６には、代用メソッドＣ、代用メソッドＤ、代用メソッドＥが該当し、その中で、平均実行時間が最短である代用メソッドＥが、図１３に示すベンダーメソッド６の行に登録される。
【００３１】
本実施形態の処理には、主に下記の処理があり、図２から図５を参照して処理概要を説明する。なお、図中には、説明に必要なブロックのみ示している。
（１）アプリケーションプログラム移植前の実行状態を把握する処理（図２参照）
（２）メソッド変換シミュレーションテスト実行時の処理（図３参照）
（３）アプリケーションプログラム移植後のベンダー固有メソッド変換実行時の処理（図４参照）
（４）アプリケーションプログラム移植後の標準メソッド実行時の処理（図５参照）
なお、（１）及び（２）は、テーブル作成モードの処理であり、（３）及び（４）は、実行モードの処理である。
【００３２】
図２は、アプリケーションプログラム移植前の実行状態を把握する処理を示す図である。図２には、メソッド変換シミュレーションテスト準備作業の移植元アプリケーションサーバ４００の実行時のプログラム構成を示している。クライアントマシン１００、移植元アプリケーションサーバ４００及び移植先アプリケーションサーバ２００がネットワーク３００を介して接続されている。
【００３３】
移植元アプリケーションサーバ４００において、移植対象のプログラムであるアプリケーションプログラムＢ（２１０）及びＪａｖａＶＭプログラム４２０が予め起動されている。アプリケーションプログラムＢ（２１０）は、ベンダー固有メソッド２１１及びＪ２ＥＥ標準メソッド２１２を含んでいる。ＪａｖａＶＭプログラム４２０は、ベンダー固有メソッドライブラリ４２１及びＪ２ＥＥ標準メソッドライブラリ４２２を含んでいる。
【００３４】
移植先アプリケーションサーバ２００において、ＪａｖａＶＭ差分管理部２３０のシミュレーション部２３１が移植元アプリケーションサーバ４００のＪａｖａＶＭプログラム４２０を監視する（ステップＳ２１）。クライアントマシン１００のアプリケーションプログラムＡ（１１０）が実行されると、移植元アプリケーションサーバ４００のアプリケーションプログラムＢ（２１０）のベンダー固有メソッド２１１及びＪ２ＥＥ標準メソッド２１２を実行する（ステップＳ２２）。ベンダー固有メソッド２１１は、ＪａｖａＶＭプログラム４２０のベンダー固有メソッドライブラリ４２１中の該当するベンダー固有メソッドを、Ｊ２ＥＥ標準メソッド２１２は、ＪａｖａＶＭプログラム４２０のＪ２ＥＥ標準メソッドライブラリ４２２中の該当するＪ２ＥＥ標準メソッドをそれぞれ実行する（ステップＳ２３）。
【００３５】
ＪａｖａＶＭ差分管理部２３０のシミュレーション部２３１は、移植元アプリケーションサーバ４００のＪａｖａＶＭプログラム４２０の実行情報中のメソッド名を取得し、取得したメソッド名に該当するメソッドを移植先アプリケーションサーバ２００のＪ２ＥＥ標準メソッドライブラリ２２２から抽出し実行する（ステップＳ２４）。この実行結果より正常実行メソッドは、Ｊ２ＥＥ標準メソッド２１２として、また、実行失敗メソッドはベンダー固有メソッド２１１として判定する。シミュレーション部２３１がベンダー固有メソッド２１１と特定した場合、テーブル操作部２３２は、シミュレーション部２３１で取得した実行状態をベンダー固有メソッドテーブル２４１及びシミュレーションテストテーブル２４２に登録し、シミュレーションテストで必要な情報を登録する。
【００３６】
図３は、メソッド変換シミュレーションテスト実行時の処理を示す図である。ＪａｖａＶＭプログラム２２０は、メソッド変換シミュレーションの指令をクライアントマシン１００から受理すると、ＪａｖａＶＭ差分管理部２３０のシミュレーション部２３１が代用メソッドライブラリ２２１から代用メソッドの情報を取得し（ステップＳ３１）、テーブル操作部２３２を介して取得した情報を代用メソッドテーブル２４３に登録する（ステップＳ３２）。
【００３７】
シミュレーション部２３１は、テーブル操作部２３２を介して、図２で登録済みのベンダー固有メソッドテーブル２４１及びシミュレーションテストテーブル２４２を取得する（ステップＳ３３）。シミュレーション部２３１は、テーブル操作部２３２が取得したテーブルに基づいて、メソッド変換をメソッド変換部２３３に要求する（ステップＳ３４）。メソッド変換部２３３は、代用メソッドライブラリ２２１から該当する代用メソッドを用いてメソッド変換を行い（ステップＳ３５）、シミュレーション部２３１が実行結果を確認する。テーブル操作部２３２は、確認された実行結果を１対ｎ変換テーブル２４４及び１対１の変換テーブル２４５に登録する（ステップＳ３６）。
【００３８】
疎通動作検証者は、クライアントマシン１００の画面表示装置１０３を介して、テーブル操作部２３２にメソッド変換シミュレーション結果表示の要求をすると（ステップＳ３７）、登録済みの１対１の変換テーブル２４５などの変換内容の確認及び調整をすることができる。
【００３９】
図４は、アプリケーションプログラム移植後のベンダー固有メソッド変換実行時の処理を示す図である。図３と同様に移植先アプリケーションサーバ２００のＪａｖａＶＭプログラム２２０及びアプリケーションプログラムＢ（２１０）をクライアントマシン１００からの接続に備え事前に起動しておく。
【００４０】
クライアントマシン１００のアプリケーションプログラムＡ（１１０）が実行されると、移植先アプリケーションサーバ２００で起動済みのアプリケーションプログラムＢ（２１０）のベンダー固有メソッド２１１が実行される（ステップＳ４１）。実行されたベンダー固有メソッド２１１は、ＪａｖａＶＭ差分管理部２３０のテーブル操作部２３２を実行する（ステップＳ４２）。テーブル操作部２３２は、図３で登録済みの１対１の変換テーブル２４５を取得し（ステップＳ４３）、メソッド変換部２３３が取得された変換テーブル２４５に基づいてメソッド変換を実行し（ステップＳ４４）、代用メソッドライブラリ２２１中のメソッドを実行することで処理を継続する。
【００４１】
１対１の変換テーブル２４５から取得した代用メソッド名のメソッドが代用メソッドライブラリ２２１中に存在しない場合は、ＪａｖａＶＭ差分管理部２３０のメソッド変換部２３３からクライアントマシン１００の画面表示装置１０３にエラーメッセージを出力する（ステップＳ４５）。
【００４２】
前記説明は処理概要であるが、仮想マシンであるＪａｖａＶＭプログラム２２０は、アプリケーションプログラムＢ（２１０）の実行の際にメソッドの実行を検知すると、１対１の変換テーブル２４５を参照してベンダー固有メソッドであるか否かを判定し、ベンダー固有メソッドである場合、ベンダー固有メソッドを代用メソッドに変換してアプリケーションプログラムＢ（２１０）の実行を継続することができる。
【００４３】
図５は、アプリケーションプログラム移植後の標準メソッド実行時の処理を示す図である。図５において、Ｊ２ＥＥ標準メソッド２１２の実行時について説明する。図３と同様に移植先アプリケーションサーバ２００のＪａｖａＶＭプログラム２２０及びアプリケーションプログラムＢ（２１０）をクライアントマシン１００からの接続に備え事前に起動しておく。
【００４４】
クライアントマシン１００のアプリケーションプログラムＡ（１１０）が実行されると、移植先アプリケーションサーバ２００で起動済みのアプリケーションプログラムＢ（２１０）のＪ２ＥＥ標準メソッド２１２が実行される（ステップＳ５１）。実行されたＪ２ＥＥ標準メソッド２１２は、ＪａｖａＶＭ差分管理部２３０のテーブル操作部２３２を実行する（ステップＳ５２）。テーブル操作部２３２は、図３で更新済みの１対１の変換テーブル２４５を取得し（ステップＳ５３）、メソッド変換部２３３はメソッド変換を実行せずに、標準対応済みのＪ２ＥＥ標準メソッドライブラリ２２２中のメソッドを実行することで処理を継続する（ステップＳ５４）。
【００４５】
前記説明は処理概要であるが、仮想マシンであるＪａｖａＶＭプログラム２２０は、アプリケーションプログラムＢ（２１０）の実行の際にメソッドの実行を検知すると、１対１の変換テーブル２４５を参照してベンダー固有メソッドであるか否かを判定し、ベンダー固有メソッドでない場合、標準メソッドとしてアプリケーションプログラムＢ（２１０）の実行を継続することができる。
【００４６】
図６は、メソッド変換シミュレーション準備作業のシミュレーションテストテーブル作成処理を示すフローチャートである。適宜図１、図２を参照して説明する。移植先アプリケーションサーバ２００のＪａｖａＶＭ差分管理部２３０のシミュレーション部２３１は、移植元アプリケーションサーバ４００のＪａｖａＶＭプログラム４２０を監視しメソッド実行情報のうちメソッド名を取得する（ステップＳ６０１）。移植元アプリケーションサーバ４００のアプリケーションプログラムＢ（２１０）の実行中、以下のステップＳ６０３からステップＳ６０６の処理を繰り返す（ステップＳ６０２）。
【００４７】
クライアントマシン１００のアプリケーションプログラムＡ（１１０）を実行すると、移植元アプリケーションサーバ４００にデプロイして起動済みのアプリケーションプログラムＢ（２１０）は、ベンダー固有メソッド２１１及びＪ２ＥＥ標準メソッド２１２を実行する。ベンダー固有メソッド２１１は、移植元アプリケーションサーバ４００のＪａｖａＶＭプログラム４２０のベンダー固有メソッドライブラリ４２１中のメソッドを実行し、Ｊ２ＥＥ標準メソッド２１２は移植元アプリケーションサーバ４００のＪａｖａＶＭプログラム４２０のＪ２ＥＥ標準メソッドライブラリ４２２中のメソッドを実行する。
【００４８】
移植先アプリケーションサーバ２００のＪａｖａＶＭ差分管理部２３０のシミュレーション部２３１は、移植元アプリケーションサーバ４００のＪａｖａＶＭプログラム４２０のメソッド実行情報を監視しており、実行されたメソッドの実行を検知すると、移植先アプリケーションサーバ２００でのシミュレーション結果に基づいて、ベンダー固有メソッド２１１か否かを判定する（ステップＳ６０３）。エラー実行の場合はベンダー固有メソッドであると判定（ステップＳ６０３，Ｙｅｓ）し、正常実行の場合はＪ２ＥＥメソッドと判定（ステップＳ６０３，Ｎｏ）する。
【００４９】
具体的には、シミュレーション部２３１は、移植元アプリケーションサーバ４００の実行を移植先アプリケーションサーバ２００で模倣するが、移植元アプリケーションサーバ４００は、ベンダー固有メソッドライブラリ４２１の実装があるため正常に実行できるが、移植先アプリケーションサーバ２００は、ベンダー固有メソッドライブラリ４２１の実装が無いためエラーになり、ベンダー固有メソッドであると判定（ステップＳ６０３，Ｙｅｓ）する。一方、シミュレーション部２３１は、移植元アプリケーションサーバ４００でＪ２ＥＥ標準メソッドを実行時には、移植先アプリケーションサーバ２００でもＪ２ＥＥ標準メソッドの実装はあるため正常に実行でき、Ｊ２ＥＥ標準メソッドであると判定（ステップＳ６０３，Ｎｏ）する。
【００５０】
シミュレーション部２３１は、ベンダー固有メソッドと確認した場合（ステップＳ６０３，Ｙｅｓ）、メソッド実行情報（ベンダー固有メソッド名、メソッド入力値、メソッド出力値、メソッド内部値）を取得する（ステップＳ６０４）。テーブル操作部２３２は、シミュレーション部２３１が取得した実行情報のうちベンダー固有メソッド名を移植先アプリケーションサーバ２００のベンダー固有メソッドテーブル２４１に登録して更新する（ステップＳ６０５）。また、テーブル操作部２３２は、シミュレーション部２３１が取得したメソッド実行情報（ベンダー固有メソッド名、メソッド入力値、メソッド出力値、メソッド内部値）を移植先アプリケーションサーバ２００のシミュレーションテストテーブル２４２に登録して更新し（ステップＳ６０６）、ステップＳ６０７に進む。そして、ステップＳ６０２に戻り、アプリケーションプログラムＢ（２１０）の実行中はステップＳ６０３から繰り返す。
【００５１】
ステップＳ６０３において、シミュレーション部２３１がベンダー固有メソッドでないと判定した場合（ステップＳ６０３，Ｎｏ）、ステップＳ６０７に進み、次の実行メソッドに処理を移す。
【００５２】
図７は、メソッド変換シミュレーションによるベンダー固有メソッド変換テーブルの作成処理を示すフローチャートである。図７において、ベンダー固有メソッド変換テーブルである１対１の変換テーブル２４５（図１３参照）の作成処理を示す。適宜図１、図３を参照する。クライアントマシン１００からの接続（要求）に備えて、移植先アプリケーションサーバ２００のＪａｖａＶＭプログラム２２０を起動しておく。
【００５３】
ＪａｖａＶＭ差分管理部２３０のシミュレーション部２３１は、代用メソッドライブラリ２２１の情報を取得し、テーブル操作部２３２は、シミュレーション部２３１が取得した情報（代用メソッド名）を代用メソッドテーブル２４３に登録して更新する（ステップＳ７０１）。シミュレーション部２３１は、テーブル操作部２３２を介して、ベンダー固有メソッドテーブル２４１の情報（ベンダー固有メソッドテーブル情報）を取得し（ステップＳ７０２）、シミュレーションテストテーブル２４２の情報（シミュレーションテーブル情報）を取得する（ステップＳ７０３）。そして、ベンダー固有メソッドテーブル２４１のベンダー固有メソッド数に対して、以下の処理（ステップＳ７０５からステップＳ７１１）を繰り返す（ステップＳ７０４）。
【００５４】
シミュレーション部２３１は、テーブル操作部２３２を介して代用メソッドテーブル２４３から代用メソッド数を取得し、その個数分以下の処理（ステップＳ７０６からステップＳ７０８）を繰り返す（ステップＳ７０５）。
【００５５】
シミュレーション部２３１は、シミュレーションテーブル情報を用いてベンダー固有メソッドを代用メソッドに変換して実行する（ステップＳ７０６）。具体的には、テーブル操作部２３２が取得した移植先アプリケーションサーバ２００のシミュレーションテストテーブル２４２の実行情報（ベンダー固有メソッド名、入力値、出力値、内部値）を用いて、メソッド変換部２３３がベンダー固有メソッドを代用メソッドに変換して実行する。
【００５６】
シミュレーション部２３１は、メソッド変換実行結果をシミュレーションテストテーブル２４２の実行情報（ベンダー固有メソッド名、入力値、出力値、内部値）と比較し全て同一であれば正常実行、一箇所でも異なればエラー実行と判定する（ステップＳ７０７）。
【００５７】
メソッド変換実行結果が正常実行の場合（ステップＳ７０７，Ｙｅｓ）、テーブル操作部２３２が実行情報（ベンダー固有メソッド名、代用メソッド名、平均実行時間（ｍｓ））を１対ｎの変換テーブル２４４に登録して更新し（ステップＳ７０８）、ステップＳ７０９に進む。
【００５８】
ステップＳ７０７において、メソッド変換シミュレーションの結果が失敗した場合（ステップＳ７０７，Ｎｏ）、ステップＳ７０９に進む。そして、次の代用メソッドに対して、ステップＳ７０６においてメソッド変換シミュレーションを実行する。
【００５９】
全ての代用メソッドにおいて検証がすむと、シミュレーション部２３１は、１つ以上の代用メソッドが変換可能か否かを判定する（ステップＳ７１０）。具体的には、シミュレーション部２３１は、テーブル操作部２３２を介して１対ｎの変換テーブル２４４を取得し、実行中のベンダー固有メソッド２１１に対し１つ以上メソッド変換が正常実行する代用メソッドの組み合わせが存在するか確認する。
【００６０】
メソッド変換が正常実行する組み合わせが存在する場合（ステップＳ７１０，Ｙｅｓ）、シミュレーション部２３１は、１対ｎの変換テーブル２４４の組み合わせのうち平均実行時間が最短の組み合わせ情報でテーブル操作部２３２を介して１対１の変換テーブル２４５を登録して更新し（ステップＳ７１１）、ステップＳ７１２に進む。
【００６１】
ステップＳ７１０において、実行中のベンダー固有メソッド２１１に対し変換可能な代用メソッドが１つも存在しない場合（ステップＳ７１０，Ｎｏ）、ステップＳ７１２に進み、次のベンダー固有メソッドの処理を移す。
【００６２】
シミュレーション部２３１は、１対１の変換テーブル２４５に未作成のベンダーメソッドが存在するか否かを判定する（ステップＳ７１３）。具体的には、取得した１対１の変換テーブル２４５の内容で全てのベンダー固有メソッド２１１に変換可能な代用メソッドの組み合わせが漏れなく全部成立しているか確認する。
【００６３】
成立していない場合、すなわち、組み合わせが未作成のベンダーメソッドがある場合（ステップＳ７１３，Ｙｅｓ）、未変換メソッドを確認する画面を表示して、疎通動作検証者に確認及び調整を促す（ステップＳ７１４）。具体的には、クライアントマシン１００の画面表示装置１０３に変換組み合わせを確認するようメッセージを出力して、疎通動作検証者に移植先アプリケーションサーバ２００の１対１の変換テーブル２４５の内容を確認及び調整を促し、一連の処理を終了する。
【００６４】
ステップＳ７１３において、実行するベンダー固有メソッド２１１全てに対し変換可能な代用メソッドが存在する場合（ステップＳ７１３，Ｎｏ）、そのままの状態で１対１の変換テーブル２４５の作成処理を終了する。
【００６５】
図８は、移植先アプリケーションサーバにデプロイしているアプリケーションプログラムのベンダー固有メソッド実行から代用メソッド実行への変換処理を示すフローチャートである。適宜、図１、図４、図５を参照して説明する。移植先アプリケーションサーバ２００のＪａｖａＶＭプログラム２２０及びアプリケーションプログラムＢ（２１０）をクライアントマシン１００からの接続に備え事前に起動しておく。
【００６６】
移植先アプリケーションサーバ２００のアプリケーションプログラムＢ（２１０）の実行中、以下の処理を繰り返す（ステップＳ８０１）。クライアントマシン１００のアプリケーションプログラムＡ（１１０）を実行すると、移植先アプリケーションサーバ２００で起動済みのアプリケーションプログラムＢ（２１０）のメソッドを実行する。このときにＪａｖａＶＭプログラム２２０から、テーブル操作部２３２は、実行メソッド情報（メソッド名）を取得する（ステップＳ８０２）。そして、テーブル操作部２３２は、１対１の変換テーブル２４５を取得する（ステップＳ８０３）。
【００６７】
メソッド変換部２３３は、ベンダー固有メソッドの実行か否かを判定する（ステップＳ８０４）。具体的には、ステップＳ８０２で取得したメソッド名がステップＳ８０３で取得した１対１変換テーブル２４５のベンダー固有メソッド名と一致するか検索し、検索成功すればベンダー固有メソッド２１１の実行、検索失敗すればＪ２ＥＥ標準メソッド２１２の実行と判定する。
【００６８】
検索成功しベンダー固有メソッド２１１の実行の場合（ステップＳ８０４，Ｙｅｓ）、メソッド変換部２３３は、テーブル操作部２３２を介して１対１変換テーブル２４５から変換する代用メソッド名を取得する（ステップＳ８０５）。メソッド変換部２３３は、テーブル操作部２３２が取得した代用メソッド名のメソッドが代用メソッドライブラリ２２１に存在するか確認する（ステップＳ８０６）。メソッドが存在する場合（ステップＳ８０６，Ｙｅｓ）、メソッド変換部２３３は、存在する代用メソッドライブラリ２２１中のメソッドを実行し（ステップＳ８０７）、ステップＳ８０８に進む。
【００６９】
ステップＳ８０４において、実行メソッドがＪ２ＥＥ標準メソッド２１２の場合（ステップＳ８０４，Ｎｏ）、移植先アプリケーションサーバ２００のＪ２ＥＥ標準メソッドライブラリ２２２中のメソッドを実行する（ステップＳ８０９）。ステップＳ８０９でＪ２ＥＥ標準メソッドの実行完了後は、ステップＳ８０８に進み、次の実行メソッドに処理を移す。
【００７０】
ステップＳ８０６において、取得した代用メソッド名のメソッドが存在しない場合（ステップＳ８０６，Ｎｏ）、メソッド変換部２３３は、エラーメッセージをクライアントマシン１００の画面表示装置１０３に出力する（ステップＳ８１０）。ステップＳ８１０において、ＪａｖａＶＭ差分管理部２３０のメソッド変換部２３３は、エラーメッセージを出力したら、クライアントマシン１００のアプリケーションプログラムＡ（１１０）の継続実行は、不可能のためメソッド実行変換の異常終了を行う（ステップＳ８１１）。
【００７１】
図１４は、手動変換シミュレーション実行前のメソッド変換用テーブルの確認及び調整を行う画面例を示す図である。ＪａｖａＶＭ差分管理部２３０は、メソッド変換用テーブルである１対１の変換テーブル２４５に基づいて、クライアントマシン１００の画面表示装置１０３に表示する。
【００７２】
画面１４００の左から右へベンダー固有メソッド１４０１、変換の有無１４０２、代用メソッド１４０３、平均実行時間（ｍｓ）１４０４、手動変換シミュレーション１４０５の項目を表示し、各行が変換組み合わせを表す。ベンダー固有メソッド１４０１、代用メソッド１４０３、平均実行時間（ｍｓ）１４０４は、図１３に示すベンダー固有メソッド名（１３０１）の列、代用メソッド名（１３０２）の列、平均実行時間（ｍｓ）（１３０３）の列に対応する。
【００７３】
アプリケーションプログラムＢ（２１０）のベンダー固有メソッド２１１に対する変換可能な代用メソッドが存在する組み合わせの場合は、変換の有無１４０２に矢印（−＞）を表示する。変換可能な代用メソッドが存在しない場合は、変換の有無１４０２には何も表示しない。
【００７４】
代用メソッド１４０３は、プルダウン表示になっていて、図１２に示す該当する変換可能な代用メソッド名１２０２をプルダウンリストから選択でき、選択した代用メソッド１４０３との変換組み合わせの平均実行時間（ｍｓ）１４０４もリアルタイムに画面表示する。
【００７５】
新規作成の代用メソッドの動作確認として手動変換シミュレーションが実行できる。手動変換シミュレーション１４０５は、チェックボックス１４０６とテキストボックス１４０７及び「手動変換シミュレーション実行」のボタン１４０８で構成する。
【００７６】
具体的には、手動変換シミュレーションを実行する新規作成の代用メソッドのインタフェース名をテキストボックス１４０７に入力し、該当するチェックボックス１４０６に印を付け、画面１４００の右下にある「手動変換シミュレーション実行」のボタン１４０８を押下することでメソッド変換結果を確認できる。
【００７７】
図１５は、手動変換シミュレーション実行後のメソッド変換用テーブルの確認及び調整を行う画面例を示す図である。図１４に示す画面構成と同一で、手動変換シミュレーション実行の結果、正常にメソッド変換が実行できた場合、変更の有無１４０２、代用メソッド１４０３、平均実行時間（ｍｓ）１４０４の画面表示が更新されている。具体的には、ベンダーメソッド４の代用メソッドとして「新規作成の代用メソッドＦ１」及び平均実行時間として「５」が追加される。
【００７８】
疎通動作検証者は、この更新内容を検討する。画面起動時の設定に戻したい場合は画面１４００の右下の「設定キャンセル」のボタン１４０９を押下すると設定は保存しない。現在の画面表示の内容に更新したい場合は画面１４００の右下の「設定適用」のボタン１４１０を押下することで設定が保存される。画面１４００により設定内容の確認及び変換メソッドを選択しての手動変換シミュレーションが可能であり、より柔軟にメソッド変換組み合わせの調整が可能になる。
【００７９】
本実施形態の情報処理システムは、アプリケーションプログラムを実行可能なように処理する第１の仮想マシン（例えば、ＪａｖａＶＭプログラム４２０）を備える移植元アプリケーションサーバ４００と、アプリケーションプログラムの移植先であり、アプリケーションプログラムを実行可能なように処理する第２の仮想マシン（例えば、ＪａｖａＶＭプログラム２２０）を備える移植先アプリケーションサーバ２００とを有する。
【００８０】
第２の仮想マシンは、第２の仮想マシンで標準に使用される標準メソッドのライブラリであるＪ２ＥＥ標準メソッドライブラリ２２２と、標準メソッドに含まれない非標準メソッドの代わりに使用される代用メソッドのライブラリである代用メソッドライブラリ２２１を備えている。
【００８１】
第２の仮想マシンは、第１の仮想マシンのメソッドの実行状態を監視し、メソッドの実行を検知すると、メソッドのメソッド名が、標準メソッドライブラリ中のメソッド名と合致するか否かを判定し、メソッド名が合致しない場合、非標準メソッド実行の際のメソッド名、入力値、出力値とを関連付けるテスト情報（例えば、シミュレーションテストテーブル２４２）を移植先サーバの記憶部（例えば、主記憶装置２０１）に登録する。
【００８２】
第２の仮想マシンは、非標準メソッドと、代用メソッドとを関連付けの要求をクライアントマシン１００から受理すると、代用メソッドライブラリから代用メソッドを順にテスト情報に基づいて実行し、テスト情報の入力値に基づいて実行した出力値とテスト情報の出力値とが合致するメソッドを、非標準メソッドの代用メソッドとして関連付けてメソッド対応情報（例えば、１対１の変換テーブル２４５）として記憶部に登録し、移植先アプリケーションサーバにおいてアプリケーションプログラムのメソッドを実行する際に、メソッド対応情報を参照して非標準メソッドであると検知すると、非標準メソッドを代用メソッドに変換してアプリケーションプログラムを実行する。
【００８３】
本実施形態によれば、既存のＪ２ＥＥアプリケーションプログラム移植時の疎通動作検証作業において、メソッド変換部２３３のメソッド呼び出し変換によってアプリケーションプログラム及びアプリケーションサーバのソースコードに手を加えず、変換テーブルという定義変更により差分の吸収を行う。これにより、アプリケーションプログラム及びアプリケーションサーバのソースコードの修正版の発行が不要になり修正版の再テストも行う必要が無いため、時間及び能力の浪費が抑制でき疎通確認の迅速化及び移植の容易さ向上に繋がり、結果としてアプリケーションプログラム移植時の障壁を下げる効果がある。
【００８４】
本実施形態では、ＪａｖａＶＭ差分管理部２３０を、シミュレーション部２３１、テーブル操作部２３２、メソッド変換部２３３として説明したが、これに限定されるものではない。本発明の趣旨を逸脱しない範囲で適宜変更が可能である。例えば、ＪａｖａＶＭ差分管理部２３０をテーブル作成モード部と実行モード部から構成してもよい。
【符号の説明】
【００８５】
１００    クライアントマシン
１０１，２０１    主記憶装置（記憶部）
１０２，２０２    ＣＰＵ（処理部）
１０３    画面表示装置
１１０    アプリケーションプログラムＡ
２００    移植先アプリケーションサーバ
２１０    アプリケーションプログラムＢ
２１１    ベンダー固有メソッド
２１２    Ｊ２ＥＥ標準メソッド
２２０    ＪａｖａＶＭプログラム（第２の仮想マシン、仮想マシン）
２２１    代用メソッドライブラリ
２２２，４２２    Ｊ２ＥＥ標準メソッドライブラリ
２３０    ＪａｖａＶＭ差分管理部（メソッド管理部）
２３１    シミュレーション部
２３２    テーブル操作部
２３３    メソッド変換部
２４１    ベンダー固有メソッドテーブル
２４２    シミュレーションテストテーブル（テスト情報）
２４３    代用メソッドテーブル
２４４    １対ｎの変換テーブル
２４５    １対１の変換テーブル（メソッド対応情報）
３００    ネットワーク
４００    移植元アプリケーションサーバ
４２０    ＪａｖａＶＭプログラム（第１の仮想マシン）
４２１    ベンダー固有メソッドライブラリ
【図１】
2011048605.tif 000003
【図２】
2011048605.tif 000004
【図３】
2011048605.tif 000005
【図４】
2011048605.tif 000006
【図５】
2011048605.tif 000007
【図６】
2011048605.tif 000008
【図７】
2011048605.tif 000009
【図８】
2011048605.tif 000010
【図９】
2011048605.tif 000011
【図１０】
2011048605.tif 000012
【図１１】
2011048605.tif 000013
【図１２】
2011048605.tif 000014
【図１３】
2011048605.tif 000015
【図１４】
2011048605.tif 000016
【図１５】
2011048605.tif 000017