JP2000298592A - プログラムコンポーネントアクセス装置及びプログラムコンポーネントアクセス方法 - Google Patents

プログラムコンポーネントアクセス装置及びプログラムコンポーネントアクセス方法

Info

Publication number
JP2000298592A
JP2000298592A JP2000099195A JP2000099195A JP2000298592A JP 2000298592 A JP2000298592 A JP 2000298592A JP 2000099195 A JP2000099195 A JP 2000099195A JP 2000099195 A JP2000099195 A JP 2000099195A JP 2000298592 A JP2000298592 A JP 2000298592A
Authority
JP
Japan
Prior art keywords
program component
mailer
program
interface
access device
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.)
Withdrawn
Application number
JP2000099195A
Other languages
English (en)
Inventor
Tom Frans Maurits Hostyn
フランス モーリッツ ホスチン トム
Magdalena A Wasowska
アナ ワソスカ マグダレナ
Michel Feret
フェレ ミシェル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Europe BV United Kingdom Branch
Original Assignee
Sony Service Center Europe NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Service Center Europe NV filed Critical Sony Service Center Europe NV
Publication of JP2000298592A publication Critical patent/JP2000298592A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

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)

Abstract

(57)【要約】 【課題】 オブジェクトの構成要素としてそのオブジェ
クトの責務の1つを実装するプログラムコンポーネント
のレベルにおいてポリモルフィズムを実現する。 【解決手段】 第1のプログラムコンポーネント14を
第1のオブジェクト11実行時に該オブジェクト11に
動的にリンクさせ、第1のオブジェクト11を1又は複
数の関数を有する第2のプログラムコンポーネント13
へのアクセスを提供可能な関数呼出を用いて第1のプロ
グラムコンポーネント14にアクセスさせる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクトの関
数を異なる形式で実装した複数の異なる関連するプログ
ラムコンポーネントにアクセスするためのプログラムコ
ンポーネントアクセス装置及びプログラムコンポーネン
トアクセス方法に関する。
【0002】
【従来の技術】オブジェクト指向ソフトウェアにおい
て、ソフトウェアプログラムは、データ構造と振る舞い
の両方を含む複数の個別のモジュール、すなわちオブジ
ェクトから構成されている。オブジェクトは、オブジェ
クト自身のシステムリソースとともに実行される1又は
複数のスレッドを有する実行時エンティティである。同
じデータ構造及び同じ振る舞い(又はオペレーション)
を有するオブジェクトは、同じクラスに分類される。各
オブジェクトは、あるクラスに属するインスタンスであ
る。このオペレーションによりオブジェクトが応答でき
るメッセージが決定される。この間、オブジェクトの状
態は、例えば他のオブジェクト等の外部から隠されてい
る。オブジェクト上のオペレーションは、メソッドと呼
ばれる。
【0003】各オブジェクトは、例えば、オブジェクト
がどのメモリ領域にアクセスでき、オブジェクトコード
がどのスレッドを実行でき、そのオブジェクトがどの実
行時間に存在するかといったオブジェクトの属性を記述
する実行環境を有する。オブジェクト間の通信は、メッ
セージパッシングによって実現される。欧州特許番号E
P0871119A1号に、メッセージパッシングの形
態が開示されている。各オブジェクトは、メッセージパ
ッシングを実行するための送信インタフェースともよば
れる外部インタフェースを備え、この外部インタフェー
スは、メッセージの受信を整理し、これにより対応する
オブジェクトの異なるメソッドを用いることができる。
【0004】
【発明が解決しようとする課題】従来のオブジェクト指
向ソフトウェアプログラムは、ポリモルフィズム(多態
性:polymorphism)と呼ばれる概念を実現する。ポリモ
ルフィズムは、オブジェクト指向言語における最大の長
所であるとみなされている。ポリモルフィズムとは、複
数の形式を選択できる能力を意味する。これは、オブジ
ェクト指向ソフトウェアの文脈において、同じエンティ
ティが、実行時において、様々なクラスのインスタンス
とみなされることを意味する。これを限定的に解釈すれ
ば、同じオペレーションが異なるクラスにおいて異なる
振る舞いをすることがあるということになる。しかしな
がら、既存のオブジェクト指向ソフトウェアプログラム
においては、ポリモルフィズムの概念はオブジェクトレ
ベルでしか実現されていない。
【0005】そこで、本発明は、従来より下位のレベ
ル、すなわち、オブジェクトの構成要素としてそのオブ
ジェクトの責務(responsibility)の1つを実装するプ
ログラムコンポーネントのレベルにおいてポリモルフィ
ズムを実現するプログラムコンポーネントアクセス装置
及びプログラムコンポーネントアクセス方法を提供する
ことを目的とする。
【0006】
【課題を解決するための手段】上述の課題を解決するた
めに、本発明に係るプログラムコンポーネントアクセス
装置は、1又は複数の関数を有する第1のオブジェクト
と、1又は複数の関数を有する第1のプログラムコンポ
ーネントとを備え、第1のプログラムコンポーネント
は、第1のオブジェクト実行時に該オブジェクトに動的
にリンクされ、第1のオブジェクトは、1又は複数の関
数を有する第2のプログラムコンポーネントへのアクセ
スを提供可能な関数呼出を用いて第1のプログラムコン
ポーネントにアクセスする。
【0007】第1のプログラムコンポーネントは、第1
のオブジェクトの第1の実行環境に存在している。第2
のプログラムコンポーネントは、第1のプログラムコン
ポーネントが第1のオブジェクトに提供するインタフェ
ースと同様のインタフェースを提供する。第1及び第2
のプログラムコンポーネントは、自身のスレッド及び資
源を備えていない。
【0008】また、前述の課題を解決するために、本発
明に係るプログラムコンポーネントアクセス方法は、上
述のプログラムコンポーネントアクセス装置を用いてプ
ログラムコンポーネントにアクセスする。
【0009】従来のソフトウェアシステムとは異なり、
本発明は、オブジェクト自身を変換、変更することな
く、オブジェクトの同一の関数が異なるプログラムコン
ポーネント、すなわちある関数を異なる形式で実装する
異なるプログラムコードに対する呼出を隠すことができ
るシステムを提供する。具体的には、本発明は、関数呼
出に異なるパラメータを設け、同一の関数呼出により、
これらのパラメータに応じてオブジェクトの関数を異な
る形態で実装する異なるプログラムコンポーネントを呼
び出すことができる。したがって、オブジェクトは、プ
ログラムコンポーネントを明示的にメモリにロードし、
呼び出すことにより、同一の内部インタフェースを備え
る異なる複数のプログラムコンポーネントを同時に使用
することができる。
【0010】
【発明の実施の形態】以下、本発明に係るプログラムコ
ンポーネントアクセス装置及びプログラムコンポーネン
トアクセス方法について図面を参照して詳細に説明す
る。
【0011】図1は、PC又はワークステーションを概
略的に示す図である。CPU1は、読み出し専用メモリ
(ROM)2、ランダムアクセスメモリ(RAM)3、
ネットワーク4、表示装置5、ハードディスク6、及び
モデム7に接続されている。CPU1は、ハードディス
ク6、ネットワーク4、又はモデム7から供給されるデ
ータを、ROM2及びRAM3の支援を受けて処理す
る。CPU1は、モデム7を介して、例えばインターネ
ットサーバ8等の外部情報源に接続することができる。
ROM2及び/又はRAM3には、所定のソフトウェア
プログラムが格納されており、このソフトウェアプログ
ラムは、CPU1により実行される。
【0012】本発明において、オブジェクトは、より小
さく、動的にリンクが可能なソフトウェア、すなわちプ
ログラムコンポーネントに分解できる。このプログラム
コンポーネントにより、オブジェクトを変更し、数を増
やし、及び動的に関数の適応化を行うことができる。プ
ログラムコンポーネントは、独自のスレッドや資源を所
有していない。したがって、プログラムコンポーネント
自体を実行することはできないが、プログラムコンポー
ネントは、オブジェクトの実行時に、システム内の多数
のオブジェクトに動的にリンクすることができる。より
正確には、プログラムコンポーネントは、オブジェクト
の責務(responsibility)の1つを実現するオブジェク
トの構成要素である。プログラムコンポーネントが、オ
ブジェクトの実行環境内に存在する場合、そのプログラ
ムコンポーネントは、そのオブジェクト内にロードされ
ている。オブジェクト内には、プログラムコンポーネン
トをいくつでもロードすることができる。プログラムコ
ンポーネントを使用する場合、プログラムコンポーネン
トは、図1に示すRAM3に物理的に格納される。な
お、プログラムコンポーネントを、メモリにロードする
前に、例えばハードディスク6等の補助記憶装置に格納
しておいてもよく、あるいは、例えばネットワーク4等
のコンピュータネットワークからダウンロードしてもよ
い。
【0013】プログラムコンポーネントにより、内部イ
ンタフェースを提供することができる。この内部インタ
フェースは、そのプログラムコンポーネントによって実
行される関数の順序づけられたリストであり、その同じ
実行環境において、どのコードからでも呼び出すことが
できる。この内部インタフェースは、データではなく関
数のみをエクスポートする。オブジェクトの静的にリン
クしたコードと他のプログラムコンポーネントのコード
は、いずれもプログラムコンポーネントを呼び出すこと
ができる。
【0014】図2は、オブジェクト11、オブジェクト
11の実行環境12、及び実行環境12に存在するプロ
グラムコンポーネント13を示す図である。図2におい
ては、関数はオブジェクト11又はプログラムコンポー
ネント13内の長方形の枠で示されている。オブジェク
ト11は、メソッド1、メソッド2、メソッド3の3つ
の関数を有している。プログラムコンポーネント13
は、メソッド4,メソッド5の2つの関数を有してい
る。プログラムコンポーネント13のメソッドが、プロ
グラムコンポーネント13の内部インタフェース内にあ
る場合、図2では、メソッドボックスに接続しているプ
ログラムコンポーネント13の境界線上に小さな長方形
が描かれている。例えば、プログラムコンポーネント1
3のメソッド4は、プログラムコンポーネント13の内
部インタフェース内にある。これにより、オブジェクト
11は、メソッド4にアクセスすることができる。メソ
ッド5は、内部インタフェース内にはなく、プログラム
コンポーネント13の内部からしか呼び出すことができ
ない。内部インタフェースは、関数呼出を用いてプログ
ラムコンポーネントとの通信をサポートする唯一の手法
である。オブジェクトのコードは、内部インタフェース
を有していないために、プログラムコンポーネント13
によって呼び出すことはできない。例えば、プログラム
コンポーネント13のメソッド4は、オブジェクト11
のメソッド1やメソッド2を呼び出すことができない。
【0015】オブジェクト内での通信は、関数呼出によ
って行われる。この関数呼出には、以下の3つの形式が
ある。
【0016】0.オブジェクトの内部呼出。関数呼出側
オブジェクト(caller)は、そのオブジェクトのコード
の一部である関数を呼び出す。このコードは、オブジェ
クトに静的にリンクし、オブジェクトに本来備わってい
る部分である。このコードは必ず存在する。これは、従
来より一般的に行われている関数呼出である。図2で
は、関数メソッド1,メソッド2,及びメソッド3がオ
ブジェクト11に静的にリンクされている。メソッド1
は、メソッド2を呼び出すことができる。
【0017】0.暗示的ダイナミックリンク。関数呼出
側オブジェクトは、直接関数呼出を用いて、ソースコー
ド内のプログラムコンポーネントを参照する。そして、
ダイナミックリンクの手法を用いて、当該関数呼出側オ
ブジェクト内における未決定のエントリに対応するプロ
グラムコンポーネントを決定する。これは、ダイナミッ
クリンカがプログラムコンポーネントのコードを入手し
て、そのコードを実行する前に実行環境内にインストー
ルすることを意味する。図2においては、オブジェクト
11のメソッド2が、プログラムコンポーネント13の
メソッド4を呼び出す。メソッド4が呼び出される前
に、プログラムコンポーネント13はオブジェクト11
の実行環境12にロードされ、オブジェクト11に動的
にリンクされる。
【0018】0.明示的ダイナミックリンク。関数呼出
側オブジェクトは、プログラムコンポーネントを直接参
照せず、ダイナミックリンカが、必要なプログラムコン
ポーネントをロードするメカニズムを提供する。当該関
数呼出側オブジェクトは、インタフェースの記述を参照
することができ、例えば、pfuncと表される関数ポイン
タを用いることができる。関数ポインタpfuncは変数で
あり、いかなるメソッドのアドレスも、この変数に割り
当てることができる。続いて、割り当てられたメソッド
は、変数を用いて呼び出される。図2においては、関数
ポインタpfuncには、プログラムコンポーネント13の
メソッド4が割り当てられられており、オブジェクト1
1のメソッド3は、関数ポインタpfuncを用いてメソッ
ド4を呼び出すことができる。
【0019】図3は、図2に示す実行環境12に、プロ
グラムコンポーネント14を追加した状態を示す図であ
る。すなわち、プログラムコンポーネント14は、オブ
ジェクト11の実行環境12に存在している。この場
合、関数ポインタpfuncには、プログラムコンポーネン
ト13のメソッド4の代わりに、プログラムコンポーネ
ント14のメソッド6が割り当てられており、オブジェ
クト11のメソッド3は、関数ポインタpfuncを用い
て、メソッド6を呼び出す。
【0020】このように、プログラムコンポーネント1
3とプログラムコンポーネント14は、同じオブジェク
ト11において、同じ関数のバリエーションを実装する
ことができる。
【0021】図2に示されたオブジェクト11のメソッ
ド3は、例えば図1に示すシステムの表示装置5の画面
に表示された長方形のウィンドウを回転させるための関
数である。実際に回転処理を実現するのは、プログラム
コンポーネント13のメソッド4である。
【0022】例えば、長方形のウィンドウだけでなく、
三角形のウィンドウも回転させる必要が生じた場合、既
存のプログラミング技術においては、三角形の枠も回転
する関数を実装するために、オブジェクト11を、その
関数に適応したバージョンに置換する必要がある。しか
し、本発明を適用したこのシステムは、このような置換
を必要としない。メソッド3により長方形のウィンドウ
ではなく、三角形のウィンドウを回転する必要が生じた
場合、図3に示すように、実行環境12にプログラムコ
ンポーネント14をロードすればよい。この場合、メソ
ッド6が、三角形のウィンドウを回転させる関数を実装
する。
【0023】上述のように、本発明によれば、オブジェ
クトは、実行時に異なるプログラムコンポーネントを参
照することができる。詳しくは、オブジェクトは、プロ
グラムコンポーネントを明示的にロードし、関数ポイン
タpfuncを用いてプログラムコンポーネントを呼び出す
ことにより、同じ内部インタフェースを異なる形式で実
装する別個のプログラムコンポーネントを使用する。こ
のように、以上説明したダイナミックリンクの構造によ
り、プログラムコンポーネントのレベルで、実行時のポ
リモルフィズムを実現することができる。
【0024】さらに、本発明の他の実施の形態について
説明する。オブジェクトに提供されたオブジェクトの実
行環境のメッセージパッシングサービスは、メーラと呼
ばれれるオブジェクトによって実現される。各実行環境
は、それぞれ1つのメーラを有している。複数の実行環
境が1つのメーラを共有することもできる。メーラは、
実行環境内(intra-execution environment)及び実行
環境間(inter-execution environment)の両方のメッ
セージ通信を取り扱う。各メーラは、そのメーラがサポ
ートする実行環境に存在するオブジェクトのためのメッ
セージキューを取り扱う。メッセージキューは、新たな
オブジェクトがメーラに登録されるときに作成される。
このような登録されたオブジェクトは、実行環境間通信
において参照される。すなわち、この情報に基づいて、
オブジェクト自体が、システムメーラに登録される。シ
ステムメーラは、そのシステム内の全メーラのキューを
管理する責務を担うメーラである。システムメーラの責
務は、他のメーラの責務と全く同じであるが、システム
メーラは、他のメーラを「対象(オブジェクト)」とす
る。さらに、システムメーラは、実行環境間通信のため
に登録された全てのメーラと各メーラのオブジェクトと
の間のマッピングを記憶している。オブジェクトがその
オブジェクトのメソッドの1つ及び空ではないキューを
終了させると、メーラはポリシーに基づいてオブジェク
トキューから次のメッセージを選択し、そのオブジェク
トのコンテキストにポインタを保存する。既に処理され
たメッセージの消去は、そのメーラのポリシーに基づい
て実行される。他の実行環境内に存在するオブジェクト
にメッセージを送る場合、送信側のメーラの責務は、シ
ステムメーラを用いて、メッセージに、受信側のメーラ
のキュー内にキューを送ることのみである。
【0025】異なるセマンティックスを有する2つの実
行環境間のメッセージパッシング(inter-execution me
ssage passing)の場合、それぞれのオブジェクトに異
なるインタフェースを提供し、実装用の異なるメッセー
ジボックス形式を用いることができる。
【0026】図4は、2つの異なる実行環境21、22
におけるメッセージパッシングを実装する2つのメーラ
であるメーラM1及びメーラM2を示す図である。メー
ラの実装は、プログラムコンポーネントによって実現さ
れている。
【0027】メーラM1は、メーラM1のインタフェー
スを実現するプログラムコンポーネント(図示せず)を
備えている。実行環境21において実行中のオブジェク
トは、相互に、又は同じメーラM1を有する実行環境内
で実行中のオブジェクトにメッセージを送るために、こ
れらのインタフェースを用いる。オブジェクトAには、
例えば、作成「Create()」、送信「Send()」、消去「De
lete()」及びキック「Kick()」等のインタフェースが提
供されている。メーラ2もまた、送信「Send()」及び応
答「Reply()」等のインタフェースをオブジェクトBに
提供するプログラムコンポーネントを有する。
【0028】実行環境のオブジェクトにインタフェース
を提供するコンポーネントに加えて、メーラには、存在
する他の実行環境との通信を行うための特別なプログラ
ムコンポーネントが設けられている。例えば、実行環境
21内のオブジェクトAが実行環境22内のオブジェク
トBとの通信を求められる場合、メーラ1からメーラ2
へメッセージを送るためのプログラムコンポーネントM
1−M2は、メーラM1に動的にリンクされる。通常、
通信は双方向であるため、メーラM2からメーラM1へ
メッセージを送る、すなわち応答するためのプログラム
コンポーネントM2−M1もまた、動的にメーラM2に
リンクされる。
【0029】プログラムコンポーネントM1−M2のイ
ンタフェースは、メーラM1のインタフェースに適合す
る。したがって、プログラムコンポーネントM1−M2
によりメーラM1の新たな実装が実現される。この実装
は、メーラM2に特化されたものであり、メーラM1か
らメーラM2にメッセージを送るために用いられる。同
様に、プログラムコンポーネントM2−M1のインタフ
ェースは、メーラM2のインタフェースに適合する。し
たがって、プログラムコンポーネントM2−M1によ
り、メーラM2の新たな実装が実現される。
【0030】図4中矢印25で示すように、メーラM1
が実行環境21のオブジェクトAからメッセージを受け
取る際、メーラM1は、まず、送付先オブジェクト、こ
の場合はオブジェクトBが、実行環境21に存在してい
るか否かを調べる。オブジェクトBが実行環境21に存
在しない場合、メーラM1は、送付先オブジェクトBの
メーラM2にメッセージを送るために、システム環境2
3内のシステムメーラSMを用いる必要がある。メーラ
M1は、自身の内部インタフェースを介して、矢印26
で示すように、プログラムコンポーネントM1−M2の
適切なメソッドを呼び出す。そのため、プログラムコン
ポーネントM1−M2は、受信側の実行環境22のメー
ラM2のメッセージ様式に適合するメッセージを作成す
るメソッドを提供する。そして、矢印27で示すよう
に、このメッセージは、システム内の全てのメーラに対
するキューを有するシステムメーラSMの対応するキュ
ーに送られる。そして、システムメーラSMは、矢印2
8で示すように、このメッセージをメーラM2に送る。
続いて、メーラM2は、矢印29で示すように、オブジ
ェクトBにそのメッセージを送る。
【0031】例えば、メーラM1により実行環境間通信
を実現する必要がある場合、図5に示すように、プログ
ラムコンポーネントM1−M2を3つの弁別的な部分に
分解することができる。各部分は、それぞれ別個のプロ
グラムコンポーネントとして実装される。
【0032】上層部41は、送信側メーラによって定義
されたインタフェースである。
【0033】下層部43は、受信メーラインタフェース
の種類に適合するよう、送信メッセージを整理するコー
ドである。下層部43の配設はオプションであり、特に
設けなくてもよい。下層部43は、メッセージをシステ
ム内の全てのメーラに共通の形式に配列するために用い
ることができる。
【0034】中層部42は、受信メーラのプログラマに
よって、送信側メーラのインタフェースとセマンティッ
クスを、受信側メーラのインタフェースとメッセージセ
マンティックスにマッピングするために、受信側メーラ
のプログラマにより作成されたものである。
【0035】あるメーラが他の多くのメーラと通信しな
ければならないことがある。ここで説明する手法によれ
ば、それぞれのメーラに、各送信先メーラに対して、そ
れぞれ異なる中層部プログラムコンポーネント及び下層
部プログラムコンポーネントを使用させることができ
る。この区別は、純粋なオブジェクト指向の手法、すな
わちプログラムコンポーネントの選択を隠す単純なメソ
ッド呼出により実現できる。
【0036】図6に示す実行環境21内のオブジェクト
Aと、メーラM3(図示せず)が存在する実行環境内の
オブジェクトとの間で通信を行う必要がある場合、メー
ラM1からメーラM3にメッセージを送るためのプログ
ラムコンポーネントM1−M3は、メーラM1に動的に
リンクされる。プログラムコンポーネントM1−M3
は、プログラムコンポーネントM1−M2とは異なる、
メーラM3に特化された中層部及び下層部を有する。プ
ログラムコンポーネントM1−M3の関数は、メーラM
1から、メーラM1がプログラムコンポーネントM1−
M2の関数呼出に用いるものと同じ内部インタフェース
を介して呼び出すことができる。同様に、実行環境22
内のオブジェクトBと、メーラM3が存在する実行環境
内のオブジェクトとの間で通信を行う必要がある場合、
プログラムコンポーネントM2−M1と異なる中層部及
び下層部を有するプログラムコンポーネントM2−M3
は、メーラM2に動的にリンクされる。
【0037】このように、プログラムコンポーネントM
1−M2及びプログラムコンポーネントM1−M3によ
り、同じメーラM1内で関数のバリエーションを実装す
ることができる。また、プログラムコンポーネントM2
−M1及びプログラムコンポーネントM2−M3によ
り、同じメーラM2内で関数のバリエーションを実装す
ることができる。
【0038】
【発明の効果】以上のように、本発明に係るプログラム
コンポーネントアクセス装置及びプログラムコンポーネ
ントアクセス方法では、第1のプログラムコンポーネン
トを第1のオブジェクト実行時に該オブジェクトに動的
にリンクさせ、第1のオブジェクトを1又は複数の関数
を有する第2のプログラムコンポーネントへのアクセス
を提供可能な関数呼出を用いて第1のプログラムコンポ
ーネントにアクセスさせる。これにより、オブジェクト
より下位のレベル、すなわち、オブジェクトの構成要素
としてそのオブジェクトの責務の1つを実装するプログ
ラムコンポーネントのレベルにおいてポリモルフィズム
を実現することができる。すなわち、本発明によりオブ
ジェクトは、同一の関数呼出によりオブジェクトの関数
を異なる形態で実装する異なる複数のプログラムコンポ
ーネントを選択的に呼び出すことができる。
【図面の簡単な説明】
【図1】本発明に基づくプログラムコンポーネントアク
セス装置を実現するシステムを示すブロック図である。
【図2】実行環境内における、オブジェクトとプログラ
ムコンポーネント間の通信を概略的に示す図である。
【図3】実行環境内における、オブジェクトと2つのプ
ログラムコンポーネント間の通信を概略的に示す図であ
る。
【図4】2つの異なる実行環境間のメッセージパッシン
グを提供する2つのメーラを概略的に示す図である。
【図5】メーラのプログラムコンポーネントを分解した
状態を概略的に示す図である。
【図6】3つの異なる実行環境のメッセージパッシング
を提供する2つのメーラを概略的に示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トム フランス モーリッツ ホスチン ベルギー国 ブリュッセル ビー−1130 サントスティーブンス ヴォルヴェストラ ート 55 ソニー サービス センター (ヨーロッパ) エヌブイ プラットフォ ーム ソフトウエア デベロップメント センター −ブリュッセル内 (72)発明者 マグダレナ アナ ワソスカ ベルギー国 ブリュッセル ビー−1130 サントスティーブンス ヴォルヴェストラ ート 55 ソニー サービス センター (ヨーロッパ) エヌブイ プラットフォ ーム ソフトウエア デベロップメント センター −ブリュッセル内 (72)発明者 ミシェル フェレ ベルギー国 ブリュッセル ビー−1130 サントスティーブンス ヴォルヴェストラ ート 55 ソニー サービス センター (ヨーロッパ) エヌブイ プラットフォ ーム ソフトウエア デベロップメント センター −ブリュッセル内

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 プログラムコンポーネントにアクセスす
    るためのプログラムコンポーネントアクセス装置であっ
    て、 1又は複数の関数を有する第1のオブジェクトと、 1又は複数の関数を有する第1のプログラムコンポーネ
    ントとを備え、 上記第1のプログラムコンポーネントは、上記第1のオ
    ブジェクト実行時に該オブジェクトに動的にリンクさ
    れ、 上記第1のオブジェクトは、1又は複数の関数を有する
    第2のプログラムコンポーネントへのアクセスを提供可
    能な関数呼出を用いて上記第1のプログラムコンポーネ
    ントにアクセスすることを特徴とするプログラムコンポ
    ーネントアクセス装置。
  2. 【請求項2】 上記第1のプログラムコンポーネント
    は、上記第1のオブジェクトの第1の実行環境に存在し
    ていることを特徴とする請求項1記載のプログラムコン
    ポーネントアクセス装置。
  3. 【請求項3】 上記第2のプログラムコンポーネント
    は、上記第1のプログラムコンポーネントが上記第1の
    オブジェクトに提供するインタフェースと同様のインタ
    フェースを提供することを特徴とする請求項1又は2記
    載のプログラムコンポーネントアクセス装置。
  4. 【請求項4】 上記第1及び第2のプログラムコンポー
    ネントは、自身のスレッド及び資源を備えていないこと
    を特徴とする請求項1乃至3のいずれか1項に記載のプ
    ログラムコンポーネントアクセス装置。
  5. 【請求項5】 上記第1のプログラムコンポーネント
    は、関数ポインタを用いて第1のオブジェクトにリンク
    されていることを特徴とする請求項1乃至4のいずれか
    1項に記載のプログラムコンポーネントアクセス装置。
  6. 【請求項6】 上記第1のオブジェクトは、上記第1の
    実行環境内のオブジェクトにメッセージパッシングサー
    ビスを提供する第1のメーラオブジェクトであり、上記
    第1のプログラムコンポーネントは第2の実行環境内の
    第2のメーラオブジェクトへのメッセージパッシングサ
    ービスを実装し、上記第2のプログラムコンポーネント
    は第3の実行環境内の第3のメーラオブジェクトへのメ
    ッセージパッシングサービスを実装することを特徴とす
    る請求項2乃至5のいずれか1項に記載のプログラムコ
    ンポーネントアクセス装置。
  7. 【請求項7】 上記第1のプログラムコンポーネントの
    少なくとも一部は、上記第1のメーラオブジェクトのイ
    ンタフェースとセマンティクスを上記第2のメーラオブ
    ジェクトのインタフェースとセマンティクスにマッピン
    グし、上記第2のプログラムコンポーネントの少なくと
    も一部は、上記第2のメーラオブジェクトのインタフェ
    ースとセマンティクスを上記第3のメーラオブジェクト
    のインタフェースとセマンティクスにマッピングするこ
    とを特徴とする請求項6記載のプログラムコンポーネン
    トアクセス装置。
  8. 【請求項8】 ソフトウェアプログラムを処理する処理
    手段と、 一時的にデータを記憶する記憶手段とを備え、 関連するオブジェクトの所望の関数の実装を提供するプ
    ログラムコンポーネントが上記記憶手段に読み込まれ、
    上記処理手段に処理されることを特徴とする請求項請求
    項1乃至7のいずれか1項に記載のプログラムコンポー
    ネントアクセス装置。
  9. 【請求項9】 請求項1乃至8いずれか1項記載のプロ
    グラムコンポーネントアクセス装置を用いてプログラム
    コンポーネントにアクセスするプログラムコンポーネン
    トアクセス方法。
