JPH04233038A - データ処理装置およびコンピュータ・プログラムの実行方法 - Google Patents
データ処理装置およびコンピュータ・プログラムの実行方法Info
- Publication number
- JPH04233038A JPH04233038A JP3138641A JP13864191A JPH04233038A JP H04233038 A JPH04233038 A JP H04233038A JP 3138641 A JP3138641 A JP 3138641A JP 13864191 A JP13864191 A JP 13864191A JP H04233038 A JPH04233038 A JP H04233038A
- Authority
- JP
- Japan
- Prior art keywords
- message
- data processing
- program
- messages
- objects
- 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
- 238000000034 method Methods 0.000 title claims description 22
- 238000012545 processing Methods 0.000 title claims description 17
- 238000004590 computer program Methods 0.000 title claims description 16
- 238000012546 transfer Methods 0.000 claims abstract description 19
- 230000004044 response Effects 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 102100034761 Cilia- and flagella-associated protein 418 Human genes 0.000 description 1
- 101100439214 Homo sapiens CFAP418 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 235000002020 sage Nutrition 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明はデータ処理装置分野に関
する。更に詳しくは、データ処理装置上で実行されるコ
ンピュータ・プログラムの異なる部分間に於けるメッセ
ージ転送方法に関する。
する。更に詳しくは、データ処理装置上で実行されるコ
ンピュータ・プログラムの異なる部分間に於けるメッセ
ージ転送方法に関する。
【0002】
【従来の技術】従来、コンピュータ・プログラム作成上
の数多くの技術が知られている。古典的技法では、コン
ピュータにより実行される順次命令リストを作成した。 つい最近では、いわゆるオブジェクト指向プログラミン
グ(OOP)言語及びプログラムが開発された。こうし
たプログラミング言語の例としてはスモールトークやC
++がある。OOPプログラム例としてはインターナシ
ョナル・ビジネスマシンズ社(IBM)が作成したオペ
レーティング・システム/2の表示マネージャ部分があ
る(表示マネージャ“Presentation Ma
nager”及びオペレーティング・システム/2“O
perating System/2”はIBMの登録
商標である)。OOPプログラムを定義する一方法とし
ては、OOPと共にデータ及び同データを操作するコー
ドをいわゆるオブジェクトに区画する。こうしたオブジ
ェクトはデータや命令、あるいは両方を構成するメッセ
ージを交換することにより互いに対話する。 こうした方法でコンピュータ・プログラムを作成するこ
とは非常に有利である。すなわち、保守や更新目的でプ
ログラムに多少の変更を加えることが容易であり(効果
が局所化される)、また一つのプログラムのオブジェク
トが他のプログラムにも再利用され、新たなプログラム
作成の労力を減少する。こうした方法によりプログラム
を区画化することは、オブジェクト間で転送されるメッ
セージに高く依存する。
の数多くの技術が知られている。古典的技法では、コン
ピュータにより実行される順次命令リストを作成した。 つい最近では、いわゆるオブジェクト指向プログラミン
グ(OOP)言語及びプログラムが開発された。こうし
たプログラミング言語の例としてはスモールトークやC
++がある。OOPプログラム例としてはインターナシ
ョナル・ビジネスマシンズ社(IBM)が作成したオペ
レーティング・システム/2の表示マネージャ部分があ
る(表示マネージャ“Presentation Ma
nager”及びオペレーティング・システム/2“O
perating System/2”はIBMの登録
商標である)。OOPプログラムを定義する一方法とし
ては、OOPと共にデータ及び同データを操作するコー
ドをいわゆるオブジェクトに区画する。こうしたオブジ
ェクトはデータや命令、あるいは両方を構成するメッセ
ージを交換することにより互いに対話する。 こうした方法でコンピュータ・プログラムを作成するこ
とは非常に有利である。すなわち、保守や更新目的でプ
ログラムに多少の変更を加えることが容易であり(効果
が局所化される)、また一つのプログラムのオブジェク
トが他のプログラムにも再利用され、新たなプログラム
作成の労力を減少する。こうした方法によりプログラム
を区画化することは、オブジェクト間で転送されるメッ
セージに高く依存する。
【0003】使用可能な言語及びプログラムの種類は2
つの範中に分類される。すなわち、C++のような静的
結合言語とスモールトークのような動的結合言語である
。 スモールトークで書かれたプログラムでは、各メッセー
ジの名前あるいは宛先ポインタはプログラム内に含まれ
ているが、同メッセージの正確なロケーションはメッセ
ージが生成された時に決定される(メッセージ宛先の実
行時間決定)。このことはコンパイル・プログラムと対
比される。コンパイル・プログラムでは各メッセージの
正確な宛先はプログラム・コンパイル時に決定され、コ
ンパイル・プログラム実行中にはこうした処理の必要性
は無い。動的結合はより柔軟性を提供するが一方で性能
上の不利を招き、コンパイル・プログラムは実行速度は
速いが柔軟性には劣る。
つの範中に分類される。すなわち、C++のような静的
結合言語とスモールトークのような動的結合言語である
。 スモールトークで書かれたプログラムでは、各メッセー
ジの名前あるいは宛先ポインタはプログラム内に含まれ
ているが、同メッセージの正確なロケーションはメッセ
ージが生成された時に決定される(メッセージ宛先の実
行時間決定)。このことはコンパイル・プログラムと対
比される。コンパイル・プログラムでは各メッセージの
正確な宛先はプログラム・コンパイル時に決定され、コ
ンパイル・プログラム実行中にはこうした処理の必要性
は無い。動的結合はより柔軟性を提供するが一方で性能
上の不利を招き、コンパイル・プログラムは実行速度は
速いが柔軟性には劣る。
【0004】別の細分化としては2種類の動的結合があ
る。一つの公知の技法ではプログラムが直接的と称され
る自身特有のメッセージ操作ルーチンを有する(こうし
たアプローチの一例としてはBrad Cox著 “O
OP an Evolutionary Approa
ch”がある)。この技法は比較的速いが、プログラム
内オブジェクトへのユーザ入力などの非標準メッセージ
の個別な送信手段が必要である。
る。一つの公知の技法ではプログラムが直接的と称され
る自身特有のメッセージ操作ルーチンを有する(こうし
たアプローチの一例としてはBrad Cox著 “O
OP an Evolutionary Approa
ch”がある)。この技法は比較的速いが、プログラム
内オブジェクトへのユーザ入力などの非標準メッセージ
の個別な送信手段が必要である。
【0005】その他にはシステム・メッセージ技法を利
用する方法がある。アプリケーションに対するシステム
・メッセージング機能を提供するオペレーティング・シ
ステム上で動作するコンピュータの場合には、自身特有
のメッセージ操作ルーチンを持つ必要の無いOOPプロ
グラムが利用可能となる。後者の環境の一例としては、
前述したオペレーティング・システム/2コンピュータ
・プログラムの表示マネージャ部分がある。システム・
メッセージ技法はシステム供給されたメッセージを華麗
にプログラムに取り込む方法を提供するが、OOPプロ
グラム自身内のメッセージ操作ルーチンを利用する場合
と比較して動作が遅くなるといった欠点を有する。
用する方法がある。アプリケーションに対するシステム
・メッセージング機能を提供するオペレーティング・シ
ステム上で動作するコンピュータの場合には、自身特有
のメッセージ操作ルーチンを持つ必要の無いOOPプロ
グラムが利用可能となる。後者の環境の一例としては、
前述したオペレーティング・システム/2コンピュータ
・プログラムの表示マネージャ部分がある。システム・
メッセージ技法はシステム供給されたメッセージを華麗
にプログラムに取り込む方法を提供するが、OOPプロ
グラム自身内のメッセージ操作ルーチンを利用する場合
と比較して動作が遅くなるといった欠点を有する。
【0006】
【発明が解決しようとする課題】本発明は動的結合OO
Pプログラム内オブジェクト間での高速かつ柔軟性に富
んだメッセージ送信技法を提供する際の問題に関する。
Pプログラム内オブジェクト間での高速かつ柔軟性に富
んだメッセージ送信技法を提供する際の問題に関する。
【0007】
【課題を解決するための手段】一側面からみた場合、本
発明はデータ及び該データ操作用コードを含む複数のオ
ブジェクトと、同オブジェクト間のメッセージ転送手段
とで構成されるコンピュータ・プログラムを実行するデ
ータ処理装置を提供する。また前記メッセージ転送手段
は、メッセージの形式に応答して複数のオブジェクト間
メッセージ転送経路の中の一つを選択するメッセージ経
路選択論理を有する。
発明はデータ及び該データ操作用コードを含む複数のオ
ブジェクトと、同オブジェクト間のメッセージ転送手段
とで構成されるコンピュータ・プログラムを実行するデ
ータ処理装置を提供する。また前記メッセージ転送手段
は、メッセージの形式に応答して複数のオブジェクト間
メッセージ転送経路の中の一つを選択するメッセージ経
路選択論理を有する。
【0008】本発明はオブジェクトにより送信されるメ
ッセージを通過させるフィルタの提供でもある。フィル
タは送られてくるメッセージの形式を検出し(例えば、
どのオブジェクトに対して該メッセージが送られたか)
、最も適切な経路を決定する。もしも、メッセージが同
一スレッドのオブジェクトに送られる場合には、ダイレ
クトコールで効率的に転送する。代わりにメッセージが
I/O装置を駆動する場合には、簡単で高速なメッセー
ジ・ハンドラでは操作できず、該メッセージはオペレー
ティング・システム・アプリケーション・プログラム・
インタフェースレベルのシステム・メッセージを利用し
て転送される。本発明は一方では、複雑な操作を要求す
る共通性を欠いたメッセージに対処するためにシステム
・メッセージによる柔軟性を維持しつつ、他方で相互ス
レッド間メッセージに対するダイレクトコールスピード
を得る方法を提供する。
ッセージを通過させるフィルタの提供でもある。フィル
タは送られてくるメッセージの形式を検出し(例えば、
どのオブジェクトに対して該メッセージが送られたか)
、最も適切な経路を決定する。もしも、メッセージが同
一スレッドのオブジェクトに送られる場合には、ダイレ
クトコールで効率的に転送する。代わりにメッセージが
I/O装置を駆動する場合には、簡単で高速なメッセー
ジ・ハンドラでは操作できず、該メッセージはオペレー
ティング・システム・アプリケーション・プログラム・
インタフェースレベルのシステム・メッセージを利用し
て転送される。本発明は一方では、複雑な操作を要求す
る共通性を欠いたメッセージに対処するためにシステム
・メッセージによる柔軟性を維持しつつ、他方で相互ス
レッド間メッセージに対するダイレクトコールスピード
を得る方法を提供する。
【0009】本発明の実施例では前述した複数経路の中
の一つが、データ処理装置に登載されたオペレーティン
グ・システム・プログラムにより提供されるシステム・
メッセージを利用する。同特徴は非同期メッセージ転送
やしばしばオペレーティング・システムに組み込まれる
異なるスレッド間のメッセージ転送を容易とする。
の一つが、データ処理装置に登載されたオペレーティン
グ・システム・プログラムにより提供されるシステム・
メッセージを利用する。同特徴は非同期メッセージ転送
やしばしばオペレーティング・システムに組み込まれる
異なるスレッド間のメッセージ転送を容易とする。
【0010】また、本発明の実施例では、前記複数経路
の一つがコンピュータ・プログラム内のダイレクトコー
ルを利用する。コンピュータ・プログラムに関する特殊
目的のメッセージ操作コードは、例えば相互スレッド間
メッセージ等の特定要求に適合するプログラム用メッセ
ージを操作するために最適化される。
の一つがコンピュータ・プログラム内のダイレクトコー
ルを利用する。コンピュータ・プログラムに関する特殊
目的のメッセージ操作コードは、例えば相互スレッド間
メッセージ等の特定要求に適合するプログラム用メッセ
ージを操作するために最適化される。
【0011】本発明の実施例では、メッセージ経路選択
論理が、メッセージがコンピュータ・プログラム外のオ
ブジェクトに対して送られているかどうかを検出する。 このようにして、コンピュータ・プログラムにより生成
されたシステム・メッセージは検出され、適切なシステ
ム・メッセージ転送技法により指向される。
論理が、メッセージがコンピュータ・プログラム外のオ
ブジェクトに対して送られているかどうかを検出する。 このようにして、コンピュータ・プログラムにより生成
されたシステム・メッセージは検出され、適切なシステ
ム・メッセージ転送技法により指向される。
【0012】更に本実施例の特徴としては、メッセージ
経路選択論理が、メッセージがコンピュータ・プログラ
ムの現状実行スレッド外へ指向されているか否かを検出
する。このようにして相互スレッド間メッセージは検出
され、適切なシステム・メッセージ転送技法により指向
される。
経路選択論理が、メッセージがコンピュータ・プログラ
ムの現状実行スレッド外へ指向されているか否かを検出
する。このようにして相互スレッド間メッセージは検出
され、適切なシステム・メッセージ転送技法により指向
される。
【0013】本実施例の別の特徴としては、メッセージ
経路選択論理がメッセージが所定のグループのメッセー
ジの一つかを検出する。こうしてシステム・メッセージ
でも相互スレッド間メッセージでもない特殊なメッセー
ジが検出され適当なシステム・メッセージ転送技法によ
り指向される。
経路選択論理がメッセージが所定のグループのメッセー
ジの一つかを検出する。こうしてシステム・メッセージ
でも相互スレッド間メッセージでもない特殊なメッセー
ジが検出され適当なシステム・メッセージ転送技法によ
り指向される。
【0014】第2の側面としては、本発明はデータ及び
該データを操作するコードを含む複数オブジェクトによ
り構成されるコンピュータ・プログラムの実行方法を提
供し、同実行方法は、オブジェクト間で転送するメッセ
ージの生成ステップと、前記生成されたメッセージの形
式を検出するステップと、前記検出されたメッセージ形
式に応答して、複数メッセージ経路の一つを介してオブ
ジェクト間のメッセージ転送を行うステップと、を具備
することを特徴とする。
該データを操作するコードを含む複数オブジェクトによ
り構成されるコンピュータ・プログラムの実行方法を提
供し、同実行方法は、オブジェクト間で転送するメッセ
ージの生成ステップと、前記生成されたメッセージの形
式を検出するステップと、前記検出されたメッセージ形
式に応答して、複数メッセージ経路の一つを介してオブ
ジェクト間のメッセージ転送を行うステップと、を具備
することを特徴とする。
【0015】
【実施例】図1は本発明が関係する形式のオブジェクト
指向プログラム(OOP)内の複数のオブジェクト2、
4、6、8、10、12を示すものである。プログラム
内の各オブジェクトは、方法的に区画されたデータある
いは該データを操作するコードにより構成される。プロ
グラムが実行されると、オブジェクト2、4、6、8、
10、12はメッセージを交換する。各メッセージは宛
先オブジェクトの名前、メッセージ処理のために宛先オ
ブジェクトに於いて呼び出される方法名、および宛先オ
ブジェクトにより処理されるデータを含んでいる。メッ
セージ・フォーマットは厳格ではなく、異なるOOPプ
ログラムが異なるフォーマットを利用したり、異なるフ
ォーマットが同一プログラム内で使用されたりする。い
ずれのオブジェクトでも他のオブジェクトと自由にメッ
セージ交換を行える。
指向プログラム(OOP)内の複数のオブジェクト2、
4、6、8、10、12を示すものである。プログラム
内の各オブジェクトは、方法的に区画されたデータある
いは該データを操作するコードにより構成される。プロ
グラムが実行されると、オブジェクト2、4、6、8、
10、12はメッセージを交換する。各メッセージは宛
先オブジェクトの名前、メッセージ処理のために宛先オ
ブジェクトに於いて呼び出される方法名、および宛先オ
ブジェクトにより処理されるデータを含んでいる。メッ
セージ・フォーマットは厳格ではなく、異なるOOPプ
ログラムが異なるフォーマットを利用したり、異なるフ
ォーマットが同一プログラム内で使用されたりする。い
ずれのオブジェクトでも他のオブジェクトと自由にメッ
セージ交換を行える。
【0016】図2は本発明の実施例を示す。オブジェク
トA14はオブジェクトB16にメッセージを送信する
。オブジェクトA14は同メッセージをメッセージ経路
選択論理/フィルタ論理18に送る。フィルタ論理18
は受け取ったメッセージの形式を検出する。もしも受け
取ったメッセージが第一の形式(例えばシステム・メッ
セージ)である場合には、該メッセージはシステム・メ
ッセージ・コールを利用して経路Aを介してオブジェク
トB16に転送される。もしもフィルタ論理18が異な
る形式のメッセージ(例えば相互スレッド間メッセージ
)を検出した場合には、該メッセージはダイレクトコー
ル等の別のメッセージ経路Bを介してオブジェクトB1
6に転送される。経路A及び経路Bの両者はオブジェク
トBに送られる前に、メッセージ・ハンドラ・ルーチン
19に集められる。
トA14はオブジェクトB16にメッセージを送信する
。オブジェクトA14は同メッセージをメッセージ経路
選択論理/フィルタ論理18に送る。フィルタ論理18
は受け取ったメッセージの形式を検出する。もしも受け
取ったメッセージが第一の形式(例えばシステム・メッ
セージ)である場合には、該メッセージはシステム・メ
ッセージ・コールを利用して経路Aを介してオブジェク
トB16に転送される。もしもフィルタ論理18が異な
る形式のメッセージ(例えば相互スレッド間メッセージ
)を検出した場合には、該メッセージはダイレクトコー
ル等の別のメッセージ経路Bを介してオブジェクトB1
6に転送される。経路A及び経路Bの両者はオブジェク
トBに送られる前に、メッセージ・ハンドラ・ルーチン
19に集められる。
【0017】図3は本発明の実施例に於ける流れ図を示
している。ステップ20及び22でメッセージを生成し
、フィルタ論理18に転送する。ステップ24ではフィ
ルタ論理18がメッセージ形式を決定する。但しこの場
合には単にシステム・メッセージか否かを判定する。 もしもメッセージがシステム・メッセージである場合に
は、ステップ26に於いてフィルタ論理18は適切なシ
ステム・メッセージを生成し、次にステップ28で同シ
ステム・メッセージをオペレーティング・システム機構
を介してメッセージ・ハンドラに転送する。もしもメッ
セージがシステム・メッセージでない場合には、ステッ
プ30に於いてメッセージ・ハンドラに対してダイレク
トコールを発令する。両者の場合にもステップ32では
メッセージ・ハンドラがメッセージを目的オブジェクト
に転送する。
している。ステップ20及び22でメッセージを生成し
、フィルタ論理18に転送する。ステップ24ではフィ
ルタ論理18がメッセージ形式を決定する。但しこの場
合には単にシステム・メッセージか否かを判定する。 もしもメッセージがシステム・メッセージである場合に
は、ステップ26に於いてフィルタ論理18は適切なシ
ステム・メッセージを生成し、次にステップ28で同シ
ステム・メッセージをオペレーティング・システム機構
を介してメッセージ・ハンドラに転送する。もしもメッ
セージがシステム・メッセージでない場合には、ステッ
プ30に於いてメッセージ・ハンドラに対してダイレク
トコールを発令する。両者の場合にもステップ32では
メッセージ・ハンドラがメッセージを目的オブジェクト
に転送する。
【0018】本発明が実施される環境の一例としては、
先に述べられたオペレーティング・システム/2コンピ
ュータ・プログラムの表示マネージャ部分がある。表示
マネージャはプログラマが命令をWinSendMes
sage(obj、msg、mp1、mp2)形態で記
述するためのシステム・メッセージを提供する。オブジ
ェクト間でメッセージを転送する一方法として、システ
ム・メッセージ転送技法により全てのメッセージを送信
する方法がある。しかしこの方法は非効率的かつ速度的
に遅い。その代わりにプログラマはSEND(obj、
msg、mp1、mp2)形態のSENDコマンド命令
を発し、全てのメッセージを転送する。“MsgHan
dler”と称される単一ルーチンが、OOPプログラ
ムにより生成される全てのメッセージの生成者として登
録される。SEND関数は次のようにして実現される。
先に述べられたオペレーティング・システム/2コンピ
ュータ・プログラムの表示マネージャ部分がある。表示
マネージャはプログラマが命令をWinSendMes
sage(obj、msg、mp1、mp2)形態で記
述するためのシステム・メッセージを提供する。オブジ
ェクト間でメッセージを転送する一方法として、システ
ム・メッセージ転送技法により全てのメッセージを送信
する方法がある。しかしこの方法は非効率的かつ速度的
に遅い。その代わりにプログラマはSEND(obj、
msg、mp1、mp2)形態のSENDコマンド命令
を発し、全てのメッセージを転送する。“MsgHan
dler”と称される単一ルーチンが、OOPプログラ
ムにより生成される全てのメッセージの生成者として登
録される。SEND関数は次のようにして実現される。
【0019】
SEND(HWND obj、MESSAGE
msg、MPARAM mp1、MPARAM mp
2) { If filterCondition(ob
j、msg) MsgHandler(ob
j、msg、mp1、mp2); else WinSendMessage(obj、m
sg、mp1、mp2); }
msg、MPARAM mp1、MPARAM mp
2) { If filterCondition(ob
j、msg) MsgHandler(ob
j、msg、mp1、mp2); else WinSendMessage(obj、m
sg、mp1、mp2); }
【0020】もしもfilterCondition
関数がTRUEを返す場合は、MsgHandlerが
システム・メッセージのオーバヘッド無しに呼ばれる。 さもない場合にはシステム・メッセージが使用される。
関数がTRUEを返す場合は、MsgHandlerが
システム・メッセージのオーバヘッド無しに呼ばれる。 さもない場合にはシステム・メッセージが使用される。
【0021】filterCondition 関数に
より定義されるフィルタ条件の定義はきわめて重要であ
る。簡単な例としては、「もしシステム・メッセージで
ない場合は」は次の要領で実現される。 #define filterCondition
(a、b) b > WM_USER ? TRUE
:FALSEこの場合には実行速度は極めて速くなる。 この実行は単一スレッド内で走行するアプリケーション
に高速ダイレクトコールを介してメッセージを送信する
ことを許可する。しかし、表示マネージャ・メッセージ
に関しては、必要に応じてシステム内の全てのウィンド
ウに送信されることを許可する。
より定義されるフィルタ条件の定義はきわめて重要であ
る。簡単な例としては、「もしシステム・メッセージで
ない場合は」は次の要領で実現される。 #define filterCondition
(a、b) b > WM_USER ? TRUE
:FALSEこの場合には実行速度は極めて速くなる。 この実行は単一スレッド内で走行するアプリケーション
に高速ダイレクトコールを介してメッセージを送信する
ことを許可する。しかし、表示マネージャ・メッセージ
に関しては、必要に応じてシステム内の全てのウィンド
ウに送信されることを許可する。
【0022】更に典型的な条件形式では、「もしシステ
ム・メッセージでなく、かつ送り手側のスレッドIDが
受けて側IDと異なる場合には」となる。
ム・メッセージでなく、かつ送り手側のスレッドIDが
受けて側IDと異なる場合には」となる。
【0023】送り手側のスレッドIDは使用可能である
。すなわち、メッセージはオブジェクトには知られてお
り、またメッセージからは同メッセージが送られるオブ
ジェクトの読み出しが可能なので、目的オブジェクトの
スレッドIDが決定できる。
。すなわち、メッセージはオブジェクトには知られてお
り、またメッセージからは同メッセージが送られるオブ
ジェクトの読み出しが可能なので、目的オブジェクトの
スレッドIDが決定できる。
【0024】別の例としては、「もしシステム・メッセ
ージでなく、かつこれらのメッセージの一つでもない場
合」がある。
ージでなく、かつこれらのメッセージの一つでもない場
合」がある。
【0025】システム設計者にはスレッド間転送メッセ
ージとして知られる、所定の登録メッセージに対してス
イッチが使用される。同例としては、ほとんどのアプリ
ケーションが一つのスレッド内で走行され、他のいくつ
かのスレッドは順次ファイル上の入出力処理に使用され
る場合に、所定の登録メッセージは単にopenFil
e、closeFile、readNext、writ
eで構成される。他の全てのアプリケーション・メッセ
ージはシステム・メッセージに関するスピード・ペナル
ティを受けない。
ージとして知られる、所定の登録メッセージに対してス
イッチが使用される。同例としては、ほとんどのアプリ
ケーションが一つのスレッド内で走行され、他のいくつ
かのスレッドは順次ファイル上の入出力処理に使用され
る場合に、所定の登録メッセージは単にopenFil
e、closeFile、readNext、writ
eで構成される。他の全てのアプリケーション・メッセ
ージはシステム・メッセージに関するスピード・ペナル
ティを受けない。
【0026】図4は本発明が実施されたデータ処理シス
テムを示す。プロセッサ34は表示及び入力端末36に
接続されている。プロセッサ34は中央処理装置38、
OOPプログラム40、制御プログラム42、プロセッ
サ34の他の要素を結合するバス44を含んでいる。中
央処理装置38は制御プログラム42内の命令の制御に
より動作し、OOPプログラム内のオブジェクト間のメ
ッセージ転送機能及びデータ選択論理を達成する。制御
プログラム42はSEND関数及びフィルタ条件を実施
する。
テムを示す。プロセッサ34は表示及び入力端末36に
接続されている。プロセッサ34は中央処理装置38、
OOPプログラム40、制御プログラム42、プロセッ
サ34の他の要素を結合するバス44を含んでいる。中
央処理装置38は制御プログラム42内の命令の制御に
より動作し、OOPプログラム内のオブジェクト間のメ
ッセージ転送機能及びデータ選択論理を達成する。制御
プログラム42はSEND関数及びフィルタ条件を実施
する。
【0027】本発明はプログラム化された汎用目的コン
ピュータに関して述べられてきたが、本発明を特殊目的
のハードウェアに対して実施することも可能である(但
しこの場合は、実際には困難を伴いまた高価となる)。 また、数多くのコンピュータ・プログラム言語が汎用目
的コンピュータのプログラムに使用されており、本発明
に従った動作を行うことが可能である。
ピュータに関して述べられてきたが、本発明を特殊目的
のハードウェアに対して実施することも可能である(但
しこの場合は、実際には困難を伴いまた高価となる)。 また、数多くのコンピュータ・プログラム言語が汎用目
的コンピュータのプログラムに使用されており、本発明
に従った動作を行うことが可能である。
【0028】
【発明の効果】この発明によれば、メッセージ形式や宛
先オブジェクトにもっとも適したメッセージ転送経路を
用いて、メッセージの転送を行うことができ、高速且つ
柔軟性に富んだメッセージ転送を実現することができる
。すなわち、例えばメッセージがI/O装置を駆動しな
ければならないような場合には柔軟性に富むシステム・
メッセージを利用して転送をし、メッセージが同一スレ
ッドのオブジェクトに送られる場合にはダイレクトコー
ルで効率的に転送することができる。
先オブジェクトにもっとも適したメッセージ転送経路を
用いて、メッセージの転送を行うことができ、高速且つ
柔軟性に富んだメッセージ転送を実現することができる
。すなわち、例えばメッセージがI/O装置を駆動しな
ければならないような場合には柔軟性に富むシステム・
メッセージを利用して転送をし、メッセージが同一スレ
ッドのオブジェクトに送られる場合にはダイレクトコー
ルで効率的に転送することができる。
【図1】OOPプログラムを表す図である。
【図2】本発明の実施例の動作説明図である。
【図3】本発明の実施例の動作フロー図である。
【図4】本発明の実施形式である汎用目的コンピュータ
を表す図である。
を表す図である。
Claims (7)
- 【請求項1】データ及び該データを操作するコードを含
む複数のオブジェクトと、メッセージ形式に応答して複
数のメッセージ転送経路の一つを選択するメッセージ経
路選択論理により前記オブジェクト間のメッセージ転送
を行う手段と、を具備することを特徴とするコンピュー
タ・プログラム実行のためのデータ処理装置。 - 【請求項2】前記複数経路の一つが、前記データ処理装
置に導入されたオペレーション・システム・プログラム
により提供されるシステム・メッセージを使用すること
を特徴とする請求項1に記載のデータ処理装置。 - 【請求項3】前記複数経路の一つが前記コンピュータ・
プログラム内のダイレクトコールを使用することを特徴
とする請求項1或いは請求項2に記載のデータ処理装置
。 - 【請求項4】前記メッセージ経路選択論理が、メッセー
ジが前記コンピュータ・プログラムの外部のオブジェク
トに指向されるか否かを検出することを特徴とする請求
項1及至請求項3のいずれかに記載のデータ処理装置。 - 【請求項5】前記メッセージ経路選択論理が、メッセー
ジが前記コンピュータ・プログラムの現在実行されてい
るスレッドの外部へ指向されているか否かを検出するこ
とを特徴とする請求項1及至請求項4のいずれかに記載
のデータ処理装置。 - 【請求項6】前記メッセージ経路選択論理が、メッセー
ジが所定のグループに於けるメッセージの一つであるか
否かを検出することを特徴とする請求項1及至請求項5
のいずれかに記載のデータ処理装置。 - 【請求項7】データ及び該データを操作するコードを含
む複数のオブジェクトにより構成されるコンピュータ・
プログラムの実行方法であって、オブジェクト間で転送
するメッセージの生成ステップと、前記生成されたメッ
セージのメッセージ形式を検出するステップと、前記メ
ッセージを前記検出されたメッセージ形式に応答して複
数のメッセージ経路の一つを介してオブジェクト間で転
送するステップと、を具備することを特徴とする実行方
法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB90307117.3 | 1990-06-28 | ||
EP90307117A EP0463252B1 (en) | 1990-06-28 | 1990-06-28 | Message handling in data processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04233038A true JPH04233038A (ja) | 1992-08-21 |
JP2730007B2 JP2730007B2 (ja) | 1998-03-25 |
Family
ID=8205472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3138641A Expired - Fee Related JP2730007B2 (ja) | 1990-06-28 | 1991-05-15 | データ処理装置およびコンピュータ・プログラムの実行方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5935219A (ja) |
EP (1) | EP0463252B1 (ja) |
JP (1) | JP2730007B2 (ja) |
DE (1) | DE69029515D1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0676693B1 (en) * | 1994-04-05 | 2000-08-23 | International Business Machines Corporation | Method and system for dynamically selecting a communication mode |
US5734903A (en) * | 1994-05-13 | 1998-03-31 | Apple Computer, Inc. | System and method for object oriented message filtering |
GB9606733D0 (en) * | 1996-03-29 | 1996-06-05 | British Telecomm | Collection of events within a distributed object system |
US6199102B1 (en) | 1997-08-26 | 2001-03-06 | Christopher Alan Cobb | Method and system for filtering electronic messages |
GB2335763A (en) * | 1998-03-27 | 1999-09-29 | Ibm | Facilitating polymorphic behaviour from static object interfaces in data processing |
US6112227A (en) | 1998-08-06 | 2000-08-29 | Heiner; Jeffrey Nelson | Filter-in method for reducing junk e-mail |
US7676540B2 (en) | 2001-10-16 | 2010-03-09 | Microsoft Corporation | Scoped referral statements |
US7536712B2 (en) * | 2001-10-16 | 2009-05-19 | Microsoft Corporation | Flexible electronic message security mechanism |
EP1303097A3 (en) * | 2001-10-16 | 2005-11-30 | Microsoft Corporation | Virtual distributed security system |
US7194553B2 (en) | 2001-10-16 | 2007-03-20 | Microsoft Corporation | Resolving virtual network names |
US20030074579A1 (en) * | 2001-10-16 | 2003-04-17 | Microsoft Corporation | Virtual distributed security system |
US7257817B2 (en) * | 2001-10-16 | 2007-08-14 | Microsoft Corporation | Virtual network with adaptive dispatcher |
US8015204B2 (en) | 2001-10-16 | 2011-09-06 | Microsoft Corporation | Scoped access control metadata element |
US7899047B2 (en) * | 2001-11-27 | 2011-03-01 | Microsoft Corporation | Virtual network with adaptive dispatcher |
US7290033B1 (en) | 2003-04-18 | 2007-10-30 | America Online, Inc. | Sorting electronic messages using attributes of the sender address |
US7590695B2 (en) | 2003-05-09 | 2009-09-15 | Aol Llc | Managing electronic messages |
JP4014160B2 (ja) * | 2003-05-30 | 2007-11-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、プログラム、及び記録媒体 |
US7882360B2 (en) | 2003-12-19 | 2011-02-01 | Aol Inc. | Community messaging lists for authorization to deliver electronic messages |
US7184750B2 (en) * | 2004-03-30 | 2007-02-27 | Nokia Corporation | Smart terminal remote lock and format |
US7650383B2 (en) | 2005-03-15 | 2010-01-19 | Aol Llc | Electronic message system with federation of trusted senders |
US7647381B2 (en) | 2005-04-04 | 2010-01-12 | Aol Llc | Federated challenge credit system |
US20070084638A1 (en) * | 2005-10-19 | 2007-04-19 | Clyde Bohnsack | Drilling fluid flow facilitation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01169533A (ja) * | 1987-12-24 | 1989-07-04 | Fujitsu Ltd | オブジェクト指向プログラミング方式 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5212778A (en) * | 1988-05-27 | 1993-05-18 | Massachusetts Institute Of Technology | Message-driven processor in a concurrent computer |
US5202981A (en) * | 1989-10-23 | 1993-04-13 | International Business Machines Corporation | Process and apparatus for manipulating a boundless data stream in an object oriented programming system |
-
1990
- 1990-06-28 EP EP90307117A patent/EP0463252B1/en not_active Expired - Lifetime
- 1990-06-28 DE DE69029515T patent/DE69029515D1/de not_active Expired - Lifetime
-
1991
- 1991-05-15 JP JP3138641A patent/JP2730007B2/ja not_active Expired - Fee Related
-
1994
- 1994-06-06 US US08/255,544 patent/US5935219A/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01169533A (ja) * | 1987-12-24 | 1989-07-04 | Fujitsu Ltd | オブジェクト指向プログラミング方式 |
Also Published As
Publication number | Publication date |
---|---|
US5935219A (en) | 1999-08-10 |
EP0463252A1 (en) | 1992-01-02 |
EP0463252B1 (en) | 1996-12-27 |
DE69029515D1 (de) | 1997-02-06 |
JP2730007B2 (ja) | 1998-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH04233038A (ja) | データ処理装置およびコンピュータ・プログラムの実行方法 | |
EP0343882B1 (en) | A computer system and method adapted for task automation and instruction delivery | |
US6324687B1 (en) | Method and apparatus to selectively control processing of a method in a java virtual machine | |
US5754855A (en) | System and method for managing control flow of computer programs executing in a computer system | |
US5448734A (en) | Selective distribution of messages using named pipes | |
US6385660B2 (en) | Site specific message dispatch in object-oriented systems | |
US5526491A (en) | System and method for calling selected service procedure remotely by utilizing conditional construct switch statement to determine the selected service procedure in common stub procedure | |
US6941561B1 (en) | Method and apparatus for remotely running objects using data streams and/or complex parameters | |
Shapiro | Systems programming in concurrent prolog | |
KR960032172A (ko) | 컴퓨터 시스템 | |
EP0939370A1 (en) | Translating computer code | |
JPH06259387A (ja) | 手続き実行プロセス及びシステム | |
JPS6334490B2 (ja) | ||
US4660142A (en) | Digital data processing system employing an object-based addressing system with a single object table | |
EP2756396B1 (en) | Simulation of static members and parameterized constructors on an interface-based api | |
IE63007B1 (en) | Data processing system | |
EP1365322A1 (en) | Improvements relating to computer programs | |
Mullender | Process management in a distributed operating system | |
Wegmann | Vitrail: A window manager for an office information system | |
WO2004057469A1 (en) | A distributed object processing system and method | |
Tevanian Jr et al. | MACH: The model for future UNIX | |
Tomokiyo et al. | Meta-level architecture in ocore | |
Frank et al. | MUSS—the user interface | |
JPS6361696B2 (ja) | ||
Kochut | AGENT: active logical objects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |