JPH10500507A - オブジェクト指向メッセージフィルタリングのシステム及び方法 - Google Patents

オブジェクト指向メッセージフィルタリングのシステム及び方法

Info

Publication number
JPH10500507A
JPH10500507A JP7529682A JP52968295A JPH10500507A JP H10500507 A JPH10500507 A JP H10500507A JP 7529682 A JP7529682 A JP 7529682A JP 52968295 A JP52968295 A JP 52968295A JP H10500507 A JPH10500507 A JP H10500507A
Authority
JP
Japan
Prior art keywords
message
filter
target
request
post
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
Application number
JP7529682A
Other languages
English (en)
Other versions
JP3689425B2 (ja
Inventor
イー ソールポー,トマス
ジェイ シマンスキー,スティーヴン
Original Assignee
アップル コンピュータ インコーポレイテッド
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 アップル コンピュータ インコーポレイテッド filed Critical アップル コンピュータ インコーポレイテッド
Publication of JPH10500507A publication Critical patent/JPH10500507A/ja
Application granted granted Critical
Publication of JP3689425B2 publication Critical patent/JP3689425B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/542Event management; Broadcasting; Multicasting; Notifications
    • 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/465Distributed object oriented systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 クライアントタスクと一つ或いは複数のサーバタスク間で、前処理、処理、及び後処理のためにメッセージを選択的に転送するオブジェクト指向メッセージフィルタリングのシステムは、フィルタオブジェクトメモリを有するオブジェクトデータベースと、オブジェクト管理ユニットと、メッセージ交信ユニットと、ロッキングユニットを含む。オブジェクト管理ユニットは、ポートオブジェクトと、関連する一つ或いは複数のターゲットメッセージオブジェクトを生成する。オブジェクト管理ユニットは、ターゲットメッセージオブジェクトに関連づけられた一つ或いは複数のフィルタオブジェクトを選択的に生成し、各フィルタオブジェクトに、前処理メッセージオブジェクト、後処理メッセージオブジェクト、或いは前処理メッセージオブジェクト及び後処理メッセージオブジェクトの両方を選択的に割り当てる。メッセージ交信ユニットは、クライアントタスクがターゲットメッセージオブジェクトに向けて送信したメッセージを、ターゲットメッセージオブジェクトに渡す前に、関連する一つ或いは複数の前処理メッセージオブジェクトに選択的に発送する。ターゲットメッセージオブジェクトへの配送の後、メッセージ交信ユニットは、一つ或いは複数の関連する後処理メッセージオブジェクトにメッセージを選択的に発送する。サーバタスクは、前処理メッセージオブジェクト、ターゲットメッセージオブジェクト、及び後処理メッセージオブジェクトに関連づけられたポートオブジェクトからメッセージを受信して、前処理、処理、及び後処理操作を促進する。オブジェクト指向メッセージフィルタリング方法は、ポートオブジェクトを生成し、ポートオブジェクトに関連づけられたターゲットメッセージオブジェクトを生成し、ターゲットメッセージオブジェクトに関連づけられたフィルタオブジェクトを生成し、フィルタオブジェクトに関連づけられた前処理メッセージオブジェクトを生成し、送信メッセージ要求によって開始されたメッセージ交信に反応してユニークなメッセージIDを生成し、送信メッセージ制御ブロックを生成し、送信メッセージ制御ブロックをターゲットメッセージオブジェクトに配送する前に前処理メッセージオブジェクトに選択的に発送する各段階を含む。

Description

【発明の詳細な説明】 オブジェクト指向メッセージフィルタリングのシステム及び方法 関連出願への参照 本発明は、1994年3 月30日に出願された「オブジェクト指向メッセージ受け渡 しシステム及び方法」と題される米国特許出願番号08/220,043号に関連し、これ を参照することによってその内容をここに含むものとする。 発明の背景 1.発明の分野 本発明は、一般にコンピュータ内通信のシステム及び方法に関し、詳しくはメ ッセージに基づくクライアント・サーバ通信のシステム及び方法に関する。更に 詳しくは、本発明は、オブジェクト指向メッセージフィルタリングのシステム及 び方法である。 2.背景技術の説明 コンピュータ内通信に於て、クライアントタスクは、サーバタスクが提供する サービスを必要とする。例えばクライアントタスクは、ウィンドウの生成或いは ファイル削除等のサービスを必要とする。クライアントタスクが必要とする特定 のサービスは、ウィンドウマネージャー或いはファイルシステム等の適当なサー バタスクによって実行される。クライアント及びサーバの間の通信の単位はメッ セージである。従って、サーバに特定のサービスが要求されていることを知らせ るために、クライアントタスクは適切なメッセージを送信或いは発行する。発行 されたメッセージを受け取ると、サーバータスクは要求された動作を実行する。 米国特許出願番号08/220,043 号に記載されているように、メッセージ受け渡し システム及び方法は、クライアントタスクが発行したメッセージをサーバタスク に渡す方法について規定する。 従来技術に於て、クライアントタスクは、サービスを必要とする度にメッセー ジを送らなければならない。ある特定のサービスを実行するためには、しばしば 、関連した別の付加的サービスを実行する必要がある。例えば、ディスクファイ ルにデータを書き込むサービスを実行するためには、第1の関連サービスとして データを暗号化し、第2の関連サービスとしてデータを圧縮する必要があるかも 知れない。従って、この例において必要な暗号化、圧縮、及びデータのデータフ ァイルへの書き込みを実行するためには、合計3つのメッセージを送信する必要 がある。各メッセージを送信する毎に、そのメッセージを適当な処理用のサーバ タスクに渡す必要があり、そのためのメモリの間接的なコスト(オーバーヘッド )が増加する。更に、各メッセージは適切な順番で送信されサービスを受ける必 要があり、またクライアントタスクは、関連するサービスが必要なときには、メ ッセージの送信先である全てのサーバタスクを監視し続ける必要がある。上述の 問題は、クライアントタスク及びサーバタスクをより複雑にするものである。 必要とされるのは、メモリオーバーヘッドを最小化するメッセージ転送手段で あり、またメッセージに応じて複数のサーバタスクが動作実行するときに、クラ イアントタスク及びサーバタスクを不要な複雑さから解放するメッセージ転送手 段である。 発明の概要 本発明は、オブジェクト指向メッセージフィルタリングのシステム及び方法で ある。本発明に於て、クライアントタスクが送信したメッセージは、前処理、処 理、及び後処理のためのサーバタスクに、選択的かつ自動的に転送される。本発 明のシステムは、処理ユニットと、オブジェクト指向メッセージフィルタリング ユニットが存在するメモリとを含む。オブジェクト指向メッセージフィルタリン グ ユニットは、ポートオブジェクト及びターゲットメッセージオブジェクトを生成 して管理する。各ターゲットメッセージオブジェクトに対して、オブジェクト指 向メッセージフィルタリングユニットは、関連フィルタオブジェクトを選択的に 生成して管理する。あるターゲットメッセージオブジェクトに関連するフィルタ オブジェクトの集合は、フィルタオブジェクト系列(チェーン)と呼ばれる。各 フィルタオブジェクトに対して、オブジェクト指向メッセージフィルタリングユ ニットは、関連プリプロセッサメッセージオブジェクト、関連ポストプロセッサ メッセージオブジェクト、或いは関連プリプロセッサメッセージオブジェクト及 び関連ポストプロセッサメッセージオブジェクトの両者を、選択的に生成して管 理する。各ターゲットメッセージオブジェクト、プリプロセッサメッセージオブ ジェクト、及びポストプロセッサメッセージオブジェクトは、ポートオブジェク トに関連づけられる。 クライアントタスクは、メッセージ送信要求を発行することによって、ターゲ ットメッセージオブジェクトに向けられたメッセージを送信する。送信メッセー ジ要求に記されたメッセージが、要求されるサービスを示す。送信メッセージ要 求に応答して、オブジェクト指向メッセージフィルタリングユニットは、ユニー クなメッセージID及びそのメッセージへの参照を含む送信メッセージ制御ブロ ック(MCB)を生成する。オブジェクト指向メッセージフィルタリングユニッ トは、メッセージオブジェクトに関連づけられるポートオブジェクトに送信MC Bへの参照を格納することによって、そのメッセージオブジェクトにメッセージ を渡す。送信MCBをターゲットメッセージオブジェクトに渡す前に、オブジェ クト指向メッセージフィルタリングユニットは、ターゲットメッセージオブジェ クトのフィルタオブジェクトチェーンを介して、ターゲットメッセージオブジェ クトに関連づけられたプリプロセッサメッセージオブジェクトに、送信MCBを 自動的かつ選択的に発送する。 ターゲットメッセージオブジェクトにメッセージを渡した後、オブジェクト指向 メッセージフィルタリングユニットは、フィルタオブジェクトチェーンを介して 、ターゲットメッセージオブジェクトに関連づけられたポストプロセッサメッセ ージオブジェクトに、送信MCBを自動的かつ選択的に発送する。 サーバタスクは、ポートオブジェクトへの参照を含む受信メッセージ要求を発 行することによって、そのポートオブジェクトからメッセージを受け取る。メッ セージ受信後、サーバタスクは、そのメッセージが渡された特定のメッセージオ ブジェクトに対応したサービスを実行する。オブジェクト指向メッセージフィル タリングユニットは、各送信MCBと受信メッセージリクエストとを対応付ける 。各プリプロセッサメッセージオブジェクト、ターゲットメッセージオブジェク ト、及びポストプロセッサメッセージオブジェクトは、ポートオブジェクトに関 連づけられているので、送信MCBを前処理メッセージオブジェクトに選択的に 配送することによって、ターゲットメッセージオブジェクトに関連づけられるサ ービスを実行する前に必要であるような、メッセージ前処理サービスを促進する ことが出来る。同様に、送信MCBをポストプロセッサメッセージオブジェクト に選択的に配送することによって、ターゲットメッセージオブジェクトに関連づ けられるサービスを実行した後に必要であるような、メッセージ後処理サービス を促進することが出来る。 あるサービスを実行した後、サーバタスクは、継続メッセージ要求、転送メッ セージ要求、或いは返答を発行することが出来る。本発明に於て、ターゲットメ ッセージオブジェクトに関連づけられたプリプロセッサメッセージオブジェクト にフィルタオブジェクトチェーンを介して送信MCBを転送或いは発送すること を、前処理中にメッセージを”継続する”と呼ぶ。同様に、ターゲットメッセー ジオブジェクトに関連づけられたポストプロセッサメッセージオブジェクトにフ ィルタオブジェクトチェーンを介して送信MCB を転送或いは発送することを、後処理中にメッセージを継続すると呼ぶ。オブジ ェクト指向メッセージフィルタリングユニットは、継続メッセージ要求に応答し て、前処理或いは後処理に応じた継続メッセージ操作を実行することによって、 メッセージを継続する。オブジェクト指向メッセージフィルタリングユニットは また、転送メッセージ要求に応答して、メッセージ転送操作を実行することによ って、送信MCBを新たなターゲットメッセージオブジェクトに”転送”する。 プリプロセッサメッセージオブジェクトに関連づけられたサービスをサーバタ スクが実行した後に発行した返答に応答して、オブジェクト指向メッセージフィ ルタリングユニットは、”飛ばして先に進む”操作によって、プリプロセッサメ ッセージオブジェクトに関連づけられたポストプロセッサメッセージオブジェク トに、送信MCBを発送する。ターゲットメッセージオブジェクトに関連づけら れたサービスをサーバタスクが実行した後に発行した返答に応答して、オブジェ クト指向メッセージフィルタリングユニットは、フィルタオブジェクトチェーン を介してターゲットメッセージオブジェクトに関連づけられたポストプロセッサ メッセージオブジェクトに、送信MCBを選択的に発送する。全ての後処理の後 に発行された返答に応答して、オブジェクト指向メッセージフィルタリングユニ ットは、元々メッセージを送信したクライアントタスクに、返答状態及びデータ があればデータを発送する。 本発明の方法は、ポートオブジェクトを生成し、ポートオブジェクトに関連づ けられたターゲットメッセージオブジェクトを生成し、ターゲットメッセージオ ブジェクトに関連づけられたフィルタオブジェクトを生成し、フィルタオブジェ クトに関連づけられたプリプロセッサメッセージオブジェクトを生成し、送信メ ッセージ要求によって開始されたメッセージ交信に反応してユニークなメッセー ジIDを生成し、送信メッセージ制御ブロックを生成し、送信メッ セージ制御ブロックをターゲットメッセージオブジェクトに配送する前にプリプ ロセッサメッセージオブジェクトに選択的に発送する、各段階を含む。 図面の簡単な説明 図1は、本発明によるオブジェクト指向メッセージフィルタリングシステムの 実施例を示すブロック図である。 図2は、本発明のオブジェクト指向メッセージフィルタリングユニットのブロ ック図である。 図3は、本発明によるオブジェクト指向メッセージフィルタリングモデルの好 ましい構成のブロック図である。 図4は、本発明に於けるメッセージオブジェクトのブロック図でる。 図5は、本発明に於けるポートオブジェクトのブロック図である。 図6は、本発明に於けるフィルタオブジェクトのブロック図である。 図7Aは、本発明に於ける同期送信メッセージ制御ブロックのブロック図であ る。 図7Bは、本発明に於ける非同期送信メッセージ制御ブロックのブロック図で ある。 図8Aは、本発明に於ける同期受信メッセージ制御ブロックのブロック図であ る。 図8Bは、本発明に於ける非同期受信メッセージ制御ブロックのブロック図で ある。 図9は、本発明に於ける配送メッセージ制御ブロックのブロック図である。 図10A、10B、及び10Cは、本発明によるオブジェクト指向メッセージ フィルタリングの方法の好ましい一例のフローチャートである。 図11A、11B、11C、及び11Dは、新規フィルタオブジェクトをフィ ルタオブジェクトチェーンに挿入する方法の好ましい一例のフローチャートであ る。 図12は、送信メッセージ操作を実行する方法の好ましい一例のフローチャー トである。 図13は、メッセージオブジェクトロッキング操作に同期させる方法の好まし い一例のフローチャートである 図14は、プリプロセッサメッセージオブジェクトを検査する方法の好ましい 一例のフローチャートである。 図15A、15B、及び15は、低レベル送信メッセージ操作を実行する方法 の好ましい一例のフローチャートである。 図16A、16B、及び16Cは、継続メッセージ操作を実行する方法の好ま しい一例のフローチャートである。 図17A、17B、及び17Cは、転送メッセージ操作を実行する方法の好ま しい一例のフローチャートである。 図18A、18B、及び18Cは、受信メッセージ操作を実行する方法の好ま しい一例のフローチャートである。 図19A及び19Bは、返答方法の好ましい一例のフローチャートである。 図20は、ロッキング操作を実行する方法の好ましい一例のフローチャートで ある。 図21は、ロッキング解除操作を実行する方法の好ましい一例のフローチャー トである。 実施例の詳細な説明 図1は、本発明により構築されたオブジェクト指向メッセージフィルタリング システム10の実施例のブロック図を示す。システム10は、処理ユニット12 、入力装置14、出力装置16、及び所定量のメモリ18を含み、オペレーティ ングシステム30、クラ イアントタスク32、サーバタスク34がメモリ18内に存在する。オペレーテ ィングシステム30は、米国特許出願番号08/220,043号に説明されるようなマイ クロカーネルオペレーティングシステム30であることが好ましい。オブジェク ト指向メッセージフィルタリングユニット40が、オペレーティングシステム3 0内に存在する。システム10の各要素は、共通システムバス29に接続された 入力及び出力を有する。模範的な例に於て、本発明のシステム10は、カリフォ ルニアのCupertino 所在のアップルコンピュータによって製造され、オブジェク ト指向メッセージフィルタリングユニット40を含むマイクロカーネルオペレー ティングシステム30が格納された8メガバイトのランダムアクセスメモリ(R AM)とモトローラのMC68030 或いは後世代のマイクロプロセッサを有するア ップルマッキントッシュコンピュータシステムである。 本発明に於て、クライアントタスク32は好ましくは、例えば外部記憶装置1 8からメモリ20にデータを転送するといったサービスを必要とするプログラム 命令セットである。サービスの提供元は、ここではサーバタスク34として示さ れる。各サーバタスク34もまた、プログラム命令セットであることが好ましい 。 オブジェクト指向メッセージフィルタリングユニット40によって、クライア ントタスク32から処理のためにサーバタスク34にメッセージを転送すること が容易になる。図2は、オブジェクト指向メッセージフィルタリングユニット4 0の好ましい実施例のブロック図が示される。オブジェクト指向メッセージフィ ルタリング40は、オブジェクト管理ユニット42、メッセージ交信ユニット4 4、ロッキングユニット46、及びオブジェクトデータベース48を含み、フィ ルタオブジェクトメモリ49がオブジェクトデータベース48に格納される。オ ブジェクト指向メッセージフィルタリングユニット40の各要素は、共通システ ムバス29に接続された入力及び出力を有する。 オブジェクト管理ユニット42は、メモリ20内にオブジェクト或いはデータ 構造の集合を生成して管理し、これはオブジェクト指向メッセージフィルタリン グモデル50を形成する。図3は、オブジェクト指向メッセージフィルタリング モデル50の好ましい一例のブロック図を示す。オブジェクト指向メッセージフ ィルタリングモデル50の好ましい一例は、一つ或いは複数のターゲットメッセ ージオブジェクト51を含む。ターゲットメッセージオブジェクト51の各々が 、サーバタスク34が提供する特定のサービスに対応することが好ましい。ある ターゲットメッセージオブジェクト51に関連する動作を起こさせるために、ク ライアントタスク32は、送信メッセージ要求を発行することによってターゲッ トメッセージオブジェクト51にメッセージを送る。この送信メッセージ要求は ターゲットメッセージオブジェクト51と、メッセージと、メッセージタイプを 指定する。送信メッセージ要求は、以下により詳細に説明される。あるターゲッ トメッセージオブジェクト51に関連付けられたクライアントタスク32の集合 を、クライアントチーム33と呼ぶ。 一つ或いは複数のフィルタオブジェクト56が、特定のターゲットメッセージ オブジェクト51に関連づけられる。ターゲットメッセージオブジェクト51が 関連づけられたフィルタオブジェクト56を有する場合、ターゲットメッセージ オブジェクト51はフィルタされていると言う。ターゲットメッセージオブジェ クト51に関連づけられたフィルタオブジェクト56の集合を、フィルタオブジ ェクトチェーン57と呼ぶ。各フィルタオブジェクト56は選択的メッセージ捕 獲手段であり、この選択性はメッセージタイプの集合によって実現されることが 好ましい。各フィルタオブジェクト56には、プリプロセッサメッセージオブジ ェクト52、ポストプロセッサメッセージオブジェクト53、或いはプリプロセ ッサメッセージオブジェクト52及びポストプロセッサメッセージオブジェ クト53の何れかが関連づけられる。プリプロセッサメッセージオブジェクト5 2は、ターゲットメッセージオブジェクト51に関連づけられたサービスをサー バタスクが実行する前に実行されるべき、特定のサービスである。同様に、ポス トプロセッサメッセージオブジェクト53は、ターゲットメッセージオブジェク ト51に関連づけられたサービスをサーバタスクが実行した後に実行されるべき 、特定のサービスである。好ましい実施例に於ては、プリプロセッサメッセージ オブジェクト52とポストプロセッサメッセージオブジェクト53とは、それ自 身がフィルタされていてよい。 メッセージフィルタリングモデル50の好ましい例に於て、各ターゲットメッ セージオブジェクト51、各プリプロセッサメッセージオブジェクト52、及び 各ポストプロセッサメッセージオブジェクト53は、ある一つのポートオブジェ クト54に関連づけられる。図3に示されるように、プリプロセッサメッセージ オブジェクト52とポストプロセッサメッセージオブジェクト53とは、同一の ポートオブジェクト54に関連づけられる必要はない。即ち、各プリプロセッサ メッセージオブジェクト52と、各ポストプロセッサメッセージオブジェクト5 3とは、特定のポートオブジェクト54に独立に関連づけられる。各ポートオブ ジェクト54は、それに関連づけられた各ターゲット、プリプロセッサ、及びポ ストプロセッサメッセージオブジェクト51、52、及び53に向けられたメッ セージに対する受信器として働く。以下により詳細に説明されるように、サーバ タスク34は、受信メッセージ要求を発行することによって、ポートオブジェク ト54からメッセージを受信する。メッセージを受信した後、メッセージが向け られたターゲット、プリプロセッサ、或いはポストプロセッサメッセージオブジ ェクト51、52、或いは53が示すサービスを、メッセージ自身に含まれる詳 細に従って、サーバタスク34が実行する。 オブジェクト指向メッセージフィルタリングモデル50に於て、 クライアントタスク32は、特定のターゲットメッセージオブジェクト51に対 する送信メッセージ要求を発行する。そのターゲットメッセージオブジェクト5 1にフィルタオブジェクト56が関連づけられていない場合、米国特許出願番号 08/220,043号に記載されているように、メッセージはクライアントタスク32か らサーバタスク34に転送される。そのターゲットメッセージオブジェクト51 が関連するフィルタオブジェクト56を有する場合、本発明に於ては、そのター ゲットメッセージオブジェクトのフィルタオブジェクトチェーン57に含まれる 第1のフィルタオブジェクト56が関連するプリプロセッサメッセージオブジェ クト52を有するか否か、及び送信メッセージ要求に指定されるメッセージタイ プがその第1のフィルタオブジェクト56に関連づけられたメッセージタイプの 集合に一致するかどうかを判定する。プリプロセッサメッセージオブジェクト5 2が第1のフィルタオブジェクト56に関連づけられていてかつメッセージタイ プが一致する場合、本発明に於ては、メッセージを処理のためにプリプロセッサ メッセージオブジェクト52に発送する。第1のフィルタオブジェクト56が関 連するプリプロセッサメッセージオブジェクト53を有さない場合、或いはメッ セージタイプが一致しない場合には、本発明に於ては、上述の方法でフィルタオ ブジェクトチェーン57の各フィルタオブジェクト56を順番に選択して検査す る。 メッセージがプリプロセッサメッセージオブジェクト52に再供給(rero ute)された際、サーバタスク34はプリプロセッサメッセージオブジェクト 52に関連するサービスを実行する。プリプロセッサメッセージオブジェクト5 2に関連するサービスを実行した後、本発明は:1)サーバタスク34がメッセ ージ継続要求を発し他のフィルタオブジェクト56がフィルタオブジェクトチェ ーン57に存在するする場合に上述の方法で引き続きターゲットメッセージオブ ジェクトのフィルタオブジェクトチェーン57にお ける次のフィルタオブジェクト56を選択し検査するか;或いは2)サーバタス ク34がメッセージ継続要求を発し他のフィルタオブジェクト56がフィルタオ ブジェクトチェーン57に存在しない場合に処理を行なうためにそのメッセージ をターゲットメッセージオブジェクト51に供給(route)し;或いは3) サーバタスク34が新たなターゲットメッセージ51を明示した場合にメッセー ジフォワード要求を発し処理するためにそのメッセージを新たなターゲットメッ セージオブジェクト51にリルートするか;或いは4)サービスタスク34が回 答を発する場合ポストプロセッシングするためにそのメッセージを対応するポス トプロセッサメッセージオブジェクト53にリルートする。 そのメッセージがターゲットメッセージオブジェクト51で受け取られた際、 サーバタスク34はターゲットメッセージオブジェクト51に関連するサービス を実行する。サーバタスクのターゲットメッセージオブジェクト51に関連する サービスの実行に引き続き、本発明は、フィルタオブジェクトチェーン57の最 後のフィルタオブジェクト56が関連するポストプロセッサメッセージオブジェ クト53を有するかどうか及び送信(send)メッセージ要求に明示されたメ ッセージタイプが最後のフィルタオブジェクト56に関連するメッセージタイプ の中に含まれるかどうかを決定する。ポストプロセッサメッセージオブジェクト 53が最後のフィルタオブジェクト56に関連しメッセージタイプが一致(ma tch)する場合、本発明はポストプロセッシングするためにそのメッセージを ポストプロセッサメッセージオブジェクト53にリルートする。ポストプロセッ サメッセージオブジェクト53が存在しないか、或いはメッセージタイプがマッ チしない場合、本発明は上述の方法でフィルタオブジェクトチェーン57におけ る前のフィルタオブジェクトを引き続き選択し検査する。 そのメッセージがポストプロセッサメッセージオブジェクト53 にリルートされた際にサーバタスク34はプリプロセッサメッセージオブジェク ト52に対するものと類似する方法でポストプロセッサメッセージ53に関連す るサービスを実行する。ポストプロセッサメッセージオブジェクト53に関連す るサービスを実行した後、本発明はポストプロセッサオブジェクトメッセージ5 3の存在によってそしてマッチするメッセージタイプによって上述の方法で引き 続きフィルタオブジェクトチェーン57における各残った前のフィルタオブジェ クト56を選択し検査する。 当業者は、プリプロセッサメッセージオブジェクト52が検査を受けている際 にフィルタオブジェクトチェーン57が最後のフィルタオブジェクト56に向か う「前」方向にトラバース(traverse)されること及びポストプロセッ サメッセージオブジェクト53が検査されている際にフィルタオブジェクトチェ ーン57が最初のフィルタオブジェクト56に向かう「後」方向にトラバースさ れることを認識している。 メッセージがサービスタスクのフォワードメッセージ要求の発行の結果新たな ターゲットオブジェクト51にリルートされた際、本発明は望ましくはその新た なターゲットメッセージオブジェクトのフィルタオブジェクトチェーン57の各 フィルタオブジェクト56を、最初はプリプロセッシングを考慮して、そして次 にポストプロセッシングを考慮して、元のターゲットメッセージオブジェクト5 1に関して上述した方法で検査することが望ましい。ポストプロセッシングを考 慮して新たなターゲットメッセージオブジェクトのフィルタオブジェクトチェー ン57の各フィルタオブジェクト56を検査した後、本発明はポストプロセッシ ングを考慮して元のターゲットメッセージオブジェクトのフィルタオブジェクト チェーン57の各フィルタオブジェクト56を検査する。 元のターゲットメッセージオブジェクトのフィルタオブジェクトチェーン57 の全てのフィルタオブジェクトがポストプロセッシン グを考慮して検査された後、本発明は最初にそのメッセージを送ったクライアン トタスク32に回答を発する。ここに、全てのフィルタオブジェクト56がポス トプロセッシングを考慮して検査された後に発せられたこの回答は最後の回答と 称される。この最後の回答はクライアントタスク32に状態情報及びおそらくデ ータを供給する。オブジェクト指向メッセージフィルタリングモデル50を述べ る他のデータはアペンディックスAにて提供される。クライアントタスク32が 与えられたメッセージを送ることは、そのメッセージの一以上のプリプロセッサ メッセージオブジェクト52、ターゲットメッセージオブジェクト51及びポス トプロセッサメッセージオブジェクト53への転送によって引き継がれ、最後の 回答のそのメッセージに対する発行によって引き継がれ、ここにメッセージトラ ンザクションと称される。メッセージトランザクションの間に実行される動作を 下により詳細に述べる。 望ましい実施例ではターゲットメッセージオブジェクト51、プリプロセッサ メッセージオブジェクト52及びホストプロセッサメッセージオブジェクト53 は、ここにメッセージオブジェクト58と称される同一の構造を用いて実現され る。当業者は、代わりの実施例として、ターゲットメッセージオブジェクト51 、プリプロセッサメッセージオブジェクト52及びポストプロセッサメッセージ オブジェクト53が各々自己の別個の構造を有し得たことを認識している。図4 を参照するに、メッセージオブジェクト58の望ましい実施例のブロック図が示 されている。各メッセージオブジェクト58はオブジェクトデータベース48に 記憶されることが望ましい。オブジェクト管理ユニット52はサーバタスクのメ ッセージオブジェクト作成要求の発行に応じてメッセージオブジェクト58を作 成しユニークメッセージオブジェクトアイデンティフィケーション(ID)を発 生する。メッセージオブジェクト作成要求は、メッセージオブジェクト58の最 初の状態を明示した参照定数;メッ セージオブジェクト58が関連するはずの与えられたポートオブジェクトの参照 ;及びメッセージオブジェクト58が関連するはずの一組のクライアントタスク 32を明示したクライアントチームIDを含むことが望ましい。更に、メッセー ジオブジェクト58がフィルタリングされるはずである場合、メッセージオブジ ェクト作成要求はフィルタオブジェクトチェーン57の最初のフィルタオブジェ クト56の参照を明示することが望ましい。メッセージオブジェクト58がプリ プロセッサメッセージオブジェクト52として又はポストプロセッサメッセージ オブジェクト53として使用されるはずである場合、メッセージオブジェクト作 成要求は又、そのプリプロセッサ又はポストプロセッサメッセージオブジェクト 52、53が関連するフィルタオブジェクト56を識別するユニークフィルタオ ブジェクトIDを明示する。 各メッセージオブジェクト58内で、第1のデータフィールドにはメッセージ オブジェクト58を唯一識別するオブジェクト管理ユニットによって発生された メッセージオブジェクトIDが記憶され;第2のデータフィールドにはサーバタ スク34によって供給された参照定数が記憶され、尚参照定数はメッセージオブ ジェクト58の最初の状態に対応し;第3のデータフィールドはメッセージオブ ジェクト作成要求に示された与えられたポートオブジェクト54に参照を付け; 第4のデータフィールドはメッセージオブジェクト作成要求に含まれたクライア ントチームID33を明示し;第5のデータフィールドは与えられたポートオブ ジェクト54に関連する次のメッセージオブジェクト58に参照を付ける。オブ ジェクト管理ユニット42は次のメッセージオブジェクト58が作成されるまで 値を第5のデータフィールドに与えない。メッセージオブジェクト作成要求がメ ッセージオブジェクト58に関連するフィルタオブジェクトチェーン57の第1 のフィルタオブジェクト56の参照を明示する場合、第6のデータフィールドに はこの明示されたフィル タオブジェクト56の参照が記憶される。メッセージオブジェクト作成要求がフ ィルタオブジェクトIDを明示した場合、第7のデータフィールドにはその明示 された、メッセージオブジェクト58が関連するフィルタオブジェクト56に対 応するフィルタオブジェクトIDが記憶される。望ましい実施例では、メッセー ジオブジェクト58における第6及び第7のデータフィールドが最初にゼロの値 に設定される。メッセージオブジェクト58における第6のデータフィールドは フィルタオブジェクトインスタレーション(installation)及びリ ムーバル(removal)の際に初期化され更新される。フィルタオブジェク トインスタレーション及びリムーバルについては下に詳述する。メッセージオブ ジェクト58がターゲットメッセージオブジェクト51である場合、第6のデー タフィールドには関連するフィルタチェーン57へのポインタが記憶される。そ のターゲットメッセージオブジェクト51が最初に作成される際、フィルタオブ ジェクト56が未だターゲットメッセージオブジェクト51上にインストールさ れていないため第6のデータフィールドにはゼロの値が与えられる。 メッセージオブジェクト58の第7のデータフィールドに記憶されたフィルタ オブジェクトIDはプリプロセッサ及びポストプロセッサメッセージオブジェク ト52、53によってのみ使用される。第7のデータフィールドはフィルタオブ ジェクトインスタレーションの間にメッセージオブジェクト58がプリプロセッ サメッセージオブジェクト52として或いはポストプロセッサメッセージオブジ ェクト53として指定される際に初期化される。 図5を参照するに、ポートオブジェクト54の望ましい実施例のブロック図が 示されている。サーバタスク34からのポートオブジェクト作成要求に応じてオ ブジェクト管理ユニット42はポートオブジェクト54を作成しユニークポート オブジェクトIDを発生する。ポートオブジェクト54において、第1のデータ フィールド は次のポートオブジェクト及び前のポートオブジェクトを明示する。オブジェク ト管理ユニット42はそれによってそれら各々の第1のデータフィールドを介し てポートオブジェクトを共にリンクする。ポートオブジェクト54の第2のデー タフィールドはポートオブジェクト54に関連するメッセージオブジェクト52 のリストを与える。オブジェクト管理ユニット42が新たなメッセージオブジェ クト58を作成する際、オブジェクト管理ユニット42は新たに作成されたメッ セージオブジェクトが関連するポートオブジェクト54の第2のデータフィール ドのリストに対応する新たなメッセージオブジェクトIDを加える。ポートオブ ジェクト54の第3のデータフィールドはロック要求に応じて「ロックされた」 各関連するメッセージオブジェクト58のリストを与える。与えられたメッセー ジオブジェクト58がロックされるとロックを解く動作が実行されるまでは与え られたメッセージオブジェクト58へ宛てられたどんなメッセージもサーバタス ク34によって受け取られるようにならない。メッセージオブジェクトのロック を行う及びロックを解く動作はロッキングユニット46によって実行されるもの であって、下に詳述する。 ポートオブジェクト54において、第4のデータフィールドにはポートオブジ ェクト54に関連するメッセージオブジェクト58に宛てられたものであるがサ ーバタスク34によって未だ受け取られていないメッセージを明示するペンディ ングセンドメッセージリストを記憶させるのに使用される。ポートオブジェクト 54の第5のデータフィールドはサーバタスク34によってポートオブジェクト 54に発せられてはいるが未だポートオブジェクト54に関連するメッセージオ ブジェクト58に宛てられた対応するメッセージにマッチされてはいないレシー ブメッセージ要求を明示するペンディングレシーブメッセージリストを記憶させ るのに使用される。ポートオブジェクト54の第6のデータフィールドはサーバ タスク34 は受け取っているがそれに対する最後の回答が未だ発せられていない各メッセー ジを明示するペンディング回答メッセージリストを記憶させるのに使用される。 オブジェクト管理ユニット42がポートオブジェクト54を作成する際、第4、 第5、及び第6のデータフィールドは空である。下に述べるごとく、第4、第5 、及び第6のデータフィールドに記憶されたリストはメッセージトランザクショ ンユニット44によって維持される。 ポートオブジェクト54の第7のデータフィールドはアクセプタンス関数及び アクセプタンス関数に関連する一組のメッセージタイプをオプション的に明示す る。アクセプタンス関数については米国特許出願第08/220,043号に詳 述されている。第7のデータフィールドはオブジェクト管理ユニット42が最初 にポートオブジェクトを作成する際に空であることが望ましい。オブジェクト管 理ユニット42は個々のアクセプタンス関数及び一組のメッセージタイプを識別 するサーバタスク登録要求に応じてアクセプタンス関数及び一組のメッセージタ イプの参照を記憶又は登録する。 望ましい実施例において、クライアントタスク32は同期的に又は非同期的に メッセージを送り得る。同様な方法にてサーバタスクはレシーブメッセージ要求 を同期的又は非同期的に発することが出来る。同期的及び非同期的動作について は下により詳細に述べる。ポートオブジェクト54の第8のデータフィールドは 非同期的に送られたメッセージのために使用することの出来る記憶容量を明示し 、ポートオブジェクト54の第9のデータフィールドは非同期的メッセージレシ ーブ要求のために使用することの出来る記憶容量を明示する。 ポートオブジェクト54の第10のデータフィールドはオブジェクト管理ユニ ット42によって発生されたユニークポートオブジェクトIDを記憶させるため に使用される。最後にポートオブジェクト54の第11のデータフィールドはポ ートオブジェクトの作成の 時からポートオブジェクト54に関連するメッセージオブジェクト52に対して 送られたメッセージの合計数等の統計情報を記憶させるために使用される。望ま しい実施例では各メッセージオブジェクト58は個々のポートオブジェクト54 に関連する。それ故ポートオブジェクト54は望ましい実施例では対応するメッ セージオブジェクト58が作成される前に作成されなければならない。 オブジェクト管理ユニット42は新たなフィルタオブジェクト56を作成し、 その新たなフィルタオブジェクト56に対応するユニークフィルタオブジェクト IDを発生し、サーバタスク34からのインスタレーション要求に応じてその新 たなフィルタオブジェクト56をフィルタオブジェクトチェーン57にインスト ール又は挿入する。望ましい実施例ではインスタレーション要求は新たなフィル タオブジェクト56に関連するサービスのタイプによって新たなフィルタオブジ ェクト56を識別するフィルタオブジェクト名;それによって新たなフィルタオ ブジェクト56に関連するプリプロセロセッサーメッセージオブジェクト52又 はポストプロセッサメッセージオブジェクト53が動作を実行するメッセージの 各タイプを明示するメッセージタイプリスト;どこで新たなフィルタオブジェク ト56がフィルタオブジェクトチェーン57に挿入又はインストールされるのか を示すプレースメントオーダ(placement order);プリプロセ ッサメッセージオブジェクト52が新たなフィルタオブジェクト56に関連する 場合プリプロセッサメッセージオブジェクトID;ポストプロセッサメッセージ オブジェクト52が新たなフィルタオブジェクト56に関連する場合ポストプロ セッサメッセージオブジェクトID;新たなフィルタオブジェクト56が関連す るターゲットメッセージオブジェクト51を識別するターゲットメッセージオブ ジェクトID;及びインスタレーションオプションのオプションの組を明示する 。 インスタレーション要求に応じてオブジェクト管理ユニット42 は新たなフィルタオブジェクト56を作成し対応するユニークフィルタオブジェ クトIDを発生する。図6を参照するに、フィルタオブジェクト56の望ましい 実施例のブロック図が示されている。各フィルタオブジェクト56は、フィルタ オブジェクトIDを記憶させる第1のデータフィールド;フィルタオブジェクト 56がフィルタオブジェクトチェーン57にインストールされる際に次の及び前 のフィルタオブジェクト56の参照が記憶される第2のデータフィールド;フィ ルタオブジェクト名を記憶する第3のデータフィールド;メッセージタイプリス トを記憶する第4のデータフィールド;プレースメントオーダを記憶する第5の データフィールド;フィルタオブジェクト56が関連するプリプロセッサメッセ ージオブジェクト52を有する場合にプリプロセッサメッセージオブジェクトI Dを記憶する第6のデータフィールド;フィルタオブジェクト56が関連するポ ストプロセッサメッセージオブジェクト53を有する場合にポストプロセッサメ ッセージオブジェクトIDを記憶する第7のデータフィールド;ターゲットメッ セージオブジェクトIDを記憶する第8のデータフィールド;及びインスタレー ションオプションのオプション的に明示された組を記憶する第9のデータフィー ルドを含むデータ構造である。各フィルタオブジェクト56はオブジェクトデー タベース内のフィルタオブジェクトメモリ49に記憶される。 新たなフィルタオブジェクト56を作成し対応するフィルタオブジェクトID を発生した後、オブジェクト管理ユニット46は明示されたプレースメントオー ダ及びインスタレーションオプションによってフィルタオブジェクト56を与え られたフィルタオブジェクトチェーン57にインストールする。望ましい実施例 では、各フィルタオブジェクトのプレースメントオーダは第1のフィルタオブジ ェクト名及び第2のフィルタオブジェクト名を明示することが望ましい。フィル タオブジェクト56がフィルタオブジェクトチェー ンにインストールされる際、第1のフィルタオブジェクト名はそのフィルタオブ ジェクト56が第1のフィルタオブジェクト名を有するフィルタオブジェクトチ ェーン57のフィルタオブジェクト56に先んじてインストールされるべきであ るということを示し;第2のフィルタオブジェクト名はそのフィルタオブジェク ト56が第2のフィルタオブジェクト名を有するフィルタオブジェクトチェーン 57のフィルタオブジェクト56に引き続いてインストールされるべきであるこ とを示す。このようにして第1のフィルタオブジェクト名はインスタレーション のための「前方規則(before rule)」を与え、第2のフィルタオブ ジェクト名はインスタレーションのための「後方規則(after rule) 」を与える。インスタレーションオプションが、そのフィルタオブジェクト56 が第1のフィルタオブジェクト名を有するフィルタオブジェクトチェーン57の フィルタオブジェクト56の直ぐ前にインストールされるべきであるかどうかを 示す「直ぐ前(right−before)」オプションを明示することが望ま しい。インスタレーションオプションが又、そのフィルタオブジェクト56が第 2のフィルタオブジェクト名を有するフィルタオブジェクトの直ぐ後にインスト ールされるべきであるかどうかを示す「直ぐ後(right−after)」オ プションを明示することが望ましい。オブジェクト管理ユニット42によってフ ィルタオブジェクトインスタレーションの間に実行される詳細な動作は図11A 、11B、11C及び11Dの関係において下に詳述する。 メッセージオブジェクト58を生成し、ポートオブジェクト54を生成し、フ ィルタオブジェクト56を生成・配置するのに加えて、オブジェクト管理ユニッ ト42は、メッセージオブジェクト検査要求に応答して、メッセージオブジェク ト58に関連づけられた情報をサーバタスク34に提供する。この提供される情 報は、メッセージオブジェクトに示されるクライアントチームID33、メッセ ー ジオブジェクト58が関連づけられたポートオブジェクト54を示すポートオブ ジェクトID、及びメッセージオブジェクトの参照定数の現在値を含む。オブジ ェクト管理ユニット42は、クライアントチームID及び参照定数の現在値に関 しては、メッセージオブジェクト58そのものから抽出し、ポートオブジェクト IDに関しては、メッセージオブジェクト58に含まれるポートオブジェクトア ドレスを用いて、メッセージオブジェクト58が関連づけられたポートオブジェ クト54から獲得する。オブジェクト管理ユニット42はまた、メッセージオブ ジェクト変更要求に応答して上記情報を変更し、またクライアントチーム削除メ ッセージに応答してメッセージオブジェクト58を消去する。更に、オブジェク ト管理ユニット42は、メッセージオブジェクトIDを指定するフィルタオブジ ェクト参照要求に応答して、メッセージオブジェクト58に関連づけられた各フ ィルタオブジェクト56のフィルタオブジェクトIDを提供する。 メッセージオブジェクト52に与えられた動作と同様の方法で、オブジェクト 管理ユニット42は、サーバタスク34からのポートオブジェクト検査要求に応 答してポートオブジェクト54に関係した情報を提供し、ポートオブジェクト修 正要求に応答してポートオブジェクト54内のデータフィールドを修正し、ポー トオブジェクト削除要求に応答してポートオブジェクト52を削除する。 同様に、オブジェクト管理ユニット42は、サーバタスク34からのフィルタ オブジェクト検査要求に応答してフィルタオブジェクト56に関係した情報を提 供し、ターゲットメッセージオブジェクト51を指定するルックアップ要求に応 答してフィルタオブジェクト系列57内の各フィルタオブジェクトのフィルタオ ブジェクトIDを提供し、フィルタオブジェクト削除要求に応答してフィルタオ ブジェクト56を削除する。フィルタオブジェクト削除要求において、オブジェ クト管理ユニット42は、最初に、フィルタオブジェ クトがあるフィルタ系列57からフィルタオブジェクト57を削除し、次に、フ ィルタオブジェクト56自体を削除する。 メッセージトランザクションユニット44は、メッセージトランザクションを 実行するため要求される動作を実行する。特に、メッセージトランザクションユ ニット44は、クライアントタスク32からターゲットメッセージオブジェクト 51へのメッセージの送信を補助するため要求される動作と、フィルタオブジェ クト系列57内のフィルタオブジェクト56と関係したプリプロセッサメッセー ジオブジェクト52又はポストプロセッサメッセージオブジェクト53へのメッ セージの供給と、サーバタスク34による受信メッセージ要求の発行と、送信又 は再供給されたメッセージの発行された受信メッセージ要求との一致、メッセー ジにより示されたサービスを実行するためのアクセプタンス関数又はサーバタス ク34へのメッセージの選択的な送付と、アクセプタンス関数又はサーバタスク 34からクライアントタスクへの応答の伝達とを実行する。 メッセージ処理ユニット44は、メッセージ送信要求を発行することにより、 クライアントタスク32がターゲットメッセージ51に対してメッセージを送信 することを要求する。好ましい実施例において、各メッセージ送信要求は、1) メッセージ同期送信要求であるか、2)メッセージ同期送受信要求であるか、3 )メッセージ非同期送信要求であるか、あるいは4)メッセージ非同期送受信要 求であるかの何れかである。以後詳細に述べる如く、メッセージ処理ユニット4 4は、何れかの型のメッセージ同期送信要求に応じて、メッセージ処理が完了す るまで送信クライアントタスクをブロックし、これにより、メッセージ処理の進 行中にクライアントタスク32が他の操作を実行するのを阻止する。対照的に、 メッセージ処理ユニット44は、何れかの型のメッセージ非同期送信要求に応じ て、送信クライアントタスク32が他の操作を実行するのを許可する。各型のメ ッセージ送信要求は好ましくは、ターゲットメッセージオ ブジェクトID;メッセージが開始する開始メモリ位置への参照;メッセージ長 情報;メッセージのカテゴリーを提供するメッセージ型;メッセージがアクセプ タンス関数あるいはサーバ34の何れに対して、参照渡しあるいは値渡しの何れ によって伝達されるべきかを指示する送信オプション;及び、メッセージ送信要 求が与えられるメッセージオブジェクト52がメッセージ送信要求に応じてロッ クされるべきか、また、アクセプタンス関数又はサーバタスク34がメッセージ に対して応答した後、続いてアンロックされるべきかを指示するフラグを指定す る。同期及び非同期のメッセージ送受信要求は共に、サーバタスクが応答メッセ ージ又はデータを格納し得る応答バッファアドレス、及び応答バッファサイズを 付加的に指定する。好ましい実施例において、メッセージ型は32ビットの数で ある。 同期送信メッセージ要求の各々の型もまた、メッセージの処理が生じている間 クライアントタスク32がアイドルのままで残り得る最大時間間隔を規定する。 全ての送信メッセージ要求に共通する情報に加えて、非同期送信メッセージ要求 の各々の型はまた、メッセージ処理ユニット44が非同期送信メッセージ要求に 対応するメッセージID信号を格納できるアドレス及びメッセージ処理が完了し た時にどのようにメッセージ処理ユニット44がクライアントタスク32に通知 するかのイベント通知情報を規定する。以下の説明において、メッセージID信 号は単にメッセージIDと称される。 送信メッセージ要求の与えられたクライアントタスクの保証に応答し、メッセ ージ処理ユニット44は送信メッセージ動作を行う。送信メッセージ動作は図1 2の説明において以下に詳述される。送信メッセージ動作の間、メッセージ処理 ユニット44は送信メッセージ要求が同期であるか非同期であるかに基づいてメ ッセージ制御ブロック(MCB)を生成して送信する。同期送信メッセージ要求 又は同期送信受信メッセージ要求に応答して、メッセージ処理ユ ニット44は同期送信MCB60を生成する。図7Aを参照するに、同期送信M CB60の好適な実施例のブロック図が示される。同期送信MCB60は、同期 送信メッセージが向けられるターゲットメッセージオブジェクト51に対応する ターゲットメッセージオブジェクトIDを格納する第1のデータフィールドと; フィルタオブジェクトチェーン57内で現在考慮されているフィルタオブジェク ト56に対応する現在のフィルタオブジェクトIDを格納する第2のデータフィ ールドと;現在のフィルタオブジェクト56に関連し現在のターゲットメッセー ジオブジェクト51かプリプロセッサメッセージオブジェクト52かポストプロ セッサメッセージオブジェクト53のいずれかとして考慮されるメッセージオブ ジェクト58に対応する現在のメッセージオブジェクトIDを格納する第3のデ ータフィールドと;第3のデータフィールドにおいて規定される現在のメッセー ジオブジェクト58が関連するポートオブジェクト54を確認する現在のポート オブジェクトIDを格納する第4のデータフィールドと;メッセージが新しいタ ーゲットメッセージオブジェクト51に渡されたときに前のターゲットメッセー ジオブジェクト51に関連するフィルタオブジェクト56を確認するフィルタオ ブジェクトスタック59を格納する第5のデータフィールドと;現在のポートオ ブジェクトの継続中のメッセージリストにおいて次の及び前のエントリに参照を 与える第6のデータフィールドと;同期送信メッセージ要求を発行するクライア ントタスク32に対応したクライアントタスクIDを規定する第7のデータフィ ールドと;関連するメッセージが格納されるメモリ20内の開始アドレスを提供 する第8のデータフィールドと;メッセージの長さを与える第9のデータフィー ルドと;同期送信メッセージ要求において規定されるメッセージの型を示す第1 0のデータフィールドと;メッセージIDが格納される第11のデータフィール ドと;同期送信メッセージ要求で示された送信オプションを規定する第12のデ ー タフィールドと;メッセージ処理ユニット44が一致受信メッセージ要求に対応 したMCBを参照するために使用する第13のデータフィールドと;メッセージ をサーバタスク34に配送した後にメッセージ処理ユニット44がサーバタスク IDを格納する第14のデータフィールドと;同期送信メッセージ要求に対応す るメッセージがサーバタスク34に配送されたかを示す第15のデータフィール ドと;同期送信要求において認識されるメッセージオブジェクト52が固定され たかを示す第16のデータフィールドと;送信メッセージ要求が同期送信及び受 信メッセージ要求であるときに応答バッファのアドレスを規定する第17のデー タフィールドと;送信メッセージ要求が同期送信及び受信メッセージ要求である ときに応答バッファの大きさを与える第18のデータフィールドと;送信クライ アントタスク32が阻止要求の結果として阻止されたかを示す第19のデータフ ィールドと;メッセージ処理中に送信クライアントタスク32がアイドルのまま 残る最大時間間隔を規定する第20のデータフィールドと;を含むデータ構造で ある。メッセージ処理ユニット44は同期送信MCB60をオブジェクトデータ ベース48に格納する。 もし送信メッセージ要求が非同期送信メッセージ要求又は非同期送信受信要求 であった場合、メッセージ処理ユニット44は同期送信MCB60ではなく非同 期送信MCB62を生成する。図7Bを参照するに、非同期送信MCB62が示 される。非同期送信MCB62は、上述の同期送信MCB60における第1から 第18のデータフィールドに規定される情報と同様の情報を規定する第1から第 18のデータフィールドを含むデータ構造である。加えて、非同期送信MCB6 2は、メッセージ処理ユニット44が非同期送信メッセージ要求又は非同期送信 受信メッセージ要求において規定されるイベント通知情報を格納する第19のデ ータフィールドを含む。同期送信MCB60のように、メッセージ処理ユニット 44は非同期 送信MCB62をオブジェクトデータベース48に格納する。 メッセージ処理の間、メッセージ処理ユニット44は一つ又はそれ以上のポー トオブジェクト54に送信MCBを選択的に通らせ、以下に詳細に説明されるよ うに各々のポートオブジェクトはターゲットメッセージオブジェクト51又はプ リプロセッサメッセージオブジェクト52又はポストプロセッサメッセージオブ ジェクト53に関連する。送信MCBを生成した後、メッセージ処理ユニット4 4はここに検査プリプロセッサメッセージオブジェクト58と称される一組の動 作を行う。プリプロセッサメッセージオブジェクト52を考慮すると、メッセー ジ処理ユニット44は送信MCBがプリプロセッサメッセージオブジェクト52 に関連するポートオブジェクト54を通るべきかを判定する。プリプロセッサメ ッセージオブジェクト52の検査においてメッセージ処理ユニット44により行 われる動作が図14の説明において以下に詳述される。 メッセージ処理ユニット44が、送信MCBがプリプロセッサメッセージオブ ジェクト52に関連するポートオブジェクト54又はポストプロセッサメッセー ジオブジェクト53を通るべきであると判定すると、メッセージ処理ユニット4 4は転送メッセージ動作を実行する。転送メッセージ動作において、メッセージ 処理ユニット44は送信MCBの第3のデータフィールドにおける現在のメッセ ージオブジェクトIDにより与えられるような現在のメッセージオブジェクト5 2に関連するポートオブジェクト54に基づいて最新送信MCBを生成する。フ ォーワードメッセージ動作は、図17A,17B及び17Cの説明において以下 に説明される。 送信MCBを特定のポートオブジェクト54に通らせるために、メッセージ処 理ユニット44は,図15A,15B及び15Cの説明において以下に説明され るように低レベルの送信動作を行う。ここで、低レベル送信動作は、米国特許第 08/220,043に記載される送信メッセージ動作のサブセットと同一であ る。 本発明において、サーバタスク34はメッセージがポートオブジェクト54か ら受信されたときにのみメッセージを処理する。メッセージ処理ユニット44は 、サーバタスク34が与えられたポートオブジェクト54からメッセージを受信 するために受信メッセージ要求を発行する。受信メッセージ要求は同期受信メッ セージ要求又は非同期受信メッセージ要求のどちらでもよい。受信メッセージ要 求の各々の型は、ポートオブジェクト54と;サーバタスク34が受信すべきメ ッセージのカテゴリーを示すメッセージの型と;メッセージバッファが始まるメ モリ位置の参照と;メッセージバッファの大きさとを規定する。好適な実施例に おいて、メッセージの型は32ビット数である。同期受信メッセージ要求は、メ ッセージ処理ユニット44によるメッセージの配送の前に発行しているサーバタ スク34がアイドルで残ることのできる最大時間間隔を更に含む。同期及び非同 期受信メッセージ要求の両方に共通の情報に加えて、非同期受信メッセージ要求 は、非同期受信メッセージ要求に対応する受信IDが格納可能なメッセージアド レスと;非同期受信メッセージ要求に対応するメッセージが配送されたことを発 行しているサーバタスク34に通知するためにメッセージ処理ユニット44が使 用するイベント通知情報を更に規定する。 受信メッセージ要求に応答して、メッセージ処理ユニット44は図18A,1 8B及び18Cの説明において以下に詳細に説明される受信メッセージ動作を行 う。受信メッセージ動作の間、メッセージ処理ユニット44は、受信メッセージ 要求において与えられるものに一致するメッセージの型を有する送信MCBが受 信メッセージ要求が向けられるポートオブジェクト54の継続中の送信メッセー ジリストに参照されていない場合、受信MCBを生成する。換言すると、メッセ ージ処理ユニット44は、受信メッセージ要求が存在する送信MCBに直に一致 できない場合、受信MCBを生成する。 メッセージ処理ユニット44により生成された受信MCBは、受 信メッセージ要求が夫々同期又は非同期受信メッセージ要求に従って同期又は非 同期受信MCB70,72のどちらかとなる。図8Aを参照するに、同期受信M CB70の好適な実施例のブロック図が示される。同期受信MCB70は、同期 受信メッセージ要求が向けられるポートオブジェクト54に対応するポートオブ ジェクトIDを規定する第1のデータフィールドと;第1のデータフィールドで 示されたポートオブジェクト54の継続中の受信メッセージリストにおける次の 及び前のエントリーを参照する第2のデータフィールドと;メッセージ処理ユニ ット44が要求を発行したサーバタスク34に対応するサーバタスクIDを格納 する第3のデータフィールドと;同期受信メッセージ要求に含まれるメッセージ バッファアドレスを規定する第4のデータフィールドと;同期受信メッセージ要 求に含まれるメッセージバッファの大きさを規定する第6のデータフィールドと ;メッセージの型に従って同期受信メッセージ要求に一致する送信メッセージ要 求に対応するMCBを参照するためにメッセージ処理ユニット44が使用する第 7のデータフィールドと;同期受信メッセージ要求において規定されるように発 行しているサーバタスク34がアイドルのまま残ることができる最大時間間隔を メッセージ処理ユニット44が格納する第8のデータフィールドとを含むデータ 構造である。メッセージ処理ユニット44は同期受信MCB70をオブジェクト データベース48に格納する。 図8Bを参照するに、非同期受信MCB72の好適な実施例のブロック図が示 される。非同期受信MCB72は、同期受信MCB70に詳細に示されるものと 同様な情報を規定する第1から第7までのデータフィールドを含むデータ構成で ある。また、非同期受信MCB72は、メッセージ処理ユニット44が受信ID を格納する第8のデータフィールドと、メッセージ処理ユニット44が非同期受 信メッセージ要求において規定されるイベント通知情報を格納する第9のデータ フィールドとを含む。各々の同期受信MCB70の場 合のように、メッセージ処理ユニット44は各々の非同期受信MCB72をオブ ジェクトデータベース48に格納する。 好適な実施例において、上述の各々のMCB60,62,70,72は、一般 的なMCB構成(図示せず)に一つ又はそれ以上の要求詳細情報を供給するデー タフィールドを加えたものとして具体化される。一般のMCB構成は、ポートオ ブジェクト54を規定するデータフィールドと;クライアント又はサーバタスク 32,34と;他の対応するMCB構成への参照と;一般のMCB構成が同期又 は非同期要求に対応するか及び一般のMCB構成が送信又は受信要求に対応する かを規定する状態情報とを含む。当業者であれば、同期MCB60と非同期送信 MCB62と同期受信MCB70と非同期受信MCB72とを具体化するのに必 要な付加的なデータフィールドを上述の説明に従って決定することができる。 メッセージ処理ユニット44は受信メッセージ要求を送信MCBに選択的に一 致させる。メッセージ処理ユニット44は、以下に詳細に規定されるように、送 信MCBをアクセプタンス関数又はターゲットメッセージオブジェクト51、プ リプロセッサメッセージオブジェクト52またはポストプロセッサメッセージオ ブジェクト53に対応するポートオブジェクト54に関連する受信MCBのいず れかに選択的に一致させる。一致は送信メッセージ要求及び受信メッセージ要求 に規定されるメッセージの型に従って又は送信メッセージ要求及びアクセプタン ス関数に関連するメッセージの型の組に規定されるメッセージに従って生じる。 好適な実施例において、メッセージ処理ユニット44はメッセージの型が一致す るかを判定するために論理積を実行する。 送信MCBを与えられたポートオブジェクト54に通した後、メッセージ処理 ユニット44は、MCBが一致アクセプタンス関数により直ちに処理され得る、 又は送信MCB一致継続受信MCBにより直ちに処理され得ると判定する。メッ セージ処理ユニット44 はまた、送信MCBが直ちに処理され得ず従って継続受信MCBになることを判 定する。メッセージ処理ユニット44は、送信MCBにおいて確認されるポート オブジェクト54の継続中の送信メッセージリストに送信MCBへの参照を挿入 することにより送信MCBが継続中であるとして類別する。メッセージ処理ユニ ット44は、好ましくはポートオブジェクト54の継続中の送信メッセージリス トを先入れ先出し(FIFO)順における2重リンクリストとして維持する。 与えられた受信メッセージ要求に応答して、メッセージ処理ユニット44は、 受信メッセージ要求が継続中の送信MCBに直ちに一致し得ること又は受信メッ セージ要求が送信MCBに直ちに一致し得ず従って継続受信メッセージ要求とな ることを判定してもよい。メッセージ処理ユニット44は、受信MCBを生成す ることにより及び受信MCBにおいて確認されるポートオブジェクト54の継続 中の受信メッセージリストにおける対応する受信MCBへの参照を挿入すること により、受信メッセージ要求を継続中として類別する。継続中の送信メッセージ リストの場合、メッセージ処理ユニット44は、好ましくは継続中の受信メッセ ージリストをFIFO順における2重リンクリストとして維持する。メッセージ 処理ユニット44が同期受信メッセージ要求を継続中として類別した場合、メッ セージ処理ユニット44は又、一致する送信MCBがポートオブジェクト54に 到着するまで同期受信メッセージ要求を発行するサーバタスク34の実行を阻止 する。 メッセージ処理ユニット44が送信MCBを受信MCBに一致させるとき、又 は受信メッセージ要求を送信MCBに一致させるとき、メッセージ処理ユニット 44は配送MCB80を生成する。図9を参照するに、配送MCB80のブロッ ク図が示されている。配送MCB80は、送信MCB内でデータフィールドのサ ブセットから生成される。配送MCB80は、送信メッセージMCBに規定され る メッセージIDが格納される第1のデータフィールドと;送信MCBに規定され る現在のメッセージオブジェクト58の参照定数を規定する第2のデータフィー ルドと;送信MCBに規定される送信オプションが格納される第3のデータフィ ールドと;送信MCBにおいて与えられるメッセージの型を提供する第4のデー タフィールドと;送信MCBに規定されるメッセージ位置が格納される第5のデ ータフィールドと;送信MCBに規定されるメッセージ長が格納される第6のデ ータフィールドと;送信MCBに規定される応答バッファアドレスが格納される 第7のデータフィールドと;送信MCBに規定される応答バッファの大きさが格 納される第7のデータフィールドと;メッセージ処理中の前処理、処理及び/又 は後処理が格納される第9のデータフィールドとを含む。好ましくは、配送MC B80が最初に生成されるとき、現在の結果は”不完全”として設定される。米 国特許第08/220,043に詳述されるように、サーバタスク34又はアク セプタンス関数は配送MCB80内に規定されたメッセージを取得し、メッセー ジにより示される処理を実行する。 サーバタスク34が与えられたポートオブジェクト54に関連する処理を完了 すると、サーバタスク34は継続メッセージ要求、転送メッセージ要求又は応答 を発行してもよい。継続メッセージは、好ましくはメッセージIDを規定する。 継続メッセージ要求に応答し、メッセージ処理ユニット44は継続メッセージ動 作を行う。図16A,16B及び16Cの説明に詳述されるように、継続メッセ ージ動作において、メッセージ処理ユニット44は、フィルタオブジェクト系列 スキャン方向に従って現在のメッセージオブジェクトのフィルターオブジェクト 系列57における他のフィルタオブジェクト56にメッセージが転送可能かを判 定する。メッセージにより実行される一番最近の動作がプリプロセッサメッセー ジオブジェクト52に関連する場合、メッセージ処理ユニット44は、検 査すべき次のフィルタオブジェクト56を確認するためにフィルタオブジェクト チェーン57における最後のフィルタオブジェクト56に向かう”前進”方向に フィルタオブジェクトチェーン57をスキャンする。メッセージにより実行され る一番最近の動作が後プロセッサメッセージオブジェクト53に関連する場合、 メッセージ処理ユニット44は、検査すべき前のフィルタオブジェクト56を確 認するためにフィルタオブジェクトチェーン57における最初のフィルタオブジ ェクト56に向かう”後退”方向にフィルタオブジェクトチェーン57をスキャ ンする。もしメッセージが現在のメッセージオブジェクトのフィルタオブジェク トチェーン57における他のフィルタオブジェクトに転送可能であれば、メッセ ージ処理ユニット44は前進メッセージ動作を実行する。よって、継続メッセー ジ動作は、フィルタオブジェクトチェーン57内において一つのフィルタオブジ ェクト56から他のフィルタオブジェクト56へ前処理又は後処理が継続する結 果となる。転送メッセージ要求に応答し、メッセージ処理ユニット44は上に参 照され図17A,17B及び17Cに説明されている前進メッセージ動作を実行 する。各々の前進メッセージ要求は、好ましくはメッセージID及びターゲット メッセージオブジェクト51を規定する。転送メッセージ要求に規定されたター ゲットメッセージオブジェクト51がメッセージIDに対応する送信MCBに格 納されたものと異なる場合、前進メッセージ動作は第1のデータフィールドに格 納された新しく規定されたターゲットメッセージオブジェクトIDを有する最新 の送信MCBを生成する結果となる。また、元のターゲットメッセージオブジェ クト51に関連する各々のフィルタオブジェクトへの参照は最新の送信MCB内 のフィルタオブジェクトスタックに格納される。 応答への対応において、メッセージ処理ユニット44は応答動作を実行する。 各々の応答は、好ましくはメッセージIDを規定し、現在の結果の組を任意に規 定してもよい。応答動作において、メッ セージ処理ユニット44は、応答がプリプロセッサメッセージオブジェクト52 に関連したサーバタスク34により発行されたかを判定する。そうであれば、メ ッセージ処理ユニット44はメッセージIDに対応する送信MCBを前プロセッ サメッセージオブジェクト52に関連するポストプロセッサメッセージオブジェ クト53に通し、それにより、各々の残りのフィルタオブジェクト56を前処理 に関して”スキップ”し、ターゲットメッセージオブジェクト56をスキップし 、スキップしたフィルタオブジェクト56に関連するポストプロセッサメッセー ジオブジェクト56をスキップする。フィルタオブジェクトに関連するプリプロ セッサメッセージオブジェクト52からフィルタオブジェクトに関連するポスト プロセッサメッセージオブジェクト53へのメッセージ処理ユニットの送信MC Bの経路付けは、ここにスキップ前進動作と称される。 スキップ前進動作が必要無い場合、メッセージ処理ユニット44はターゲット メッセージオブジェクト51が関連する各々のフィルタオブジェクト56が後処 理に関して検査されたかを判定する。もしされていない場合、メッセージ処理ユ ニット44は継続メッセージ動作を実行する。もしターゲットメッセージオブジ ェクト51の各々のフィルタオブジェクト56が検査されていれば、メッセージ 処理ユニット44はメッセージを始めに送信したクライアントタスク32に最終 応答を発行し、最終応答はクライアントタスク32に状態情報とおそらくはデー タとを提供する。応答動作は図19A及び19Bの説明において以下に詳述され る。 サーバタスク34により発行された組み合わされた受信及び応答メッセージ要 求への応答において、メッセージ処理ユニット44は上述のように先ず応答動作 を実行し、そして上述のように受信メッセージ動作を実行する。 ロックユニット46はメッセージオブジェクトのロック及びロック解除動作を 実行する。好適な実施例において、ロック及びロック 解除動作は、夫々サーバタスク34又はメッセージ処理ユニット44により発行 されるロック要求又はロック解除要求に応答して実行される。メッセージオブジ ェクト58がロックされた後に特定のメッセージオブジェクト58に向けられた 送信メッセージ要求又は送信MCBは、ロック解除動作が実行されるまで、アク セプタンス関数又は受信MCBに一致するべきものには選ばれない。好適な実施 例において、ロック要求は、送信メッセージ要求の結果としてクライアントタス ク32の代わりにサーバタスク34又はメッセージ処理ユニット44により発行 され得る。好ましくは、夫々のロック要求はロックのターゲットとなるメッセー ジオブジェクト58のメッセージオブジェクトIDを規定する。ロック及びロッ ク解除動作は夫々図20及び21の説明において以下に詳述される。 メッセージ送信操作及びメッセージ転送操作の間、メッセージ処理ユニット4 4はロッキング操作と同期する。ロッキング操作との同期において、メッセージ が送られた現在のメッセージオブジェクト58がロックされた場合、メッセージ 処理ユニットはメッセージを送信するクライアントタスクをブロックする。送信 MCBがターゲットメッセージオブジェクト51はロックされるべきと指定した 場合、メッセージ処理ユニット44はターゲットメッセージ51をもロックする 。メッセージ処理ユニット44によってロッキング操作と同期して実行される動 作の詳細について、以下、図13に従って説明する。 以下、本発明のシステム10によってオブジェクト指向メッセージフィルタリ ングの間に実行される操作の詳細を、図10A〜図21の各方法ステップとして 説明する。図10A、10B、及び10Cには、オブジェクト指向メッセージフ ィルタリングの好ましい方法のフローチャートが示されている。この好ましい方 法が開始されると、先ず、ステップ100において、オブジェクト管理ユニット 42は、対応するサーバタスク要求に応じてポートオブジェクト5 4が生成、変更、検査、あるいは削除されるべきか否かを判断する。ポートオブ ジェクト54が生成、変更、検査あるいは削除されるべきならば、ステップ10 2において、オブジェクト管理ユニット42はサーバタスク要求により指示され る適切な操作を実行する。ステップ102の後、又はステップ100の後、ステ ップ104において、オブジェクト管理ユニット42は対応するサーバタスク要 求に応じてメッセージオブジェクト42が生成、変更、検査、あるいは削除され るべきか否かを判断する。肯定判断されたならば、ステップ106において、オ ブジェクト管理ユニット42はサーバタスク要求により指示された動作を実行す る。ステップ106又は104に続いて、ステップ108において、オブジェク ト管理ユニット42はサーバタスク要求に応じてフィルタオブジェクト56がイ ンストール、検査、ロックアップ、あるいは削除されるべきか否かを判断する。 フィルタオブジェクト56がインストール、検査、ロックアップ、あるいは削除 されるべきならば、ステップ110において、オブジェクト管理ユニット42は サーバタスク要求により要求された操作を実行する。ステップ110の後、ある いはステップ108の後、ステップ112において、ロッキングユニット46は サーバタスクロック要求に応じてメッセージオブジェクト52がロックされるべ きか否かを判断する。肯定判断されたならば、ステップ114において、ロッキ ングユニット46はサーバタスク要求により指示されたロッキング操作を実行す る。ステップ108においてロッキングユニット46がロックされるべきメッセ ージオブジェクトは存在しないと判断した場合、あるいは、ステップ114が終 了した後、次にステップ116において、ロッキングユニットはサーバタスクロ ック解除要求に応じてメッセージオブジェクト52がロック解除されるべきか否 かを判断する。肯定判断されたならば、ステップ118においてロッキングユニ ット46はアンロック要求に応じてアンロック操作を実行する。ステップ116 において メッセージオブジェクトのロッキングが要求されていない場合、あるいは、ステ ップ118の後、ステップ120において、オブジェクト管理ユニット42はサ ーバタスク要求に応じてポートオブジェクト54に対するアクセプタンス関数が 登録されるべきか否かを判断する。アクセプタンス関数が登録されるべきならば 、ステップ122においてオブジェクト管理ユニット42は、サーバタスク要求 において指定されたポートオブジェクトと共にアクセプタンス関数を登録する。 ステップ122は、米国特許出願第08/220,043号に記載されている如きアクセプ タンス関数の登録に従って実行される。 ステップ118に続いて、あるいは、ステップ116の後、オブジェクト管理 ユニット42が、登録すべきアクセプタンス関数は存在しないと判断したならば 、ステップ130において、メッセージ処理ユニット44はクライアントタスク 32がメッセージ送信要求を発行したか否かを判断する。肯定判断されたならば 、ステップ132において、メッセージ処理ユニット44はメッセージ送信操作 を実行する。ステップ132の後、あるいは送信メッセージ要求が発行されてい なければステップ130の後、ステップ134において、メッセージ処理ユニッ トはサーバタスクがメッセージ連続要求を発行したか否かを判断する。サーバタ スク34がメッセージ連続要求を発行したならば、ステップ136において、メ ッセージ処理ユニット44はメッセージ連続操作を実行する。ステップ136の 後、あるいは、ステップ134の後、ステップ138において、メッセージ処理 ユニット44はサーバタスク34がメッセージ転送要求を発行したか否かを判断 する。サーバタスク34がメッセージ転送要求を発行したならば、ステップ14 0において、メッセージ処理ユニット44はメッセージ転送操作を実行する。ス テップ140に続いて、あるいは、ステップ138の後、ステップ142におい て、メッセージ処理ユニット44はサーバタスク34がメッセージ受信要求を発 行したか否かを判断する。サーバタスク34がメッ セージ受信要求を発行したならば、ステップ144において、メッセージ処理ユ ニット44はメッセージ受信操作を実行する。ステップ132においてメッセー ジ処理ユニット44がメッセージ受信要求は発行されていないと判断した場合、 あるいは、ステップ134の後、ステップ150において、メッセージ処理ユニ ット44は応答(reply)が発行されたか否かを判断する。肯定判断されたなら ば、ステップ152においてメッセージ処理ユニットは応答操作を実行する。ス テップ152の後、あるいは応答が発行されていなければステップ150の後、 ステップ154において、メッセージ処理ユニット44はサーバタスク34が結 合された受信−応答メッセージ要求を発行したか否かを判断する。肯定判断され たならば、ステップ156において、メッセージ処理ユニット44は受信−応答 メッセージ要求で指示された応答操作を実行する。この後、ステップ158にお いて、メッセージ処理ユニット44はメッセージ受信−応答要求に応じてメッセ ージ受信操作を実行する。ステップ158の後、あるいはステップ156が実行 されなければステップ154の後、ステップ160において、メッセージ処理ユ ニット44は操作を終了すべきか否かを判断する。操作を続行すべきならば、こ の好ましい方法はステップ100へ進む。そうでなければ、この好ましい方法は 終了する。 次に、図11A、11B、11C及び11Dを参照するに、新たなフィルター オブジェクト56をフィルターオブジェクトチェイン57内にインストールする (図10Aのステップ110)好ましい方法のフローチャートが示されている。 この好ましい方法が開始されると、先ず、ステップ200において、オブジェク ト管理ユニット42は、サーバタスク34により発行されたインストール要求に 応じて、新たなフィルターオブジェクトIDを発生すると共に新たなフィルター オブジェクト56を生成する。次に、ステップ202において、オブジェクト管 理ユニット42は、インストール要求で 指定されたターゲットメッセージオブジェクトに対応するプリプロセッサ及びポ ストプロッセッサメッセージオブジェクト52、53を夫々ロックする。ステッ プ202の後、オブジェクト管理ユニット42は、新たなフィルターオブジェク ト名が、フィルターオブジェクトチェイン57内の全てのフィルターオブジェク トの中で唯一のものであるか否かを判断する。新たなフィルターオブジェクト名 が唯一のものでなければ、オブジェクト管理ユニット42は、ステップ205に おいてフィルターオブジェクトチェイン内のプリプロセッサ及びポストプロセッ サメッセージオブジェクト52、53をロックした後、ステップ206において インストール失敗エラーに戻る。 ステップ204において、新たなフィルターオブジェクト名がフィルターオブ ジェクトチェイン57内の全てのフィルターオブジェクトの中で唯一のものであ るならば、オブジェクト管理ユニット42は次にステップ208において、フィ ルターオブジェクトチェイン57内の前向き方向に他のフィルターオブジェクト 56が存在するか否かを判断する。フィルターオブジェクトチェイン57に他の フィルターオブジェクトが存在しなければ、ステップ209において、オブジェ クト管理ユニット42はフィルターオブジェクトチェイン57が空か否かを判断 する。フィルターオブジェクトチェイン57が空ならば、この好ましい方法はス テップ276に進む。 ステップ208において、オブジェクト管理ユニット42がフィルターオブジ ェクトチェイン57に他のオブジェクト56が存在すると判断したならば、ステ ップ210において、オブジェクト管理ユニット42は次のフィルターオブジェ クト56を選択する。次に、ステップ212において、オブジェクト管理ユニッ ト42は、新たなフィルターオブジェクトの前方規則(before rule)が、選択 されたフィルターオブジェクト名とマッチするか否かを判断する。肯 定判断されたならば、ステップ214において、オブジェクト管理ユニット42 は、選択されたフィルターオブジェクトの位置をフィルターオブジェクトチェイ ン57に格納する。ステップ212において、新たなフィルターオブジェクトの 前方規則が、選択されたフィルターオブジェクト名とマッチしなければ、オブジ ェクト管理ユニット42は次にステップ216において、選択されたオブジェク トの後方規則(after rule)が、新たなフィルターオブジェクト名とマッチする か否かを判断する。肯定判断されたならば、この好ましい方法はステップ214 に進む。選択されたフィルターオブジェクトの後方規則が新たなフィルターオブ ジェクト名とマッチしなければ、この好ましい方法はステップ208に戻る。 ステップ214の後、あるいは、フィルターオブジェクトチェイン57が空で なければステップ209の後、ステップ230において、オブジェクト管理ユニ ット42は他のフィルタ56がフィルターオブジェクトチェインに存在するか否 かを判断する。肯定判断されたならば、ステップ232において、オブジェクト 管理ユニット42は次のフィルターオブジェクトを選択する。次に、ステップ2 34において、オブジェクト管理ユニット42は、新たなフィルターオブジェク トの後方規則が、選択されたフィルターオブジェクト名にマッチするか否かを判 断する。肯定判断されたならば、ステップ235において、オブジェクト管理ユ ニット42はこのマッチが不可能なフィルターオブジェクトチェイン順序を指定 しているか否かを判断する。このマッチが不可能なフィルターオブジェクトチェ イン順序を指定しているならば、この好ましい方法はステップ205に戻る。 ステップ235の後、あるいは、ステップ234の後、ステップ236におい て、オブジェクト管理ユニット42は、選択されたフィルターオブジェクトの前 方規則が、新たなフィルターオブジェクト名にマッチするか否かを判断する。肯 定判断されたならば、ス テップ237において、オブジェクト管理ユニット42は、このマッチが不可能 なフィルターオブジェクトチェイン順序を指定しているか否かを判断する。この マッチが不可能なフィルターオブジェクトチェイン順序を指定しているならば、 この好ましい方法はステップ205に戻る。 ステップ237の後、あるいは、ステップ236の後、ステップ238におい て、オブジェクト管理ユニット42は、選択されたオブジェクトのインストール オプションが、選択されたフィルターオブジェクト56はフィルターオブジェク トチェイン57内の新たなフィルターオブジェクト56の直後に位置すべきこと を指定しているか否かを判断する。選択されたオブジェクトのインストールオプ ションが、選択されたフィルターオブジェクト56はフィルターオブジェクトチ ェイン57内の新たなフィルターオブジェクト56の直後に続くべきことを指定 しているならば、ステップ239において、オブジェクト管理ユニット42はこ の順序が不可能か否かを判断する。不可能ならば、この好ましい方法はステップ 205に戻る。 ステップ239の後、あるいはステップ238の後、ステップ240において 、オブジェクト管理ユニット42は、新たなフィルターオブジェクトのインスト ールオプションが、新たなフィルターオブジェクト56はフィルターオブジェク トチェイン57内の選択されたフィルターオブジェクト56の直前に位置すべき ことを指定しているか否かを判断する。新たなフィルターオブジェクトのインス トールオプションが、新たなフィルターオブジェクト56はフィルターオブジェ クトチェイン57内の選択されたフィルターオブジェクト56の直前に先行すべ きことを指定しているならば、ステプ241において、オブジェクト管理ユニッ ト42はこの順序が不可能か否かを判断する。不可能ならば、この好ましい方法 はステップ205に戻る。 ステップ230において、オブジェクト管理ユニット42が、 フィルターオブジェクトチェイン57に他のフィルターオブジェクト56は存在 しないと判断したならば、ステップ242において、オブジェクト管理ユニット 42は第1のフィルターオブジェクトチェイン57の第1のフィルターオブジェ クト56を選択する。ステップ242の後、オブジェクト管理ユニット42は、 選択されたフィルターオブジェクト56のフィルターオブジェクトチェイン内で の位置がステップ214において格納されたマッチ位置であるか否かを判断する 。否定判断されたならば、ステップ252において、オブジェクト管理ユニット 42は選択されたフィルターオブジェクトの配置順序が、選択されたフィルター オブジェクト56はフィルターオブジェクトチェイン57内で新たなフィルター オブジェクト56に続くべきであることを指定しているか否かを判断する。選択 されたフィルターオブジェクトの配置順序が、選択されたフィルターオブジェク ト56はフィルターオブジェクトチェイン57内で新たなフィルターオブジェク ト56に続くべきであることを指定しているならば、オブジェクト管理ユニット 42は次にステップ253において、この順序が不可能か否かを判断する。不可 能ならば、この好ましい方法はステップ260に進む。ステップ260において オブジェクト管理ユニット42がステップ214において格納されたマッチ位置 をリセットした後、この好ましい方法はステップ230に戻る。 ステップ253の後、あるいは、ステップ252の後、オブジェクト管理ユニ ット42は、選択されたフィルターオブジェクトのインストールオプションが、 選択されたフィルターオブジェクト56はフィルターオブジェクトチェイン57 内で新たなフィルターオブジェクト56の直前に先行すべきであることを指定し ているか否かを判断する。選択されたフィルターオブジェクトのインストールオ プションが、選択されたフィルターオブジェクト56はフィルターオブジェクト チェイン57内で新たなフィルターオブジェクト56 の直前に先行すべきであることを指定しているならば、ステップ255において 、オブジェクト管理ユニット42は、この順序が不可能か否かを判断する。不可 能ならば、この好ましい方法はステップ260に進む。 ステップ255の後、あるいは、ステップ254の後、ステップ256におい て、オブジェクト管理ユニット42は、新たなフィルターオブジェクトのインス トールオプションが、新たなフィルターオブジェクト56はフィルターオブジェ クトチェイン57内で選択されたフィルターオブジェクト56の直後に続くべき であることを指定しているか否かを判断する。新たなフィルターオブジェクトの インストールオプションが、新たなフィルターオブジェクト56はフィルターオ ブジェクトチェイン57内で選択されたフィルターオブジェクト56の直後に続 くべきであることを指定しているならば、ステップ257においてオブジェクト 管理ユニット42はこの順序が不可能か否かを判断する。不可能ならば、この好 ましい方法はステップ260へ進む。 ステップ257の後、あるいは、ステップ256の後、オブジェクト管理ユニ ット42はフィルターオブジェクトチェイン57の次のフィルターオブジェクト 56を選択し、その後、この好ましい方法はステップ250に戻る。 ステップ250において、ステップ214において格納されたマッチ位置に達 したと判断されたならば、次に、オブジェクト管理ユニット42は新たなフィル ターオブジェクト56がフィルターオブジェクトチェイン57の2つのフィルタ ーオブジェクト56の間にインストールされるべきか否かを判断する。肯定判別 されたならば、ステップ272において、オブジェクト管理ユニット42は、新 たなフィルターオブジェクト56がその前に挿入されるべきフィルターオブジェ クト56の右前方(right-before)オプションが満足され得るか否かを判断する 。右前方オプションが満足され得 ないならば、この好ましい方法はステップ205に戻る。右前方オプションが満 足され得るならば、オブジェクト管理ユニット42は次にステップ274におい て、フィルターオブジェクト56がその後に挿入されるべきフィルターオブジェ クト56の右後方(right-after)オプションが満足され得るか否かが判断され る。フィルターオブジェクト56がその後に挿入されるべきフィルターオブジェ クト56の右後方(right-after)オプションが満足され得ないならば、この好 ましい方法はステップ205に戻る。 ステップ274の後、ステップ276においてオブジェクト管理ユニット42 は、新たなフィルターオブジェクト56の第2データフィールドを、フィルター オブジェクトチェイン57内の適切な次の、及び、前のフィルターオブジェクト 56を参照するように変更する。 ステップ274の後、ステップ276において、オブジェクト管理ユニット4 2は、新たなフィルターオブジェクト56の第2データフィールドを、フィルタ ーオブジェクトチェイン57内の適切な次の、及び、前のフィルターオブジェク ト56を参照するように変更する。オブジェクト管理ユニット42は、新たなフ ィルターオブジェクト56がフィルターオブジェクトチェイン内に配置されるべ き位置の直前及び直後のフィルターオブジェクト56の第2データフィールドを も同様に変更する。ステップ276が実行されることにより、新たなフィルター オブジェクトは実際にフィルターオブジェクトチェイン257の一部となる。ス テップ276の後、ステップ278において、オブジェクト管理ユニット42は フィルターオブジェクトチェイン57に対応するプリプロセッサ及びポストプロ セッサメッセージオブジェクト52、53の夫々をアンロックし、その後、この 好ましい方法は終了する。 次に、図12を参照するに、メッセージ送信操作(図10Bのステップ132 )を実行する好ましい方法のフローチャートが示され ている。この好ましい方法が開始されると、先ず、ステップ300において、メ ッセージ処理ユニット44が対応するメッセージ送信要求で指定されたターゲッ トオブジェクトIDをデコードする。次に、ステップ302において、メッセー ジ処理ユニット44はターゲットオブジェクトIDが有効か否かを判断する。タ ーゲットオブジェクトIDが有効でなければ、メッセージ処理ユニット44がス テップ304の無効IDエラーに戻った後、この好ましい方法は終了する。ター ゲットオブジェクトIDが有効ならば、ステップ306において、メッセージ処 理ユニット44はメッセージオブジェクトロッキング操作と同期する。次に、ス テップ308において、メッセージ処理ユニット44は唯一のメッセージIDを 発生すると共に送信MCBを生成する。好ましくは、メッセージ処理ユニット4 4は、送信MCBが唯一に同定され、メッセージIDによってその位置が確認さ れるように、送信MCBをメッセージIDと対応させる。メッセージ送信要求が 同期メッセージ送信要求であるならば、メッセージ処理ユニット44は同期送信 MCB60を生成する。メッセージ送信要求が非同期メッセージ送信要求である ならば、メッセージ処理ユニット44は非同期送信MCB62を生成する。 ステップ308の後、ステップ310において、メッセージ処理ユニット44 は、送信MCBの第1データフィールドで指定されたターゲットメッセージオブ ジェクトIDを送信MCBの第3データフィールド内に格納することにより、タ ーゲットメッセージオブジェクトを検討中の現在のメッセージオブジェクトとし て同定する。次に、ステップ312において、メッセージ処理ユニット44はプ リプロセッサメッセージオブジェクト52を検査する。プリプロセッサメッセー ジオブジェクト52の検査については、図14を参照して詳細に後述する。ステ ップ312の後、ステップ314において、メッセージ処理ユニット44は、対 応するポートオブジェクトIDを送信MCBの第4データフィールドに格納する ことにより、 ターゲットメッセージオブジェクト51に対応するポートオブジェクト54を現 在のポートオブジェクト54として同定する。次にステップ316において、メ ッセージ処理ユニット44は低レベルメッセージ送信操作を実行し、その後、こ の好ましい方法は終了する。 次に、図13を参照するに、ロッキング操作との同期(図12のステップ30 0)を行なう好ましい方法のフローチャートが示されている。この好ましい方法 が開始されると、先ず、ステップ400において、メッセージ処理ユニット44 は現在のメッセージオブジェクト58がロックされているか否かを判断する。現 在のメッセージオブジェクト58がロックされているならば、メッセージ処理ユ ニット44は、送信MCBにより指示されたクライアントタスク32を、ステッ プ402においてこのクライアントタスク32の更なる操作の実行を阻止するこ とによりブロックする。クライアントタスクのブロックは従前の方法で実行され る。ステップ402の後、あるいはステップ400の後、ステップ404におい て、メッセージ処理ユニット44は、送信MCBで指定された送信オプションを 検査することにより現在のメッセージオブジェクト58がロックされるべきか否 かを判断する。現在のメッセージオブジェクト58がロックされるべきならば、 ステップ406において、メッセージ処理ユニット44は現在のメッセージオブ ジェクト58をロックする。ステップ406の後、あるいはステップ404の後 、この好ましい方法は終了する。 次に、図14を参照するに、プロセッサメッセージオブジェクト52の検査( 図12のステップ212及び図17Cのステップ838)を行なう好ましい方法 のフローチャートが示されている。この好ましい方法が開始されると、先ず、ス テップ500において、メッセージ処理ユニット44は、他のフィルターオブジ ェクト56が現在のメッセージオブジェクト58に対応するフィルターオブ ジェクトチェイン57内で参照されているか否かを判断する。他のフィルターオ ブジェクト56が現在のメッセージオブジェクト58によって参照されていなけ れば、この好ましい方法は終了する。他のフィルターオブジェクト56が現在の メッセージオブジェクト58に対応するフィルターオブジェクトチェイン57内 で参照されているならば、ステップ502において、メッセージ処理ユニット4 4はフィルターオブジェクトチェイン57内の次のフィルターオブジェクト56 を選択する。ステップ502の後、ステップ504において、メッセージ処理ユ ニット44は、選択されたフィルターオブジェクト56の第6データフィールド を検査することにより、選択されたフィルターオブジェクト56が対応するプリ プロセッサメッセージオブジェクト52を有しているか否かを判断する。選択さ れたフィルターオブジェクト56が対応するプリプロセッサメッセージオブジェ クト52を有していなければ、この好ましい方法はステップ500に戻る。選択 されたフィルターオブジェクト56が対応するプリプロセッサメッセージオブジ ェクト52を有しているならば、メッセージ処理ユニット44は次にステップ5 06において、送信MCBで指定されたメッセージ型が、選択されたオブジェク トのメッセージ型リストで与えられたメッセージ型とマッチするか否かを判断す る。送信MCBで指定されたメッセージ型が、選択されたオブジェクトのメッセ ージ型リストのメッセージ型とマッチしなければ、この好ましい方法はステップ 400に戻る。送信MCBで指定されたメッセージ型が、選択されたオブジェク トのメッセージ型リストのメッセージ型とマッチするならば、メッセージ処理ユ ニット44は次にステップ508において、現在のメッセージオブジェクト58 がロックされているか否かを判断する。現在のメッセージオブジェクト58がロ ックされているならば、ステップ510において、メッセージ処理ユニット44 は現在のメッセージオブジェクト58をアンロックする。ステップ510の後、 あるい はステップ508の後、ステップ512において、メッセージ処理ユニット44 は、プリプロセッサメッセージオブジェクト52に対応するメッセージオブジェ クトIDを送信MCBの第3データフィールドに格納することにより、選択され たフィルターオブジェクト56に対応するプリプロセッサメッセージオブジェク ト52を現在のメッセージオブジェクトとして同定する。次に、ステップ514 において、メッセージ処理ユニット44は、対応するフィルターオブジェクトI Dを送信MCBの第2データフィールドに格納することにより、選択されたフィ ルターオブジェクト56を現在のフィルターオブジェクトとして同定する。ステ ップ514の後、ステップ516において、メッセージ処理ユニット44はメッ セージ転送操作を実行する。メッセージ転送操作については、図17A、17B 、及び17Cを参照して詳細に後述する。ステップ516の後、この好ましい方 法は終了する。 次に、図15A、15B、及び15Cを参照するに、低レベル送信操作(図1 2のステップ316及び図17Cのステップ840)を実行する好ましい方法の フローチャートが示されている。この好ましい方法が開始されると、先ず、ステ ップ600において、メッセージ処理ユニット44は、送信MCBのメッセージ 型とマッチするメッセージ型を指定するアクセプタンス関数が、送信MCBで指 定された現在のポートオブジェクト54と共に登録されたか否かを判断する。ア クセプタンス関数が登録されているならば、ステップ602において、メッセー ジ処理ユニット44はクライアントタスクのアドレス空間内にデリバリーMCB 80を生成する。ステップ602に続いて、ステップ604において、メッセー ジ処理ユニット44はデリバリーMCB80へのポインタをアクセプタンス関数 へ引き渡す。次に、ステップ606において、メッセージ処理ユニット44は、 送信MCBへの参照を現在のポートオブジェクト54内のペンディング応答メッ セージリストに挿入する。 ステップ606の後、図15Cのステップ640において、メッセージ処理ユ ニット44は、生成された送信MCBが同期送信MCBか否かを判断する。同期 送信MCBでなければ、ステップ642において、メッセージ処理ユニット44 がメッセージIDを、メッセージ送信要求を発行したクライアントタスク32に 戻した後、この好ましい方法は終了する。送信MCBが同期送信MCB60であ るならば、メッセージ処理ユニット44は次にステップ644において、送信ク ライアントタスク32が更なる操作を実行するのを阻止、即ち、送信クライアン トタスク32をブロックする。次に、ステップ646において、メッセージ処理 ユニット44は、送信MCBで指定された最大時間間隔を超過したか否かを判断 する。肯定判断されたならば、メッセージ処理ユニット44が時間切れ状態を送 信クライアントタスク32に戻した後、この好ましい方法は終了する。最大時間 間隔を超過していなれば、ステップ648において、メッセージ処理ユニット4 4は、メッセージ送信要求で指示されたメッセージに対して応答が発行されたか 否かを判断する。応答が発行されていなければ、この好ましい方法はステップ6 46に戻る。ステップ648において、メッセージ処理ユニット44が応答が発 行されたと判断したならば、ステップ650において、メッセージ処理ユニット 44は応答操作を実行する。 ステップ600においてメッセージ・トランザクション・ユニット44がマッ チング・アクセプタンス関数が存在しないと判断した場合、メッセージ・トラン ザクション・ユニットは次にステップ608において、マッチングする受信MC Bが現在のポート・オブジェクトのペンディング・メッセージ・リストに存在す るかどうかを判断する。マッチングする受信MCBが存在しない場合、メッセー ジ・トランザクション・ユニット44はステップ610において、現在のポート ・オブジェクトのペンディング・メッセージ・リストの送信MCBに参照符号を 挿入する。その後、ステップ640 に進む。メッセージ・トランザクション・ユニット44がマッチングする受信M CBが存在するとステップ608において判断したならば、メッセージ・トラン ザクション・ユニット44は図15Bのステップ620において、マッチングす る受信MCB内の指定アドレスにおけるメッセージ・バッファに受信MCBを作 成する。次に、メッセージ・トランザクション・ユニット44はステップ622 において、現在のポート・オブジェクトのペンディング応答メッセージ・リスト の送信MCBに参照符号を挿入する。ステップ622の後、メッセージ・トラン ザクション・ユニット44はステップ624において、受信MCBが同期受信M CB70であるかどうかを判断する。もしそうなら、メッセージ・トランザクシ ョン・ユニット44はステップ630において、対応する受信メッセージ要求を 発行した受信サーバ・タスク34を非ブロック化する。メッセージ・トランザク ション・ユニット44が受信MCBが同期受信MCB70でないと判断した場合 、メッセージ・トランザクション・ユニット44はステップ626において、受 信MCB70で参照されているメッセージを同期受信MCB72で指定されたサ ーバ・タスク34に渡す。ステップ626の後、メッセージ・トランザクション ・ユニット44はステップ628において、同期受信MCB72で指定されたイ ベント通知情報に従って受信サーバ・タスク34に通知する。ステップ628の 後、またはステップ630の後、メッセージ・トランザクション・ユニット44 はステップ632において、受信MCBおよび対応するペンディング受信メッセ ージ・リストの参照符号を削除する。ステップ632の後、ステップ640に進 む。 図16A,16Bおよび16Cは継続メッセージ動作(図10Bのステップ1 36および図19Aのステップ1018)を行なう方法を示すフローチャートで ある。ステップ700においてメッセージ・トランザクション・ユニット44が 継続メッセージ要求で指定されたメッセージIDをデコードする。次に、メッセ ージ・トラン ザクション・ユニット44はステップ702において、メッセージIDが有効で あるかどうかを判断する。メッセージIDが有効でなければ、メッセージ・トラ ンザクション・ユニット44はステップ710において無効IDエラーを返して 終了する。メッセージIDが有効であれば、メッセージ・トランザクション・ユ ニット44はステップ704において、対応する送信MCBを探し、その後メッ セージ・トランザクション・ユニットはステップ706において、送信MCBの 第3のデータ・フィールドにおいて指定された現在のメッセージ・オブジェクト IDをデコードする。ステップ706の後、メッセージ・トランザクション・ユ ニット44はステップ708において、現在のメッセージ・オブジェクトIDが 有効であるかどうかを判断する。有効でなければ、メッセージ・トランザクショ ン・ユニット44はステップ710において無効IDエラーを返して終了する。 現在のメッセージ・オブジェクトIDが有効であれば、メッセージ・トランザク ション・ユニット44はステップ712において、フィルタ・オブジェクト・チ ェーンを走査する方向を決定する。フィルタ・オブジェクト・チェーンを走査す る方向を決定するに際して、メッセージ・トランザクション・ユニット44は送 信MCBに記憶されている現在のメッセージIDが現在のフィルタ・オブジェク ト56に記憶されたプリプロセッサ・メッセージ・オブジェクトIDとマッチン グするかどうかを判断する。送信MCBに記憶された現在のメッセージIDが現 在のフィルタ・オブジェクト56に記憶されたプリプロセッサ・メッセージ・オ ブジェクトIDとマッチングするならば、フィルタ・オブジェクト・チェーン走 査方向は順方向である。逆の場合、フィルタ・オブジェクト・チェーンは逆方向 である。フィルタ・オブジェクト・チェーン走査方向が順方向の場合、メッセー ジはプリプロセッサ・メッセージ・オブジェクト52もしくは目標メッセージ・ オブジェクト51に送る。フィルタ・オブジェクト・チェーン走査方向が逆方向 ならば、メッ セージはポストプロセッサ・メッセージ・オブジェクト53に送る。 ステップ712の後、メッセージ・トランザクション・ユニット44はステッ プ720において、送信MCBの第2データ・フィールドで与えられた現在のフ ィルタ・オブジェクト56が別のフィルタ・オブジェクト56を参照しているか どうかをフィルタ・オブジェクト・チェーン走査方向に従って判断する。別のフ ィルタ・オブジェクト56が参照されているならば、メッセージ・トランザクシ ョン・ユニット44はステップ732において、フィルタ・オブジェクト・チェ ーン走査方向に沿った次の被参照フィルタ・オブジェクト56を選択する。次に 、メッセージ・トランザクション・ユニット44はステップ732において、フ ィルタ・オブジェクト・チェーン走査方向が順方向の場合、選択されたフィルタ ・オブジェクト56が関連するプリプロセッサ・メッセージ・オブジェクト52 を有するかどうかを判断し、フィルタ・オブジェクト・チェーン走査方向が逆方 向の場合、選択されたフィルタ・オブジェクト56が関連するポストプロセッサ ・メッセージ・オブジェクト53を有するかどうかを判断する。すなわち、メッ セージ・トランザクション・ユニット44はフィルタ・オブジェクト・チェーン 走査方向に従って選択されたフィルタ・オブジェクト56がメッセージ・オブジ ェクト58を参照するかどうかを判断する。選択されたフィルタ・オブジェクト 56がフィルタ・オブジェクト・チェーン走査方向に従ってメッセージ・オブジ ェクト58を参照しないならば、ステップ720に進む。選択されたフィルタ・ オブジェクト56がフィルタ・オブジェクト・チェーン走査方向に従ってメッセ ージ・オブジェクト58を参照するならば、メッセージ・トランザクション・ユ ニット44は送信MCBで指定されたメッセージ・タイプが選択されたフィルタ ・オブジェクトのメッセージ・タイプ・リストのメッセージ・タイプとマッチン グするかどうかを判断する。マッチングしないならば、ステップ720に戻る。 送信MCBで指定さ れたメッセージ・タイプが選択されたフィルタ・オブジェクトのメッセージ・タ イプ・リストのメッセージ・タイプとマッチングするならば、メッセージ・トラ ンザクション・ユニット44はステップ736において、選択されたフィルタ・ オブジェクト56においてフィルタ・オブジェクト・チェーン走査方向に従って 参照されたメッセージ・オブジェクトを現在のメッセージ・オブジェクトとする 。ステップ736の後、メッセージ・オブジェクト44はステップ738におい て選択されたフィルタ・オブジェクト56を現在のフィルタ・オブジェクトとす る。ステップ738の後、メッセージ・トランザクション・ユニット44はステ ップ739において、継続メッセージ要求で指定された現在の結果に従って受渡 MCB80の現在の結果を更新する。次に、メッセージ・トランザクション・ユ ニット44はステップ740において、順方向メッセージ動作を行い終了する。 ステップ720においてメッセージ・トランザクション・ユニット44が現在 のフィルタ・オブジェクト56がフィルタ・オブジェクト・チェーン走査方向に 従って別のフィルタ・オブジェクト56を参照していないと判断した場合、メッ セージ・トランザクション・ユニット44はステップ722において、送信MC Bによって参照されたメッセージに対して行なわれた一番最近の動作がプリプロ セッサ・メッセージ・オブジェクト52に関連しているかどうかを調べる。関連 しているならば、メッセージ・トランザクション・ユニット44はステップ72 6において、目標メッセージ・オブジェクト51を現在のメッセージ・オブジェ クト58とする。その後、メッセージ・オブジェクト44はステップ728にお いて、目標メッセージ・オブジェクトのフィルタ・オブジェクト・チェーン57 の最後のフィルタ・オブジェクト56を現在のフィルタ・オブジェクト56とす る。ステップ728の後、ステップ740に進む。 メッセージ・トランザクション・ユニット44がステップ722 においてフィルタ・オブジェクト・チェーン走査方向が逆方向であると判断し、 送信MCBによって参照されたメッセージに対して行なわれた一番最近の動作が ポストプロセッサ・メッセージ・オブジェクト53に関連していることが示唆さ れた場合、メッセージ・トランザクション・ユニット44は次にステップ750 において、送信MCBにおけるフィルタ・オブジェクト56のスタックが空であ るかどうかを判断する。フィルタ・オブジェクトのスタックが空ではない場合、 メッセージ・トランザクション・ユニット44はステップ752において、フィ ルタ・オブジェクトのスタックの一番上の項目を選択し、ステップ754におい て、対応するフィルタ・オブジェクト56を現在のフィルタ・オブジェクト56 とする。次にメッセージ・トランザクション・ユニット44はステップ756に おいて、フィルタ・オブジェクトのスタックの一番上の項目を削除する。ステッ プ756の後、ステップ732に進む。 メッセージ・トランザクション・ユニット44がステップ750においてフィ ルタ・オブジェクトのスタックが空であると判断した場合、メッセージ・トラン ザクション・ユニット44は次にステップ750において応答動作を行い終了す る。 図17A,17Bおよび17Cは順方向メッセージ動作(図10Bのステップ 140、図14のステップ516および図16Bのステップ740)を行なう方 法を示すフローチャートである。ステップ800においてメッセージ・トランザ クション・ユニット44が順方向メッセージ要求で指定されたメッセージIDを デコードする。次に、メッセージ・トランザクション・ユニット44はステップ 802において、順方向メッセージ要求で指定されたメッセージIDが有効であ るかどうかを判断する。メッセージIDが有効でなければ、メッセージ・トラン ザクション・ユニット44はステップ804において無効IDエラーを返して終 了する。メッセージIDが有効であれば、メッセージ・トランザクション・ユニ ット44はス テップ806において、メッセージ・オブジェクト・ロック動作と同期する。次 に、メッセージ・トランザクション・ユニット44はステップ808において、 メッセージIDに対応する送信MCBの場所を特定する。そしてメッセージ・ト ランザクション・ユニット44はステップ810において、送信MCBが現在の ポート・オブジェクトのペンディング応答メッセージ・リストで参照されている かどうかを判断する。参照されている場合、メッセージ・トランザクション・ユ ニット44はステップ811において、送信MCBへの参照符号を現在のポート ・オブジェクトのペンディング応答メッセージ・リストから削除する。ステップ 811の後、またはステップ810の後、メッセージ・トランザクション・ユニ ット44はステップ812において、送信MCBは同期送信MCB60かどうか 判断する。送信MCBが同期送信MCB60ではないならば、メッセージ・トラ ンザクション・ユニット44はステップ814において、順方向メッセージ要求 が現在のポート・オブジェクト54と異なるポート・オブジェクト54を示して いるかどうかを判断する。異なるポート・オブジェクトであるならば、メッセー ジ・トランザクション・ユニット44はステップ816において、新しいポート ・オブジェクト54上に新しい非同期送信MCB62を割り当てる。メッセージ ・トランザクション・ユニット44は次にステップ818において、古い非同期 送信MCB62からデータ・フィールドを新しい非同期送信MCB62にコピー する。 ステップ818の後、ステップ814の後、またはステップ812の後、メッ セージ・トランザクション・ユニット44はステップ822において、順方向メ ッセージ要求が新しい目標メッセージ・オブジェクト51を示しているかどうか を判断する。示しているならば、メッセージ・トランザクション・ユニット44 はステップ824において、新しい目標メッセージ・オブジェクトIDが有効か どうかを判断する。新しい目標メッセージ・オブジェクトIDが有 効でなければ、メッセージ・トランザクション・ユニット44は無効IDエラー を返して終了する。新しい目標メッセージ・オブジェクトIDが有効であれば、 メッセージ・トランザクション・ユニット44ステップ828において、同期送 信MCB60または新しい非同期送信MCB62のいずれかにおけるフィルタ・ オブジェクトのスタックを更新する。ステップ828では、メッセージ・トラン ザクション・ユニット44は、同期送信MCB60または新しい非同期送信MC B62のいずれかにおけるフィルタ・オブジェクトのスタックに保存された元来 の目標メッセージ・オブジェクトのフィルタ・オブジェクト・チェーン57の各 フィルタ・オブジェクト56への参照符号を逆方向にプッシュする。すなわち、 元来の目標メッセージオブジェクト51に関連したフィルタ・オブジェクト・チ ェーン57のフィルタ・オブジェクト56への参照符号が、フィルタ・オブジェ クト・チェーン57の最後のフィルタ・オブジェクト56に始まってフィルタ・ オブジェクト・チェーン57の最初のフィルタ・オブジェクト56に至るように 、フィルタ・オブジェクト・スタックにプッシュされていく。ステップ828の 後、メッセージ・トランザクション・ユニット44はステップ830において、 新しい目標メッセージ・オブジェクト51を現在のメッセージ・オブジェクトと する。 ステップ830の後、またはステップ822の後、メッセージ・トランザクシ ョン・ユニット44はステップ816の結果新しい非同期送信MCB62が割り 当てられたかどうか判断する。割り当てられている場合、メッセージ・トランザ クション・ユニット44はステップ834において、古いポート・オブジェクト 54上の古い非同期送信MCB62の割当を解除する。ステップ834の後、ま たはステップ832の後、メッセージ・トランザクション・ユニット44はステ ップ836において、現在のメッセージ・オブジェクト58に関連したポート・ オブジェクト54を現在のポート・オブ ジェクト54とすることによって、メッセージ・トランザクション・ユニット4 4は同期送信MCB60または新しい非同期送信MCB62のいずれかのデータ ・フィールドを更新する。次にメッセージ・トランザクション・ユニット44は ステップ838において、プリプロセッサ・メッセージ・オブジェクト52を調 べ、その後メッセージ・トランザクション・ユニット44はステップ840にお いて、低レベル送信動作を行なう。ステップ840の後、終了する。 図18Aおよび18Bは受信メッセージ動作(図10Bおよび10Cのそれぞ れステップ144および158)を行なう方法を示すフローチャートである。ス テップ900において、メッセージ・トランザクション・ユニット44は受信メ ッセージ要求で指定されたポート・オブジェクトIDをデコードする。次に、メ ッセージ・トランザクション・ユニット44はステップ902において、ポート ・オブジェクトIDが有効かどうかを判断する。ポート・オブジェクトIDが有 効でなければ、メッセージ・トランザクション・ユニット44はステップ904 において、受信メッセージ要求を発行したサーバ・タスク34に無効IDエラー を返し、終了する。ポート・オブジェクトIDが有効の場合、メッセージ・トラ ンザクション・ユニット44は次にステップ906において、マッチングする送 信MCBがポート・オブジェクトのペンディング送信メッセージリストに存在す るかどうか判断する。マッチングする送信MCBが存在しない場合、メッセージ ・トランザクション・ユニット44はステップ908において、発行された受信 メッセージ要求のタイプに従って受信MCBを作成し、ペンディング受信メッセ ージ要求リストの受信MCBに参照符号を挿入する。ステップ908の後、メッ セージ・トランザクション・ユニット44はステップ910において、同期受信 メッセージ要求かどうかを判断する。同期要求でない場合、メッセージ・トラン ザクション・ユニット44はステッ プ912において、非同期受信メッセージ要求を発行したサーバ・タスク34に 受信IDを返し、終了する。同期受信メッセージ要求の場合、メッセージ・トラ ンザクション・ユニットはステップ914において、受信メッセージ要求を発行 したサーバー・タスク34をブロック化する。次に、ステップ916において、 メッセージ・トランザクション・ユニット44は受信MCBで指定された最大時 間間隔を超過したかどうかを判断する。超過の場合、メッセージ・トランザクシ ョン・ユニット44はステップ918において、サーバー・タスク34に対して タイムアウト・ステータスを返し、終了する。最大時間間隔を超過していない場 合、メッセージ・トランザクション・ユニットはメッセージ・トランザクション ・ユニットは次にステップ920において、マッチングする送信メッセージ要求 が発行されたかどうかを判断する。発行されていない場合、ステップ916に戻 る。マッチングする送信メッセージ要求が発行されている場合、メッセージ・ト ランザクション・ユニット44はステップ922において固有のメッセージID を生成し対応する送信MCBを作成する。 ステップ922の後、またはステップ906の後、マッチングする送信MDB が存在する場合、メッセージ・トランザクション・ユニット44はステップ93 0において、ポート・オブジェクトのペンディング応答メッセージ・リストの送 信MCBに参照符号を挿入する。メッセージ・トランザクション・ユニット44 は次にステップ932において、受信メッセージ要求または受信MCBで指定さ れたアドレスに受信MCB80を作成する。ステップ932の後、メッセージ・ トランザクション・ユニット44はステップ934において、受信メッセージ要 求が同期受信メッセージ要求かどうかを判断する。同期メッセージ要求である場 合、メッセージ・トランザクション・ユニット44はステップ936において、 受信メッセージ要求を発行したサーバ・タスク34がブロック化されているかど うかを判断する。ブロック化されている場合、メッセージ・トランザクション・ ユニット44はステップ938において、サーバ・タスク34を非ブロック化す る。メッセージ・トランザクション・ユニット44がステップ934において受 信メッセージ要求が同期受信メッセージ要求ではなく非同期受信メッセージ要求 であると判断した場合、メッセージ・トランザクション・ユニット44はステッ プ940において、非同期受信メッセージ要求を発行したサーバ・タスク34に 通知する。ステップ940またはステップ938の後、もしくはステップ938 が実行されていない場合はステップ936の後、メッセージ・トランザクション ・ユニット44はステップ942において、送信MCBで指定されたメッセージ を受信メッセージ要求で指定されたメッセージ・バッファに送る。ステップ94 2の後、メッセージ・トランザクション・ユニット44はステップ944におい て、受信メッセージ要求に対応する受信MCBが作成されたかどうかを判断する 。作成されている場合、メッセージ・トランザクション・ユニット44はステッ プ946において、受信MCBおよびペンディング受信メッセージ・リストの対 応参照符号を削除する。ステップ946の後、もしくはステップ946が実行さ れていない場合はステップ944の後、終了する。 図19Aおよび19Bは応答方法を示すフローチャートである。ステップ10 00においてメッセージ・トランザクション・ユニット44はメッセージIDを デコードする。次にメッセージ・トランザクション・ユニット44はステップ1 002において、メッセージIDが有効かどうかを判断する。メッセージIDが 有効でなければ、メッセージ・トランザクション・ユニット44はステップ10 04において無効IDエラーを返し、終了する。メッセージIDが有効であれば 、メッセージ・トランザクション・ユニット44はステップ1006において、 対応する送信MCBの位置を特定する。メッセージ・トランザクション・ユニッ ト44は次にステップ10 08において、メッセージに対して実行された一番最近の動作がプリプロセッサ ・メッセージ・オブジェクト52に関連しているかどうかを判断する。ステップ 1008において、メッセージ・トランザクション・ユニット44は現在のメッ セージ・オブジェクトIDが現在のフィルタ・オブジェクト56内に記憶されて いるプリプロセッサ・メッセージ・オブジェクトIDと同一かどうかを判断する 。メッセージに対して行なわれた一番最近の動作がプリプロセッサ・メッセージ ・オブジェクト52と関連しているならば、メッセージ・トランザクション・ユ ニット44はステップ1010において、現在のフィルタ・オブジェクト56と 関連したポストプロセッサ・メッセージ・オブジェクト53を現在のメッセージ ・オブジェクト58とする。ステップ1010の後、メッセージ・トランザクシ ョン・ユニット44はステップ1011において、応答で指定された現在の結果 に従って受信MCB80の現在の結果を更新する。次に、メッセージ・トランザ クション・ユニット44はステップ1012において、転送メッセージ動作を行 ない終了する。 ステップ1018においてメッセージ・トランザクション・ユニット44が現 在のメッセージ・オブジェクトIDが現在のフィルタ・オブジェクト56内に記 憶されているプリプロセッサ・メッセージ・オブジェクトIDと同一であると判 断した場合、メッセージ・トランザクション・ユニット44はステップ1010 から1012を実行して上記のスキップ・アヘッド動作を行なう。すなわちプリ プロセッサ・メッセージ・オブジェクト52と関連したプリプロセッシング・サ ービスを実行中にサーバ・タスク34が応答を発行した場合、付加的プリプロセ ッシングを考慮した追加的なフィルタ・オブジェクト56を調べないで、またメ ッセージを目標メッセージ・オブジェクト51に渡さずに、メッセージは直接プ リプロセッサ・メッセージ・オブジェクト52に関連したポストプロセッサ・メ ッセージ・オブジェクト53に送られる。付加的なプリプロ セッシング・サービスおよび目標メッセージ・オブジェクト51と関連したサー ビスはスキップ・アヘッド動作によってスキップされる。 ステップ1008においてメッセージ・トランザクション・ユニット44がメ ッセージに対して一番最近行なわれた動作がプリプロセッサ・メッセージ・オブ ジェクト52に関連していないと判断した場合、メッセージ・トランザクション ・ユニット44はステップ1014において、現在のフィルタ・オブジェクト5 6が以前のフィルタ・オブジェクト56を参照しているかどうかを判断する。参 照しているならば、メッセージ・トランザクション・ユニット44はステップ1 018において、継続メッセージ動作を行ない終了する。メッセージ・トランザ クション・ユニット44がステップ1014において現在のフィルタ・オブジェ クト56が以前のフィルタ・オブジェクト56を参照していないと判断すれば、 メッセージ・トランザクション・ユニット44は送信MCBのフィルタ・オブジ ェクトのスタックが空いているかどうか判断する。フィルタ・オブジェクトのス タックが空ではない場合、ステップ1018に進む。フィルタ・オブジェクトの スタックが空の場合、メッセージ・トランザクション・ユニット44は次にステ ップ1020において、送信MCBで指示されたクライアント・タスク32に応 答ステータスを渡す。メッセージ・トランザクション・ユニット44は次にステ ップ1022において、応答バッファが応答中に指示されているかどうかを判断 する。指示されていれば、メッセージ・トランザクション・ユニット44はステ ップ1024において、応答バッファの内容のコピーをクラインアント・タスク 32に渡す。ステップ1024の後、もしくは応答中に応答バッファが指示され ていない場合はステップ1022の後、メッセージ・トランザクション・ユニッ ト44はステップ1026において、現在のメッセージ・オブジェクト56がメ ッセージ・トランザクション終了後非ブロック化 される必要があるかどうかを判断する。必要があれば、メッセージ・トランザク ション・ユニット44はステップ1028において対応する非ブロック化要求を ロッキング部46に発行する。ステップ1026の後、またはステップ1028 の後、メッセージ・トランザクション・ユニット44はステップ1030におい てメッセージ・トランザクションを表すメッセージIDを削除する。最後に、メ ッセージ・トランザクション・ユニット44はステップ1032において送信M CBを削除し終了する。 図20はロック動作を示すフローチャートである。本発明では、ロック動作は 合衆国特許NO.08/220,043と同様の方法でロック動作を行なう。ス テップ1100においてロック部46がロック要求で指定されたメッセージ・オ ブジェクトIDが有効かどうかを判断する。メッセージ・オブジェクトIDが有 効でなければ、ロック部46はステップ1102において、ロック要求の発行元 に対して無効IDエラーを返して終了する。メッセージ・オブジェクトIDが有 効であれば、ロック部46は次にステップ1104において、メッセージ・オブ ジェクト58が既にロックされているかどうかを、メッセージ・オブジェクト5 2と関連したポート・オブジェクト54内のロック済メッセージ・オブジェクト ・リストを調べることによって判断する。本発明の好ましい実施例においては、 ロック済メッセージ・オブジェクト・リストの各要素は、メッセージ・オブジェ クトIDとセマフォを指定したロック構造である。メッセージ・オブジェクト5 8がロック済でない場合、ロック部46はステップ1105において、クライア ント・タスク32によって発行された新しい送信メッセージ要求を無視し、ステ ップ1106においてメッセージ・オブジェクト58を指定した、関連ポート・ オブジェクトのペンディング応答メッセージ・リストで参照された各送信MCB に対して応答が発行されるのを待つ。好ましくは、ロック部46は、メッセージ ・オブジェクト58を指定したペン ディング応答メッセージ・リストで参照されている送信メッセージ制御ブロック の数をまず数えることによって、ステップ1106を実行し、その後ロック部4 6は数えあげた各被参照ブロックがペンディング応答メッセージ・リストから消 されるのを待つ。ステップ1106の後、ロック部46は対応するメッセージ・ オブジェクトIDを含む新しいロック構造をロック済メッセージ・オブジェクト のリストに挿入することによって、メッセージ・オブジェクト58をロックする 。次にロック部46はステップ1118において、ロック要求の発行元に制御を 返し、終了する。 ステップ1104において、ロッキングユニット46がメッセージオブジェク ト58は既にロックされたことを判定した場合、ロッキングユニット46は、次 に、ステップ1110においてロック要求発行者の照会先をロックされたメッセ ージオブジェクトのリスト内の対応するロック構造セマフォに加える。好ましく は、セマフォは、メッセージオブジェクト58をロックするため待機中の各タス クのクライアントタスクID又はサーバタスクIDを示す先入れ先出し順のロッ ク待ちリストを与える。ステップ1110の後に、ロッキングユニット46は、 ステップ1112において、現在考慮されているロック要求の発行者がメッセー ジオブジェクトのロックの支配権を次に受容するかどうかを判定する。好ましい 方法において、ロッキングユニット46は、現在考慮されているロック要求の発 行者のIDがロック待ちリストの先頭にあるかどうかを判定することによりステ ップ1112を実行する。現在考慮されているロック要求の発行者がメッセージ オジェクトのロックの支配権を次に受けないならば、上記の好ましい方法はステ ップ1112に留まる。 現在考慮されているロック要求の発行者がメッセージオブジェクトのロックの 支配権を次に受けた後、ロッキングユニット46は、ロック解除要求がステップ 1114において発行されたかどうかを判定する。ロック解除要求が発行されて いないならば、好ましい方 法は、ステップ1114に留まる。ロック解除要求が発行された後、ロッキング ユニット46は、ステップ1116においてロック解除動作を行うことによりロ ック解除要求に応答する。ステップ1116に続き、ステップ1118において 、上記の好ましい方法は、現在考慮されているロック要求の発行者に制御を戻し 、その後、上記の好ましい方法は終了する。 図21を参照するに、ロック解除動作を行う好ましい方法のフローチャートが 示される。本発明において、ロック解除動作は、米国特許出願第08/220, 043号に記載された方法と同じ方法で行われる。好ましい方法は、ロッキング ユニット46がロック解除要求に示されたメッセージオブジェクト52のメッセ ージオブジェクトIDが有効であるかどうかを判定するステップ1200から始 まる。メッセージオブジェクトIDが有効ではないならば、ロッキングユニット 46は、ステップ1202において、ロック解除要求の発行者に無効IDエラー を返し、次に、好ましい方法は終了する。ステップ1200において、メッセー ジオブジェクトIDが有効であると判定されたならば、ロッキングユニット46 は、次に、ステップ1204において、メッセージオブジェクト52が現在ロッ クされているかどうかを判定する。好ましくは、ロッキングユニット46は、ロ ックされたメッセージオブジェクトの関係したポートオブジェクトのリストを検 査することにより、メッセージオブジェクト52が現在ロックされているかどう かを判定する。メッセージオブジェクト52が現在ロックされていない場合、ロ ッキンングユニット46は、ステップ1206において、ロック解除要求の発行 者にロック状態エラーを戻し、その後、好ましい方法は終了する。 メッセージオブジェクト52が現在ロックされているならば、ロッキングユニ ット46は、次にステップ1208において、別のタスクがメッセージオブジェ クトのロックの支配権の取得を待機し ているかどうかを判定する。ロッキングユニット46は、好ましくは、メッセー ジオブジェクト52と関係したセマフォを検査することにより、ステップ120 8を実行する。他のタスクが支配権の取得を待機していないならば、ロッキング ユニット46は、ステップ1210において、ロックされたメッセージオブジェ クトの対応するポートオブジェクトのリストから対応するロック構造を除去する 。ステップ1210に続き、ロッキングユニット46は、ステップ1214にお いて、ロック解除要求の発行者に制御を戻す。ステップ1208において別のタ スクがメッセージオブジェクトのロックの支配権の取得を待機しているならば、 ロッキングユニット46は、ステップ1212において、セマフォのロック待ち リストの先頭のクライアントタスク32又はサーバタスク34の照会先を除去す る。ステップ1212に続いて、好ましい方法はステップ1214に進む。 好ましい実施例を参照して本発明の説明を行ったが、当業者は種々の変更が与 えられることを認める。請求の範囲の記載だけによって限定された本発明により 、上記の好ましい実施例に基づく変形及び変更が与えられる。 付録 A メッセージオブジェクトフィルタリングの Nuカーネルオペレーティングシステム Nuカーネル ERSのフィルタ内容 (付録Aの題材)オブジェクトメッセージのフィルタリング メッセージフィルタは、別のオブジェクトメッセージを遮るため使用されるオ ブジェクトの対である。フィルタを備えたオブジェクトはターゲットと呼ばれる 。ターゲット上に実装されたフィルタの組はフィルタ系列と呼ばれる。 実装されたフィルタはIDにより名前を付けられる。IDは、後でフィルタを 除去、又は、フィルタの実装情報を取得するため使用される。 実装された後、フィルタは、クライアントとサーバの双方に対し完全にトラン スペアレントである。しかし、サーバは、そのオブジェクトがターゲットになる ものを完全に管理する。 ターゲットが削除されたならば、実装された全フィルタは、自動的に除去され る。ターゲットがロックされたならば、ロックはフィルタ系列の全体に適用され る。ターゲットオブジェクトのフィルタ系列は、繰り返しのサービスを用いて検 査される。 フィルタの数、又は、フィルタを通されるオブジェクトの数に制限はない。フ ィルタオブジェクトは、単一のポートを共有するが、フィルタは一つのオブジェ クトのメッセージだけを遮ることが可能である。 メッセージフィルタ 2種類のメッセージオブジェクトがフィルタに使用される。第1の種類のオブ ジェクトは、メッセージがターゲットに到達する前に、メッセージを遮り、プリ プロセッサと呼ばれる。第2の種類のオブジェクトは、メッセージがターゲット から離れた後にメッセージを遮り、ポストプロセッサと呼ばれる。フィルタは、 プリプロセッサだけから構成してもよく、或いは、ポストプロセッサだけから構 成してもよい。 一つのメッセージだけが各フィルタ及びターゲットオブジェクトを通過させら れる。このメッセージは、最初にプリプロセッサに与えられ、次にターゲットに 与えられ、最後にポストプロセッサに与えられる。 送信メッセージ(SendMessage)、送信メッセージ非同期(SendMessageAsync)、 及び転送メッセージ(ForwardMessage)のサービスは、オブジェクトのプリプロセ ッサを起動する。メッセージ応答(ReplyToMessage)及び非同期メッセージ削除(C ancelAsyncMessage)サービスは、ポストプロセッサを起動する。継続メッセージ (ContinueMessage)サービスは、メッセージを系列内の次のオブジェクトに伝達 するためオブジェクトによって使用される。 転送メッセージサービスは、メッセージを新しいターゲットに供給する前に現 在のフィルタ系列内の残りのポストプロセッサを積み 重ねる。新しいターゲットと、そのフィルタが処理を完了した後、残りのポスト プロセッサの積み重ねが作動される。 プリプロセッサオブジェクトは、ターゲットを飛び越し、その対の一方から始 まる後処理を開始するため、メッセージ応答を発行する。ポストプロセッサオブ ジェクトにより発生されたメッセージによる状態は、その対の一方により除去さ れる。 内容変更フィルタが提供される予定ならば、オブジェクトのメッセージ内容の フォーマットは公開される。フィルタがフォーマットの変化に従うならば、メッ セージ内容の版数が望ましい。 フィルタ名 全てのフィルタには名前が付けられる。同じターゲットに取付けられたフィル タは、特有の名前をもつ必要がある。別個のターゲットに実装されたフィルタは 名前を共有してもよい。 フィルタ名は、サービス及び署名の型により構成される。サービス型は、フィ ルタにより提供される機能を識別する。署名型は、サービスの提供者を識別する 。 フィルタ名 例えば、アップル社製の暗号化フィルタは、’ENCR’,’APPL’のよう に名前が付けられる。署名型の登録及び割当ては、アップルコンピュータ社によ り管理される。 フィルタの順序付け ある種のフィルタは、他のフィルタに対する起動の順序の保証を要求する。順 序の要求条件は、2個の規則の組により指定される。 第1の規則はフィルタ系列の所望の場所の前にあるフィルタを指定し、第2の規 則は後にあるフィルタを指定する。前方及び後方規則の組合せにより、フィルタ 系列内の配置が決まる。 フィルタの順序付け
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AP(KE,MW,SD,SZ,UG), AM,AT,AU,BB,BG,BR,BY,CA,C H,CN,CZ,DE,DK,EE,ES,FI,GB ,GE,HU,JP,KE,KG,KP,KR,KZ, LK,LR,LT,LU,LV,MD,MG,MN,M W,MX,NO,NZ,PL,PT,RO,RU,SD ,SE,SI,SK,TJ,TT,UA,UZ,VN (72)発明者 シマンスキー,スティーヴン ジェイ アメリカ合衆国,カリフォルニア州 95014,クパティーノ,ロドリゲス・アヴ ェニュー 20060番,アパートメント デ ィー 【要約の続き】 に発送する。ターゲットメッセージオブジェクトへの配 送の後、メッセージ交信ユニットは、一つ或いは複数の 関連する後処理メッセージオブジェクトにメッセージを 選択的に発送する。サーバタスクは、前処理メッセージ オブジェクト、ターゲットメッセージオブジェクト、及 び後処理メッセージオブジェクトに関連づけられたポー トオブジェクトからメッセージを受信して、前処理、処 理、及び後処理操作を促進する。オブジェクト指向メッ セージフィルタリング方法は、ポートオブジェクトを生 成し、ポートオブジェクトに関連づけられたターゲット メッセージオブジェクトを生成し、ターゲットメッセー ジオブジェクトに関連づけられたフィルタオブジェクト を生成し、フィルタオブジェクトに関連づけられた前処 理メッセージオブジェクトを生成し、送信メッセージ要 求によって開始されたメッセージ交信に反応してユニー クなメッセージIDを生成し、送信メッセージ制御ブロ ックを生成し、送信メッセージ制御ブロックをターゲッ トメッセージオブジェクトに配送する前に前処理メッセ ージオブジェクトに選択的に発送する各段階を含む。

