JP2730007B2 - データ処理装置およびコンピュータ・プログラムの実行方法 - Google Patents

データ処理装置およびコンピュータ・プログラムの実行方法

Info

Publication number
JP2730007B2
JP2730007B2 JP3138641A JP13864191A JP2730007B2 JP 2730007 B2 JP2730007 B2 JP 2730007B2 JP 3138641 A JP3138641 A JP 3138641A JP 13864191 A JP13864191 A JP 13864191A JP 2730007 B2 JP2730007 B2 JP 2730007B2
Authority
JP
Japan
Prior art keywords
message
program
messages
data processing
transfer
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 - Fee Related
Application number
JP3138641A
Other languages
English (en)
Other versions
JPH04233038A (ja
Inventor
キース・ホームズ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04233038A publication Critical patent/JPH04233038A/ja
Application granted granted Critical
Publication of JP2730007B2 publication Critical patent/JP2730007B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message 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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ処理装置分野に関
する。更に詳しくは、データ処理装置上で実行されるコ
ンピュータ・プログラムの異なる部分間に於けるメッセ
ージ転送方法に関する。
【0002】
【従来の技術】従来、コンピュータ・プログラム作成上
の数多くの技術が知られている。古典的技法では、コン
ピュータにより実行される順次命令リストを作成した。
つい最近では、いわゆるオブジェクト指向プログラミン
グ(OOP)言語及びプログラムが開発された。こうし
たプログラミング言語の例としてはスモールトークやC
++がある。OOPプログラム例としてはインターナショ
ナル・ビジネスマシンズ社(IBM)が作成したオペレ
ーティング・システム/2の表示マネージャ部分がある
(表示マネージャ“Presentation Manager”及びオペレ
ーティング・システム/2“Operating System/2”はI
BMの登録商標である)。OOPプログラムを定義する
一方法としては、OOPと共にデータ及び同データを操
作するコードをいわゆるオブジェクトに区画する。こう
したオブジェクトはデータや命令、あるいは両方を構成
するメッセージを交換することにより互いに対話する。
こうした方法でコンピュータ・プログラムを作成するこ
とは非常に有利である。すなわち、保守や更新目的でプ
ログラムに多少の変更を加えることが容易であり(効果
が局所化される)、また一つのプログラムのオブジェク
トが他のプログラムにも再利用され、新たなプログラム
作成の労力を減少する。こうした方法によりプログラム
を区画化することは、オブジェクト間で転送されるメッ
セージに高く依存する。
【0003】使用可能な言語及びプログラムの種類は2
つの範中に分類される。すなわち、C++のような静的結
合言語とスモールトークのような動的結合言語である。
スモールトークで書かれたプログラムでは、各メッセー
ジの名前あるいは宛先ポインタはプログラム内に含まれ
ているが、同メッセージの正確なロケーションはメッセ
ージが生成された時に決定される(メッセージ宛先の実
行時間決定)。このことはコンパイル・プログラムと対
比される。コンパイル・プログラムでは各メッセージの
正確な宛先はプログラム・コンパイル時に決定され、コ
ンパイル・プログラム実行中にはこうした処理の必要性
は無い。動的結合はより柔軟性を提供するが一方で性能
上の不利を招き、コンパイル・プログラムは実行速度は
速いが柔軟性には劣る。
【0004】動的結合をさらに細分化することができ
る。一つの公知の技法では、直接的に呼ばれる(ダイレ
クトコール)特有のメッセージ操作ルーチンをプログラ
ムが有する(この手法の一例としてはBrad Cox
著”OOP an Evolutionary Approach”がある)。この技
法は比較的速いが、プログラム内のオブジェクトへユー
ザの入力を送るなど、非標準的なメッセージを送るには
別の方法が必要となる。
【0005】その他にはシステム・メッセージ技法を利
用する方法がある。アプリケーションに対してシステム
・メッセージング機能を提供するオペレーティング・シ
ステム上で動作するコンピュータの場合には、OOPプ
ログラムがこの機能を利用すればOOPプログラム自身
が特有のメッセージ操作ルーチンを持つ必要がなくな
る。後者の環境の一例としては、前述したオペレーティ
ング・システム/2コンピュータ・プログラムの表示マ
ネージャ部分がある。システム・メッセージ技法はシス
テム供給されたメッセージを華麗にプログラムに取り込
む方法を提供するが、OOPプログラム自身内のメッセ
ージ操作ルーチンを利用する場合と比較して動作が遅く
なるといった欠点を有する。
【0006】
【発明が解決しようとする課題】本発明は動的結合OO
Pプログラム内オブジェクト間での高速かつ柔軟性に富
んだメッセージ送信技法を提供する際の問題に関する。
【0007】
【課題を解決するための手段】一側面からみた場合、本
発明はデータ及び該データ操作用コードを含む複数のオ
ブジェクトと、同オブジェクト間のメッセージ転送手段
とで構成されるコンピュータ・プログラムを実行するデ
ータ処理装置を提供する。また前記メッセージ転送手段
は、メッセージの形式に応答して複数のオブジェクト間
メッセージ転送経路の中の一つを選択するメッセージ経
路選択論理を有する。
【0008】本発明はオブジェクトにより送信されるメ
ッセージを通過させるフィルタの提供でもある。フィル
タは送られてくるメッセージの形式を検出し(例えば、
どのオブジェクトに対して該メッセージが送られた
か)、最も適切な経路を決定する。もしも、メッセージ
が同一スレッドのオブジェクトに送られる場合には、ダ
イレクトコールで効率的に転送する。代わりにメッセー
ジが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プ
ログラムが異なるフォーマットを利用したり、異なるフ
ォーマットが同一プログラム内で使用されたりする。い
ずれのオブジェクトでも他のオブジェクトと自由にメッ
セージ交換を行える。
【0016】図2は本発明の実施例を示す。オブジェク
トA14はオブジェクトB16にメッセージを送信す
る。オブジェクトA14は同メッセージをメッセージ経
路選択論理/フィルタ論理18に送る。フィルタ論理1
8は受け取ったメッセージの形式を検出する。もしも受
け取ったメッセージが第一の形式(例えばシステム・メ
ッセージ)である場合には、該メッセージはシステム・
メッセージ・コールを利用して経路Aを介してオブジェ
クトB16に転送される。もしもフィルタ論理18が異
なる形式のメッセージ(例えば相互スレッド間メッセー
ジ)を検出した場合には、該メッセージはダイレクトコ
ール等の別のメッセージ経路Bを介してオブジェクトB
16に転送される。経路A及び経路Bの両者はオブジェ
クトBに送られる前に、メッセージ・ハンドラ・ルーチ
ン19に集められる。
【0017】図3は本発明の実施例に於ける流れ図を示
している。ステップ20及び22でメッセージを生成
し、フィルタ論理18に転送する。ステップ24ではフ
ィルタ論理18がメッセージ形式を決定する。但しこの
場合には単にシステム・メッセージか否かを判定する。
もしもメッセージがシステム・メッセージである場合に
は、ステップ26に於いてフィルタ論理18は適切なシ
ステム・メッセージを生成し、次にステップ28で同シ
ステム・メッセージをオペレーティング・システム機構
を介してメッセージ・ハンドラに転送する。もしもメッ
セージがシステム・メッセージでない場合には、ステッ
プ30に於いてメッセージ・ハンドラに対してダイレク
トコールを発令する。両者の場合にもステップ32では
メッセージ・ハンドラがメッセージを目的オブジェクト
に転送する。
【0018】本発明が実施される環境の一例としては、
先に述べられたオペレーティング・システム/2コンピ
ュータ・プログラムの表示マネージャ部分がある。表示
マネージャはプログラマが命令をWinSendMessage(ob
j、msg、mp1、mp2)形態で記述するためのシステム・メ
ッセージを提供する。オブジェクト間でメッセージを転
送する一方法として、システム・メッセージ転送技法に
より全てのメッセージを送信する方法がある。しかしこ
の方法は非効率的かつ速度的に遅い。その代わりにプロ
グラマはSEND(obj、msg、mp1、mp2)形態のSENDコ
マンド命令を発し、全てのメッセージを転送する。“Ms
gHandler”と称される単一ルーチンが、OOPプログラ
ムにより生成される全てのメッセージの生成者として登
録される。SEND関数は次のようにして実現される。
【0019】 SEND(HWND obj、MESSAGE msg、MPARAM mp1、MPARAM mp2) { If filterCondition(obj、msg) MsgHandler(obj、msg、mp1、mp2); else WinSendMessage(obj、msg、mp1、mp2); }
【0020】もしもfilterCondition 関数がTRUEを
返す場合は、MsgHandlerがシステム・メッセージのオー
バヘッド無しに呼ばれる。さもない場合にはシステム・
メッセージが使用される。
【0021】filterCondition 関数により定義されるフ
ィルタ条件の定義はきわめて重要である。簡単な例とし
ては、「もしシステム・メッセージでない場合は」は次
の要領で実現される。 #define filterCondition(a、b) b > WM_USER ? TRUE :FALSE この場合には実行速度は極めて速くなる。この実行は単
一スレッド内で走行するアプリケーションに高速ダイレ
クトコールを介してメッセージを送信することを許可す
る。しかし、表示マネージャ・メッセージに関しては、
必要に応じてシステム内の全てのウィンドウに送信され
ることを許可する。
【0022】更に典型的な条件形式では、「もしシステ
ム・メッセージでなく、かつ送り手側のスレッドIDが
受けて側IDと異なる場合には」となる。
【0023】送り手側のスレッドIDは使用可能であ
る。すなわち、メッセージはオブジェクトには知られて
おり、またメッセージからは同メッセージが送られるオ
ブジェクトの読み出しが可能なので、目的オブジェクト
のスレッドIDが決定できる。
【0024】別の例としては、「もしシステム・メッセ
ージでなく、かつこれらのメッセージの一つでもない場
合」がある。
【0025】システム設計者にはスレッド間転送メッセ
ージとして知られる、所定の登録メッセージに対してス
イッチが使用される。同例としては、ほとんどのアプリ
ケーションが一つのスレッド内で走行され、他のいくつ
かのスレッドは順次ファイル上の入出力処理に使用され
る場合に、所定の登録メッセージは単にopenFile、clos
eFile、readNext、writeで構成される。他の全てのアプ
リケーション・メッセージはシステム・メッセージに関
するスピード・ペナルティを受けない。
【0026】図4は本発明が実施されたデータ処理シス
テムを示す。プロセッサ34は表示及び入力端末36に
接続されている。プロセッサ34は中央処理装置38、
OOPプログラム40、制御プログラム42、プロセッ
サ34の他の要素を結合するバス44を含んでいる。中
央処理装置38は制御プログラム42内の命令の制御に
より動作し、OOPプログラム内のオブジェクト間のメ
ッセージ転送機能及びデータ選択論理を達成する。制御
プログラム42はSEND関数及びフィルタ条件を実施
する。
【0027】本発明はプログラム化された汎用目的コン
ピュータに関して述べられてきたが、本発明を特殊目的
のハードウェアに対して実施することも可能である(但
しこの場合は、実際には困難を伴いまた高価となる)。
また、数多くのコンピュータ・プログラム言語が汎用目
的コンピュータのプログラムに使用されており、本発明
に従った動作を行うことが可能である。
【0028】
【発明の効果】この発明によれば、メッセージ形式や宛
先オブジェクトにもっとも適したメッセージ転送経路を
用いて、メッセージの転送を行うことができ、高速且つ
柔軟性に富んだメッセージ転送を実現することができ
る。すなわち、例えばメッセージがI/O装置を駆動し
なければならないような場合には柔軟性に富むシステム
・メッセージを利用して転送をし、メッセージが同一ス
レッドのオブジェクトに送られる場合にはダイレクトコ
ールで効率的に転送することができる。
【図面の簡単な説明】
【図1】OOPプログラムを表す図である。
【図2】本発明の実施例の動作説明図である。
【図3】本発明の実施例の動作フロー図である。
【図4】本発明の実施形式である汎用目的コンピュータ
を表す図である。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】データ及び該データを操作するコードを含
    む複数のオブジェクトの間で、操作の実行を要求するメ
    ッセージの交換を行うオブジェクト指向プログラムであ
    って、上記オブジェクト指向プログラムによって発生さ
    れるメッセージを取り扱うプロシージャであるメッセー
    ジ・ハンドラを備えるオブジェクト指向プログラムのた
    めのデータ処理装置において、 前記メッセージを受け取り、その内容を予め決められた
    条件と照合し、その結果に応じて前記メッセージ・ハン
    ドラを使用する転送経路、または前記データ処理装置の
    オペレーティング・システム・プログラムにより提供さ
    れるシステム・メッセージを使用する転送経路を選択す
    る経路選択論理手段を備えたことを特徴とするデータ処
    理装置。
  2. 【請求項2】 データ及び該データを操作するコードを
    含む複数のオブジェクトの間で、操作の実行を要求する
    メッセージの交換を行うオブジェクト指向プログラムで
    あって、上記オブジェクト指向プログラムによって発生
    されるメッセージを取り扱うプロシージャであるメッセ
    ージ・ハンドラを備えるオブジェクト指向プログラムの
    ためのデータ処理装置において、 前記メッセージを受け取り、その内容を予め決められた
    条件と照合し、その結果に応じて前記メッセージ・ハン
    ドラを使用する転送経路、または前記データ処理装置の
    オペレーティング・システム・プログラムにより提供さ
    れるシステム・メッセージを使用する転送経路を選択す
    るようにしたメッセージ転送方法。
JP3138641A 1990-06-28 1991-05-15 データ処理装置およびコンピュータ・プログラムの実行方法 Expired - Fee Related JP2730007B2 (ja)

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 JPH04233038A (ja) 1992-08-21
JP2730007B2 true 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)

