(57)【要約】【課題】クライアントアプリケーションが遠隔手続呼出を用いてサーバ上のアプリケーションを実行するシステムにおいて、遠隔手続呼出における出力パラメタのデータ変換を必要な出力パラメタに限定して行うこと。【解決手段】クライアントアプリケーションが遠隔手続呼び出しによってサーバアプリケーションを呼び出した際に、受信した応答メッセージから１以上の出力パラメタを抽出し、一旦記憶領域に格納し、クライアントアプリケーションが或る出力パラメタを参照した際に、該当する出力パラメタに対応するデータを前記記憶領域から読み出して、適当なデータ型に変換して該クライアントアプリケーションに返す。【選択図】図１
2008165340.tif 000002
【特許請求の範囲】
【請求項１】
遠隔手続呼出によってサーバアプリケーションを呼び出す遠隔手続呼出機構を備える遠隔手続呼出装置であって、
前記サーバアプリケーションを前記遠隔手続呼出機構に対して呼び出すクライアントアプリケーション手段と、
前記クライアントアプリケーション手段が前記サーバアプリケーションを呼び出す際に送信する入力パラメタを一旦格納する入力データ手段と、
前記入力データ手段に格納された入力パラメタに基づいて遠隔手続呼び出しするための要求メッセージを作成し、前記サーバアプリケーションに送信し、応答メッセージを待ち合わせ、応答メッセージ受信時には該応答メッセージに含まれる前記サーバアプリケーションから送信されてきた１以上の出力パラメタを抽出する、遠隔手続呼出ラッピング手段と、
前記遠隔手続呼出ラッピング手段から抽出された前記１以上の出力パラメタを格納し、前記クライアントアプリケーション手段が或る出力パラメタを参照した際に、該出力パラメタに該当するデータを該クライアントアプリケーション手段に返す出力データ手段と、
前記出力データ手段がクライアントアプリケーション手段に参照された出力パラメタのデータを返す際に、該出力パラメタがデータ変換されていない場合には、データ変換処理を行うデータ変換処理手段と、
を備えることを特徴とする遠隔手続呼出装置。
【請求項２】
前記応答メッセージに含まれる前記出力パラメタのデータ型はバイト列型で、前記出力データ手段が前記クライアントアプリケーション手段に参照された場合に返すデータは、パラメタデータ型であることを特徴とする請求項１記載の遠隔手続呼出装置。
【請求項３】
前記入力データ手段および前記出力データ手段は、前記クライアントアプリケーション手段にクラス定義として組み込まれ、前記遠隔手続呼び出しされるときに入力データオブジェクトおよび出力データオブジェクトとして生成されることで実現されることを特徴とする請求項２記載の遠隔手続呼出装置。
【請求項４】
前記入力データオブジェクトおよび前記出力データオブジェクトは、要求メッセージや応答メッセージに含まれる、バイト列型の前記入力パラメタおよび前記出力パラメタのデータを格納するためのバイト列型データ領域と、前記入力パラメタおよび前記出力パラメタを格納するためのパラメタデータ型データ領域とからなるデータ領域を備えることを特徴とする請求項３記載の遠隔手続呼出装置。
【請求項５】
クライアントアプリケーションが遠隔手続呼出によってサーバアプリケーションを呼び出す処理を、記憶部および処理部を備える情報処理装置に実行させるためのプログラムであって、  
前記遠隔手続呼び出しに合わせて、前記記憶部に出力データクラスをローディングして出力データオブジェクトを生成するステップと、
前記サーバアプリケーションから応答メッセージを受信した際には、該応答メッセージに含まれる１以上の出力パラメタを前記出力データオブジェクトのデータ領域に転送するステップと、
前記クライアントアプリケーションが或る出力パラメタを参照した際には、該当する出力パラメタをデータ領域から読み出し、データ変換処理を行っていない場合にはデータ変換処理を行って、データをクライアントアプリケーションに返すステップと、
を含むことを特徴とするプログラム。
【請求項６】
クライアントアプリケーションが遠隔手続呼出によってサーバアプリケーションを呼び
出す処理を、記憶部および処理部を備える情報処理装置で実現するための方法であって、
前記遠隔手続呼び出しに合わせて、前記記憶部に出力データクラスをローディングして出力データオブジェクトを生成し、
前記サーバアプリケーションから応答メッセージを受信した際には、該応答メッセージに含まれる１以上の出力パラメタを前記出力データオブジェクトのデータ領域に転送し、
前記クライアントアプリケーションが或る出力パラメタを参照した際には、該当する出力パラメタをデータ領域から読み出し、データ変換処理を行っていない場合にはデータ変換処理を行って、データをクライアントアプリケーションに返す、
ことを特徴とする方法。
【請求項７】
クライアントとサーバから成る遠隔手続呼出システムであって、
前記クライアントは、
遠隔手続呼出機構に対して入出力データクラスでサーバアプリケーションを呼び出す１個のサービスアダプタ手段と、
前記サービスアダプタ手段と前記サーバに含まれる代表オブジェクトとの間で、前記入出力データクラスに定義される入出力パラメタのデータ型には依存しない、１個のデータ型による通信を行う通信手段と、
前記サービス要求に対するサーバからの応答メッセージのデコードを前記クライアントアプリケーションが参照したパラメタの範囲に限定するデコード手段と、
を含み、
前記サーバは、
前記サービスアダプタ手段のサービス要求に対して、サーバアプリケーションの遠隔手続き呼び出しに必要な所在情報の定義量をサーバ単位でルーティングするサーバアプリケーション振分機構を含み、該各サーバアプリケーションの所在情報を有する１個の代表オブジェクト手段と、
前記サービスアダプタ手段と前記代表オブジェクト手段との間で、前記入出力データクラスに定義される入出力パラメタのデータ型には依存しない、１個のデータ型による通信を行う通信手段と、
を含むことを特徴とする遠隔手続呼出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遠隔手続呼出（リモートプロシージャコール：ＲＰＣ）方式に関わり、該遠隔手続呼出処理を行う情報処理装置およびシステム等に関わる。
【背景技術】
【０００２】
近年、クライアントアプリケーションがネットワークを介してサーバのアプリケーションを利用するシステムが普及している。
そのようなシステムでは図２７に示すように、クライアント上のアプリケーションが、ＴＰモニタ（Ｔｒａｎｓａｃｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｍｏｎｉｔｏｒ）を備えるサーバ上のアプリケーションと遠隔手続呼出処理により通信し、処理を行う形態が一般的である。
【０００３】
尚、遠隔手続呼出機構を適用したシステムの開発方法として、トップダウン手法とボトムアップ手法の２手法が知られている。この２手法の違いは、遠隔手続呼出の要となるクライアントとサーバ間のインタフェースの設計・作成手順にある。
【０００４】
トップダウン手法は、クライアントとサーバの双方のアプリケーションを全く新規に設計する場合に適した手法であり、双方のアプリケーションのプログラミング言語に無依存のインタフェース定義言語ＩＤＬ（Ｉｎｔｅｒｆａｃｅ  Ｄｅｆｉｎｉｔｉｏｎ  Ｌａｎｇｕａｇｅ）によるインタフェースの設計・作成を開発の出発点とする。双方のアプリケーションの開発に必要なスタブやインタフェース定義情報は、ＩＤＬからツールで自動生成する。
【０００５】
ボトムアップ手法は、既存のサーバアプリケーションを再利用し新規サービスを設計する場合に適した手法であり、既存のサーバアプリケーションのプログラミング資産であるインタフェース定義情報を開発の出発点とする。クライアントの開発で必要なＩＤＬは既存のインタフェース定義情報からツールで自動生成する。
【０００６】
昨今、サービス指向開発手法ＳＯＡ（Ｓｅｒｖｉｃｅ  Ｏｒｉｅｎｔｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）が普及すると共に、ＴＰモニタ上の既存のサーバアプリケーションを再利用した業務構築手法としてボトムアップ手法が広く採用されている。
【０００７】
本書では、ボトムアップ手法を開発手法に採用した場合を例に説明するが、本発明の適用範囲はボトムアップ手法を採用した場合に限定されるものではない。
図２８に、遠隔手続呼出処理によりアプリケーションを実行するシステムの一例を詳細に示す。
【０００８】
図２８には、開発環境２７０１と運用環境２７０２をともに示している。
まず、アプリケーション開発時、開発環境２７０１において、クライアント２７１０とサーバ２７０９上のアプリケーション間のインタフェース定義情報２７０５から、インタフェース定義変換ツール２７０７などを用いて、ＩＤＬ２７０３を生成する。ＩＤＬ２７０３からＩＤＬコンパイラ２７０８などにより、クライアント用およびサーバ用のスタブ２７０６を生成する。生成されたスタブを、クライアントアプリケーション２７２２およびサーバアプリケーション２７１１に、それぞれクライアント用スタブ２７２０、サーバ用スタブ２７１４として組み込む。
【０００９】
また開発時には、サーバアプリケーションの所在情報をサーバ２７０９内のＴＰモニタ
２７０４のデータベースである遠隔手続呼出所在管理部（ネーミングサービス）２７１７に登録する。
【００１０】
システム運用時、すなわちクライアント２７１０において、クライアントアプリケーション２７２２からサーバアプリケーション２７１１を呼び出して実行する際には、クライアント２７１０内の遠隔手続呼出クライアント機構２７１９が、遠隔手続呼出所在管理部（ネーミングサービス）２７１７からサーバアプリケーションの所在情報を取得し、該所在情報内のサーバアプリケーションのネットワークアドレスを元に、クライアントアプリケーション２７２２はクライアント用スタブ２７２０および遠隔手続き呼び出しクライアント機構２７１９を介して遠隔手続き呼び出しサーバ機構２７１８と接続する。
【００１１】
そしてＴＰモニタ２７０４内の振分機構２７１５は、所在情報内のサーバアプリケーション識別情報を元に、クライアント２７１０からサーバ２７０９への要求メッセージ（Ｒｅｑｕｅｓｔ）をサーバアプリケーション２７１１に対応したサーバ用スタブ２７１４に振り分ける。また、サーバアプリケーション２７１１はクライアント２７１０への応答メッセージ（Ｒｅｐｌｙ）を要求メッセージが送信されてきた同経路にてクライアントアプリケーション２７２２へ返答する。尚、開発時のインタフェース定義情報２７０５とシステム運用時のインタフェース定義情報２７１３は同一性を有するものであるが、開発時と運用時の説明をするために図２８のように描いた。
【００１２】
このように、サーバ用スタブ２７１４、クライアント用スタブ２７２０はＩＤＬ定義の入出力パラメタを含む要求メッセージ、応答メッセージなどの通信メッセージを変換（エンコード／デコード）し、伝達する。
【００１３】
しかしながら図２９に示すように、応答メッセージについては、スタブからクライアントアプリケーションに出力パラメタが通知される際に、クライアントアプリケーションが実際に参照するか否かに関わらず、クライアント用スタブは全パラメタを自動的に変換（デコード）するため、出力パラメタ数に比例してパラメタを変換（デコード）する処理のオーバヘッドが増大し、処理の実行性能を低下させてしまうという問題がある。
【００１４】
そこで、遠隔手続呼び出しメッセージ間の変換、特に出力パラメタの変換（デコード）については、クライアントアプリケーションが参照したパラメタのみに限定して変換処理を実行し、処理実行時の性能の向上を図ることが望まれる。
【００１５】
ところで、特許文献１には、クライアントアプリケーションで使用する遠隔手続きについてのみ遠隔手続呼出プログラムを生成することによりクライアント側のコード量を削減し、プログラムのロードに必要なメモリ量を節約する技術が開示されている。クライアントアプリケーションが使用しないクライアントスタブを予め生成指定定義で定義し、当該スタブの生成を迂回することでコード量を削減する（削減単位はスタブ）。この従来技術は、クライアント側のコード量を削減するという技術である点で本発明と類似する。しかし、特許文献１は静的なプログラムサイズを削減するものであるが、本発明は実行時ステップの削減を目指すものであり、コード量削減と言っても内容は異なるものであるといえる。また特許文献１にはクライアントの実行ステップを削減することで、プログラムの実行時性能を改善することについては記載されていない。本発明ではクライアントアプリケーションから出力パラメタが参照されることによって呼び出される、当該出力パラメタの取得処理の延長でデコードを実行し、参照されないパラメタのデコードを迂回する（削減単位はパラメタ）。
【００１６】
また、本発明に関連する従来技術に係る文献としては、上記特許文献１のほかに下記特許文献２および特許文献３がある。
特許文献２および本発明は、遠隔手続呼出において、利用形態が異なる場合でもクライアントからサーバを同一のインタフェースで呼び出せる特長（以下、共通Ｉ／Ｆ性）を有する点で共通する。特許文献２では該特長が課題および課題解決の効果そのものに関係し、共通Ｉ／Ｆ性は、業務処理要求手段というミドルウェア利用の違いを隠蔽・カプセル化する手段、及びミドルウェア内に違いを吸収する手段を装備することで実現している。一方、本発明は該特長が狙いではなく、実行時の性能を改善するという目的を解決する実現方法として共通Ｉ／Ｆ性の特長を有するだけのことであり、本発明の共通Ｉ／Ｆ性は、サーバの処理結果内の全パラメタをカプセル化したデータクラスにより課題（性能改善）を解決することによるものである。よって本発明は特許文献２記載の技術とは異なっている。
【００１７】
特許文献３および本発明は、遠隔手続呼出におけるエンコード／デコード、すなわち、引数・処理結果を、データ領域を介して受け渡す処理に関係する技術である点で共通する。しかしながら、特許文献３では、ガーベージコレクションにおける領域の回収漏れを防止することを目的とし、クライアント側とサーバ側で同じ構造の分散領域管理装置を装備し、相互に情報をやり取りすることで目的を達成しているが、本発明は、不要なデコード処理を迂回し実行時性能を改善するということを目的とし、該目的をパラメタのカプセル化により達成し、クライアント側の処理のみで目的を実現している点で異なっている。
【特許文献１】特開平６−６７８６５号公報
【特許文献２】特開２００４−２４０８９０号公報
【特許文献３】特開平６−７５８８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
上述のことから本発明の課題は、クライアントアプリケーションがサーバアプリケーションを遠隔手続呼出して実現されるシステムにおいて、通信メッセージのやり取りにおける出力パラメタのデータ変換を必要な出力パラメタに限定して行い、従来方式における出力パラメタのデータ変換によるオーバヘッドを縮小し、実行性能を向上させる装置及び方法を提供することにある。
【課題を解決するための手段】
【００１９】
上述の課題を解決するために、本発明では、サーバとクライアント間のインタフェースに基づいて定義された入出力データクラスをクライアントアプリケーションに組み込み、クライアントアプリケーションが遠隔手続呼び出しによりサーバアプリケーションを呼び出す場合に、当該入出力データクラスのインタンスである入出力データオブジェクトを生成するように構成した。そして、クライアントがサーバから応答メッセージを受信した際には、出力パラメタのデータ変換は行わずに、そのまま出力データオブジェクトのデータ領域に転送し、その後クライアントアプリケーションが出力パラメタを参照したときに、該当する出力データオブジェクトのパラメタの取得処理が呼び出されて、該取得処理により必要な出力パラメタのみがデータ変換されて、クライアントアプリケーションに参照された出力パラメタの値が返されるように構成した。
【００２０】
このように構成することで、サーバアプリケーション呼出時の入出力パラメタを入出力データオブジェクトでカプセル化してやり取りすることが可能で、また、出力パラメタのデータ変換はクライアントアプリケーションによって参照された出力パラメタだけに限定可能である。
【発明の効果】
【００２１】
本発明によれば、遠隔手続呼出によるサーバアプリケーション呼出時の入出力パラメタを入出力データオブジェクトでカプセル化してやり取りすることが可能である。また、出
力パラメタのデータ変換処理は、クライアントアプリケーションから出力パラメタが参照された際に、該当する出力データオブジェクトのパラメタの取得処理が呼び出されて実行されるため、従来のデータ変換処理におけるオーバヘッドを削減可能であり、これにより実行時の性能を向上させることができる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して、本発明の実施の形態について説明する。
図１に本発明の遠隔手続呼出方式の概要を示す。
システムは、サーバ１とクライアント２とから構成される。
【００２３】
クライアント２は、クライアントアプリケーション２１、サービスアダプタ手段２２、デコード手段２３、遠隔手続呼出機構２４、通信手段２５を含み、サーバ１は、サーバアプリケーション１１、代表オブジェクト手段１２、遠隔手続呼出機構１３、通信手段１４を含む。
【００２４】
サービスアダプタ手段２２は、遠隔手続呼出機構に対して入出力データクラスでサーバアプリケーションを呼び出すもので、クライアント２に１個存在する。
代表オブジェクト手段１２は、サービスアダプタ手段２２のサービス要求に対して、サーバアプリケーションの遠隔手続き呼び出しに必要な所在情報の定義量をサーバ単位でルーティングするサーバアプリケーション振分機構を含み、またサーバアプリケーションの所在情報を有するもので、サーバ１に１個存在する。
【００２５】
また通信手段１４、２５はサーバ１、クライアント２にそれぞれ存在するもので、サービスアダプタ手段と代表オブジェクト手段との間で、入出力データクラスに定義される入出力パラメタのデータ型には依存しない、１個のデータ型による通信を実現するものである。
【００２６】
そして、デコード手段２３は、クライアント２におけるサービス要求に対するサーバ１からの応答メッセージのデコードをクライアントアプリケーション２１が参照したパラメタの範囲に限定してデータ変換を行い出力するものである。
【００２７】
これにより、遠隔手続呼出を用いてクライアントアプリケーションがサーバアプリケーションを呼び出す際に、出力パラメタのデータ変換をクライアントアプリケーションが参照したパラメタの範囲に限定することが可能であり、従来のデータ変換におけるオーバヘッドを改善することが可能である。
【００２８】
次に、図２に本発明の実施の形態を示す。図２は、遠隔手続呼出によりサーバアプリケーションをクライアント上で実行するシステムである。
図２には、開発環境１０１と運用環境１０２をともに示している。
【００２９】
まず、アプリケーション開発時、開発環境１０１においてクライアント１０８とサーバ１０７上のアプリケーション間のインタフェース定義情報１０５から、インタフェース定義変換手段１０６により、入出力データクラス１０３を生成する。生成された入出力データクラス１０３を、クライアントアプリケーション１２１に入力データクラス１２２、出力データクラス１２３として組み込む。クライアントアプリケーション１２１が複数のサーバアプリケーション１０９を呼び出す場合、クライアントアプリケーション１２１には複数の入出力クラスが組み込まれる。また、サーバ用スタブ１１２もインタフェース定義変換手段１０６で生成し、サーバアプリケーション１０９に組み込む。
【００３０】
システム運用時、システムはサーバ１０７とクライアント１０８で構成される。
サーバ１０７は、サーバアプリケーション１０９とＴＰモニタ１０４から成る。更に、サーバアプリケーション１０９は、アプリケーションの主部である利用者作成プログラム１１０と、インタフェース定義情報１１１と、サーバ用スタブ１１２とから成り、ＴＰモニタ１０４は、遠隔手続呼出所在管理手段（ネーミングサービス）１１５と、サーバアプリケーション管理手段１１４と、振分手段１１３と、遠隔手続呼出サーバ手段１１６とから成る。尚、開発時のインタフェース定義情報１０５とシステム運用時のインタフェース定義情報１１１は同一性を有するものであるが、開発時と運用時の説明をするために図２のように描いた（後述の図３についても同様である）。
【００３１】
一方、クライアント１０８は、クライアントアプリケーション１２１と、サービスアダプタ１１８、遠隔手続呼出クライアント手段１１７とから成る。
クライアントアプリケーション１２１は、開発時に生成された入力データクラス１２２と、出力データクラス１２３と、アプリケーションの主部である利用者作成プログラム１２４とから成る。
【００３２】
また、サービスアダプタ１１８は、遠隔手続呼出ラッピング手段１１９と、データ変換手段１２０とから成る。遠隔手続呼出ラッピング手段１１９は、従来のクライアント用スタブ処理を含み、クライアントアプリケーション１２１とサーバアプリケーション１０９の通信を行うための処理を行う。データ変換手段１２０は、入出力パラメタのデータ変換処理を行う。
【００３３】
なお、サービスアダプタ１１８は、クライアント１０８に１個存在し、サーバ１０７及びクライアント１０８双方の遠隔手続呼出手段１１６、１１７に対して、クライアントアプリケーション１２１としての位置づけで動作するものである。
【００３４】
図２に示したシステム構成において、遠隔手続呼出ラッピング手段１１９とデータ変換手段１２０を備えたサービスアダプタ１１８と、入力データクラス１２２および出力データクラス１２３により、遠隔手続呼出の通信メッセージの変換における従来のオーバヘッドを縮小する、という課題を解決する。すなわち、データ変換手段１２０における出力パラメタのデータ変換は、出力データオブジェクトのパラメタの取得処理が呼ばれた時に、該当するパラメタのみを対象として実行されるような構成であるため、従来のデータ変換処理における無駄な処理を省略可能である。
【００３５】
尚、図１と図２の各部対応は、次のようになる。図１のサービスアダプタ手段２２は、図２のサービスアダプタ１１８に対応し、図１に代表オブジェクト手段１２は図２には明示していないがTPモニタ１０４に含まれるものであり、図１の通信手段は図２には明示しないが通信を実現するためのクライアントとサーバ間の通信インタフェースに対応し、図１のデコード手段２３は図２のデータ変換手段１２０に対応する。
【００３６】
次に、図２のシステムのフローを、図３を参照しながら詳細に説明する。
まず、クライアントアプリケーション１２１内の利用者作成プログラム１２４は、サーバアプリケーション１０９の呼び出しに先立ち、（１）サービスアダプタ１１８のインスタンスを生成する。
【００３７】
（１）で呼び出されたサービスアダプタクラスの処理では、（２）インスタンスを生成し、（３）遠隔手続呼出所在管理手段（ネーミングサービス）１１５からサーバアプリケーションの所在情報を取得して、呼出元に制御を返す。
【００３８】
次に利用者作成プログラム１２４では、（４）入力データオブジェクトを生成し、これにより（５）インスタンスが生成される。
次に、利用者作成プログラム１２４は、（６）入力パラメタを設定する。（７）入力パラメタ設定処理は、入力データオブジェクトの入力パラメタ設定処理が呼び出されることによって動作する。該入力パラメタ設定処理は、サービスアダプタ１１８のデータ変換手段１２０における（８）の「入力パラメタ変換」を呼び出して、入力パラメタを変換して、変換された値を設定する。
【００３９】
更に、利用者作成プログラム１２４は、（９）で出力データオブジェクトを生成し、これにより（１０）出力データクラスのインスタンスが生成される。クライアントアプリケーション１２１は、（１１）で入出力オブジェクトを指定して、サーバアプリケーション１０９の呼び出しを依頼する。
【００４０】
サービスアダプタ１１８の遠隔手続呼出ラッピング手段１１９では、（１２）クライアントからの要求を伝える通信メッセージである、要求メッセージの作成、（１３）要求メッセージの送信、（１４）サーバからの応答を伝える通信メッセージである応答メッセージ受信、（１５）応答メッセージからの出力パラメタ抽出、の順に処理を実行して、依頼元に制御を返す。
【００４１】
利用者作成プログラム１２４が、（１６）で出力パラメタを参照するために、出力データオブジェクトの出力パラメタ取得処理が呼び出され、（１７）の出力パラメタ取得処理が動作する。（１７）の取得処理は、サービスアダプタ１１８のデータ変換手段１２０における（１８）出力パラメタ変換を呼び出して、求める出力パラメタのみをデータ変換して、利用者作成プログラム１２４に戻すものである。
【００４２】
以上のようなフローにより図２に示したシステムは動作するが、アプリケーションが参照した出力パラメタをデータ変換処理するという図３の（１５）〜（１８）の処理について、図４を参照してより詳細に説明する。
【００４３】
出力データオブジェクトのデータ領域は、受信した応答メッセージの出力パラメタをそのまま格納するバイト列型のデータ領域と、当該出力データオブジェクトが呼出元とパラメタをやり取りするための出力パラメタ本来のデータ型であるデータを格納する、出力パラメタデータ型のデータ領域を備える。
【００４４】
図４の応答メッセージ内の各出力パラメタ部分からバイト列型のデータ領域への実線矢印３０１が示すように、「（１５）出力パラメタ抽出」では、「（１４）応答メッセージ受信」で遠隔手続呼出クライアント手段１１７を経由して受け渡された応答メッセージの出力パラメタを、出力データオブジェクトのデータ領域内のバイト列型のデータ領域（出力パラメタ１−バイト列域〜出力パラメタＮ−バイト列域）に複写する。
【００４５】
また図４のバイト列型のデータ領域（出力パラメタ１−バイト列域など）からパラメタデータ型のデータ領域への点線矢印３０２で示すように、利用者作成プログラム１２４が（１６）出力パラメタを参照すると、出力データオブジェクトにおける該当するパラメタの（１７）取得処理が呼び出される。当該取得処理では（１８）出力パラメタ変換処理が実行され、バイト列型のデータ領域のデータが当該パラメタのデータ型に応じたデータに変換されてパラメタデータ型データ領域に格納される。
【００４６】
尚、図３の「（１８）出力パラメタ変換処理」は、利用者作成プログラム１２４が出力パラメタ参照を実行した契機（図３の（１６））においてのみ実行される。すなわち、利用者作成プログラム１２４が参照しなかったパラメタについては、出力データオブジェクトのデータ領域のうち、バイト列型のデータ領域には情報が格納されているが、出力パラメタデータ型のデータ領域には情報が格納されていない状態のままとなる。
【００４７】
更に、図５に、出力パラメタのデータ変換に関係する、応答メッセージ、出力データクラス、出力データオブジェクトのデータ構造を示し、処理の詳細を説明する。
まず、出力データクラス４０１はクラス名、データ部、処理部から構成され、データ部は、バイト列型のデータ領域（図５の出力データクラス４０１内のパラメタ１バイト列、パラメタ２バイト列など）と、パラメタ本来のデータ型であるパラメタデータ型データ領域（図５の出力データクラス４０１内のパラメタ１、パラメタ２など）とからなり、処理部は、インスタンス生成するメソッド、各パラメタを設定するメソッド、各パラメタを取得するメソッド、バイト列型データを複写するメソッドなどから成る。
【００４８】
出力データオブジェクト４０３は、出力データクラス４０１のインスタンスであり、図５のインスタンス化時（４０４の矢印）に、クライアントを実現する情報処理装置のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶領域に、出力データクラス４０１のデータ部に対応するデータ領域を割り当てることと、クラスの処理部に対応するプログラムを図５の出力データオブジェクト４０３に示されるプログラム領域にローディングすることが実行される。出力データオブジェクト４０３のデータ領域では、それぞれのパラメタに対して、パラメタのバイト列型データが格納されるバイト列型データ領域と、パラメタのデータそのものが格納されるパラメタデータ型データ領域とが割り当てられる。尚、図５のインスタンス化（矢印４０４）は、図３の「（１０）インスタンス生成」に対応する。
【００４９】
また、サーバからクライアントへの応答である応答メッセージ４０２は、処理が正常終了したかエラー終了したか等の処理結果を含む出力ヘッダ部と、出力パラメタ部とから成る。出力パラメタ部は、出力データクラス４０１の各パラメタに対応したバイト列型のデータが順に並んだ構造である。よって、応答メッセージ受信時に実行される、図３の「（１５）パラメタ抽出」は、応答メッセージ４０２の格納されている記憶領域のうち出力パラメタ部分を、順に出力データオブジェクト４０３のデータ領域のバイト列型データ領域に複写するだけである（図５の矢印４０５）。
【００５０】
次に、利用者作成プログラム１２４が出力パラメタを参照（図３の「（１６）出力パラメタ参照」）すると、出力データオブジェクト４０３内の出力パラメタが変換される。すなわち、利用者作成プログラム１２４が出力データオブジェクト４０３におけるパラメタ参照用の処理（各パラメタの取得メソッド）を呼び出す参照依頼をした契機で出力パラメタのデータ変換が行われる。各出力パラメタの取得メソッドには、当該パラメタのデータ型に関する情報が埋め込まれているとともに、該メソッドは出力データオブジェクト内の当該パラメタのバイト列型データ領域を把握している。各出力パラメタの取得メソッドは、当該パラメタのデータ型に関する情報と、出力データオブジェクト内の求めるパラメタのバイト列型データ領域とパラメタデータ型データ領域に対応する記憶領域のアドレスを指定して、サービスアダプタ１１８のデータ変換手段１２０における出力パラメタ変換処理を呼び出す。そして、バイト列型のデータが、パラメタデータ型のデータに変換されて、パラメタデータ型データ領域に格納される。利用者作成プログラム１２４には、出力データオブジェクトのパラメタデータ型データ領域に格納された値が返される。
【００５１】
以上、図２〜図５を参照し、本発明の実施の形態について説明した。本発明によれば、クライアントアプリケーションからサーバアプリケーションを呼び出す際に、入出力パラメタは入出力データクラスによりカプセル化される。そして、クライアントアプリケーションが出力パラメタを参照したときに、参照したパラメタに限定してデータ変換処理を行う。従来はクライアント用スタブにより無条件に全出力パラメタがデータ変換されてしまい、データ変換処理によるオーバヘッドにより実行時のシステム性能が大きく低下してしまうという問題があったが、本発明によれば、当該問題を解決することが可能である（図
６参照）。
【００５２】
次に、具体的な実施例としてオンライン株取引システムについて示す。
図７にシステム構成を示す。
本オンライン株取引システムは、本システムの口座に登録し、クライアント端末装置からサーバ端末装置にアクセスするユーザに対して、株式の購入、売却および株価の参照や持ち株の参照などのサービスを提供するものである。
【００５３】
システムはサービスを提供する側であるサーバ６０１およびサービスを受けるユーザ側であるクライアント６０２から構成される。
サーバ６０１は、ＴＰモニタ６０３およびサーバアプリケーション６０８とからなる。ＴＰモニタ６０３は遠隔手続呼出サーバ機構６１０、振分機構６０９を備える。サーバアプリケーション６０８はＴＰモニタ６０３配下で動作し、株式購入６０８−１、株式売却６０８−２、株価参照６０８−３、持株参照６０８−４などの処理を実行する。サーバアプリケーション６０８は他にも口座開設処理や口座更新処理など様々なサービスを提供するが、ここでは省略している。また、サーバアプリケーション６０８は、処理を行う際に、口座テーブル６０４、銘柄テーブル６０５、持株テーブル６０６、取引テーブル６０７などのデータベースを参照して処理を実行する。
【００５４】
クライアント６０２は、サーバ側の遠隔手続呼出サーバ機構６１０に対応する遠隔手続呼出クライアント機構６１３、サービスアダプタ６１２、クライアントアプリケーション６１１からなる。ユーザ６１４は、クライアント６０２で動作するクライアントアプリケーション６１１を介してサービスを受ける。ユーザ６１４がクライアント６０２に入力する指示要求や入力データは、クライアント６０２から要求メッセージなどの通信メッセージとして、サービスアダプタ６１２、遠隔手続呼出機構６１３、６１０、ＴＰモニタ６０３を介してサーバ６０１に伝達され、処理結果も同様にサーバ６０１からクライアント６０２に対して応答メッセージとして返信される。
【００５５】
尚、クライアント６０２やサーバ６０１は、例えば図８に示す情報処理装置（コンピュータ）７００においてクライアントアプリケーション６１１、サービスアダプタ６１２、遠隔手続呼出機構６１０、６１３、振分機構６０９、ＴＰモニタ６０３、サーバアプリケーション６０８などのプログラムを実行することによって実現される。
【００５６】
情報処理装置７００は、ＣＰＵ７０１、メモリ７０２、入力装置７０３、出力装置７０４、外部記憶装置７０５、媒体駆動装置７０６、及びネットワーク接続装置７０７を備え、それらはバス７０８により互いに接続されている。
【００５７】
メモリ７０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を含み、上記クライアント６０２やサーバ６０１を実現するためのプログラムやデータを格納する。
【００５８】
ＣＰＵ７０１は、メモリ７０２を利用してプログラムを実行することにより、サーバ６０１やクライアント６０２を実現する。
入力装置７０３は、例えば、キーボード、ポインティングデバイス、タッチパネル等でありユーザからの指示や情報の入力に用いられる。出力装置７０４は、例えばディスプレイやプリンタ等であり、情報処理装置７００のユーザへの問い合わせ、処理結果等の出力に用いられる。
【００５９】
外部記憶装置７０５は、例えば磁気ディスク装置、光ディスク装置、光磁気ディスク装置等である。この外部記憶装置７０５にプログラムとデータを保存しておき、必要に応じ
て、それらをメモリ７０２上にロードして使用することもできる。
【００６０】
媒体駆動装置７０６は、可搬記録媒体７０９を駆動し、その記録内容にアクセスする。可搬記録媒体７０９としては、メモリカード、メモリスティック、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ、光ディスク、光磁気ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等、任意のコンピュータで読み取り可能な記録媒体が用いられる。この可搬記録媒体７０９にプログラムとデータを格納しておき、必要に応じて、それらをメモリ７０２にロードして使用することもできる。
【００６１】
ネットワーク接続装置７０７は、ＬＡＮ，ＷＡＮ等の任意のネットワーク（回線）を介して外部の装置と通信し、通信に伴うデータ変換を行う。また、必要に応じて、プログラムとデータを外部装置から受け取り、それらをメモリ７０２にロードして使用することもできる。
【００６２】
以下、図８の情報処理装置７００により図７のように構成されるオンライン株取引システムの処理の詳細について、株価を参照する際の処理を例に説明する。
「株価参照」サービスでは、ユーザ６１４がクライアント６０２に入力した銘柄ＩＤをキーにして、株価参照のサーバアプリケーション６０８−３が銘柄テーブル６０５を検索し、クライアントアプリケーション６１１が該当する銘柄の銘柄名、現在の株価、最高値、最低値などの情報をディスプレイなどに表示する。
【００６３】
まず、図７には不図示の開発環境において「株価参照」のインタフェース定義情報からインタフェース定義変換ツールなどにより生成される「株価参照」の入出力データクラスのデータ構造を図９、図１０に示す。
【００６４】
図９は「株価参照」用入力データクラスを示しており、クラス名が「ＲｅｆＶａｌｕｅＩｎｐｕｔ（株価参照入力データ）」で、データ部は整数型のデータであるｉｄと、該ｉｄのバイト列型のデータであるｉｄ＿ｂｙｔｅとから成り、処理部はｎｅｗメソッドと、ｓｅｔＩｄメソッドと、ｇｅｔＩｄとから成り、その詳細は以下のとおり。
【００６５】
・ｉｄには、ユーザが参照する株の銘柄を指定するために入力したデータで、整数型のデータが格納される。
・ｉｄ＿ｂｙｔｅには、サーバにｉｄを送信する際に、整数型のデータであるｉｄをバイト列型のデータに変換したデータが格納される。
【００６６】
・ｎｅｗメソッドは、当該クラスのインスタンスを作成するためのメソッドである。
・ｓｅｔＩｄメソッドは、銘柄ＩＤ設定処理を行うメソッドである。
・ｇｅｔＩｄメソッドは、銘柄ＩＤ取得処理を行うメソッドである。
【００６７】
また、図１０は「株価参照」用出力データクラスを示しており、クラス名が「ＲｅｆＶａｌｕｅＯｕｔｐｕｔ（株価参照出力データ）」で、データ部は文字列型のデータであるｎａｍｅと、バイト列型のデータであるｎａｍｅ＿ｂｙｔｅと、実数型のデータであるｃｕｒｒｅｎｔと、バイト列型のデータであるｃｕｒｒｅｎｔ＿ｂｙｔｅと、実数型のデータであるｈｉｇｈと、バイト列型のデータであるｈｉｇｈ＿ｂｙｔｅと、実数型のデータであるｌｏｗと、バイト列型のデータであるｌｏｗ＿ｂｙｔｅとから成り、処理部は、ｎｅｗメソッドと、ｃｏｐｙメソッドと、ｓｅｔＮａｍｅメソッドと、ｇｅｔＮａｍｅメソッドと、ｓｅｔＣｕｒｒｅｎｔメソッドと、ｇｅｔＣｕｒｒｅｎｔメソッドと、ｓｅｔＨｉｇｈメソッドと、ｇｅｔＨｉｇｈメソッドと、ｓｅｔＬｏｗメソッドと、ｇｅｔＬｏｗメソッドと、とから成り、その詳細は以下のとおり。
【００６８】
・ｎａｍｅには、アプリケーションに伝達する際の、株価の銘柄名を示す文字列が格納される。
・ｎａｍｅ＿ｂｙｔｅには、サーバから受信する応答メッセージのうち、銘柄名に対応するバイト列型のデータが格納される。
【００６９】
・ｃｕｒｒｅｎｔには、アプリケーションに伝達する際の、株価の現価格を示す実数型のデータが格納される。
・ｃｕｒｒｅｎｔ＿ｂｙｔｅには、サーバから受信する応答メッセージのうち、現価格に対応するバイト列型のデータが格納される。
【００７０】
・ｈｉｇｈには、アプリケーションに伝達する際の、株価の最高値を示す実数型のデータが格納される。
・ｈｉｇｈ＿ｂｙｔｅには、サーバから受信する応答メッセージのうち、株価の最高値に対応するバイト列型のデータが格納される。
【００７１】
・ｌｏｗには、アプリケーションに伝達する際の、株価の最低値を示す実数型のデータが格納される。
・ｌｏｗ＿ｂｙｔｅには、サーバから受信する応答メッセージのうち、株価の最低値に対応するバイト列型のデータが格納される。
【００７２】
・ｎｅｗメソッドは、当該クラスのインスタンスを作成するためのメソッドである。
・ｃｏｐｙメソッドは、サーバから受信した応答メッセージ内の出力パラメタ部分を当該出力データオブジェクトのデータ部のバイト列型のデータ領域に転送するメソッドである。
【００７３】
・ｓｅｔＮａｍｅメソッドは、銘柄名設定処理を行うメソッドである。
・ｇｅｔＮａｍｅメソッドは、銘柄名取得処理を行うメソッドである。
・ｓｅｔＣｕｒｒｅｎｔメソッドは、現価格設定処理を行うメソッドである。
【００７４】
・ｇｅｔＣｕｒｒｅｎｔメソッドは、現価格取得処理を行うメソッドである。
・ｓｅｔＨｉｇｈメソッドは、最高値設定処理を行うメソッドである。
・ｇｅｔＨｉｇｈメソッドは、最高値取得処理を行うメソッドである。
【００７５】
・ｓｅｔＬｏｗメソッドは、最低値設定処理を行うメソッドである。
・ｇｅｔＬｏｗメソッドは、最低値取得処理を行うメソッドである。
図９、図１０に示すように、実際の入出力パラメタｉｄ、ｎａｍｅ、ｃｕｒｒｅｎｔ、ｈｉｇｈ、ｌｏｗなどに対応して、当該パラメタのバイト列型のデータを組にしてデータ管理を行う点に特徴がある。
【００７６】
実際の入出力パラメタ、すなわちｉｄ、ｎａｍｅ、ｃｕｒｒｅｎｔ、ｈｉｇｈ、ｌｏｗなどのパラメタデータ型データは、入出力データオブジェクトが呼出元とデータをやりとりするためのデータで、また、バイト列型のデータは、ネットワークを介してクライアントアプリケーションとサーバアプリケーションが送受信するメッセージを構成するためのデータである。
【００７７】
出力データクラスのインスタンスである出力データオブジェクトにおいて、サーバから受信する応答メッセージに含まれる出力パラメタに対応する部分をバイト列型のデータのまま保管しておき、クライアントアプリケーションから必要なパラメタの参照が依頼されるまで、当該パラメタデータのデコード処理（データ型変換やコード変換など）を遅延さ
せる（後述参照）。
【００７８】
こうして生成された入出力データクラスは、クライアントアプリケーション６１１に入力データクラス６１５、出力データクラス６１６として組み込まれる。
次に、図７のサービスアダプタ６１２を実現するサービスアダプタクラスのデータ構造を図１１に示す。
【００７９】
サービスアダプタクラスは、クラス名が「ＳｅｒｖｉｃｅＡｄａｐｔｅｒ」で、データ部は文字列型のｏｂｊｎａｍｅと、バイト列型のｒｅｆｅｒｅｎｃｅと、文字列型のａｐｌｎａｍｅと、入力データオブジェクト型のｉｎｐｕｔと、出力データオブジェクト型のｏｕｔｐｕｔとからなり、処理部はｎｅｗメソッドと、ｉｎｖｏｋeメソッドと、ｓｅｔＯｂｊｎａｍｅメソッドと、ｓｅｔＡｐｌｎａｍｅメソッドと、ｓｅｔＩｎｐｕｔメソッドと、ｓｅｔＯｕｔｐｕｔメソッドから成り、詳細は下記のとおり。
【００８０】
・ｏｂｊｎａｍｅには、サーバオブジェクト名が格納される。
・ｒｅｆｅｒｅｎｃｅには、サーバの所在情報が格納される。
・ａｐｌｎａｍｅには、アプリケーション名が格納される。
【００８１】
・ｉｎｐｕｔには、入力データオブジェクトが設定される。
・ｏｕｔｐｕｔには、出力データオブジェクトが設定される。
・ｎｅｗメソッドは、当該クラスのインスタンスを作成するためのメソッドである。
【００８２】
・ｉｎｖｏｋeメソッドは、サーバアプリケーションの呼び出し依頼処理をするためのメソッドである。
・ｓｅｔＯｂｊｎａｍｅメソッドは、サーバオブジェクト名設定処理を行うメソッドである。
【００８３】
・ｓｅｔＡｐｌｎａｍｅメソッドは、アプリケーション名設定処理を行うメソッドである。
・ｓｅｔＩｎｐｕｔメソッドは、入力データオブジェクト設定処理を行うメソッドである。
【００８４】
・ｓｅｔＯｕｔｐｕｔメソッドは、出力データオブジェクト抽出処理を行うメソッドである。
次に、図７〜図１１に示したように構成されるオンライン株取引システムにおいてユーザが株価参照を要求した場合に、システムが当該要求を処理し、処理結果をユーザに返すまでのシステムフローを図１２に示す。すなわち、ユーザはＳＩでクライアント６０２を用いてオンライン株取引システムに接続し、ＳIIで株価参照を選択し、ＳIIIで、株価参照画面で株の銘柄ＩＤを入力し表示情報として銘柄名と現価格を選択し、ＳIVで株の銘柄名と現価格がディスプレイ等に表示される、という処理を行うまでのシステムフローである。
【００８５】
まず、ＳＩでユーザがオンライン株取引システムに接続する。
すると、クライアントアプリケーション６１１は、サーバアプリケーションの呼び出しに先立ち、（１）サービスアダプタインスタンスを生成する。これは、図１１に示したサービスアダプタクラスのｎｅｗメソッドにより実行される。
【００８６】
次に、（１）で呼び出されたサービスアダプタクラスのｎｅｗメソッドでは、（２）でインスタンスを生成し、図１１に示したクラスが図８のメモリ７０２にローディングされるとともに、（３）でネーミングサービス（図１２の所在管理部６２０）からサーバオブ
ジェクトの所在情報を取得して、呼出元、すなわちクライアントアプリケーション６１１に制御を返す。
【００８７】
次にＳIIでユーザが株価参照を選択すると、クライアントアプリケーション６１１は株の銘柄ＩＤなどを入力させるような画面をユーザ端末６１９に表示する。
そして、ＳIIIで、ユーザが銘柄ＩＤを入力し、表示情報として株の銘柄名と現価格を選択する。
【００８８】
すると（４）で「株価参照」用入力データオブジェクトが生成され、（５）で、「株価参照」用入力データクラスのｎｅｗメソッドにより、図９に示したクラスが図８のメモリ７０２にローディングされる。
【００８９】
そして（６）で、入力パラメタを設定するために、図９の入力パラメタ設定処理であるｓｅｔＩＤメソッドが呼び出され、（７）の銘柄ＩＤ設定処理が行われる。（７）の設定処理では、入力された株の銘柄ＩＤが図９のｉｄに設定されるとともに、（８）でサービスアダプタ６１２のデータ変換部６１８において銘柄ＩＤがバイト列型に変換されて、変換されたデータも図９のｉｄ＿ｂｙｔｅに設定される。
【００９０】
更に（９）で「株価参照」用出力データオブジェクトが生成され、（１０）で、「株価参照」用出力データクラスのｎｅｗメソッドにより、図１０に示したクラスが図８のメモリ７０２にローディングされる。
【００９１】
そして、（１１）で、「株価参照」用入出力データオブジェクトを指定して、図１１のサービスアダプタクラスのｉｎｖｏｋｅメソッドにより、サーバアプリケーション「株価参照」６０８−３の呼び出しを行う。
【００９２】
（１２）では、要求メッセージが作成される。図１３に「株価参照」要求メッセージの構造を示す。「株価参照」要求メッセージは、呼び出すサーバアプリケーションの名前を含む入力ヘッダ部と、参照する株の銘柄を指定する銘柄ＩＤを含む入力パラメタ部から成る。
【００９３】
図１４に示した、要求メッセージの作成の概要を参照して、「（１２）要求メッセージ作成」について説明する。
まず、要求メッセージの入力ヘッダ部に呼び出されたサーバアプリケーション「株価参照」が格納される。また、図１４に示すように、「株価参照」用入力データクラスからインスタンス化された「株価参照」用入力データオブジェクトのデータ領域には、図１２の（６）（７）により整数型の銘柄ＩＤとバイト列型の銘柄ＩＤが格納されており、これらのデータのうち、バイト列型の銘柄ＩＤが、要求メッセージの銘柄ＩＤが格納される入力パラメタ部に転送される。これにより「株価参照」要求メッセージが作成される。
【００９４】
そして図１２における（１２）の次に、（１３）で要求メッセージがサーバアプリケーション「株価参照」６０８−３に送信される。「株価参照」アプリケーション６０８−３では、銘柄テーブル６０５を参照して、銘柄ＩＤに基づいて、出力パラメタである銘柄名と、現価格と、最高値と、最低値とを取得し、応答メッセージを作成して、該応答メッセージをクライアント６０２に送信する。図１５に「株価参照」応答メッセージの構造を示す。「株価参照」応答メッセージは、処理結果を含む出力ヘッダ部と、銘柄名、現価格、最高値、最低値の出力パラメタを含む出力パラメタ部とから成る。
【００９５】
クライアント６０２では、サービスアダプタ６１２の（１４）で当該応答メッセージを受信し、（１５）で該応答メッセージから出力パラメタを抽出する。
ここで図１６を参照して、「（１５）出力パラメタの抽出」について説明する。
【００９６】
図１６に示すように、「株価参照」用出力データクラスからインスタンス化された「株価参照」用出力データオブジェクトは、図１０に示したデータ領域を備えている。そして、応答メッセージを受信すると、出力パラメタを含む出力パラメタ部から順に銘柄名データ、現価格データ、最高値データ、最低値データを、出力データオブジェクトのバイト列型のデータ領域に転送して格納する。（１５）の「出力パラメタの抽出」処理、すなわち図１０のｃｏｐｙメソッドは、応答メッセージ中のバイト列型の出力パラメタをそのまま出力データオブジェクトのバイト列型データ領域に転送するのみで、それ以上の処理は行わない。
【００９７】
そして、図１２の（１５）の後、制御はクライアントアプリケーション６１１に戻る。
次に、クライアントアプリケーション６１１は、ユーザが表示する情報として指定した「銘柄名」と「現価格」を参照するため、（１６）で必要な出力パラメタのみを参照する。
【００９８】
（１６）で、まず銘柄名の出力パラメタの参照がされると、（１７）では出力データオブジェクトのｇｅｔＮａｍｅメソッドにより、文字列型のｎａｍｅにデータが格納されているかチェックされ、データが格納されていない場合には、サービスアダプタ６１２のデータ変換部６１８により、（１８）の出力パラメタの変換処理が行われ、変換されたデータは出力データオブジェクトの文字列型のｎａｍｅに格納され、更に文字列型の銘柄名は呼出元に返される。尚、出力パラメタを参照したときに、すでにデータ変換されたデータが文字列型のｎａｍｅに格納されている場合には、ｇｅｔＮａｍｅメソッドはデータ変換処理を呼ばずに、そのままｎａｍｅのデータを呼出元に返す。同様に、（１６）で、現価格が参照されると、（１７）でｇｅｔＣｕｒｒｅｎｔメソッドにより、実数型のｃｕｒｒｅｎｔにデータが格納されているかチェックされ、データが格納されていない場合には、サービスアダプタ６１２のデータ変換部６１８により、（１８）の出力パラメタの変換処理が行われ、変換されたデータは出力データオブジェクトの実数型のｃｕｒｒｅｎｔに格納され、更に実数型の現価格データは呼出元に返される。
【００９９】
そして、ＳIVで、クライアントアプリケーション６１１により出力された銘柄名と株の現価格がユーザ端末に６１９出力され、一連の処理が終了する。
以上のように、本実施例によれば、サーバアプリケーション６０８から応答メッセージの受信後の（１５）出力パラメタ抽出の処理においては、応答メッセージ内の各出力パラメタが出力データオブジェクト内のバイト列型のデータ領域に転送されるがデータ変換は行われない。データ変換は、クライアントアプリケーション６１１が（１６）出力パラメタ参照により、出力データオブジェクトの「（１７）取得処理」を呼び出した際に、サービスアダプタ６１２の「（１８）データ変換」において実行される。上述の説明では、ユーザが表示情報として選択した銘柄名と現価格の出力パラメタについてのみデータ変換処理が実行されている。
【０１００】
従来方式ではクライアント用スタブが、サーバアプリケーションから応答メッセージを受信後、無条件に銘柄名、現価格、最高値、最低値の全出力パラメタをデータ変換してクライアントアプリケーションに通知していた。本発明では、上述のようにアプリケーションが参照した出力パラメタのみをデータ変換するため、従来方式における無駄なデータ変換処理を省略することが可能であり、システム実行時の性能を向上させることが可能である。
【０１０１】
以上のようにシステム全体のフローを詳細に説明したが、以下に図１２の（１）〜（１８）のステップのうち、入出力データオブジェクトを生成するステップ以外のステップに
ついてフローを示し、補足しておくことにする。
【０１０２】
まず、図１７に、図１２の（１）アダプタインスタンス生成の詳細フローを示す。
クライアントアプリケーション６１１は、（１）アダプタインスタンス生成の際、サーバオブジェクト名を指定して、サービスアダプタインスタンスの生成を依頼する。
【０１０３】
次に、図１８に、図１２の（２）インスタンス生成および（３）所在情報取得のフローを示す。Ｓ１７０１で、サービスアダプタ６１２はインスタンスを生成する（図１２の（２）に対応）。Ｓ１７０２で、サービスアダプタ生成依頼元から受け取ったサーバオブジェクト名をアダプタインスタンスに設定する（図１１のｏｂｊｎａｍｅにサーバオブジェクト名を設定）。Ｓ１７０３で、サーバオブジェクト名のオブジェクトの所在情報を、遠隔手続呼出のネーミングサービス（所在管理部６２０）から取得し、アダプタインスタンスに所在情報を設定する（図１１のｒｅｆｅｒｅｎｃｅに所在情報を設定）。
【０１０４】
図１９に、図１２の（６）入力パラメタ設定のフローを示す。
クライアントアプリケーション６１１は、（６）入力パラメタ設定の際、「株価参照」用入力データオブジェクトのｓｅｔＩｄメソッドを呼び出す。
【０１０５】
図２０に、図１２の（７）銘柄ＩＤ設定処理および（８）銘柄ＩＤ変換のフローを示す。Ｓ１９０１で「株価参照」用入力データオブジェクトの銘柄ＩＤに、入力パラメタ設定依頼元が指定した値を設定する（図９のｉｄに値を設定）。Ｓ１９０２で、サービスアダプタ６１２のデータ変換部６１８にて銘柄ＩＤのデータ型を整数型からバイト列型に変換する。Ｓ１９０３で、「株価参照」用入力データオブジェクトの銘柄ＩＤバイト列に変換した値を設定する（図９のｉｄ＿ｂｙｔｅに変換した値を設定）。
【０１０６】
図２１に、図１２の（１１）サーバアプリケーション「株価参照」呼出のフローを示す。Ｓ２００１で、サービスアダプタインスタンスに、アプリケーション名として「株価参照」を設定する（図１１のｓｅｔＡｐｌｎａｍｅメソッドにより、ａｐｌｎａｍｅに「株価参照」を設定））。Ｓ２００２で、サービスアダプタインスタンスに、「株価参照」用入力データオブジェクトを設定する（図１１のｓｅｔＩｎｐｕｔメソッドにより、ｉｎｐｕｔにＲｅｆＶａｌｕｅＩｎｐｕｔを設定）。Ｓ２００３で、サービスアダプタインスタンスにサーバアプリケーションの呼び出しを依頼する（図１１のｉｎｖｏｋｅメソッドによりサーバアプリケーション呼出を依頼する）。
【０１０７】
図２２に、図１２の（１２）要求メッセージ作成のフローを示す。Ｓ２１０１で、図８のメモリ７０２に、「株価参照」要求メッセージ用のバッファを獲得する。Ｓ２１０２で、バッファの入力ヘッダ部にサーバアプリケーション名である「株価参照」を設定する。Ｓ２１０３で、バッファの入力パラメタ部に「株価参照」用入力データオブジェクトのバイト列型の銘柄ＩＤを転送する。これにより「株価参照」要求メッセージが作成される。
【０１０８】
図２３に、図１２の（１３）要求メッセージ送信のフローを示す。Ｓ２２０１で、遠隔手続呼出クライアント機構（図７の６１３）に対して、サービスアダプタインスタンスの所在情報に存在するサーバオブジェクトとの接続を依頼する。Ｓ２２０２で、遠隔手続き呼出クライアント機構６１３に対して、サーバオブジェクトとの接続により要求メッセージの送信を依頼する。これにより、要求メッセージをサーバアプリケーションに送信する。
【０１０９】
図２４に、図１２の（１４）応答メッセージ受信および（１５）出力パラメタ抽出のフローを示す。Ｓ２３０１で、「株価参照」応答メッセージを受信し、応答メッセージ用に確保されたバッファに受信したメッセージを格納する。Ｓ２３０２で、「株価参照」用出
力データオブジェクトのバイト列型の銘柄名、現価格、最高値、最低値データが格納されるバイト列型データ領域に、応答メッセージが格納されたバッファから、銘柄名データ、現価格データ、最高値データ、最低値データのデータを転送する（図８のｃｏｐｙメソッド）。
【０１１０】
図２５に、図１２の（１６）出力パラメタ参照および（１７）取得処理および（１８）出力パラメタ変換のフローを示す。Ｓ２４０１で、クライアントアプリケーション６１１が出力パラメタＸＸＸＸ（ＸＸＸＸは、銘柄名、現価格、最高値、最低値のいずれでもよい）の参照を依頼する（図１２の（１６））。Ｓ２４０２で、対応する出力パラメタＸＸＸＸを取得するメソッドにより、「株価参照」用出力データオブジェクトのパラメタデータ型データ領域に、該出力パラメタＸＸＸＸの変換されたデータが格納済みか否かのチェックが行われる（図１２の（１７））。まだ格納されていないなら、Ｓ２４０３に進み、「株価参照」用出力データオブジェクトの出力パラメタＸＸＸＸのバイト列型のデータを、バイト列型から当該パラメタデータ型に変換する（図１２の（１８））。尚、当該パラメタデータ型とは、当該出力パラメタが銘柄名の場合は文字列であり、当該パラメタが現価格、最高値または最低値の場合は実数である。すなわち、出力データオブジェクトが呼出元とやりとりするデータ型のことである。そして、Ｓ２４０４で、変換されたデータを出力パラメタＸＸＸＸのパラメタデータ型データ領域に格納する（図１２の（１７））。Ｓ２４０２およびＳ２４０４の後は、Ｓ２４０５で、出力パラメタＸＸＸＸのパラメタデータ型データ領域に格納されているデータを出力パラメタ参照元に通知する（図１２の（１７））。
【０１１１】
以上のように、本発明の実施例について詳細に説明したが、本実施例のシステムを構成するサーバ６０１およびクライアント６０２は、上述に説明したフローを実現したプログラムが、コンピュータなどの情報処理装置上で実行されることによって実現される。図２６は、当該プログラムが情報処理装置にローディングされる様々な方法を示したものである。
【０１１２】
（ａ）は、情報処理装置２５００のハードディスクなどの外部記憶装置に格納されたプログラムやデータ２５０１を情報処理装置２５００がローディングする方法を示したものである。
【０１１３】
（ｂ）は、ＣＤ−ＲＯＭやＤＶＤなどの可搬型の記憶媒体に記録されたプログラムやデータ２５０３が、情報処理装置２５００の媒体駆動装置を介してローディングする方法を示したものである。
【０１１４】
（ｃ）は、ネットワークなどの回線を介して、情報提供者が提供するプログラムやデータ２５０２を、情報処理装置２５００の通信装置を介してローディングする方法を示したものである。
【０１１５】
以上のことから本発明は、上述の本発明の原理構成や実施例に示した各構成によって実現される機能と同様の機能をコンピュータなどの情報処理装置に行わせるためのプログラムとして構成することも可能である。また、本発明は、コンピュータなどの情報処理装置により使用されたときに、上述の本発明の原理構成や実施例に示した各構成によって実現される機能と同様の機能をコンピュータなどの情報処理装置に行わせるためのプログラムを記録したコンピュータ読み出し可能記録媒体として構成することもできる。また、本発明は、搬送波に具現化された、上述のプログラムを表現するコンピュータ・データ・シグナルとして構成することもできる。
【０１１６】
以上のように、図２〜図２６を参照し、本発明の実施の形態である遠隔手続呼出装置に
ついて詳細に説明したが、本発明は以上に述べたことに限定されるものではない。すなわち、上述のようにオンライン株取引システムにおける株価を参照する際のシステム動作等について詳細に説明したが、本発明の原理は遠隔手続呼出を用いてクライアントアプリケーションがサーバアプリケーションを呼び出すという何れのシステムにも応用可能である。本発明は、従来技術における、遠隔手続呼出処理の際の出力パラメタのデータ変換のオーバヘッドを改善したところに特徴があり、この本発明の要旨を逸脱しない範囲で様々の構成、または形状をつくることができることはいうまでもない。
【０１１７】
（付記１）  遠隔手続呼出によってサーバアプリケーションを呼び出す遠隔手続呼出機構を備える遠隔手続呼出装置であって、
前記サーバアプリケーションを前記遠隔手続呼出機構に対して呼び出すクライアントアプリケーション手段と、
前記クライアントアプリケーション手段が前記サーバアプリケーションを呼び出す際に送信する入力パラメタを一旦格納する入力データ手段と、
前記入力データ手段に格納された入力パラメタに基づいて遠隔手続呼び出しするための要求メッセージを作成し、前記サーバアプリケーションに送信し、応答メッセージを待ち合わせ、応答メッセージ受信時には該応答メッセージに含まれる前記サーバアプリケーションから送信されてきた１以上の出力パラメタを抽出する、遠隔手続呼出ラッピング手段と、
前記遠隔手続呼出ラッピング手段から抽出された前記１以上の出力パラメタを格納し、前記クライアントアプリケーション手段が或る出力パラメタを参照した際に、該出力パラメタに該当するデータを該クライアントアプリケーション手段に返す出力データ手段と、
前記出力データ手段がクライアントアプリケーション手段に参照された出力パラメタのデータを返す際に、該出力パラメタがデータ変換されていない場合には、データ変換処理を行うデータ変換処理手段と、
を備えることを特徴とする遠隔手続呼出装置。
（付記２）  前記応答メッセージに含まれる前記出力パラメタのデータ型はバイト列型で、前記出力データ手段が前記クライアントアプリケーション手段に参照された場合に返すデータは、パラメタデータ型であることを特徴とする付記１記載の遠隔手続呼出装置。
（付記３）  前記入力データ手段および前記出力データ手段は、前記クライアントアプリケーション手段にクラス定義として組み込まれ、前記遠隔手続呼び出しされるときに入力データオブジェクトおよび出力データオブジェクトとして生成されることで実現されることを特徴とする付記２記載の遠隔手続呼出装置。
（付記４）  前記入力データオブジェクトおよび前記出力データオブジェクトは、要求メッセージや応答メッセージに含まれる、バイト列型の前記入力パラメタおよび前記出力パラメタのデータを格納するためのバイト列型データ領域と、前記入力パラメタおよび前記出力パラメタを格納するためのパラメタデータ型データ領域とからなるデータ領域を備えることを特徴とする付記３記載の遠隔手続呼出装置。
（付記５）  クライアントアプリケーションが遠隔手続呼出によってサーバアプリケーションを呼び出す処理を、記憶部および処理部を備える情報処理装置に実行させるためのプログラムであって、  
前記遠隔手続呼び出しに合わせて、前記記憶部に出力データクラスをローディングして出力データオブジェクトを生成するステップと、
前記サーバアプリケーションから応答メッセージを受信した際には、該応答メッセージに含まれる１以上の出力パラメタを前記出力データオブジェクトのデータ領域に転送するステップと、
前記クライアントアプリケーションが或る出力パラメタを参照した際には、該当する出力パラメタをデータ領域から読み出し、データ変換処理を行っていない場合にはデータ変換処理を行って、データをクライアントアプリケーションに返すステップと、
を含むことを特徴とするプログラム。
（付記６）  前記応答メッセージに含まれる前記出力パラメタのデータ型はバイト列型で、前記クライアントアプリケーションが出力パラメタを参照した場合に返すデータは、パラメタデータ型であることを特徴とする付記５記載のプログラム。
（付記７）  前記出力データオブジェクトは、前記応答メッセージに含まれる、前記出力パラメタのデータを格納するためのバイト列型データ領域と、前記出力パラメタを格納するためのパラメタデータ型データ領域とからなるデータ領域を備えることを特徴とする付記６記載のプログラム。
（付記８）  クライアントアプリケーションが遠隔手続呼出によってサーバアプリケーションを呼び出す処理を、記憶部および処理部を備える情報処理装置で実現するための方法であって、
前記遠隔手続呼び出しに合わせて、前記記憶部に出力データクラスをローディングして出力データオブジェクトを生成し、
前記サーバアプリケーションから応答メッセージを受信した際には、該応答メッセージに含まれる１以上の出力パラメタを前記出力データオブジェクトのデータ領域に転送し、
前記クライアントアプリケーションが或る出力パラメタを参照した際には、該当する出力パラメタをデータ領域から読み出し、データ変換処理を行っていない場合にはデータ変換処理を行って、データをクライアントアプリケーションに返す、
ことを特徴とする方法。
（付記９）  前記応答メッセージに含まれる前記出力パラメタのデータ型はバイト列型で、前記クライアントアプリケーションが出力パラメタを参照した場合に返すデータは、パラメタデータ型であることを特徴とする付記８記載の方法。
（付記１０）  前記出力データオブジェクトは、前記応答メッセージに含まれる、前記出力パラメタのデータを格納するためのバイト列型データ領域と、前記出力パラメタを格納するためのパラメタデータ型データ領域とからなるデータ領域を備えることを特徴とする付記９記載の方法。
（付記１１）  前記サーバアプリケーションが動作するサーバは、記憶部および処理部を備える情報処理装置であって、前記クライアントアプリケーションが遠隔手続呼出によって該サーバアプリケーションを呼び出した際に、
前記遠隔手続き呼び出しによるサービス要求に対して、サーバアプリケーションの遠隔手続き呼び出しに必要な所在情報の定義量をサーバ単位でルーティングし、
該当するサーバアプリケーションに処理を実行させ、
該サーバアプリケーションによる処理結果を出力パラメタのデータの型には依存しない、或る決められた１個のデータの型の応答メッセージを生成し、クライアントアプリケーション側に返信する、
ことを特徴とする付記１０記載の方法。
（付記１２）  クライアントとサーバから成る遠隔手続呼出システムであって、
前記クライアントは、
遠隔手続呼出機構に対して入出力データクラスでサーバアプリケーションを呼び出す１個のサービスアダプタ手段と、
前記サービスアダプタ手段と前記サーバに含まれる代表オブジェクトとの間で、前記入出力データクラスに定義される入出力パラメタのデータ型には依存しない、１個のデータ型による通信を行う通信手段と、
前記サービス要求に対するサーバからの応答メッセージのデコードを前記クライアントアプリケーションが参照したパラメタの範囲に限定するデコード手段と、
を含み、
前記サーバは、
前記サービスアダプタ手段のサービス要求に対して、サーバアプリケーションの遠隔手続き呼び出しに必要な所在情報の定義量をサーバ単位でルーティングするサーバアプリケーション振分機構を含み、該各サーバアプリケーションの所在情報を有する１個の代表オブジェクト手段と、
前記サービスアダプタ手段と前記代表オブジェクト手段との間で、前記入出力データクラスに定義される入出力パラメタのデータ型には依存しない、１個のデータ型による通信を行う通信手段と、
を含むことを特徴とする遠隔手続呼出システム。
（付記１３）  前記クライアントおよび前記サーバのそれぞれの通信手段による通信は、バイト列型のデータで通信が行われ、
前記クライアントのデコード手段では、アプリケーションがパラメタを参照した際にバイト列型のデータをパラメタデータ型に変換する、
ことを特徴とする遠隔手続呼出システム。
【図面の簡単な説明】
【０１１８】
【図１】本発明の遠隔手続呼出方式の概要を示す図である。
【図２】本発明の実施の形態を示す図である。
【図３】図２の処理フローを示す図である。
【図４】出力パラメタのデータ変換を詳細に説明する図である。
【図５】出力パラメタのデータ変換を、データ構造を用いて説明する図である。
【図６】本発明の効果を説明する図である。
【図７】実施例のシステム構成を示す図である。
【図８】実施例におけるサーバ及びクライアントを実現する情報処理装置のハードウェア構成を示す図である。
【図９】実施例における「株価参照」用入力データクラスを示す図である。
【図１０】実施例における「株価参照」用出力データクラスを示す図である。
【図１１】実施例におけるサービスアダプタクラスを示す図である。
【図１２】実施例における、株価参照の際のフローを示す図である。
【図１３】「株価参照」要求メッセージの構造を示す図である。
【図１４】要求メッセージ作成の概要を説明する図である。
【図１５】「株価参照」応答メッセージの構造を示す図である。
【図１６】出力パラメタの抽出の概要を説明する図である。
【図１７】「（１）アダプタインスタンス生成」の詳細フローを示す図である。
【図１８】「（２）インスタンス生成」および「（３）所在情報取得」の詳細フローを示す図である。
【図１９】「（６）入力パラメタ設定」の詳細フローを示す図である。
【図２０】「（７）銘柄ＩＤ設定処理」および「（８）銘柄ＩＤ変換」の詳細フローを示す図である。
【図２１】「（１１）サーバアプリケーション「株価参照」呼出」の詳細フローを示す図である。
【図２２】「（１２）要求メッセージ作成」の詳細フローを示す図である。
【図２３】「（１３）要求メッセージ送信」の詳細フローを示す図である。
【図２４】「（１４）応答メッセージ受信」および「出力パラメタ抽出」の詳細フローを示す図である。
【図２５】「（１６）出力パラメタ参照」および「（１７）取得処理」および「(１８)出力パラメタ変換の詳細フローを示す図である。
【図２６】プログラムの情報処理装置（コンピュータ）へのローディングを説明する図」である。
【図２７】遠隔手続呼出を説明する図である。
【図２８】従来の遠隔手続呼出処理を行うシステムの例を示す図である。
【図２９】従来技術の問題点を示す図である。
【符号の説明】
【０１１９】
１      サーバ
２      クライアント
１１      サーバアプリケーション
１２      代表オブジェクト
１３      遠隔手続呼出機構
１４      通信手段
２１      クライアントアプリケーション
２２      サービスアダプタ手段
２３      デコード手段
２４      遠隔手続呼出機構
２５      通信手段
１０１      開発環境
１０２      運用環境
１０３      入出力データクラス
１０４      ＴＰモニタ
１０５      インタフェース定義情報
１０６      インタフェース定義変換手段
１０７      サーバ
１０８      クライアント
１０９      サーバアプリケーション
１１０      利用者作成プログラム
１１１      インタフェース定義情報
１１２      サーバ用スタブ
１１３      振分手段
１１４      サーバアプリケーション管理手段
１１５      遠隔手続呼出所在管理手段（ネーミングサービス）
１１６      遠隔手続呼出サーバ手段
１１７      遠隔手続呼出クライアント手段
１１８      サービスアダプタ
１１９      遠隔手続呼出ラッピング手段
１２０      データ変換手段
１２１      クライアントアプリケーション
１２２      入力データクラス
１２３      出力データクラス
１２４      利用者作成プログラム
４０１      出力データクラス
４０２      応答メッセージ
４０３      出力データオブジェクト
６０１      サーバ
６０２      クライアント
６０３      ＴＰモニタ
６０４      口座テーブル
６０５      銘柄テーブル
６０６      持株テーブル
６０７      取引テーブル
６０８      サーバアプリケーション
６０８−１      株式購入アプリケーション
６０８−２      株式売却アプリケーション
６０８−３      株価参照アプリケーション
６０８−４      持株参照アプリケーション
６０９      振分機構
６１０      遠隔手続呼出サーバ機構
６１１      クライアントアプリケーション
６１２      サービスアダプタ
６１３      遠隔手続呼出クライアント機構
６１４      ユーザ
６１５      入力データクラス
６１６      出力データクラス
６１７      遠隔手続呼出ラッピング
６１８      データ変換部
６１９      ユーザ端末
７００      情報処理装置
７０１      ＣＰＵ
７０２      メモリ
７０３      入力装置
７０４      出力装置
７０５      外部記憶装置
７０６      媒体駆動装置
７０７      ネットワーク接続装置
７０８      バス
７０９      可搬記録媒体
２５０１      外部記憶装置に記録されたプログラムやデータ
２５０２      情報提供者が提供するプログラムやデータ
２５０３      可搬記録媒体に記録されたプログラムやデータ
２７０１      開発環境
２７０２      運用環境
２７０３      ＩＤＬ（入出力パラメタ定義）
２７０４      ＴＰモニタ
２７０５      インタフェース定義情報
２７０６      スタブ
２７０７      インタフェース定義変換ツール
２７０８      ＩＤＬコンパイラ
２７０９      サーバ
２７１０      クライアント
２７１１      サーバアプリケーション
２７１２      利用者作成プログラム
２７１３      インタフェース定義情報
２７１４      サーバ用スタブ
２７１５      振分機構
２７１６      サーバアプリケーション管理機構
２７１７      遠隔手続呼出所在管理部（ネーミングサービス）
２７１８      遠隔手続呼出サーバ機構
２７１９      遠隔手続呼出クライアント機構
２７２０      クライアント用スタブ
２７２１      利用者作成プログラム
２７２２      クライアントアプリケーション
【図１】
2008165340.tif 000003
【図５】
2008165340.tif 000004
【図８】
2008165340.tif 000005
【図９】
2008165340.tif 000006
【図１０】
2008165340.tif 000007
【図１１】
2008165340.tif 000008
【図１２】
2008165340.tif 000009
【図１３】
2008165340.tif 000010
【図１４】
2008165340.tif 000011
【図１５】
2008165340.tif 000012
【図１６】
2008165340.tif 000013
【図１７】
2008165340.tif 000014
【図１８】
2008165340.tif 000015
【図１９】
2008165340.tif 000016
【図２０】
2008165340.tif 000017
【図２１】
2008165340.tif 000018
【図２２】
2008165340.tif 000019
【図２３】
2008165340.tif 000020
【図２４】
2008165340.tif 000021
【図２５】
2008165340.tif 000022
【図２６】
2008165340.tif 000023
【図２７】
2008165340.tif 000024
【図２】
2008165340.tif 000025
【図３】
2008165340.tif 000026
【図４】
2008165340.tif 000027
【図６】
2008165340.tif 000028
【図７】
2008165340.tif 000029
【図２８】
2008165340.tif 000030
【図２９】
2008165340.tif 000031