Claims (1)

  1. 【特許請求の範囲】 1. 処理ユニットとメモリを有し、オブジェクト指向メッセージフィルタリン グユニットと、クライアントタスクと、サーバタスクとが存するオブジェクト指 向メッセージフィルタリングシステムのメッセージフィルタリング方法であって 、 ポートオブジェクトを生成する段階と、 上記クライアントタスクにより発行された送信メッセージ要求によって指定さ れたメッセージの宛先としての機能を行うターゲットメッセージオブジェクトを 生成する段階と、 メッセージ前処理サービス又はメッセージ後処理サービスの群からの一つが、 送信メッセージ要求により始められたメッセージトランザクションの間に必要と されるかどうかを選択的に示すフィルタオブジェクトを生成する段階とからなる 方法。 2. 上記メッセージトランザクションの間にメッセージ前処理サービスが必要 とされるかどうかを判定する段階と、 メッセージ前処理サービスが必要とされる場合に、上記メッセージを上記サー バタスクに伝達する段階とを更に有する請求項1記載の方法。 3. 上記メッセージトランザクションの間にメッセージ後処理が必要とされる かどうかを判定する段階と、 メッセージ後処理サービスが必要とされる場合に、上記メッセージを上記サー バタスクに伝達する段階とを更に有する請求項1記載の方法。 4. 上記ポートオブジェクトへの参照を上記ターゲットオブジェクトメッセー ジに格納する段階と、 上記ターゲットメッセージオブジェクトへの参照を上記フィルタオブジェクト に格納する段階とを更に有する請求項1記載の方法。 5. プリプロセッサメッセージオブジェクトを生成する段階と、 上記プリプロセッサメッセージオブジェクトへの参照を上記フィルタオブジェ クトに格納する段階とを更に有する請求項1記載の方法。 6. ポストプロセッサメッセージオブジェクトを生成する段階と、 上記ポストプロセッサメッセージオブジェクトへの参照を上記フィルタオブジ ェクトに格納する段階とを更に有する請求項1記載の方法。 7. 上記送信メッセージ要求により始められた上記メッセージトランザクショ ンに対応する上記固有のメッセージ識別信号を発生する段階と、 発生された上記メッセージ識別信号に対応する送信メッセージ制御ブロックを 生成する段階を更に有する請求項1記載の方法。 8. プリプロセッサメッセージオブジェクトが上記フィルタオブジェクトに関 係するかどうかを判定する段階と、 上記フィルタオブジェクトが関係のあるプリプロセッサメッセージオブジェク トを有する場合に、上記プリプロセッサメッセージオブジェクトへの参照を上記 送信メッセージ制御ブロックに格納する段階とを更に有する請求項7記載の方法 。 9. 上記サーバタスクからの受信メッセージ要求が上記送信メッセージ制御ブ ロックと一致するかどうかを判定する段階と、 上記受信メッセージ要求が上記送信メッセージ制御ブロックと一 致するならば、上記プリプロセッサメッセージオブジェクトに対応するメッセー ジ前処理サービスを始めるため上記サーバタスクに信号を発行する段階とを更に 有する請求項8記載の方法。 10. 次のフィルタオブジェクトが上記ターゲットメッセージオブジェクトと 関係するかどうかを判定する段階を更に有する請求項9記載の方法。 11. 次のフィルタオブジェクトが次のターゲットメッセージオブジェクトと 関係する場合に、 プリプロセッサメッセージオブジェクトが上記次のフィルタオブジェクトと関 係するかどうかを判定し、 上記次のフィルタオブジェクトが関係のあるプリプロセッサメッセージオブジ ェクトを有する場合に、上記次のフィルタオブジェクトに関係した上記プリプロ セッサメッセージオブジェクトへの参照を上記送信メッセージ制御ブロックに格 納する段階を実行する請求項10記載の方法。 12. 上記フィルタオブジェクトに関係したポストプロセッサメッセージオブ ジェクトへの参照を上記送信メッセージ制御ブロックに格納する段階を更に有す る請求項9記載の方法。 13. 上記ターゲットメッセージオブジェクトへの参照を上記送信メッセージ 制御ブロックに格納する段階を更に有する請求項9記載の方法。 14. 次のターゲットメッセージオブジェクトへの参照を上記送信メッセージ 制御ブロックに格納する段階を更に有する請求項13記載の方法。 15. 元のターゲットメッセージオブジェクトと関係した上記フィルタオブジ ェクトへの参照を上記送信メッセージ制御ブロックに格納する段階を更に有する 請求項14記載の方法。 16. ポストプロセッサメッセージオブジェクトが上記フィルタオブジェクト と関係するかどうかを判定する段階と、 上記フィルタオブジェクトが関係のあるポストプロセッサメッセージオブジェ クトを有する場合に、上記ポストプロセッサメッセージオブジェクトへの参照を 上記送信メッセージ制御ブロックに格納する段階とを更に有する請求項7記載の 方法。 17. 前のフィルタオブジェクトが上記ターゲットメッセージオブジェクトと 関係するかどうかを判定する段階を更に有する請求項16記載の方法。 18. 前のフィルタオブジェクトが上記ターゲットメッセージオブジェクトと 関係する場合に、 ポストプロセッサメッセージオブジェクトが上記前のフィルタオブジェクトと 関係するかどうかを判定し、 上記前のフィルタオブジェクトが関係のあるポストプロセッサメッセージオブ ジェクトを有する場合に、上記前のフィルタオブジェクトと関係のある上記ポス トプロセッサメッセージオブジェクトへの参照を上記送信メッセージ制御ブロッ クに格納する段階を実行する請求項17記載の方法。 19. 前のフィルタオブジェクトが上記ターゲットメッセージオブジェクトと 関係しない場合に、上記クライアントタスクに最終応答を発行する段階を更に有 する請求項17記載の方法。 20. ポートオブジェクトを生成する手段と、 上記ポートオブジェクトと関係したターゲットメッセージオブジェクトを生成 する手段と、 上記ターゲットメッセージオブジェクトと関係したフィルタオブジェクトを生 成する手段とからなるオブジェクト指向メッセージフィルタリング装置。 21. プリプロセッサメッセージオブジェクトを生成する手段を更に有する請 求項20記載のオブジェクト指向メッセージフィルタリング装置。 22. ポストプロセッサメッセージオブジェクトを生成する手段を更に有する 請求項20記載のオブジェクト指向メッセージフィルタリング装置。 23. クライアントタスクからの送信メッセージ要求により始められたメッセ ージトランザクションに対応する固有のメッセージ識別信号を発生する手段と、 発生された上記メッセージ識別信号に対応する送信メッセージ制御ブロックを 生成する手段とを更に有する請求項20記載のオブジェクト指向メッセージフィ ルタリング装置。 24. プリプロセッサメッセージオブジェクト、ポストプロセッサメッセージ オブジェクト、又は、ターゲットメッセージオブジェクトよりなる群からの一つ のオブジェクトへの参照を上記送信メッセージ制御ブロックに格納する手段を更 に有する請求項20記載のオブジェクト指向メッセージフィルタリング装置。 25. サーバタスクにより発行された受信メッセージ要求が上記送信メッセー ジ制御ブロックに一致するかどうかを判定する手段を更に有する請求項20記載 のオブジェクト指向メッセージフィルタリング装置。 26. クライアントタスクからのメッセージを少なくとも一つのサーバタスク に供給するオブジェクト指向メッセージフィルタリングシステムであって、 入力及び出力を有し、ポートオブジェクトと、ターゲットメッセージオブジェ クトと、フィルタオブジェクトと、プリプロセッサメッセージオブジェクトとを 生成するオブジェクト管理ユニットと、上記ポートオブジェクトと、上記ターゲ ットメッセージオブジェクトと、上記フィルタオブジェクトと、上記プリプロセ ッサメッセージオブジェクトとを格納するオブジェクトデータベースと、送信メ ッセージ要求に応答して送信メッセージ制御ブロックを生成し、上記プリプロセ ッサメッセージオブジェクトへの参照を上記送信メッセージ制御ブロックに選択 的に格納し、上記ターゲットメッセージオブジェクトへの参照を上記送信メッセ ージ制御ブロックに選択的に格納するメッセージトランザクションユニットとを 含むデータ及び命令を格納するメモリと、 上記メモリの上記出力に接続された入力と、上記メモリの上記入力に接続され た出力とを有し、上記メモリの管理下でデータ及び命令を処理する処理ユニット とからなるシステム。 27. クライアントタスクからのメッセージを少なくとも一つのサーバタスク に供給するオブジェクト指向メッセージフィルタリングシステムであって、 入力及び出力を有し、ポートオブジェクトと、ターゲットメッセージオブジェ クトと、フィルタオブジェクトと、ポストプロセッ サメッセージオブジェクトとを生成するオブジェクト管理ユニットと、上記ポー トオブジェクトと、上記ターゲットメッセージオブジェクトと、上記フィルタオ ブジェクトと、上記ポストプロセッサメッセージオブジェクトとを格納するオブ ジェクトデータベースと、送信メッセージ要求に応答して送信メッセージ制御ブ ロックを生成し、上記ターゲットメッセージオブジェクトへの参照を上記送信メ ッセージ制御ブロックに選択的に格納し、上記ポストプロセッサメッセージオブ ジェクトへの参照を上記送信メッセージ制御ブロックに選択的に格納するメッセ ージトランザクションユニットとを含むデータ及び命令を格納するメモリと、 上記メモリの上記出力に接続された入力と、上記メモリの上記入力に接続され た出力とを有し、上記メモリの管理下でデータ及び命令を処理する処理ユニット とからなるシステム。
