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