(57)【特許請求の範囲】
【請求項１】
特定の特徴を持つ機能を実装する論理的な単位である層を複数有し、各層間でオブジェクトを転送して所定の目的を達成する多階層システムであって、
各層は、一つのオブジェクトが各層で共通に有する共通部を転送用オブジェクトとして転送するオブジェクト転送手段を備え、
各層間で転送されるオブジェクトは、前記オブジェクト転送手段によって転送用オブジェクトとして転送され、各層で、その層に応じた機能を提供し、
転送用オブジェクトを受け取ったときに、転送用オブジェクトに対して固有の情報を付加する固有部付加手段を備えた層を有し、その層に転送されるオブジェクトは、前記固有部付加手段によって固有の情報が付加されることによって、その層に応じた機能を提供する
ことを特徴とする多階層システム。
【請求項２】
固有の情報は、各層が固有に備えるメソッドあるいはデータを含む請求項１記載の多階層システム。
【請求項３】
転送用オブジェクトを受け取った層は、転送用オブジェクトとして転送された共通部のみによって、その層に応じた機能を提供する
請求項１記載の多階層システム。
【請求項４】
特定の特徴を持つ機能を実装する論理的な単位である層の間でオブジェクトを転送するオブジェクト転送プログラムであって、コンピュータに、
層内に存在するオブジェクトから前記層に固有の情報を取り外すことによって、前記オブジェクトが各層で共通に有する共通部を得る処理、
前記共通部を他の層に転送する処理、および
他の層から共通部を受け取り、前記共通部に前記固有の情報を付加する処理、
を実行させるためのオブジェクト転送プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の層からなる多階層システムおよび各層間でオブジェクトを転送するオブジェクト転送プログラムに関する。
【０００２】
【従来の技術】
多階層システムは、複数の層を組み合わせることによって構築される。「層」とは、ある特定の特徴を持つ機能を実装する論理的な単位である。この機能の例としては、例えば、データベースにアクセスする機能や、業務ロジックを実行する機能等がある。
【０００３】
ある層で実行される処理は、その層に存在するオブジェクトによって変化する。例えば、データベースにアクセスする機能に対応する層に、預金口座オブジェクト（預金口座を表現するオブジェクト）が存在する場合、預金口座オブジェクトは、そのオブジェクトが表す預金口座の名義人や預金残高等の情報をデータベースに保存したり、データベースから名義人や預金残高等の情報を呼び出す機能を提供する。この層に他のオブジェクトが存在する場合、そのオブジェクトは、名義人や預金残高等ではなく、他の情報の保存や呼出しを行う機能を提供する。また、例えば、業務ロジックの実行機能に対応する層に預金口座オブジェクトが存在する場合、預金口座オブジェクトは、利息計算処理や入出金処理等を実行する機能を提供する。この層に他のオブジェクトが存在する場合、そのオブジェクトは、利息計算処理や入出金処理等ではなく、オブジェクトに応じた業務ロジックを実行する機能を提供する。
【０００４】
多階層システムの形態として、例えば、各層がそれぞれ異なる情報処理装置によって実現され、各層間の情報の授受が、各装置を接続する通信ネットワークを介して行われる場合がある。あるいは、各層が同一の情報処理装置内で実現され、各層間の情報の授受が、プロセス間通信によって行われる場合がある。また、例えば、各層が同一の情報処理装置内で実現され、同一のプロセスのもとで各層間の情報の授受が行われる場合がある。
【０００５】
従来の多階層システムでは、同一の対象を表すオブジェクトを層毎に別々に作成して、各層に存在するオブジェクト同士が情報を授受するように設計される場合があった。以下、このような設計の手法を、第一の手法と記す。第一の手法では、例えば、層ＮにおいてオブジェクトＡが作成され、層ＭにおいてオブジェクトＢが作成され、オブジェクトＡ，Ｂが情報を授受するように設計されていた。オブジェクトＡ，Ｂは、同一の対象Ｘを表現するオブジェクトであるが、存在する層が異なる別個のオブジェクトである。層Ｍに存在するオブジェクトＢによって対象Ｘに対してある処理を行い、引き続き同一の対象Ｘに対する処理をオブジェクトＡに要求する場合、層Ｍは、オブジェクトＡによる処理に必要な情報を層Ｎに送る。そして、層Ｍは、対象Ｘに対するオブジェクトＡの処理結果をオブジェクトＢに反映させるための情報を層Ｎから返される。層Ｎでは、層Ｍから返された情報を元に対象Ｘに関する情報を更新する。
【０００６】
より具体的な例として、オブジェクトＡ，Ｂがともに、預金口座を表現する預金口座オブジェクトである場合を例に説明する。オブジェクトが層Ｎにおいて提供する機能は、業務ロジックを実行する機能であり、オブジェクトが層Ｍにおいて提供する機能は、データベースにアクセスする機能であるとする。層Ｎに存在する預金口座オブジェクト（オブジェクトＡ）は、利息計算処理や入出金処理等の実行機能を提供するように設計される。また、層Ｍに存在する預金口座オブジェクト（オブジェクトＢ）は、名義人等の情報の保存や呼出しを行う機能を提供するように設計される。オブジェクトＢによってデータベースから呼び出した名義人の口座について利息計算を要求する場合、層Ｍは、利息計算に必要な情報を層Ｎに送り、オブジェクトＡによる利息計算結果を返される。
【０００７】
また、第一の手法とは異なる手法として、一つのオブジェクトに全ての層の機能を持たせて、そのオブジェクトが存在する層で利用できない機能については利用しないように設計する手法がある。例えば、オブジェクトが層Ｎにおいて提供する機能は、業務ロジックを実行する機能であり、オブジェクトが層Ｍにおいて提供する機能はデータベースにアクセスする機能であるとする。この場合、預金口座オブジェクトは、利息計算処理等の実行機能と、情報の保存や呼出しを行う機能とを提供するように設計される。そして、このオブジェクトは、層Ｎに存在するときには情報の保存や呼出しを行う機能を利用せず、また、層Ｍに存在するときには利息計算処理等の機能を利用しないように設計される。このような設計の手法を、以下、第二の手法と記す。
【０００８】
【発明が解決しようとする課題】
第一の手法では、同一の対象を表すオブジェクトを各層毎に設計しなくてはならなかった。すなわち、同一の対象に対して複数のオブジェクトを設計しなくてはならなかった。
【０００９】
また、各層間の情報の授受が複雑化するという問題があった。例えば、オブジェクトＡによる処理に必要な情報を層Ｍから層Ｎに送る場合、オブジェクトＢ全体の情報を送るとする。この場合、層Ｍは、層Ｎにおいて必要でない情報も送ってしまうため、層Ｎが層Ｍのオブジェクト全体の情報を受け取ることができるようにしなければならなかった。同様に、各層が、他の層のオブジェクト全体の情報を受け取ることができるようにしなければならなかった。
【００１０】
層Ｍが、オブジェクトＢ全体の情報を送るのではなく、オブジェクトＡによる処理に必要な情報のみを抽出して層Ｎに送る場合には、抽出すべき情報を特定しておく必要がある。同様に、他の層Ｌに処理を要求する場合には、層Ｌで必要とされる情報を特定しておく必要がある。このため、設計者は、層毎で必要とされる情報を特定して、層に応じた情報を抽出するように設計しなければならなかった。例えば、層の数がｎであって、全ての層間で情報の授受がある場合にはｎＣ２の組み合わせの関係を管理して設計を行わなければならないので、その設計は容易でない。
【００１１】
また、第二の手法では、オブジェクトは、ある層に存在するときにオブジェクト自身が持つ他の層の機能を利用しないように設計され、プログラマは設計に従いプログラムを記述する。しかし、プログラマが誤った記述をしやすいという問題があった。例えば、プログラマが、オブジェクトが存在する層では本来利用できない機能を利用するような記述をすることがあった。そして、このような記述がなされると、実際に処理を実行するまでプログラムの誤りを検出しにくいという問題があった。そのため、プログラマは、オブジェクトがある層に存在しているときに、そのオブジェクトの他の層における機能を利用しないように、注意してプログラムを記述しなければならなかった。さらに、第二の手法では、オブジェクトが、全部の層の機能を持ち、各層において利用しない機能も持つことになるので、情報処理装置のリソースが多く消費されてしまうという問題があった。
【００１２】
本発明は、各層間の情報の授受を簡易化することができる多階層システム、および、この多階層システムに適用されるオブジェクト転送プログラムを提供することを目的とする。また、設計者やプログラマの負担が少なく、情報処理装置のリソースの消費が少ない多階層システムを提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明による多階層システムは、特定の特徴を持つ機能を実装する論理的な単位である層を複数有し、各層間でオブジェクトを転送して所定の目的を達成する多階層システムであって、各層は、一つのオブジェクトが各層で共通に有する共通部を転送用オブジェクトとして転送するオブジェクト転送手段を備え、各層間で転送されるオブジェクトは、前記オブジェクト転送手段によって転送用オブジェクトとして転送され、各層で、その層に応じた機能を提供し、転送用オブジェクトを受け取ったときに、転送用オブジェクトに対して固有の情報を付加する固有部付加手段を備えた層を有し、その層に転送されるオブジェクトは、固有部付加手段によって固有の情報が付加されることによって、その層に応じた機能を提供することを特徴とする。所定の目的とは、例えば、銀行で扱われる情報に対する各種処理の遂行である。
【００１４】
固有の情報は、例えば、各層が固有に備えるメソッドあるいはデータを含む。
【００１５】
また、多階層システムは、転送用オブジェクトを受け取った層が、転送用オブジェクトとして転送された共通部のみによって、その層に応じた機能を提供するように構成されていてもよい。すなわち、固有の情報が必要ない場合には、転送用オブジェクトから共通部のみを受け取るように構成されていてもよい。
【００１６】
また、本発明によるオブジェクト転送プログラムは、特定の特徴を持つ機能を実装する論理的な単位である層の間でオブジェクトを転送するオブジェクト転送プログラムであって、コンピュータに、層内に存在するオブジェクトから前記層に固有の情報を取り外すことによって、前記オブジェクトが各層で共通に有する共通部を得る処理、前記共通部を他の層に転送する処理、および、他の層から共通部を受け取り、前記共通部に前記固有の情報を付加する処理、を実行させることを特徴とする。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明による多階層システムの実施の一形態を示すブロック図である。図１は、情報処理装置１と情報処理装置１１とが、通信ネットワーク４１によって接続されている場合の例を示す。情報処理装置１は、オブジェクトが層Ｎに存在するときに提供する機能を実現する。情報処理装置１１は、オブジェクトが層Ｍに存在するときに提供する機能を実現する。すなわち、情報処理装置１，１１は、それぞれ層Ｎ、層Ｍに対応する。なお、層の数は、二つに限定されず、三以上の層からなるシステムであってもよい。
【００１８】
情報処理装置１，１１において、ＣＰＵ２，１２は、それぞれ記憶装置３，１３が記憶するプログラムやオブジェクトに従って処理を実行する。ネットワークインタフェース部９，１９は、それぞれ他の情報処理装置と情報を送受信する。
【００１９】
層Ｎオブジェクト４と層Ｍオブジェクト１４は、ともに同一の対象を表現するオブジェクトである。ある対象を表現する一つのオブジェクトは、層Ｎと層Ｍとの間で転送され、そのオブジェクトが、層Ｎに存在するときには層Ｎオブジェクト４となり、層Ｍに存在するときには層Ｍオブジェクト１４となる。したがって、層Ｎオブジェクト４と層Ｍオブジェクト１４は、別個のオブジェクトではない。また、層Ｎと層Ｍとの間で転送されるオブジェクトは、存在する層によって提供する機能が変化する。したがって、層Ｎオブジェクト４と層Ｍオブジェクト１４は、別個のオブジェクトではないが、提供する機能は異なる。
なお、ある対象を表現するオブジェクトは、層Ｎと層Ｍとの間で転送される場合、後述する転送用オブジェクトとして転送される。
【００２０】
共通部３１は、ある一つのオブジェクトが、各層において共通に有している属性（データ）とメソッドである。すなわち、共通部３１は、一つのオブジェクトが層Ｎに存在する場合と層Ｍに存在する場合とで共通に有している属性とメソッドである。共通部３１となる属性やメソッドは、オブジェクトが表す対象に応じて予め定められている。層Ｎ固有部６は、共通部３１に付加されることによって、オブジェクトの層Ｎにおける機能を提供するデータやメソッドである。層Ｎオブジェクト４は、共通部３１と、層Ｎ固有部６とからなる。
層Ｍオブジェクト１４も、層Ｎオブジェクト４と同様の構成であり、共通部３１と、層Ｍ固有部１６とからなる。層Ｍ固有部１６は、共通部３１に付加されることによって、オブジェクトの層Ｍにおける機能を提供するデータやメソッドである。
【００２１】
オブジェクト転送プログラム７は、層Ｎオブジェクト４の共通部３１を転送用オブジェクトとして情報処理装置１１に送信するプログラムである。すなわち、オブジェクト転送プログラム７は、層Ｎオブジェクト４から層Ｎ固有部６を取り外して、転送用オブジェクトを作成し、情報処理装置１１に送信する。
同様に、オブジェクト転送プログラム１７は、層Ｍオブジェクト１４の共通部３１を転送用オブジェクトとして情報処理装置１に送信するプログラムである。
【００２２】
また、オブジェクト転送プログラム７は、情報処理装置１が転送用オブジェクトを受信したときに、そのオブジェクトの層Ｎにおける機能を実現する層Ｎオブジェクト４を作成する。記憶装置３は、予め所定の場所に層Ｎ固有部６を記憶しておく。オブジェクト転送プログラム７は、転送用オブジェクトを受信したときに、所定の場所から層Ｎ固有部６を呼び出して、共通部３１（受信した転送用オブジェクト）に付加することによって、層Ｎオブジェクト４を作成する。
同様に、オブジェクト転送プログラム１７も、情報処理装置１１が転送用オブジェクトを受信したときに、記憶装置１３の所定の場所から層Ｍ固有部１６を呼び出して、共通部３１（受信した転送用オブジェクト）に付加することによって、層Ｍオブジェクト１４を作成する。なお、記憶装置１３は、予め所定の場所に層Ｍ固有部１６を記憶しておく。
【００２３】
各記憶装置３，１３は、転送用オブジェクトの種類と、転送用オブジェクトに応じて呼び出すべき固有部の記憶場所との対応関係を予め記憶する。図２（ａ）は、記憶装置３が記憶する対応関係の例である。オブジェクト転送プログラム７は、この対応関係にしたがって、転送用オブジェクトを受信したときに、層Ｎ固有部６を呼び出す。図２（ａ）に示す例では、転送用オブジェクトとして共通部３１を受信したときに、記憶場所Ｐから層Ｎ固有部６を呼び出す。
同様に、図２（ｂ）は、記憶装置１３が記憶する対応関係の例である。図２（ｂ）に示す例では、オブジェクト転送プログラム１７は、転送用オブジェクトとして共通部３１を受信したときに、記憶場所Ｑから層Ｍ固有部１６を呼び出す。
【００２４】
図２では、共通部３１に対応する固有部の記憶場所を示したが、転送用オブジェクトとして転送されるオブジェクトは、共通部３１に限定されない。共通部３１以外の共通部が定められているならば、記憶装置３，１３は、その共通部と、その共通部に応じて呼び出すべき固有部の記憶場所との対応関係を予め記憶する。
【００２５】
各層において、オブジェクト転送プログラム７，１７以外のプログラムが、所定の場所から層Ｎ固有部６や層Ｍ固有部１６を呼び出して、層Ｎオブジェクト４や層Ｍオブジェクト１４を作成してもよい。これらのプログラムがオブジェクト４，１４を作成するのは、転送用オブジェクトを受信したときに限定されない。
【００２６】
層は、転送用オブジェクトを受け取ったときに、転送用オブジェクトに固有部を付加することなく、転送用オブジェクトをそのまま保持してもよい。このような層において、層Ｎオブジェクト４や層Ｍオブジェクト１４は、転送用オブジェクトとして転送された共通部３１のみを含む。すなわち、オブジェクトが、ある層に存在しているときに提供する機能を、共通部３１のみが実現してもよい。例えば、共通部３１があるデータとそのデータを表示するメソッドを備えているとする。そして、オブジェクトが層Ｍにおいてデータ表示機能を提供するならば、層Ｍオブジェクト１４は層Ｍ固有部１６を含まず、共通部３１のみを備える。そして、共通部３１のメソッドにより層Ｍにおいてデータ表示機能を提供する。
【００２７】
ある層においてオブジェクトが提供する機能が共通部３１のみによって提供されるならば、記憶装置は固有部（層Ｎ固有部６や層Ｍ固有部１６）を記憶しない。また、転送用オブジェクトの種類と固有部の記憶場所の対応関係として、転送用オブジェクトの種類に対応させて「固有部はない。」という情報を記憶する。図２（ｃ）は、固有部を記憶しない場合の、転送用オブジェクトの種類と記憶場所との対応関係の例である。記憶装置３，１３が、図２（ｃ）に例示する情報を持つ場合、オブジェクト転送プログラム７，１７は、受信した転送用オブジェクトをそのまま層Ｎオブジェクト４や層Ｍオブジェクト１４とする。例えば、転送用オブジェクトとして共通部３１を受信したならば、共通部３１をそのまま層Ｎオブジェクト４等とする。
【００２８】
本例において、オブジェクト転送手段および固有部付加手段は、層Ｎでは、ＣＰＵ２、記憶装置３、オブジェクト転送プログラム７によって実現される。また、層Ｍでは、ＣＰＵ１２、記憶装置１３、オブジェクト転送プログラム１７によって実現される。
オブジェクト転送プログラム７は、コンピュータに、層内に存在するオブジェクト（層Ｎオブジェクト４）から前記層に固有の情報（層Ｎ固有部６）を取り外すことによって、前記オブジェクトが各層で共通に有する共通部を得る処理、前記共通部を他の層に転送する処理、および、他の層から共通部を受け取り、前記共通部に前記固有の情報（層Ｎ固有部６）を付加する処理を実行させるためのプログラムである。オブジェクト転送プログラム１７も、同様のプログラムである。
【００２９】
次に、転送用オブジェクトの授受を行う場合の動作について説明する。
ここでは、情報処理装置１から情報処理装置１１に転送用オブジェクトを送信する場合を例に説明する。図３は、オブジェクト転送プログラム７に従うＣＰＵ２の動作の例を示す流れ図である。図４は、オブジェクト転送プログラム１７に従うＣＰＵ１２の動作の例を示す流れ図である。
【００３０】
層Ｎから層Ｍにオブジェクトを転送し、そのオブジェクトの層Ｍにおける処理を要求する場合、オブジェクト転送プログラム７には、まず層Ｎオブジェクト４の情報が渡される（ステップＳ７１）。続いて、ＣＰＵ２は、ステップＳ７１において渡された層Ｎオブジェクト４が層Ｎ固有部６を含んでいるか否かを判断する（ステップＳ７２）。この判断は、層Ｎオブジェクト４が予め定められた共通部３１のデータやメソッド以外の情報を含んでいるか否かによって行う。
【００３１】
層Ｎオブジェクト４が層Ｎ固有部６を含んでいなければ、層Ｎオブジェクト４は、共通部３１のみからなるので、その共通部３１（層Ｎオブジェクト４）を転送用オブジェクトとする（ステップＳ７４）。また、層Ｎオブジェクト４が層Ｎ固有部６を含んでいれば、ＣＰＵ２は、層Ｎ固有部６を取り外す処理を行う（ステップＳ７３）。そして、層Ｎ固有部６が取り外された共通部３１を転送用オブジェクトとする（ステップＳ７４）。続いて、ＣＰＵ２は、転送用オブジェクトを情報処理装置１１に送信する（ステップＳ７５）。
【００３２】
情報処理装置１１において、ＣＰＵ１２は、ステップＳ７５において送信された転送用オブジェクトを受信する（ステップＳ７６）。続いて、ＣＰＵ１２は、転送用オブジェクトの種類と固有部との対応関係の情報を参照して、固有部を付加する必要があるか否かを確認する（ステップＳ７７）。ＣＰＵ１２は、対応関係を示す情報において、固有部の記憶場所が示されているならば、固有部を付加する必要があると判断する。また、対応関係を示す情報において、「固有部はない。」という情報が示されているならば、固有部を付加する必要はないと判断する。例えば、記憶装置１３が図２（ｂ）に例示する対応関係の情報を保持しているのであれば、ＣＰＵ１２は、受信した転送用オブジェクト（共通部３１）に、対応する層Ｍ固有部１６を付加する必要があると判断する。一方、記憶装置１３が図２（ｃ）に例示する対応関係の情報を保持しているのであれば、ＣＰＵ１２は、受信した転送用オブジェクト（共通部３１）に対して固有部を付加する必要はないと判断する。
【００３３】
ＣＰＵ１２は、ステップＳ７７において固有部を付加する必要がないと判断したならば、受信した転送用オブジェクトを層Ｍオブジェクト１４とする（ステップＳ７９）。また、ステップＳ７７において固有部を付加する必要があると判断したならば、転送用オブジェクトの種類に対応する記憶場所から固有部を呼び出す（ステップＳ７８）。例えば、記憶装置１３が図２（ｂ）に例示する情報を記憶していれば、転送用オブジェクト（共通部３１）に対応する固有部として、記憶場所Ｑから層Ｍ固有部１６を呼び出す。ＣＰＵ１２は、ステップＳ７８の次に、転送用オブジェクトに層Ｍ固有部１６を付加して層Ｍオブジェクト１４を作成する（ステップＳ７９）。ＣＰＵ１２は、ステップＳ７９において作成した層Ｍオブジェクト１４を記憶装置１３に保持させる（ステップＳ８０）。
【００３４】
情報処理装置１１から情報処理装置１に転送用オブジェクトを送信する場合の動作も、ステップＳ７１〜Ｓ８０と同様である。
【００３５】
このような多階層システムによれば、各層の間でオブジェクトを授受するときに、層Ｎ固有部６を含む層Ｎオブジェクト４全体や、層Ｍ固有部１６を含む層Ｍオブジェクト１４全体を転送することがない。そのため、従来の第一の手法のように、層Ｎ（情報処理装置１）が層Ｎで実行されないメソッド等を受け取れるようにする必要がない。層Ｍ（情報処理装置１１）も、層Ｍで実行されないメソッド等を受け取れるようにする必要がない。
また、オブジェクトを他の層に転送するときには、共通部を転送用オブジェクトとして授受し、転送用オブジェクトに、各層で必要なメソッドやデータが付加される。したがって、処理を要求する層では、固有部を除いて共通部を送ればよいので、送り先毎に必要な情報を選び出す必要がない。本発明では、授受する共通部を定め、固有部の付加や取り外しを行えばよいので、設計時の負担が軽減される。
また、オブジェクトは、各層において、その層での役割に適した機能のみを提供する。したがって、設計時に、各層毎の役割を明確にすることができ、オブジェクトの各層における機能を洗い出すことができる。
【００３６】
また、従来の第二の手法と異なり、層Ｎに存在するオブジェクトは、そのオブジェクトが他の層に存在するときに提供する機能を持つことがない。同様に、層Ｍに存在するオブジェクトは、そのオブジェクトが他の層に存在するときに提供する機能を持つことがない。従って、オブジェクトがある層に存在しているときに、そのオブジェクトの他の層における機能を利用しないようにプログラムを記述する必要がなく、プログラマの負担が軽減される。また、プログラマが誤って、利用できない機能を利用するような記述をしても、その誤りをすぐに検出できる。
そして、各層に存在するオブジェクトは、他の層における機能を持たないので、情報処理装置のリソースの消費を少なくすることができる。
【００３７】
次に、預金口座を扱うシステムに本発明を適用した場合の動作の例を説明する。システムの構成は、図１に例示する場合と同様である。オブジェクトが層Ｎにおいて提供する機能は、業務ロジックを実行する機能であり、オブジェクトが層Ｍにおいて提供する機能はデータベースにアクセスする機能であるとする。預金口座を表現する預金口座オブジェクトは、層Ｎにおいて、入出金や利息計算処理等の機能を提供する。また、預金口座オブジェクトは、層Ｍにおいて、名義人、残高等の情報の保存や呼び出し機能を提供する。預金口座オブジェクトは、層Ｎに転送されたときには層Ｎオブジェクト４になり、層Ｍに転送されたときには層Ｍオブジェクト１４になる。本例において、預金口座オブジェクトの共通部３１は、預金口座の名義人情報、残高情報、入手金履歴等のデータを含む。また、預金口座オブジェクトの共通部３１は、名義人情報等を共通部３１の属性として設定するメソッドや、設定されている情報を提供するメソッド等を含む。
【００３８】
層Ｎ固有部６は、預金口座の入出金処理や利息計算処理を行うメソッドを含む。また、層Ｍ固有部１６は、名義人情報、残高情報、入出金履歴等のデータを保存したり、保存したデータを呼び出すメソッドを含む。層Ｍ固有部１６は、データ保存場所の情報も含む。
【００３９】
記憶装置３は、図２（ａ）に例示するように、名義人情報等を含む共通部３１に対応させて、層Ｎ固有部６の記憶場所を保持する。したがって、情報処理装置１が転送用オブジェクトとして共通部３１を受信した場合、共通部３１に対応する層Ｎ固有部６（入出金処理を行うメソッド等）が呼び出され、共通部３１には層Ｎ固有部６が付加される。
記憶装置１３は、図２（ｂ）に例示するように、共通部３１に対応させて、層Ｍ固有部１６の記憶場所を保持する。情報処理装置１１が転送用オブジェクトとして共通部３１を受信した場合、共通部３１に対応する層Ｍ固有部１６（データ保存を行うメソッド等）が呼び出され、共通部３１に層Ｍ固有部１６が付加される。
【００４０】
図５は、呼び出した名義人の口座に対して、預金口座オブジェクトが層Ｎにおいて入出金処理等を行い、その結果を層Ｍで保存する際の動作の例を示す流れ図である。まず、記憶装置１３が記憶するプログラムに従い、ＣＰＵ１２が層Ｍオブジェクト１４を作成する（ステップＳ１０１）。このプログラムは、オブジェクト転送プログラム１７でなくてもよい。また、ステップＳ１０１において作成される層Ｍオブジェクトには、名義人情報等の具体的データは含まれていない。続いて、ＣＰＵ１２は、作成した層Ｍオブジェクト１４の層Ｍ固有部１６のメソッドにより、名義人情報、残高情報、入出金履歴等のデータを呼び出し、共通部３１の属性として設定する（ステップＳ１０２）。この処理により、層Ｍオブジェクト１４は、名義人情報等の具体的データを備える。
【００４１】
続いて、オブジェクト転送プログラム１７に、層Ｍオブジェクト１４の情報が渡され、ＣＰＵ１２は、層Ｍオブジェクト１４から層Ｍ固有部１６を取り外す（ステップＳ１０３）。層Ｍオブジェクト１４には共通部３１以外のデータやメソッドが含まれているので、ＣＰＵ１２は、層Ｍ固有部６があると判断し、データの保存場所の情報や、データの保存、呼び出しを行うメソッドを取り外す。ステップＳ１０３は、前述のステップＳ７１〜ステップＳ７３に相当する処理である。
【００４２】
ステップＳ１０３の処理によって、名義人情報等のデータや、データの設定等を行うメソッドを含む共通部３１が得られる。ＣＰＵ１２は、この共通部３１を転送用オブジェクトとし（ステップＳ１０４）、情報処理装置１に送信する（ステップＳ１０５）。情報処理装置１は、転送用オブジェクトを受信する。ステップＳ１０４，Ｓ１０５は、ステップＳ７４〜Ｓ７６に相当する処理である。このように、層Ｍオブジェクト１４として存在していた預金口座オブジェクトは、転送用オブジェクトとして転送される。
【００４３】
情報処理装置１のＣＰＵ２は、転送用オブジェクトとして共通部３１を受信したならば、対応する層Ｎ固有部６を呼び出して、共通部３１に付加する（ステップＳ１０６）。すなわち、入出金処理や利息計算処理を行うメソッドを呼び出し、受信した共通部３１に付加することにより層Ｎオブジェクト４を作成する。ステップＳ１０６は、ステップＳ７７〜Ｓ７９に相当する処理である。ＣＰＵ２は、作成した層Ｎオブジェクト４を記憶装置３に保持させる（ステップＳ１０７）。これは、ステップＳ８０に相当する処理である。
【００４４】
ＣＰＵ２は、層Ｎ固有部６のメソッドによって入出金処理等を行い、共通部３１の残高情報や入出金履歴等を更新する（ステップＳ１０８）。続いて、オブジェクト転送プログラム７に、層Ｎオブジェクト４の情報が渡され、ＣＰＵ２は、層Ｎオブジェクト４から層Ｎ固有部６を取り外す（ステップＳ１０９）。層Ｎオブジェクト４には共通部３１以外のメソッドが含まれているので、ＣＰＵ２は、層Ｎ固有部６があると判断し、入出金処理や利息計算処理を行うメソッドを取り外す。ステップＳ１０９は、前述のステップＳ７１〜ステップＳ７３に相当する処理である。
【００４５】
ステップＳ１０９の処理によって、名義人情報等のデータや、データの設定等を行うメソッドを含む共通部３１が得られる。ＣＰＵ２は、この共通部３１を転送用オブジェクトとし（ステップＳ１１０）、情報処理装置１１に送信する（ステップＳ１１１）。情報処理装置１１は、転送用オブジェクトを受信する。ステップＳ１１０，Ｓ１１１は、ステップＳ７４〜Ｓ７６に相当する処理である。このように、層Ｎオブジェクト４として存在していた預金口座オブジェクトは、転送用オブジェクトとして転送される。
【００４６】
情報処理装置１１のＣＰＵ１２は、転送用オブジェクトとして共通部３１を受信したならば、対応する層Ｍ固有部１６を呼び出して、共通部３１に付加する（ステップＳ１１２）。すなわち、名義人情報等のデータを保存したり、保存したデータを呼び出すメソッドや、データの保存場所の情報を呼び出し、受信した共通部３１に付加することにより層Ｍオブジェクト１４を作成する。ステップＳ１１２は、ステップＳ７７〜Ｓ７９に相当する処理である。ＣＰＵ１２は、作成した層Ｍオブジェクトを記憶装置１３に保持させる（ステップＳ１１３）。これは、ステップＳ８０に相当する処理である。
【００４７】
ＣＰＵ１２は、ステップＳ１０８で更新された共通部３１の情報を、層Ｍ固有部１６のメソッドによってデータ保存場所に記憶させる（ステップＳ１１４）。
【００４８】
このようなシステムでは、層Ｎが、データを保存するメソッド等を受け取る必要がない。同様に、層Ｍが、入出金処理を行うメソッド等を受け取る必要がない。また、預金口座オブジェクトを他の層に転送するときには、名義人情報、残高情報、入出金履歴等のデータや、それらのデータを設定するメソッド等を共通部３１として送受信すればよい。本例のシステムでは、このような共通部を定め、固有部の付加や取り外しを行えばよいので、設計時の負担が軽減される。
【００４９】
また、層Ｎに存在する預金口座オブジェクト（層Ｎオブジェクト４）は、データの保存や呼び出しを行うメソッドを有していないので、層Ｎにおいて、これらの機能を利用しないようにプログラムを記述する必要はない。同様に、層Ｍに存在する預金口座オブジェクト（層Ｍオブジェクト１４）は、入出金処理や利息計算処理を行うメソッドを有していないので、層Ｍにおいて、これらの機能を利用しないようにプログラムを記述する必要がない。したがって、プログラマの負担を軽減させることができる。
【００５０】
また、上記の例では、情報処理装置１，１１において、受信した転送用オブジェクトに対して層Ｎ固有部６や層Ｍ固有部１６を付加する場合を示したが、ある層における機能が共通部３１のメソッドによって実現される場合には、固有部を付加しなくてもよい。例えば、預金口座を扱うシステムにおいて、オブジェクトの層Ｎにおける機能は、上記の例と同様に業務ロジックの実行機能であるとする。そして、オブジェクトの層Ｍにおける機能は、データ表示機能およびデータ設定機能であるとする。預金口座オブジェクトは、層Ｍに存在する場合、名義人情報、残高情報、入出金履歴の情報を表示する機能や、ユーザから入力された情報を共通部の属性として設定する機能を提供する。これらの機能は、預金口座オブジェクトの共通部３１（情報を共通部３１の属性として設定するメソッド、設定されている情報を提供するメソッド）により実現される。
【００５１】
この場合、情報処理装置１１の記憶装置１３は、層Ｍ固有部１６を保持しない。そして、図２（ｃ）に例示するように、共通部３１に対応させて「固有部はない。」という情報を記憶する。ＣＰＵ１２は、転送用オブジェクトとして共通部３１を受信したとき、「固有部はない。」という情報に基づいて、受信した共通部３１を層Ｍオブジェクトとする。そして、ＣＰＵ１２は、共通部３１のメソッドにより、データの表示等を行う。
【００５２】
また、情報処理装置１に、転送用オブジェクトを送信する場合、層Ｍオブジェクトは共通部３１のみからなるので、ＣＰＵ１２は、固有部を取り外すことなく共通部３１を転送用オブジェクトとする。
なお、この場合、情報処理装置１が転送用オブジェクトを受信したときの動作は、ステップＳ１０６〜Ｓ１１１と同様である。
【００５３】
上記の各例では、各層に対応する情報処理装置が異なり、通信ネットワーク４１を介してオブジェクトを授受する場合を示した。本発明の形態は、各層に対応する情報処理装置が異なる場合に限定されない。例えば、各層が同一の情報処理装置によって実現され、プロセス間通信によってオブジェクトが転送される構成であってもよい。また、各層が同一の情報処理装置によって実現され、同一プロセスのもとでオブジェクトが転送される構成であってもよい。
【００５４】
このように本発明では、各層は、通信ネットワークを介して接続される複数の情報処理装置によって実現され、前記通信ネットワークを介して転送用オブジェクトを転送する構成であってもよい
また、各層は、同一の情報処理装置によって実現され、プロセス間通信により転送用オブジェクトを転送する構成であってもよい。
また、各層は、同一の情報処理装置によって実現され、同一プロセスのもとで転送用オブジェクトを転送する構成であってもよい。
【００５５】
【発明の効果】
本発明によれば、各層は、一つのオブジェクトが各層で共通に有する共通部を転送用オブジェクトとして転送するオブジェクト転送手段を備え、各層間で転送されるオブジェクトは、前記オブジェクト転送手段によって転送用オブジェクトとして転送され、各層で、その層に応じた機能を提供するので、各層は、実行されないメソッド等を受け取る必要がない。また、オブジェクト転送先の層毎に必要な情報を選び出す必要がなく、共通部を転送用オブジェクトとして送信すればよい。したがって、層間の情報の授受に関する設計の負担が軽減される。さらに、オブジェクトがある層に存在しているときに、そのオブジェクトの他の層における機能を利用しないようにプログラムを記述する必要がなく、プログラマの負担が軽減される。オブジェクトは、ある層に存在しているときに、他の層において提供すべき機能を有さないので、情報処理装置のリソースを多く消費することもない。
【図面の簡単な説明】
【図１】  本発明による多階層システムの実施の一形態を示すブロック図である。
【図２】  転送用オブジェクトの種類と固有部の記憶場所との対応関係の例を示す説明図である。
【図３】  転送用オブジェクトを転送する際の動作の例を示す流れ図である。
【図４】  転送用オブジェクトを受け取る際の動作の例を示す流れ図である。
【図５】  預金口座を扱う多階層システムの動作の例を示す流れ図である。
【符号の説明】
１  情報処理装置
２  ＣＰＵ
３  記憶装置
４  層Ｎオブジェクト
６  層Ｎ固有部
７  オブジェクト転送プログラム
１１  情報処理装置
１２  ＣＰＵ
１３  記憶装置
１４  層Ｍオブジェクト
１６  層Ｍ固有部
１７  オブジェクト転送プログラム
３１  共通部３１
【図１】
0003726708.tif 000002
【図２】
0003726708.tif 000003
【図３】
0003726708.tif 000004
【図４】
0003726708.tif 000005
【図５】
0003726708.tif 000006