JP52968295A 1994-05-13 1995-05-02 オブジェクト指向メッセージフィルタリングのシステム及び方法 Expired - Lifetime JP3689425B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/242,259 US5734903A (en) 1994-05-13 1994-05-13 System and method for object oriented message filtering
US08/242,259 1994-05-13
PCT/US1995/005457 WO1995031780A1 (en) 1994-05-13 1995-05-02 System and method for object oriented message filtering

Publications (2)

Publication Number Publication Date
JPH10500507A true JPH10500507A (ja) 1998-01-13
JP3689425B2 JP3689425B2 (ja) 2005-08-31

Family

ID=22914081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52968295A Expired - Lifetime JP3689425B2 (ja) 1994-05-13 1995-05-02 オブジェクト指向メッセージフィルタリングのシステム及び方法

Country Status (6)

Country Link
US (1) US5734903A (ja)
EP (1) EP0791196B1 (ja)
JP (1) JP3689425B2 (ja)
AU (1) AU2465795A (ja)
DE (1) DE69524253T2 (ja)
WO (1) WO1995031780A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260588A (ja) * 1998-08-17 2006-09-28 Microsoft Corp 分散コンポーネントアプリケーションでの待機メソッド呼び出し方法
JP2010538355A (ja) * 2007-08-31 2010-12-09 シーメンス プロダクト ライフサイクル マネージメント ソフトウェアー インコーポレイテッド 組み込みシステムのデータ管理システムおよび方法

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822527A (en) * 1990-05-04 1998-10-13 Digital Equipment Corporation Method and apparatus for information stream filtration using tagged information access and action registration
KR960008583A (ko) * 1994-08-26 1996-03-22 윌리암 티. 엘리스 데이타 프로세싱 시스템 및 데이타 프로세싱 시스템 관리 방법
US6269407B1 (en) 1996-03-14 2001-07-31 International Business Machines Corporation Method and system for data filtering within an object-oriented data
GB9606733D0 (en) * 1996-03-29 1996-06-05 British Telecomm Collection of events within a distributed object system
US6718550B1 (en) 1996-06-26 2004-04-06 Sun Microsystems, Inc. Method and apparatus for improving the performance of object invocation
US6275871B1 (en) * 1996-07-03 2001-08-14 Siemens Aktiengesellschaft Asynchronous transport optimizing observer-pattern-like system supporting several modes for an interface definition language-less communication subsystem
US6108655A (en) * 1996-07-19 2000-08-22 Cisco Technology, Inc. Method and apparatus for transmitting images and other objects over a computer network system
US20060195595A1 (en) * 2003-12-19 2006-08-31 Mendez Daniel J System and method for globally and securely accessing unified information in a computer network
US6061713A (en) * 1997-03-12 2000-05-09 Fujitsu Limited Communications system for client-server data processing systems
US6185551B1 (en) 1997-06-16 2001-02-06 Digital Equipment Corporation Web-based electronic mail service apparatus and method using full text and label indexing
US6092101A (en) * 1997-06-16 2000-07-18 Digital Equipment Corporation Method for filtering mail messages for a plurality of client computers connected to a mail service system
US6199102B1 (en) 1997-08-26 2001-03-06 Christopher Alan Cobb Method and system for filtering electronic messages
US6317796B1 (en) * 1997-10-06 2001-11-13 Sun Microsystems, Inc. Inline database for receiver types in object-oriented systems
US6510460B1 (en) 1997-12-18 2003-01-21 Sun Microsystems, Inc. Method and apparatus for enforcing locking invariants in multi-threaded systems
US6438616B1 (en) 1997-12-18 2002-08-20 Sun Microsystems, Inc. Method and apparatus for fast, local corba object references
US6249803B1 (en) * 1997-12-18 2001-06-19 Sun Microsystems, Inc. Method and apparatus for executing code during method invocation
US6405264B1 (en) 1997-12-18 2002-06-11 Sun Microsystems, Inc. Marshaling and unmarshaling framework for supporting filters in a distributed object system
US6516354B2 (en) 1997-12-18 2003-02-04 Sun Microsystems, Inc. Method and apparatus for efficient representation of variable length identifiers in a distributed object system
US6351751B1 (en) * 1998-05-14 2002-02-26 Sun Microsystems, Inc. Persistent storage managers for configuring client/server environments
US7173651B1 (en) * 1998-06-02 2007-02-06 Knowles Andrew T Apparatus and system for prompt digital photo delivery and archival
US6112227A (en) 1998-08-06 2000-08-29 Heiner; Jeffrey Nelson Filter-in method for reducing junk e-mail
JP2000122913A (ja) * 1998-10-15 2000-04-28 Fujitsu Ltd オブジェクト管理方法及び装置
US6668284B1 (en) 1998-11-04 2003-12-23 Beckman Coulter, Inc. Software messaging system
US6240453B1 (en) 1998-11-12 2001-05-29 International Business Machines Corporation Managing unused resources in a service application
US6868541B1 (en) * 1998-12-21 2005-03-15 Microsoft Corporation Asynchronous programming environment
US6442589B1 (en) 1999-01-14 2002-08-27 Fujitsu Limited Method and system for sorting and forwarding electronic messages and other data
JP3323144B2 (ja) * 1999-01-19 2002-09-09 松下電器産業株式会社 移動端末
US6286035B1 (en) * 1999-02-01 2001-09-04 Lucent Technologies Inc. Validating and parsing engine for system configuration and support command messages
KR100617228B1 (ko) * 1999-03-19 2006-08-31 엘지전자 주식회사 실시간 운영체계 커널의 이벤트 전달 체계 구현방법
US6446036B1 (en) * 1999-04-20 2002-09-03 Alis Technologies, Inc. System and method for enhancing document translatability
US6338033B1 (en) * 1999-04-20 2002-01-08 Alis Technologies, Inc. System and method for network-based teletranslation from one natural language to another
US6718367B1 (en) * 1999-06-01 2004-04-06 General Interactive, Inc. Filter for modeling system and method for handling and routing of text-based asynchronous communications
US7013465B1 (en) * 1999-08-17 2006-03-14 Emc Corporation System, device and method for interprocessor communication in a computer system
US6832266B1 (en) * 2000-02-07 2004-12-14 Sun Microsystems, Inc. Simplified microkernel application programming interface
US6658658B1 (en) 2000-02-17 2003-12-02 International Business Machines Corporation Implicit forwarding and resolving of a reference made by an importing module to an exporting module for a specified export
US6728722B1 (en) 2000-08-28 2004-04-27 Sun Microsystems, Inc. General data structure for describing logical data spaces
US6865579B1 (en) 2000-08-28 2005-03-08 Sun Microsystems, Inc. Simplified thread control block design
US7287071B2 (en) 2000-09-28 2007-10-23 Vignette Corporation Transaction management system
USH2176H1 (en) * 2000-10-05 2006-12-05 Johnson Controls Technology Company System for processing interior environment complaints from building occupants
US6753886B1 (en) * 2000-10-31 2004-06-22 Cisco Technology, Inc. Methods and apparatus for communicating messages in a computer display
US6781961B1 (en) 2000-11-17 2004-08-24 Emware, Inc. Systems and methods for routing messages sent between computer systems
KR100570143B1 (ko) * 2000-12-09 2006-04-12 인터내셔널 비지네스 머신즈 코포레이션 상호 통신 프리프로세서
US7080120B2 (en) * 2001-01-19 2006-07-18 Digital Orchid, Inc. System and method for collaborative processing of distributed applications
DE10131944A1 (de) * 2001-07-02 2003-01-16 Siemens Ag Verfahren zur Verarbeitung von Daten
US7703077B2 (en) * 2002-04-30 2010-04-20 Microsoft Corporation Programming model to detect deadlocks in concurrent programs
US20030208524A1 (en) * 2002-05-02 2003-11-06 Morman Daniel N. System for routing data in a communication network
US7516182B2 (en) * 2002-06-18 2009-04-07 Aol Llc Practical techniques for reducing unsolicited electronic messages by identifying sender's addresses
US20040117793A1 (en) * 2002-12-17 2004-06-17 Sun Microsystems, Inc. Operating system architecture employing synchronous tasks
US7620691B1 (en) 2003-02-10 2009-11-17 Aol Llc Filtering electronic messages while permitting delivery of solicited electronics messages
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
WO2005003909A2 (en) * 2003-06-27 2005-01-13 University Of Florida Research Foundation, Inc. Perimeter-based defense against data flooding in a data communication network
US8817772B2 (en) * 2003-07-02 2014-08-26 Nokia Corporation Function mode routing
US7627635B1 (en) 2003-07-28 2009-12-01 Aol Llc Managing self-addressed electronic messages
US7647595B2 (en) * 2003-10-29 2010-01-12 Oracle International Corporation Efficient event notification in clustered computing environments
US20050125667A1 (en) * 2003-12-09 2005-06-09 Tim Sullivan Systems and methods for authorizing delivery of incoming messages
WO2005062843A2 (en) 2003-12-19 2005-07-14 America On Line, Inc Community messaging lists for authorization to deliver electronic messages
US20050193130A1 (en) * 2004-01-22 2005-09-01 Mblx Llc Methods and systems for confirmation of availability of messaging account to user
US7469292B2 (en) * 2004-02-11 2008-12-23 Aol Llc Managing electronic messages using contact information
US7797669B1 (en) 2004-02-13 2010-09-14 Microsoft Corporation Analysis of distributed software systems via specification substitution
US7824408B2 (en) * 2004-08-05 2010-11-02 Tyco Healthcare Group, Lp Methods and apparatus for coagulating and/or constricting hollow anatomical structures
US7549151B2 (en) * 2005-02-14 2009-06-16 Qnx Software Systems Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment
US7625372B2 (en) * 2005-02-23 2009-12-01 Vnus Medical Technologies, Inc. Methods and apparatus for coagulating and/or constricting hollow anatomical structures
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
US8151112B2 (en) * 2005-04-22 2012-04-03 Gerard Lin Deliver-upon-request secure electronic message system
US8667184B2 (en) * 2005-06-03 2014-03-04 Qnx Software Systems Limited Distributed kernel operating system
US7840682B2 (en) 2005-06-03 2010-11-23 QNX Software Systems, GmbH & Co. KG Distributed kernel operating system
US7844957B2 (en) * 2005-08-19 2010-11-30 Sybase, Inc. Development system with methodology providing optimized message parsing and handling
US20070088793A1 (en) * 2005-10-17 2007-04-19 Landsman Richard A Filter for instant messaging
US7680096B2 (en) * 2005-10-28 2010-03-16 Qnx Software Systems Gmbh & Co. Kg System for configuring switches in a network
US8185944B2 (en) * 2006-02-28 2012-05-22 The Boeing Company High-assurance file-driven content filtering for secure network server
US8041946B2 (en) * 2006-02-28 2011-10-18 The Boeing Company Data transfer between networks operating at different security levels
GB0605341D0 (en) * 2006-03-17 2006-04-26 Ergo Ltd 2 Managing message distribution
WO2008113639A1 (en) * 2007-03-16 2008-09-25 International Business Machines Corporation Method, apparatus and computer program for administering messages which a consuming application fails to process
TW200839561A (en) * 2007-03-22 2008-10-01 Wistron Corp Method of irregular password configuration and verification
US9032087B2 (en) * 2007-07-13 2015-05-12 International Business Machines Corporation Providing a fine-grained response from a coarse-grained service object
US20090158298A1 (en) * 2007-12-12 2009-06-18 Abhishek Saxena Database system and eventing infrastructure
US8934890B2 (en) * 2008-01-11 2015-01-13 Texas Instruments Incorporated Transmission of data bursts on a constant data rate channel
US8799909B1 (en) * 2008-12-23 2014-08-05 Juniper Networks, Inc. System and method for independent synchronous and asynchronous transaction requests
US8112666B2 (en) * 2009-03-03 2012-02-07 International Business Machines Corporation Message producer with message type validation
US8936631B2 (en) * 2010-01-04 2015-01-20 Covidien Lp Apparatus and methods for treating hollow anatomical structures
US8793691B2 (en) * 2010-04-15 2014-07-29 Salesforce.Com, Inc. Managing and forwarding tasks to handler for processing using a message queue
EP2572277A1 (en) * 2010-05-19 2013-03-27 Hughes Systique India Private Limited Method and system for efficient inter- process communication in a high availability system
US10812434B2 (en) * 2017-03-23 2020-10-20 Blackberry Limited Apparatus and method for maintaining message databases in eventual consistency distributed database systems
US11138265B2 (en) * 2019-02-11 2021-10-05 Verizon Media Inc. Computerized system and method for display of modified machine-generated messages
CN110046079B (zh) * 2019-04-25 2024-03-12 广州方硅信息技术有限公司 网络请求检测方法、装置及设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868745A (en) * 1986-05-30 1989-09-19 Hewlett-Packard Company Data processing system and method for the direct and indirect execution of uniformly structured object types
US4704717A (en) * 1986-07-22 1987-11-03 Prime Computer, Inc. Receive message processor for a solicited message packet transfer system
US4970658A (en) * 1989-02-16 1990-11-13 Tesseract Corporation Knowledge engineering tool
US5339418A (en) * 1989-06-29 1994-08-16 Digital Equipment Corporation Message passing method
EP0463252B1 (en) * 1990-06-28 1996-12-27 International Business Machines Corporation Message handling in data processing apparatus
US5291593A (en) * 1990-10-24 1994-03-01 International Business Machines Corp. System for persistent and delayed allocation object reference in an object oriented environment
US5315709A (en) * 1990-12-03 1994-05-24 Bachman Information Systems, Inc. Method and apparatus for transforming objects in data models
US5305461A (en) * 1992-04-03 1994-04-19 International Business Machines Corporation Method of transparently interconnecting message passing systems
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
US5377350A (en) * 1993-04-30 1994-12-27 International Business Machines Corporation System for cooperative communication between local object managers to provide verification for the performance of remote calls by object messages

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260588A (ja) * 1998-08-17 2006-09-28 Microsoft Corp 分散コンポーネントアプリケーションでの待機メソッド呼び出し方法
JP4528742B2 (ja) * 1998-08-17 2010-08-18 マイクロソフト コーポレーション 分散コンポーネントアプリケーションでの待機メソッド呼び出し方法
JP2010538355A (ja) * 2007-08-31 2010-12-09 シーメンス プロダクト ライフサイクル マネージメント ソフトウェアー インコーポレイテッド 組み込みシステムのデータ管理システムおよび方法

