(57)【特許請求の範囲】
【請求項１】
分散オブジェクト環境にあるクライアントアプリケーションおよびゲートウェイアプリケーションと分散オブジェクト環境下にない汎用コンピュータ上のサーバアプリケーションとで構成される３階層クライアント／サーバシステムの通信連携情報を生成する通信連携情報生成装置において、
オブジェクト情報、ネットワーク上の前記汎用コンピュータを識別するための通信あて先、および前記クライアントアプリケーションと前記ゲートウェイアプリケーションと前記サーバアプリケーションとの間のインタフェース情報を定義したアプリケーション定義体を読み込む入力手段と、
読み込んだ前記アプリケーション定義体を解析する解析手段と、
前記アプリケーション定義体から前記クライアントアプリケーションと前記ゲートウェイアプリケーションとの通信のためのインタフェース情報を定義したインタフェース定義言語ソースを作成するインタフェース定義言語ソース作成手段と、
前記アプリケーション定義体から前記汎用コンピュータの前記通信あて先を含んだ前記ゲートウェイアプリケーション自体のソースコードを生成するソースコード生成手段と、
前記アプリケーション定義体から前記サーバアプリケーションが前記ゲートウェイアプリケーションと通信処理を行うためのインタフェース情報ファイルを生成するインタフェース情報ファイル生成手段と、
を備えていることを特徴とする通信連携情報生成装置。
【請求項２】
前記インタフェース定義言語ソース作成手段により作成されるインタフェース定義言語ソースは、これをコンパイルすることによって前記クライアントアプリケーションに組み込まれるスタブおよび前記ゲートウェイアプリケーションに組み込まれるスケルトンが生成されるソースであることを特徴とする請求項１記載の通信連携情報生成装置。
【請求項３】
前記ソースコード生成手段により生成されるソースコードは、前記クライアントアプリケーションのオブジェクトから呼び出されたときに指定された汎用コンピュータにパススルーの処理をするオブジェクトのソースコードであることを特徴とする請求項１記載の通信連携情報生成装置。
【請求項４】
前記インタフェース情報ファイル生成手段により生成されるインタフェース情報ファイルは、前記サーバアプリケーションのプログラムのコンパイル時に前記サーバアプリケーションに組み込まれるライブラリ関数のファイルであることを特徴とする請求項１記載の通信連携情報生成装置。
【請求項５】
分散オブジェクト環境のクライアントおよびサーバシステムに分散オブジェクト環境下にない汎用コンピュータを接続して構成される３階層クライアント／サーバシステムにおいて、
一つのアプリケーション定義体から生成したインタフェース定義言語ソースをコンパイルすることによって作られたインタフェース情報が組み込まれたクライアントアプリケーションが配置されているクライアントと、
前記クライアントアプリケーションとは分散オブジェクト指向技術を利用して通信するよう前記アプリケーション定義体から生成したインタフェース定義言語ソースをコンパイルすることによって作られたインタフェース情報が組み込まれかつ前記アプリケーション定義体から生成した汎用コンピュータとの通信連携情報が組み込まれたゲートウェイアプリケーションが配置されているサーバシステムと、
前記ゲートウェイアプリケーションとは前記分散オブジェクト指向技術を利用しない通信手順により通信するよう前記アプリケーション定義体から生成したインタフェース情報を組み込んだサーバアプリケーションが配置されている汎用コンピュータと、
を備え、
前記ゲートウェイアプリケーションの前記汎用コンピュータとの通信連携情報は、前記サーバシステムと前記汎用コンピュータとを接続しているネットワーク上の前記汎用コンピュータを一意に識別する通信あて先を含んでいることを特徴とする３階層クライアント／サーバシステム。
【請求項６】
前記クライアントアプリケーションおよび前記ゲートウェイアプリケーションのオブジェクトは、分散オブジェクト環境内での位置透過性がネーミングサービスによって保持されていることを特徴とする請求項５記載の３階層クライアント／サーバシステム。
【請求項７】
分散オブジェクト環境にあるクライアントアプリケーションおよびゲートウェイアプリケーションと分散オブジェクト環境下にない汎用コンピュータ上のサーバアプリケーションとで構成される３階層クライアント／サーバシステムの通信連携情報を生成するプログラムを記録したコンピュータ読み取り可能な媒体において、オブジェクト情報、ネットワーク上の前記汎用コンピュータを識別するための通信あて先、および前記クライアントアプリケーションと前記ゲートウェイアプリケーションと前記サーバアプリケーションとの間のインタフェース情報が定義されたアプリケーション定義体を解析する手段、前記クライアントアプリケーションと前記ゲートウェイアプリケーションとの間の通信のためのインタフェース情報を定義したインタフェース定義言語ソースを作成する手段、前記汎用コンピュータの前記通信あて先を含んだ前記ゲートウェイアプリケーションのソースコードを生成する手段、および前記サーバアプリケーションが前記ゲートウェイアプリケーションと通信処理を行うためのインタフェース情報ファイルを生成する手段としてコンピュータを機能させるためのプログラムを記録した媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は通信連携情報生成装置に関し、特に分散オブジェクト指向技術を利用して通信処理を行うクライアント／サーバシステムと分散オブジェクト環境を持たない汎用コンピュータとで構成されるような３階層クライアント／サーバシステムにおけるアプリケーション間の通信通信連携情報を生成する通信連携情報生成装置に関する。
【０００２】
クライアント／サーバシステムはアプリケーション全体の機能をクライアントとサーバとに分散配置し、ネットワークを通じて全体で連携処理するものである。このような形態のシステムでは、クライアントはユーザインタフェースを主目的とし、サーバはクライアントにてユーザとの対話処理の過程にて発生した要求を受けて処理することを主目的としている。クライアントはユーザインタフェースに付随して起きるイベントに応答して処理する機能を備えているため、機能が増えてくれば、必然的にクライアントの負担が増える傾向にある。そこで、機能の密な結合を回避し、さらにシステムに拡張性および柔軟性を持たせるために、システムを階層化することが提案されており、クライアント層とサーバ層との間に少なくとも一つの階層を介在させて多階層システムの形態を採るようになってきている。
【０００３】
一方、クライアント／サーバシステムにあって、それらのアプリケーション間の通信においても、信頼性、拡張性、柔軟性などが求められており、そのような要求に応えるものとして分散オブジェクト環境がある。
【０００４】
オブジェクト指向開発は、アプリケーションをオブジェクトと見せることでプログラム開発効率を高める技術として浸透しつつある。このうち、ＣＯＲＢＡ（Ｃｏｍｍｏｎ    Ｏｂｊｅｃｔ    Ｒｅｑｕｅｓｔ    Ｂｒｏｋｅｒ    Ａｒｃｈｉｔｅｃｔｕｒｅ）は、分散したシステム上のサーバアプリケーションを、クライアントアプリケーションが位置や実装を認識することなく呼び出し可能とする技術として、ＯＭＧ（Ｏｂｊｅｃｔ  Ｍａｎａｇｅｍｅｎｔ  Ｇｒｏｕｐ）団体が定めた分散オブジェクト指向技術のための規約である。
【０００５】
クライアント／サーバシステムにおいて、サーバアプリケーションのインタフェース情報を、ＣＯＲＢＡによってネットワーク上に公開して共用することにより、クライアントアプリケーションは、サーバアプリケーションをあたかもローカルシステム内でのプログラム呼び出しのように容易に利用することができる。そして、オブジェクト同士で通信を行うための機能およびソフトウェアはＯＲＢ（ｏｂｊｅｃｔ  ｒｅｑｕｅｓｔ  ｂｒｏｋｅｒ）と呼ばれ、ＯＲＢ同士を接続する通信手順としてＩＩＯＰ（Ｉｎｔｅｒｎｅｔ  Ｉｎｔｅｒ−ＯＲＢ  Ｐｒｏｔｏｃｏｌ）が採用されている。
【０００６】
【従来の技術】
図７は３階層システムの構築例を示す図である。この図において、３階層システムは、クライアント１００と、サーバシステム１１０と、データサーバ１２０とから構成されている。クライアント１００には、クライアントアプリケーション１０１が配置され、サーバシステム１１０にはサーバアプリケーション１１１が配置され、データサーバ１２０にはサーバアプリケーション１２１が配置されている。したがって、サーバアプリケーション１１１はサーバアプリケーション１２１のクライアントアプリケーションとしての機能も有する。ここで、クライアントアプリケーション１０１のオブジェクトＡがサーバアプリケーション１１１のオブジェクトＢを呼び出し、そのオブジェクトＢがサーバアプリケーション１２１のオブジェクトＣを呼び出すという例を示している。これらオブジェクト間のメッセージ交換はインタフェース情報ファイルと、ＯＲＢ機構と、ＯＲＢ間通信プロトコルとによって実現される。
【０００７】
インタフェース情報ファイルは、オブジェクトに関するインタフェース情報をＣＯＲＢＡ規約で定められた文法に従ったインタフェース定義言語（ＩＤＬ）で記述し、それを専用のＩＤＬコンパイラでコンパイルすることにより、クライアント、サーバそれぞれのアプリケーションに対して作成される。ＣＯＲＢＡでは、このインタフェース情報ファイルを、クライアント側はスタブ、サーバ側はスケルトンと呼んでいる。
【０００８】
クライアントアプリケーション１０１にはスタブ１０２およびＯＲＢ機構１０３があり、サーバアプリケーション１１１にはＯＲＢ機構１１２、スケルトン１１３、スタブ１１４およびＯＲＢ機構１１５があり、サーバアプリケーション１２１にはＯＲＢ機構１２２およびスケルトン１２３がある。ここで、スタブ１０２およびスケルトン１１３はオブジェクトＢに関する情報を記述したＩＤＬファイル１３１をコンパイルすることによって生成されたインタフェース情報ファイルであり、スタブ１１４およびスケルトン１２３はオブジェクトＣに関する情報を記述したＩＤＬファイル１３２をコンパイルすることによって生成されたインタフェース情報ファイルである。
【０００９】
また、ＯＲＢ機構１０３とＯＲＢ機構１１２との間、およびＯＲＢ機構１１５とＯＲＢ機構１２２との間の通信はＣＯＲＢＡの標準プロトコルであるＩＩＯＰが使用される。
【００１０】
さらに、ネットワーク上には別のサーバ１４０があり、これにはネーミングサービス１４１が搭載されている。このネーミングサービス１４１は、アプリケーションのオブジェクトが必要としているオブジェクトがネットワーク上のどこにあるかの問い合わせに応えるためのもので、オブジェクトが位置するサーバのアドレスとともに、オブジェクトを名前で管理しているデータベースである。これにより、クライアントアプリケーションはサーバアプリケーションのオブジェクトを名前で呼び出すことにより、ＯＲＢ機構はネーミングサービス１４１を参照し、ここで得られたサーバアプリケーションのオブジェクトが位置するサーバシステムのアドレスをもとにそのサーバシステムに要求を出すことによって利用可能になる。
【００１１】
次に、このように構築された３階層システムにおけるオブジェクト呼び出しについて説明する。まず、クライアントアプリケーション１０１のオブジェクトＡがオブジェクトＢを呼び出す。これは、スタブ１０２内に展開されたオブジェクトＢに対応するオブジェクト（オペレーション）を呼び出すことになる。このオペレーションには、通信のためのインタフェース情報は持たないので、ＯＲＢ機構１０３はネーミングサービス１４１に問い合わせて、得られたサーバシステム１１０のアドレスをもとにＩＩＯＰプロトコルを使用してサーバシステム１１０のＯＲＢ機構１１２にクライアントアプリケーション１０１からの要求を送る。ＯＲＢ機構１１２を介して要求を受けたオブジェクトＢはその要求をオブジェクトＣに転送する。この場合も、同様にしてネーミングサービス１４１を利用し、ネットワーク上のデータサーバ１２０のアドレスを取得して通信を行う。データサーバ１２０のサーバアプリケーション１２１はオブジェクトＢからの要求を処理する。オブジェクトＣは処理した結果をオブジェクトＢに返信する。オブジェクトＢはオブジェクトＣからの応答をオブジェクトＡに返信する。これにより、クライアントアプリケーション１０１は処理した結果を受け取ることになる。
【００１２】
ところで、以上のような３階層システムにおいて、３階層目のデータサーバ１２０に大型の汎用コンピュータを使いたいという要求がある。このとき、２階層目のサーバシステム１１０はクライアント１００からの要求を汎用コンピュータに単純に転送するだけのゲートウェイ処理となる。このような形態を採ることにより、システム全体の信頼性・性能を向上させることができ、しかも、既に運用しているデータベースシステムの再利用、有効利用が可能になる。
【００１３】
【発明が解決しようとする課題】
ＣＯＲＢＡの技術は標準的なオペレーティングシステムやハードウェアをもとにして作られたオープン仕様のコンピュータに適用される。一方、汎用コンピュータは独自のアーキテクチャに基づいて作られたものであるため、３階層システムの３階層目に汎用コンピュータを適用する場合に、次のような問題点が発生する。
【００１４】
まず、本来、分散オブジェクト指向技術を持たない汎用コンピュータ上に分散オブジェクト指向技術と連携させるためのＯＲＢ機構を持つ必要がある。
ＣＯＲＢＡではオブジェクト名をネットワーク一意の名前として管理しているために、たとえ３者間のインタフェースが同じであっても、クライアントアプリケーションとゲートウェイアプリケーションとのインタフェースを定義するＩＤＬソースと、ゲートウェイアプリケーションと汎用コンピュータ上のサーバアプリケーションとのインタフェース情報を定義するＩＤＬソースとの２つのＩＤＬ定義が必要となる。
【００１５】
２階層目のサーバシステムをクライアントからの要求を単に汎用コンピュータに転送するゲートウェイとしてシステムを構築する場合でも、開発者はクライアントからの要求を受けるスケルトンの部分と、汎用コンピュータに向かうスタブの部分と、ゲートウェイオブジェクトの部分とをコーディングしなければならず、ゲートウェイのオブジェクトと汎用コンピュータ上のサーバアプリケーションのオブジェクトとの関連付けがゲートウェイソースの作成時のインプリメントマターとなる。
【００１６】
そして、ＯＲＢ機構は、ネーミングサービスを参照して通信先システムを決定するために、ネーミングサービスが搭載されるコンピュータとの通信を必要とする。したがって、クライアントからサーバシステムに要求を出すときにネーミングサービスを利用し、サーバシステムから汎用コンピュータに要求を出すときもまたネーミングサービスを利用することになるため、クライアント／サーバだけで構成される分散オブジェクトシステムに比べ、通信処理に時間がかかり、システムの性能が落ちるという問題点があった。
【００１７】
本発明はこのような点に鑑みてなされたものであり、３階層システムに分散オブジェクト環境を持たない汎用コンピュータを適用した場合に、ゲートウェイの作成、すなわち、コーディングが不要な通信連携情報生成装置およびそのプログラムを記録した媒体と、通信時間が長くならない３階層クライアント／サーバシステムを提供することを目的とする。
【００１８】
【課題を解決するための手段】
図１は上記目的を達成する本発明の原理図である。図１の上部には、分散オブジェクト環境にあるクライアント／サーバシステムと非分散オブジェクト環境の汎用コンピュータとを連携させる情報を生成する通信連携情報生成装置が示されている。クライアント／サーバシステムと汎用コンピュータとの３者間の通信連携情報はアプリケーション定義体１に定義されている。このアプリケーション定義体１には、オブジェクト情報と、汎用コンピュータの通信あて先と、クライアントアプリケーションとゲートウェイアプリケーションとサーバアプリケーションとの間のインタフェース情報とが記述されている。通信連携情報生成装置２は、アプリケーション定義体１を読み込む入力手段２ａと、そのアプリケーション定義体１を解析する解析手段２ｂと、クライアント／サーバシステムのためのインタフェース定義言語（ＩＤＬ）ソースを作成するインタフェース定義言語ソース作成手段２ｃと、サーバシステムのゲートウェイアプリケーションのソースコードを生成するソースコード生成手段２ｄと、汎用コンピュータのサーバアプリケーションのためのインタフェース情報ファイルを生成するインタフェース情報ファイル生成手段２ｅとを備えている。
【００１９】
この通信連携情報生成装置２によれば、入力手段２ａがアプリケーション定義体１を読み込み、解析手段２ｂがその内容を解析する。その解析結果はインタフェース定義言語ソース作成手段２ｃと、ソースコード生成手段２ｄと、インタフェース情報ファイル生成手段２ｅとに振り分けられる。インタフェース定義言語ソース作成手段２ｃはクライアントのクライアントアプリケーションに組み込まれるスタブおよびサーバシステムのゲートウェイアプリケーションに組み込まれるスケルトンのためのソースを生成する。ソースコード生成手段２ｄは汎用コンピュータの通信あて先を考慮したゲートウェイアプリケーションのソースコードを出力する。インタフェース情報ファイル生成手段２ｅは汎用コンピュータのサーバアプリケーションに組み込まれる、ゲートウェイアプリケーションとのインタフェース情報のファイルを出力する。これにより、通信連携情報生成装置２がゲートウェイアプリケーションのソースコードと汎用コンピュータ用のインタフェース情報ファイルを生成するようにしたことによりゲートウェイアプリケーションのコーディングが不要となる。
【００２０】
また、本発明によれば、分散オブジェクト環境にあるクライアントアプリケーションおよびゲートウェイアプリケーションと分散オブジェクト環境下にない汎用コンピュータ上のサーバアプリケーションとで構成される３階層クライアント／サーバシステムの通信連携情報を生成するプログラムを記録したコンピュータ読み取り可能な媒体において、オブジェクト情報、ネットワーク上の前記汎用コンピュータを識別するための通信あて先、および前記クライアントアプリケーションと前記ゲートウェイアプリケーションと前記サーバアプリケーションとの間のインタフェース情報が定義されたアプリケーション定義体を解析する手段、前記クライアントアプリケーションと前記ゲートウェイアプリケーションとの間の通信のためのインタフェースを定義したインタフェース定義言語ソースを作成する手段、前記汎用コンピュータの前記通信あて先を含んだ前記ゲートウェイアプリケーション自体のソースコードを生成する手段、および前記サーバアプリケーションが前記ゲートウェイアプリケーションと通信処理を行うためのインタフェース情報ファイルを生成する手段としてコンピュータを機能させるためのプログラムを記録した媒体が提供される。
【００２１】
この媒体に記録された通信連携情報生成プログラムをコンピュータに実行させることにより、アプリケーション定義体を解析する手段と、インタフェース定義言語ソースを作成する手段と、ゲートウェイアプリケーションのソースコードを生成する手段と、インタフェース情報ファイルを生成する手段との各機能がコンピュータによって実現できる。
【００２２】
さらに、図１の下部には、汎用コンピュータを含む３階層クライアント／サーバシステムが示されており、クライアント３と、サーバシステム４と、汎用コンピュータ５とから構成されている。クライアント３はクライアントアプリケーション３ａを搭載し、このクライアントアプリケーション３ａには、インタフェース定義言語ソース作成手段２ｃからのソースをもとに作られスタブ３ｂが組み込まれている。サーバシステム４はゲートウェイの位置付けとして動作し、分散オブジェクト指向技術を持たない大型の汎用コンピュータ５上のアプリケーションと連携処理を行うゲートウェイアプリケーション４ａを搭載し、このゲートウェイアプリケーション４ａはソースコード生成手段２ｄからのソースコードをもとに作成され、そのとき、インタフェース定義言語ソース作成手段２ｃからのソースをもとに作られスケルトン４ｂが組み込まれる。そして、汎用コンピュータ５はサーバアプリケーション５ａを搭載している。ここで、クライアントアプリケーション３ａとゲートウェイアプリケーション４ａとが、分散オブジェクト指向技術（ＣＯＲＢＡ）を利用して処理を行う。ゲートウェイアプリケーション４ａと分散オブジェクト指向技術を持たない汎用コンピュータのサーバアプリケーション５ａとの通信処理は既存通信手順を利用する。既存通信手順では、汎用コンピュータを特定するための情報として、通信あて先を利用する。
【００２３】
ゲートウェイアプリケーション４ａはクライアントアプリケーション３ａからの要求を汎用コンピュータ５のサーバアプリケーション５ａヘ通知し、サーバアプリケーション５ａの処理結果をクライアントアプリケーションに応答として通知する。これにより、クライアントアプリケーション３ａは、分散オブジェクト環境から、汎用コンピュータ５上のサーバアプリケーション５ａを利用することができるようになる。このとき、クライアントアプリケーション３ａがゲートウェイアプリケーション４ａに要求を出すときは、そのインタフェース情報をネーミングサービスを利用して取得するが、ゲートウェイアプリケーション４ａがサーバアプリケーション５ａへ要求を転送するときは既存通信手順を利用する。既存通信手順では、汎用コンピュータの通信あて先を直接利用するので、すぐに、目的のコンピュータとの通信処理を開始することができる。これにより、ゲートウェイアプリケーション４ａとサーバアプリケーション５ａとの間の通信処理については、ネーミングサービスを搭載したコンピュータとの通信が必要なくなるので処理時間がＯＲＢ機構に比べ半減するのとともに、汎用コンピュータ上にＯＲＢ機構を作成する必要がなくなる。
【００２４】
【発明の実施の形態】
まず、本発明の概略について図面を参照して説明する。
図１は本発明の通信連携情報生成装置および３階層クライアント／サーバシステムの構成を示す図である。図１において、その上部には、分散オブジェクト環境にあるクライアント／サーバシステムと非分散オブジェクト環境の汎用コンピュータとを連携させる情報を生成する通信連携情報生成装置が示されている。クライアント／サーバシステムと汎用コンピュータとの３者間の通信連携情報は一つのアプリケーション定義体１に定義されている。このアプリケーション定義体１には、オブジェクト情報と、汎用コンピュータをネットワーク上で識別することができる通信連携情報である通信あて先と、クライアントアプリケーションとゲートウェイアプリケーションとサーバアプリケーションとの間のインタフェース情報とが記述されている。通信連携情報生成装置２は、アプリケーション定義体１を読み込む入力手段２ａと、そのアプリケーション定義体１を解析する解析手段２ｂと、アプリケーション定義体１からクライアント／サーバシステムのためのインタフェース定義言語（ＩＤＬ）ソースを作成するインタフェース定義言語ソース作成手段２ｃと、アプリケーション定義体１からサーバシステムのゲートウェイアプリケーションのソースコードを生成するソースコード生成手段２ｄと、アプリケーション定義体１から汎用コンピュータのサーバアプリケーションのためのインタフェース情報ファイルを生成するインタフェース情報ファイル生成手段２ｅとを備えている。
【００２５】
この通信連携情報生成装置２によれば、入力手段２ａがアプリケーション定義体１を読み込み、解析手段２ｂがその内容を解析する。その解析結果はインタフェース定義言語ソース作成手段２ｃと、ソースコード生成手段２ｄと、インタフェース情報ファイル生成手段２ｅとに振り分けられる。インタフェース定義言語ソース作成手段２ｃはクライアントのクライアントアプリケーションに組み込まれるスタブおよびサーバシステムのゲートウェイアプリケーションに組み込まれるスケルトンのためのソースを生成する。ソースコード生成手段２ｄは汎用コンピュータの通信あて先を考慮したゲートウェイアプリケーションのソースコードを出力する。インタフェース情報ファイル生成手段２ｅは汎用コンピュータのサーバアプリケーションに組み込まれる、ゲートウェイアプリケーションとのインタフェース情報のファイルを出力する。これにより、通信連携情報生成装置２がゲートウェイアプリケーションのソースコードと汎用コンピュータ用のインタフェース情報ファイルを生成するようにしたことによりゲートウェイアプリケーションのコーディングが不要となる。
【００２６】
また、図１の下部には、汎用コンピュータを含む３階層クライアント／サーバシステムが示されているが、これは、クライアント３と、サーバシステム４と、汎用コンピュータ５とから構成されている。クライアント３はクライアントアプリケーション３ａを搭載し、このクライアントアプリケーション３ａには、インタフェース定義言語ソース作成手段２ｃの出力したソースをもとに作られスタブ３ｂが組み込まれている。サーバシステム４はゲートウェイの位置付けとして動作し、分散オブジェクト指向技術を持たない大型の汎用コンピュータ５上のアプリケーションと連携処理を行うゲートウェイアプリケーション４ａを搭載し、このゲートウェイアプリケーション４ａはソースコード生成手段２ｄからのソースコードをもとに作成される。そのとき、インタフェース定義言語ソース作成手段２ｃの出力したソースをもとに作られスケルトン４ｂがゲートウェイアプリケーション４ａに組み込まれる。そして、汎用コンピュータ５はサーバアプリケーション５ａを搭載している。
【００２７】
ここで、クライアントアプリケーション３ａとゲートウェイアプリケーション４ａとが、分散オブジェクト指向技術（ＣＯＲＢＡ）を利用して通信処理を行う。一方、ゲートウェイアプリケーション４ａと分散オブジェクト指向技術を持たない汎用コンピュータのサーバアプリケーション５ａとの通信処理は既存通信手順を利用する。既存通信手順では、汎用コンピュータを特定するための情報として、通信あて先を利用する。
【００２８】
ゲートウェイアプリケーション４ａはクライアントアプリケーション３ａからの要求を汎用コンピュータ５のサーバアプリケーション５ａヘ通知し、サーバアプリケーション５ａの処理結果をクライアントアプリケーションに応答として通知する。これにより、クライアントアプリケーション３ａは、分散オブジェクト環境から、汎用コンピュータ５上のサーバアプリケーション５ａを利用することができるようになる。このとき、クライアントアプリケーション３ａがゲートウェイアプリケーション４ａに要求を出すときは、そのインタフェース情報をネーミングサービスを利用して取得するが、ゲートウェイアプリケーション４ａがサーバアプリケーション５ａへ要求を転送するときは既存通信手順を利用する。既存通信手順では、汎用コンピュータの通信あて先を直接利用するので、すぐに、目的のコンピュータとの通信処理を開始することができる。これにより、ゲートウェイアプリケーション４ａとサーバアプリケーション５ａとの間の通信処理については、ネーミングサービスを搭載したコンピュータとの通信が必要なくなるので処理時間がＯＲＢ機構に比べ半減するのとともに、汎用コンピュータ上にＯＲＢ機構を作成する必要がなくなる。
【００２９】
次に、本発明の実施の形態について説明するが、まず、分散オブジェクト環境にあるクライアント／サーバシステムと非分散オブジェクト環境の汎用コンピュータとで３階層システムを構成するときの３者間の通信連携情報の生成手順について説明する。
【００３０】
図２は３階層クライアント／サーバシステムの通信情報連携処理を説明した図である。クライアントとゲートウェイとして機能させるサーバシステムと汎用コンピュータとの３者間の通信連携情報は、アプリケーション定義体１１と呼ぶ一つの定義体に定義される。このアプリケーション定義体１１では、クライアントアプリケーションとゲートウェイ、さらにサーバアプリケーションとの関連付けを行う必要があるが、ＣＯＲＢＡのＩＤＬ定義上では、クライアント対サーバという１対１のインタフェース情報の共有とＩＩＯＰプロトコルの使用とを前提に定義するものであるため、汎用コンピュータとの通信のための通信アドレスを記述することはできない。したがって、３者間のインタフェース情報の定義を、ＩＤＬ定義を一階層上げたアプリケーション定義体１１によって定義することにしている。このとき、アプリケーション定義体１１では、クライアントアプリケーション・ゲートウェイ・サーバアプリケーション間のインタフェース情報と、ゲートウェイとサーバアプリケーションとの間の通信情報とをたとえば次のように定義する。
【００３１】
図３はアプリケーション定義の一例を示す図である。アプリケーション定義体１１では、アプリケーション定義はほぼＩＤＬ記述に似た記述になっていて、オブジェクト（オペレーション）の情報と、通信あて先と、インタフェース情報との繰り返しによって記述される。ここで、通信あて先はゲートウェイから見た汎用コンピュータ上の通信あて先であり、その通信あて先には、ネットワーク上の各汎用コンピュータを識別するホスト名や、汎用コンピュータ上のアプリケーション名が指定される。
【００３２】
図２に戻って、インタフェース情報および通信あて先が以上のように定義されたアプリケーション定義体１１は定義体コンパイラ１２に入力される。定義体コンパイラ１２では、アプリケーション定義体１１を解析し、クライアントアプリケーションとゲートウェイアプリケーションのためのＩＤＬソースファイル１３を作成し、汎用コンピュータ上のサーバアプリケーションがゲートウェイアプリケーションと通信するためのインタフェース情報を含むインタフェース情報ファイル１４と、ゲートウェイアプリケーションのソースコードファイル１５を生成する。
【００３３】
ＩＤＬソースファイル１３では、ＣＯＲＢＡ規約で定められた文法に従ったインタフェース情報の定義がなされているので、ＩＤＬのコンパイルにはＯＲＢ準拠の標準的なＩＤＬコンパイラ１６が使用される。ＩＤＬコンパイラ１６からは、クライアントアプリケーションに組み込まれるべきインタフェース情報ファイル（スタブ）１７と、ゲートウェイアプリケーションに組み込まれるべきインタフェース情報ファイル（スケルトン）１８とが生成される。これらインタフェース情報ファイル１７，１８は、たとえばＣ言語ではヘッダファイルに相当するもので、アプリケーションのソースをコンパイルするときにそのアプリケーションに組み込まれる。インタフェース情報ファイル１４は、ＣＯＲＢＡでのスケルトンファイルに相当するもので、サーバアプリケーションのソースをコンパイルするときにそのサーバアプリケーションに組み込まれる。
【００３４】
ゲートウェイアプリケーションのためのソースコードファイル１５は、アプリケーション定義体１１から抽出された、汎用コンピュータの通信アドレスを含んでおり、このソースをコンパイルしてロードモジュールを作成することにより、自動的に通信処理が組み込まれる。ゲートウェイアプリケーションがパススルー処理しか行わない場合は、アプリケーション作成者はこのゲートウェイソースを追加インプリメントする必要はない。
【００３５】
このような定義により、クライアントアプリケーションおよびゲートウェイアプリケーションの各オブジェクトと、汎用コンピュータおよびその上のサーバアプリケーションとが一意に関係付けられることができる。また、上記のような定義によると、分散オブジェクト環境下にあるオブジェクトをネットワーク上の複数の汎用コンピュータ各々と関係付けることができる。
【００３６】
図４は３階層クライアント／サーバシステムの連携処理のためのフローチャートである。まず、アプリケーション定義体１１にインタフェース情報と汎用コンピュータの通信アドレスを定義する（ステップＳ１）。次に、定義体コンパイラ１２でアプリケーション定義体１１をコンパイルし、ＩＤＬソースファイル１３、インタフェース情報ファイル１４、ソースコードファイル１５を生成する（ステップＳ２）。
【００３７】
ここで、ＩＤＬソースファイル１３については、ＩＤＬコンパイラ１６でコンパイルされ（ステップＳ３）、これから生成されたインタフェース情報ファイル１７、すなわち、スタブファイルを利用したクライアントアプリケーションを作成する（ステップＳ４）。また、ステップＳ２で生成されたソースコードファイル１５と、ステップＳ３でのコンパイルの結果、生成されたインタフェース情報ファイル１８、すなわち、スケルトンファイルを使用してゲートウェイアプリケーションのオブジェクトを作成する（ステップＳ５）。さらに、ステップＳ２で生成されたインタフェース情報ファイル１４を利用してサーバアプリケーションを作成する（ステップＳ６）。そして、各アプリケーションをクライアント、サーバ、汎用コンピュータに搭載することで３者間の連携処理を行うことになる（ステップＳ７）。
【００３８】
図５は連携処理された３階層クライアント／サーバシステムの構成を示す説明図である。図５において、クライアントアプリケーション２０があり、このクライアントアプリケーション２０にはＩＤＬコンパイラ１６でコンパイルされたインタフェース情報ファイル１７が組み込まれている。また、ゲートウェイアプリケーション２１は、ＩＤＬコンパイラ１６でコンパイルされたインタフェース情報ファイル１８と、オブジェクト２２と、サーバアプリケーション２４との連携処理を行う連携処理部２３とで構成される。サーバアプリケーション２４は連携処理部２５と、定義体コンパイラ１２によって生成されたインタフェース情報ファイル１４と、たとえばデータベース処理を含むサーバ処理の部分からなる、たとえばＣＯＢＯＬ（ｃｏｍｍｏｎ  ｂｕｓｉｎｅｓｓ  ｏｒｉｅｎｔｅｄ  ｌａｎｇｕａｇｅ）のアプリケーションである。インタフェース情報ファイル１４はたとえばＣＯＢＯＬでのライブラリ関数ファイルである。
【００３９】
クライアントアプリケーション２０はクライアント処理、すなわち、サーバアプリケーション２４の呼び出しと処理結果の受信を行う。ゲートウェイアプリケーション２１のオブジェクト２２は汎用コンピュータのサーバアプリケーション２４との間で既存通信手順を利用するための通信あて先の情報（たとえば、通信あて先＝Ｓ１）を有しており、ゲートウェイ処理を行う。サーバアプリケーション２４はたとえば通信あて先＝Ｓ１を有し、オブジェクト２２の転送先と同じ通信アドレスを有しているものとする。
【００４０】
次に、この３階層クライアント／サーバシステムの動作について説明する。
図６は３階層クライアント／サーバシステムの動作の流れを示すフローチャートである。まず、クライアントアプリケーション２０がインタフェース情報ファイル（スタブ）１７を利用してゲートウェイアプリケーション２１のオブジェクト２２を呼び出す（ステップＳ１１）。オブジェクト２２はクライアントアプリケーション２０からの要求内容を既存通信手順に変換し、既存通信手順を使ってサーバアプリケーション２４に送信する（ステップＳ１２）。サーバアプリケーション２４が既存通信手順によって受けたクライアントアプリケーション２０からの要求内容に従ってデータベースを更新し、既存通信手順でオブジェクト２２に返信する（ステップＳ１３）。オブジェクト２２は既存通信手順によって受けた返信内容をインタフェース情報ファイル（スケルトン）１８を利用してクライアントアプリケーション２０に返信する（ステップＳ１４）。クライアントアプリケーション２０はその返信内容によってデータベースの更新結果を受信する（ステップＳ１５）。
【００４１】
【発明の効果】
以上説明したように本発明では、一つのアプリケーション定義体より３階層システム間の通信連携情報を得るように構成した。このため、分散オブジェクト環境（ＯＲＢ機構）を持たない汎用コンピュータ上のアプリケーションと分散オブジェクト環境上のクライアントアプリケーションとの通信連携処理を行うために必要であったサーバアプリケーションと汎用コンピュータ上のアプリケーションとの通信処理およびインタフェース情報のインプリメントの必要がない。
ゲートウェイと汎用コンピュータとの間の通信処理を既存通信手順を利用したことによりネーミングサービスを利用しない分、通信処理時間が半減され、クライアントアプリケーションに対し処理性能を向上することができる。
【００４２】
クライアントアプリケーションは、分散オブジェクト環境外である汎用コンピュータ上のアプリケーションとの連携を意識する必要がなくなり、あたかも汎用コンピュータ上のアプリケーションの処理を、ローカルシステムでのプログラム呼び出しのイメージで行うことができる。
【００４３】
クライアントアプリケーション・サーバアプリケーション間のインタフェースはＯＭＧ準拠のＩＤＬ記述であるため、そのソースファイルのコンパイルに一般的なＩＤＬコンパイラを利用することができ、クライアント側の標準性を保つことができる。
【００４４】
インタフェース情報が保証されたゲートウェイのソースコードが生成されるため、ゲートウェイのコーディングが不要であり、アプリケーション開発者の作業負担を軽減することかできる。
【図面の簡単な説明】
【図１】本発明の通信連携情報生成装置および３階層クライアント／サーバシステムの構成を示す図である。
【図２】３階層クライアント／サーバシステムの通信情報連携処理を説明した図である。
【図３】アプリケーション定義の一例を示す図である。
【図４】３階層クライアント／サーバシステムの連携処理のためのフローチャートである。
【図５】連携処理された３階層クライアント／サーバシステムの構成を示す説明図である。
【図６】３階層クライアント／サーバシステムの動作の流れを示すフローチャートである。
【図７】３階層システムの構築例を示す図である。
【符号の説明】
１  アプリケーション定義体
２  通信連携情報生成装置
２ａ  入力手段
２ｂ  解析手段
２ｃ  インタフェース定義言語（ＩＤＬ）ソース作成手段
２ｄ  ソースコード生成手段
２ｅ  インタフェース情報ファイル生成手段
３  クライアント
３ａ  クライアントアプリケーション
３ｂ  スタブ
４  サーバシステム
４ａ  ゲートウェイアプリケーション
４ｂ  スケルトン
５  汎用コンピュータ
５ａ  サーバアプリケーション
【図１】
0003597356.tif 000002
【図２】
0003597356.tif 000003
【図３】
0003597356.tif 000004
【図４】
0003597356.tif 000005
【図５】
0003597356.tif 000006
【図６】
0003597356.tif 000007
【図７】
0003597356.tif 000008