(57)【特許請求の範囲】
【請求項１】
要求に応じて各種処理機能を提供するサーバシステムにおいて、
１以上の処理の呼び出し方を定義した複数のインタフェースそれぞれに対応して設けられ、対応するインタフェースで定義された呼び出し方による処理要求に応じて当該処理要求で指定された処理を実行するための複数の処理アプリケーションプログラムを記憶する処理アプリケーション記憶手段と、
複数のインタフェースそれぞれについて、当該インタフェースを示すインタフェース名、当該インタフェースで呼び出し方が定義された処理を示す処理名、当該インタフェースが承継する承継元インタフェースを示す承継元インタフェース名、および当該インタフェースで呼び出し方が定義された処理を実行する処理アプリケーションプログラムの位置を記憶するアプリケーション情報記憶手段と、
インタフェース名と処理名とを含む処理要求が入力されると、前記アプリケーション情報記憶手段を参照し、当該インタフェース名で示されるインタフェースに当該処理名で示される処理の呼び出し方が定義されているか否かを判断し、当該処理の呼び出し方が定義されている場合には当該インタフェース名と当該インタフェース名に対応する処理アプリケーションプログラムの位置とを取得し、当該処理が定義されていない場合には当該インタフェース名で示されるインタフェースが承継する承継元インタフェースの承継元インタフェース名と当該承継元インタフェース名に対応する処理アプリケーションプログラムの位置とを取得するアプリケーション情報管理手段と、
前記アプリケーション情報管理手段によって取得された位置において、前記アプリケーション情報管理手段によって取得されたインタフェース名または承継元インタフェース名で処理アプリケーションプログラムを呼び出し、入力された前記処理要求に含まれる処理名で示される処理を実行させるアプリケーション呼び出し手段と、
を有することを特徴とするサーバシステム。
【請求項２】
要求に応じて各種処理機能を提供するサーバシステムにおいて、
１以上の処理の呼び出し方を定義した複数のインタフェースそれぞれに対応して設けられ、対応するインタフェースで定義された呼び出し方による処理要求に応じて当該処理要求で指定された処理を実行するための複数の処理アプリケーションプログラムを記憶する処理アプリケーション記憶手段と、
複数のインタフェースそれぞれについて、当該インタフェースを示すインタフェース名、当該インタフェースで呼び出し方が定義された処理を示す処理名、当該インタフェースが承継する承継元インタフェースを示す承継元インタフェース名、および当該インタフェースで呼び出し方が定義された処理を実行する処理アプリケーションプログラムの位置を記憶するアプリケーション情報記憶手段と、
インタフェース名と処理名とを含む処理要求が入力されると、前記アプリケーション情報記憶手段を参照し、当該インタフェース名で示されるインタフェースに当該処理名で示される処理の呼び出し方が定義されているか否かを判断し、当該処理の呼び出し方が定義されている場合には当該インタフェース名と当該インタフェース名に対応する処理アプリケーションプログラムの位置とを取得し、当該処理が定義されていない場合には当該インタフェース名で示されるインタフェースが承継する承継元インタフェースの承継元インタフェース名と当該承継元インタフェース名に対応する処理アプリケーションプログラムの位置とを取得するアプリケーション情報管理手段と、
前記アプリケーション情報管理手段によって取得された位置において、前記アプリケーション情報管理手段によって取得されたインタフェース名または承継元インタフェース名で処理アプリケーションプログラムを呼び出し、入力された前記処理要求に含まれる処理名で示される処理を実行させるアプリケーション呼び出し手段と、
を具備する第１のサーバと、
処理アプリケーションプログラムで実行される機能を示す機能名、当該処理アプリケーションプログラムを記憶する前記第１のサーバを示すサーバ名、及び当該処理アプリケーションプログラムで実行する処理の呼び出し方が定義されたインタフェースを示すインタフェース名の組を記憶する機能所在情報保持手段と、
クライアントから機能名を指定した問い合わせを受け取ると、前記機能所在情報保持手段を参照し、指定された当該機能名に対応するサーバ名とインタフェース名とを、当該クライアントに通知する機能所在管理手段と、
を具備する第２のサーバと、
前記第２のサーバに対して機能名を指定した問い合わせを行い、当該機能名に対応するサーバ名とインタフェース名とを取得する処理要求手段と、
前記処理要求手段が取得したサーバ名で示される前記第１のサーバに対して、取得したインタフェース名と実行させる処理を示す処理名とを含む処理要求を送信する要求転送手段と、
を具備するクライアントと、
を有することを特徴とするサーバシステム。
【請求項３】
要求に応じて各種処理機能を提供するためのサーバプログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
１以上の処理の呼び出し方を定義した複数のインタフェースそれぞれに対応して設けられ、対応するインタフェースで定義された呼び出し方による処理要求に応じて当該処理要求で指定された処理を実行するための複数の処理アプリケーションプログラムを記憶する処理アプリケーション記憶手段、
複数のインタフェースそれぞれについて、当該インタフェースを示すインタフェース名、当該インタフェースで呼び出し方が定義された処理を示す処理名、当該インタフェースが承継する承継元インタフェースを示す承継元インタフェース名、および当該インタフェースで呼び出し方が定義された処理を実行する処理アプリケーションプログラムの位置を記憶するアプリケーション情報記憶手段、
インタフェース名と処理名とを含む処理要求が入力されると、前記アプリケーション情報記憶手段を参照し、当該インタフェース名で示されるインタフェースに当該処理名で示される処理の呼び出し方が定義されているか否かを判断し、当該処理の呼び出し方が定義されている場合には当該インタフェース名と当該インタフェース名に対応する処理アプリケーションプログラムの位置とを取得し、当該処理が定義されていない場合には当該インタフェース名で示されるインタフェースが承継する承継元インタフェースの承継元インタフェース名と当該承継元インタフェース名に対応する処理アプリケーションプログラムの位置とを取得するアプリケーション情報管理手段、
前記アプリケーション情報管理手段によって取得された位置において、前記アプリケーション情報管理手段によって取得されたインタフェース名または承継元インタフェース名で処理アプリケーションプログラムを呼び出し、入力された前記処理要求に含まれる処理名で示される処理を実行させるアプリケーション呼び出し手段、
として機能させることを特徴とするサーバプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
技術分野
本発明はインタフェースで定義された処理要求に応じた処理を実行するサーバシステム及び記録媒体に関し、特に処理アプリケーション間での処理機能の承継が可能なサーバシステム及び記録媒体に関する。
【０００２】
背景技術
近年のクライアントサーバ型システムの発展に伴い、クライアントアプリケーションからサーバアプリケーションに処理を依頼し、その処理結果をクライアントアプリケーションに返すクライアントサーバアプリケーションの連携方式が提供されている。この方式では、サーバアプリケーションのインタフェース（他のプログラムから利用できる関数の集まり）を定義し、相手側の開発言語に依存しないで、クライアントサーバアプリケーションの開発ができるようになってきている。すなわち、クライアントからサーバの機能を利用する際には、予め定義されたインタフェースに従った要求を出せばよい。このようなインタフェースを介したシステムを構築することで、分散処理システムの開発効率を向上させることができる。
【０００３】
ところで、すでに運用されているクライアントサーバシステムにおいて、インタフェースの機能を拡張したい場合がある。それには、追加するインタフェースに応じた処理を実行するためのサーバアプリケーションを新たに作成し、既存のインタフェースに対応するサーバアプリケーションと統合する必要がある。
【０００４】
ここで、既存のサーバアプリケーションがＣ＋＋言語やJava（米サン・マイクロシステムズ社の登録商標）言語のようなオブジェクト指向言語で作成されていることがわかっていれば、同じ言語を用いて新たなサーバアプリケーションを作成し、既存のインタフェースの一部を継承することができる。これにより、既存のインタフェースの一部を利用しつつ新しいインタフェースを作成でき、アプリケーションの生産性の向上を図ることができる。
【０００５】
しかし、インタフェースの継承が可能なのは、同一のオブジェクト指向言語でサーバ側の処理アプリケーションが作成されている場合に限られる。従って、クライアントサーバ型システムにおいて、あるオブジェクト指向言語で作成されたサーバアプリケーションのインタフェースを別のオブジェクト指向言語のアプリケーションで継承することはできない。例えば、Ｃ＋＋言語で作成されたサーバアプリケーションのインタフェースを承継できるのは、Ｃ＋＋言語で作成されたサーバアプリケーションのみである。
【０００６】
また、非オブジェクト指向言語で作成されたサーバアプリケーションのインタフェースにおいては、別の言語（オブジェクト指向言語、非オブジェクト指向言語を問わず）で継承することができない。
【０００７】
図１３は、インタフェースの継承の可否の関係を示す図である。この図において、「○」で示された関係が承継可能な関係であり、「×」で示された関係が承継不可能な関係である。
【０００８】
このように、インタフェースの承継ができるのは非常に限られた場合である。しかも、コンピュータメーカ等から提供されたサーバアプリケーションのインタフェースをユーザ側で拡張する場合、もとのサーバアプリケーションの開発言語が何であったのかは不明である。
【０００９】
インタフェースの承継ができない場合には、新規のインタフェース用のサーバアプリケーションを作成するとともに、変更する必要のない処理を既存のサーバアプリケーションに対して要求し直すための処理ルーチンを作成する必要がある。このような処理ルーチンを、承継すべき全ての処理機能に関して作成するのは、非常に手間のかかる作業となる。
【００１０】
発明の開示
本発明はこのような点に鑑みてなされたものであり、言語間の異同に関係なく、あるプログラムの提供する機能を他のプログラムで容易に承継できるサーバシステム及び記録媒体を提供することを目的とする。
【００１１】
本発明では上記課題を解決するために、要求に応じて各種処理機能を提供するサーバシステムにおいて、送られてきた処理要求に従った処理を実行する複数の処理実行手段と、処理要求種別毎に、該当する処理要求を処理すべき前記処理実行手段の情報が設定された処理機能情報保持手段と、処理要求が入力されると、前記処理機能情報保持手段に設定されている情報に基づいて、入力された前記処理要求を処理させるべき前記処理実行手段を決定する処理機能情報管理手段と、入力された前記処理要求を、前記処理機能情報管理手段によって決定された前記処理実行手段に実行させる処理機能呼び出し手段と、を有することを特徴とするサーバシステムが提供される。
【００１２】
このようなサーバシステムによれば、処理要求が送られてくると、処理機能情報管理手段によって、処理機能情報保持手段に設定されている情報に基づいて、入力された処理要求を処理させるべき処理実行手段が決定される。すると、処理機能呼び出し手段が、入力された処理要求を、処理機能情報管理手段で決定された処理実行手段に実行させる。
【００１３】
本発明の上記および他の目的，特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【００１４】
発明を実施するための最良の形態
以下、本発明の実施の形態を図面を参照して説明する。
【００１５】
図１は、本発明の原理構成図である。異言語間でのプログラムの継承を可能とするクライアントサーバシステムである。
クライアント１０は、処理要求手段１１と要求転送手段１２とを有している。処理要求手段１１は、サーバ２０に対して処理要求を出力する。要求転送手段１２は、処理要求手段１１の出力した処理要求を目的のサーバ２０に転送する。
【００１６】
サーバ２０は、要求受け取り手段２１、処理機能情報保持手段２２、処理機能情報管理手段２３、処理機能呼び出し手段２４、及び処理機能提供手段２５を有している。要求受け取り手段２１は、クライアント１０からの処理要求を受け取るための機能を有しており、要求転送手段１２から送られてきた処理要求を処理機能呼び出し手段２４に渡す。処理機能情報保持手段２２は、どの処理要求をどの処理実行手段で処理させるのかに関する情報を保持する。処理機能情報管理手段２３は、処理機能情報保持手段２２内の情報の参照／更新を行うことで、与えられた処理要求を実行すべき処理実行手段を決定する。処理機能呼び出し手段２４は、要求受け取り手段２１から処理要求を受け取ると、受け取った処理要求を処理すべき処理実行手段がどれなのかを、処理機能情報管理手段２３に問い合わせる。そして、処理機能情報管理手段２３が決定した処理実行手段に対して、受け取った処理要求を実行させる。処理機能提供手段２５は、様々な言語で記述された各処理実行手段２５ａ〜２５ｃを格納する（各種処理実行手段は１つの言語で記述されたプログラムであってもよいし、複数の言語で記述してもよい）。処理実行手段２５ａ〜２５ｃは、クライアント１０からの処理要求に従って、実際の処理を実行する。
【００１７】
このような構成のクライアントサーバシステムによれば、クライアント１０の処理要求手段１１から出力された処理要求は、要求転送手段１２によってサーバ２０に送られる。サーバ２０では、要求受け取り手段２１がその処理要求を受け取り、処理機能呼び出し手段２４に渡す。処理機能呼び出し手段２４は、受け取った処理要求をどの処理実行手段２５ａ〜２５ｃに実行させるべきかを、処理機能情報管理手段２３に問い合わせる。処理機能情報管理手段２３は、処理機能情報保持手段２２の内容を参照し、処理機能呼び出し手段２４が受け取った処理要求を実行させるべき処理実行手段２５ａ〜２５ｃを決定する。すると、処理機能呼び出し手段２４は、処理機能情報管理手段２３が決定した処理実行手段２５ａ〜２５ｃを呼び出し、処理要求を実行させる。
【００１８】
このように本発明では、処理機能情報保持手段２２に格納された情報に基づいて、各処理要求を実行すべき処理実行手段２５ａ〜２５ｃが確定するため、新たな処理実行手段を追加した場合には、その処理実行手段で処理可能な処理要求を処理機能情報保持手段２２に設定しておくとともに、追加した処理実行手段で処理できない処理要求は既存の処理実行手段で実行するように設定しておけばよい。その結果、新たに追加する処理実行手段は、既存の機能に対して追加や変更を加えた処理機能を有していればよく、以前と同様の処理機能は、既存の処理実行手段から承継することができる。
【００１９】
ここで、処理機能情報保持手段２２への情報の設定方法としては、例えば、新たに追加した処理実行手段で処理可能な処理要求の種別と、機能を承継する既存の処理実行手段の識別子とを設定しておく。これにより、非常に簡単に処理機能情報保持手段２２の内容を更新できる。しかも、処理実行手段の開発言語に関係なく処理機能承継の手続きが可能である。
【００２０】
次に、本発明を用いたクライアントサーバシステムにおいて、クライアントサーバ間に規定されたインタフェースを拡張する場合の例を具体的に説明する。なお、以下の例は、ＣＯＲＢＡ(Common Object Request Broker Architecture)を使用した分散処理システムに対して本発明を適用したものである。
【００２１】
図２は、抽象的なインタフェース定義の例を示す図である。この例は、ＩＤＬ(Interface Definition Language)によってインタフェースが定義されている。図中左側が既存のインタフェース３１であり、右側が機能拡張用のインタフェース３２である。
【００２２】
既存のインタフェース３１の１行目における「AAA」は、インタフェース名を示している。このインタフェース３１には、加算を行う「add」、減算を行う「sub」という処理が定義されている。
【００２３】
機能拡張用のインタフェース３２には、「BBB」というインタフェース名が与えられている。また、インタフェース名「BBB」に続く「AAA」の表記は、「AAA」のインタフェースの機能を承継する旨の情報である。このインタフェース３２には、乗算を行う「multi」、割り算を行う「div」、及びインタフェース３１が持つ加算処理とは同じ名前で、かつ、受け取るパラメタのデータ型が異なる「add」という処理が定義されている。
【００２４】
ここで、インタフェース３１をインタフェース３２で承継した場合には、インタフェース３１の持つ「sub」がインタフェース３２でも使用できる。また、「add」はインタフェース３１にもインタフェース３２にもあるが、インタフェース３２で再定義しているのでインタフェース３２の方が有効となる。
【００２５】
このようにして定義されたインタフェース３１，３２をＩＤＬコンパイラでコンパイルすることで、スタブ（クライアントアプリケーション用のソースコード）とスケルトン（サーバアプリケーション用のソースコード）が生成される。ここで、クライアントやサーバのアプリケーションは、Ｃ＋＋言語の場合やＪＡＶＡ言語の場合などがあるが、ＩＤＬコンパイラにおいて各言語へのマッピングが定義されているため、クライアントやサーバのアプリケーションと同じ言語のソースコードが生成できる。そして、クライアントアプリケーションをコンパイルする際には、スタブをリンクして一緒にコンパイルする。同様に、サーバアプリケーションをコンパイルする際には、スケルトンをリンクして一緒にコンパイルする。これにより、定義したインタフェースに適合するクライアント及びサーバのアプリケーションプログラムが生成される。
【００２６】
生成されたサーバ用の処理アプリケーションプログラムをサーバに実装することで、定義したインタフェースの規定に従った処理を、サーバが実行できるようになる。
【００２７】
なお、以下の説明においてアプリケーションとは、所定の処理を実行するためのプログラム（アプリケーションプログラム）をコンピュータのＣＰＵ(Central Processing Unit)が実行することにより実現する処理機能を指すものとする。
【００２８】
図３は、本発明の実施の形態の構成図である。この例では、クライアント４０、サーバ５０、サーバ６０がそれぞれネットワーク７０を介して接続されている。
【００２９】
クライアント４０は、処理要求アプリケーション４１と要求転送部４２とを有している。処理要求アプリケーション４１は、処理要求を出力するアプリケーションである。要求転送部４２は、処理要求アプリケーション４１からの処理要求等を、各サーバ５０，６０に対して転送する。
【００３０】
サーバ５０はネットワーク上での名前が「βββ」であり、インタフェース識別子管理ファイル５１、インタフェース識別子管理部５２、及び要求受け取り部５３を有する。インタフェース識別子管理ファイル５１には、インタフェースの名前と、そのインタフェースに対応する処理を実行する処理アプリケーションが実装されたサーバとの対応関係が登録されている。
【００３１】
図４は、インタフェース識別子管理ファイルの例を示す図である。インタフェース識別子管理ファイル５１には、機能の名前と、その名前に対応する識別ＩＤが登録されている。名前は、クライアント４０のユーザが覚えやすいような名前が選ばれる。識別ＩＤには、各インタフェースを識別するための以下のような情報が登録される。
【００３２】
すなわち、識別ＩＤは、「ホスト名」と「インタフェース名」とで構成される。「ホスト名」は、インタフェースに応じた処理を実行するための処理プログラムが実装されたサーバ名である。「インタフェース名」は、対象となるインタフェースに与えられた識別子である。
【００３３】
この例では、機能の名前「伝票」に対して、識別ＩＤ「ＩＤ１」が対応づけられている。識別ＩＤ「ＩＤ１」の内容は、ホスト名が「ααα」、インタフェース名が「ＡＡＡ」である。また、機能の名前「会計」に対して、識別ＩＤ「ＩＤ２」が対応づけられている。識別ＩＤ「ＩＤ２」の内容は、ホスト名が「ααα」、インタフェース名が「ＢＢＢ」である。
【００３４】
このようなインタフェース識別子管理ファイル５１があることによって、処理要求アプリケーション４１がインタフェース「ＡＡＡ」に対してアクセスする場合は、インタフェース識別子の管理ファイルから「伝票」という名前で識別ＩＤを求めることができる。同様に、インタフェース「ＢＢＢ」に対してアクセスする場合は、「会計」という名前で識別ＩＤを求めることができる。
【００３５】
図３に戻り、インタフェース識別子管理部５２は、クライアント４０から機能の名前を指定したサーバの問い合わせを受け取ると、その名前に対応して設定されているサーバの識別子や、インタフェース名などの情報をインタフェース識別子管理ファイル５１より取り出す。そして、取り出した情報を、クライアント４０に返す。要求受け取り部５３は、クライアント４０の要求転送部４２から送られてくる処理サーバの問い合わせをインタフェース識別子管理部５２に渡し、その応答内容を要求転送部４２に返す。
【００３６】
サーバ６０はネットワーク上での名前が「ααα」であり、アプリケーション情報管理ファイル６１、要求受け取り部６２、アプリケーション呼び出し部６３、アプリケーション情報管理部６４、処理アプリケーション保持部６５、及びアプリケーション情報設定部６６を有している。
【００３７】
アプリケーション情報管理ファイル６１は、処理要求の種別毎に、どの処理アプリケーションに処理を実行させるべきなのかの対応関係が登録されたファイルである。
【００３８】
図５は、アプリケーション情報管理ファイルの例を示す図である。アプリケーション情報管理ファイル６１には、「インタフェース名」、「承継するインタフェース」、「インタフェースが持つ処理」、「言語の識別」、及び「処理アプリケーションの位置」の項目が設けられている。「インタフェース名」の欄には、サーバ６０に実装されているインタフェースの名前が登録される。「承継するインタフェース名」の欄には、そのインタフェースが他のインタフェースの処理を承継する際に、当該他のインタフェースの名称が登録される。「インタフェースが持つ処理」の欄には、そのインタフェースが有する処理（関数）が登録される。「言語の識別」の欄には、そのインタフェースの処理プログラムがどのようなプログラミング言語で作成されたものなのかが登録される。「処理アプリケーションの位置」には、処理アプリケーションが格納されているディレクトリ構造上の位置が、所定の場所からのパスで登録される。
【００３９】
この例では、インタフェース名「AAA」に対応して、継承するインタフェース「なし」、インタフェースが持っている処理名「add, sub」、インタフェースが記述されている言語「COBOL」、インタフェースが格納されているサーバ６０の位置「/XXX/III」という情報が管理されている。また、インタフェース名「BBB」に対応して、継承するインタフェース名「AAA」、インタフェースが持っている処理名「add, multi, div」、インタフェースが記述されている言語「C」、インタフェースが格納されているサーバ６０での位置「/YYY/GGG」という情報が管理されている。
【００４０】
図３に戻り、要求受け取り部６２は、クライアントからの要求を受け取り、その要求をアプリケーション呼び出し部６３に渡す。アプリケーション呼び出し部６３は、要求受け取り部６２から渡された処理要求のインタフェース名及び処理名をアプリケーション情報管理部６４に渡し、応答として、処理を実行させるべき処理アプリケーションに対応するインタフェース名及び処理アプリケーションの位置を受け取る。そして、受け取った情報に基づいて、該当する処理アプリケーションを呼び出し、処理を実行させる。アプリケーション情報管理部６４は、アプリケーション呼び出し部６３から渡されたインタフェース名と処理名とを受け取り、実際にその処理を実行すべきインタフェースをアプリケーション情報管理ファイル６１に登録されている情報に基づいて決定する。そして、決定したインタフェース名及び処理アプリケーションの位置をアプリケーション呼び出し部６３に渡す。
【００４１】
処理アプリケーション保持部６５は、複数の処理アプリケーション６５ａ，６５ｂを保持している。処理アプリケーション６５ａは、図２に示した既存のインタフェース３１に従った処理要求を実行する処理プログラムであり、処理アプリケーション６５ｂは、機能拡張用のインタフェース３２に従った処理要求を実行する処理プログラムである。この例では、インタフェース３１の処理を行う処理アプリケーション６５ａは、インタフェース名「AAA」、処理プログラムの各マシンでの位置「/XXX/III」、処理部の言語「COBOL」である。また、インタフェース３２の処理を行う処理アプリケーション６５ｂは、インタフェース名「BBB」、処理プログラムの各マシンでの位置「/YYY/GGG」、処理部の言語「C」である。
【００４２】
アプリケーション情報設定部６６は、アプリケーション情報管理部６４を介してアプリケーション情報管理ファイル６１の内容を編集する機能を有している。
以上のような構成のクライアントサーバシステムにおいて、処理要求アプリケーション４１がサーバ６０内の処理アプリケーションに何らかの処理を実行させる場合は、次のような処理が行われる。
【００４３】
まず、処理要求アプリケーション４１が、インタフェース識別子管理部５２に対して、目的の処理アプリケーションが実装されているサーバを問い合わせる。すると、インタフェース識別子管理部５２が、サーバ名を返す。サーバ名を受け取った処理要求アプリケーション４１は、そのサーバ６０に対して処理要求を出力する。処理要求は、サーバ６０のアプリケーション呼び出し部６３に渡される。アプリケーション呼び出し部６３は、受け取った処理要求を実際に処理させるべき処理アプリケーションに対応するインタフェース名及び処理アプリケーションの位置を、アプリケーション情報管理部６４に問い合わせる。アプリケーション情報管理部６４は、処理要求の処理内容などから処理アプリケーションを特定し、アプリケーション呼び出し部６３に通知する。すると、アプリケーション呼び出し部６３が、通知された処理アプリケーションを呼び出し、処理要求を実行させる。実行結果は、処理アプリケーションから処理要求アプリケーション４１に返される。
【００４４】
このような処理を実行するための各構成要素の処理手順を、以下に示す。
まず、クライアント４０で行われる処理について説明する。
図６は、処理要求アプリケーションの処理手順を示すフローチャートの説明を示す図である。この処理は、すべて処理要求アプリケーション４１が実行する。
［Ｓ１］要求転送部４２を介して、サーバ５０内のインタフェース識別子管理部５２を呼び出す。具体的には、実行したい機能の名前を入力パラメタとして指定し、機能の名前に対応する識別ＩＤを獲得する。例えば、機能の名前として「会計」を指定した場合には、識別ＩＤ「ＩＤ２」を獲得する。この識別ＩＤは、ホスト名と、インタフェース名とで構成されている。
［Ｓ２］要求転送部４２を介して、目的の処理を実行できる処理アプリケーションが実装されたサーバから実際の処理を呼び出す。この際、機能の識別ＩＤ、処理名、及び処理に受け渡すパラメタを指定する。例えば、識別ＩＤ「ＩＤ２」、処理名「ａｄｄ」、及び「ａｄｄ」処理に必要なパラメタを、要求転送部４２を介してサーバ６０へ送信する。
【００４５】
図７は、要求転送部の処理手順を示すフローチャートである。これは、すべて要求転送部４２が実行する処理である。
［Ｓ１１］処理要求アプリケーション４１から渡された識別ＩＤを元に、どのサーバに要求を送るかを判断する。例えば、識別ＩＤ「ＩＤ２」が渡された場合、その内容を参照し、処理要求を送るべきサーバ６０のホスト名「ααα」を認識する。
［Ｓ１２］該当するサーバの要求受け取り部に対して、処理要求アプリケーションからの情報を送信する。
［Ｓ１３］要求受け取り部から送られてきた処理アプリケーションの処理結果を受け渡す。
【００４６】
次に、サーバ５０で実行される処理について説明する。
図８は、インタフェース識別子管理部の処理手順を示すフローチャートである。これは、クライアント４０の処理要求アプリケーション４１から呼び出されたインタフェース識別子管理部５２が行う処理である。
［Ｓ２１］受け渡された機能の名前を元に、インタフェース識別子管理ファイル５１から識別ＩＤを検索する。
［Ｓ２２］対応する識別ＩＤが見つかったか否かを判断する。見つかった場合にはステップＳ２３に進み、見つからなかった場合にはステップＳ２４に進む。
［Ｓ２３］見つかった識別ＩＤを、クライアント４０の処理要求アプリケーション４１に返す。
［Ｓ２４］エラーをクライアント４０の処理要求アプリケーション４１に返す。
【００４７】
次に、サーバ６０で実行される処理について説明する。
図９は、要求受け取り部の処理手順を示すフローチャートである。これは、すべて要求受け取り部６２が行う。
［Ｓ３１］処理要求アプリケーション４１からの処理要求を受け取る。
［Ｓ３２］要求を元にアプリケーション呼び出し部６３を呼び出す。
［Ｓ３３］処理アプリケーション６５ａ，６５ｂの処理結果を、処理要求アプリケーション４１に受け渡す。
【００４８】
図１０は、アプリケーション情報管理部の処理手順を示すフローチャートである。これは、すべてアプリケーション情報管理部６４が行う処理である。
［Ｓ４１］受け渡された識別ＩＤ内に格納されているインタフェース名及び処理名を元に、インタフェース名及び処理アプリケーションの位置をアプリケーション情報管理ファイルから検索する。この処理の詳細は、図１１に示す。
［Ｓ４２］対応するインタフェース名及び処理アプリケーションの位置が見つかったか否かを判断する。見つかった場合にはステップＳ４３に進み、見つからなかった場合にはステップＳ４４に進む。
［Ｓ４３］見つかったインタフェース名及び処理アプリケーションの位置を、アプリケーション呼び出し部６３に返す。
［Ｓ４４］エラーをアプリケーション呼び出し部６３に返す。
【００４９】
図１１は、処理アプリケーション検索処理の詳細を示す図である。これは、すべてアプリケーション情報管理部６４が行う処理である。
［Ｓ５１］アプリケーション情報管理ファイル６１内に、対応するインタフェース名があるか否かを判断する。対応するインタフェース名がある場合にはステップＳ５２に進み、対応するインタフェース名がない場合にはステップＳ５５に進む。
［Ｓ５２］検出されたインタフェースを呼び出し候補とする。
［Ｓ５３］要求されている処理名を、呼び出し候補として設定されているインタフェースが有しているか否かを判断する。要求されている処理名を有している場合にはステップＳ５７に進み、有していない場合にはステップＳ５４に進む。
［Ｓ５４］呼び出し候補として設定されているインタフェースに関して、承継するインタフェースがあるか否かを判断する。承継するインタフェースがある場合にはステップＳ５５に進み、承継するインタフェースがない場合にはステップＳ５６に進む。
［Ｓ５５］承継するインタフェースを新たな呼び出し候補とし、ステップＳ５３に進む。
［Ｓ５６］対応するインタフェースがない旨の情報を返し、処理を図１０のステップＳ４２に進める。
［Ｓ５７］呼び出し候補のインタフェース名及び処理アプリケーションの位置を検出結果として、処理を図１０のステップＳ４２に進める。
【００５０】
図１２は、アプリケーション呼び出し部の処理手順を示すフローチャートである。これは、すべてアプリケーション呼び出し部６３が行う処理である。
［Ｓ６１］アプリケーション情報管理部６４を呼び出す。この際、識別ＩＤ、処理名を入力パラメタとして指定し、インタフェース名及び処理アプリケーションの位置を受け取る。
［Ｓ６２］該当する処理アプリケーションの呼び出しを行い、受け取った処理要求をその処理アプリケーションに実行させる。
【００５１】
ここで、具体的な処理の流れについて説明する。
処理要求アプリケーション４１がインタフェース３２に定義された処理を依頼する場合、インタフェース識別子管理ファイル５１から「会計」という名前で、インタフェース３２の識別ＩＤ「ＩＤ２」を受け取る。処理要求アプリケーション４１は、その識別ＩＤと処理名、処理に受け渡すパラメタを元に処理アプリケーション６５ｂに要求を出す。要求転送部４２は、識別ＩＤ「ＩＤ２」内のホスト名「ααα」を参照し、要求をどのサーバに転送するかを決定し、該当するサーバ６０に対して処理要求を転送する。
【００５２】
要求受け取り部６２は、要求を受け取り、アプリケーション呼び出し部６３に受け渡す。アプリケーション呼び出し部６３は、識別ＩＤ「ＩＤ２」、処理名を元に、アプリケーション情報管理ファイルから検索し、該当するアプリケーションを呼び出す。例えば、処理名が「add」であれば、インタフェース名「ＢＢＢ」の処理アプリケーション６５ｂを呼び出す。処理名が「sub」であれば、承継元であるインタフェース名「ＡＡＡ」の処理アプリケーション６５ａを呼び出す。
【００５３】
以上のようにして、クライアント４０の処理要求アプリケーション４１から、目的の処理アプリケーションが実装されたサーバへ処理要求を送信し、処理結果を受け取ることができる。この際、実際にどの処理アプリケーションで処理が実行されるのかはアプリケーション情報管理部６４が決定するため、処理アプリケーションにおいて、処理要求を転送するための処理ルーチンを設定する必要がないとともに、処理アプリケーションの開発言語に関係なく、処理機能を承継できる。
【００５４】
また、インタフェース識別子管理部５２が、処理要求を送信すべきサーバの名前を処理要求アプリケーション４１に通知するため、処理要求アプリケーション４１が、各処理アプリケーションの存在場所を認識している必要もない。なお、インタフェース識別子管理ファイル５１は、ネットワーク７０内に１つ以上存在すればよく、各マシンに１つ存在しなくてよい。
【００５５】
ところで、アプリケーション情報管理ファイル６１の内容は、アプリケーション情報設定部６６によって更新できる。例えば、処理アプリケーションを作成した作業者が、アプリケーション情報設定部６６に入力装置から指令を入力して、新規に実装する処理アプリケーションに関する情報を登録する。また、アプリケーション情報設定部６６に、処理アプリケーション作成時に用いられたインタフェースの解析機能を搭載し、新たに定義されたインタフェースの承継元や、そのインタフェースが持つ処理名などの情報を自動的に取得してもよい。アプリケーション情報設定部６６は、取得した情報をその都度アプリケーション情報管理ファイル６１に設定する。
【００５６】
以上のように、本発明によれば、異言語間での継承、非オブジェクト指向言語間での継承及び非オブジェクト指向言語とオブジェクト指向言語間の継承を行うことができるので、クライアントサーバ型システムを構築する上で、サーバアプリケーションの生産性、保守性を向上させることができる。
【００５７】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、各クライアントやサーバが有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場へ流通させる場合には、ＣＤ−ＲＯＭ(Compact Disk Read Only Memory)やフレキシブルディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【００５８】
以上説明したように本発明では、処理機能情報保持手段に設定された情報に基づいて、処理要求を実行する処理実行手段を決定するようにしたため、新たに処理実行手段を追加する際には、その処理実行手段が実行できない処理要求を既存の処理実行手段が実行するように処理機能情報保持手段に設定しておくだけで、既存の処理実行手段の処理機能を承継することができる。従って、処理実行手段を開発した言語の異同に関係なく処理実行手段間の処理機能の承継が可能となる。
【００５９】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【図面の簡単な説明】
図１は、本発明の原理構成図である。
図２は、抽象的なインタフェース定義の例を示す図である。
図３は、本発明の実施の形態の構成図である。
図４は、インタフェース識別子管理ファイルの例を示す図である。
図５は、アプリケーション情報管理ファイルの例を示す図である。
図６は、処理要求アプリケーションの処理手順を示すフローチャートの説明を示す図である。
図７は、要求転送部の処理手順を示すフローチャートである。
図８は、インタフェース識別子管理部の処理手順を示すフローチャートである。
図９は、要求受け取り部の処理手順を示すフローチャートである。
図１０は、アプリケーション情報管理部の処理手順を示すフローチャートである。
図１１は、処理アプリケーション検索処理の詳細を示す図である。
図１２は、アプリケーション呼び出し部の処理手順を示すフローチャートである。
図１３は、インタフェースの継承の可否の関係を示す図である。
【図１】
0004040256.tif 000002
【図２】
0004040256.tif 000003
【図３】
0004040256.tif 000004
【図４】
0004040256.tif 000005
【図５】
0004040256.tif 000006
【図６】
0004040256.tif 000007
【図７】
0004040256.tif 000008
【図８】
0004040256.tif 000009
【図９】
0004040256.tif 000010
【図１０】
0004040256.tif 000011
【図１１】
0004040256.tif 000012
【図１２】
0004040256.tif 000013
【図１３】
0004040256.tif 000014