Also Published As

Publication number Publication date
EP0791196A1 (en) 1997-08-27
DE69524253T2 (de) 2002-07-18
EP0791196B1 (en) 2001-11-28
JP3689425B2 (ja) 2005-08-31
DE69524253D1 (de) 2002-01-10
US5734903A (en) 1998-03-31
AU2465795A (en) 1995-12-05
WO1995031780A1 (en) 1995-11-23

Similar Documents

Publication Publication Date Title
JPH10500507A (ja) オブジェクト指向メッセージフィルタリングのシステム及び方法
US6529932B1 (en) Method and system for distributed transaction processing with asynchronous message delivery
US8719411B2 (en) Method and system for monitoring messages passed over a network
US20060161820A1 (en) Highly reliable distributed system
JP2001526815A (ja) リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ
US20030120704A1 (en) Method and device to assist in the execution of tasks of parallel jobs
CN110188103A (zh) 数据对账方法、装置、设备和存储介质
US9501334B2 (en) Protocol for communication of data structures
JP2002532784A (ja) ネットワークドライバおよびソフトウェアのリモートインストールの方法および装置
EP0959406A2 (en) Method and apparatus for providing for notification of task termination in an information handling system
JP2001516083A (ja) マルチポイントパブリッシュ/サブスクライブ通信における証明付メッセージの配送およびキュー操作
CN114629904A (zh) 一种分布式事件的处理方法、系统、设备及介质
US5432901A (en) Method of dynamically generating a local format for use by a logical unit in a VTAM-type communications session
JP2007018182A (ja) ウイルス検査装置及びウイルス検査システム
JP3312362B2 (ja) マルチプロセッサシステム
CN113472781B (zh) 一种服务获取方法、服务器及计算机可读存储介质
WO1997035262A1 (fr) Procede de generation automatique de programme et procede de commande d'execution
CN112037053B (zh) 一种用于区块链的通用交易解释器及其解释方法
JP2021149506A (ja) 情報処理装置、情報処理方法およびプログラム
CN114387109B (zh) 一种数据处理装置、方法和基于区块链的业务系统
Goscinski et al. Message passing and RPC-based interprocess communication mechanisms in the RHODOS microkernel
US20080256178A1 (en) Method and Apparatus for Providing Software by Functional Units in a Software Streaming System
EP1798916A1 (en) System and method for regulating an extensibility point's access to a message
CN116249577A (zh) 控制方法、控制装置、以及程序
CN117909406A (zh) 基于分层区块链的数据处理方法、装置以及可读存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040330

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040630

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040929

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: 20050517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050613

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080617

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080617

Year of fee payment: 3

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080617

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090617

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100617

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100617

Year of fee payment: 5

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110617

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110617

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120617

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120617

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130617

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term