JP2004151800A - 呼出規約変換処理の生成方法 - Google Patents
呼出規約変換処理の生成方法 Download PDFInfo
- Publication number
- JP2004151800A JP2004151800A JP2002313615A JP2002313615A JP2004151800A JP 2004151800 A JP2004151800 A JP 2004151800A JP 2002313615 A JP2002313615 A JP 2002313615A JP 2002313615 A JP2002313615 A JP 2002313615A JP 2004151800 A JP2004151800 A JP 2004151800A
- Authority
- JP
- Japan
- Prior art keywords
- name
- calling
- interface
- component
- call
- 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.)
- Granted
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/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
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)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】コンポーネントの配備記述子と型情報を参照して、呼出元コンポーネントが使う呼出規約と呼出先コンポーネントが使う呼出規約が同じか判定し、異なる場合は、呼出規約変換処理を行うプロキシのクラスとオブジェクトを生成する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、配備記述子を用いて実行環境に配備するアプリケーション間の呼出方法が異なる場合に呼出方法を変換する方法に関する
【0002】
【従来の技術】
ビジネスの変化に即応するために、エンタープライズシステムには開発期間の短縮、開発コストの低減、規模や機能の拡張容易性への要求が高まっている。これらの要求を実現するため、アプリケーションを部品化して再利用性をもたせたコンポーネントを組合せて連携させることでシステムを構築するコンポーネントモデルが普及しつつある。コンポーネントモデルでは、コンポーネントを修正することなく再利用して異なる複数の実行環境でも利用可能にするため、実行環境に依存する情報をコンポーネントには含めず、管理者がコンポーネントを実行環境へツールを利用して配置するときに設定する。管理者の行う、設定と配置の作業を配備と呼ぶ。
【0003】
コンポーネントモデルとしてJava 2 Platformが知られている(例えば、非特許文献1を参照)。(JavaおよびJ2EEは米サンマイクロシステムズ社の登録商標である)非特許文献1では、コンポーネントをアプリケーションコンポーネント(Application Component)と呼び、実行環境をコンテナ(Container)と呼び、配備記述子をデプロイメントデスクリプタ(Deployment Descriptor)と呼ぶ。
【0004】
コンポーネントを連携させることは、管理者が呼出元コンポーネントから呼出先コンポーネントへのコンポーネント参照を設定し、呼出元コンポーネントの実行プログラムがコンポーネント呼出を実行することで行う。
【0005】
コンポーネント参照は、管理者が呼出元コンポーネントの論理名に対して呼出先コンポーネントの物理名を対応付けることで設定する。論理名は、呼出元コンポーネントが他のコンポーネントを実行環境に依存しない形で参照する名前で、呼出元コンポーネントの配備記述子に含まれている。物理名は、呼出先コンポーネントが他コンポーネントに対して公開する実行環境に依存する具体的な名前であり、管理者が呼出先コンポーネントを実行環境へ配備するときに割当てる。
【0006】
コンポーネントの連携としてEnterprise JavaBeansが知られている(例えば、非特許文献2を参照)。(Enterprise JavaBeansは米サンマイクロシステムズ社の登録商標である)。非特許文献2では、コンポーネント呼出における、ローカル呼出規約とリモート呼出規約を規定し、リモート呼出規約を分散オブジェクト呼出と規定している。
【0007】
【非特許文献1】
「Java 2 Platform、 Enterprise Edition Specification、 v1.3(2001)」、第1章から第2章(第1ページから第l6ページ)、米サンマイクロシステムズ社発行
【非特許文献2】
「Enterprise JavaBeans Specification、 v2.0(2001)」、第4.2.1節(第43ページから第44ページ)と第4.4節(第49ページ)と第5章(第51ページから第54ページ)、米サンマイクロシステムズ社発行
【0008】
【発明が解決しようとする課題】
従来の技術では、ローカル呼出規約とリモート呼出規約では必ず呼出インタフェースが異なっていた。また、呼出元コンポーネントの実行プログラムが含むコンポーネント呼出の処理は呼出インタフェースに依存し、呼出規約にも依存する。
【0009】
同一の実行環境でローカル呼出規約を使って連携している呼出元コンポーネントと呼出先コンポーネントを、異なる実行環境へ配備して連携させる場合、使用する呼出規約を変更してリモート呼出規約を使うようにする。呼出元コンポーネントが含む実行プログラムは、ローカル呼出規約を反映しているため呼出規約を変更するのにあわせて修正が必要となる。このように、異なる実行環境へ配備するときにコンポーネントを修正することなく再利用することができなかった。
【0010】
本発明の目的はこのような場合にも呼出元コンポーネントを修正することなく配備して連携させることができるように呼出規約の変換処理を生成する方法を提供することにある。
【0011】
【課題を解決するための手段】
本発明では、以下の手順で上記の目的を達成する。
【0012】
呼出元コンポーネントの配備記述子から論理名に対応する呼出規約と呼出インタフェース名を取得し、呼出元呼出規約と呼出元インタフェース名とする。論理名を指定して取得した呼出先コンポーネントの参照オブジェクトの型情報から継承インタフェースを取得し、呼出先インタフェースとする。呼出先インタフェースが継承する規約インタフェースを取得してローカル呼出規約とリモート呼出規約のいずれかを判定して呼出先呼出規約とする。呼出元呼出規約がローカル呼出規約で呼出先呼出規約がリモート呼出規約の場合に呼出規約の変換処理を行う。
【0013】
呼出規約の変換処理は、プロキシオブジェクトが行う。プロキシオブジェクトは、呼出元インタフェースを継承して実装したプロキシクラスのインスタンスであり、呼出元コンポーネントからはあたかもローカル呼出規約に従うオブジェクトに見える。プロキシオブジェクトは、呼出先コンポーネントの参照オブジェクトをデータとして保持し、呼出元コンポーネントからのローカル呼出規約に従ったメソッド呼出を受取ると、保持している参照オブジェクトへメソッド呼出を転送して呼出先コンポーネントをリモート呼出規約に従って呼出すことで、呼出規約の変換処理を行う。
【0014】
プロキシオブジェクトの生成に使うクラスをプロキシクラスと呼ぶ。プロキシクラスは、呼出元インタフェースと呼出先インタフェースの情報を元に生成する。
【0015】
【発明の実施の形態】
本発明の実施形態について図面を用いて説明する。図1から図2は、本実施例の概要を示した図である。
【0016】
呼出元コンポーネントであるコンポーネント100は配備ツールである物理名割当部140により呼出元の実行環境170へ配備される。呼出先コンポーネントであるコンポーネント120は配備ツールである物理名割当部150により呼出先の実行環境190へ配備される。そのとき呼出先の実行環境190はコンポーネント120を表すオブジェクト識別子をネームサービスである物理名管理部160に登録し呼出元の実行環境170から参照できるようにする。実行環境170に配備されたコンポーネント100は物理名管理部160に登録されたコンポーネント120を表すオブジェクト識別子を取得してオブジェクト呼出を行うことにより実行環境190に配備されたコンポーネント120を呼出す。
【0017】
以下に各要素を詳細に説明する。
【0018】
呼出元コンポーネントであるコンポーネント100は実行プログラム101と配備記述子110と型情報群103を含む。実行プログラム101は論理名「Cart」(102)を参照する。配備記述子110は、項目として論理名を記述する論理名項目111と、前記論理名を使ってコンポーネントを呼出すときの呼出規約を記述する呼出規約項目112と、前記論理名を使ってコンポーネントを呼出すときの呼出インタフェースの型名を記述する型名項目113を含む。配備記述子110は、コンポーネントが参照する論理名ごとにレコードを含み、レコード114は論理名「Cart」、呼出規約「ローカル」、型名「LocalCart」を格納する。型情報群103は、レコード114の型名「LocalCart」に対するインタフェースの型情報であるLocalCart型情報104を含む。インタフェース「LocalCart」はローカル呼出規約に従うのでローカル呼出規約の規約インタフェースである「Local」を継承する。
【0019】
呼出先コンポーネントであるコンポーネント120は実行プログラム121と配備記述子130と型情報群135を含む。配備記述子130は、項目として呼出受付部のローカル呼出規約が使用する呼出インタフェースを記述するローカル呼出型名項目131と、呼出受付部のリモート呼出規約を使用する呼出インタフェースを記述するリモート呼出規約項目132を含む。配備記述子130は、呼出受付部ごとにレコードを含み、レコード133はローカル呼出型名「LocalCart」、リモート呼出型名「RemoteCart」を格納する。型情報群135は、レコード133のローカル呼出型名「LocalCart」のインタフェースの型情報であるLocalCart型情報104と、リモート呼出型名「RemoteCart」のインタフェースの型情報であるRemoteCart型情報136を含む。インタフェース「RemoteCart」はリモート呼出規約に従うのでリモート呼出規約の規約インタフェースである「Remote」を継承する。
【0020】
物理名割当部140はコンポーネント100を読込み、物理名割当情報141と一緒に実行環境170へ出力する。物理名割当情報141は、項目としてコンポーネントが参照する論理名を記述する論理名項目142と、論理名に対応つける物理名を記述する物理名項目143を含む。物理名割当情報141はコンポーネントが参照する論理名ごとにレコードを含み、レコード144は論理名「Cart」、物理名「CartR」を格納する。
【0021】
物理名割当部150はコンポーネント120を読込み、物理名割当情報151と一緒に実行環境190へ出力する。物理名割当情報151は、項目として呼出受付部のローカル呼出規約に割当てる物理名を記述するローカル呼出物理名項目152と、呼出受付部のリモート呼出規約に割当てる物理名を記述するリモート呼出物理名項目153を含む。物理名割当情報151は、呼出受付部ごとにレコードを含み、レコード154はローカル呼出物理名「CartL」、リモート呼出物理名「CartR」を格納する。
【0022】
物理名管理部160は、項目として物理名を記述する物理名項目161と、物理名に対応するコンポーネントの呼出受付部を記述するオブジェクト識別子項目162を含む。物理名管理部160は、物理名ごとにレコードを含み、レコード163は物理名「CartL」、オブジェクト識別子「Ref1」(165)を格納し、レコード164は物理名「CartR」、オブジェクト識別子「Ref2」(166)を格納する。
【0023】
実行環境170は、コンポーネント100、物理名割当情報141、名前解決手続き172、プロキシ化手続き173、プロキシクラス管理部175、プロキシオブジェクト180を含む。
【0024】
実行プログラム101は、論理名を名前解決手続き172に渡して呼出先コンポーネントの参照オブジェクトを取得し、参照オブジェクトのメソッドを呼出すことで呼出先コンポーネントを呼出す。図1の例では、論理名「Cart」(102)に対して参照オブジェクトとしてプロキシオブジェクト180を取得している。
【0025】
名前解決手続き172は、論理名を入力とし、論理名と、物理名割当情報141と物理名管理部160を参照して得た論理名に対応するオブジェクト識別子を、プロキシ化手続き173に渡して得た参照オブジェクトを出力する。図1の例では、論理名「Cart」(102)を入力とし、物理名割当情報141を参照して論理名「Cart」(102)に対応する物理名「CartR」を取得し、物理名管理部160を参照して物理名「CartR」に対応するオブジェクト識別子「Ref2」(166)を取得する。次に、論理名「Cart」(102)とオブジェクト識別子「Ref2」(166)をプロキシ化手続き173へ渡して得た結果を参照オブジェクトとして出力する。
【0026】
プロキシ化手続き173は、論理名とオブジェクト識別子を入力とする。論理名から配備記述子110を参照して得た呼出元の呼出規約と、オブジェクト識別子の型情報から得た呼出先の呼出規約が同じであるか比較する。同じである場合はオブジェクト識別子を参照オブジェクトとして出力する。異なる場合は、論理名から配備記述子110を参照して得た型名項目113の型名とオブジェクト識別子をプロキシクラス管理部175へ渡してプロキシクラスを取得し、プロキシクラスのインスタンスであるプロキシオブジェクトを生成してオブジェクト識別子を格納したものを参照オブジェクトとして出力する。
【0027】
図1の例では、論理名「Cart」(102)とオブジェクト識別子「Ref2」(166)を入力とする。論理名「Cart」(102)からは配備記述子110を参照して呼出規約「ローカル」を得、呼出元の呼出規約はローカル呼出規約となる。オブジェクト識別子「Ref2」からはRemoteCart型情報136を得、継承インタフェースの型名283が「Remote」であることから呼出先の呼出規約はリモート呼出規約となる。呼出元の呼出規約がローカル呼出規約で、呼出先の呼出規約がリモート呼出規約であるので、論理名「Cart」(102)から配備記述子110を参照して得た型名項目113の型名「LocalCart」とオブジェクト識別子「Ref2」(166)をプロキシクラス管理部175へ渡してプロキシクラス174を取得し、プロキシクラス174のインスタンスであるプロキシオブジェクト180を生成してオブジェクト識別子「Ref2」(166)を格納したものを参照オブジェクトとして出力する。
【0028】
プロキシクラス管理部175は、型情報を参照してプロキシクラス174を生成、または、実行環境190から取得する。プロキシクラス174はプロキシオブジェクト180のクラスである。プロキシオブジェクト180はプロキシクラス174を参照するクラス記述子181と、データ182を含み、データ182はオブジェクト識別子「Ref2」(166)を含む。
【0029】
実行環境190は、コンポーネント120、物理名割当情報151、オブジェクト識別子「Ref1」(165)、オブジェクト識別子「Ref2」(166)、プロキシクラス管理部195を含む。実行環境190は、コンポーネントが配備されると、物理名割当情報151を参照して呼出受付部の呼出規約ごとにオブジェクト識別子165、166を生成し、物理名とオブジェクト識別子の組を物理名管理部160へ登録する。プロキシクラス管理部175がプロキシクラス管理部195からプロキシクラス174を取得する実施の形態では、プロキシクラス管理部195は、実行環境190にある情報を参照してプロキシクラス174を生成し、プロキシクラス管理部175がプロキシクラス174を取得できるようにする。
【0030】
図2は、型情報と呼出規約の変換処理を行うプロキシクラスの詳細と、プロキシクラス生成部を示した図である。
【0031】
プロキシクラス生成部230は、呼出元の呼出インタフェースの型情報と呼出先の呼出インタフェースの型情報を含んだ型情報対220を入力としてプロキシクラス174を生成する。
【0032】
型情報対220は、呼出元型情報221と呼出先型情報222を含む。呼出元型情報221は呼出元の呼出インタフェースの型情報である。呼出先型情報222は呼出先の呼出インタフェースの型情報である。図2の例では呼出元型情報221はLocalCart型情報104を含み、呼出先型情報222はRemoteCart型情報136を含む。
【0033】
型情報は、型名、継承インタフェース型名、メソッド情報を含む。
【0034】
LocalCart型情報104は、型名201と継承インタフェース型名202とメソッド情報を含む。型名201は自分自身の型名を記述し、値「LocalCart」を格納する。継承インタフェース型名202は、LocalCartインタフェースが継承するインタフェースを記述し、継承するインタフェースごとにレコードを持ち、レコード203にローカル呼出規約に対応する規約インタフェース「Local」を格納する。メソッド情報は、項目としてインタフェースのメソッド名を記述するメソッド名項目211と、メソッドの引数を記述する引数情報項目212を含む。メソッド情報は、メソッドごとにレコードを含み、レコード213はメソッド名「add」、引数情報「整数型」を格納し、レコード214はメソッド名「clear」、引数情報「引数なし」を格納する。
【0035】
RemoteCart型情報104は、型名281と継承インタフェース型名282とメソッド情報を含む。型名281は自分自身の型名を記述し、値「RemoteCart」を格納する。継承インタフェース型名282は、RemoteCartインタフェースが継承するインタフェースを記述し、継承するインタフェースごとにレコードを持ち、レコード283にリモート呼出規約に対応する規約インタフェース「Remote」を格納する。メソッド情報は、項目としてインタフェースのメソッド名を記述するメソッド名項目291と、メソッドの引数を記述する引数情報項目292を含む。メソッド情報は、メソッドごとにレコードを含み、レコード293はメソッド名「add」、引数情報「整数型」を格納し、レコード294はメソッド名「clear」、引数情報「引数なし」を格納する。
【0036】
呼出元型情報221が含むメソッド情報と呼出先型情報222が含むメソッド情報は、図2に示すように同じメソッド名と引数情報を含む。
【0037】
プロキシクラス174は、ローカル呼出規約の呼出インタフェースを継承してメソッドを実装したクラスである。プロキシクラス174は型情報240とメソッド実装270を含む。型情報240は、型名241、継承インタフェース型名242、メソッド情報、データ情報、を含む。型名241は自分自身の型名を記述し、値「LocalCartProxy」を格納する。継承インタフェース型名242は、プロキシクラスが継承するインタフェースを記述し、継承するインタフェースごとにレコードを持ち、レコード243に呼出インタフェース「LocalCart」を格納する。メソッド情報は、項目としてプロキシクラスのメソッド名を記述するメソッド名項目250と、メソッドの引数を記述する引数情報項目251を含む。メソッド情報は、メソッドごとにレコードを含み、レコード252はメソッド名「add」、引数情報「整数型」を格納し、レコード253はメソッド名「clear」、引数情報「引数なし」を格納する。データ情報は、項目としてプロキシクラスが保持するデータの名前を記述するデータ名項目260と、データの型を記述するデータ型名項目261を含む。データ情報は、1つのレコード262を含み、データ名「ref」、データ型名「RemoteCart」を格納する。データ名はプロキシクラスのメソッド実装が参照できる名前であればよく、他の名前でも構わない。
【0038】
プロキシオブジェクトでは、データには呼出先コンポーネントの参照オブジェクトを格納する。メソッド実装270は、インタフェースのメソッドごとの処理手続き、add手続き271、clear手続き272、を含む。add手続き271は、プロキシクラス174のインスタンスのaddメソッドが呼出されると実行され、データ名refに格納されている参照オブジェクトのaddメソッドを呼出して呼出を転送する。clear手続き271は、プロキシクラス174のインスタンスのclearメソッドが呼出されると実行され、呼出をデータ名refに格納されている参照オブジェクトのclearメソッドを呼出して呼出を転送する。インタフェースのメソッドごとの処理手続きは、呼出を転送するときに呼出規約の違いを変換する。例えば、呼出規約の種別に応じて決まっているJavaの例外を相互に変換する。
【0039】
プロキシクラス生成部230がプロキシクラス174を生成する手順を説明する。呼出元型情報221が含むLocalCart型情報104の型名201「LocalCart」に「Proxy」を連結した型名「LocalCartProxy」をプロキシクラス174の型名241へ出力する。プロキシクラスの型名の生成方法は、「Proxy」を連結する方法に限らず、呼出元の呼出インタフェース名から一定の規則で一意に識別できる方法であれば何でもよい。呼出元型情報221が含むLocalCart型情報104の型名201「LocalCart」をプロキシクラス174の継承インタフェース型名のレコード243へ出力する。呼出先型情報222が含むRemoteCart型情報136の型名281「RemoteCart」をプロキシクラス174のレコード262のデータ型名項目へ出力する。呼出元型情報221が含むLocalCart型情報104のメソッド情報の内容をプロキシクラス174のメソッド情報へ複写して出力する。プロキシクラス174のレコード262のデータ名項目に「ref」を出力する。データ名はプロキシクラスのメソッド実装が参照できる名前であればよく、他の名前でも構わない。プロキシクラス174のメソッド情報のレコードごとに、メソッド名と引数情報を参照してメソッド実装270にメソッドごとの手続きを生成して出力する。
【0040】
図6は装置の構成を示した図である。
【0041】
計算機601は、二次記憶装置602、主記憶装置603、CPU680、マウス681、ディスプレイ682、キーボード683、ネットワークインタフェース685、及びこれらを相互接続するバス670から構成される。そして、計算機601はネットワークインタフェース685を介してネットワーク690に接続される。二次記憶装置602には、コンポーネント100、コンポーネント120を記憶している。主記憶装置603には、オペレーティングシステム604、物理名割当部140、物理名割当部150、物理名管理部160、実行環境170、実行環境190を記憶している。実行環境170、実行環境190のいずれかはネットワーク690で接続された別の計算機の主記憶が記憶してもよい。
【0042】
プロキシクラスの生成は、呼出元の実行環境170が行う場合と呼出先の実行環境190が行う場合がある。図3と図4を用いてそれぞれの場合を説明する。
【0043】
図3は、呼出元の実行環境170がプロキシクラスの生成を行う場合のプロキシクラス管理部の実施の形態を示した図である。
【0044】
図3の実施の形態ではプロキシクラス管理部175が型情報を参照してプロキシクラス174を生成する。
【0045】
プロキシクラス管理部175は、型情報対220、プロキシクラス生成部230、プロキシクラス174を含む。
【0046】
図3の例のオブジェクト識別子166は呼出先の呼出インタフェースの型情報であるRemoteCart型情報136を含む。
【0047】
プロキシクラス管理部175は、呼出元の呼出インタフェースの型名310とオブジェクト識別子166を入力とする。呼出元コンポーネントの型情報群を参照して呼出元の呼出インタフェースの型名310から取得した型情報を型情報対220の呼出元型情報221へ格納し、オブジェクト識別子166の型情報136を型情報対220の呼出先型情報222へ格納し、型情報対220をプロキシクラス生成部230へ入力する。プロキシクラス生成部230はプロキシクラス174を生成し出力する。
【0048】
図3の例では、呼出元の呼出インタフェースの型名「LocalCart」(310)とオブジェクト識別子「Ref2」(166)を入力とする。呼出元コンポーネントであるコンポーネント100の型情報群103を参照して呼出元の呼出インタフェースの型名310「LocalCart」に対応するLocalCart型情報104を取得して型情報対220の呼出元型情報221へ格納し、オブジェクト識別子「Ref2」(166)の型情報であるRemoteCart型情報136を型情報対220の呼出先型情報222へ格納し、型情報対220をプロキシクラス生成部230へ入力する。プロキシクラス生成部230は図2と同じ動作を行い、プロキシクラス174を生成して出力する。
【0049】
呼出先の呼出インタフェースの型情報を取得する方法は、オブジェクト識別子166が呼出先の呼出インタフェースの型情報であるRemoteCart型情報136を取得する型情報取得メソッドを備え、型情報対取得部301がオブジェクト識別子166の型情報取得メソッドを呼出す方法でもよい。
【0050】
図4は、呼出元の実行環境190がプロキシクラスの生成を行う場合のプロキシクラス管理部の実施の形態を示した図である。
【0051】
図4の実施の形態ではプロキシクラス管理部195が実行環境190にある情報を参照してプロキシクラス174を生成し、プロキシクラス管理部175が生成されたプロキシクラス174を取得し実行環境170で利用する。
【0052】
プロキシクラス管理部195は型情報対220、プロキシクラス生成部230、プロキシクラス174を含む。プロキシクラス管理部195はプロキシクラス174を生成して格納する動作を行い、プロキシクラス管理部175からの要求により格納してあるプロキシクラス174をプロキシクラス管理部175へ渡す動作を行う。
【0053】
プロキシクラス管理部195がプロキシクラス174を生成して格納する動作では、プロキシクラス管理部195は配備記述子130を入力とし、配備記述子130のレコードごとに型情報対220を生成してプロキシクラス生成部230を用い、プロキシクラス174を生成して格納する。型情報対220の生成では、レコードのローカル呼出型名項目131の値から型情報群135を参照して取得した型情報を呼出元型情報221へ格納し、レコードのリモート呼出型名項目132の値から型情報群135を参照して取得した型情報を呼出先型情報222へ格納する。
【0054】
図4の例では、プロキシクラス管理部195は配備記述子130を入力とし、レコード133に対して型情報対220を生成してプロキシクラス生成部を用い、プロキシクラス174を生成して格納する。型情報対220の生成では、レコード133のローカル呼出型名項目131の値「LocalCart」から型情報群135を参照して取得したLocalCart型情報104を呼出元型情報221へ格納し、レコード133のリモート呼出型名項目132の値「RemoteCart」から型情報群135を参照して取得したRemoteCart型情報136を呼出先型情報222へ格納する。プロキシクラス生成部230へ入力する。プロキシクラス生成部230は図2と同じ動作を行い、プロキシクラス174を生成し出力する。
【0055】
プロキシクラス管理部195がプロキシクラス管理部175からの要求により格納してあるプロキシクラス174をプロキシクラス管理部175へ渡す動作では、プロキシクラス管理部195はプロキシクラス管理部175から要求された型名を入力とし、型名が示す格納してあるプロキシクラス174をプロキシクラス管理部175へ出力する。
【0056】
プロキシクラス管理部175はプロキシクラス取得部403、プロキシクラス174を含む。プロキシクラス管理部175は、呼出元の呼出インタフェースの型名310とオブジェクト識別子166を入力とする。図4の例のオブジェクト識別子166は呼出先コンポーネントの呼出受付部の所在を識別する受付部アドレス401と、呼出先コンポーネントのある実行環境190の所在を識別する実行環境アドレス402を含む。プロキシクラス取得部403は、呼出元の呼出インタフェースの型名310からプロキシクラスの型名を生成し、オブジェクト識別子166の実行環境アドレス402が識別する実行環境190にあるプロキシクラス管理部195へ生成した型名のプロキシクラス174を要求して取得する。プロキシクラス管理部175は取得したプロキシクラス174を出力する。
【0057】
図4の例では、呼出元の呼出インタフェースの型名「LocalCart」(310)とオブジェクト識別子「Ref2」(166)を入力とする。オブジェクト識別子「Ref2」(166)の実行環境アドレス402は実行環境190の所在を識別している。プロキシクラス取得部403は、型名「LocalCart」(310)からプロキシクラスの型名「LocalCartProxy」を生成しオブジェクト識別子166の実行環境アドレス402が識別する実行環境190にあるプロキシクラス管理部195へ生成した型名「LocalCartProxy」のプロキシクラス174を要求して取得する。プロキシクラス管理部175は取得したプロキシクラス174を出力する。
【0058】
図5は、名前解決手続き172とプロキシ化手続き173の動作をフローチャートで示した図である。
【0059】
(ステップ501)名前解決手続き172は、入力の論理名から、物理名管理部160を参照して対応するオブジェクト識別子を得る。
【0060】
(ステップ502)名前解決手続き172は、論理名とオブジェクト識別子をプロキシ化手続き173へ入力し、プロキシ化手続き173は、入力の論理名から配備記述子110を参照して呼出規約項目112の値を取得し、呼出元の呼出規約とする。
【0061】
(ステップ503)入力のオブジェクト識別子の型情報の継承インタフェースがローカルとリモートのいずれの規約インタフェースに一致するか調べ、呼出先の呼出規約とする。
【0062】
(ステップ504)呼出元の呼出規約と呼出先の呼出規約が同じか判定する。
【0063】
(ステップ509)同じである場合は、オブジェクト識別子を参照オブジェクトとする。同じでない場合は、ステップ505からステップ508を実行する。
【0064】
(ステップ505)プロキシ化手続き173は、論理名から配備記述子110を参照して得た型名項目113の型名とオブジェクト識別子をプロキシクラス管理部175へ渡してプロキシクラスを取得する。
【0065】
(ステップ506)プロキシクラスのインスタンスであるプロキシオブジェクトを生成する。
【0066】
(ステップ507)プロキシオブジェクトのデータにオブジェクト識別子を設定する。
【0067】
(ステップ508)プロキシオブジェクトを参照オブジェクトとする。
【0068】
(ステップ510)プロキシ化手続き173が参照オブジェクトを名前解決手続き172へ出力し、名前解決手続き172は前記参照オブジェクトを出力する。
【0069】
【発明の効果】
本発明により、同一の実行環境でローカル呼出規約を使って連携している呼出元コンポーネントと呼出先コンポーネントを、修正せずに再利用して異なる実行環境へ配備して連携できる。
【図面の簡単な説明】
【図1】本実施例の概要の構成を示した図である。
【図2】型情報と呼出規約の変換処理を行うプロキシクラスの詳細とプロキシクラス生成部を示した図である。
【図3】プロキシ管理部の1つ目の実施例である。
【図4】プロキシ管理部の2つ目の実施例である。
【図5】名前解決手続きとプロキシ化手続きの動作を示すフローチャートである。
【図6】本実施例の構成を示す図である。
【符号の説明】
100、120:コンポーネント、101、121:実行プログラム、102:論理名、110、130:配備記述子、103、135:型情報群、104、136:型情報、140、150:物理名割当部、141、151:物理名割当情報、160:物理名管理部、165、166:オブジェクト識別子、170、190:実行環境、172:名前解決手続き、173:プロキシ化手続き、174:プロキシクラス、175、195:プロキシクラス管理部、180:プロキシオブジェクト、220:型情報対、221:呼出元型情報、222:呼出先型情報、230:プロキシクラス生成部、601:計算機、602:二次記憶装置、603:主記憶装置、604:オペレーティングシステム、670:バス、680:CPU、681:マウス、682:ディスプレイ、683:キーボード、685:ネットワークインタフェース、690:ネットワーク
Claims (5)
- アプリケーションのプログラムとアプリケーションの実行に必要な情報を含むコンポーネントを実行環境へ配備して動作させる計算機システムにおける第一の実行環境へ配備された第一のコンポーネントから第二の実行環境へ配備された第二のコンポーネントへの呼出の制御方法であって、
コンポーネントの呼出または呼出受付は、呼出手順がプログラミング言語のオブジェクト呼出であり、呼出インタフェースが一定のローカル規約インタフェースを継承するローカル呼出規約、または呼出手順が分散オブジェクト呼出であり、呼出インタフェースが一定のリモート規約インタフェースを継承するリモート呼出規約のいずれかの呼出規約と呼出インタフェースに従い、
第一のコンポーネントは、第二のコンポーネントを参照する論理名と第二のコンポーネントへの呼出が従う第一の呼出規約の種別と第二のコンポーネントへの呼出が従う第一の呼出インタフェースの名前を含む第一の配備記述子と、第一の呼出インタフェースのメソッド情報を含む第一の型情報を保持し、
第二のコンポーネントは、ローカル呼出規約に従って呼出受付する第二の呼出インタフェースの名前とリモート呼出規約に従って呼出受付する第三の呼出インタフェースの名前を含む第二の配備記述子と、第二の呼出インタフェースのメソッド情報を含む第二の型情報と、第三の呼出インタフェースのメソッド情報を含む第三の型情報を保持し、
第一の呼出規約がローカル呼出規約である場合は、第一の呼出インタフェースと第二の呼出インタフェースは同じでかつ第一の型情報と第二の型情報は同じであり、第一の呼出規約がリモート呼出規約である場合は第一の呼出インタフェースと第三の呼出インタフェースは同じでかつ第一の型情報と第三の型情報は同じであり、
第二のコンポーネントは、第二の実行環境に配備される際に、第二のコンポーネントの呼出インタフェースごとにネットワーク内で一意な物理名を付与され、第二の実行環境は第二のコンポーネントの呼出インタフェースごとに第二のコンポーネントを参照するオブジェクト識別子を生成して前記物理名に対応つけて物理名管理部へ登録し、
第一のコンポーネントは、第一の実行環境に配備される際に、第二のコンポーネントを参照するように前記論理名に対して前記物理名の一つを対応つけられ、
前記論理名を入力として第一の配備記述子を参照して第一の呼出規約の種別を取得するステップと、
前記論理名に対して対応つけられた前記物理名から前記物理名管理部を参照して登録された前記オブジェクト識別子を取得し、前記オブジェクト識別子に対応する第二のコンポーネントの呼出受付が従う呼出インタフェースの型情報の継承インタフェース名を参照して前記呼出インタフェースが従う第二の呼出規約の種別を取得するステップと、
前記ステップで取得した第一の呼出規約の種別と第二の呼出規約の種別が同じか比較判定し異なる場合は呼出規約を変換するプロキシオブジェクトを生成するステップを含むことを特徴とする呼出規約変換処理の生成方法。 - 請求項1記載の呼出規約変換処理の生成方法において、第一の呼出インタフェースの第一の型情報と、前記論理名に対して対応つけられた前記物理名から、前記物理名管理部を参照して登録された前記オブジェクト識別子を取得し、前記オブジェクト識別子に対応する第二のコンポーネントの呼出受付が従う呼出インタフェースの型情報を参照して、第一の実行環境が前記プロキシオブジェクトのクラスを生成するステップを含むことを特徴とする呼出規約変換処理の生成方法。
- 請求項1記載の呼出規約変換処理の生成方法において、第二の配備記述子が含む第二の型情報と第三の型情報を参照して、第二の実行環境が前記プロキシオブジェクトのクラスを生成するステップと、第一の実行環境が前記クラスを第二の実行環境から第一の実行環境へ転送するステップを含むことを特徴とする呼出規約変換処理の生成方法。
- 請求項1から3のいずれかに記載の呼出規約変換処理の生成方法において、実行環境にJ2EE実行環境を適用することを特徴とする呼出規約変換処理の生成方法。
- 請求項1から請求項4に記載の呼出の制御方法のいずれかを有することを特徴とする呼出の制御方法の制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002313615A JP4042527B2 (ja) | 2002-10-29 | 2002-10-29 | 呼出規約変換処理の生成方法 |
US10/410,149 US7325240B2 (en) | 2002-10-29 | 2003-04-10 | Method for generating calling convention transformation process |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002313615A JP4042527B2 (ja) | 2002-10-29 | 2002-10-29 | 呼出規約変換処理の生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004151800A true JP2004151800A (ja) | 2004-05-27 |
JP4042527B2 JP4042527B2 (ja) | 2008-02-06 |
Family
ID=32105358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002313615A Expired - Fee Related JP4042527B2 (ja) | 2002-10-29 | 2002-10-29 | 呼出規約変換処理の生成方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7325240B2 (ja) |
JP (1) | JP4042527B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011060033A (ja) * | 2009-09-10 | 2011-03-24 | Ricoh Co Ltd | 統合管理装置、統合管理システム、統合管理方法、統合管理プログラム、及びそのプログラムを記録した記録媒体 |
WO2011158478A1 (ja) * | 2010-06-17 | 2011-12-22 | 日本電気株式会社 | データ処理システム及びデータ処理方法 |
JP2017228012A (ja) * | 2016-06-21 | 2017-12-28 | 株式会社リコー | 情報処理システム、情報処理装置、及び情報処理方法 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7716688B2 (en) * | 2004-05-21 | 2010-05-11 | Hewlett-Packard Development Company, L.P. | System for object discovery in heterogenous object systems |
US7774405B2 (en) * | 2005-05-16 | 2010-08-10 | Microsoft Corporation | Coordination of set enumeration information between independent agents |
US7730522B2 (en) * | 2005-05-16 | 2010-06-01 | Microsoft Corporation | Self-registering objects for an IPC mechanism |
US7434228B2 (en) * | 2005-05-16 | 2008-10-07 | Microsoft Corporation | Structuring an operating system using a service architecture |
US7434235B2 (en) * | 2005-05-16 | 2008-10-07 | Microsoft Corporation | Type server caching the proxy/stub generation |
US7454764B2 (en) * | 2005-06-29 | 2008-11-18 | International Business Machines Corporation | Method and system for on-demand programming model transformation |
US20070112878A1 (en) * | 2005-11-11 | 2007-05-17 | International Business Machines Corporation | Computer method and system for coherent source and target model transformation |
US7921409B2 (en) * | 2006-02-28 | 2011-04-05 | Microsoft Corporation | Managed add-in framework proxy generation |
US8468511B2 (en) * | 2008-12-31 | 2013-06-18 | International Business Machines Corporation | Use of name mangling techniques to encode cross procedure register assignment |
JP5569269B2 (ja) | 2010-09-06 | 2014-08-13 | ソニー株式会社 | 端末装置、情報処理システム、依頼先選択方法、及びプログラム |
US20120159515A1 (en) * | 2010-12-16 | 2012-06-21 | Microsoft Corporation | Sharing object representations |
JP5605228B2 (ja) * | 2011-01-07 | 2014-10-15 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
US9536023B2 (en) * | 2014-05-15 | 2017-01-03 | The Mathworks, Inc. | Code generation for using an element in a first model to call a portion of a second model |
US10521200B2 (en) * | 2017-01-09 | 2019-12-31 | Oracle International Corporation | Unambiguous proxying of interface methods |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452456A (en) * | 1992-12-18 | 1995-09-19 | Apple Computer, Inc. | Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment |
US6385724B1 (en) * | 1998-11-30 | 2002-05-07 | Microsoft Corporation | Automatic object caller chain with declarative impersonation and transitive trust |
-
2002
- 2002-10-29 JP JP2002313615A patent/JP4042527B2/ja not_active Expired - Fee Related
-
2003
- 2003-04-10 US US10/410,149 patent/US7325240B2/en not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011060033A (ja) * | 2009-09-10 | 2011-03-24 | Ricoh Co Ltd | 統合管理装置、統合管理システム、統合管理方法、統合管理プログラム、及びそのプログラムを記録した記録媒体 |
WO2011158478A1 (ja) * | 2010-06-17 | 2011-12-22 | 日本電気株式会社 | データ処理システム及びデータ処理方法 |
US9116855B2 (en) | 2010-06-17 | 2015-08-25 | Nec Corporation | Data processing system and data processing method |
JP5811088B2 (ja) * | 2010-06-17 | 2015-11-11 | 日本電気株式会社 | データ処理システム及びデータ処理方法 |
JP2017228012A (ja) * | 2016-06-21 | 2017-12-28 | 株式会社リコー | 情報処理システム、情報処理装置、及び情報処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US7325240B2 (en) | 2008-01-29 |
JP4042527B2 (ja) | 2008-02-06 |
US20040083483A1 (en) | 2004-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4042527B2 (ja) | 呼出規約変換処理の生成方法 | |
JP3949180B2 (ja) | 基底システムオブジェクトモデルを備えたシステム管理サービスの統合 | |
KR100322213B1 (ko) | 병렬분산처리시스템및그방법 | |
AU691031B2 (en) | System and method for providing interoperability among heterogeneous object systems | |
EP3975474B1 (en) | Methods and apparatuses for chaining service data | |
US20020069400A1 (en) | System for reusable software parts for supporting dynamic structures of parts and methods of use | |
US20050015761A1 (en) | Method and system for application installation and management using an application-based naming system including aliases | |
US8127270B1 (en) | Abstracting transformation for model driven architecture | |
US10346160B2 (en) | Melding of mediation flow service component architecture (SCA) components | |
US11271895B1 (en) | Implementing advanced networking capabilities using helm charts | |
US20050192929A1 (en) | Generation and conversion of object that provide for efficient object modification | |
JP4695903B2 (ja) | Webアプリケーションシステム、そのプログラム | |
WO2009076877A1 (zh) | 部署、管理sip servlet应用的方法及osgi服务平台 | |
US8676842B2 (en) | Creating multiple Mbeans from a factory Mbean | |
CN115225482B (zh) | 一种基于Kubernetes进行Pod容器网络配置的方法及装置 | |
CN110413352B (zh) | 应用组件的调用方法和装置 | |
US6745250B1 (en) | Finding named EJB homes via life cycle support | |
Teiniker et al. | Local components and reuse of legacy code in the CORBA component model | |
US8082553B2 (en) | Client management of java management extensions (JMX) Mbean state | |
WO2021040582A1 (en) | Methods and apparatuses for providing a function as a service platform | |
US6408299B1 (en) | Type convertor registry | |
CN117251173B (zh) | 微服务项目的配置方法、微服务项目的配置装置及介质 | |
AU718930B2 (en) | Procedure for supporting the generation of an object in a computer system | |
Brinkmann et al. | Employing WS-BPEL Design Patterns for Grid Service Orchestration using a Standard WS-BPEL Engine and a Grid Middleware | |
JP2001337935A (ja) | 分散オブジェクト環境におけるアプリケーションのラッピング方法、その通信管理装置及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050317 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060420 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070620 |
|
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: 20071023 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071105 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101122 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |