JP4040256B2 - サーバシステム及び記録媒体 - Google Patents
サーバシステム及び記録媒体 Download PDFInfo
- Publication number
- JP4040256B2 JP4040256B2 JP2000605888A JP2000605888A JP4040256B2 JP 4040256 B2 JP4040256 B2 JP 4040256B2 JP 2000605888 A JP2000605888 A JP 2000605888A JP 2000605888 A JP2000605888 A JP 2000605888A JP 4040256 B2 JP4040256 B2 JP 4040256B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- interface
- name
- application
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
技術分野
本発明はインタフェースで定義された処理要求に応じた処理を実行するサーバシステム及び記録媒体に関し、特に処理アプリケーション間での処理機能の承継が可能なサーバシステム及び記録媒体に関する。
【0002】
背景技術
近年のクライアントサーバ型システムの発展に伴い、クライアントアプリケーションからサーバアプリケーションに処理を依頼し、その処理結果をクライアントアプリケーションに返すクライアントサーバアプリケーションの連携方式が提供されている。この方式では、サーバアプリケーションのインタフェース(他のプログラムから利用できる関数の集まり)を定義し、相手側の開発言語に依存しないで、クライアントサーバアプリケーションの開発ができるようになってきている。すなわち、クライアントからサーバの機能を利用する際には、予め定義されたインタフェースに従った要求を出せばよい。このようなインタフェースを介したシステムを構築することで、分散処理システムの開発効率を向上させることができる。
【0003】
ところで、すでに運用されているクライアントサーバシステムにおいて、インタフェースの機能を拡張したい場合がある。それには、追加するインタフェースに応じた処理を実行するためのサーバアプリケーションを新たに作成し、既存のインタフェースに対応するサーバアプリケーションと統合する必要がある。
【0004】
ここで、既存のサーバアプリケーションがC++言語やJava(米サン・マイクロシステムズ社の登録商標)言語のようなオブジェクト指向言語で作成されていることがわかっていれば、同じ言語を用いて新たなサーバアプリケーションを作成し、既存のインタフェースの一部を継承することができる。これにより、既存のインタフェースの一部を利用しつつ新しいインタフェースを作成でき、アプリケーションの生産性の向上を図ることができる。
【0005】
しかし、インタフェースの継承が可能なのは、同一のオブジェクト指向言語でサーバ側の処理アプリケーションが作成されている場合に限られる。従って、クライアントサーバ型システムにおいて、あるオブジェクト指向言語で作成されたサーバアプリケーションのインタフェースを別のオブジェクト指向言語のアプリケーションで継承することはできない。例えば、C++言語で作成されたサーバアプリケーションのインタフェースを承継できるのは、C++言語で作成されたサーバアプリケーションのみである。
【0006】
また、非オブジェクト指向言語で作成されたサーバアプリケーションのインタフェースにおいては、別の言語(オブジェクト指向言語、非オブジェクト指向言語を問わず)で継承することができない。
【0007】
図13は、インタフェースの継承の可否の関係を示す図である。この図において、「○」で示された関係が承継可能な関係であり、「×」で示された関係が承継不可能な関係である。
【0008】
このように、インタフェースの承継ができるのは非常に限られた場合である。しかも、コンピュータメーカ等から提供されたサーバアプリケーションのインタフェースをユーザ側で拡張する場合、もとのサーバアプリケーションの開発言語が何であったのかは不明である。
【0009】
インタフェースの承継ができない場合には、新規のインタフェース用のサーバアプリケーションを作成するとともに、変更する必要のない処理を既存のサーバアプリケーションに対して要求し直すための処理ルーチンを作成する必要がある。このような処理ルーチンを、承継すべき全ての処理機能に関して作成するのは、非常に手間のかかる作業となる。
【0010】
発明の開示
本発明はこのような点に鑑みてなされたものであり、言語間の異同に関係なく、あるプログラムの提供する機能を他のプログラムで容易に承継できるサーバシステム及び記録媒体を提供することを目的とする。
【0011】
本発明では上記課題を解決するために、要求に応じて各種処理機能を提供するサーバシステムにおいて、送られてきた処理要求に従った処理を実行する複数の処理実行手段と、処理要求種別毎に、該当する処理要求を処理すべき前記処理実行手段の情報が設定された処理機能情報保持手段と、処理要求が入力されると、前記処理機能情報保持手段に設定されている情報に基づいて、入力された前記処理要求を処理させるべき前記処理実行手段を決定する処理機能情報管理手段と、入力された前記処理要求を、前記処理機能情報管理手段によって決定された前記処理実行手段に実行させる処理機能呼び出し手段と、を有することを特徴とするサーバシステムが提供される。
【0012】
このようなサーバシステムによれば、処理要求が送られてくると、処理機能情報管理手段によって、処理機能情報保持手段に設定されている情報に基づいて、入力された処理要求を処理させるべき処理実行手段が決定される。すると、処理機能呼び出し手段が、入力された処理要求を、処理機能情報管理手段で決定された処理実行手段に実行させる。
【0013】
本発明の上記および他の目的,特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【0014】
発明を実施するための最良の形態
以下、本発明の実施の形態を図面を参照して説明する。
【0015】
図1は、本発明の原理構成図である。異言語間でのプログラムの継承を可能とするクライアントサーバシステムである。
クライアント10は、処理要求手段11と要求転送手段12とを有している。処理要求手段11は、サーバ20に対して処理要求を出力する。要求転送手段12は、処理要求手段11の出力した処理要求を目的のサーバ20に転送する。
【0016】
サーバ20は、要求受け取り手段21、処理機能情報保持手段22、処理機能情報管理手段23、処理機能呼び出し手段24、及び処理機能提供手段25を有している。要求受け取り手段21は、クライアント10からの処理要求を受け取るための機能を有しており、要求転送手段12から送られてきた処理要求を処理機能呼び出し手段24に渡す。処理機能情報保持手段22は、どの処理要求をどの処理実行手段で処理させるのかに関する情報を保持する。処理機能情報管理手段23は、処理機能情報保持手段22内の情報の参照/更新を行うことで、与えられた処理要求を実行すべき処理実行手段を決定する。処理機能呼び出し手段24は、要求受け取り手段21から処理要求を受け取ると、受け取った処理要求を処理すべき処理実行手段がどれなのかを、処理機能情報管理手段23に問い合わせる。そして、処理機能情報管理手段23が決定した処理実行手段に対して、受け取った処理要求を実行させる。処理機能提供手段25は、様々な言語で記述された各処理実行手段25a〜25cを格納する(各種処理実行手段は1つの言語で記述されたプログラムであってもよいし、複数の言語で記述してもよい)。処理実行手段25a〜25cは、クライアント10からの処理要求に従って、実際の処理を実行する。
【0017】
このような構成のクライアントサーバシステムによれば、クライアント10の処理要求手段11から出力された処理要求は、要求転送手段12によってサーバ20に送られる。サーバ20では、要求受け取り手段21がその処理要求を受け取り、処理機能呼び出し手段24に渡す。処理機能呼び出し手段24は、受け取った処理要求をどの処理実行手段25a〜25cに実行させるべきかを、処理機能情報管理手段23に問い合わせる。処理機能情報管理手段23は、処理機能情報保持手段22の内容を参照し、処理機能呼び出し手段24が受け取った処理要求を実行させるべき処理実行手段25a〜25cを決定する。すると、処理機能呼び出し手段24は、処理機能情報管理手段23が決定した処理実行手段25a〜25cを呼び出し、処理要求を実行させる。
【0018】
このように本発明では、処理機能情報保持手段22に格納された情報に基づいて、各処理要求を実行すべき処理実行手段25a〜25cが確定するため、新たな処理実行手段を追加した場合には、その処理実行手段で処理可能な処理要求を処理機能情報保持手段22に設定しておくとともに、追加した処理実行手段で処理できない処理要求は既存の処理実行手段で実行するように設定しておけばよい。その結果、新たに追加する処理実行手段は、既存の機能に対して追加や変更を加えた処理機能を有していればよく、以前と同様の処理機能は、既存の処理実行手段から承継することができる。
【0019】
ここで、処理機能情報保持手段22への情報の設定方法としては、例えば、新たに追加した処理実行手段で処理可能な処理要求の種別と、機能を承継する既存の処理実行手段の識別子とを設定しておく。これにより、非常に簡単に処理機能情報保持手段22の内容を更新できる。しかも、処理実行手段の開発言語に関係なく処理機能承継の手続きが可能である。
【0020】
次に、本発明を用いたクライアントサーバシステムにおいて、クライアントサーバ間に規定されたインタフェースを拡張する場合の例を具体的に説明する。なお、以下の例は、CORBA(Common Object Request Broker Architecture)を使用した分散処理システムに対して本発明を適用したものである。
【0021】
図2は、抽象的なインタフェース定義の例を示す図である。この例は、IDL(Interface Definition Language)によってインタフェースが定義されている。図中左側が既存のインタフェース31であり、右側が機能拡張用のインタフェース32である。
【0022】
既存のインタフェース31の1行目における「AAA」は、インタフェース名を示している。このインタフェース31には、加算を行う「add」、減算を行う「sub」という処理が定義されている。
【0023】
機能拡張用のインタフェース32には、「BBB」というインタフェース名が与えられている。また、インタフェース名「BBB」に続く「AAA」の表記は、「AAA」のインタフェースの機能を承継する旨の情報である。このインタフェース32には、乗算を行う「multi」、割り算を行う「div」、及びインタフェース31が持つ加算処理とは同じ名前で、かつ、受け取るパラメタのデータ型が異なる「add」という処理が定義されている。
【0024】
ここで、インタフェース31をインタフェース32で承継した場合には、インタフェース31の持つ「sub」がインタフェース32でも使用できる。また、「add」はインタフェース31にもインタフェース32にもあるが、インタフェース32で再定義しているのでインタフェース32の方が有効となる。
【0025】
このようにして定義されたインタフェース31,32をIDLコンパイラでコンパイルすることで、スタブ(クライアントアプリケーション用のソースコード)とスケルトン(サーバアプリケーション用のソースコード)が生成される。ここで、クライアントやサーバのアプリケーションは、C++言語の場合やJAVA言語の場合などがあるが、IDLコンパイラにおいて各言語へのマッピングが定義されているため、クライアントやサーバのアプリケーションと同じ言語のソースコードが生成できる。そして、クライアントアプリケーションをコンパイルする際には、スタブをリンクして一緒にコンパイルする。同様に、サーバアプリケーションをコンパイルする際には、スケルトンをリンクして一緒にコンパイルする。これにより、定義したインタフェースに適合するクライアント及びサーバのアプリケーションプログラムが生成される。
【0026】
生成されたサーバ用の処理アプリケーションプログラムをサーバに実装することで、定義したインタフェースの規定に従った処理を、サーバが実行できるようになる。
【0027】
なお、以下の説明においてアプリケーションとは、所定の処理を実行するためのプログラム(アプリケーションプログラム)をコンピュータのCPU(Central Processing Unit)が実行することにより実現する処理機能を指すものとする。
【0028】
図3は、本発明の実施の形態の構成図である。この例では、クライアント40、サーバ50、サーバ60がそれぞれネットワーク70を介して接続されている。
【0029】
クライアント40は、処理要求アプリケーション41と要求転送部42とを有している。処理要求アプリケーション41は、処理要求を出力するアプリケーションである。要求転送部42は、処理要求アプリケーション41からの処理要求等を、各サーバ50,60に対して転送する。
【0030】
サーバ50はネットワーク上での名前が「βββ」であり、インタフェース識別子管理ファイル51、インタフェース識別子管理部52、及び要求受け取り部53を有する。インタフェース識別子管理ファイル51には、インタフェースの名前と、そのインタフェースに対応する処理を実行する処理アプリケーションが実装されたサーバとの対応関係が登録されている。
【0031】
図4は、インタフェース識別子管理ファイルの例を示す図である。インタフェース識別子管理ファイル51には、機能の名前と、その名前に対応する識別IDが登録されている。名前は、クライアント40のユーザが覚えやすいような名前が選ばれる。識別IDには、各インタフェースを識別するための以下のような情報が登録される。
【0032】
すなわち、識別IDは、「ホスト名」と「インタフェース名」とで構成される。「ホスト名」は、インタフェースに応じた処理を実行するための処理プログラムが実装されたサーバ名である。「インタフェース名」は、対象となるインタフェースに与えられた識別子である。
【0033】
この例では、機能の名前「伝票」に対して、識別ID「ID1」が対応づけられている。識別ID「ID1」の内容は、ホスト名が「ααα」、インタフェース名が「AAA」である。また、機能の名前「会計」に対して、識別ID「ID2」が対応づけられている。識別ID「ID2」の内容は、ホスト名が「ααα」、インタフェース名が「BBB」である。
【0034】
このようなインタフェース識別子管理ファイル51があることによって、処理要求アプリケーション41がインタフェース「AAA」に対してアクセスする場合は、インタフェース識別子の管理ファイルから「伝票」という名前で識別IDを求めることができる。同様に、インタフェース「BBB」に対してアクセスする場合は、「会計」という名前で識別IDを求めることができる。
【0035】
図3に戻り、インタフェース識別子管理部52は、クライアント40から機能の名前を指定したサーバの問い合わせを受け取ると、その名前に対応して設定されているサーバの識別子や、インタフェース名などの情報をインタフェース識別子管理ファイル51より取り出す。そして、取り出した情報を、クライアント40に返す。要求受け取り部53は、クライアント40の要求転送部42から送られてくる処理サーバの問い合わせをインタフェース識別子管理部52に渡し、その応答内容を要求転送部42に返す。
【0036】
サーバ60はネットワーク上での名前が「ααα」であり、アプリケーション情報管理ファイル61、要求受け取り部62、アプリケーション呼び出し部63、アプリケーション情報管理部64、処理アプリケーション保持部65、及びアプリケーション情報設定部66を有している。
【0037】
アプリケーション情報管理ファイル61は、処理要求の種別毎に、どの処理アプリケーションに処理を実行させるべきなのかの対応関係が登録されたファイルである。
【0038】
図5は、アプリケーション情報管理ファイルの例を示す図である。アプリケーション情報管理ファイル61には、「インタフェース名」、「承継するインタフェース」、「インタフェースが持つ処理」、「言語の識別」、及び「処理アプリケーションの位置」の項目が設けられている。「インタフェース名」の欄には、サーバ60に実装されているインタフェースの名前が登録される。「承継するインタフェース名」の欄には、そのインタフェースが他のインタフェースの処理を承継する際に、当該他のインタフェースの名称が登録される。「インタフェースが持つ処理」の欄には、そのインタフェースが有する処理(関数)が登録される。「言語の識別」の欄には、そのインタフェースの処理プログラムがどのようなプログラミング言語で作成されたものなのかが登録される。「処理アプリケーションの位置」には、処理アプリケーションが格納されているディレクトリ構造上の位置が、所定の場所からのパスで登録される。
【0039】
この例では、インタフェース名「AAA」に対応して、継承するインタフェース「なし」、インタフェースが持っている処理名「add, sub」、インタフェースが記述されている言語「COBOL」、インタフェースが格納されているサーバ60の位置「/XXX/III」という情報が管理されている。また、インタフェース名「BBB」に対応して、継承するインタフェース名「AAA」、インタフェースが持っている処理名「add, multi, div」、インタフェースが記述されている言語「C」、インタフェースが格納されているサーバ60での位置「/YYY/GGG」という情報が管理されている。
【0040】
図3に戻り、要求受け取り部62は、クライアントからの要求を受け取り、その要求をアプリケーション呼び出し部63に渡す。アプリケーション呼び出し部63は、要求受け取り部62から渡された処理要求のインタフェース名及び処理名をアプリケーション情報管理部64に渡し、応答として、処理を実行させるべき処理アプリケーションに対応するインタフェース名及び処理アプリケーションの位置を受け取る。そして、受け取った情報に基づいて、該当する処理アプリケーションを呼び出し、処理を実行させる。アプリケーション情報管理部64は、アプリケーション呼び出し部63から渡されたインタフェース名と処理名とを受け取り、実際にその処理を実行すべきインタフェースをアプリケーション情報管理ファイル61に登録されている情報に基づいて決定する。そして、決定したインタフェース名及び処理アプリケーションの位置をアプリケーション呼び出し部63に渡す。
【0041】
処理アプリケーション保持部65は、複数の処理アプリケーション65a,65bを保持している。処理アプリケーション65aは、図2に示した既存のインタフェース31に従った処理要求を実行する処理プログラムであり、処理アプリケーション65bは、機能拡張用のインタフェース32に従った処理要求を実行する処理プログラムである。この例では、インタフェース31の処理を行う処理アプリケーション65aは、インタフェース名「AAA」、処理プログラムの各マシンでの位置「/XXX/III」、処理部の言語「COBOL」である。また、インタフェース32の処理を行う処理アプリケーション65bは、インタフェース名「BBB」、処理プログラムの各マシンでの位置「/YYY/GGG」、処理部の言語「C」である。
【0042】
アプリケーション情報設定部66は、アプリケーション情報管理部64を介してアプリケーション情報管理ファイル61の内容を編集する機能を有している。
以上のような構成のクライアントサーバシステムにおいて、処理要求アプリケーション41がサーバ60内の処理アプリケーションに何らかの処理を実行させる場合は、次のような処理が行われる。
【0043】
まず、処理要求アプリケーション41が、インタフェース識別子管理部52に対して、目的の処理アプリケーションが実装されているサーバを問い合わせる。すると、インタフェース識別子管理部52が、サーバ名を返す。サーバ名を受け取った処理要求アプリケーション41は、そのサーバ60に対して処理要求を出力する。処理要求は、サーバ60のアプリケーション呼び出し部63に渡される。アプリケーション呼び出し部63は、受け取った処理要求を実際に処理させるべき処理アプリケーションに対応するインタフェース名及び処理アプリケーションの位置を、アプリケーション情報管理部64に問い合わせる。アプリケーション情報管理部64は、処理要求の処理内容などから処理アプリケーションを特定し、アプリケーション呼び出し部63に通知する。すると、アプリケーション呼び出し部63が、通知された処理アプリケーションを呼び出し、処理要求を実行させる。実行結果は、処理アプリケーションから処理要求アプリケーション41に返される。
【0044】
このような処理を実行するための各構成要素の処理手順を、以下に示す。
まず、クライアント40で行われる処理について説明する。
図6は、処理要求アプリケーションの処理手順を示すフローチャートの説明を示す図である。この処理は、すべて処理要求アプリケーション41が実行する。
[S1]要求転送部42を介して、サーバ50内のインタフェース識別子管理部52を呼び出す。具体的には、実行したい機能の名前を入力パラメタとして指定し、機能の名前に対応する識別IDを獲得する。例えば、機能の名前として「会計」を指定した場合には、識別ID「ID2」を獲得する。この識別IDは、ホスト名と、インタフェース名とで構成されている。
[S2]要求転送部42を介して、目的の処理を実行できる処理アプリケーションが実装されたサーバから実際の処理を呼び出す。この際、機能の識別ID、処理名、及び処理に受け渡すパラメタを指定する。例えば、識別ID「ID2」、処理名「add」、及び「add」処理に必要なパラメタを、要求転送部42を介してサーバ60へ送信する。
【0045】
図7は、要求転送部の処理手順を示すフローチャートである。これは、すべて要求転送部42が実行する処理である。
[S11]処理要求アプリケーション41から渡された識別IDを元に、どのサーバに要求を送るかを判断する。例えば、識別ID「ID2」が渡された場合、その内容を参照し、処理要求を送るべきサーバ60のホスト名「ααα」を認識する。
[S12]該当するサーバの要求受け取り部に対して、処理要求アプリケーションからの情報を送信する。
[S13]要求受け取り部から送られてきた処理アプリケーションの処理結果を受け渡す。
【0046】
次に、サーバ50で実行される処理について説明する。
図8は、インタフェース識別子管理部の処理手順を示すフローチャートである。これは、クライアント40の処理要求アプリケーション41から呼び出されたインタフェース識別子管理部52が行う処理である。
[S21]受け渡された機能の名前を元に、インタフェース識別子管理ファイル51から識別IDを検索する。
[S22]対応する識別IDが見つかったか否かを判断する。見つかった場合にはステップS23に進み、見つからなかった場合にはステップS24に進む。
[S23]見つかった識別IDを、クライアント40の処理要求アプリケーション41に返す。
[S24]エラーをクライアント40の処理要求アプリケーション41に返す。
【0047】
次に、サーバ60で実行される処理について説明する。
図9は、要求受け取り部の処理手順を示すフローチャートである。これは、すべて要求受け取り部62が行う。
[S31]処理要求アプリケーション41からの処理要求を受け取る。
[S32]要求を元にアプリケーション呼び出し部63を呼び出す。
[S33]処理アプリケーション65a,65bの処理結果を、処理要求アプリケーション41に受け渡す。
【0048】
図10は、アプリケーション情報管理部の処理手順を示すフローチャートである。これは、すべてアプリケーション情報管理部64が行う処理である。
[S41]受け渡された識別ID内に格納されているインタフェース名及び処理名を元に、インタフェース名及び処理アプリケーションの位置をアプリケーション情報管理ファイルから検索する。この処理の詳細は、図11に示す。
[S42]対応するインタフェース名及び処理アプリケーションの位置が見つかったか否かを判断する。見つかった場合にはステップS43に進み、見つからなかった場合にはステップS44に進む。
[S43]見つかったインタフェース名及び処理アプリケーションの位置を、アプリケーション呼び出し部63に返す。
[S44]エラーをアプリケーション呼び出し部63に返す。
【0049】
図11は、処理アプリケーション検索処理の詳細を示す図である。これは、すべてアプリケーション情報管理部64が行う処理である。
[S51]アプリケーション情報管理ファイル61内に、対応するインタフェース名があるか否かを判断する。対応するインタフェース名がある場合にはステップS52に進み、対応するインタフェース名がない場合にはステップS55に進む。
[S52]検出されたインタフェースを呼び出し候補とする。
[S53]要求されている処理名を、呼び出し候補として設定されているインタフェースが有しているか否かを判断する。要求されている処理名を有している場合にはステップS57に進み、有していない場合にはステップS54に進む。
[S54]呼び出し候補として設定されているインタフェースに関して、承継するインタフェースがあるか否かを判断する。承継するインタフェースがある場合にはステップS55に進み、承継するインタフェースがない場合にはステップS56に進む。
[S55]承継するインタフェースを新たな呼び出し候補とし、ステップS53に進む。
[S56]対応するインタフェースがない旨の情報を返し、処理を図10のステップS42に進める。
[S57]呼び出し候補のインタフェース名及び処理アプリケーションの位置を検出結果として、処理を図10のステップS42に進める。
【0050】
図12は、アプリケーション呼び出し部の処理手順を示すフローチャートである。これは、すべてアプリケーション呼び出し部63が行う処理である。
[S61]アプリケーション情報管理部64を呼び出す。この際、識別ID、処理名を入力パラメタとして指定し、インタフェース名及び処理アプリケーションの位置を受け取る。
[S62]該当する処理アプリケーションの呼び出しを行い、受け取った処理要求をその処理アプリケーションに実行させる。
【0051】
ここで、具体的な処理の流れについて説明する。
処理要求アプリケーション41がインタフェース32に定義された処理を依頼する場合、インタフェース識別子管理ファイル51から「会計」という名前で、インタフェース32の識別ID「ID2」を受け取る。処理要求アプリケーション41は、その識別IDと処理名、処理に受け渡すパラメタを元に処理アプリケーション65bに要求を出す。要求転送部42は、識別ID「ID2」内のホスト名「ααα」を参照し、要求をどのサーバに転送するかを決定し、該当するサーバ60に対して処理要求を転送する。
【0052】
要求受け取り部62は、要求を受け取り、アプリケーション呼び出し部63に受け渡す。アプリケーション呼び出し部63は、識別ID「ID2」、処理名を元に、アプリケーション情報管理ファイルから検索し、該当するアプリケーションを呼び出す。例えば、処理名が「add」であれば、インタフェース名「BBB」の処理アプリケーション65bを呼び出す。処理名が「sub」であれば、承継元であるインタフェース名「AAA」の処理アプリケーション65aを呼び出す。
【0053】
以上のようにして、クライアント40の処理要求アプリケーション41から、目的の処理アプリケーションが実装されたサーバへ処理要求を送信し、処理結果を受け取ることができる。この際、実際にどの処理アプリケーションで処理が実行されるのかはアプリケーション情報管理部64が決定するため、処理アプリケーションにおいて、処理要求を転送するための処理ルーチンを設定する必要がないとともに、処理アプリケーションの開発言語に関係なく、処理機能を承継できる。
【0054】
また、インタフェース識別子管理部52が、処理要求を送信すべきサーバの名前を処理要求アプリケーション41に通知するため、処理要求アプリケーション41が、各処理アプリケーションの存在場所を認識している必要もない。なお、インタフェース識別子管理ファイル51は、ネットワーク70内に1つ以上存在すればよく、各マシンに1つ存在しなくてよい。
【0055】
ところで、アプリケーション情報管理ファイル61の内容は、アプリケーション情報設定部66によって更新できる。例えば、処理アプリケーションを作成した作業者が、アプリケーション情報設定部66に入力装置から指令を入力して、新規に実装する処理アプリケーションに関する情報を登録する。また、アプリケーション情報設定部66に、処理アプリケーション作成時に用いられたインタフェースの解析機能を搭載し、新たに定義されたインタフェースの承継元や、そのインタフェースが持つ処理名などの情報を自動的に取得してもよい。アプリケーション情報設定部66は、取得した情報をその都度アプリケーション情報管理ファイル61に設定する。
【0056】
以上のように、本発明によれば、異言語間での継承、非オブジェクト指向言語間での継承及び非オブジェクト指向言語とオブジェクト指向言語間の継承を行うことができるので、クライアントサーバ型システムを構築する上で、サーバアプリケーションの生産性、保守性を向上させることができる。
【0057】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、各クライアントやサーバが有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場へ流通させる場合には、CD−ROM(Compact Disk Read Only Memory)やフレキシブルディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【0058】
以上説明したように本発明では、処理機能情報保持手段に設定された情報に基づいて、処理要求を実行する処理実行手段を決定するようにしたため、新たに処理実行手段を追加する際には、その処理実行手段が実行できない処理要求を既存の処理実行手段が実行するように処理機能情報保持手段に設定しておくだけで、既存の処理実行手段の処理機能を承継することができる。従って、処理実行手段を開発した言語の異同に関係なく処理実行手段間の処理機能の承継が可能となる。
【0059】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【図面の簡単な説明】
図1は、本発明の原理構成図である。
図2は、抽象的なインタフェース定義の例を示す図である。
図3は、本発明の実施の形態の構成図である。
図4は、インタフェース識別子管理ファイルの例を示す図である。
図5は、アプリケーション情報管理ファイルの例を示す図である。
図6は、処理要求アプリケーションの処理手順を示すフローチャートの説明を示す図である。
図7は、要求転送部の処理手順を示すフローチャートである。
図8は、インタフェース識別子管理部の処理手順を示すフローチャートである。
図9は、要求受け取り部の処理手順を示すフローチャートである。
図10は、アプリケーション情報管理部の処理手順を示すフローチャートである。
図11は、処理アプリケーション検索処理の詳細を示す図である。
図12は、アプリケーション呼び出し部の処理手順を示すフローチャートである。
図13は、インタフェースの継承の可否の関係を示す図である。
Claims (3)
- 要求に応じて各種処理機能を提供するサーバシステムにおいて、
1以上の処理の呼び出し方を定義した複数のインタフェースそれぞれに対応して設けられ、対応するインタフェースで定義された呼び出し方による処理要求に応じて当該処理要求で指定された処理を実行するための複数の処理アプリケーションプログラムを記憶する処理アプリケーション記憶手段と、
複数のインタフェースそれぞれについて、当該インタフェースを示すインタフェース名、当該インタフェースで呼び出し方が定義された処理を示す処理名、当該インタフェースが承継する承継元インタフェースを示す承継元インタフェース名、および当該インタフェースで呼び出し方が定義された処理を実行する処理アプリケーションプログラムの位置を記憶するアプリケーション情報記憶手段と、
インタフェース名と処理名とを含む処理要求が入力されると、前記アプリケーション情報記憶手段を参照し、当該インタフェース名で示されるインタフェースに当該処理名で示される処理の呼び出し方が定義されているか否かを判断し、当該処理の呼び出し方が定義されている場合には当該インタフェース名と当該インタフェース名に対応する処理アプリケーションプログラムの位置とを取得し、当該処理が定義されていない場合には当該インタフェース名で示されるインタフェースが承継する承継元インタフェースの承継元インタフェース名と当該承継元インタフェース名に対応する処理アプリケーションプログラムの位置とを取得するアプリケーション情報管理手段と、
前記アプリケーション情報管理手段によって取得された位置において、前記アプリケーション情報管理手段によって取得されたインタフェース名または承継元インタフェース名で処理アプリケーションプログラムを呼び出し、入力された前記処理要求に含まれる処理名で示される処理を実行させるアプリケーション呼び出し手段と、
を有することを特徴とするサーバシステム。 - 要求に応じて各種処理機能を提供するサーバシステムにおいて、
1以上の処理の呼び出し方を定義した複数のインタフェースそれぞれに対応して設けられ、対応するインタフェースで定義された呼び出し方による処理要求に応じて当該処理要求で指定された処理を実行するための複数の処理アプリケーションプログラムを記憶する処理アプリケーション記憶手段と、
複数のインタフェースそれぞれについて、当該インタフェースを示すインタフェース名、当該インタフェースで呼び出し方が定義された処理を示す処理名、当該インタフェースが承継する承継元インタフェースを示す承継元インタフェース名、および当該インタフェースで呼び出し方が定義された処理を実行する処理アプリケーションプログラムの位置を記憶するアプリケーション情報記憶手段と、
インタフェース名と処理名とを含む処理要求が入力されると、前記アプリケーション情報記憶手段を参照し、当該インタフェース名で示されるインタフェースに当該処理名で示される処理の呼び出し方が定義されているか否かを判断し、当該処理の呼び出し方が定義されている場合には当該インタフェース名と当該インタフェース名に対応する処理アプリケーションプログラムの位置とを取得し、当該処理が定義されていない場合には当該インタフェース名で示されるインタフェースが承継する承継元インタフェースの承継元インタフェース名と当該承継元インタフェース名に対応する処理アプリケーションプログラムの位置とを取得するアプリケーション情報管理手段と、
前記アプリケーション情報管理手段によって取得された位置において、前記アプリケーション情報管理手段によって取得されたインタフェース名または承継元インタフェース名で処理アプリケーションプログラムを呼び出し、入力された前記処理要求に含まれる処理名で示される処理を実行させるアプリケーション呼び出し手段と、
を具備する第1のサーバと、
処理アプリケーションプログラムで実行される機能を示す機能名、当該処理アプリケー ションプログラムを記憶する前記第1のサーバを示すサーバ名、及び当該処理アプリケーションプログラムで実行する処理の呼び出し方が定義されたインタフェースを示すインタフェース名の組を記憶する機能所在情報保持手段と、
クライアントから機能名を指定した問い合わせを受け取ると、前記機能所在情報保持手段を参照し、指定された当該機能名に対応するサーバ名とインタフェース名とを、当該クライアントに通知する機能所在管理手段と、
を具備する第2のサーバと、
前記第2のサーバに対して機能名を指定した問い合わせを行い、当該機能名に対応するサーバ名とインタフェース名とを取得する処理要求手段と、
前記処理要求手段が取得したサーバ名で示される前記第1のサーバに対して、取得したインタフェース名と実行させる処理を示す処理名とを含む処理要求を送信する要求転送手段と、
を具備するクライアントと、
を有することを特徴とするサーバシステム。 - 要求に応じて各種処理機能を提供するためのサーバプログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
1以上の処理の呼び出し方を定義した複数のインタフェースそれぞれに対応して設けられ、対応するインタフェースで定義された呼び出し方による処理要求に応じて当該処理要求で指定された処理を実行するための複数の処理アプリケーションプログラムを記憶する処理アプリケーション記憶手段、
複数のインタフェースそれぞれについて、当該インタフェースを示すインタフェース名、当該インタフェースで呼び出し方が定義された処理を示す処理名、当該インタフェースが承継する承継元インタフェースを示す承継元インタフェース名、および当該インタフェースで呼び出し方が定義された処理を実行する処理アプリケーションプログラムの位置を記憶するアプリケーション情報記憶手段、
インタフェース名と処理名とを含む処理要求が入力されると、前記アプリケーション情報記憶手段を参照し、当該インタフェース名で示されるインタフェースに当該処理名で示される処理の呼び出し方が定義されているか否かを判断し、当該処理の呼び出し方が定義されている場合には当該インタフェース名と当該インタフェース名に対応する処理アプリケーションプログラムの位置とを取得し、当該処理が定義されていない場合には当該インタフェース名で示されるインタフェースが承継する承継元インタフェースの承継元インタフェース名と当該承継元インタフェース名に対応する処理アプリケーションプログラムの位置とを取得するアプリケーション情報管理手段、
前記アプリケーション情報管理手段によって取得された位置において、前記アプリケーション情報管理手段によって取得されたインタフェース名または承継元インタフェース名で処理アプリケーションプログラムを呼び出し、入力された前記処理要求に含まれる処理名で示される処理を実行させるアプリケーション呼び出し手段、
として機能させることを特徴とするサーバプログラムを記録したコンピュータ読み取り可能な記録媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP1999/001336 WO2000055725A1 (fr) | 1999-03-17 | 1999-03-17 | Systeme serveur et support d'enregistrement |
Publications (1)
Publication Number | Publication Date |
---|---|
JP4040256B2 true JP4040256B2 (ja) | 2008-01-30 |
Family
ID=14235215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000605888A Expired - Lifetime JP4040256B2 (ja) | 1999-03-17 | 1999-03-17 | サーバシステム及び記録媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6792611B2 (ja) |
JP (1) | JP4040256B2 (ja) |
WO (1) | WO2000055725A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000099332A (ja) * | 1998-09-25 | 2000-04-07 | Hitachi Ltd | 遠隔手続き呼び出し最適化方法とこれを用いたプログラム実行方法 |
DE10033812A1 (de) * | 2000-07-12 | 2002-01-24 | Alcatel Sa | Verfahren zum Erzeugen von Informationsmodellen |
US7524668B1 (en) * | 2001-05-10 | 2009-04-28 | Elan Pharmaceuticals, Inc. | Crystal of human beta secretase having monoclinic space group symmetry C2 and methods for crystallization thereof |
US7594230B2 (en) | 2001-06-11 | 2009-09-22 | Microsoft Corporation | Web server architecture |
US7430738B1 (en) * | 2001-06-11 | 2008-09-30 | Microsoft Corporation | Methods and arrangements for routing server requests to worker processes based on URL |
US7219125B1 (en) * | 2002-02-13 | 2007-05-15 | Cisco Technology, Inc. | Method and apparatus for masking version differences in applications using a data object exchange protocol |
US6983462B2 (en) * | 2002-03-15 | 2006-01-03 | Toshiba Corporation | Method and apparatus for serving a request queue |
US20030212736A1 (en) * | 2002-05-10 | 2003-11-13 | Sreekrishna Kotnur | System and method for activating and pausing a component |
US7343606B2 (en) * | 2003-06-13 | 2008-03-11 | Microsoft Corporation | Mechanism for asynchronous components to be application framework agnostic |
US7472350B2 (en) * | 2003-10-02 | 2008-12-30 | International Business Machines Corporation | Displaying and managing inherited values |
US7418719B2 (en) * | 2004-08-31 | 2008-08-26 | Microsoft Corporation | Method and system to support a unified process model for handling messages sent in different protocols |
US7418712B2 (en) * | 2004-08-31 | 2008-08-26 | Microsoft Corporation | Method and system to support multiple-protocol processing within worker processes |
US7418709B2 (en) * | 2004-08-31 | 2008-08-26 | Microsoft Corporation | URL namespace to support multiple-protocol processing within worker processes |
US7418715B2 (en) * | 2005-04-08 | 2008-08-26 | Microsoft Corporation | System and method for producing and communicating requested data among networked application programs |
JP4250611B2 (ja) * | 2005-04-27 | 2009-04-08 | キヤノン株式会社 | 通信装置、通信パラメータ設定方法及び通信方法 |
JP4900891B2 (ja) | 2005-04-27 | 2012-03-21 | キヤノン株式会社 | 通信装置及び通信方法 |
JP5292670B2 (ja) * | 2006-02-22 | 2013-09-18 | 富士通株式会社 | 開発支援プログラム、開発支援方法、及び開発支援装置 |
JP4886463B2 (ja) | 2006-10-20 | 2012-02-29 | キヤノン株式会社 | 通信パラメータ設定方法、通信装置及び通信パラメータを管理する管理装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226690B1 (en) * | 1993-06-14 | 2001-05-01 | International Business Machines Corporation | Method and apparatus for utilizing proxy objects to communicate with target objects |
US5732270A (en) * | 1994-09-15 | 1998-03-24 | Visual Edge Software Limited | System and method for providing interoperability among heterogeneous object systems |
US5793965A (en) | 1995-03-22 | 1998-08-11 | Sun Microsystems, Inc. | Method and apparatus for determining the type of an object in a distributed object system |
CA2171568A1 (en) | 1995-03-24 | 1996-09-25 | Peter B. Kessler | Method and system for type identification for multiple object interfaces in a distributed object environment |
US5745683A (en) * | 1995-07-05 | 1998-04-28 | Sun Microsystems, Inc. | System and method for allowing disparate naming service providers to dynamically join a naming federation |
JPH10124319A (ja) * | 1996-10-21 | 1998-05-15 | Digital Vision Lab:Kk | 並列分散処理システムおよびその方法 |
JPH10187468A (ja) * | 1996-12-27 | 1998-07-21 | Digital Vision Lab:Kk | 並列分散処理システムおよびその方法 |
CA2199108C (en) | 1996-03-05 | 2002-04-23 | Hirotoshi Maegawa | Parallel distributed processing system and method of same |
JP3747525B2 (ja) * | 1996-08-28 | 2006-02-22 | 株式会社日立製作所 | 並列データベースシステム検索方法 |
-
1999
- 1999-03-17 JP JP2000605888A patent/JP4040256B2/ja not_active Expired - Lifetime
- 1999-03-17 WO PCT/JP1999/001336 patent/WO2000055725A1/ja active Application Filing
-
2001
- 2001-08-31 US US09/943,051 patent/US6792611B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6792611B2 (en) | 2004-09-14 |
WO2000055725A1 (fr) | 2000-09-21 |
US20020046303A1 (en) | 2002-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4040256B2 (ja) | サーバシステム及び記録媒体 | |
JP3489123B2 (ja) | アプリケーション結合方法 | |
JP4464525B2 (ja) | 作業負荷によって管理されるクライアント/サーバ・データ処理システムにおける集中アフィニティ維持装置および方法 | |
JP3949180B2 (ja) | 基底システムオブジェクトモデルを備えたシステム管理サービスの統合 | |
JP4729172B2 (ja) | 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置 | |
US7770146B2 (en) | Computer software development incorporating core and compound services | |
US20070266029A1 (en) | Recovery segment identification in a computing infrastructure | |
JPH1091444A (ja) | 実行時にサービス従属代表をオブジェクトに動的に関連付けるための機構 | |
JPH05181814A (ja) | オブジェクト指向コンピューティング・システム | |
US7546326B2 (en) | System and method for generation of an information handling system MOF file from CIM metadata | |
JPH06110808A (ja) | クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置 | |
JPH11327919A (ja) | オブジェクト指向割込みシステム用の方法およびデバイス | |
JP4931343B2 (ja) | ネットワークサービスを実行するための自己インストールソフトウェアコンポーネントを提供するシステム、方法、プログラム、装置 | |
US7702687B2 (en) | Method and system of typing resources in a distributed system | |
US7461054B2 (en) | Uniform resource discovery and API layering | |
JP2004538577A (ja) | オブジェクトを特定して保管するための方法とコンピュータシステム | |
CN109729121B (zh) | 一种云存储系统及用于云存储系统中实现自定义数据处理的方法 | |
US8276141B2 (en) | Selection of transaction managers based on transaction metadata | |
US7043726B2 (en) | Binding of processes in network systems | |
US20140067904A1 (en) | Selection of transaction managers based on runtime data | |
JP2014209365A (ja) | 装置へのコンテンツの分配を管理するシステムと方法とプログラムを提供する記憶媒体 | |
US6292824B1 (en) | Framework and method for facilitating client-server programming and interactions | |
US7209248B1 (en) | Managing the lifetime of distributed resource data using temporal scopes | |
EP1122644A1 (en) | A method and system for dynamically dispatching function calls from a first execution environment to a second execution environment | |
JP3019915B2 (ja) | 手続き呼出し方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070724 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070925 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071107 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101116 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101116 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111116 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111116 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121116 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121116 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131116 Year of fee payment: 6 |
|
EXPY | Cancellation because of completion of term |