(57)【要約】【課題】コンテンツに基づく発行および加入システムを関係型データベースシステムにおいて実現するための方法を提供する。【解決手段】加入者はデータベースサーバによってサポートされるクエリー言語を用いることによりメッセージに対する要求を行なう。クエリーを次いで加入規則として用い、入来メッセージを加入者に送るべきか否かを判断する。入来メッセージの加入規則に対する評価は２層プロセスを伴う。第１層では、入来メッセージに当てはまる可能性があり得ないすべての加入規則をフィルタ処理により取除く。第２層では、必要な場合には入来メッセージをさらに評価してどの加入者が入来メッセージを受取ることになるか判断する。発行者が関係型データベースシステムそれ自体である場合には、メッセージの発行は非明示であるのでメッセージに対する要求を行なうクエリーは加入規則としては記憶されなくてもよい。【選択図】図３
2007066325.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツに基づく発行および加入システムを関係型データベースシステムにおいて実現するための方法であって、
関係型データベースシステムによりサポートされるクエリー言語で書かれるクエリーを加入者から受信することと、
入来メッセージを加入者に送るべきか否かを判断するために、クエリーを関係型データベースシステムにおいて加入規則として記憶することと、
クエリーを関係型データベースシステムにおいて加入規則として記憶した後、関係型データベースシステムは入来メッセージがクエリーを満足させるか否かを判断することと、
入来メッセージがクエリーを満足させると入来メッセージを加入者に発行することとを含み、入来メッセージを加入者に発行することは、
入来メッセージを発行者から受取ることと、
発行者からの入来メッセージの受取で、入来メッセージが加入規則を満足させるか否かを判断することを、フィルタのアレイ内の各コラムに関連付けられる規則のアレイに対して入来メッセージを評価すること、規則のアレイにおけるどの加入規則が入来メッセージに当てはまる可能性があり得るかを判断すること、入来メッセージをその入来メッセージに当てはまる可能性があり得る加入規則に対して評価し、さらなる評価がその入来メッセージに対して必要であるかどうかを判断すること、さらなる評価が必要である場合には、単純な継続評価が必要であるかどうかを判断し、単純な継続評価が必要である場合にはその単純な継続評価を進めること、および完全評価が必要とされるか否かを判断し、完全評価が必要とされる場合にはその完全評価に進むことにより行なうことと、
入来メッセージをテーブルで関係型データベースシステムに記憶することと、
入来メッセージが加入規則を満足させる場合には入来メッセージを加入者に発行することとを含み、前記方法はさらに、
クエリーを満足させる、関係型データベースシステムに記憶されるデータになされる変更に応答して、データを加入者に発行することを含む、方法。
【請求項２】
加入規則において宛先およびプロトコルを入来メッセージを配信するために特定することをさらに含む、請求項１に記載の方法。
【請求項３】
トリガを実現することにより、関係型データベースシステムに記憶される特定の情報のどのような更新版も加入者に対し自動的に発行することをさらに含む、請求項１に記載の方法。
【請求項４】
完全評価は、さらに、関係型データベースのクエリー言語エンジンを用いることを含む、請求項１に記載の方法。
【請求項５】
入来メッセージを発行することは、さらに、入来メッセージを、加入者により提出された加入規則により特定される宛先に配信することを含む、請求項１に記載の方法。
【請求項６】
入来メッセージを発行することは、さらに、入来メッセージの通知を、加入者により提出された加入規則において特定される通知宛先に送り、それに加えて、入来メッセージを、加入者によって提出された加入規則により特定されるメッセージ宛先に配信することを含む、請求項１に記載の方法。
【請求項７】
通知宛先はメッセージ宛先とは異なる、請求項１に記載の方法。
【請求項８】
入来メッセージを発行することは、さらに、入来メッセージを、メッセージの発行を結果的にもたらす内容から演繹される宛先に配信することを含む、請求項１に記載の方法。
【請求項９】
入来メッセージを発行することは、さらに、入来メッセージを、加入者により提出された加入規則により特定されるプロトコルを用いて配信することを含む、請求項１に記載の方法。
【請求項１０】
メッセージを発行することは、さらに、
加入者に入来メッセージを２回以上受信する資格があるかどうかを判断することと、
入来メッセージを一度だけ配信することとを含む、請求項１に記載の方法。
【請求項１１】
加入者に対しては発行されていない、以前に発行されたメッセージがクエリーを満足させると、該以前に発行されたメッセージを加入者に発行することをさらに含む、請求項１に記載の方法。
【請求項１２】
コンテンツに基づく発行および加入システムを関係型データベースシステムにおいて実現するための方法であって、
関係型データベースシステムによりサポートされるクエリー言語で書かれるクエリーを加入者から受信することと、
入来メッセージを加入者に送るべきか否かを判断するために、クエリーを関係型データベースシステムにおいて加入規則として記憶することとを含み、クエリーを関係型データベースシステムにおいて加入規則として記憶することは、
１つ以上のコラムを含むフィルタのアレイを創出することと、
属性−演算子の対を伴ってフィルタのアレイのコラムを初期化することと、
フィルタのアレイのどのコラムに加入規則が当てはまるかを判断することと、
加入規則を値に関連付けることと、
加入規則がフィルタのアレイにおいて当てはまるコラムに関連付けられる規則のアレイに加入規則を記憶することとを含み、前記方法はさらに、
クエリーを関係型データベースシステムにおいて加入規則として記憶した後、関係型データベースシステムは入来メッセージがクエリーを満足させるか否かを判断することと、
入来メッセージがクエリーを満足させると入来メッセージを加入者に発行することと、
クエリーを満足させる、関係型データベースシステムに記憶されるデータになされる変更に応答して、データを加入者に発行することとを含む、方法。
【請求項１３】
フィルタのアレイにおけるどのコラムに加入規則が当てはまるかを判断することは、さらに、
加入者からのクエリーに対し構文解析を行なうことと、
クエリーを一連の表現式に正規化することとを含み、各表現式は論理積演算子により合わされる１つ以上の条件を含み、各表現式は各他の表現式と論理和演算子を用いて組合せられ、さらに、
各表現式をフィルタのアレイにおける１つのコラムに割当てることと、
各表現式を、加入規則として、その加入規則がフィルタのアレイにおいて当てはまるコラムに関連付けられる規則のアレイに記憶することとを含む、請求項１２に記載の方法。
【請求項１４】
加入規則を規則のアレイに記憶することは、さらに、規則のアレイをインデックスで整理することを含む、請求項１２に記載の方法。
【請求項１５】
コンテンツに基づく発行および加入システムを関係型データベースシステムにおいて実現するためのコンピュータ読取可能媒体であって、コンピュータ読取可能媒体は命令を担持し、命令は、１つ以上のプロセッサによって処理されると、
関係型データベースシステムによりサポートされるクエリー言語で書かれるクエリーを加入者から受信することと、
入来メッセージを加入者に送るべきか否かを判断するために、クエリーを関係型データベースシステムにおいて加入規則として記憶することと、
クエリーを関係型データベースシステムにおいて加入規則として記憶した後、関係型データベースシステムは入来メッセージがクエリーを満足させるか否かを判断することと、
入来メッセージがクエリーを満足させると入来メッセージを加入者に発行することとを引き起こし、入来メッセージを加入者に発行することは、
入来メッセージを発行者から受取ることと、
発行者からの入来メッセージの受取で、入来メッセージが加入規則を満足させるか否かを判断することを、フィルタのアレイ内の各コラムに関連付けられる規則のアレイに対して入来メッセージを評価すること、規則のアレイにおけるどの加入規則が入来メッセージに当てはまる可能性があり得るかを判断すること、入来メッセージをその入来メッセージに当てはまる可能性があり得る加入規則に対して評価し、さらなる評価がその入来メッセージに対して必要であるかどうかを判断すること、さらなる評価が必要である場合には、単純な継続評価が必要であるかどうかを判断し、単純な継続評価が必要である場合にはその単純な継続評価を進めること、および完全評価が必要とされるか否かを判断し、完全評価が必要とされる場合にはその完全評価に進むことにより行なうことと、
入来メッセージをテーブルで関係型データベースシステムに記憶することと、
入来メッセージが加入規則を満足させる場合には入来メッセージを加入者に発行することとを含み、前記命令はさらに、１つ以上のプロセッサによって処理されると、
クエリーを満足させる、関係型データベースシステムに記憶されるデータになされる変更に応答して、データを加入者に発行することを引き起こす、コンピュータ読取可能媒体。
【請求項１６】
１つ以上のプロセッサによって処理されると、加入規則において宛先およびプロトコルを入来メッセージを配信するために特定することを引き起こすさらなる命令をさらに含む、請求項１５に記載のコンピュータ読取可能媒体。
【請求項１７】
１つ以上のプロセッサによって処理されると、トリガを実現することにより、関係型データベースシステムに記憶される特定の情報のどのような更新版も加入者に対し自動的に発行することを引き起こすさらなる命令をさらに含む、請求項１５に記載のコンピュータ読取可能媒体。
【請求項１８】
完全評価は、さらに、関係型データベースのクエリー言語エンジンを用いることを含む、請求項１５に記載のコンピュータ読取可能媒体。
【請求項１９】
入来メッセージを発行することは、さらに、入来メッセージを、加入者により提出された加入規則により特定される宛先に配信することを含む、請求項１５に記載のコンピュータ読取可能媒体。
【請求項２０】
入来メッセージを発行することは、さらに、入来メッセージの通知を、加入者により提出された加入規則において特定される通知宛先に送り、それに加えて、入来メッセージを、加入者によって提出された加入規則により特定されるメッセージ宛先に配信することを含む、請求項１５に記載のコンピュータ読取可能媒体。
【請求項２１】
通知宛先はメッセージ宛先とは異なる、請求項１５に記載のコンピュータ読取可能媒体。
【請求項２２】
入来メッセージを発行することは、さらに、入来メッセージを、メッセージの発行を結果的にもたらす内容から演繹される宛先に配信することを含む、請求項１５に記載のコンピュータ読取可能媒体。。
【請求項２３】
入来メッセージを発行することは、さらに、入来メッセージを、加入者により提出された加入規則により特定されるプロトコルを用いて配信することを含む、請求項１５に記載のコンピュータ読取可能媒体。
【請求項２４】
メッセージを発行することは、さらに、
加入者に入来メッセージを２回以上受信する資格があるかどうかを判断することと、
入来メッセージを一度だけ配信することとを含む、請求項１５に記載のコンピュータ読取可能媒体。
【請求項２５】
１つ以上のプロセッサによって処理されると、加入者に対しては発行されていない、以前に発行されたメッセージがクエリーを満足させると、該以前に発行されたメッセージを加入者に発行することを引き起こすさらなる命令をさらに含む、請求項１５に記載のコンピュータ読取可能媒体。
【請求項２６】
コンテンツに基づく発行および加入システムを関係型データベースシステムにおいて実現するためのコンピュータ読取可能媒体であって、コンピュータ読取可能媒体は命令を担持し、命令は、１つ以上のプロセッサによって処理されると、
関係型データベースシステムによりサポートされるクエリー言語で書かれるクエリーを加入者から受信することと、
入来メッセージを加入者に送るべきか否かを判断するために、クエリーを関係型データベースシステムにおいて加入規則として記憶することとを引き起こし、クエリーを関係型データベースシステムにおいて加入規則として記憶することは、
１つ以上のコラムを含むフィルタのアレイを創出することと、
属性−演算子の対を伴ってフィルタのアレイのコラムを初期化することと、
フィルタのアレイのどのコラムに加入規則が当てはまるかを判断することと、
加入規則を値に関連付けることと、
加入規則がフィルタのアレイにおいて当てはまるコラムに関連付けられる規則のアレイに加入規則を記憶することとを含み、前記命令は、１つ以上のプロセッサによって処理されると、さらに、
クエリーを関係型データベースシステムにおいて加入規則として記憶した後、関係型データベースシステムは入来メッセージがクエリーを満足させるか否かを判断することと、
入来メッセージがクエリーを満足させると入来メッセージを加入者に発行することと、
クエリーを満足させる、関係型データベースシステムに記憶されるデータになされる変更に応答して、データを加入者に発行することと引き起こす、コンピュータ読取可能媒体。
【請求項２７】
フィルタのアレイにおけるどのコラムに加入規則が当てはまるかを判断することは、さらに、
加入者からのクエリーに対し構文解析を行なうことと、
クエリーを一連の表現式に正規化することとを含み、各表現式は論理積演算子により合わされる１つ以上の条件を含み、各表現式は各他の表現式と論理和演算子を用いて組合せられ、さらに、
各表現式をフィルタのアレイにおける１つのコラムに割当てることと、
各表現式を、加入規則として、その加入規則がフィルタのアレイにおいて当てはまるコラムに関連付けられる規則のアレイに記憶することとを含む、請求項２６に記載のコンピュータ読取可能媒体。
【請求項２８】
加入規則を規則のアレイに記憶することは、さらに、規則のアレイをインデックスで整理することを含む、請求項２６に記載のコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は発行および加入システムに関し、より特定的には、コンテンツに基づく発行および加入システムを関係型データベースシステムと統合するための方法および装置に関する。
【背景技術】
【０００２】
通信モデルを用いることにより、メッセージを分散型電算環境において複数のノードから受取ったりそれら複数のノードに分散させることの複雑さに対する対処がなされている。広く用いられている通信モデルのある例はアプリケーション間における発行および加入インタラクションシステムである。メッセージまたは情報を発生するエンティティは「発行者」であり、そのようなメッセージに興味を持つエンティティは「加入者」である。この発行および加入モデルは非同期メッセージ伝達能力を伴い、つまり、発行者は加入者を待つ必要はない。たとえば、情報の生産者によって単に情報が複数の通信チャネルにおいて「発行」され、情報の消費者は対象のチャネルに「加入」する。この発行および加入パラダイムは事象駆動型であると言われ、なぜならば、情報の生産者と情報の消費者との間における通信はビジネス事象がきっかけとなるからである。さらに、メッセージの非同期的な性格からして、いずれの入来メッセージも事象である。
【０００３】
一般に、メッセージ伝達システムは規則の集合を用いることにより特定のメッセージが正しい加入者に必ず到達するようにする。規則とは、加入者により所望されるメッセージを記述する条件である。規則エンジンを用いることによりそれらの規則をメッセージに適用する。規則の表現式およびメッセージの構造を支配するさまざまな基準が存在するが、広く用いられている単一の基準はない。広く用いられる基準の欠如の結果、履歴情報（既存の情報）対将来の情報（入来メッセージ）を扱うための、異なるツールの組をもたらすこととなった。異なるツールの組をメッセージ伝達システムにおいて維持することは非効率的である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記に基づき、コンテンツに基づく発行および加入システムを、ある環境において、広く用いられる基準を用いて実現し、共通のツールの組を用いて履歴情報および将来の情報を取扱うような方法または機構が求められている。
【課題を解決するための手段】
【０００５】
前述の要求はこの発明によって対処される。この発明は、一つの局面において、コンテンツに基づく発行および加入システムを実現するための方法およびシステムを含む。
【０００６】
この発明の一つの局面に従うと、クエリーにおいて用いられる表現式であって、関係型データベースシステムによりサポートされるクエリー言語で書かれる表現式を、加入者から受取り、それを規則として用いて、入来メッセージをその加入者に送るべきか否かを判断する。入来メッセージがその規則を満足させる場合には、そのメッセージをその加入者に配信する。ある実施例では、入来メッセージを加入者に送るべきか否かを判断するための規則の評価を、２層構造評価法を用いて行なう。この発明の別の局面では、発行者が関係型データベースシステムそのものであるとき、メッセージは加入者に対し非明示で発行される。
【０００７】
実施例に従うと、クエリー言語、たとえば構造化クエリー言語（ＳＱＬ）などの、十分に確立された基準をコンテンツに基づく発行および加入システムにおいて用いることにより、その発行および加入システムはそのクエリー言語の既存の知識ベースおよびツールセットを利用することが可能となる。
【０００８】
この発明のさらに他の目的および利点は、以下の詳細な記載から、意図される、この発明を実施するベストモードの単なる例示によって容易に明らかとなるであろう。認識されるように、この発明は、すべてそれから逸脱しない、他の異なる実施例が可能であり、そのいくつかの詳細は変形物がさまざまな明らかな面において可能である。したがって、図面および記載は本質的に例示的であると見なされるべきであり、制限的であると見なされるべきではない。
【０００９】
この発明は、同様の参照番号によって同様の要素が示される添付の図面において例示的に示されるものであり、限定的に示されるものではない。
【発明を実施するための最良の形態】
【００１０】
コンテンツに基づく発行および加入システムを関係型データベースシステムにおいて実現するための方法およびシステムを記載する。以下の記載においては、説明という目的から、数多くの具体的な詳細を述べて、この発明が十分に理解されるようにする。しかしながら、当業者には、この発明がこれらの具体的な詳細なしに実施されてもよいことはあきらかであろう。他の例では、周知の構造および装置をブロック図形式で示すことにより、この発明を不必要に不明瞭にすることを避ける。
【００１１】
機能的外観
この発明の一つの実施例に従うと、コンテンツに基づく発行および加入システムは関係型データベースシステムにおいて統合される。コンテンツに基づく発行および加入システムを関係型データベースシステムに統合することにより、コンテンツベースの発行および加入システムは、メッセージを表現するまたはメッセージを要求する際に、標準化された表現式の形式を利用し得る。たとえば、構造化クエリー言語（ＳＱＬ）は、データを関係型データベースシステムにおいて定義し、それへのアクセスをを制御し、および操作するために用いられる言語であるが、それをＡＮＳＩおよび国際基準機構（International Standards Organization）によって標準化する。したがって、関係型データベースシステムに統合される、コンテンツに基づく発行および加入システムは、ＳＱＬを用いてメッセージを要求しならびにメッセージを発生し得る。
【００１２】
さらに、広く用いられる標準化されたＳＱＬは、履歴情報（既存の情報）および将来の情報（入来メッセージ）を取扱うための共通のツールの組を斟酌する。メッセージは列状にデータテーブルに記憶され、基準ＳＱＬ文を用いてメッセージプロパティ、メッセージ履歴およびメッセージ内容にアクセスする。たとえば、メッセージは加入者による消費の後保持され得る。データベースシステムは、各メッセージの履歴について、そのメッセージが発行のために待ち行列に入れられた時間、そのメッセージが発行された時間、ならびにその発行者および加入者の識別情報を含む情報を記憶する。たとえば、加入者は「名称＝Oracleを伴うすべての株取引値、過去３ヶ月間に発行されたもの」についての履歴情報を要求し得る。
【００１３】
別の利点は、管理者によって、メッセージをデータベースメッセージ行列待ちシステムから検索し得る加入者のリストが特定化され得る、という点である。さらに、そのデータベース行列待ちシステムにおける特定のメッセージをその行列への加入者であるかもしれないしそうではないかもしれない特定の受け手に向け、それによってその加入者リストを無効化し得る。データベースと統合されたメッセージ行列待ちシステムの一例はオラクル
・アドバンスト・キューイング（Oracle Advanced Queuing）である。アドバンスト・キューイングの詳細はOracle Server Concepts, Release 8.0に記載されている。
【００１４】
コンテンツに基づく発行および加入システムを関係型データベースシステムにおいて統合することのさらなる別の利点は、既存のＳＱＬ技術、たとえばインデックスなどを用いてメッセージへのアクセスを最適化し得るという点である。さらに、この既存のＳＱＬ技術は、メッセージおよび規則の、洗練されたフィルタ処理に対しても用いられ得る。たとえば、ある規則は「Oracleのような株名称を伴う株価格取引値」を特定化し得る。ＳＱＬインタプリタは「Oracleのような名称」という句を理解する。別の利点は、すべての標準的なデータベース特徴、たとえば回復および再起動などがサポートされるという点である。
【００１５】
コンテンツに基づく発行および加入システムを関係型データベースシステムにおいて統合することの、重要な、しかしながら看過されやすい利点は、コンテンツに基づく発行および加入システムはどのような強化からも当該関係型データベースシステムにおいてＳＱＬインタプリタ、任意の関連のデータ型、または行列待ちシステムに対し自動的に恩恵を授けるという点である。
【００１６】
実施例に従うと、加入者はＳＱＬ（ＡＮＳＩ／ＩＳＯ  １９９２規格、ＡＮＳＩ／ＩＳＯ  １９９９規格およびそれら規格への拡張などを含む）を用いて規則をデータベースシステムに提出する。各規則は加入者により所望されるメッセージを記述する。コンテンツに基づく発行および加入システムは関係型データベースシステムに統合されるので、加入者により提出されるいずれのクエリーも規則として認定され得る。クエリーがまず加入者によって提出されると、そのクエリーは実行され得、そのクエリーの結果は加入者に返される。それらクエリー結果は当該規則を満足させる既存のメッセージの集合を構成する。該クエリーは次いで加入規則として記憶され、それに対して入来データが評価され得る。説明のため、ＳＱＬ言語をサポートする行列状に情報が記憶される関係型データベースに関して例を挙げる。しかしながら、この発明はその特定の実施例に限定されるものではない。たとえば、加入規則は、関係型データベースシステムによってサポートされる任意のデータ型、たとえばeXtensible Markup Language（ＸＭＬ）データ型、SWIFT（基金の電子転送のためのデータフォーマットおよびプロトコルを特定化する世界的銀行間金融電気通信のための団体（Society for Worldwide Interbank Financial Telecommunication））データ型、マルチメディアデータ型、および空間的データ型を用いて書かれてもよい。
【００１７】
規則エンジンを用いることにより、記憶された加入規則を入来メッセージに適用する。入来メッセージが加入規則を満足させる場合、そのメッセージはその加入規則を提出したその特定の加入者に対し発行される。入来メッセージによって満足される加入規則を提出した加入者が複数存在するかもしれないことに注意されたい。そのメッセージはすべてのそのような加入者に対し発行される。
【００１８】
ある実施例に従うと、入来メッセージは、記憶された加入規則に対し、２層構造評価機構を用いて評価される。第１の層は、「高速評価」機構を用いることにより、入来メッセージに対し当てはまる可能性が有り得ない記憶された加入規則をフィルタ処理して除去することを伴う。コンテンツに基づく発行および加入システムは関係型データベースシステムに統合されるので、加入規則をインデックスで記憶して効率のよい方法を斟酌することにより明らかに適用不可な加入規則をフィルタ処理して除去してもよい。この第１の層「高速評価」をさらに以下に説明する。
【００１９】
ある場合では、すべての加入規則が第１の層の評価中にフィルタ処理して除去されるわけではない。フィルタ処理して除去されない加入規則のうち、いくつかの規則は、それら
が入来メッセージに当てはまるか否かを判断するためさらなる評価を必要とするかもしれない。それらの規則に対し実行されるこのさらなる評価は２つの評価型のうちの１つであってもよい。１つのさらなる評価型はここでは単純な継続評価と称される。単純な継続評価が必要とされるかもしれないのは、加入規則において、評価されるべく残っている属性−演算子の対を含むさらなる条件が含まれる場合である。この単純な継続評価についてはさらに後に説明する。他方のさらなる評価型はここでは「完全評価」と称される。完全評価が必要とされるかもしれないのは、たとえば、加入規則において、「高速評価」機構を用いては評価され得ない複雑な条件が含まれる場合である。
【００２０】
一実施例に従うと、この完全評価プロセスは、関係型データベースシステムのＳＱＬインタプリタを用いることによりメッセージを加入規則に対して評価することを伴う。この「完全評価」機構についてはさらに後に説明する。
【００２１】
ある実施例に従うと、メッセージの発行は明示または非明示のいずれでもよい。明示発行は、発行者がメッセージをメッセージ待ち行列に入れてさまざまな加入者に対し発行する場合である。一旦メッセージがメッセージ待ち行列に入れられると、そのメッセージは、記憶された加入規則に対し、上記の２層構造の評価機構を用いて評価される。逆に、非明示発行は、自動発行としても公知であるが、それは、ある情報の先の発行が発行および加入システムにおいて存在しない場合でさえも生ずる。加入者は、情報が関係型データベースに記憶される限りにおいて、その情報に関連する、発行および加入システム上において対応の既存の発行を有さない加入規則を提出してもよい。データベースサーバは発行者の機能を果たす。たとえば、ある会社の在庫情報に興味を持つ加入者がいると仮定する。発行および加入システムにおいてそのような情報の発行が全くないと仮定する。しかしながら、その在庫情報はそのデータベースに記憶されている。加入者のクエリーが実行され、その結果が当人に返される。しかしながら、そのクエリーを、入来メッセージが評価され得る加入規則として記憶する代わりに、トリガを実現することにより、その加入者に対し、当人がそのクエリーを用いて要求した情報の更新版のいずれをも自動的に発行する。かくして、そのデータベースサーバは、在庫情報の発行者となる。自動発行については後により詳細にさらに説明する。
【００２２】
一実施例に従うと、データベース行列待ちシステムにおける特定のメッセージが特定の受け手に対して向けられる。そのようなメッセージは、それらメッセージの受け手が既知であるため、記憶された加入規則に対し評価される必要はない。
【００２３】
高速評価
入来メッセージを加入規則の集合に対して評価することにより、どの加入者がそのメッセージを受取るべきかを判断する。高速評価とは、入来メッセージに当てはまる可能性が有り得ない加入規則のいずれをも高速にフィルタ処理して取除く機構である。入来メッセージに当てはまる可能性が有り得ない加入規則をフィルタ処理して取除くことにより、後に残るのは、その入来メッセージが評価される比較的小さな加入規則の部分集合である。
【００２４】
高速評価句なしでは、各入来メッセージはすべての記憶される加入規則に対する完全評価を経なければならない。入来メッセージのすべての加入規則に対する完全評価は、高速評価に次いでより小さな記憶される加入規則の部分集合に対する「完全評価」が行なわれる場合よりも、計算において、かなりより高価である。
【００２５】
フィルタのアレイ
一実施例では、高速評価メッセージ句処理は「フィルタ」のアレイを用いて実行される。そのアレイの各コラムまたは「ボックス」はあるフィルタからなる。一実施例に従うと、フィルタは、（１）テーブルのコラムを識別する値と、（２）演算子を識別する値とを
含む、属性−演算子の対である。以下の属性−演算子の対は、メッセージテーブルに「名称」および「価格」というコラムが含まれる場合の、あるシステムにおけるフィルタの例である：
「名称＝」
「名称＞」
「名称＜」
「価格＝」
「価格＞」
「価格＜」
属性−演算子の対における属性はメッセージテーブルにおける任意のコラムまたは属性を指す。属性−演算子の対における演算子は関係型演算子を指す。図１はフィルタのアレイ１００を示す。フィルタのアレイ１００はボックス１０２、１０４、…１１４からなる。各ボックスは属性−演算子の対からなるが、ただしボックス１１４は除く。ボックス１１４は識別ボックスとして知られる。この識別ボックスは、フィルタのアレイ１００の他のボックスのいずれにも適合しない加入規則のアレイに関連付けられる。この識別ボックスに関連付けられる加入規則のアレイにおける加入規則は、「完全評価」というより低速でより高価なプロセスを必要とする。
【００２６】
各属性−演算子の対に関連付けられる加入規則のアレイ
加入者が加入規則を提出すると、データベースパーサは加入規則を構文解析する。この構文解析は、まず、加入規則を、論理和演算子により合わされるシリーズ表現式に正規化することにより行なわれる。各表現式は、それ自体、論理積演算子により合わされる１つ以上の条件の連なりである。たとえば、加入規則「名称＝Oracleおよび価格＜６０または名称＝Hewlett Packard（ヒューレット・パッカード）および価格＜９５を伴う株の株取引値」は以下のように正規化される：
（名称＝OracleＡＮＤ価格＜６０を伴う株の株取引値）ＯＲ（名称＝Hewlett Packard ＡＮＤ価格＜９５を伴う株の株取引値）。
【００２７】
この上記の加入規則のフォーマットは「論理和正規」形として公知である。各論理和表現式は、上記において括弧内に示されているが、別々の加入規則として取扱われ、「規則のアレイ」に記憶される。各規則のアレイは、上記のフィルタのアレイにおける属性−演算子の対のうちの１つと関連付けられる。
【００２８】
たとえば、加入規則「名称＝OracleＡＮＤ価格＜６０を伴う株の株取引値」は、属性−演算子の対「名称＝」または属性−演算子の対「価格＜」のいずれかと関連付けられる規則のアレイに記憶され得る。一実施例に従うと、このような場合において、加入規則が２つ以上の属性−演算子の対と関連付けられ得る場合には、その加入規則は評価するのに最も費用がかからない属性−演算子の対と関連付けられる。上記の場合、属性−演算子の対のいずれかに関連付けられる評価の費用は同じである。しかしながら、加入者が加入規則「名称＝OracleＡＮＤ複雑条件を伴う株の株取引値」を提出し、その複雑条件は完全評価というより高価な計算を必要とする場合を仮定すると、その加入規則「名称＝OracleＡＮＤ複雑条件を伴う株の株取引値」は属性−演算子の対「名称＝」に関連付けられる規則のアレイに記憶される。複雑条件とは、たとえば、ユーザにより定義される関数の組合せ、メッセージテーブル自体を超えてデータベース内の他のテーブルにアクセスすることを必要とする条件、およびＬＩＫＥ比較演算子を用いる条件などであり得る。
【００２９】
図２は、フィルタのアレイ１００と、フィルタのアレイ１００のボックスに関連付けられる規則のアレイ２００とを示す。たとえば、ボックス１０２は、属性−演算子の対「名称＝」からなっており、その「名称＝」属性−演算子の対に当てはまる規則のアレイ２０２に関連付けられる。同様に、ボックス１０４は識別ボックスとして知られ、それは、識
別ボックス１１４に当てはまる規則のアレイ２１４に関連付けられる。
【００３０】
各規則のアレイ内のすべての加入規則がある値を有する。たとえば、図３にフィルタのアレイ３００を示す。フィルタのアレイ３００の第１のボックスに関連付けられるのは、「名称＝」ボックス３０２に当てはまる規則のアレイ３１０である。規則のアレイ３１０内の加入規則の１つは値＝「Oracle」を有する。規則のアレイ３１０内にあり「名称＝」ボックス３０２に当てはまる別の加入規則は値＝「IBM」を有する。アレイ内の２つの加入規則の値のみを説明のために示す。各規則のアレイにおける加入規則は、加入規則の「値」に基づくインデックスで整理される。この加入規則のインデックスによる整理は、以下に記載されるように、入来メッセージに対する効率のよい高速評価を考慮するものである。
【００３１】
単純な継続評価
入来メッセージを評価する高速評価機構の結果として単純な継続評価がもたらされるかもしれない。たとえば、すべての加入規則が高速評価プロセス中において入来メッセージに関してフィルタ処理されて取除かれるのではない場合、その入来メッセージは、さらに、単純な継続評価を用いて評価されるかもしれない。単純な継続評価を説明するため、加入規則のうち高速評価機構によってフィルタ処理されて除去されなかった加入規則が、図２の属性−演算子の対「名称＝」からなるボックス１０２に関連付けられる規則のアレイ２０２からの加入規則Ｘであったと仮定する。さらに、この規則Ｘは論理積演算子によって合わされる１つ以上の条件を含むと仮定する。たとえば、規則Ｘは「名称＝OracleＡＮＤ価格＜６０を伴う株取引値」のようであるかもしれない。規則Ｘがフィルタ処理により除去されなかったのは、入来メッセージによって規則Ｘの「名称＝Oracle」部分が満たされたからである。しかしながら、さらなる評価を行なって、その入来メッセージが規則Ｘの残りの部分つまり「価格＜６０」を満たすかどうかを判断する必要がある。このさらなる評価はこの例においては単純な継続評価であると言え、なぜならば、「価格＜６０」は属性−演算子の対に関与ししたがって高速かつ安価に評価され得るからである。単純な継続評価中、入来メッセージによって「価格＜６０」が満たされるか否かが判断される。入来メッセージによって「価格＜６０」が満たされる場合、その入来メッセージは加入規則Ｘを提出した加入者に対し発行される。そうでない場合には、規則Ｘは、この特定の入来メッセージに関し、さらなる考慮の対象から外される。
【００３２】
完全評価
入来メッセージを評価する高速評価機構はすべての複雑な加入規則をフィルタ処理して取除くというわけではないかも知れず、したがって、完全評価が後に続かなければならないかもしれない。複雑な加入規則の例を以下に示す：
「Oracle Parkway 5000の位置から５マイル半径内のインディアンレストラン」
「赤紫色の花模様のデザインで価格＝＄５０のドレス」
「名称＝Oracleを伴いその敷地内にインディアンレストランがある会社」
上記の例において「〜から５マイル半径内」、「赤紫色の花模様のデザインで」および「その敷地内にインディアンレストランがある」という句は解釈するためにＳＱＬエンジンを必要とする複雑な条件であると考えられる。入来メッセージの高速評価中に、フィルタ処理により除去されず、解釈のためにＳＱＬエンジンを必要とする複雑な条件を含む１つ以上の加入規則がある場合には、入来メッセージを完全評価にかけることによりそれがそれらの規則を満たすか否かを判断しなければならない。説明のため、加入規則のうち高速評価機構によるフィルタ処理により取除かれなかった加入規則が、図２の属性−演算子の対「名称＝」からなるボックス１０２に関連付けられる規則のアレイ２０２からの加入規則Ｙであったと仮定する。さらに、この規則Ｙは論理積演算子により合わされる１つ以上の条件を含むと仮定する。たとえば、規則Ｙは「名称＝OracleＡＮＤ複雑な条件ｐを伴う株取引値」のようであるかもしれない。規則Ｙがフィルタ処理により除去されなかった
のは入来メッセージによって規則Ｙの「名称＝Oracle」部分が満たされたからである。しかしながら、さらなる評価を行なって、その入来メッセージが規則Ｙの残りの部分つまり「複雑な条件ｐ」を満たすかどうかを判断する必要がある。このさらなる評価はこの例ではＳＱＬインタプリタを用いる満開評価を必要とし、「完全評価」として知られている。完全評価は高速評価または単純な継続評価のいずれよりも計算面でより高価である。
【００３３】
入来メッセージによって「複雑な条件ｐ」が満たされる場合には、その入来メッセージは規則Ｙを提出した加入者に対し発行される。そうでない場合には、規則Ｙはこの特定の入来メッセージに関しさらなる考慮の対象から外される。
【００３４】
識別ボックス１１４に関連付けられる規則のアレイ２１４に記憶される加入規則に関しては、入来メッセージは完全評価を用いて評価される。規則のアレイ２１４に記憶される加入規則はフィルタのアレイの他のボックスには適合しないことを想起されたい。
【００３５】
メッセージを評価する
入来メッセージをまず第１の層の高速評価機構を用いて評価することにより、その入来メッセージによっては満足され得ない加入規則をすべて高速にフィルタ処理して取除く。この第１の層の評価により、入来するメッセージを、フィルタのアレイ内の所与のボックスに関連付けられる各加入規則に対して評価する結果、以下の４つの状態のうちの１つがもたらされる。
【００３６】
状態１：加入規則は満足されず、したがってその加入規則はさらなる評価からは外される。
【００３７】
状態２：加入規則は満足されるかもしれないが、単純な継続評価が必要である。
状態３：加入規則は満足されるかもしれないが、第２層の「完全評価」が必要である。
【００３８】
状態４：加入規則は完全に満足され、したがって、その特定の加入規則を提出した加入者に対するメッセージの発行に向けて、その加入規則に印を付ける。
【００３９】
フィルタのアレイ内の特定のボックスに関連付けられる規則のアレイ内の加入規則が非常に少数存在する場合には、入来メッセージは規則のアレイ内の各加入規則に対して評価される。しかしながら、規則のアレイ内に所定の数を超える加入規則が存在する場合には、それら加入規則は加入規則の値に基づいてインデックス付けされる。このインデックスを検索することにより、以下により詳細に説明されるように、入来メッセージの値に一致する値を伴う加入規則のみが選択されることになる。入来メッセージが特定のボックスに関連付けられる規則のアレイ内の関連性がある最後の加入規則に対して評価されると、評価はフィルタのアレイ内の次のボックスに進んでいく。
【００４０】
図３は、ボックス３０２、３０４、３０６、…、３０８からなるフィルタのアレイ３００を示す。各ボックスは、その特定のボックスに当てはまる規則のアレイと関連付けられる。ボックス３０２は規則のアレイ３１０と関連付けられる。ボックス３０４は規則のアレイ３１６と関連付けられる。ボックス３０６は規則のアレイ３２２と関連付けられ、ボックス３０８は規則のアレイ３２８と関連付けられる。説明のため、以下のように仮定する。
【００４１】
規則のアレイ３１０は加入規則Ａおよび加入規則Ｂのみを含む。
加入規則Ａ：「名称＝OracleＡＮＤ価格＝６０を伴う株」。
【００４２】
加入規則Ａは値＝Oracleを有する。
加入規則Ｂ：「名称＝IBMＡＮＤ複雑な条件Ａを伴う株」。
【００４３】
加入規則Ｂは値＝IBMを有する。
規則のアレイ３１６は加入規則Ｃおよび加入規則Ｄのみを含む。
【００４４】
加入規則Ｃ：「価格＝６０ＡＮＤ名称＞Intuitを伴う株」。
加入規則Ｃは値＝６０を有する。
【００４５】
加入規則Ｄ：「価格＝７５ＡＮＤ複雑な条件Ｂを伴う株」。
加入規則Ｄは値＝７５を有する。
【００４６】
規則のアレイ３２２は加入規則Ｅおよび加入規則Ｆのみを含む。
加入規則Ｅ：「Ｐ／Ｅ＞０．５を伴う株」。
【００４７】
加入規則Ｅは値＝０．５を有する。
加入規則Ｆ：「Ｐ／Ｅ＞０．７ＡＮＤ名称＜Microsoftを伴う株」。
【００４８】
加入規則Ｆは値＝０．７を有する。
規則のアレイ３２８は加入規則Ｇのみを含む。
【００４９】
加入規則Ｇ：「複雑な条件Ｅを伴う株」。
入来メッセージ♯１：「株名称＝OracleＡＮＤ価格＝６０ＡＮＤP/E＞０．５。」
入来メッセージ♯２：「株名称＝IBMＡＮＤ価格＝７５ＡＮＤP/E＞０．７ＡＮＤ複雑な条件Ｅ。」
入来メッセージ♯１の評価について図３を参照して説明する。入来メッセージ♯１は、上に規定されるとおりでは、まず高速評価機構を用いて評価される。まず、加入規則のうちどれかがメッセージ♯１に当てはまるかどうかは判断されず、したがって、メッセージ♯１に関し、加入規則のすべてがまず「おそらくは満たされる規則」の集合に属する。
【００５０】
「名称＝」ボックス３０２に関し、入来メッセージ♯１を規則のアレイ３１０内の加入規則に対し評価する。我々は、規則のアレイ３１０は加入規則Ａおよび加入規則Ｂのみを含むと仮定した。入来メッセージ♯１を、値＝「Oracle」を有する加入規則Ａに対して評価する。メッセージ♯１の加入規則Ａに対する評価の結果は、上に定義されるように、状態２である。状態２という結果を有するということは、入来メッセージ♯１は加入規則Ａに対する単純な継続評価を経て入来メッセージ♯１が完全に加入規則Ａを満たすか否かを判断しなければならないことを意味する。
【００５１】
一実施例に従うと、さらなる評価が行なわれるのは、入来メッセージ♯１がフィルタのアレイ３００の各ボックスに関連付けられるすべての加入規則に対し評価された後である。このメッセージ♯１の加入規則Ａに対するさらなる評価は単純な継続評価であると言え、なぜならば、入来メッセージ♯１は加入規則Ａの残りの部分に対して評価されなければならず、それは「ＡＮＤ価格＝６０」だからである。「ＡＮＤ価格＝６０」は単純な属性−演算子の対に関与し、したがって高速かつ安価に評価され得る。
【００５２】
次に、入来メッセージ♯１を加入規則Ｂに対して評価するが、これは値＝「IBM」を有する。明らかに、入来メッセージ♯１の名称＝「Oracle」は加入規則Ｂを満足させない。したがって、評価の結果は状態１であり、それは、加入規則Ｂは入来メッセージ♯１に対し満足される可能性のある規則の集合からは外されることを意味する。一旦加入規則Ｂが満足される可能性のある規則の集合から外されると、その規則は、入来メッセージ♯１に関する限り、さらなる考慮の対象から外される。
【００５３】
一実施例に従うと、所定数を超える加入規則が規則のアレイ３１０に存在する場合、それら加入規則は加入規則の値に基づいてインデックス付けされるであろう。このインデックスを検索することにより、入来メッセージ♯１に対し満足される可能性のある規則の集合に含まれるべき値＝「Oracle」を伴う加入規則のみが選択されるであろう。入来メッセージ♯１は規則のアレイ３１０内の加入規則のすべてに対して評価されているので、入来メッセージ♯１は、次に、「価格＝」ボックス３０４に関連付けられる規則のアレイ３１６内の加入規則に関して評価される。
【００５４】
規則のアレイ３１６に多数の加入規則が含まれる場合、それら加入規則は加入規則の値に基づいてインデックス付けされるであろう。このインデックスを次いで検索することにより、値＝「６０」を伴う加入規則のみを選択する。例においては、規則のアレイ３１６は加入規則Ｃおよび加入規則Ｄのみを含む。入来メッセージ♯１の加入規則Ｃに対する評価の結果は、上に定義されるように、状態２である。状態２という結果を有するということは、入来メッセージ♯１は加入規則Ｃに対する単純な継続評価を経て入来メッセージ♯１が加入規則Ｃを十分に満たすかどうかを判断しなければならないことを意味する。他方、加入規則Ｄは値＝「７５」を有し、したがって、入来メッセージ♯１に対し満たされる可能性のある規則の集合からは除去される。
【００５５】
入来メッセージ♯１は、次に、「Ｐ／Ｅ＞」ボックス３０６に関連付けられる規則のアレイ３２２内の加入規則に関して評価される。規則のアレイ３２２内の加入規則が加入規則の値に基づいてインデックス付けされる場合、値＝「０．５」を有する加入規則のみが選択されて、入来メッセージ♯１に対し満たされる可能性のある規則の集合に含まれるであろう。加入規則Ｆは値＝「０．７」を有し、したがって、満たされる可能性のある規則の集合からは外される。入来メッセージ♯１の加入規則Ｅに対する評価の結果は状態４である。状態４の結果を有するということは、入来メッセージ♯１は加入規則Ｅを完全に満たし、さらなる評価は入来メッセージ♯１および加入規則Ｅに関しては全く必要ないことを意味する。加入規則Ｅは、加入規則Ｃを提出した加入者に対する入来メッセージ♯１の発行に向けて印を付けられる。
【００５６】
かくして、入来メッセージ♯１は、フィルタのアレイ３００内の残りの数のボックスの各々に関連付けられるすべての加入規則に対して評価される。識別ボックス３０８に関しては、加入規則Ｇが、識別ボックス３０８に関連付けられる規則のアレイ３２８内の唯一の加入規則である。定義では、識別ボックスに関連付けられるすべての加入規則は第２の層の完全評価を必要とする。かくして、入来メッセージ♯１は、加入規則Ｇに関し、完全評価のプロセスを経なければならない。
【００５７】
第１層の高速評価における特徴をさらに説明するため、入来メッセージ♯２を上記のプロセスを用いて評価する。規則のアレイ３１０における加入規則が加入規則の値に基づいてインデックス付けされる場合、値＝「IBM」を有する加入規則のみが選択されて、入来メッセージ♯１に対し満たされる可能性のある規則の集合に含まれるであろう。規則のアレイ３１０内の加入規則に関しては、加入規則Ａは値＝「Oracle」を有し、したがって、入来メッセージ♯２に対し満たされる可能性のある規則の集合からは取除かれる。入来メッセージ♯２を加入規則Ｂに対して評価すると、その結果は状態３である。状態３の結果を有するということは、入来メッセージ♯２は加入規則Ｂの一部を満たし、入来メッセージ♯２が加入規則Ｂを提出した加入者に対して発行されるべきか否かが判断され得る前に第２の層の完全評価を必要とすることを意味する。
【００５８】
規則のアレイ３１６における加入規則に関しては、加入規則Ｃは値＝「６０」を有し、したがって、入来メッセージ♯２に対し満たされる可能性のある規則の集合からは除かれ
る。入来メッセージ♯２を加入規則Ｄに対して評価すると、その結果は状態３である。状態３の結果を有するということは、入来メッセージ♯２は加入規則Ｄの一部を満たし、入来メッセージ♯２が加入規則Ｄを提出した加入者に対して発行されるべきか否かが判断され得る前に第２の層の完全評価を必要することを意味する。
【００５９】
規則のアレイ３２２における加入規則に関しては、加入規則Ｅは値＝「０．５」を有し、したがって、入来メッセージ♯２に対し満たされる可能性のある規則の集合からは除かれる。入来メッセージ♯２を加入規則Ｆに対して評価すると、その結果は状態２である。状態２の結果を有するということは、入来メッセージ♯２は加入規則Ｆに対する単純な継続評価を経て入来メッセージ♯２が十分に加入規則Ｆを満たすか否かを判断しなければならないこと意味する。
【００６０】
最後に、規則のアレイ３２８内の加入規則に関しては、入来メッセージ♯２は完全評価のプロセスを加入規則Ｇに関して経なければならず、なぜならば、加入規則Ｇは識別ボックス３０８に関連付けられるからである。
【００６１】
自動発行
自動発行または非明示発行が生ずるのは、関係型データベースシステム内に記憶される情報に既知の関心がある場合である。関心があるエンティティによって、そのような情報に関連付けられる加入規則が提出されるかもしれず、データベースサーバはそのような情報の発行者となる。これは可能であるのは、コンテンツに基づく発行−加入システムの実施例が関係型データベースシステムにしっかりと統合されるからである。かくして、自動発行が生ずるのは加入者がメッセージに対する要求をＳＱＬを用いて提出する（クエリーを提出する）ときであり、そのメッセージにはデータベースサーバによって維持されるデータテーブルに記憶される情報が含まれる。メッセージに対するこの加入者の要求はデータベースサーバによる発行を引起す。たとえば、加入者のクエリーが実行され、そのクエリーの結果がその加入者に返される。しかしながら、クエリーを、入来メッセージが評価され得る加入規則として記憶する代わりに、トリガを実現することにより、加入者に対し、当人がそのクエリーを用いて要求した情報のいずれの更新版も自動的に発行する。
【００６２】
一実施例に従うと、このトリガは、データベースに記憶され、一人以上の加入者が関心を持つ情報を含むデータテーブルに関連付けられるコンピュータプログラムとして実現される。このトリガが活性化または放たれるのはＵＰＤＡＴＥ（更新）動作がそのデータテーブルに対し要求されるときである。このトリガは３つの部分、つまり、トリガを行なう文、トリガ制限およびトリガ動作を含む。
【００６３】
説明のため、この関係型データベースは小売店アクミ（Retail Acme）に対する現在の在庫情報をデータテーブルAcme＿Inventoryに維持すると仮定する。Acme＿Inventoryの各行はある特定のタイプの製品に関する情報を含んでいる。さらに、加入者Ａは小売店アクミのすべての製品の在庫に関心があり、クエリーを提出して各タイプの製品の手元のストックがある特定の量未満（低い在庫状態）であるかどうかをチェックする。加入者Ａはどの製品タイプでも手元のストックが特定の量未満であれば知らせてもらうことを望んでいる。加入者Ａのクエリーを実行し、そのクエリーの結果を当人に返す。次に、加入者Ａのクエリーに応答して、トリガを実現することにより、データテーブルを、低い在庫状態に関し、該データテーブルの行が更新されるごとに自動的にチェックし、低い在庫状態があればそれを加入者Ａに自動的に発行する。かくして、トリガを行なう文はこの例にいおてはデータテーブルAcme＿InventoryにおけるＵＰＤＡＴＥ要求である。
【００６４】
たとえば、ある消費者が小売店アクミからフーバール（foobarl）タイプの製品（widget）を買うと、データテーブルAcme＿Inventoryのフーバール製品（foobarl widgets）に
関する在庫情報を含む行が更新されて、減少した数のフーバール製品を反映する。トリガはこの更新に応答して放たれる。かくして、トリガを行なう文は“…UPDATE of number＿of＿widgets＿on＿hand ON Acme＿Inventory…（…アクミ在庫における手元の製品数の更新…）”のようであるかもしれず、それが意味するところは、Acme＿Inventoryデータテーブル内のある行のNUMBER＿OF＿WIDGETS＿ON＿HAND（手元の製品数）列が更新されたらトリガを放て、である。
【００６５】
トリガ制限は、トリガが放たれるようＴＲＵＥ（真）にならなければならない論理式を特定する。上記の例では、トリガ制限は“number＿of＿widgets＿on＿hand＜reorder＿quantity”（手元の製品数＜再注文量）のようであるかもしれない。
【００６６】
トリガ動作は、トリガを行なう文が出されトリガ制限がＴＲＵＥになると実行されるべきコンピュータコードである。上記の例では、トリガ動作は、低い在庫状態に関するメッセージを加入者Ａに発行することになるだろう。かくして、トリガ動作の実行は、トリガを行なう文“…UPDATE of number＿of＿widgets＿on＿hand ON Acme＿Inventory…”が出されトリガ制限“number＿of＿widgets＿on＿hand＜reorder＿quantity”がＴＲＵＥになるゆえに行なわれる。
【００６７】
メッセージ配信
実施例では、入来メッセージが加入者に配信される前に、その加入者に入来メッセージを２回以上受信する資格があるか否かが判断される。加入者に所与の入来メッセージを２回以上受信する資格が実際にあると判断される場合には、その入来メッセージはその加入者に一度だけ配信される。
【００６８】
実施例では、メッセージを受信する資格を与えられている加入者に配信されるメッセージは、入来メッセージのみならず、以前に発行されておりデータベースに記憶されたメッセージも含む。たとえば、加入者によって加入規則「Oracleの雇用機会に関する新たな告示およびそれと並んで過去３ヵ月間における告示」が提出されたとする。入来メッセージ、およびそれと並んで、関係型データベースに記憶されたものであり、その加入規則を満足させる、以前に発行されたメッセージの両方が、その加入者に配信される。関係型データベースに記憶されているので、以前に発行されたメッセージは、データベースサーバにより用いられる既存のデータ検索法を用いて、新たな加入者に対する発行に向けて検索され得る。
【００６９】
この発明のある実施例では、加入者は、配信機構、メッセージの宛先および通知プロトコルを、そのメッセージを要求する当人のクエリーの一部として特定してもよい。たとえば、加入者は、そのクエリーにおいて、自分はメッセージをｅメールによって受信することを望む旨を指定してもよい。加入者は、次いで、そのメッセージを受取るｅメールアドレスを指定し得る。代替的に、加入者は、そのクエリーにおいて、自分は自分のメッセージが遠隔のデータベースにデータベースリンクを介して配信されることを望む旨を指定してもよい。一実施例では、このデータベースはＳＱＬを用いて設けられ得、それはその遠隔のデータベースに接続するために用いられるデータベースの名称、経路、ログオン・アカウント、およびプロトコルを定義する。加えて、加入者は、どのように高速にメッセージが自分に配信されたいかを指定してもよい。たとえば、ファーストクラスプロトコル通知ならば、メッセージの加入者に対する配信はそのメッセージの創出から０．５秒以内に確実に行なわれるであろう。
【００７０】
この発明の一実施例では、メッセージの配信は、ある宛先への別途の通知に対する選択肢を含み、その通知は、メッセージが加入規則によって指定された別の宛先に配信中である旨を知らせる。たとえば、ある医師がジョン・ドウのＸ線写真を得るためにある加入規
則を送り込むとする。この医師の加入規則はそれらＸ線写真が当人のオフィスのコンピュータに電子配信されるべきである旨を指定し、さらに、それらＸ線写真がその医師のオフィスのコンピュータに向かっているときに当人に小型無線呼出機（短いメッセージを受信し、典型的にはビープ音を出すことによりそれを持っている人を呼出す小型の電気通信装置）を介して知らせるべきである旨を指定する。
【００７１】
この発明のある実施例では、メッセージは、加入者（規則を提出したエンティティ）には配信されず、メッセージの受け手またはメッセージの宛先は取引の内容から判断される。たとえば、スキンフリント・ユニオン銀行の銀行経営者氏によって、「口座が＄５００，０００以上の残高に達したらすぐにその口座の所有者に対して銀行から無料のトースターが贈呈される旨をその口座所有者に通知する」旨を指定する加入規則が送り込まれたとする。この場合、メッセージは、加入者である銀行経営者氏ではなく、口座所有者に配信されることになる。取引の性質、つまり＄５００，０００を超える口座残高によって、「無料トースター」メッセージの受け手または宛先が決定される。
【００７２】
ハードウェア外観
図４は、この発明のある実施例が実現されてもよいコンピュータシステム４００を示すブロック図である。コンピュータシステム４００は、情報を通信するためのバス４０２または他の通信機構と、バス４０２と結合され情報を処理するためのプロセッサ４０４とを含む。コンピュータ４００は、さらに、バス４０２に結合され、プロセッサ４０４によって実行されるべき情報または命令を記憶するためのメインメモリ４０６、たとえばランダムアクセスメモリ（ＲＡＭ）または他の動的記憶装置を含む。メインメモリ４０６は、さらに、プロセッサ４０４によって実行されるべき命令の実行中に一時的な変数または他の中間情報を記憶するために用いられてもよい。コンピュータシステム４００は、さらに、バス４０２に結合され、プロセッサ４０４のために静的情報および命令を記憶するためのリードオンリメモリ（ＲＯＭ）４０８または他の静的記憶装置を含む。記憶装置４１０、たとえば磁気ディスクまたは光ディスクなどを設けてバス４０２に結合し、情報および命令を記憶させる。
【００７３】
コンピュータシステム４００はバス４０２を介してディスプレイ４１２、たとえば陰極線管（ＣＲＴ）などに結合されてコンピュータユーザへの情報を表示してもよい。入力装置４１４はアルファベットおよび他のキーを含んでおり、バス４０２に結合されて情報およびコマンド選択をプロセッサ４０４に通信する。他のタイプのユーザ入力装置はカーソルコントロール４１６、たとえばマウス、トラックボール、またはカーソル方向キーであり、方向情報およびコマンド選択をプロセッサ４０４に通信し、カーソルの動きをディスプレイ４１２上において制御する。この入力装置は典型的には２つの自由度を２つの軸、つまり第１の軸（たとえばｘ）および第２の軸（たとえばｙ）において有し、それらによって該装置は面内において位置を特定することができる。
【００７４】
この発明は、関係型データベースにおいてコンテンツに基づく発行および加入システムのためのコンピュータシステム４００の使用に関連する。この発明の一実施例に従うと、コンテンツに基づく発行および加入システムは、関係型データベースにおいては、コンピュータシステム４００によって、メインメモリ４０６に含まれる１つ以上の命令からなる１つ以上のシーケンスを実行するプロセッサ４０４に応答して与えられる。そのような命令はメインメモリ４０６に他のコンピュータ読取可能媒体、たとえば記憶装置４１０から読込まれてもよい。メインメモリ４０６に含まれる命令のシーケンスの実行によって、プロセッサ４０４はここに記載されるプロセスステップを実行する。代替実施例では、ハードワイヤード回路をソフトウェア命令の代わりまたはソフトウェア命令との組合せで用いることによりこの発明を実現してもよい。このように、この発明の実施例はハードウェア回路とソフトウェアとのどのような特定の組合せにも限定されない。
【００７５】
ここに用いられる「コンピュータ読取可能媒体」という語は、実行のためにプロセッサ４０４に命令を与えることに預かる任意の媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体および伝送媒体を含む数多くの形式をとってもよいが、それらに限定されるものではない。不揮発性媒体は、たとえば、記憶装置４１０のような光ディスクまたは磁気ディスクを含む。揮発性媒体はたとえばメインメモリ４０６などのダイナミックメモリを含む。伝送媒体は、バス４０２を形成するワイヤを含む、同軸ケーブル、銅線およびファイバ光学素子を含む。伝送媒体は、さらに、無線および赤外線データ通信中に発生するような音波または光波の形式も取り得る。
【００７６】
一般的な形式のコンピュータ読取可能媒体は、たとえば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、ＣＤ−ＲＯＭ、任意の他の光学媒体、パンチカード、ペーパーテープ、穴のパターンを有する任意の他の物理的媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、任意の他のメモリチップまたはカートリッジ、以下に記載される搬送波、またはコンピュータが読取り得る任意の他の媒体を含む。
【００７７】
さまざまな形式のコンピュータ読取可能媒体が、実行のためにプロセッサ４０４に１つ以上の命令からなる１つ以上のシーケンスを担持することに関与してもよい。たとえば、それらの命令はまず遠隔のコンピュータの磁気ディスクに担持されてもよい。この遠隔のコンピュータはそれら命令をそのダイナミックメモリにロードしそれら命令を電話回線上をモデムを介して送り得る。コンピュータシステム４００にローカルなモデムがその電話回線上のデータを受取り赤外線送信機を用いてそのデータを赤外線信号に変換し得る。赤外線検出器によってその赤外線信号で搬送されるデータが受取られ得、適切な回路によってそのデータはバス４０２上に置かれ得る。バス４０２はそのデータをメインメモリ４０６に運び、そこからプロセッサ４０４は命令を検索し実行する。メインメモリ４０６によって受取られたそれらの命令は、選択肢として、記憶装置４１０に、プロセッサ４０４による実行の前または後に記憶されてもよい。
【００７８】
コンピュータシステム４００は、さらに、バス４０２に結合される通信インターフェイス４１８を含む。この通信インターフェイス４１８は、ローカルネットワーク４２２に接続されるネットワークリンク４２０に結合する２方向データ通信を与える。たとえば、通信インターフェイス４１８は、対応のタイプの電話回線へのデータ通信接続を与えるような統合デジタル通信サービス網（ＩＳＤＮ）カードまたはモデムであってもよい。他の例としては、通信インターフェイス４１８は、互換性のあるＬＡＮへのデータ通信接続を与えるようなローカルエリアネットワーク（ＬＡＮ）カードであってもよい。さらに、無線リンクを実現してもよい。任意のそのような実現例では、通信インターフェイス４１８は、さまざまなタイプの情報を表現するデジタルデータストリームを搬送する電気信号、電磁信号または光信号を送受する。
【００７９】
ネットワークリンク４２０は典型的にはデータ通信を１つ以上のネットワークを介して他のデータ装置に与える。たとえば、ネットワークリンク４２０は、接続を、ローカルネットワーク４２２を介して、ホストコンピュータ４２４に対して、またはインターネットサービスプロバイダ（ＩＳＰ）４２６により動作されるデータ装置に対して与える。ＩＳＰ４２６は、次いで、データ通信サービスを、現在では「インターネット」４２８とよく称される世界的なパケットデータ通信ネットワークを介して与える。ローカルネットワーク４２２およびインターネット４２８は、両方とも、デジタルデータストリームを搬送する電気信号、電磁信号または光信号を用いる。さまざまなネットワークを介する信号ならびにネットワークリンク４２０上および通信インターフェイス４１８を介する信号は、コンピュータシステム４００との間でデジタルデータを搬送するものであり、それらは情報
を移送する搬送波の例示的形式である。
【００８０】
コンピュータシステム４００は、メッセージの創出およびデータの受信を、プログラムコードを含んで、ネットワーク、ネットワークリンク４２０および通信インターフェイス４１８を介して行ない得る。インターネットの例では、サーバ４３０はある要求されるコードをあるアプリケーションプログラムのためにインターネット４２８、ＩＳＰ４２６、ローカルネットワーク４２２および通信インターフェイス４１８を介して送信するかもしれない。この発明に従うと、１つのそのようなダウンロードされるアプリケーションはここに記載されるように関係型データベースにおいてコンテンツに基づく発行および加入システムを可能にする。
【００８１】
受取られたコードは、受取られると、プロセッサ４０４によって実行されてもよく、および／または記憶装置４１０もしくは他の不揮発性ストレージおいて後の実行のために記憶されてもよい。この態様において、コンピュータシステム４００はアプリケーションコードを搬送波の形式で得てもよい。
【００８２】
前述の明細書において、この発明はその具体的な実施例を参照して記載されてきた。しかしながら、さまざまな修正および変更をこの発明のより広い精神および範囲から逸脱することなくそれに対して行なってもよいことは明らかである。明細書および図面は、したがって、制限的な意味ではなく例示的な意味において理解されるべきである。
【図面の簡単な説明】
【００８３】
【図１】フィルタのアレイを示すブロック図である。
【図２】フィルタのアレイおよび関連の規則のアレイを示すブロック図である。
【図３】規則のアレイおよび継続処理のさらなる詳細を示すブロック図である。
【図４】この発明の実施例が実現されてもよいコンピュータシステムを示す図である。
【符号の説明】
【００８４】
１００，３００  フィルタのアレイ、２００  規則のアレイ。
【図１】
2007066325.tif 000003
【図２】
2007066325.tif 000004
【図３】
2007066325.tif 000005
【図４】
2007066325.tif 000006