(57)【特許請求の範囲】
【請求項１】
コンピュータのためのイベント通知のコンピュータ実行方法であって、各イベントが前記コンピュータに対して拡張可能であり、各イベント・クラスがそれぞれの通知者プログラムと関係付けられ、各通知者プログラムが対応するイベントの発生の通知を検出および前記対応するイベントの通知を要求している要求者プログラムのために送信することにより、対応するイベント・クラスのイベントの発生に応答し、
前記コンピュータの通知マネージャにおいて、要求者プログラムがメモリにロードされているか否かに拘わらず、前記コンピュータの要求者プログラムの各々から複数のイベント登録要求を受信し、各登録要求が、
要求者プログラムを識別する第1の識別子、および
通知者プログラムの１つを識別する第２の識別子を含み、
各登録要求に応答して、通知マネージャによりマップに前記要求者プログラムと通知者プログラムのそれぞれを識別する前記第1および第２の識別子を記憶し、
前記通知マネージャがマップ内で識別された各通知者プログラムを起動し、
発生したイベントの検出の後、前記通知者プログラムの特定の１つからの受信している通知に応答して、通知マネージャにより、
通知者プログラムの特定の１つに係わる提示された登録要求を持っている全ての要求者プログラムを識別するためにマップにアクセスし、
識別された要求者プログラムを起動し、発生したイベントの各々の表示を送信するステップを含み、
１つ以上の登録要求が、所望のイベント通知の特性を規定する通知パラメータをさらに含み、
前記登録要求の各々に応答する操作が、前記通知パラメータの前記マップへの記憶をさらに含み、
通知者プログラムからのイベントの通知に応答する操作は、通知者プログラムに係わる提示された登録要求を持っている各要求者プログラムに関して、所望のイベント通知の特性を表わす前記通知パラメータを識別するために前記マップを通知マネージャがアクセスすることをさらに含み、
識別された要求者プログラムへの発生イベントの表示の送信が該当する前記通知パラメータにしたがって行われる方法。
【請求項２】
要求者プログラムの少なくとも１つをアンロードすることをさらに含む、請求項１記載の方法。
【請求項３】
起動された各要求者プログラムについて、要求者プログラムが滞在駐留要求を提示したかどうかを判定し、もしそうでなければ、要求者プログラムを停止することをさらに含む、請求項１記載の方法。
【請求項４】
通知パラメータはビット・マスクによって表され、各ビットは前以て割当てられた異なる意味を有する、請求項１記載の方法。
【請求項５】
提示する操作は要求者プログラムによって実行される、請求項１記載の方法。
【請求項６】
操作は最初にＩＤを各要求者プログラム及び通知者プログラムと関連づけることをさらに含み、通知者プログラム及び要求者プログラムの前記識別はＩＤによって与えられる、請求項１記載の方法。
【請求項７】
コンピュータにより実行されるとき、前記コンピュータに以下のステップを実行させる命令を記憶するコンピュータ可読媒体であって、ステップが、
要求者プログラムがメモリにロードされるか否かに拘わらず、特定のイベント・タイプのイベントの通知を要求している要求者プログラムの各々から、複数のイベント登録要求を通知マネージャが受信し、各イベントは複数のイベント・タイプの１つと関係し、前記複数のイベント・タイプはそれぞれ複数のイベント・タイプを持っている複数のイベント・クラスに関連付けられ、各イベント・クラスはそれぞれの通知者プログラムと関係しており、各通知者プログラムが対応するイベントの発生の通知を検出し、および前記対応するイベントの通知を要求している要求者プログラムのために送信することにより、対応するイベント・クラスのイベントの発生に応答し、複数のイベント登録要求の各々が、
要求者プログラムの識別、および
通知者プログラムの１つの識別を含み、
各登録要求に応答して、前記要求者および通知者プログラムのそれぞれの前記識別を前記通知マネージャがマップに記憶し、
前記通知マネージャが前記マップで識別された各通知者プログラムを起動し、
発生したイベントの検出の後、前記通知者プログラムの特定の１つからの受信している通知に応答して、
通知者プログラムの特定の１つに係わる提示された登録要求を持っている全ての要求者プログラムを識別するために前記通知マネージャが前記マップにアクセスし、
前記通知マネージャが識別された要求者プログラムを起動し、発生したイベントの各々の表示を送信する操作を行い、
１つ以上の登録要求が、所望のイベント通知の特性を規定する通知パラメータをさらに含み、
各要求に応答する操作が、前記パラメータの前記マップへの記憶をさらに含み、
通知者プログラムからのイベントの通知に応答する操作が、通知者プログラムに係わる提示された登録要求を持っている各要求者プログラムに関して、所望の通知の特性を表わす通知パラメータを識別するために前記通知マネージャが前記マップにアクセスすることをさらに含み、
識別された要求者プログラムへの発生イベントの表示の送信が通知パラメータにしたがって行われ、
各イベント、各要求者プログラム、各通知者プログラム、および前記マップが前記コンピュータに対して拡張可能であるコンピュータ可読媒体。
【請求項８】
イベントを検出するイベント通知装置であって、
各々が特定のイベント・タイプのイベントの通知を要求している多数の要求者手段と、  各々の通知者手段が対応するイベント・クラスのイベントの発生に応答し、対応するイベントの発生の通知を送信する複数の通知者手段と、
マップ手段と、
複数の要求者手段、複数の通知者手段およびマップ手段に接続された通知マネージャ手段とを含み、前記通知マネージャ手段は、
要求者手段または通知者手段がメモリにロードされたか否かに拘わらず、前記複数の要求者手段からの登録要求を受信し、各登録要求は、
前記要求者手段の１つの識別、および
前記通知者手段の１つの識別を含み、
各受信された登録要求に応答して、前記マップ手段に要求者手段および通知者手段の識別を記憶し、
前記マップ手段で識別された各通知者手段を起動し、
発生したイベントの検出の後、前記複数の通知者手段の特定の１つからの受信している通知に応答して、
前記複数の通知者手段の特定の１つに係わる提示された登録要求を持っている全ての要求者手段を識別するためにマップ手段にアクセスし、
識別された要求者手段を起動し、発生したイベントの各々の表示を送信することを含むステップを行うように構成され、
通知マネージャ手段は、
登録要求を受信する前記ステップが、イベント通知の特性を規定する１つ以上の通知パラメータを受信することをさらに含み、
識別を記憶する前記ステップが、前記マップ手段に前記１つ以上の通知パラメータを記憶することをさらに含み、
マップ手段にアクセスする通知者手段の前記ステップが、通知者手段に係わる登録要求を提示した各要求者手段を識別することをさらに含み、識別された要求者手段へ発生したイベントの表示の送信が、該当する通知パラメータに従って行われるように構成され、
各イベント、各要求者手段、各通知者手段、通知マネージャ手段およびマップ手段が前記イベント通知装置に対して拡張可能である装置。
【請求項９】
通知マネージャ手段はさらに識別された要求者手段を起動し、発生したイベントの表示を各々に送信する前記ステップの後に、要求者手段をアンロードするように構成される、請求項８記載の装置。
【請求項１０】
通知マネージャ手段は、識別された要求者手段を起動し、発生したイベントの表示を各々に送信する前記ステップの後、起動された要求者手段が滞在駐留要求を提示したかどうかを判定し、もしそうでなければ、要求者手段を停止させるようにさらに構成された、請求項８記載の装置。
【請求項１１】
通知パラメータはビット・マスクによって表され、各ビットは前以て割当てられた異なる意味を有する、請求項８記載の装置。
【請求項１２】
イベント通知のコンピュータ実施方法であって、
要求者プログラムがメモリにロードされているか否かに拘わらず、それぞれのイベント・クラスの発生の通知されることを要望している各要求者プログラムからのそれぞれの登録要求を受信し、
登録要求が、
各要求者プログラムに対応しているそれぞれの要求者プログラム識別子と、
それぞれの要求者プログラムが通知されることを要望するそれぞれのイベント・クラスの中の、複数の通知者プログラムの１つの対応しているそれぞれの通知者プログラム識別子であって、複数の通知者プログラムの各々が複数のイベントから多数の所定のイベントの発生を検出するように動作可能であり、多数の所定のイベントの各１つが多数の所定のイベントの他のものと異なり、多数の所定のイベントの各組がそれぞれの通知者プログラムと関係したそれぞれのイベント・クラスを規定し、各通知者プログラムがそれぞれのイベント・クラスと関係した多数の所定のイベントの１つを検出することに応答してイベント通知を発生するようにさらに動作可能であり、イベント通知が多数の所定のイベントの検出された１つを識別する識別子と、
それぞれのイベント・クラスと関係する多数の所定のイベントから少なくとも１つの所望のイベントを表わす通知選択とを含み、
要求者プログラム識別子を通知者プログラム識別子および各登録要求のための通知選択と関連させ、
検出されたイベントを含んでいるイベント通知を受信し、
検出されたイベントを通知するため各登録された要求者プログラムを識別し、各識別された登録された要求者プログラムは、検出されたイベントに一致するそれぞれの要望されたイベントを識別しているそれぞれの通知選択を持つ任意のそれぞれの登録要求に対応している任意のそれぞれの要求者プログラムを含み、
各識別された登録された要求者プログラムを起動し、
検出されたイベントを識別しているメッセージを各識別された登録された要求者プログラムに転送し、
通知選択を含んでいるそれぞれの通知要求を受信することが、少なくとも１つの通知パラメータを備えた少なくとも1つの通知選択と関係付けている辞書を参照すること、および識別された通知パラメータをそれぞれの要求者プログラム識別子およびそれぞれの通知者プログラム識別子と関連させることをさらに含む方法。
【請求項１３】
通知選択を含んでいるそれぞれの通知要求を受信することが、所定の通知パラメータを受信することをさらに含む、請求項１２記載の方法。
【請求項１４】
通知選択を含んでいるそれぞれの通知要求を受信することが、検出されたイベントのそれぞれの要求者プログラムを通知することに対応している条件を受信することをさらに含む、請求項１２記載の方法。
【請求項１５】
識別することが、条件を識別すること、および識別された登録された要求者プログラムに対応することに関して条件を実行することをさらに含む、請求項１２記載の方法。
【請求項１６】
各それぞれの通知者プログラム識別子に対応しているそれぞれの通知者プログラムを起動することをさらに含む、請求項１２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ・ソフトウェアにおいて実施されるイベント検出及び警報システムに関する。
【背景技術】
【０００２】
割込みはコンピュータに取付けられたデバイスから、もしくはコンピュータ（オペレーティング・システム）を作動させる主プログラムを停止させたり、次に行うことを算定するコンピュータ中のプログラムからの信号である。現在、多くのコンピュータは割込み駆動される。それらは一つのプログラム（おそらく、ワープロのようなアプリケーション）におけるコンピュータ命令のリストに従って開始し、それ以上進むことができないか、割込み信号が検知されるまで命令を実行し続ける。割込み信号が検知された後で、コンピュータは実行していたプログラムの実行を再開するか、或いは別のプログラムを実行し始める。
【０００３】
基本的には、一つのコンピュータは一度にただ一つのコンピュータ命令を実行することができる。しかし、それは中断できるので、実行するプログラムまたは命令集合を交互に行うことができる。これはマルチタスクとして知られている。それによってユーザは同時にいくつかの異なることを行うことが可能となる。コンピュータは単に交替でユーザが効果的に開始するプログラムを管理する。もちろん、コンピュータはあたかも全てのユーザのタスクが同時に実行されているかのように思える速度で作動する。（コンピュータのオペレーティング・システムは他のプログラム上で働くために動作及びユーザ思考時間に少しの休止を使用するのに良い）。
【０００４】
オペレーティング・システムは割り込みハンドラと呼ばれるあるコードを通常持っている。割込みハンドラは割込みに優先順位をつけ、一以上の処理が待機中であればそれらを列順に登録する。オペレーティング・システムはスケジューラと時々呼ばれる別の小さなプログラムを有し、次にどのプログラムを制御するかを算定する。割り込み要求はそれを特定のデバイスとして認識するそれと関連する値を有する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
単一プロセッサの状況においては有益であるけれども、様々な異なるイベントの通知の程度を変えることを必要とする多くの異なるプログラムをもつシステムにとって現状は十分には満足されない。現行の実施では、通知（notification）は一般に「固定配線」されており、その中で通知に関係する特定の機能領域が受持つ特定の機能呼出しを通して提供される。その実施は動的に機構を拡張する能力を欠いている。さらに、新しい型の通知を加えるために、アプリケーション・プログラマ・インタフェースの新しい集合が開発されなければならない。
【０００６】
したがって、既知のイベント通知手法はある未解決の問題によりいくつかのアプリケーションに全く適切ではない。
【課題を解決するための手段】
【０００７】
本発明はあるイベントを検出し、そのような通知に関して登録された要求者（requestor）のプログラムを通知する拡張可能なイベント通知システムに関わる。そのシステムは通知マネージャ、多数のイベント通知者（notifier）プログラム、多数の要求者プログラム、マップ、及び通知辞書を含む。
【０００８】
最初に、各要求者プログラムはそれぞれの登録要求を通知マネージャに提示する。各登録要求は特定の通知者プログラムと関連するイベント「クラス」において一以上の将来のイベント通知を受信する要求である。各登録要求は（要求者プログラムを識別する）要求者ＩＤ及び（登録が求められるイベント・クラスに対応する通知者プログラムを識別する）イベント通知者ＩＤを含む。通知マネージャは登録要求の内容に関連してマップに要求プログラムの識別を記憶する。
【０００９】
様々な時に、通知マネージャはいくつかのイベント通知者プログラムを起動し、各々は特定のイベント・クラスに対応する。通知者プログラムが（通知者プログラムによって検出可能なイベント・クラスから）イベントを検出すると、それは通知マネージャに通知する。それに応えて、通知マネージャはイベントの発生の適切な要求プログラムを通告する行動をとる。最初に、通知マネージャは起動された通知者プログラムに関係する登録要求を提示した全ての要求プログラムを識別するためにマップにアクセスする。それから、通知マネージャは識別された要求プログラムを起動し、発生したイベントの表示をそれらに送信する。所望されれば、通知マネージャは起動された要求プログラムをまた適切な時に停止させることができる。
【００１０】
前述の特徴はいくつかの異なる形で実施できる。例えば、本発明は拡張可能なイベント通知システムを操作する方法を提供するために実施される。別の実施例では、本発明は拡張可能なイベント通知システムといった装置を提供するために実施される。また別の実施例では、本発明はここで論じられる拡張可能なイベント通知システムを操作するために、ディジタル・データ処理装置によって実行可能な機械可読命令のプログラムを明白に実施する信号担持媒体を供給するために実施される。別の実施例はここで記述される拡張可能なイベント通知システムを提供するために構成される多数の相互接続された電気伝導素子を有する論理回路に関わる。
【００１１】
本発明はいくつかの明白な利点をそのユーザに提供する。主として、登録はメモリ内の要求者及び通知者プログラムに対するポインタではなくこれらのプログラムＩＤを使用して発生するから、要求者及び通知者プログラムが登録の時にメモリ内に存在するかどうかに拘らず登録は発生できる。搭載され、特定のイベントを能動的にチェックする要求者プログラムに関する要求なしでその通知が管理されると有利である。本発明はまたいくつかの他の利点及び利益を提供し、それは本発明の次の記述から明白になる。
【００１２】
本発明の特性、目的、及び利点は付随の図に関連して下記の詳細な記述を考察することにより当業者にはさらに明白になるであろう。
【発明を実施するための最良の形態】
【００１３】
ハードウェア及び相互接続
全体の構造
本発明の一形態は拡張可能なイベント通知システムに関わり、それは図１のシステム１００よって示された一例によって、種々のハードウェア部品及び相互接続によって具現化される。システム１００は通知マネージャ１０２、多数の要求者プログラム１０８、多数の通知者プログラム１０４、マップ１１０、及び辞書１１２を含む。
【００１４】
要求者プログラム
要求者プログラムは種々多様な機能を実行するソフトウェア・プログラムを含み、その詳細はシステム１００、例えば、無線電話、自動車用コンピュータ等のアプリケーション内容に依存する。各要求者プログラムはあるイベント１０６の発生に応答して行動をとるように構成される。イベント１０６の通知を受信するために、要求者プログラム１０８は、下記にさらに詳述するように、通知マネージャ１０２によって登録する。各要求者プログラム１０８はＩＤ１０８ａ〜１０８ｃによって示された関連の識別子（ＩＤ）を有する。現在の例では、各要求者プログラムＩＤは異なる３２ビットの２進数を含む。各要求者プログラムによって示されているけれども、関連のＩＤは一覧表（list）、表（table）、マップ、またはＩＤ１０８ａ〜１０８ｃをもつ要求者プログラムに関連する他の構造体のどこか別の場所に代って記憶される。
【００１５】
通知者プログラム
通知者プログラム１０４は種々のイベントの発生を検出するソフトウェア・プログラムを含む。イベント１０６はシステム１００の中またはその外部で発生するハードウェア及び／またはソフトウェア・イベントを含み、その正確な本質はシステム１００のアプリケーション内容に依存する。いくつかの典型的なイベントはハードウェア・デバイスの構成、時間の終了、所定時間の到来、処理タスクの終了、特定のハードウェア割込み経験における変更を含む。
【００１６】
例示されているように、各通知者プログラム１０４は多数の異なるイベントを検出することが可能である。特定の通知者プログラム１０４によって検出可能なイベントは通知者プログラムの「イベント・クラス」と呼ばれる。各通知者プログラム１０４はＩＤ１０４ａ〜１０４ｃによって示されたＩＤを含む。現在の例では、各通知者ＩＤは異なる３２ビット数を含む。各通知者プログラムによって示されているけれども、関連のＩＤは一覧表、表、マップ、ＩＤ１０８ａ〜１０８ｃをもつ要求者プログラムに関連する他の構造体のどこか別の場所に代って記憶される。各通知者プログラム１０４はその通知者プログラムのイベント・クラスのイベントを検出するのに応答して通知マネージャ１０２に通知する働きをする。
【００１７】
通知マネージャ
通知マネージャ１０２は、通知者プログラム１０４及び要求者プログラム１０８に通信的に結合され、要求者プログラム１０８から登録要求を受信し、またさらに通知者プログラム１０４からイベント通知を受信する働きをする。登録要求は一以上の将来のイベント型式の通知を受信する要求プログラムからの要求である；各登録要求は要求者プログラム１０８ａ〜１０８ｃ及び所望のイベント・クラスに対応する通知者プログラム１０４の識別を含む。登録を求める各要求者プログラム１０８について、通知マネージャ１０２は、対応する通知者プログラムＩＤ、及び通知パラメータと共に、マップにＩＤ１０８ａ〜１０８ｃを記憶する。
【００１８】
このように、通知者プログラム１０４が通知マネージャ１０２にイベントに対する警報を出すときはいつでも、通知マネージャ１０２は警報通知者プログラムに関して登録した全ての要求プログラム１０８を識別するために最初にマップ１１０にアクセスする。従って、通知マネージャ１０２は識別された要求プログラムを起動し、そして発生したイベントを識別するメッセージをそれに送信する。
【００１９】
マップ
表１（下記）はマップ１１０の典型的な構成を例示する。
【００２０】
【表１】
0004805530.tif 000002
この例では、マップ１１０は各「登録された」要求プログラム１０８、即ち、イベント・クラスの通知を受信するため通知マネージャ１０２に提示した各要求プログラム１０８の一覧を含む。例示された例では、マップ１１０はそれらの３２ビットＩＤによって登録された要求プログラム１０８を識別する。各登録に関して、マップ１１０はその登録のイベント・クラスに対応する通知者プログラム１０４を列挙する。例示された例では、マップ１１０はその３２ビットＩＤによって各通知者プログラム１０４を指定する。
【００２１】
各登録要求者プログラム１０８について、マップ１１０はさらに通知パラメータを列挙する。下記でさらに詳細に説明されるように、通知パラメータは発呼者が受信を望む通知者プログラムのクラスのイベントを指定する。例示された例では、各通知者プログラムのイベント・クラスは三つの異なるイベントを含む。これらのイベントは三つの対応ビットによって表される。その上、一以上の条件が通知パラメータによって表される。この例では、下記に説明されるように、計４ビットを与える「滞在駐留」条件がある。このように、通知パラメータは４ビットの２進数（００００から１１１１）で表される。もちろん、（この開示の利益を得る）当業者はさらに大きい数のイベント及び条件がさらに長い通知パラメータ及び／またはディジタル的にこれらの条項（items）を表す別の手法を使用して表され得ることを理解するであろう。
【００２２】
辞書
例示された例では、意図的な制限なしで、通知パラメータの意味は辞書１１２に含まれる。表２（下記）は辞書１１２の内容の例を提供する。
【００２３】
【表２】
0004805530.tif 000003
この例では、各通知パラメータは異なる４ビット数を含み、それは所望のイベント及び「滞在駐留」条件の所定の組合せに対応する。パラメータの使用は下記でさらに詳細に論じられる。
典型的なディジタル・データ処理装置
上で言及したように、通知マネージャ１０２、要求者プログラム１０８、及び通知者プログラム１０４は様々な形式で実施される。一例として、これらの部品はディジタル・データ処理装置、一般のディジタル・データ処理装置、またはその変形によって実施される。例示を容易にするために、次の例は部品１０２、１０８、１０４の全てを実施する単一の処理装置を記述する。即ち、図２はディジタル・データ処理装置２００のハードウェア部品及び相互接続を例示する。
【００２４】
装置２００は記憶装置（storage）２０４に接続されたマイクロプロセッサまたは他の処理マシンといったプロセッサ２０２を含む。この例では、記憶装置２０４は不揮発性メモリ２０８は勿論、高速アクセス記憶装置２０６を含む。高速アクセス記憶装置２０６はランダム・アクセス・メモリ（ＲＡＭ）を含み、プロセッサ２０２によって実行されるプログラミング命令を記憶するために使用される。不揮発性メモリ２０８は、例えば、「ハード・ドライブ」といった一以上の磁気データ記憶ディスク、テープ・ドライブ、または他の適当な記憶デバイスを含む。装置２００はまた配線（line）、バス、ケーブル、電磁リンク、またはプロセッサが装置２００に外付けの他のハードウェアとデータを交換する他の手段といった、入力／出力２１０を含む。
【００２５】
前述の特定の記述に拘わらず、（この開示の利益を得る）当業者は上で論じた装置が本発明の範囲から逸脱することなく異なる構造のマシンにおいて実施されうることを理解するであろう。特定の例として、部品２０６、２０８の一つは取除くことができる；さらに、記憶装置２０４はプロセッサ２０２に同一基板で提供でき、または装置２００に外部からでも提供することができる。
【００２６】
論理回路
上で論じたディジタル・データ処理装置に対比して、本発明の異なる実施例は通知マネージャ、要求者プログラム１０８、及び通知者プログラム１０４のいくつかまたは全部を実施するためにコンピュータ実行命令に代って論理回路を使用する。速度、経費、金型費用等の分野における応用の特定の要求に応じて、この論理回路は何千もの小さい集積トランジスタを有する応用特定集積回路（ＡＳＩＣ）を組立てることによって実施される。そのようなＡＳＩＣはＣＭＯＳ、ＴＴＬ、ＶＬＳＩ、または別の適当な構成によって実施される。他の選択肢はディジタル信号処理チップ（ＤＳＰ）、（抵抗器、キャパシタ、ダイオード、インダクタ、及びトランジスタといった）個別の回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プログラマブル・ロジック・アレイ（ＰＬＡ）等を含む。
【００２７】
典型的なアプリケーション
システム１００は様々な異なるアプリケーション内容で実施されるけれども、一つの例示的アプリケーションは無線電話である。いくつかの例示的なイベント１０６は電話の鳴響、ネットワークへの電話の接続、短いメッセージ・サービス（ＳＭＳ）データの受信を含む。典型的な通知者プログラム１０４は電話通信アプリケーション・プログラム・インタフェース（ＴＡＰＩ）を含む。このアプリケーションでは、通知マネージャ１０２はマイクロプロセッサによって提供され、マップ１１０は電池駆動のＲＡＭのような可変性メモリ内に存在し、そして辞書１１２はＥＰＲＯＭまたはフラッシュ更新ができる他の記憶装置のような読出し専用メモリ内に存在する。
【００２８】
動作
本発明の構造上の特徴について述べてきたが、本発明の方法の形態について述べる。上で言及したように、本発明の方法の形態は一般にコンピュータ・ソフトウェアにおいて実施されるイベント検出及び警報システムを含み、その一実施例はあるイベントを検出し、そのような通知について登録した要求者プログラムを通知する拡張可能イベント通知システムである。
【００２９】
信号担持媒体
図１の内容では、そのような方法は、例えば、一連の機械可読命令を実行するために、ディジタル・データ処理装置２００によって具現化されたように、通知マネージャ１０２によって実施される。これらの命令は様々な型の信号担持媒体中に常駐される。この点で、本発明の 一形態はそのような通知について登録した要求者プログラムを通知することによってある所定のイベントに反応するためにディジタル・データ・プロセッサによって実行可能な機械可読命令のプログラムを具現化する信号担持媒体に関わる。
【００３０】
この信号担持媒体は、例えば、高速アクセス記憶装置２０６によって表されるような、通知マネージャ１０２内に含まれるＲＡＭ（図示されてない）を含む。代りに、命令はプロセッサ２０２によって直接もしくは間接的にアクセス可能な、磁気データ記憶ディスケット３００（図３）のような別の信号担持媒体中に含まれる。記憶装置２０６、ディスケット３００、または他の場所に含まれるか否かに拘らず、命令は様々な機械可読データ記憶媒体上に記憶される。いくつかの例は直接アクセス記憶装置（例えば、従来の「ハード・ドライブ」、安価なディスクの冗長アレイ（ＲＡＩＤ）、または別のランダム・アクセス記憶デバイス（ＤＡＳＤ））、磁気または光学テープのような順次アクセス記憶装置、電子的読出し専用メモリ（例えば、ＲＯＭ、ＥＰＲＯＭ、またはＥＥＰＲＯＭ）、光記憶装置（例えば、ＣＤ‐ＲＯＭ、ＷＯＲＭ、ＤＶＤ、ディジタル光学テープ）、紙「パンチ」カード、またはアナログもしくはディジタル伝送媒体及びアナログ及び通信回線及び無線を含む他の適当な信号担持媒体として含む。本発明の例示の実施例では、機械可読命令は「Ｃ」などのような言語からコンパイルされた、ソフトウェア・オブジェクト・コードを含む。
【００３１】
論理回路
上で論じた信号担持媒体に対比して、本発明の方法の形態は命令を実行するためにプロセッサを使用しないで、論理回路を用いて実施される。この実施例では、論理回路は発明の操作を実行するために、要求者プログラム１０８、通知者プログラム１０４、及び通知マネージャ１０２のいくつか、または全部を実施するために使用される。上で論じたように、論理回路は多くの異なる型式の回路構成を使用して実施される。
【００３２】
操作の全体手順
図４は拡張可能なイベント通知システムの操作手順の例を例示するために手順４００を示す。概して、この手順はあるイベントを検出し、そのような通知について登録した要求者プログラム１０８を通知するために働く。説明を容易にするために、意図的な制限なしで、図４の例は上で示したシステム１００の内容において記述される。
【００３３】
ステップ４０１では、ＩＤ１０８ａ〜１０８ｃは要求者プログラム１０８に割当てられ、ＩＤ１０４ａ〜１０４ｃは通知者プログラム１０４に割当てられる。このステップは通知マネージャ１０２、または別の適当な部品によって、システム１００の人間の設計者によって実行される。示されたように、ＩＤはそれぞれのプログラム１０４、１０８によって記憶され、またはプログラム１０４、１０８にアクセス可能な別の場所に記憶される。
【００３４】
ステップ４０２では、一以上の要求者プログラム１０８はあるイベントの通知を受信するために登録する。各々の場合において、登録は登録要求を通知マネージャ１０２に提示する登録プログラム１０８を包含する。登録要求は、（１）要求者プログラムＩＤ１０８ａ〜１０８ｄといった、要求者プログラム１０８の識別、及び（２）ＩＤ１０４ａ〜１０４ｃまたは通知が所望されるイベントを含むクラスに対応する通知者プログラム１０４の他の識別を含む。随意的に、要求は表２と関連して上で説明されたような通知パラメータを含む。代りに、要求者プログラム１０８はイベント及び条件の異なる表現を使用し、ここでは通知パラメータは通知マネージャ１０２によって内部でのみ使用される；このイベントでは、通知マネージャ１０２は登録処理（ステップ４０２）の間に辞書１１２を使用して要求者プログラムの通知選択を代表的な通知パラメータに変換する。表３（下記）は典型的な登録要求の内容を示す。
【００３５】
【表３】
0004805530.tif 000004
記述を容易にするために別々に示さないけれども、要求者プログラム１０８は初めに登録し、かつ／またはそれらの登録プログラム１０８の操作要求に適するように手順４００において後で登録を繰返す。さらに、異なる実施例では、登録は要求者プログラム１０８のために異なる実体によって実行される。そのような実体は異なるプログラム（例えば、登録コーディネータ）、人間のプログラマ等である。
【００３６】
ステップ４０２の登録要求に応えて、通知マネージャ１０２はマップ１１０に要求の内容を記憶することによってその要求を処理する。例示された例では、通知マネージャ１０２は要求者ＩＤ、通知者ＩＤ、及び現在の登録の通知パラメータを記憶する。ステップ４０２の後で、通知マネージャ１０２は現在の登録要求に包含される通知者プログラム１０４を起動する。これは、例えば、メモリに通知者プログラム１０４を搭載することによって実行される。起動すると、この通知者プログラム１０４はそのクラスのイベントを感知するために動作する（ステップ４０６）。通知者プログラム１０４がそのクラス中であるイベントを感知すると、それは通知マネージャ１０２に警報を出す（ステップ４０８）。これは、例えば、メッセージを通知マネージャ１０２に渡し、ハードウェア割込みを行い、通知マネージャ１０２により検知可能な局所フラグを設定し、そして通知マネージャ１０２のポーリングに対応することによって実行される。
【００３７】
それに応えて、通知マネージャ１０２は警報通知者プログラムに関して登録要求を提示した全ての要求者プログラム１０８を識別するためにマップ１１０を調べる。ステップ４１０ではまた、通知マネージャ１０２は識別された要求者プログラムの起動を、例えばそれらをメモリに搭載することによって、進行させ、そしてまた発生したイベントの指示を起動した要求者プログラムに渡す。
【００３８】
ステップ４１２では、通知マネージャ１０２は起動した要求者プログラムを監視し、そして要求者プログラムが不作動の状態になるとき、通知マネージャ１０２はそれをメモリから取外し、さもなくばプログラムを終わらせることによって、それを停止させる。要求者プログラムが「滞在駐留」条件を含む通知パラメータによって登録されれば、通知マネージャ１０２は要求者プログラムの停止を中断し、このようにしてそのプログラムが動き続けることを許容する。
【００３９】
他の実施例
前述の開示は本発明のいくつかの例示的実施例を示しているが、様々な変更及び修正が付加された請求項によって定義されている本発明の範囲から逸脱しないで行われ得ることは当業者には明白であろう。さらに、本発明の要素は単数で記述され、または請求されているけれども、単数に明示的に限定されることなく、複数が考慮される。さらに普通に熟練した者は、手順が説明及び請求のためにいくつかの特定の順番で示されなければならないが、本発明はそのような特定の順序を越えて様々な変化を熟慮することを認識するであろう。
【図面の簡単な説明】
【００４０】
【図１】本発明による拡張可能なイベント通知システムのハードウェア部品及び相互接続のブロック図である。
【図２】本発明によるディジタル・データ処理マシンのブロック図である。
【図３】本発明による典型的な信号担持媒体を示す。
【図４】本発明の拡張可能なイベント通知システムの操作手順を図説するフローチャートである。
【符号の説明】
【００４１】
１０２・・・通知マネージャ  １０４・・・通知者プログラム  １０６・・・イベント  １０８要求者プログラム  １１０・・・マップ  １１２・・・辞書
【図１】
0004805530.tif 000005
【図２】
0004805530.tif 000006
【図３】
0004805530.tif 000007
【図４】
0004805530.tif 000008