JP2000099195A 1999-03-31 2000-03-31 プログラムコンポーネントアクセス装置及びプログラムコンポーネントアクセス方法 Withdrawn JP2000298592A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP99200981A EP1041485A1 (en) 1999-03-31 1999-03-31 Object with polymorphism
EP99200981.1 1999-03-31

Publications (1)

Publication Number Publication Date
JP2000298592A true JP2000298592A (ja) 2000-10-24

Family

ID=8240039

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000099195A Withdrawn JP2000298592A (ja) 1999-03-31 2000-03-31 プログラムコンポーネントアクセス装置及びプログラムコンポーネントアクセス方法

Country Status (3)

Country Link
US (1) US6745389B1 (ja)
EP (1) EP1041485A1 (ja)
JP (1) JP2000298592A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100897153B1 (ko) * 2002-09-05 2009-05-14 주식회사 케이티 다중 플러그 방식을 이용한 컴포넌트 소프트웨어 디바이스설계 방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7263701B2 (en) * 2001-09-04 2007-08-28 Samsung Electronics Co., Ltd. Interprocess communication method and apparatus
US7861250B2 (en) * 2003-04-25 2010-12-28 Microsoft Corporation Runtime polymorphism
US8060668B2 (en) * 2004-09-08 2011-11-15 Fisher-Rosemount Systems, Inc. Low latency data packet reception and processing
EP1746499A1 (de) * 2005-07-05 2007-01-24 Siemens Aktiengesellschaft System und Verfahren zur Entwicklung einer Software oder einer Softwarekomponente sowie Verfahren zum Betrieb einer solchen Software
WO2009115799A1 (en) 2008-03-18 2009-09-24 Elliptic Laboratories As Object and movement detection
US9021392B2 (en) * 2010-07-26 2015-04-28 Sap Se Managing extension projects with repository based tagging

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2242293A (en) * 1990-01-05 1991-09-25 Apple Computer Apparatus and method for dynamic linking of computer software components
US5280610A (en) * 1990-08-14 1994-01-18 Digital Equipment Corporation Methods and apparatus for implementing data bases to provide object-oriented invocation of applications
US5421016A (en) * 1991-12-12 1995-05-30 International Business Machines Corporation System and method for dynamically invoking object methods from an application designed for static method invocation
US5396630A (en) * 1992-10-06 1995-03-07 International Business Machines Corporation Method and system for object management across process boundries in a data processing system
US5509123A (en) * 1994-03-22 1996-04-16 Cabletron Systems, Inc. Distributed autonomous object architectures for network layer routing
US5797015A (en) * 1995-04-18 1998-08-18 Pitney Bowes Inc. Method of customizing application software in inserter systems
US5748963A (en) * 1995-05-12 1998-05-05 Design Intelligence, Inc. Adaptive binding
GB2304944A (en) * 1995-09-12 1997-03-26 Ibm Support for application programs in a distributed environment
JP3817823B2 (ja) 1997-04-10 2006-09-06 ソニー株式会社 データ通信方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100897153B1 (ko) * 2002-09-05 2009-05-14 주식회사 케이티 다중 플러그 방식을 이용한 컴포넌트 소프트웨어 디바이스설계 방법