* Cited by examiner, † Cited by third party
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

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0656581B2 (ja) * 1987-12-24 1994-07-27 富士通株式会社 オブジェクト指向プログラミング方式
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

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
JPH04233038A (ja) 1992-08-21

Similar Documents

Publication Publication Date Title
JP2730007B2 (ja) データ処理装置およびコンピュータ・プログラムの実行方法
EP0343882B1 (en) A computer system and method adapted for task automation and instruction delivery
US5754855A (en) System and method for managing control flow of computer programs executing in a computer system
EP1145120B1 (en) Generating compiled programs for interpretive runtime environments
US8132191B2 (en) Method and apparatus for adapting and hosting legacy user interface controls
US7716676B2 (en) System and method for issuing a message to a program
US5896532A (en) Objects with run-time classes and methods of making them
EP0343883A2 (en) A modular compiler for a computer system
JPH06324885A (ja) 例外条件処理方法及び装置
US7089242B1 (en) Method, system, program, and data structure for controlling access to sensitive functions
EP2756396B1 (en) Simulation of static members and parameterized constructors on an interface-based api
EP0417916B1 (en) Procedure state descriptor system for digital data processors
JP2009506467A (ja) 仮想マシンにおける並行タスクのためのイベント処理
US20040015876A1 (en) Method and structure of implementing a safe pointer
Parsons et al. The java story
KR101571908B1 (ko) Sip 및 sdp 프로토콜을 커스텀화하는 사용자 동시 실행 루틴 인터페이스
Tomokiyo et al. Meta-level architecture in ocore
JP6639238B2 (ja) プログラムおよびコンピュータ
JPS61208129A (ja) 命令先読制御方式
JPS6361696B2 (ja)
AU2002322356B2 (en) Web service development platform for asynchronous web services
JP2008305016A (ja) 情報処理装置
JPH11316692A (ja) データ処理システム
JPH0962548A (ja) トランザクション処理システム
JPS6344240A (ja) プログラム処理制御方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees