(57)【要約】【課題】構造を持つデータを受け渡す遠隔メソッド呼出しの処理負荷の軽減とこのＸＭＬパーシングを行うシステム構築での記憶容量の削減とができる。【解決手段】クライアントとサーバとの間で多段の構造を持つ引数を持つ遠隔メソッド呼び出しを、ＩＤポインタをふることで高々一段の階層によるテキスト形式に変換するクライアント非再帰データ表現生成シリアライザ２３０と、転送されたテキスト形式のデータをサーバＩＤポインタテーブル３２３やサーバパラメータ情報作成手段３２４とを用いてプログラミング言語の多段階層に逆変換を可能にすることで、クライアントとサーバとの間のプログラミング言語及びオペレーティングシステムによらない連携を可能とし、かつ、送られるデータの階層を高々一段として小サイズの軽量化プログラムで高速処理を可能し、更にハードディスクを持たない機器等のハードウェア資源の効率的利用を可能とする。【選択図】      図１
2004265164.tif 000002
【特許請求の範囲】
【請求項１】
データ転送プロトコルを用いたクライアントとサーバとの間のサービス連携システムにおいて、
プログラミング言語の構造型データ及び基本型データを、送付先で逆変換可能な高々一段の階層を持つテキスト文書に作成するクライアント非再帰データ表現生成シリアライザと、
前記クライアント非再帰データ表現生成シリアライザで作成された高々一段の階層を持つテキスト文書を解釈して、サーバアプリケーション起動に必要な情報を取り出すサーバ非再帰データ表現解釈パーサと、
サーバアプリケーションを起動した戻り値である構造型データ及び基本型データを、高々一段の階層でかつクライアント側で逆変換可能なテキスト文書に作成するサーバ非再帰データ表現生成シリアライザと、
高々一段の階層を持つテキスト文書を入力して、サーバアプリケーションからの戻り値である構造を持ったパラメータを作成するクライアント非再帰データ表現解釈パーサとを有することにより、
クライアントアプリケーションとサーバアプリケーションとの連携を可能とすることを特徴とするサービス連携システム。
【請求項２】
データ転送プロトコルを用いたクライアントとサーバとの間のサービス連携システムにおいて、
前記クライアントは、
プログラミング言語の構造型データ及び基本型データを入力するクライアントシリアライズ部と、
前記クライアントシリアライズ部から前記構造型データを入力して、構造型データの階層を示すテーブルを作成するクライアント構造型配列情報テーブル作成手段と、
前記クライアントシリアライズ部から基本型データ、及び前記クライアント構造型配列情報テーブル作成手段から前記テーブル、それぞれを受けて入力とし、この入力から、高々一段の階層でかつ送付先で逆変換可能なテキスト文書を作成するクライアント非再帰データ表現文書作成手段とを備え、かつ
前記サーバは、
高々一段の階層を持つテキスト文書を入力するサーバパース部と、
前記サーバパース部からテキスト文書の区切り文字までのヘッダー部分を入力して、起動するサーバアプリケーションの名前及び関数名の部分を作成するサーバヘッダ情報作成手段と、
前記サーバパース部からテキスト文書の主要部を入力して、階層関係のリンク情報を一時的に保持するサーバＩＤポインタテーブルを用いながら、サーバアプリケーションを起動に用いる構造を持ったパラメータを作成するサーバパラメータ情報作成手段と、
前記サーバヘッダ情報作成手段からサーバアプリケーションの名前及び関数名を、並びに前記サーバパラメータ情報作成手段からサーバアプリケーション起動に用いる構造を持ったパラメータを、それぞれ入力して、サーバアプリケーション起動に必要な情報にまとめるサーバアプリケーション起動情報作成部とを備えて、
クライアントアプリケーションとサーバアプリケーションとの連携を可能とすることを特徴とするサービス連携システム。
【請求項３】
データ転送プロトコルを用いたクライアントとサーバとの間のサービス連携システムにおいて、
前記サーバは、
サーバアプリケーションを起動した戻り値である構造型データ及び基本型データを入力するサーバシリアライズ部と、
前記サーバシリアライズ部から前記構造型データを入力して構造型データの階層を示すテーブルを作成するサーバ構造型配列情報テーブル作成手段と、
前記サーバシリアライズ部から基本型データ、及び前記サーバ構造型配列情報テーブル作成手段から前記テーブル、それぞれを入力して、高々一段の階層でかつ送付先で逆変換可能なテキスト文書を作成するサーバ非再帰データ表現文書作成手段とを備え、かつ
前記クライアントは、
高々一段の階層を持つテキスト文書を入力するクライアントパース部と、
前記クライアントパース部からテキスト文書の区切り文字までのヘッダー部分を入力して、サーバアプリケーションの起動が正常に行われたかどうかを表す情報を作成するクライアントヘッダ情報作成手段と、
前記クライアントパース部からテキスト文書の主要部を入力して、階層関係のリンク情報を一時的に保持するクライアントＩＤポインタテーブルを用いながらサーバアプリケーションからの戻り値である構造を持ったパラメータを作成するクライアントパラメータ情報作成手段と、
前記クライアントヘッダ情報作成手段から、サーバアプリケーションの起動が正常に行われたかどうかを表す情報、及び前記クライアントパラメータ情報作成手段から、サーバアプリケーションからの戻り値である構造を持ったパラメータ、それぞれを入力として受け付け、クライアントアプリケーションに返す情報をまとめるプログラミング言語戻り値作成部とを備えて、
クライアントアプリケーションとサーバアプリケーションとの連携を可能とすることを特徴とするサービス連携システム。
【請求項４】
請求項１から請求項３までのうちの一つにおいて、
前記サーバ非再帰データ表現解釈パーサは、
高々一段の階層を持つテキスト文書を入力とするサーバパース部と、
前記サーバパース部からテキスト文書の区切り文字までのヘッダー部分を入力とし起動するサーバアプリケーションの名前及び関数名部分を作成するサーバヘッダ情報作成手段と、
前記サーバパース部からテキスト文書の主要部を入力とし階層関係のリンク情報を一時的に保持するサーバＩＤポインタテーブルを用いながらサーバアプリケーションを起動に用いる構造を持ったパラメータを作成するサーバパラメータ情報作成手段と、
前記サーバヘッダ情報作成手段から受けるサーバアプリケーションの名前および関数名、前記サーバパラメータ情報作成手段から受けるサーバアプリケーション起動に用いる構造を持ったパラメータ、それぞれを入力としサーバアプリケーション起動に必要な情報をまとめるサーバアプリケーション起動情報作成部と
を有することを特徴とするサービス連携システム。
【請求項５】
請求項１から請求項３までのうちの一つにおいて、
前記クライアント非再帰データ表現解釈パーサは、
高々一段の階層を持つテキスト文書を入力するクライアントパース部と、
前記クライアントパース部からテキスト文書の区切り文字までのヘッダー部分を入力して、サーバアプリケーションの起動が正常に行われたかどうかを表す情報を作成するクライアントヘッダ情報作成手段と、
前記クライアントパース部からテキスト文書の主要部を入力して、階層関係のリンク情報を一時的に保持するクライアントＩＤポインタテーブルを用いながらサーバアプリケーションからの戻り値である構造を持ったパラメータを作成するクライアントパラメータ情報作成手段と、
前記クライアントヘッダ情報作成手段からサーバアプリケーションの起動が正常に行われたかどうかを表す情報、及び前記クライアントパラメータ情報作成手段からサーバアプリケーションからの戻り値である構造を持ったパラメータ、それぞれを入力して、クライアントアプリケーションに返す情報をまとめるプログラミング言語戻り値作成部と
を有することを特徴とするサービス連携システム。
【請求項６】
請求項１から請求項３までのうちの一つにおいて、
前記クライアント非再帰データ表現生成シリアライザは、
プログラミング言語の構造型データ及び基本型データを入力するクライアントシリアライズ部と、
前記クライアントシリアライズ部から前記構造型データを入力して、構造型データの階層を示すテーブルを作成するクライアント構造型配列情報テーブル作成手段と、
前記クライアントシリアライズ部から基本型データ、及び前記クライアント構造型配列情報テーブル作成手段から前記テーブル、それぞれを入力して、高々一段の階層でかつ送付先で逆変換可能なテキスト文書を作成するクライアント非再帰データ表現文書作成手段と
を有することを特徴とするサービス連携システム。
【請求項７】
請求項１から請求項３までのうちの一つにおいて、
前記サーバ非再帰データ表現生成シリアライザは、
サーバアプリケーションを起動した戻り値である構造型データ及び基本型データを入力するサーバシリアライズ部と、
前記サーバシリアライズ部から前記構造型データを入力して構造型データの階層を示すテーブルを作成するサーバ構造型配列情報テーブル作成手段と、
前記サーバシリアライズ部から基本型データ、及び前記サーバ構造型配列情報テーブル作成手段から前記テーブル、それぞれを入力して、高々一段の階層でかつ送付先で逆変換可能なテキスト文書を作成するサーバ非再帰データ表現文書作成手段と
を有することを特徴とするサービス連携システム。
【請求項８】
データ転送プロトコルを用いたクライアントとサーバとの間のサービス連携方法において、
前記クライアントは、プログラミング言語の構造型データ及び基本型データを入力として受け付けた際、
前記構造型データを、構造型データの階層を示すテーブルに作成し、かつ
前記基本型データ及び前記テーブルそれぞれを高々一段の階層でかつ送付先で逆変換可能なテキスト文書に作成して前記サーバに送付し、かつ
前記サーバは、高々一段の階層を持つテキスト文書を前記クライアントから入力した際、
前記テキスト文書の区切り文字までのヘッダー部分から、起動するサーバアプリケーションの名前及び関数名部分を作成し
前記テキスト文書の主要部から、階層関係のリンク情報を一時的に保持するサーバＩＤポインタテーブルを用いながらサーバアプリケーション起動に用いる構造を持ったパラメータを作成し、かつ
前記サーバアプリケーションの名前及び関数名、並びに前記サーバアプリケーション起動に用いる構造を持ったパラメータそれぞれから、サーバアプリケーション起動に必要な情報をまとめる
ことを特徴とするサービス連携方法。
【請求項９】
データ転送プロトコルを用いたクライアントとサーバとの間のサービス連携方法において、
前記サーバは、サーバアプリケーションを起動した戻り値である構造型データ及び基本型データを入力として受け付けた際、
前記構造型データから構造型データの階層を示すテーブルを作成し、かつ
前記基本型データ及び前記テーブルそれぞれから高々一段の階層でかつ送付先で逆変換可能なテキスト文書を作成して前記クライアントに送付し、
前記クライアントは、高々一段の階層を持つテキスト文書の入力を前記サーバから受け付けた際、
前記テキスト文書の区切り文字までのヘッダー部分からサーバアプリケーションの起動が正常に行われたかどうかを表す情報を作成し、
前記テキスト文書の主要部から、階層関係のリンク情報を一時的に保持するクライアントＩＤポインタテーブルを用いながらサーバアプリケーションからの戻り値である構造を持ったパラメータを作成し、かつ
前記サーバアプリケーションの起動が正常に行われたかどうかを表す情報、及び前記サーバアプリケーションからの戻り値である構造を持ったパラメータ、それぞれから、クライアントアプリケーションに返す情報をまとめる
ことを特徴とするサービス連携方法。
【請求項１０】
データ転送プロトコルを用いたクライアントとサーバとの間のサービス連携方法において、
前記サーバは、サーバアプリケーション起動に必要な情報を、
高々一段の階層を持つテキスト文書の入力を受け付けた際に、
前記テキスト文書の区切り文字までのヘッダー部分から、起動するサーバアプリケーションの名前及び関数名部分を作成し、かつ
前記テキスト文書の主要部から階層関係のリンク情報を一時的に保持するサーバＩＤポインタテーブルを用いながらサーバアプリケーション起動に用いる構造を持ったパラメータを作成して、
作成したそれぞれからまとめることを特徴とするサービス連携方法。
【請求項１１】
データ転送プロトコルを用いたクライアントとサーバとの間のサービス連携方法において、
前記クライアントは、クライアントアプリケーションに返送する情報を、
高々一段の階層を持つテキスト文書の入力を受け付けた際に、
前記テキスト文書の区切り文字までのヘッダー部分から、サーバアプリケーションの起動が正常に行われたかどうかを表す情報を作成し、かつ
前記テキスト文書の主要部から、階層関係のリンク情報を一時的に保持するクライアントＩＤポインタテーブルを用いながらサーバアプリケーションからの戻り値である構造を持ったパラメータを作成して、
作成したそれぞれからまとめることを特徴とするサービス連携方法。
【請求項１２】
データ転送プロトコルを用いたクライアントとサーバとの間のサービス連携方法において、
前記クライアントは、前記サーバに送付するテキスト文書を、プログラミング言語の構造型データ及び基本型データを入力として受け付けた際に、前記構造型データから、構造型データの階層を示すテーブルを作成し、かつ前記基本型データ及び前記テーブルそれぞれから、高々一段の階層でかつ送付先で逆変換可能に、作成する
ことを特徴とするサービス連携方法。
【請求項１３】
データ転送プロトコルを用いたクライアントとサーバとの間のサービス連携方法において、
前記サーバは、前記クライアントへ送付するテキスト文書を、サーバアプリケーションを起動した戻り値である構造型データ及び基本型データを入力として受け付けた際に、前記構造型データから、構造型データの階層を示すテーブルを作成し、かつ前記基本型データ及び前記テーブルそれぞれから、高々一段の階層でかつ送付先で逆変換可能に作成する
ことを特徴とするサービス連携方法。
【請求項１４】
データ転送プロトコルを用いたクライアントとサーバとの間のサービス連携システムにおいて、
インタフェース記述言語による既存サーバのインタフェース記述言語から、クライアントにおいてサーバアプリケーションの起動に必要なパラメータのみをテキスト文書に変換するクライアント非再帰データ表現生成シリアライザと、
サーバにおいて前記クライアント非再帰データ表現生成シリアライザで変換されたテキスト文書を逆変換しサーバアプリケーションの起動に必要なパラメータを取り出すサーバ非再帰データ表現解釈パーサと、
サーバアプリケーションからのプログラミング言語での戻り値をテキスト文書にシリアライズするサーバ非再帰データ表現生成シリアライザと、
前記サーバ非再帰データ表現生成シリアライザでテキスト文書に変換された戻り値をプログラミング言語でのデータ型に戻すクライアント非再帰データ表現解釈パーサと、
前記クライアント非再帰データ表現生成シリアライザでテキスト文書に変換されたパラメータを既存サーバの起動するのに必要な形に変換するプロトコル変換モジュールを生成するインタフェース記述言語コンパイラと
を備えることを特徴とするサービス連携システム。
【請求項１５】
請求項１４において、前記インタフェース記述言語コンパイラは、
インタフェース記述言語による既存サーバのインタフェース記述言語を入力してそれを解釈するインタフェース記述言語解釈手段と、
前記インタフェース記述言語解釈手段で解釈した内容とデータ型との対応関係をとるデータ型対応関係定義手段と、
データ型が対応つけられたインタフェース記述言語解釈手段からデータ型情報を受け取り、クライアントにおいてサーバアプリケーションの起動に必要なパラメータのみをテキスト文書に変換するクライアント非再帰データ表現生成シリアライザと、
サーバアプリケーションからのプログラミング言語での戻り値をテキスト文書にシリアライズするサーバ非再帰データ表現生成シリアライザを生成するシリアライズコード生成手段と、
サーバにおいて前記クライアント非再帰データ表現生成シリアライザで変換されたテキスト文書を逆変換しサーバアプリケーションの起動に必要なパラメータを取り出すサーバ非再帰データ表現解釈パーサのコードを作成するパーサコード作成手段と、
前記サーバ非再帰データ表現生成シリアライザでテキスト文書に変換された戻り値をプログラミング言語でのデータ型に戻すクライアント非再帰データ表現解釈パーサコードを生成するパーサコード作成手段と、
前記クライアント非再帰データ表現生成シリアライザでテキスト文書に変換されたパラメータを既存サーバの起動に必要な形式に変換するプロトコル変換モジュールを生成する変換プログラム作成手段と
を有することを特徴とするサービス連携システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＯＳ（オペレーティングシステム）及びプログラミング言語に依存せずに処理可能な形式でデータ転送を行うことでＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）によるサービス連携を行うシステム及びその方法に関し、特に、構造を持つデータを受け渡す遠隔メソッド呼出しの処理負荷の軽減とこのＸＭＬ（エクステンシブル・マークアップ・ランゲージ）パーシングを行うシステム構築で必要とするような大きな記憶容量の削減とのため、構造化されたデータを高々一段階までの階層構造の軽量データ転送プロトコルを用いてサービスを連携させることができるシステム、及びその方法に関する。
【０００２】
【従来の技術】
従来のデータ転送システムでは、ＷＷＷコンソーシアム（ワールドワイドウェブコンソーシアム：Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ）における標準化文書ＳＯＡＰ（シンプルオブジェクトアクセスプロトコル１．１：Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ  １．１）によりネットワークを通じて受け渡されるプロトコルが定義されている。
【０００３】
例えば、図１４に示されるように、従来のデータ転送システムは、ＳＯＡＰクライアント９００及びＳＯＡＰサーバ８００により構成されている。ＳＯＡＰクライアント９００は、クライアントアプリケーション２１０、ＳＯＡＰクライアントライブラリ９１０、クライアントＸＭＬ（エクステンシブルマークアップランゲージ：Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）シリアライザ９２０、クライアントＸＭＬパーサ９３０、及びＨＴＴＰクライアント２３０を含む。クライアントＸＭＬシリアライザ９２０は、クライアント構造型データ解釈部９２１及びクライアントＸＭＬ文書作成手段９２２を含む。クライアントＸＭＬパーサ９３０は、クライアントＸＭＬ文書パース部９３１、クライアントＸＭＬ階層管理部９３２、及びクライアント構文木作成部９３３を含む。
【０００４】
ＳＯＡＰサーバ８００は、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  ＴｒａｎｓｆｅｒＰｒｏｔｏｃｏｌ）サーバ３１０、サーブレットエンジン８１０、ＳＯＡＰサーバサーブレット８２０、ＸＭＬシリアライザ９２０とＸＭＬパーサ９３０、サーバアプリケーション管理３３０、及びサーバアプリケーション３４０を含む。サーバＸＭＬシリアライザ８３０は、サーバ構造型データ解釈部８３１及びサーバＸＭＬ文書作成手段８３２を含む。サーバＸＭＬパーサ８４０は、サーバＸＭＬ文書パース部８４１、サーバＸＭＬ階層管理部８４２、及びサーバ構文木作成部８４３を含む。
【０００５】
このような構成を有する従来のデータ転送システムは次のように動作する。
【０００６】
クライアントアプリケーション２１０は、プログラミング言語のデータを用いて、ＨＴＴＰサーバのホスト名及びポート番号、ＳＯＡＰサーバ８００のサーバアプリケーション３４０に対応するサービス名、サーバアプリケーション３４０において起動するメソッド名、及びメソッド起動に用いる引数情報を、ＳＯＡＰクライアンライブラリ９１０に送付する。ＳＯＡＰクライアントライブラリ９１０は、サーバアプリケーション３４０に対応するサービス名、サーバアプリケーション３４０において起動するメソッド名、及びメソッド起動に用いる引数をクライアントＸＭＬシリアライザ９２０のクライアント構造型データ解釈部９２１に送付する。
【０００７】
クライアントＸＭＬシリアライザ９２０でのクライアント構造型データ解釈部９２１は、受けた構造型データを深さ優先でデータ構造をたどりながらクライアントＸＭＬ文書作成手段９２２に送付する。クライアントＸＭＬ文書作成手段９２２は受けた深さ優先の構造のままＸＭＬ文書に変換した後、変換したＸＭＬ文書をＨＴＴＰクライアント２３０に送付する。更に、ＨＴＴＰクライアント２３０は、受けたＸＭＬ文書にＨＴＴＰのヘッダーを付け、ネットワーク５００を介して、ＳＯＡＰサーバ８００のＨＴＴＰサーバ３１０に送付する。
【０００８】
ＳＯＡＰサーバ８００で、ＨＴＴＰサーバ３１０は、ＨＴＴＰヘッダーを見てＳＯＡＰサーバサーブレット８２０で処理させるべきであると判断し、サーブレットエンジン８１０上で動作するＳＯＡＰサーバサーブレット８２０にＸＭＬ文書部分を送付する。ＳＯＡＰサーバサーブレット８２０は、サーバＸＭＬパーサ８４０を用いてＸＭＬ文書をパーシングしプログラミング言語によるデータに変換し、その後、変換したものをサーバアプリケーション管理３３０に送付する。
【０００９】
この際、サーバＸＭＬパーサ８４０の内部では、まず、サーバＸＭＬ文書パース部８４１でＸＭＬのタグ情報を解析し、ＸＭＬの階層を深くする開始タグが出現した場合にはサーバＸＭＬ階層管理部８４２に階層の一段を記憶させる一方、ＸＭＬの階層を浅くする終了タグが出現した場合にはサーバＸＭＬ階層管理部８４２の階層を一段階減らすことを行いながら、サーバ構文木作成部８４３がプログラミング言語の構造型データのデータを構文木のデータとして作成する。
【００１０】
サーバアプリケーション管理３３０は、受けたプログラミング言語の構文木データから、起動すべきサーバアプリケーション３４０を見つけ、サーバアプリケーション３４０を起動してアプリケーションレベルの戻り値を得る。更に、サーバアプリケーション管理３３０は、得た戻り値を、サーバＸＭＬシリアライザ８３０を用いて、ＸＭＬ文書の形式に変換し、ＳＯＡＰサーバサーブレット８２０に送付する。
【００１１】
この際、サーバＸＭＬシリアライザ８３０では、特にサーバ構造型データ解釈部８３１が、受けた戻り値を深さ優先でデータ構造をたどりながらサーバＸＭＬ文書作成手段８３２に送付する。サーバＸＭＬ文書作成手段８３２は深さ優先の構造をたどりながらＸＭＬ文書に変換した後、変換したＸＭＬ文書をＳＯＡＰサーバサーブレット８２０に送付する。ＳＯＡＰサーバサーブレット８２０は、受けたＸＭＬ文書をＨＴＴＰサーバ３１０に返送する。ＨＴＴＰサーバ３１０は、返されたＸＭＬ文書にＨＴＴＰのヘッダーをつけ、ネットワーク５００経由でＨＴＴＰクライアント２３０に返送する。
【００１２】
ＨＴＴＰクライアント２３０は、ＸＭＬ文書をクライアントＸＭＬパーサ９３０でパーシングを行い、プログラミング言語のデータ型に変換してＳＯＡＰクライアントライブラリ９１０に返送する。
【００１３】
クライアントＸＭＬパーサ９３０では、まずクライアントＸＭＬ文書パース部９３１が、ＸＭＬのタグ情報を解析し、ＸＭＬの階層を深くする開始タグが出現した場合にはクライアントＸＭＬ階層管理部９３２に階層の一段を記憶させる一方、ＸＭＬの階層を浅くする終了タグが出現した場合にはクライアントＸＭＬ階層管理部９３２の階層を一段階減らすことを行いながら、クライアント構文木作成部９３３がプログラミング言語の戻り値のデータを構文木のデータとして作成する。
【００１４】
最後に、ＳＯＡＰクライアントライブラリ９１０は、返されたプログラミング言語による戻り値のデータを、クライアントアプリケーション２１０が要求する型に、変換して返送する。
【００１５】
従来のクライアントとサーバとを連携させるためのコードを生成する技術としては、ＩＤＬ（Ｉｎｔｅｒｆａｃｅ  Ｄｉｆｉｎｉｔｉｏｎ  Ｌａｎｇｕａｇｅ）コンパイラがある。
【００１６】
図１５に示されるＩＤＬコンパイラ１０００は、従来のクライアントとサーバとを連携させるためのコードを生成する技術で、ＩＤＬ解釈手段１０１０、ＩＤＬデータ型解釈手段１０２０、ＩＤＬシリアライズコード作成手段１０３０、及びＩＤＬパーサコード作成手段１０４０を含む。連携するクライアントであるＩＤＬクライアント１１００と連携するサーバであるＩＤＬサーバ１２００とは、ネットワーク５００で連結されている。
【００１７】
ＩＤＬクライアント１１００は、ＩＤＬクライアントアプリケーション１１１０、ＩＤＬクライアントライブラリ１１２０、クライアントＩＤＬシリアライザ１１３０、クライアントトランスポートライブラリ１１４０、及びクライアントＩＤＬパーサを含む。
【００１８】
ＩＤＬサーバ１２００は、サーバトランスポートライブラリ１２１０、サーバＩＤＬパーサ、ＩＤＬサーバライブラリ１２３０、ＩＤＬサーバアプリケーション１２４０、及びサーバＩＤＬシリアライザ１２５０を含む。
【００１９】
このような構成を有する従来のクライアントとサーバとが連携するシステムは次のように動作する。
【００２０】
まず、ＩＤＬクライアントアプリケーション１１１０は、ＩＤＬクライアントライブラリ１１２０に、ＩＤＬサーバ１２００内のＩＤＬサーバアプリケーションのリモートプロシージャコール（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）に必要な引数情報を、プログラミング言語のデータ型で送付して、起動を要求する。ＩＤＬクライアントライブラリ１１２０は、クライアントＩＤＬシリアライザ１１３０に、ネットワーク５００で転送可能なデータ形式に転送データを変換することを要求する。クライアントＩＤＬシリアライザ１１３０は、転送データを、ネットワーク５００で転送可能な形式に変換した後、クライアントトランスポートライブラリ１１４０を用いてネットワーク５００経由でＩＤＬサーバ側へ送付する。
【００２１】
次に、サーバトランスポートライブラリ１２１０は、ネットワーク５００から転送データを受け取り、サーバＩＤＬパーサ１２２０に送付する。サーバＩＤＬパーサ１２２０は、受けたネットワーク５００で転送可能な形式のデータを、プログラミング言語のデータ型の引数情報に変換し、変換した結果をＩＤＬサーバライブラリ１２３０に送付する。ＩＤＬサーバライブラリ１２３０は、サーバＩＤＬパーサ１２２０から受けた引数情報を用いて、起動するＩＤＬサーバアプリケーション１２４０を発見し、発見したＩＤＬサーバアプリケーション１２４０にプログラミング言語のデータ型で引数を送付する。
【００２２】
ＩＤＬサーバアプリケーション１２４０は、ＩＤＬサーバライブラリ１２３０から引数を受け取った後、アプリケーションを実行し、実行結果の戻り値をＩＤＬサーバライブラリ１２３０にプログラミング言語のデータ型で返送する。ＩＤＬサーバライブラリ１２３０は、ＩＤＬサーバアプリケーション１２４０から戻されたプログラミング言語のデータ型をネットワーク５００で転送可能な形式に変換するように、サーバＩＤＬシリアライザ１２５０に要求する。サーバＩＤＬシリアライザ１２５０は、ＩＤＬサーバライブラリ１２３０から受け取ったプログラミング言語のデータ型を、ネットワーク５００内で転送可能な形式に変換した後、サーバトランスポートライブラリ１２１０を用いてネットワーク５００を通じＩＤＬクライアント１１００に送付する。
【００２３】
ＩＤＬクライアン１１００内では、クライアントトランスポートライブラリ１１４０が、ネットワーク５００で転送可能なデータ形式でＩＤＬサーバアプリケーション１２４０の実行結果を受け取り、クライアントＩＤＬパーサ１１５０に送付する。クライアントＩＤＬパーサ１１５０は、ネットワーク５００で転送可能なデータ形式をプログラミング言語のデータ型に変換し、ＩＤＬクライアントライブラリ１１２０に送付する。最後に、ＩＤＬクライアントライブラリ１１２０は、クライアントＩＤＬパーサ１１５０から受けたプログラミング言語のデータ型であるＩＤＬサーバアプリケーション１２４０の実行結果の戻り値をＩＤＬクライアントアプリケーション１１１０に返送する。
【００２４】
次に、ＩＤＬクライアント１１００内のクライアントＩＤＬシリアライザ１１３０及びクライアントＩＤＬパーサ１１５０、並びにＩＤＬサーバ１２００内のサーバＩＤＬパーサ１２２０及びサーバＩＤＬシリアライザ１２５０を生成するＩＤＬコンパイラ１０００の動作について説明する。
【００２５】
まず、ＩＤＬ解釈手段１０１０は、インタフェース記述言語のうち、特にアイ・デイー・エル（ＩＤＬ）というオブジェクト・マネジメント・グループ（Ｏｂｊｅｃｔ  Ｍａｎａｇｅｍｅｎｔ  Ｇｒｏｕｐ）で標準化された形式でＩＤＬサーバアプリケーション１２４０の形式を記述したものを入力として受け付ける。次に、ＩＤＬ解釈手段１０１０は、ＩＤＬデータ型解釈手段１０２０を用いて、入力されたＩＤＬで使われているデータ型の一覧を取得する。次に、ＩＤＬ解釈手段１０１０は、ＩＤＬシリアライズコード作成手段１０３０及びＩＤＬパーサコード作成手段に、ＩＤＬサーバアプリケーション１２４０の形式とそこで使われているデータ型との情報を送付する。
【００２６】
次に、ＩＤＬシリアライズコード作成手段１０３０は、ＩＤＬサーバアプリケーション１２４０の形式とそこで使われているデータ型との情報から、クライアントＩＤＬシリアライザ１１３０及びサーバＩＤＬシリアライザ１２５０を生成する。最後に、ＩＤＬパーサコード作成手段１０４０は、ＩＤＬサーバアプリケーション１２４０の形式とそこで使われているデータ型との情報から、クライアントＩＤＬパーサ１１５０及びサーバＩＤＬパーサ１２２０を生成する。
【００２７】
【発明が解決しようとする課題】
上述した従来のデータ転送プロトコルを用いたサービス連携システムでは、次のような問題点がある。
【００２８】
第１の問題点は、ＳＯＡＰを用いて構造を持ったデータを受け渡すＲＰＣを実現する場合、サーバ側及びクライアント側それぞれで、転送されたＸＭＬ文書をパーシングしてアプリケーションプログラムが利用するデータ型に変換する処理負荷が重いことである。
【００２９】
その理由は、サーバ及びクライアントにおいて多段の階層を含む複雑な構造のＸＭＬ文書のパーシングが必要なためである。具体的には、ＸＭＬ文書の代表的な二つのパーシング方式のうち、ドキュメントオブジェクトモデル（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）を用いる方式ではドキュメントオブジェクトモデルのツリーを一旦作成し、それをＲＰＣ用のデータ構造に変換しているからであり、シンプル・エイピーアイ・フォー・エックスエムエル（ＳｉｍｐｌｅＡＰＩ  ｆｏｒ  ＸＭＬ）を用いる場合は自身で多段の階層構造を管理するモジュールが必要だからである。
【００３０】
第２の問題点は、ＳＯＡＰを用いるシステムを構築する場合、１００メガバイト程度の大量なディスク領域をサーバ側に必要とすることにある。すなわち、ハードディスクドライブを持たない機器の記憶容量に入り切れないこと、又は大部分の記憶容量を消費してしまうことである。
【００３１】
その理由は、一般的ＳＯＡＰを用いるシステムでは、ＳＯＡＰサーバのソフトウェア、アパッチ（Ａｐａｃｈｅ）等のウェブ（Ｗｅｂ）サーバ、トムキャット（Ｔｏｍｃａｔ）等のサーブレットエンジン、ジャバ（Ｊａｖａ（登録商標））言語のランタイム環境が必要なためである。
【００３２】
第３の問題点は、インタフェース記述言語のシリアライズ、パース手段を持つクライアントと既存サーバとの容易な連携が困難であるという問題点がある。
【００３３】
その理由は、新しいプロトコルと既存サーバが解釈可能な形式との間のデータ変換が不可欠なためである。
【００３４】
本発明の課題は、このような問題点を解決し、サーバ側及びクライアント側で高速に処理可能でかつ、構造を持ったデータ型を表現可能な形式を用いてＲＰＣを行うことができるサービス連携システムを提供することにある。
【００３５】
本発明の他の課題は、ＯＳやプログラミング言語に依存しないテキストベースプロトコルを解釈するサーバ機能を、ＨＤＤ（ハードディスクドライブ）を持たない機器の小量のディスク領域に収めるサービス連携システムを提供することにある。
【００３６】
本発明の更に他の課題は、上記二つの課題を達成してかつ、クライアントから既存サーバへアクセス可能なサービス連携システムを提供することである。
【００３７】
【課題を解決するための手段】
従って、本発明は、上記課題を解決することを目的として、構造を持つデータを受け渡す遠隔メソッド呼出しの処理負荷の軽減とこのＸＭＬパーシングを行うシステム構築での記憶容量の削減のため、クライアントから既存サーバへアクセス可能な軽量なデータ転送プロトコルを用いることのできるサービス連携システムを提供する。
【００３８】
本発明における第１の実施の形態をなす軽量データ転送プロトコルを用いたサービス連携システムは、クライアント非再帰データ表現生成シリアライザ（２３０）とサーバ非再帰データ表現解釈パーサ（３２０）とサーバ非再帰データ表現生成シリアライザ（３５０）とクライアント非再帰データ表現解釈パーサ（２５０）とを備え、クライアントアプリケーション（２１０）からサーバアプリケーション（３４０）のＲＰＣ起動を高速に処理可能であるとともに、サーバ（３００）がＨＤＤを持たない機器内にも納まる大きさに抑えることができる。
【００３９】
すなわち、クライアント非再帰データ表現生成シリアライザ（２３０）は、構造型データ及び配列の構造情報にスタック構造を用いてＲＰＣの構造型データ引数を作成するクライアント構造型配列情報テーブル作成手段（２３２）を含んでおり、ＩＤポインタを用いることで高々一段の階層によるテキスト形式に変換する。サーバ非再帰データ表現解釈パーサ（３２０）は、ネットワーク（５００）を介して転送されたテキスト形式のデータをプログラミング言語で解釈可能な形式に変換する際、高々一段の階層と構造型データでのリンク関係を管理するサーバＩＤポインタテーブル（３２３）とでパラメータ情報の構造を組み立てていく機能を持つサーバパラメータ情報作成手段（３２４）を含んでいる。
【００４０】
サーバ非再帰データ表現生成シリアライザ（３５０）は、構造型データ及び配列の構造情報にスタック構造を用いて、サーバアプリケーション（３４０）を起動した戻り値を作成するサーバ構造型配列情報テーブル作成手段（３５２）を含んで高々一段の階層によるテキスト形式に変換する。
【００４１】
クライアント非再帰データ表現解釈パーサ（２５０）は、サーバ非再帰データ表現生成シリアライザ（３５０）でテキスト形式に変換された戻り値をプログラミング言語の戻り値に戻す際に、高々一段の階層と構造型データでのリンク関係を管理するクライアントＩＤポインタテーブル（２５４）と、パラメータ情報の構造を組み立てていく機能を有するクライアントパラメータ情報作成手段（２５４）とを含んでいる。
【００４２】
また、本発明における第２の実施形態をなす軽量データ転送プロトコルを用いたサービス連携システムでは、クライアント（２００）とサーバ（３００）とにプロトコル変換モジュールを生成するため拡張されるインタフェース記述言語コンパイラ（１００）が追加され、クライアント（２００）内のクライアントアプリケーション（２１０）から、サーバ（３００）内のサーバアプリケーション（３４０）及びＳＯＡＰサーバ（５００）をＲＰＣにより起動可能としている。このため、インタフェース記述言語による記述からクライアント（２００）内ではクライアント非再帰データ表現生成シリアライザ（２３０）及びクライアント非再帰データ表現解釈パーサ（２５０）、並びにサーバ（３００）内ではのサーバ非再帰データ表現解釈パーサ（３２０）及びサーバ非再帰データ表現生成シリアライザ（３５０）の各手段が稼動される。
【００４３】
また、本発明における第２の実施形態をなす軽量データ転送プロトコルを用いたサービス連携システムでは、クライアント（２００）とサーバ（３００）とにプロトコル変換モジュールを生成するため拡張されるインタフェース記述言語コンパイラ（１００）が追加され、クライアント（２００）内のクライアントアプリケーション（２１０）から、サーバ（３００）内のサーバアプリケーション（３４０）及びプロトコル変換器（４００）を経由して既存サーバ（７１０）をＲＰＣにより起動可能としている。
【００４４】
このため、インタフェース記述言語コンパイラ（１００）は、インタフェース記述言語による記述から、クライアント（２００）内ではクライアント非再帰データ表現生成シリアライザ（２３０）及びクライアント非再帰データ表現解釈パーサ（２５０）、並びにサーバ（３００）内ではサーバ非再帰データ表現解釈パーサ（３２０）及びサーバ非再帰データ表現生成シリアライザ（３５０）、並びにプロトコル変換器（４００）内ではプロトコル変換モジュール（４１０）の各手段を生成する。
【００４５】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００４６】
まず、図１を参照して本発明における第１の実施の形態について説明する。
【００４７】
図示されるように、第１の実施の形態では、ＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）のクライアント２００とＲＰＣのサーバ３００と、クライアント２００とサーバ３００との間のデータを転送できるネットワーク５００とが含まれている。
【００４８】
クライアント２００は、クライアントアプリケーション２１０、クライアント非再帰データ表現用ライブラリ２２０、クライアント非再帰データ表現生成シリアライザ２３０、ＨＴＴＰクライアント２４０、及びクライアント非再帰データ表現解釈パーサ２５０を備えている。クライアント非再帰データ表現生成シリアライザ２３０は、クライアントシリアライズ部２３１、クライアント構造型配列情報テーブル２３２、及びクライアント非再帰データ表現文書作成手段２３３を含む。クライアント非再帰データ表現解釈パーサ２５０は、クライアントパース部２５１、クライアントヘッダー情報格納部２５２、クライアントＩＤポインタテーブル２５３、クライアントパラメータ情報格納部２５４、及びプログラミング言語戻り値作成部２５５を含む。
【００４９】
サーバ３００は、ＨＴＴＰクライアント３１０、サーバ非再帰データ表現解釈パーサ３２０、サーバアプリケーション管理３３０、サーバアプリケーション３４０、及びサーバ非再帰データ表現生成シリアライザ３５０を備えている。サーバ非再帰データ表現解釈パーサ３２０は、サーバパース部３２１、サーバヘッダー情報格納部３２２、サーバＩＤポインタテーブル３２３、サーバパラメータ情報格納部３２４、及びサーバアプリケーション起動情報作成部３２５を含んでいる。サーバ非再帰データ表現生成シリアライザ３５０は、サーバシリアライズ部３５１、サーバ構造型配列情報テーブル３５２、及びサーバ非再帰データ表現文書作成手段３５３を含む。
【００５０】
図１における矢印は、データの流れを表す。図１の構成要素はそれぞれ概略、次のように動作する。
【００５１】
クライアントアプリケーション２１０は、本発明システムの利用者が作成する部分であり、通常の、例えば「Ｊａｖａ（登録商標）、Ｃ、Ｃ＋＋」等のプログラミング言語におけるメソッド呼出しを行う。クライアント非再帰データ表現用ライブラリ２２０は、クライアントアプリケーション２１０からプログラミング言語におけるメソッド呼び出しを受付け、受け取ったデータをクライアント非再帰データ表現生成シリアライザ２３０に送付し、またクライアント非再帰データ表現解釈パーサ２５０から戻り値情報を得て、クライアントアプリケーション２１０に返送する。
【００５２】
クライアント非再帰データ表現生成シリアライザ２３０は、受け取ったデータをテキストによる軽量データプロトコルに変換して、ＨＴＴＰクライアント２４０に送付する。クライアント非再帰データ表現生成シリアライザ２３０の内部では、まずクライアントシリアライズ部２３１が、プログラミング言語によるデータの受け取り、そのデータが構造を持たない単純型のデータの場合にはクライアント非再帰データ表現文書作成手段２３３に送付され、また構造を持つデータ又は配列データの場合にはクライアント構造型配列情報テーブル２３２に送付される。
【００５３】
クライアント構造型配列情報テーブル２３２は、クライアントシリアライズ２３１から渡された順番が後のものから先に、クライアント非再帰データ表現文書作成手段２３３に送付する。この結果、構造型データの子要素の部分が、親要素より先にクライアント非再帰データ表現文書作成手段２３３に送付される。クライアント非再帰データ表現文書作成手段２３３は、まずクライアント構造型配列情報テーブル２３２から受けたものを自身に送付された順番に、次にクライアントシリアライズ部２３１から受けたものを自身に送付された順番にシリアライズしてテキスト文書である軽量データ表現プロトコルの形式で、ＨＴＴＰクライアント２４０に送付する。
【００５４】
ＨＴＴＰクライアント２４０は、クライアント非再帰データ表現生成シリアライザ２３０から軽量データ表現プロトコルで表現されたテキスト表現の文字列にＨＴＴＰのヘッダーを付加して、ネットワーク５００を介してサーバ３００に送付する。この結果、ＨＴＴＰクライアント２４０は、ＲＰＣの戻り値を表すＨＴＴＰのヘッダー付き軽量データ転送プロトコル形式を得るので、この軽量データ転送プロトコル部分をクライアント非再帰データ表現解釈パーサ２５０に返送する。
【００５５】
クライアント非再帰データ表現解釈パーサ２５０は、ＨＴＴＰクライアント２４０から返送されたテキストよる軽量データ転送プロトコルをプログラミング言語のデータ型に変換した後、クライアント非再帰データ表現用ライブラリ２２０に返送する。クライアント非再帰データ表現解釈パーサ２５０内部では、まず、クライアントパース部２５１が軽量データ転送プロトコル形式のデータを受け取り、軽量データ転送プロトコルのうちヘッダー部分をクライアントヘッダ情報格納部２５２に送付する。次に、クライアントパース部２５１は、軽量データ転送プロトコルのうちのボディ部分をクライアントＩＤポインタテーブル２５３に一時格納にしつつクライアントパラメータ情報格納部２５４に送付する。プログラミング言語戻り値作成部２５５は、クライアントヘッダ情報格納部２５２とクライアントパラメータ情報格納部２５４とに入っているデータを読み出し、戻り値情報を作成してクライアント非再帰データ表現用ライブラリ２２０に返送する。
【００５６】
ＨＴＴＰサーバ３１０は、ネットワーク５００を介して、ＨＴＴＰヘッダー付きの軽量データ転送プロトコル形式のデータを受け取り、ＨＴＴＰのヘッダー部分をチェックする。ＨＴＴＰサーバ３１０は、チェックにより軽量データ転送プロトコルのデータであることを確認した後、軽量データ転送プロトコル部分をサーバ非再帰データ表現解釈パーサ３２０に送付する。
【００５７】
サーバ非再帰データ表現解釈パーサ３２０では、サーバパース部３２１が軽量データ転送プロトコル部分をＨＴＴＰサーバ３１０から受け取り、軽量データ転送プロトコル部分のうちヘッダー部分をサーバヘッダ情報格納部３２２に送付する。一方、ボディ部分はサーバＩＤポインタテーブル３２３を用いながらサーバパラメータ情報格納部３２４に格納される。サーバアプリケーション起動情報作成部３２５は、サーバヘッダ情報格納部３２２及びサーバパラメータ情報格納部３２４からデータを読み出し、プログラミング言語のデータ型に変換した後、この変換したデータ型をサーバアプリケーション管理３３０に送付する。
【００５８】
サーバアプリケーション管理３３０は、サーバアプリケーションの名前と対応するサーバアプリケーション３４０の対応関係を管理しており、サーバ非再帰データ表現解釈パーサ３２０から渡されたプログラミング言語によるデータ型のうち、サーバアプリケーション３４０の名前に対応する部分を抜き出す。サーバアプリケーション管理３３０は、プログラミング言語によるデータ型内で表現されているメソッドに対してプログラミング言語で表現されている引数を、上述の抜き出した名前に対応するサーバアプリケーション３４０に対して送付する。サーバアプリケーション管理３３０は、その引数を送付してサーバアプリケーション３４０を起動し、サーバアプリケーション３４０から戻り値を得る。また、サーバアプリケーション管理３３０は、サーバアプリケーション３４０から受け取った戻り値を、プログラミング言語のデータ型の形式でサーバ非再帰データ表現生成シリアライザ３５０に送付する。
【００５９】
サーバアプリケーション３４０は、サーバアプリケーション管理３３０からメソッド呼出しを受け、戻り値をサーバアプリケーション管理３３０に返送する。
【００６０】
サーバ非再帰データ表現生成シリアライザ３５０は、サーバアプリケーション管理３３０から戻ってきたプログラミング言語のデータ型を、構造を持たない単純型のデータの場合にはクライアント非再帰データ表現文書作成手段３５３に送付し、構造を持つデータ又は配列データの場合にはクライアント構造型配列情報テーブル３５２に送付する。クライアント構造型配列情報テーブル３５２は、クライアントシリアライズ２３１から受けた順番が後のものから先にクライアント非再帰データ表現文書作成手段３５３に送付する。クライアント非再帰データ表現文書作成手段３５３は、まずサーバ構造型配列情報テーブル３５２から受けたものを自身に送付された順番に、次にサーバシリアライズ部３５１から受けたものを自身に送付された順番にシリアライズし、テキスト文書である軽量データ表現プロトコルの形式でＨＴＴＰサーバ３１０に返す。
【００６１】
ネットワーク５００は、例えばインターネットの標準プロトコルであるＴＣＰ／ＩＰを用いるネットワークである。
【００６２】
次に、図１のブロック図及び図２のシーケンス図を参照して第１の実施形態における全体の動作について詳細に説明する。図２に示されるステップ番号数字は丸印内に記入されているが、以下の記載では番号数字のみで丸印は省略される。
【００６３】
まず、クライアントアプリケーション２１０は、プログラミング言語のデータ型を用いて、ＨＴＴＰサーバのホスト名及びポート番号、サーバアプリケーション３４０に対応するサービス名、サーバアプリケーション３４０において起動するメソッド名、このメソッドを起動する際に渡す引数情報を、クライアント非再帰データ表現解釈パーサシリアライザ２２０に送付（ステップＡ−１）する。この場合、ヘッダー情報にはサービス名とメソッド名とが含まれる。次に、クライアント非再帰データ表現用ライブラリ２２０は、ヘッダー情報と引数情報とをクライアント非再帰データ表現生成シリアライザ２３０に送付（ステップＡ−２）し、この回答として軽量データ転送プロトコルによるデータを取得（ステップＡ−３）する。
【００６４】
次に、クライアント非再帰データ表現用ライブラリ２２０は、上記ステップＡ−１で受けたホスト名及びポート番号並びにステップＡ−３で得た軽量データ転送プロトコルによるデータを、ＨＴＴＰクライアント２４０に送付（ステップＡ−４）する。ＨＴＴＰクライアント２４０は、ステップＡ−４で受けた軽量データ転送プロトコルの前にＨＴＴＰのヘッダーを付加し、ネットワーク５００を介してＨＴＴＰサーバ３１０に送付（ステップＡ−５）する。
【００６５】
ＨＴＴＰサーバ３１０は、ＨＴＴＰヘッダーの部分を見て、送付されたものが軽量データ転送プロトコルの形式であることをチェックした後、軽量データ表現プロトコル部分をサーバ非再帰データ表現解釈パーサ３２０に送付（ステップＡ−６）する。
【００６６】
サーバ非再帰データ表現解釈パーサ３２０は、軽量データ転送プロトコル部分を解釈してヘッダー情報と引数情報とを、プログラミング言語によるデータ形式で取出し（ステップＡ−７）する。更に、サーバ非再帰データ表現解釈パーサ３２０は、ヘッダー情報から取り出したサーバアプリケーション３４０に対応するサービス名及びサーバアプリケーション３４０において起動するメソッド名、更に、引数情報をサーバアプリケーション管理３３０へ送付（ステップＡ−８）する。
【００６７】
サーバアプリケーション管理３３０は、起動するサーバアプリケーション３４０をステップＡ−８で渡されたサービス名から特定し、そのサーバアプリケーション３４０に対してステップＡ−８で受けた引数情報を送付すると共にステップＡ−８で受けたメソッドを起動（ステップＡ−９）する。
【００６８】
サーバアプリケーション３４０は、ステップＡ−９で受けた引数を用いて処理を行い、処理結果の戻り値をサーバアプリケーション管理３３０に返送（ステップＡ−１０）する。サーバアプリケーション管理３３０は、ステップＡ−１０で受けた戻り値に戻り値の型情報、例えば文字列型、数値型などを付加して、サーバ非再帰データ表現生成シリアライザ３５０に送付（ステップＡ−１１）する。
【００６９】
サーバ非再帰データ表現生成シリアライザ３５０は、ステップＡ−１１で受けた戻り値情報を軽量データ転送プロトコルに変換（ステップＡ−１２）する。更に、サーバ非再帰データ表現生成シリアライザ３５０は、ステップＡ−１２で作成した軽量データ転送プロトコルをＨＴＴＰサーバ３１０に送付（ステップＡ−１３）する。ＨＴＴＰサーバ３１０は、ステップＡ−１３で受けた軽量データ転送プロトコルの前にＨＴＴＰのヘッダーを付け、ネットワーク５００を介してＨＴＴＰクライアント２４０に送付（ステップＡ−１４）する。
【００７０】
ＨＴＴＰクライアント２４０は、ＨＴＴＰヘッダーの部分を見て送付されたものが軽量データ転送プロトコルの形式であることをチェックした後、軽量データ表現プロトコル部分をクライアント非再帰データ表現解釈パーサ２５０に送付（ステップＡ−１５）する。更に、クライアント非再帰データ表現解釈パーサ２５０は、軽量データ転送プロトコル部分を解釈（パース）して戻り値情報を、プログラミング言語によるデータ形式で取出し（ステップＡ−１６）する。更に、クライアント非再帰データ表現解釈パーサ２５０は、ステップＡ−１６で取り出したプログラミング言語による戻り値をクライアント非再帰データ表現用ライブラリ２２０に送付（ステップＡ−１７）する。
【００７１】
最後に、クライアント非再帰データ表現用ライブラリ２２０は、ステップＡ−１７で得た戻り値を、クライアントアプリケーション２１０に返送（ステップＡ−１８）する。
【００７２】
次に、図１から図６までを併せ参照して、プログラミング言語のデータ型と軽量データ表現プロトコルとの間の変換方式について詳細に説明する。
【００７３】
まず、図３を中心に参照して、クライアント非再帰データ表現生成シリアライザ２２０およびその構成要素において、ヘッダー情報及び引数情報から、軽量データ転送プロトコルのデータを作成する部分、すなわち、図２のステップＡ−２及びステップＡ−３について詳細に説明する。
【００７４】
サーバアプリケーション３４０の提供するメソッドの引数としては、例えば、図３の１）に示されるサーバアプリケーションのメソッドの形式として戻り値を基本型データ（ＰｒｉｍｉｔｉｖｅＡ）で表している。図示されるように、メソッドの形式としては、基本型データ（Ｐｒｉｍｉｔｉｖｅ＿Ｂ  ａｒｇ１）と構造型データ（Ｓｔｒｕｃｔ＿Ｃ  ａｒｇ２）と基本型データの１次元配列（ＰｒｉｍｉｔｉｖｅＡｒｒａｙ＿Ｄ  ａｒｇ３）との何れか一つが任意の個数で表れてよい。特に、基本型データとしては、整数値型、文字列型、真偽値型、時刻型、ｂａｓｅ６４でエンコーデイングされたバイト列型が利用可能である。
【００７５】
図３の２）で示されるような構造型データの構成要素としては構造型データを用いることもできる。また、サーバアプリケーション３４０の戻り値としては、基本型データ、構造型データ、又は基本型データの１次元配列を用いることができる。
【００７６】
まず、クライアント非再帰データ表現生成シリアライザ２３０内のクライアントシリアライズ部２３１には、図３の形式のサーバアプリケーションを起動するために、サービス名及びメソッド名からなるヘッダー情報と、引数情報（Ｐｒｉｍｉｔｉｖｅ＿Ｂ  ａｒｇ１，Ｓｔｒｕｃｔ＿Ｃ  ａｒｇ２，ＰｒｉｍｉｔｉｖｅＡｒｒａｙ＿Ｄ  ａｒｇ３）とが送付される。クライアントシリアライズ部２３１は、サービス名及びメソッド名からなるヘッダー情報をクライアント非再帰データ表現文書作成手段２３３に送付する。クライアント非再帰データ表現文書作成手段２３３は、受けたサービス名及びメソッド名からなるヘッダー情報から軽量データ表現プロトコルによるヘッダー部分を作成する。
【００７７】
具体的には図６に示される「Ｈｅａｄ」から「空行」までが作成される。「Ｈｅａｄ」はヘッダーの始まりを表す予約語である。「ｓＮ」は予約語であり、この後に、サーバアプリケーション３４０の名前を表すサービス名が表れる。例えば、図６では「Ｓｅｒｖｅｒ  ＡＰＰｌｉｃａｔｉｏｎ」というサービス名となる。「ｐＮ」は予約語であり、この後に起動するサーバアプリケーション３４０のメソッド名が表れる。例えば、図６では「ｍｅｔｈｏｄ１」というメソッドが起動されることになる。
【００７８】
次に、図４のフローチャートを用いて、クライアントシリアライズ部２３１での引数情報の解釈方法について説明する。
【００７９】
まず、クライアントシリアライズ部２３１は、引数情報の１つを取出し（ステップＢ１）し、次に取り出した引数情報が基本型データかどうかを判断（ステップＢ２）する。ステップＢ２で判定した結果が「ノー」で基本型データでない場合には、配列型であるかどうかが判定（ステップＢ３）される。ステップＢ３が「ノー」で配列型でもない場合は、必ず構造型データとなるが、確かに構造型データであるかどうかが判定（ステップＢ４）される。ステップＢ４が「イエス」で構造型データである場合には、構造型データに対して階層を表すＩＤポインタが振られ、そのＩＤポインタを振った引数名がクライアント非再帰データ表現文書作成手段２３３に送付（ステップＢ５）される。
【００８０】
次に、クライアントシリアライズ部２３１は、構造型データ名とステップＢ５で割り振ったＩＤポインタ値とを一組としクライアント構造型配列情報テーブル作成手段２３２に送付（ステップＢ６）する。次に、構造型データの子要素が一つ取出し（ステップＢ７）され、更に、ステップＢ７で取り出された構造型データの子要素が構造型データ又は配列を持つかどうかが判定（ステップＢ８）される。
【００８１】
ステップＢ８が「ノー」で構造型データの子要素として配列も構造型データも持たない場合は、構造型データの子要素がクライアント構造型配列情報テーブル作成手段２３２に送付（ステップＢ９）される。次に、クライアントシリアライズ部２３１は上記ステップＢ７で取り出された子要素の次の子要素があるかどうかを判定（ステップＢ１０）する。
【００８２】
ステップＢ１０が「イエス」で次の子要素がある場合、上記ステップＢ７のステップが実行される。上記ステップＢ８が「イエス」で構造型データの子要素として配列または構造型データを持つと判定された場合、構造型データ又は配列に対して配列を表すＩＤポインタが、割振り先のクライアント構造型配列情報テーブル作成手段２３２に送付（ステップＢ１１）される。その後、上記ステップＢ６に戻り、構造型データと割り振ったＩＤポインタの組とが構造型配列情報テーブル作成手段２３２に送付される。
【００８３】
上記ステップＢ２が「イエス」で基本型データと判定された場合、クライアントシリアライズ部２３１は、引数名及び引数値をクライアント非再帰データ表現文書作成手段２３３に送付（ステップＢ１２）する。
【００８４】
上記ステップＢ３が「イエス」で配列型であると判定された場合、クライアントシリアライズ部２３１は、配列型に対して階層を表すＩＤポインタを割振りして、クライアント非再帰データ表現文書作成手段２３３に送付（ステップＢ１３）する。次に、配列型の構成要素がクライアント配列情報テーブル作成手段２３２に送付（ステップＢ１４）される。
【００８５】
次に、上記ステップＢ１０が「ノー」か、上記ステップＢ１２又はＢ１４に続き、次の引数があるかどうかが判定（ステップＢ１５）され、引数ありの「イエス」の場合には上記ステップＢ１に戻り、引数なしの「ノー」であれば図４のフローチャートに示された処理は終了する。
【００８６】
クライアントシリアライズ部２３１が図３のデータを入力として前述した図４のフローチャートに示される処理が終わった場合、クライアント非再帰データ表現文書作成手段２３３とクライアント構造型配列情報テーブル作成手段２３２とはメモリ上に図５に示すスタック構造を有するデータを持つ。図４の処理の後には、クライアント構造型配列作成手段２３２の保持するデータが、クライアント非再帰データ表現文書作成手段２３３に送付される。
【００８７】
クライアント非再帰データ表現文書作成手段２３３は、クライアント構造型配列情報テーブル作成手段２３２から受けたデータをスタックの上から、例えば図５の場合では「１０．」から、たどりながら、軽量データ転送プロトコル形式のテキスト文書を作成する。まず、図６で示されるように「Ｂｏｄｙ」という予約語が出力される。また、「１０．」のスタックをみて「Ａｒｒａｙ」というキーワードから配列であることが判別される。そののちスタックを下にたどった場合、「７．」の箇所で「ｉｄ＝２００  Ｐｒｉｍｉｔｉｖｅ＿Ａｒｒａｙ＿Ｄ」が見つけられるので、ここまでの配列であることが判断され、配列の形式で、図６の６行目から１０行目までが出力される。
【００８８】
次に、図５の「６．」の箇所で、基本型データの「Ｐｒｉｍｉｔｉｖｅ＿Ｈ  ｖａｌｕｅ＿ｏｆ＿Ｈ」を見つけることができので、それから下にたどり「４．」に示される「ｉｄ＝１１０のＳｔｒｕｃｔ＿Ｆ」の構成要素であることが認識される。この結果、構造型データの形式により図６の１１行目から１４行目までが出力される。次に、図５の「３．」に「Ｓｔｒｕｃｔ＿Ｆ」が「ｉｄ＝１１０」で定義されていることが確認され、更に「２．」の部分が、「１．」で定義された「ｉｄ＝１００」の構成要素と判定されるので、図６の１５行目から１８行目までが構造型データの形式で出力される。
【００８９】
クライアント非再帰データ表現文書作成手段２３３は、クライアント構造型配列情報テーブル作成手段２３２から受けたものの送付を完了したのち、クライアントシリアライズ部２３１から受けたメモリ上の情報を、スタックの下、すなわち数字の小さい順で、図６の１９行目から２１行目までを出力する。そして、クライアント非再帰データ表現文書作成手段２３３は、空行を記述した後に、軽量データ転送プロトコルの終わりを表す「Ｅｎｄ」を記述し、出力を完了する。
【００９０】
次に、図７のフローチャートに図６の軽量データ転送プロトコルの例を併せ参照して、サーバ非再帰データ表現解釈パーサ３２０において、軽量データ転送プロトコルからヘッダー情報と引数情報とを作成し、サーバアプリケーション管理３３０に送付するまでの図２に示されたステップＡ−７の手順について詳細に説明する。
【００９１】
まず、サーバパース部３２１は、図６において軽量データ転送プロトコルの始めを表す「Ｈｅａｄ」から空行までを１行ずつ読み込み、例えば「ｓＮ」のヘッダー名と「ｓｅｒｖｅｒＡｐｐｌｉｃａｔｉｏｎ」といったヘッダー値とを一組にして、サーバヘッダ情報作成手段３２２に格納（ステップＣ１）する。次に、軽量データ転送プロトコルのうち、引数部分の始めを表す「Ｂｏｄｙ」と記述されている行が読込み（ステップＣ２）される。次いで、その次の行が１行読込み（ステップＣ３）される。このステップＣ３で読み込んだ行が「ｉｄ＝数字」の形式で表させるＩＤポインタである行かどうかが判定（ステップＣ４）される。ＩＤポインタから始まる行の場合には、ＩＤポインタが表す構造のまとまりである「｝」までが読込み（ステップＣ５）され、次いで、このステップＣ５で読み込んだ行の中にＩＤポインタ値が含まれているかどうかが調査（ステップＣ６）される。
【００９２】
図６を用いて例を示すと、１７行目の「Ｓｔｒｕｃｔ＿Ｆ：ｉｄ＝１１０」の場合がＩＤポインタ値の含まれる場合に対応する。上記ステップＣ６が「ノー」で、ＩＤポインタ値が含まれていないと判定した場合に、サーバパース部３２１は、ステップＣ５で読み込んだものから、構造型データまたは配列のプログラミング言語での実体を作成し、サーバパラメータ情報作成手段３２４に送付（ステップＣ７）する。例えば、図６の６行目から１０行目を読み込んだ場合には配列のプログラミング言語での実体が作成され、また、図６の１１行目から１４行目までを読み込んだ場合は、構造型データの実体が作成される。上記ステップＣ７で作成した実体への参照とＩＤポインタ値との組はサーバＩＤポインタテーブル３２３に登録（ステップＣ８）される。
【００９３】
一方、上記ステップＣ６が「イエス」で読み込んだ行の中にＩＤポインタ値が含まれていた場合、サーバパース部３２１は、ＩＤポインタ値をキーとしてサーバＩＤポインタテーブル３２３から、ＩＤポインタで指される参照を獲得し、更にその参照を用いてプログラミング言語における実体を取得（ステップＣ９）する。次に、上記ステップＣ５で読み込んだ部分から実体が作成され、更にＩＤポインタで表されている部分には、上記ステップＣ９で獲得した実体が埋込み（ステップＣ１０）される。例えば、図６の１５行目から１８行目まではＩＤポインタで始まる。しかし、この部分の実体が作成された後、１７行目で指される「ｉｄ＝１１０」の部分には、実体である図６の１１行目から１４行目までに作成された構造型データが埋め込まれる。
【００９４】
上記ステップＣ４が「ノー」で、ＩＤポインタから始まる行ではないと判定した場合、サーバパース部３２１は、基本型データを表す行かどうかを判定（ステップＣ１１）する。このステップＣ１１が「イエス」で、基本型データを表す行であると判定された場合、図６の１９行目がその例にあたるが、基本型データのデータがプログラミング言語で作成され、サーバパラメータ情報作成手段３２４に送付（ステップＣ１２）される。
【００９５】
上記ステップＣ１１が「ノー」で、基本型データを表す行ではないと判定された場合、構造型データまたは配列に対応する行であることが確認（ステップＣ１３）される。例えば、図６の２０行目が構造型データに対応するものであり、２１行目が配列に対応するものである。
【００９６】
次に、読み込んだ行からＩＤポインタ値の部分が取得（ステップＣ１４）される。次に、ＩＤポインタをキーとしてサーバＩＤポインタで指される参照が獲得された後、その実体が取得（ステップＣ１５）される。次に、このステップＣ１５で取得したプログラミング言語の実体、すなわち構造型データまたはプログラミング言語の配列をＩＤポインタ部分に埋め込んでプログラミング言語実体が構成（ステップＣ１６）される。例えば、図６で２０行目の「ｉｄ＝１００」の部分には、１５行目から１８行目までに作成される構造型データが埋め込まれ、更に１７行目部分には１１行目から１４行目までが埋め込まれている。
【００９７】
上記ステップＣ８、Ｃ１０、Ｃ１６それぞれに次いで、サーバパース部３２１は、次の行を読込み（ステップＣ１７）する。このステップＣ１７で読み込んだ行が空行であるかどうかが判定（ステップＣ１８）される。このステップＣ１８が「ノー」で空行でないと判定された場合には次の手順は上記ステップＣ３に戻る。ステップＣ１８が「イエス」で空行であると判定された場合には次の行を読み込み、軽量データ転送プロトコルの終わりを表す「Ｅｎｄ」という文字列を確認（ステップＣ１９）する。
【００９８】
図７に示す一連の処理フローが終わった後、サーバアプリケーション起動情報作成部３２５は、サーバヘッダ情報作成手段３２２及びサーバパラメータ情報作成手段３２４から、サービス名、メソッド名、及び引数情報を読み出し、サーバアプリケーション管理３３０に送付する。
【００９９】
次に、図８のフローチャートを参照して、サーバ非再帰データ表現生成シリアライザ３５０が、図２におけるステップＡ−１１で送付する軽量データ転送プロトコルを戻り値情報から作成する手順について詳細に説明する。
【０１００】
まず、戻り値情報はサーバアプリケーション管理３３０からサーバ非再帰データ表現生成シリアライザ３５０内のサーバシリアライズ部３５１に送付される。サーバシリアライズ部３５１は、サーバアプリケーションが正常に起動した際、この正常起動の成功をサーバ非再帰データ表現文書作成手段３５３に送付する。サーバ非再帰データ表現文書作成手段３５３はサーバアプリケーションの起動が成功したことを表す軽量データ表現プロトコルによるヘッダー部分を作成する。具体的には、図１０における「Ｈｅａｄ」から空行までが作成される。この「Ｈｅａｄ」は軽量データ表現プロトコルのヘッダーの始まりを表す予約語である。また、図１１における「ｒＰｒｏ」は予約語であり、この後に、サーバアプリケーション３４０の起動が正常であれば「ｎｏｒｍａｌ」が、正常でなければ「Ｅｒｒｏｒ」という文字列が入る。
【０１０１】
ここで、サーバシリアライズ部３５１は戻り値情報を取出し（ステップＤ１）する。次に、サーバシリアライズ部３５１はステップＤ１で取り出した戻り値が基本型データかどうかを判断（ステップＤ２）する。ステップＤ２で判定した結果が「ノー」で基本型データでない場合は、配列型であるかどうかが判定（ステップＤ３）される。ステップＤ３が「ノー」で配列型でもない場合は、必ず構造型データとなるので構造型データであることが確認（ステップＤ４）される。構造型データである場合は、構造型データに対して階層を表すＩＤポインタが割り振られ、そのＩＤポインタを振った戻り値がサーバ非再帰データ表現文書作成手段３５３に送出（ステップＤ５）される。
【０１０２】
次に、サーバシリアライズ部３５１は構造型データ名とステップＤ５で割り振ったＩＤポインタ値とを組とした情報をサーバ構造型データ配列情報作成手段３５２に送出（ステップＤ６）し、次いで構造型データの子要素を１つ取出し（ステップＤ７）する。このステップＤ７で取り出した構造型データの子要素として更に構造型データ又は配列を持つかどうかが判定（ステップＤ８）される。
【０１０３】
ステップＤ８が「ノー」で、構造型データの子要素として配列も構造型データも持たない場合、サーバシリアライズ部３５１は、構造型データの子要素をサーバ構造型配列情報テーブル作成手段３５２に送出（ステップＤ９）し、次いで、上記ステップＤ７で取り出した子要素の次の子要素があるかどうかを判定（ステップＤ１０）する。このステップＤ１０が「イエス」で次の子要素がある場合、ステップＤ７の手順が実行される。
【０１０４】
上記ステップＤ８が「イエス」で構造型データの子要素として配列または構造型データを持つと判定した場合、サーバシリアライズ部３５１は、構造型データ又は配列に対して配列を表すＩＤポインタを割り振り、サーバ構造型配列情報テーブル作成手段３５２に送付（ステップＤ１１）して、その後構造型データと割り振ったＩＤポインタとの組を構造型データ配列情報作成手段３５２に送付（ステップＤ１１）する。
【０１０５】
上記ステップＤ２が「イエス」で基本型データと判定された場合、サーバシリアライズ部３５１は、引数名と引数値とをクライアント非再帰データ表現文書作成手段２３３に送付（ステップＤ１２）する。上記ステップＤ３が「イエス」で配列型であると判定された場合、サーバシリアライズ部３５１は、配列型に対して階層を表すＩＤポインタを割り振り、サーバ非再帰データ表現文書作成手段３５３に送付（ステップＤ１３）し、次いで、配列型の構成要素をサーバ配列情報テーブル作成手段３５２に送付（ステップＤ１４）する。
【０１０６】
上記ステップＤ１０の「ノー」及びステップＤ１２，Ｄ１４により、図８に示すフローチャートの処理は終了する。図８に示された処理の後には、サーバ構造型配列作成手段３５２の保持するデータが、サーバ非再帰データ表現文書作成手段３５３に送付される。
【０１０７】
次に、サーバ非再帰データ表現文書作成手段は、まず「Ｂｏｄｙ」を出力した後、サーバ構造型配列情報テーブル作成手段３５２から受けたデータを、スタックの上からたどりつつ、軽量データ転送プロトコル形式のテキスト文書に作成する。サーバ非再帰データ表現文書作成手段３５３は、クライアント構造型配列情報テーブル作成手段３５２から受けたデータの送付を完了したのち、クライアントシリアライズ部２３１から受けたメモリ上の情報を、スタックに続いて送付する。このようにして、サーバ非再帰データ表現文書作成手段３５３は、空行を記述した後に、軽量データ転送プロトコルの終わりを表す「Ｅｎｄ」を記述し、この送付を完了する。
【０１０８】
次に、図９のフローチャートを参照して、クライアント非再帰データ表現解釈パーサ２５０が、図２におけるステップＡ−１６で軽量データ転送プロトコルからヘッダー情報と戻り値情報とを作成する手順について詳細に説明する。
【０１０９】
まず、クライアント非再帰データ表現解釈パーサ２５０では、クライアントパース部２５１が、軽量データ転送プロトコルの始めを表す「Ｈｅａｄ」から空行までを１行ずつ読み込み、ヘッダー名、例えば、図１１の「ｒＰｒｏ」と、ヘッダー値、例えば、図１１の「ｎｏｒｍａｌ」とを組にしてクライアント情報作成手段２５２に格納（ステップＥ１）する。次に、軽量データ転送プロトコルのうち、引数部分の始めを表す「Ｂｏｄｙ」と記述されている行が読込み（ステップＥ２）され、次いで、その次の行が１行読込み（ステップＥ３）される。
【０１１０】
次に、クライアントパース部２５１は、前記ステップＥ３で読み込んだ行が「ｉｄ＝数字」の形式で表させるＩＤポインタである行かどうかを判定（ステップＥ４）する。このステップＥ４が「イエス」でＩＤポインタから始まる行の場合には、ＩＤポインタが表す構造のまとまりである「｝」までが読込み（ステップＥ５）される。次に、このステップＥ５において読み込んだ行の中にＩＤポインタ値が含まれているかどうかを調査（ステップＥ６）する。
【０１１１】
このステップＥ６が「ノー」で、ＩＤポインタ値が含まれていないと判定した場合、クライアントパース部２５１は、上記ステップＥ５で読み込んだデータから構造型データまたは配列のプログラミング言語による実体を作成し、クライアントパラメータ情報作成手段２５４に送付（ステップＥ７）する。次いで、上記ステップＥ７で作成した実体への参照とＩＤポインタ値との組がクライアントＩＤポインタテーブル２５３に登録（ステップＥ８）される。
【０１１２】
上記ステップＥ６が「イエス」で、読み込んだ行の中にＩＤポインタ値が含まれていた場合、クライアントパース部２５１は、ＩＤポインタ値をキーとしてクライアントＩＤポインタテーブル２５３から、ＩＤポインタで指される参照を獲得し、さらにその参照を用いてプログラミング言語における実体を取得（ステップＥ９）する。次いで、クライアントパース部２５１は、上記ステップＥ５で読み込んだ部分から実体を作成し、更にＩＤポインタで表されている部分に、上記ステップＥ９で獲得した実体を埋込み（ステップＥ１０）する。
【０１１３】
上記ステップＥ４が「ノー」で、ＩＤポインタから始まる行ではないと判定した場合、クライアントパース部２５１は、続いて、基本型データを表す行かどうかを判定（ステップＥ１１）する。このステップＥ１１が「イエス」で、基本型データを表す行であると判定した場合、基本型データのデータがプログラミング言語で作成され、クライアントパラメータ情報作成手段２５４に送付（ステップＥ１２）される。
【０１１４】
上記ステップＥ１１が「ノー」で、基本型データを表す行ではないと判定した場合、クライアントパース部２５１は、構造型データまたは配列に対応する行であることを確認（ステップＥ１３）し、次いで、読み込んだ行からＩＤポインタ値の部分を取得（ステップＥ１４）する。次に、ＩＤポインタをキーとしてサーバＩＤポインタで指される参照が獲得された後、その実体が取得（ステップＥ１５）される。次いで、上記ステップＥ１５で取得したプログラミング言語の実体である構造型データまたは配列がＩＤポインタ部分に埋め込まれてプログラミング言語実体が構成（ステップＥ１６）される。
【０１１５】
上記ステップＥ８，Ｅ１０，Ｅ１２及びステップＥ１６に次いで、クライアントパース部２５１は、次の行を読込み（ステップＥ１７）する。
【０１１６】
次いで、クライアントパース部２５１は、このステップＥ１７で読み込んだ行が空行であるかどうかを判定（ステップＥ１８）する。このステップＥ１８が「ノー」で空行でないと判定された場合、手順は上記ステップＥ３に戻る。上記ステップＥ１８が「イエス」で空行であると判定された場合、次の行が読み込まれ軽量データ転送プロトコルの終わりを表す「Ｅｎｄ」という文字列が確認（ステップＥ１９）されて、図９に示す一連の処理フローが終る。
【０１１７】
上記ステップＥ１９の後、プログラミング言語戻り値作成部２５５は、クライアントヘッダ情報作成手段２５２及びクライアントパラメータ情報作成手段２５４からデータを読み出し、戻り値部分をクライアント非再帰データ表現用ライブラリ２２０に送付する。
【０１１８】
上述した第１の実施の形態で、構造型データを表現している場合にもクライアントとサーバとの間で送受されるテキスト文書は、高々一段の階層しか含まれないので、多段の階層を含む場合で文法の複雑さを表すクラスが文脈自由文法となるのに比べて、より高速に解釈可能な正規文法により表現できる。このため、パーシングを高速に行うことができる。また、階層構造が高々一段であることを仮定してよいことから、パーシングのプログラム自体を多段の階層を許すＸＭＬのパーサに比べて小さく作成することが可能である。
【０１１９】
次に、図２に図５及び図６を併せ参照して具体的な実施例を用いて上述した第１の実施の形態における図２に対応する動作について説明する。
【０１２０】
図５では、アドレス帳にデータを登録する際、クライアントからサーバに送られるデータのうち軽量データ転送プロトコル部分が示されている。実際の送信データにはこれにＨＴＴＰのヘッダーが付加される。また、図６には、サーバからクライアントに戻される軽量データ転送プロトコル部分が示されている。
【０１２１】
まず、上述したステップＡ−１で、クライアントアプリケーション２１０は、プログラミング言語のデータ型を用いて、ＨＴＴＰサーバのホスト名、ポート番号、サーバアプリケーション３４０に対応するサービス名、サーバアプリケーション３４０において起動するメソッド名、及びこのメソッドを起動する際に渡す引数情報、それぞれをクライアント非再帰データ表現用ライブラリ２２０に送付する。すなわち、図示される例では、ＨＴＴＰサーバのホスト名は「ｄｉｓｔｒｉ．ｎｗｋ．ｃｌ．ｎｅｃ．ｃｏ．ｊｐ」であり、ポート番号はＨＴＴＰに用いられる「８０」であり、サーバアプリケーション３４０に対応するサービス名は「Ａｄｄｒｅｓｓｂｏｏｋ」であり、また、サーバアプリケーション３４０において起動するメソッド名は「ｒｅｇｉｓｔｅｒ」である。そして、これらはヘッダー情報に含まれる。更に、このメソッドを起動する際に渡す引数情報としては「ｓＴ」で表される文字列型のデータ「Ｙａｓｕｙｕｋｉ＿ＢＥＰＰＵ」と、構成要素として「ｂｌｏｃｋ，ｔｏｗｎ，  ｃｉｔｙ，ｐｒｅｆｅｃｔｕｒｅ，ｃｏｕｎｔｒｙ，ｚｉｐＣｏｄｅ」を持つ構造体と、文字列型の「０４４８５６００００」との三つがある。
【０１２２】
次のステップＡ−２でクライアント非再帰データ表現用ライブラリ２２０は、クライアントアプリケーション２１０から受け取ったもののうち、ヘッダー情報に含まれるサービス名及びメソッド名、並びに下記の引数情報をクライアント非再帰データ表現生成シリアライザ２２０に送付する。サービス名はサーバアプリケーション３４０に対応する「Ａｄｄｒｅｓｓｂｏｏｋ」であり、メソッド名としてはサーバアプリケーション３４０において起動する「ｒｅｇｉｓｔｅｒ」である。また、このメソッドを起動する際に渡す引数情報には「ｓＴ」で表される文字列型のデータ「Ｙａｓｕｙｕｋｉ＿ＢＥＰＰＵ」と、「ｂｌｏｃｋ，ｔｏｗｎ，ｃｉｔｙ，ｐｒｅｆｅｃｔｕｒｅ，ｃｏｕｎｔｒｙ，ｚｉｐＣｏｄｅ」を構成要素として持つ構造体と、文字列型での「０４４８５６００００」との三つが含まれる。
【０１２３】
次のステップＡ−３で、クライアント非再帰データ表現生成シリアライザ２３０は、上述したステップＡ−２で受けたプログラミング言語のデータのうちサービス名として「Ａｄｄｒｅｓｓｂｏｏｋ」を、サーバアプリケーション３４０において起動するメソッド名として「ｒｅｇｉｓｔｅｒ」を、更に引数情報として作成した軽量データ表現プロトコルを、それぞれクライアント非再帰データ表現用ライブラリ２２０に返送する。引数情報は、このメソッドを起動する際に送付するものとして「ｓＴ」で表される文字列型のデータ「Ｙａｓｕｙｕｋｉ＿ＢＥＰＰＵ」と、「ｂｌｏｃｋ，ｔｏｗｎ，ｃｉｔｙ，ｐｒｅｆｅｃｔｕｒｅ，ｃｏｕｎｔｒｙ，ｚｉｐＣｏｄｅ」を構成要素として持つ構造体と、文字列型での「０４４８５６００００」との三つから、図５に示される「Ｈｅａｄ」から「Ｅｎｄ」までの部分である軽量データ表現プロトコルに作成される。
【０１２４】
次のステップＡ−４で、クライアント非再帰データ表現用ライブラリ２２０は、上記ステップＡ−１で受けたホスト名「ｄｉｓｔｒｉ．ｎｗｋ．ｃｌ．ｎｅｃ．ｃｏ．ｊｐ」及びポート番号「８０」、並びに上記ステップＡ−３で受けた軽量データ転送プロトコルによるデータをＨＴＴＰクライアント２４０に送付する。
【０１２５】
次のステップＡ−５では、ＨＴＴＰクライアント２４０が、上記ステップＡ−４で受けた軽量データ転送プロトコルの前に、図５に示される「ＰＯＳＴ」から「Ｃｏｎｔｅｎｔ−ｌｅｎｇｔｈ：ｘｘｘ」までのＨＴＴＰのヘッダーと空行とを付加し、ネットワーク５００を介して、ＨＴＴＰサーバ３１０に送付する。
【０１２６】
次のステップＡ−６で、ＨＴＴＰサーバ３１０は、ＨＴＴＰヘッダーの「Ｃｏｎｔｅｎｔ−ｔｙｐｅ  ｔｅｘｔ／ｃｄｒ」部分を見て、送付されたものが軽量データ転送プロトコルの形式であることをチェックした後、軽量データ表現プロトコル部分をサーバ非再帰データ表現解釈パーサ３２０に送付する。
【０１２７】
次のステップＡ−７で、サーバ非再帰データ表現解釈パーサ３２０は、軽量データ転送プロトコル部分を解釈してヘッダー情報からサーバアプリケーション３４０に対応するサービス名として「Ａｄｄｒｅｓｓｂｏｏｋ」及びサーバアプリケーション３４０において起動するメソッド名として「ｒｅｇｉｓｔｅｒ」を取り出し、引数情報から「ｓＴ」で表される文字列型のデータ「Ｙａｓｕｙｕｋｉ＿ＢＥＰＰＵ」と、「ｂｌｏｃｋ，ｔｏｗｎ，ｃｉｔｙ，ｐｒｅｆｅｃｔｕｒｅ，ｃｏｕｎｔｒｙ，ｚｉｐＣｏｄｅ」を構成要素として持つ構造型データと、文字列型である「０４４８５６００００」との三つを取り出す。
【０１２８】
次のステップＡ−８で、サーバ非再帰データ表現解釈パーサ３２０は、ヘッダー情報から取り出したサーバアプリケーション３４０に対応するサービス名「Ａｄｄｒｅｓｓｂｏｏｋ」及びサーバアプリケーション３４０において起動するメソッド名「ｒｅｇｉｓｔｅｒ」、並びに上記引数情報を、サーバアプリケーション管理３３０に送付する。
【０１２９】
次のステップＡ−９で、サーバアプリケーション管理３３０は、上記ステップＡ−８で受けたサービス名「Ａｄｄｒｅｓｂｏｏｋ」から、起動するサーバアプリケーション３４０を特定し、そのサーバアプリケーションに対してステップＡ−８で受けた引数情報を送付してステップＡ−８で受けたメソッドを起動する。
【０１３０】
引数情報は、文字列型のデータ「Ｙａｓｕｙｕｋｉ＿ＢＥＰＰＵ」と、「ｂｌｏｃｋ，ｔｏｗｎ，ｃｉｔｙ，ｐｒｅｆｅｃｔｕｒｅ，ｃｏｕｎｔｒｙ，ｚｉｐＣｏｄｅ」を構成要素として持つ構造体と、文字列型による「０４４８５６００００」とを含んでいる。
【０１３１】
次のステップＡ−１０で、サーバアプリケーション３４０は、ステップＡ−９で受けた引数を用いて処理を行い、処理結果の戻り値をサーバアプリケーション管理３３０に返送する。次いでステップＡ−１１では、サーバアプリケーション管理３３０が、ステップＡ−１０で受けた戻り値に型情報である真偽型を付加した「戻り値情報」を、サーバ非再帰データ表現生成シリアライザ３５０に送付する。
【０１３２】
次いでステップＡ−１２で、サーバ非再帰データ表現生成シリアライザ３５０は、ステップＡ−１１で受けた戻り値情報を、図６で示される軽量データ転送プロトコルに変換する。例えば、図６に示される軽量データ転送プロトコルの内容には、軽量データ表現プロトコルのヘッダー部分である「Ｈｅａｄ」から空行までに「ｒＰｒｏ」というメソッド呼出しが正常に行われたかどうかを表す予約語の後に正常に行われたことを表す図６に示される「ｎｏｒｍａｌ」が含まれる。同様に、軽量データ表現プロトコルのボディ部分の「Ｂｏｄｙ」から空行までには、アドレス帳への登録が成功したことを表す真偽値データ「ｔｒｕｅ」が含まれる。
【０１３３】
次いでステップＡ−１３で、サーバ非再帰データ表現生成シリアライザ３５０は、ステップＡ−１２で作成した軽量データ転送プロトコルをＨＴＴＰサーバ３１０に返送する。次のステップＡ−１４では、ＨＴＴＰサーバ３１０が、ステップＡ−１３で返送された軽量データ転送プロトコルの前にＨＴＴＰのヘッダーを付加し、ネットワーク５００を介してＨＴＴＰクライアント２３０に送付する。
【０１３４】
次のステップＡ−１５で、ＨＴＴＰクライアント２３０は、ＨＴＴＰヘッダーの部分を見て、送付されたものが軽量データ転送プロトコルの形式であることをチェックした後、図６の形式である軽量データ表現プロトコル部分をクライアント非再帰データ表現解釈パーサ２５０に送付する。次いでステップＡ−１６で、クライアント非再帰データ表現解釈パーサ２５０は、図６に示される軽量データ転送プロトコル部分を解釈して戻り値情報の真偽値「ｔｒｕｅ」を、プログラミング言語によるデータ形式で取り出す。
【０１３５】
次いでステップＡ−１７で、クライアント非再帰データ表現解釈パーサ２５０は、ステップＡ−１６で取り出した戻り値情報をクライアント非再帰データ表現用ライブラリ２２０に返送する。最後のステップＡ−１８で、クライアン非再帰データ表現用ライブラリ２２０は、ステップＡ−１７で受け取った戻り値情報を表す「ｔｒｕｅ」を、クライアントアプリケーション２１０に返送する。
【０１３６】
次に、図１２及び図１３を参照して本発明における第２の実施の形態について詳細に説明する。図１３はＷＳＤＬ（ウェブサービスデスクリプションランゲージ：Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）によるインタフェース記述である。
【０１３７】
図１２で示される第２の実施の形態が図１に示される第１の実施形態との相違は、構成上下記が追加されている点である。
【０１３８】
この追加される構成は、インタフェース記述言語コンパイラ１００、プロトコル変換器４００、クライアント−プロトコル変換器間ネットワーク６００、プロトコル変換器−既存サーバ間ネットワーク７００、及び既存サーバ７１０である。
【０１３９】
インタフェース記述言語コンパイラ１００は、インタフェース記述言語解釈手段１１０、データ型対応関係定義手段１２０、シリアライズコード作成手段１３０、変換プログラム作成手段１４０、及びパーサコード作成手段１５０を含む。プロトコル変換器４００は、プロトコル変換モジュール４１０及びＨＴＴＰクライアント／サーバ４２０を含む。
【０１４０】
これらの構成要素はそれぞれ概略、次のような機能を有する。
【０１４１】
インタフェース記述言語解釈手段１１０は、図１３に示されようなインタフェース記述による入力を受け付け、インタフェース記述言語を読み込み、かつデータ型の表現部分を切り出す。データ型対応関係定義手段１２０は、インタフェース記述言語解釈手段からデータ型の表現部分を入力とし、対応するプログラミング言語のデータ型を返送する。
【０１４２】
シリアライズコード作成手段１３０は、インタフェース記述言語解釈手段１１０からインタフェース記述言語で使われているデータ型のリストを受け取り、それらのデータ型をシリアライズするコードを、クライアント非再帰データ表現生成シリアライザ２３０へクライアント非再帰データ表現生成シリアライザとし、またサーバ非再帰データ表現生成シリアライザ３５０へサーバ非再帰データ表現生成シリアライザとしてそれぞれ出力する。
【０１４３】
この出力の際、シリアライズコード作成手段１３０は、クライアント側のシリアライズに必要な引数のデータ型のシリアライズコードだけをクライアント非再帰データ表現生成シリアライザとして出力し、サーバ側のシリアライズに必要な戻り値のデータ型をシリアライズするコードをサーバ非再帰データ表現生成シリアライザとして出力する。
【０１４４】
変換プログラム作成手段１４０は、インタフェース記述言語で使われているデータ型のリストをインタフェース記述言語解釈手段１１０から受け取り、クライアント２００で用いるそれらデータ型の形式と既存サーバ７１０で用いる形式との間の変換プログラムをプロトコル変換モジュール４１０へプロトコル変換モジュールとして出力する。
【０１４５】
パーサコード作成手段１５０は、インタフェース記述言語解釈手段１１０からインタフェース記述言語で使われているデータ型のリストを受け取り、それらのデータ型をパースするコードを、クライアント非再帰データ表現解釈パーサ２５０へクライアント非再帰データ表現解釈パーサとして、またサーバ非再帰データ表現解釈パーサ３２０へサーバ非再帰データ表現解釈パーサとしてそれぞれ出力する。
【０１４６】
この出力の際、パーサコード作成手段１５０は、クライアント側のパースに必要な戻り値のデータ型パース用コードだけをクライアント非再帰データ表現解釈パーサとして出力し、サーバ側のパースに必要な引数のデータ型をパースするコードだけをサーバ非再帰データ表現解釈パーサとして出力する。
【０１４７】
ＨＴＴＰクライアント２３０は、起動するアプリケーションを持つサーバが既存サーバ７１０の場合、クライアント−プロトコル変換器間ネットワーク６００を経由してＨＴＴＰクライアント／サーバ４２０へ、軽量データ転送プロトコル形式にＨＴＴＰヘッダーを付加して送付する。
【０１４８】
ＨＴＴＰクライアント／サーバ４２０は、クライアント−プロトコル変換器間ネットワーク６００を経由してＨＴＴＰクライアント３２０から、ＨＴＴＰヘッダーつき軽量データ表現プロトコルを受け取る。ＨＴＴＰクライアント／サーバ４２０は、受取ったプロトコルを、プロトコル変換モジュール４１０を呼び出して既存サーバが解釈可能な形式に変換した後、プロトコル変換器−既存サーバ間ネットワーク７００を経由して既存サーバ７１０へ、既存サーバ７１０の解釈可能な形式によりデータを転送する。
【０１４９】
既存サーバ７１０は、プロトコル変換器−既存サーバ間ネットワーク７００を経由してＨＴＴＰクライアント／サーバ４２０から、既存サーバ７１０で使用される形式のデータを受け取り、既存サーバ７１０内でアプリケーションを実行した後、プロトコル変換器−既存サーバ間ネットワーク７００を経由してＨＴＴＰクライアント／サーバ４２０に、既存サーバ７１０が用いる形式で戻り値を返送する。クライアント−プロトコル変換器間ネットワーク６００は、通常のＴＣＰ／ＩＰ上のネットワークである。プロトコル変換器−既存サーバ間ネットワーク７００は、通常のＴＣＰ／ＩＰ上のネットワークである。
【０１５０】
上述した第２の実施の形態では、インタフェース記述言語コンパイラがインタフェース記述言語による入力から、サーバアプリケーションの起動に必要最小限のクライアント非再帰データ表現生成シリアライザと、クライアント非再帰データ表現解釈パーサと、サーバ非再帰データ表現解釈パーサと、サーバ非再帰データ表現生成シリアライザとを生成するため、クライアントとサーバとが用いるプログラムサイズを小さくすることができる。従って、ハードディスクドライブを持たないようなディスク容量が限られた機器に、上述した機能を組み込む際に特に有効である。また、インタフェース記述言語コンパイラが既存サーバのインタフェース記述言語による入力から、プロトコル変換モジュールを生成することにより、軽量化されたデータ表現プロトコルをデータ転送形式に用いているクライアントと既存サーバとのサービスとの連携を可能としている。
【０１５１】
次に、図１２及び図１３を併せ参照して具体的に第２の実施の形態における動作について説明する。
【０１５２】
インタフェース記述言語解釈手段１１０は、図１３に示されるＷＳＤＬのインタフェース記述による入力を受け付け、使われているデータ型情報を重複なしで抜き出す。具体的には、図１３の１１行目での「ｘｓｄ：ｃｏｍｐｌｅｘＴｙｐｅ」を、１２行目での「ｘｓｄ：ｓｔｒｉｎｇ」を、更に２６行目での「ｘｓｄ：ｂｏｏｌｅａｎ」をそれぞれ抜き出す。この際、他の行で表われれている「ｘｓｄ：ｓｔｒｉｎｇ」等と同一の表現は抜き出されない。
【０１５３】
次に、インタフェース記述言語解釈手段１１０は抜き出した「ｘｓｄ：ｃｏｍｐｌｅｘＴｙｐｅ」と「ｘｓｄ：ｓｔｒｉｎｇ」と「ｘｓｄ：ｂｏｏｌｅａｎ」とをデータ型対応関係定義手段１２０に送付する。データ型対応関係定義手段１２０は、「ｘｓｄ：ｃｏｍｐｌｅｘＴｙｐｅ」が構造型データ、「ｘｓｄ：ｓｔｒｉｎｇ」が文字列型、「ｘｓｄ：ｂｏｏｌｅａｎ」が真偽値型であるとそれぞれを判定し、その結果をインタフェース記述言語解釈手段１１０に送付する。インタフェース記述言語解釈手段１１０は、構造型データと文字列型データとが引数であり、真偽値型が戻り値であるという情報をシリアライズコード作成手段１３０に送付する。
【０１５４】
次に、シリアライズコード作成手段１３０は、一方では引数である構造型データと文字列型データとのシリアライズ用コードを生成し、クライアント非再帰データ表現生成シリアライザ２３０へクライアント非再帰データ表現生成シリアライザとして出力し、他方では真偽値型データのシリアライズ用コードを生成し、サーバ非再帰データ表現生成シリアライザ３５０へサーバ非再帰データ表現生成シリアライザとして出力する。
【０１５５】
次に、インタフェース記述言語解釈手段１１０は、構造型データと文字列型データとが引数であり、真偽値型データが戻り値であるという情報を変換プログラム作成手段１４０に送付する。変換プログラム生成手段１４０は、構造型データと文字列型データと真偽値型データとでの、クライアントが用いる形式と既存サーバが用いる形式との相互変換プログラムを生成し、プロトコル変換モジュール４１０へプロトコル変換モジュールとして出力する。
【０１５６】
次に、インタフェース記述言語解釈手段１１０は、構造型データと文字列型データとが引数であり、また真偽値型データが戻り値であるという情報を、パーサコード作成手段１５０に送付する。パーサコード作成手段１５０は、一方では引数である構造型データと文字列型データとのパース用コードを生成し、サーバ非再帰データ表現解釈パーサ３２０へサーバ非再帰データ表現解釈パーサとして出力し、他方では真偽値型データのパース用コードを生成し、クライアント非再帰データ表現解釈パーサ２５０へクライアント非再帰データ表現解釈パーサとして出力する。
【０１５７】
上述した第２の実施形態の場合、システムでは、インタフェース記述言語で定義された型のみのシリアライズ用、パース用、プロトコル変換モジュール用のみのコードを生成するので、配列型データ、文字列型データ、及び真偽値型データ以外の今回使わなかった基本型データ、例えば、整数値型データ等のコードをクライアント、サーバ、プロトコル変換器におく必要がなくなり、必要なディスク領域を削減できる。また、シリアライズまたはパースに関しては引数と戻り値との関係も調べ、引数のシリアライズと戻り値のパースとのコードのみをクライアント側に、引数のパースと戻り値のシリアライズとのコードのみをサーバ側に配置し、必要最小限なコード量に抑えることができる。
【０１５８】
【発明の効果】
第１の効果は、クライアントとサーバとの間で受け渡されるテキスト文書がプログラミング言語のデータ型との間で相互変換可能であるとともに、そのテキスト文書を高速に処理できることにある。
【０１５９】
その理由は、構造型データを表現している場合にもが高々一段の階層しか含まないので、多段の階層を含む場合には文法の複雑さを表すクラスが文法文脈自由文法となるのに比べて、より高速に解釈可能な正規文法により表現できるためである。
【０１６０】
第２の効果は、クライアントとサーバとの間で受け渡されるテキスト文書の解釈を行うプログラムサイズを小さくできることから、ハードディスクを持たないなどの小資源の端末上で容易に動作させることができることにある。
【０１６１】
その理由は、クライアントとサーバとの間で受け渡されるテキスト文書が、階層構造が高々一段であることを仮定してよいことから、パーシングのプログラム自体を多段の階層を許すＸＭＬのパーサに比べて小さく作ることが可能であるためである。
【０１６２】
第３の効果は、軽量データ表現プロトコルをデータ転送形式に用いるクライアントと既存サーバとの間のサービス連携ができることである。
【０１６３】
その理由は、既存サーバのインタフェース記述言語による入力から、軽量データ表現プロトコルと既存プロトコルとを変換するモジュール、すなわち、プロトコル変換モジュールを生成することができるためである。
【０１６４】
第４の効果は、クライアント及びサーバで軽量データ表現プロトコルとプログラミング言語のデータ形式との間の変換を行う部分のプログラムを小さくすることができ、ハードディスクドライブを持たないようなディスク容量が限られた機器のディスク容量を有効活用できることである。
【０１６５】
その理由は、サーバ側のインタフェース記述言語による入力から、サーバアプリケーションの起動に必要最小限のクライアント非再帰データ表現生成シリアライザと、クライアント非再帰データ表現解釈パーサと、サーバ非再帰データ表現解釈パーサと、サーバ非再帰データ表現生成シリアライザとを生成することができるためである。
【図面の簡単な説明】
【図１】本発明による第１の実施形態のブロック構成を示す図である。
【図２】図１のブロック構成に対応するシーケンス動作を示す図である。
【図３】図１に示される実施形態で用いられるサーバアプリケーションのメソッド形式を示した図である。
【図４】図１に示される実施形態におけるクライアントシリアライズ部の処理フローを示した図である。
【図５】図１に示されるクライアントシリアライズ部の処理フロー後のクライアント構造型配列情報テーブル作成手段とクライアント非再帰データ表現文書作成手段のメモリ上の情報を示す図である。
【図６】図１に示される実施形態で用いられる軽量データ表現プロトコルを示した図である。
【図７】図１に示される実施形態で用いられるサーバ非再帰データ表現解釈パーサにおける処理フローを示した図である。
【図８】図１に示される実施形態で用いられるサーバ非再帰データ表現生成シリアライザにおける処理フローを示した図である。
【図９】図１に示される実施形態で用いられるクライアント非再帰データ表現解釈パーサにおける処理フローを示した図である。
【図１０】図１に示される実施形態において、クライアントからサーバに送られる軽量データ表現プロトコルを示した図である。
【図１１】図１に示される実施形態において、サーバからクライアントに送られる軽量データ表現プロトコルを示した図である。
【図１２】本発明における第２の実施形態のブロック構成を示す図である。
【図１３】図１２に示される実施形態で用いられるインタフェース記述言語での記述例である。
【図１４】従来技術であるＳＯＡＰのブロック構造を示す図である。
【図１５】従来技術であるＩＤＬコンパイラのブロック構造を示す図である。
【符号の説明】
１００    インタフェース記述言語コンパイラ
１１０    インタフェース記述言語解釈手段
１２０    データ型対応関係定義手段
１３０    シリアライズコード作成手段
１４０    変換プログラム作成手段
１５０    パーサコード作成手段
２００    クライアント
２１０    クライアントアプリケーション
２２０    非再帰データ表現用クライアントライブラリ
２３０    クライアント非再帰データ表現生成シリアライザ
２３１    クライアントシリアライズ部
２３２    クライアント構造型配列情報テーブル作成手段
２３３    クライアント非再帰データ表現文書作成手段
２４０    ＨＴＴＰクライアント
２５０    クライアント非再帰データ表現解釈パーサ
２５１    クライアントパース部
２５２    クライアントヘッダ情報作成手段
２５３    クライアントＩＤポインタテーブル
２５４    クライアントパラメータ情報作成手段
２５５    プログラミング言語戻り値作成部
３００    サーバ
３１０    ＨＴＴＰサーバ
３２０    サーバ非再帰データ表現解釈パーサ
３２１    サーバパース部
３２２    サーバヘッダ情報作成手段
３２３    サーバＩＤポインタテーブル
３２４    サーバパラメータ情報作成手段
３２５    サーバアプリケーション起動情報作成部
３３０    サーバアプリケーション管理
３４０    サーバアプリケーション
３５０    サーバ非再帰データ表現生成シリアライザ
３５１    サーバシリアライズ部
３５２    サーバ構造型配列情報テーブル作成手段
３５３    サーバ非再帰データ表現文書作成手段
４００    プロトコル変換器
４１０    プロトコル変換モジュール
４２０    ＨＴＴＰクライアント／サーバ
５００    ネットワーク
６００    クライアント−プロトコル変換器間ネットワーク
７００    プロトコル変換器−既存サーバ間ネットワーク
７１０    既存サーバ
【図１】
2004265164.tif 000003
【図２】
2004265164.tif 000004
【図３】
2004265164.tif 000005
【図４】
2004265164.tif 000006
【図５】
2004265164.tif 000007
【図６】
2004265164.tif 000008
【図７】
2004265164.tif 000009
【図８】
2004265164.tif 000010
【図９】
2004265164.tif 000011
【図１０】
2004265164.tif 000012
【図１１】
2004265164.tif 000013
【図１２】
2004265164.tif 000014
【図１３】
2004265164.tif 000015
【図１４】
2004265164.tif 000016
【図１５】
2004265164.tif 000017