Also Published As

Publication number Publication date
EP1041485A1 (en) 2000-10-04
US6745389B1 (en) 2004-06-01

Similar Documents

Publication Publication Date Title
US6223217B1 (en) Distributed object networking service
US7444671B2 (en) Protected execution environments within a computer system
US5165018A (en) Self-configuration of nodes in a distributed message-based operating system
US8938744B2 (en) System and method for providing interoperability between different programming protocols
US8713582B2 (en) Providing policy-based operating system services in an operating system on a computing system
US5987497A (en) System and method for managing the configuration of distributed objects
EP0844558A2 (en) Object-oriented system, method and article of manufature for a client-server event driver message framework in an interprise computing framework system
EP0827075A2 (en) Object-oriented system, method and article of manufacture for a client-server state machine framework
CN104714828A (zh) 应用安装、运行方法及装置
EP0827077A1 (en) Object-oriented system, method and article of manufacture for a client-server failure reporting process
US20070198243A1 (en) Virtual machine transitioning from emulating mode to enlightened mode
JPH07121373A (ja) データ処理システム及びその動作方法
WO1995015524A1 (en) Method and apparatus for displaying hardware dependent graphics in an object-oriented operating system
WO1995017718A1 (en) Object-oriented remote procedure call networking system
US6445974B1 (en) CAD-neutral application programming interface
US7463268B2 (en) Providing 3D graphics across partitions of computing device
WO2005085995A1 (en) Method, system, and program for invoking methods between computer languages
US20040148605A1 (en) Distributed processing system and method using virtual machine
US20010039598A1 (en) Application wrapper methods and systems
CN111625293A (zh) 一种基于linux内核的终端双系统及其硬件访问管理方法
US20060112379A1 (en) Method and system for on demand java resources
US20030177484A1 (en) Firewall class loader
US20060288085A1 (en) Modular server architecture for multi-environment HTTP request processing
JP2002505553A (ja) 多様性トークン・ベース・コントロール
JP2000298592A (ja) プログラムコンポーネントアクセス装置及びプログラムコンポーネントアクセス方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070605