JP2001043248A - データベース技術による通知システム及び発行、購読処理方法 - Google Patents

データベース技術による通知システム及び発行、購読処理方法

Info

Publication number
JP2001043248A
JP2001043248A JP2000205082A JP2000205082A JP2001043248A JP 2001043248 A JP2001043248 A JP 2001043248A JP 2000205082 A JP2000205082 A JP 2000205082A JP 2000205082 A JP2000205082 A JP 2000205082A JP 2001043248 A JP2001043248 A JP 2001043248A
Authority
JP
Japan
Prior art keywords
database
subscription
notification
trigger
metadata
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
JP2000205082A
Other languages
English (en)
Other versions
JP3996328B2 (ja
Inventor
Frank Leymann
フランク・レイマン
Dieter Roller
ディエター・ローラー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2001043248A publication Critical patent/JP2001043248A/ja
Application granted granted Critical
Publication of JP3996328B2 publication Critical patent/JP3996328B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Abstract

(57)【要約】 【課題】 通知、特に購読のために、データベース技術
を効率的に使用する方法及びシステムを提供すること。 【解決手段】 本発明は一般に、購読の処理のために、
アクティブ・データベース技術及び拡張可能データベー
ス技術、すなわちトリガ及びユーザ定義機能を効率的に
利用する方法を教示する。本発明の第1の態様によれ
ば、特定のテーブル上の、またはより一般的には複数の
テーブル上の全ての購読を、それぞれこのテーブルまた
はこれらのテーブル上の1つのトリガに統合するように
提案される。これによりトリガ・ベースの効率が劇的に
改善される。本発明の第2の態様によれば、加入者が登
録済みの情報を、データベース・システムのアドレス空
間から、適切なユーザ定義機能を介して、直接配信する
ように提案される。このことが効率改善の別の根拠とな
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は通知システム及びメ
ッセージ仲介の分野に関する。特に、本発明は通知の処
理、とりわけ発行及び購読要求の分野に関する。
【0002】
【従来の技術】本発明は非常に一般的な適用範囲を有す
る。その基本的な概念は、あらゆる通知プロセスまたは
仲介、特に発行及び購読プロセスが発生する任意の状況
に当てはまる。
【0003】本発明はデータベース技術をこれらの関心
事に導入する。本発明において、データベース・システ
ムのデータ・モデルは、無関係である。また、データベ
ース・システムはディスク上の持続データを管理しても
よいし、主メモリ内のデータ、すなわち主メモリ・デー
タベースを管理してもよい。それにも関わらず、ここで
は依然として、リレーショナル・データベース・システ
ムの用語が、単純化及び明瞭化のために使用される。
【0004】一般に、メッセージ・ブローカは、複数の
メッセージ・ソースmから複数のメッセージ・シンクn
に、m/nなる関係において、メッセージが頻繁に、そ
して時に定期的に送信される状況において適用される機
器である。そこでは1:m及びn:1の特殊なケースも
発生する。ソースは1つのメッセージだけを送信する必
要があり、メッセージ・ブローカはそのメッセージの1
つまたは複数のバージョンを1つ以上のシンクに配信す
るように、メッセージを'共有'する。ここでソースはし
ばしば任意の種類のプログラム・アプリケーションであ
り、シンクもまたしばしばアプリケーションである。メ
ッセージ・ブローカ・システムの詳細については、R.Sc
hulteによる"Message Brokers: A focused approach to
application integration"、Gartner Group、Strategi
c Analysis Report SSA R-401-102、1996で見い出され
る。
【0005】より詳細には、メッセージ・ブローカはハ
ブに似ており、そこにメッセージが入出力する。ブロー
カに入力するメッセージは、以下では発行される(publ
ished)と称され、ブローカから出力するメッセージ
は、購読される(subscribed)と称される。購読要求
は、特定のアプリケーションが関心を寄せる全ての入来
メッセージのサブセット、及びそれが加入者に提供され
るときの形式を指定する。
【0006】例えば、様々な証券取引所が株式データを
定期的に発行する。すなわち、株式データがメッセージ
・ブローカに送信される。各証券取引所は異なる形式を
用いて、そのデータを転送し得る。加入者は、例えば1
03ドルを超えるIBM(登録商標)株式データに関す
る全てのメッセージに登録しており、その配信をXML
形式で要求する。
【0007】発行/購読機能を提供する最新のメッセー
ジ・ブローカでは、発行メッセージ及び購読を管理する
ために、多大な努力が払われている。この管理は一般
に、自前の機構を用いることにより実行される。本発明
はオブジェクト・リレーショナル・データベース技術を
用いて、発行/購読機能を実現することを提案するもの
である。
【0008】最新のメッセージ・ブローカは一般に、発
行されるメッセージ、及び加入者が知りたいメッセージ
を扱う。しかしながら、加入者は発行されるメッセージ
だけに関心がある訳ではなく、1つ以上のデータベース
内の1つ以上のテーブルに記憶されるデータに対する変
更にも関心があるかもしれない。本発明はオブジェクト
・リレーショナル・データベース技術にもとづき、この
機能の実現を可能にする。
【0009】従って、この大量のプログラミング、及び
カストマイズの労力を軽減することが望ましい。前述の
従来技術の引例は、メッセージ仲介のための基礎として
使用されるデータベース技術の有用性を分析しようとす
る。しかしながら、結論的には、データベース・システ
ムはメッセージ仲介のために必要な多くの機構、すなわ
ちインタフェース・エンジン及びメッセージ・スイッチ
などの、仲介を実行するために設計されたミドルウェア
を欠く。従って、前述の引例においては、メッセージ仲
介のための基礎としてのデータベース技術は、実現が余
りに困難且つ複雑であり、性能的に遅いために、多かれ
少なかれ拒絶されることになる。
【0010】データベース指向ビューを用いて、発行/
購読技術の振舞いを分析するとき、次の所見が述べられ
る。すなわち、購読要求は照会に類似する。購読要求内
で指定された内容にもとづき、メッセージはフィルタリ
ングされて、その受信者に配信される。しかしながら、
照会と購読との間には、基本的な動作上の違いが存在す
る。すなわち、購読は1度に、例えばメッセージ・ウェ
アハウスに記憶される全てのメッセージには作用せず、
1つのメッセージにだけ、すなわちメッセージ・ブロー
カに丁度発行されたメッセージにだけ作用する。更に、
一般に多くの購読がメッセージ・ブローカに登録され
る。すなわち、購読を照会と同一視すると、多くの照会
が1つのメッセージに対して評価されなければならない
状況となる。すなわち、この状況は、一般に照会システ
ムにおいて見い出される状況、すなわち検査されるデー
タ項目の数が照会の数を大幅に上回る状況と逆になる。
【0011】発行/購読技術のために、オブジェクト・
リレーショナル・データベース技術を使用する本発明の
提案は、解決されなければならない2つの問題点に直面
する。
【0012】第1は、発行に関連する操作データを効率
的に識別する方法であり、第2は、外部化(externaliz
ed)データベース技術にもとづき、購読を効率的に実行
する方法である。
【0013】第1の問題点は、ほとんどのメッセージ・
ブローカがデータベース技術にもどづいて実現されてお
らず、また管理に関する企業データが普通に必要とされ
る事業環境において、例えば操作データの特定の変更
が、しばしば外部アプリケーションにとって関連のある
事象と見なされる事実に由来する。これが図1に示され
る。
【0014】例えば、新たなタプル(tuple)がテーブ
ルに挿入される場合、ある人はこの事実に関して、対応
する電子メールを介して知らされることを希望したり、
或いはこのためにアプリケーションが呼び出されなけれ
ばならなかったり、代わりにメッセージ・ブローカがこ
のデータを獲得したい加入者を有したりする。従って、
データベースは発行のためのソースと見なされ得る。
【0015】特に、メッセージ・ブローカが、操作デー
タの変化に対する購読要求を管理するために使用され、
従って、操作データの変化がメッセージ・ブローカに発
行される必要がある場合、発行の事前フィルタリングの
重要性は明らかである。操作データの非常に多数の変化
の各々が、メッセージ・ブローカにプッシュされ、ブロ
ーカが主題変化に関わる加入者が存在するか否かを判断
する場合、たくさんのデータが不必要に処理され得る。
これは資源の浪費である。従って、データベース・シス
テム内に購読機能を提供することが、一般に便利であ
る。
【0016】或いは、データベース・システムにおいて
元来提供される購読機構を有さない場合、変更データは
メッセージに変換されて、次に別々のメッセージ・ブロ
ーカに送信、すなわち発行されなければならない。そし
て、このメッセージ・ブローカが、全ての対応する加入
者を決定しなければならない。このアプローチでは、デ
ータベースは単に発行者と見なされ、メッセージ・ブロ
ーカの購読エンジンが、任意の加入者が変更データに関
心があるか否かを決定するために使用される。
【0017】どの加入者も、データベース・システムと
メッセージ・ブローカ間の、関連するデータ変換などを
含むこのデータ通信に関心がない場合、多くの作業及び
トラフィックが無駄に実行され、不要な負荷を環境全体
に課することになる。更に、別々の購読エンジンの使用
は次の事実、すなわち別々のメッセージ・ブローカ・エ
ンジンを必要とすることなく、データベース・システム
の照会機能が購読を直接処理するために即時使用され得
る。従って、効率を一層改善する事実を無視するもので
ある。
【0018】第2の問題は、データベース技術そのもの
にもとづき、購読を実現する効率を取り扱う。今日、ほ
とんど全てのリレーショナル・データベース・システム
が、トリガ機構をサポートする。トリガは、データの関
連変更に関する登録済みの関心にもとづき、アクション
を自動的に実行することを可能にする。トリガと購読の
間の'自然の'適合を認識する、すなわち、各購読要求を
対応するトリガに単にマップする提案が存在するものと
思われる。
【0019】例えば、株式テーブルが会社名、その実際
の株価、及び取引量を報告する行を含むものと仮定す
る。この時、変更された株式データの各購読が、このテ
ーブル内の別々のトリガにマップされる。図2を参照す
ると、特定の購読のマッピング例が示される。S(T)
人の加入者(ここでTは'テーブル'の略語)が、所与の
テーブルT上の変更に登録しており、1秒当たりn
(T)の変更がこのテーブル上で発生する場合、テーブ
ルTに対して、1秒当たりS(T)×n(T)のトリガ
が実行されなければならない。実際、2つ以上のテーブ
ルが購読の対象となり得るので、この数は更に多くな
る。株式テーブル上で1秒当たり10の変更が発生し、
100の購読が存在する場合(これらは非常に適度な数
と見なされる)、1000のトリガがこの1つのテーブ
ルに対して実行されなければならない。これは現データ
ベース技術の範囲から逸脱している。
【0020】
【発明が解決しようとする課題】従って、本発明の目的
は、通知、特に購読のために、データベース技術を効率
的に使用する方法及びシステムを提供することである。
【0021】
【課題を解決するための手段】本発明のこれらの目的
が、開示される独立クレームで述べられる機構により達
成される。更に本発明の別の有利な構成及び実施例が、
それぞれの従属クレームで述べられる。
【0022】本発明は一般に、購読の処理のために、ア
クティブ・データベース技術及び拡張可能データベース
技術、すなわちトリガ及びユーザ定義機能を効率的に利
用する方法を教示する。
【0023】本発明の第1の態様によれば、特定のテー
ブル上の、またはより一般的には複数のテーブル上の全
ての購読を、それぞれこのテーブルまたはこれらのテー
ブル上の1つのトリガに統合するように提案される。こ
れによりトリガ・ベースの効率が劇的に改善される。
【0024】本発明の第2の態様によれば、データベー
ス・システムにより提供されるユーザ定義機能の設備を
利用することにより、加入者が登録済みの情報を配信す
るように提案される。これは加入者に送信される情報の
作成を、データベース・システムが実行中のアドレス空
間から可能にし、このことが効率改善の別の根拠とな
る。
【0025】処理全体は、次のように要約される。すな
わち、テーブルTに対する最初の購読が登録されると
き、テーブルT上でこの種の"統合購読トリガ"が作成さ
れて、テーブルTに関する全ての購読を保持するのに好
適な、いわゆるメタデータ・テーブルの集まりが作成さ
れる。これは図3に示されるように、イネーブル・テー
ブルと呼ばれる。この機能はまた、例えば管理者により
呼び出される別個のユーティリティとして、明示的に実
現され得る。
【0026】好適なメタデータ・テーブルを作成し、統
合購読トリガを生成する好適な実施例について、以下で
詳述する。
【0027】単一の購読の各々は、単にこれらの後者の
メタデータ・テーブルに、適切なタプルを挿入すること
により反映される。すなわち、本発明によれば、別々の
トリガは生成されず、単一の購読トリガに変更が加えら
れる必要はない。
【0028】関連するメタデータ・テーブル内に、タプ
ルとして購読を反映する好適な実施例について述べる。
通常の従来型のメッセージ・ブローカにおける発行に対
応して、タプルがテーブルT内で操作されるとき、対応
するトリガが発生し、単一の呼び出しにおいて、タプル
の変更に関心を持つ全ての加入者を決定する。
【0029】単一の購読トリガにより、データベース・
システムのトリガ機構を望み通り効率的に使用すること
は価値がある。すなわち、トリガ本体内の照会は、より
複雑であるに違いないからである。なぜなら、それは関
連する集合メタデータ・テーブル内で、基本的に全ての
潜在的な加入者を探索しなければならないからである。
本発明の実施例によれば、これは少なくともnウェイ結
合を含み得る。ここでnはターゲット・テーブルに対し
て、購読フィルタ内でサポートされる比較演算子の数で
ある。しかしながら、実際上、照会システムは数10年
来、nウェイ結合を非常に効率的に実行するように、最
適化されてきた。
【0030】データベース・トリガにより開始される通
知に関連して、本発明の概念はこの点で非常に一般的で
あると言える。通知は例えば、メッセージング・システ
ムの意味において、メッセージが送信されたり、アクシ
ョンがオブジェクト・サーバ上で管理されるオブジェク
トに対して実行されたり、或いは電子メールが加入者に
送信されることを意味する。通知は各加入者のために保
持されるテーブルにも挿入されて、加入者がテーブルを
照会することにより、適切な通知を検索することを可能
にする。
【0031】前述の本発明の第2の態様に関連して、資
格のある各加入者に送信される通知の実際の構成は、い
わゆるユーザ定義機能(ここではUDFとも呼ぶ)にも
とづき達成される。すなわち、トリガ本体内の照会のフ
ィルタが、資格のある加入者を決定する一方、照会のセ
レクト節が、各加入者への通知の配信を開始するユーザ
定義機能を参照する。この配信UDFは資格のある各加
入者に対して、データベース・システムにより、自動的
に呼び出される。配信機能は、通知を構成するために必
要な全てのデータ、例えばトリガの発生を生じた変更さ
れたタプルの関連値や、受信者のアドレスなどを獲得す
る。またこれらは追加の結合を要求し得る。受け渡され
たこのデータにもとづき、配信機能は通知を構成し、そ
れをMQSeriesのようなメッセージ照会システムや、
電子メールなどを介して、受信者アドレスに送信する。
配信UDFの好適な実施例については、以下で詳述す
る。
【0032】利点として、本発明は既存のデータベース
機能に加えて、効率的な購読機構を構築することを可能
にする。変更がデータベース・システムに加えられる必
要は全くない。従って、本発明は標準のオブジェクト・
リレーショナル・データベース・システムをそのまま使
用して、発行/購読エンジンを実現することを可能にす
る。更に、ここで述べられる購読機構は、データベース
を容易にメッセージの発行者に変じることを可能にす
る。
【0033】
【発明の実施の形態】好適な実施例の概論本発明の好適
な実施例の要素について述べる前に、購読フィルタPが
論理和正規形(disjunct normal form)で指定されるも
のと仮定する。これは一般性を欠くものではない。なぜ
なら、各フィルタがこの形式に変換され得ること、及び
その方法がよく知られているからである。
【0034】従って、購読フィルタPはP=B
1∨...∨Bkと記述され、ここで各Bjは次の形式を
取る。
【数1】 Bj=(Aj1j1j1∧...∧Ajnjjnjjnj
【0035】こうした表現式では、Ajiは購読に対応す
るテーブルの属性であり、〜ijはA jiのドメインに適用
可能な比較演算子(例えば>,≧,<,≦,=,≠,LI
KE,...)である。またvjiはAjiのドメインからの
値である。要するに、購読フィルタは次の形式を有す
る。
【数2】P=(A111111∧...∧A1n11n1
1n1)∨...∨(Ak1k1k1 ∧...∧Aknkknk
knk
【0036】購読を保持するために使用されるメタデー
タ・テーブルの実施例に従い、フィルタの構造に対し
て、更に別の制限が適用され得る。例えば、後述の実施
例は、各等位項(conjunct)Bj=(Aj1j1
j1∧...∧Ajnjjnjjnj)内において、属性が特
定の比較演算子と共に高々1度現れることを想定する。
すなわち、
【数3】∀1≦j≦k∀1≦x,y≦nj:Ajx=Ajy
jx⇒vjx=vjy
【0037】図4を参照すると、テーブルT=
{A1,...,Aq}が購読のためにイネーブルされる
とき、このテーブル上の全ての購読を保持するメタデー
タ・テーブルの集まりがセットアップされる。これらの
メタデータ・テーブルの様々な代案が存在することが明
らかであるが、本発明の基本的なアプローチは任意の特
定の構造を想定しない。明瞭化のために、必要なメタデ
ータ・テーブルを導出するために、次の処理が提案され
る。
【0038】イネーブル・テーブル機構が、例えばデー
タベース・ユーティリティまたは新たなSQL DDL
要素として提供され、イネーブルされるテーブルの名前
Tを、購読においてサポートされる比較演算子
{〜1,...,〜m}のリストと共に受諾する。新たに
生成されるタプルに加え、タプルの更新または消去が発
行として扱われる場合、別のパラメータがこの指定を可
能にする。この入力にもとづき、イネーブル・テーブル
要求は統合購読トリガの他に、メタデータ・テーブルの
集まりを生成する。下記にイネーブル・テーブル要求の
構文例を示す。
【数4】ENABLE TABLE table-name,[list-of-compariso
ns],[list-of-triggering-pubs]
【0039】イネーブル・テーブル要求が実行されると
きに発生する処理の実施例は、比較演算子のリスト内で
指定される各比較演算子〜∈{〜1,...,〜m}に対
して、テーブルT-〜={加入者,A1,...,Aq,A
NDID}を作成する。テーブルT-〜は、購読フィルタの
等位項の様々なアトミック表現式を反映するタプルを保
持するために使用され、図5に関連して後述される。
【0040】この実施例で生成されるトリガは、図6に
関連して詳述される。
【0041】図4を参照すると、購読のために、Stock
={銘柄,価格,取引量}へのタプルの挿入が、イネー
ブル・テーブル要求ENABLE TABLE Stock,[EQ,NE,GT,L
T],[INSERT]を介して可能になる。ここでEQは"equa
l",NEは"not equal"などを表す。図4は、この要求
により生成されるメタデータ・テーブルStock-EQ,Stoc
k-NE,Stock-GT,Stock-LTを示す。
【0042】図5を参照すると、購読が詳細に示され、
またそれらがメタデータ・テーブル内の前述のタプルに
マップされる様子が示される。
【0043】テーブルT={A1,...,Aq}のため
の購読フィルタは、次のように、図4の実施例のメタデ
ータ・テーブルT-〜1,...,T-〜m内のタプルとし
て反映される。
【0044】加入者Sの購読要求のフィルタP=B
1∨...∨Bkの各等位項Bj=(Aj1j1
j1∧...∧Ajnjjnjjnj)は、各テーブルT-
1,...,T-〜m内の正しく1つのタプルに対応す
る。各テーブルT-〜iのカラムAND_IDは、整数値jを保
持し、カラム加入者は値'S'(すなわち加入者に関する
要求情報の固有の参照)を保持する。
【0045】各比較演算子〜iに対して、等位項Bj内に
現れる全てのアトミック表現式Ajpjpjpが決定さ
れ、ここで〜jp=〜iである。
【0046】テーブルT-〜iの対応するカラムAjpは、
値vjpにセットされる。Bj内において、比較演算子〜i
を有するアトミック表現式内に現れない属性Aに対し
て、Bjに対応するT-〜i内のタプル内のAの値がNULL
にセットされる。
【0047】加入者Sのための購読フィルタの等位項B
jが、比較演算子〜iを有するアトミック表現式を含まな
い場合、テーブルT-〜iはこの事実を反映するタプ
ル('S',NULL,..,NULL)を保持する。各購読フィ
ルタP=B1∨...∨Bkは、各メタデータ・テーブル
T-〜1,...,T-〜m内に、正しくk個のタプルを生
じる。
【0048】図6を参照すると、購読フィルタの例の集
まりが示され、またそれらの各々が図4の実施例のメタ
データ・テーブル内のタプルとして表される様子が示さ
れる。尚、図6では、Stock-EQ及びStock-GTメタデータ
・テーブルだけが模範的に示される。
【0049】4人の加入者Frank、Peter、Don及びJanet
が存在する。詳細には、加入者Frankは銘柄='IBM'
を有する株式タプルに関心がある。購読フィルタは1つ
の等位項を含み、従って各メタデータ・テーブル内の1
つのタプルが、このフィルタにマップされる。購読フィ
ルタ内のどの表現式もGT演算子(">")を含まないの
で、タプル('Frank',NULL,NULL,NULL,1)がStock-
GTに挿入される。比較演算子"="を有する等位項内に現
れるStockからの属性は、銘柄だけである。すなわち、S
tock-EQ内の結果のタプルは、('Frank','IBM',NUL
L,NULL,1)となる。
【0050】PeterはIBMに関する株式情報を購読し
たが、株価が200ドルを越える場合に限る。再度、こ
のフィルタは1つの等位項を含む。すなわち、フィルタ
を表すのに、各メタデータ・テーブル内の1つのタプル
で足りる。"="比較を含む唯一のアトミック表現式は"
銘柄='IBM'"であり、Stock-EQ内の対応するタプル
は、('Peter','IBM',NULL,NULL,1)である。フィ
ルタの1つの属性は、">"比較に関わり、すなわち属
性"価格"に関して、価格>200である。この結果、St
ock-GT内において、次のタプルすなわち('Peter',NUL
L,NULL,200,1)が生成される。DonはIBMに関する
株式情報を購読したが、株価が190ドルを越え、取引
量が100株より大きい場合に限る。再度、このフィル
タは1つの等位項を含み、すなわちフィルタを表すの
に、各メタデータ・テーブル内の1つのタプルで足り
る。"="比較を含む唯一のアトミック表現式は"銘柄='
IBM'"であり、すなわちStock-EQ内の対応するタプル
は、('Don','IBM',NULL,NULL,1)である。フィル
タの2つの属性は">"比較に関わり、すなわち属性"価
格"及び"取引量"に関して、価格>190及び取引量>
200である。この結果、Stock-GT内において、次のタ
プルすなわち('Don',NULL,190,200,1)が生成され
る。
【0051】Janetのフィルタは2つの等位項を含み、
すなわち"銘柄='IBM'且つ価格>200"及び"銘柄
='SAP'且つ価格>1000且つ取引量>500"で
ある。第1の等位項はStock-EQテーブル内に、('Jane
t','IBM',NULL,NULL,1)を生成し、Stock-GTテーブ
ル内に、('Janet',NULL,200,NULL,1)を生成す
る。第2の等位項は、Stock-EQ及びStock-GTテーブル内
に、それぞれ('Janet','SAP',NULL,NULL,2)及び
('Janet',NULL,1000,500,2)を生成する。
【0052】図7を参照して、購読トリガの生成に関し
て詳述する。図7は、本実施例にもとづき、株式(Stoc
k)において、イネーブル・テーブル要求により生成さ
れるトリガを示す。
【0053】トリガ本体はセレクト文を含み、これは図
4及び図5に関連してそれぞれ前述したように、メタデ
ータ・テーブルを生成し、これらのメタデータ・テーブ
ル内において購読を表す実施例に対応する。
【0054】リレーショナル・データベース・システム
によるこの文自体の処理は、よく知られており、本発明
には無関係であるので、ここでは説明を省略する。
【0055】図8を参照して、本発明の第2の好適な態
様、すなわちメッセージの配信のためのユーザ定義機能
(UDF)の使用について述べる。
【0056】テーブルT上の購読を反映するメタデータ
・テーブルの特定の実施例とは独立に、本発明により提
案される統合トリガは、図8に示される次の構造を有す
る。
【0057】発行として扱われるべきテーブルTからの
各変更のタイプ、すなわちタプルの挿入、消去、更新に
対して、別々のトリガが生成される。
【0058】このトリガは、対応する変更がテーブルT
上で実行されるとき常に発生される。(図8に1として
示されるアイテムを参照)。
【0059】トリガが発生すると、基礎となるデータベ
ース・システムがトリガの本体、すなわち図7に示され
るケースではセレクト文を実行する。セレクト文のfrom
-及びwhere-節は、メタデータ・テーブから、資格のあ
る全ての加入者をフィルタリングする(図8のアイテム
2を参照)。ここで具体的なfrom-及びwhere-節は、メ
タデータ・テーブルの特定の構造に依存する。
【0060】資格のある加入者の各々に対して、セレク
ト節内で指定されるdeliver-UDFが呼び出される(図
8のアイテム3を参照)。ここで計算された結合からの
任意のカラム値、すなわち特に加入者識別子が、パラメ
ータとしてUDFに渡される。
【0061】deliver-UDFは、図8のアイテム4で示
されるように、各加入者の購読要求に従い、各加入者を
処理し、このことはしばしば、購読応答をターゲット・
ユーザ・キューに待ち行列化することを意味する。
【0062】deliver-UDFの多数の実施例が存在する
ことが明らかである。例えば、1実施例は、新たに作成
されたタプルをメッセージとして、加入者の特定のター
ゲット・キューに配信する。この目的のために、メタデ
ータ・テーブルは各加入者のターゲット・キュー名を含
む。このキュー名は完全な新たなタプルと共に、パラメ
ータとしてdeliver-UDFに渡される。UDFはタプル
からメッセージを構成し、基礎となるメッセージング・
システム(例えばMQSeries)のPUT要求を呼び出
し、メッセージを加入者のキューに転送する。
【0063】別の実施例は、加入者識別子及び変更され
たタプルの識別子を、システム特定の内部キューに配信
する。定期的に、このキューは別々のプログラムにより
処理され、プログラムは変更されたタプルを検索し、そ
れらを加入者の宛先キューに提示する。
【0064】このアプローチの興味深い応用例は、デー
タ・ウェアハウス環境における変更データの定期的な複
製である。すなわち、加入者はその環境内の選択データ
の様々なコピーであり、購読フィルタは操作データのロ
ーカル・サブセットとして、関心の対象となるデータを
表す。
【0065】別の実施例は、タプルを例えばXMLスト
リームとして、各加入者に対して保持されるテーブル内
に挿入する。これは加入者がこのテーブルを照会し、購
読結果を獲得することを可能にする。
【0066】本発明の主な利点は、データベース・シス
テムにより外部化(externalize)される機能を用い
て、発行/購読エンジンを実現する効率的な方法を教示
することである。例えば、所与のデータベース・エンジ
ン自体を変更することにより、データベース・システム
内から発行/購読エンジンを実現する、より効率的な方
法が存在し得ることが主張される。
【0067】しかしながら、こうした実現は、特定のデ
ータベース・エンジンのベンダにより実行されなければ
ならない。多くのベンダが発行/購読ソルーションに近
づきつつあり、複数のベンダが最近、Java(登録商
標)主導の下で、発行/購読インタフェースを標準化し
たので、データベース・エンジンに加え、効率的な実施
例がたくさんの関心を集めるものと期待される。
【0068】前述の議論では、本発明は特定の典型的な
実施例に関連して述べられた。しかしながら、本発明の
趣旨及び範囲から逸れることなく、様々な変更及び変形
が可能であることが明らかである。従って、前述の議論
及び図面は、限定的な意味で掲げられたものではなく、
例証的なものである。
【0069】例えば、配信機能は単に、資格のある加入
者及び生成されるタプルに関する最低限の情報を、例え
ばその基本キーとして、別々のキューに転送する。この
キューから、別のプログラムが第2のステップにおい
て、資格のある加入者に配信されるメッセージを構成す
る。このプログラムはこのキュー入力にもとづき、加入
者のリストを編成し、リストを記憶済みのプロシージャ
に受け渡す。すると、このプロシージャがメッセージを
より効率的に構成し、実際にそれを加入者に配信する。
【0070】メッセージ・ブローカは一般に、発行され
た、すなわち新たに作成されたメッセージを処理する。
従って、トリガの挿入が、この状況を捕獲する上で十分
である。しかしながら、本発明で述べたリレーショナル
・データベース技術上で構築された通知エンジンは、更
新または消去されたデータすなわちメッセージも容易に
処理することができる。新たなタプルが挿入されるとき
に発生する購読トリガを生成する代わりに、テーブル上
の更新または消去による変更時に発生する同一の購読ト
リガが生成され得る。
【0071】更に、本発明の概念は任意のデータ保持シ
ステムに適用され得て、これは必ずしもオブジェクト・
リレーショナル・データベースのように構成される必要
はない。従って、用語'データベース'は、非常に一般的
な意味において使用されるべきである。
【0072】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0073】(1)1つまたは複数の加入者に、データ
ベース・システム内の少なくとも1つのデータベース・
テーブルTの変化を通知する通知システムであって、前
記通知システムが、前記データベース・テーブルTに関
連付けられる1つまたは複数のメタデータ・テーブルを
含み、前記メタデータ・テーブルが、前記データベース
・テーブルTの指定された変化に関する購読要求の1つ
または複数の表現を記憶し、前記通知システムが更に、
前記データベース・テーブルTに関連付けられ、前記デ
ータベース・テーブルTの変化に応答する1つまたは複
数のデータベース・トリガとして実現される、1つまた
は複数の購読トリガを含み、前記購読トリガが、前記デ
ータベース・テーブルT及び前記メタデータ・テーブル
を参照するデータベース照会文により、前記メタデータ
・テーブルに記憶される購読要求の前記表現に従い資格
を得る前記データベース・テーブルの記録を決定する、
通知システム。 (2)前記データベース照会文が購読要求の特定な値に
無関係であって、前記メタデータ・テーブル内容を通じ
て間接的にのみ、前記購読要求の特定な値を参照する、
前記(1)記載の通知システム。 (3)前記購読トリガにより決定される前記記録の配信
のための通知手段を含む、前記(1)記載の通知システ
ム。 (4)前記通知手段が前記データベース・システム内の
ユーザ定義機能である、前記(3)記載の通知システ
ム。 (5)前記購読が前記メタデータ・テーブル内に論理和
正規形で記憶される、前記(4)記載の通知システム。 (6)所定のデータベース・テーブル上の全ての購読が
単一のトリガに統合される、前記(5)記載の通知シス
テム。 (7)前記通知が加入者データベースに記憶される、前
記(6)記載の通知システム。 (8)前記(1)乃至(7)のいずれかに記載のシステ
ムを用いて、発行及び購読処理を実行する方法。 (9)電子メール・システムを用いて通知を送信する、
前記(8)記載の方法。 (10)前記通知がメッセージである、前記(8)また
は(9)記載の方法。 (11)前記(8)乃至(10)のいずれかに記載の方
法を実行するコンピュータ・プログラム・コード部分を
含む、データ処理システムにおいて実行されるコンピュ
ータ・プログラム。 (12)前記(8)乃至(10)のいずれかに記載の方
法をコンピュータに実行するように指示する、コンピュ
ータ読取り可能プログラム手段を含む、コンピュータ読
取り可能媒体上に記憶されるコンピュータ・プログラム
製品。
【図面の簡単な説明】
【図1】本発明に従い発行者の役割を演じるデータベー
スの概略図である。
【図2】本発明に従い、購読をトリガにマップするSQ
Lコード例を示す図である。
【図3】本発明に従い、1テーブルにつき1購読トリガ
をセットアップし、使用する様子を示す概略図である。
【図4】本発明に従うメタ・テーブルの例を示す図であ
る。
【図5】本発明に従い、購読をメタデータ・テーブル内
のタプルにマップする様子を示す概略図である。
【図6】本発明に従い、購読をメタデータ・テーブル内
のタプルにマップするテーブルの例の概略図である。
【図7】本発明に従う好適な購読トリガを示すSQLコ
ード例を示す図である。
【図8】本発明に従う統合トリガにおいて、配信ユーザ
定義機能UDFの役割を示す概略図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ディエター・ローラー ドイツ、ディ−71101 ショーナイチ、ハ ーマン−ロエンズ−ウェッグ 5

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】1つまたは複数の加入者に、データベース
    ・システム内の少なくとも1つのデータベース・テーブ
    ルTの変化を通知する通知システムであって、 前記通知システムが、前記データベース・テーブルTに
    関連付けられる1つまたは複数のメタデータ・テーブル
    を含み、 前記メタデータ・テーブルが、前記データベース・テー
    ブルTの指定された変化に関する購読要求の1つまたは
    複数の表現を記憶し、 前記通知システムが更に、前記データベース・テーブル
    Tに関連付けられ、前記データベース・テーブルTの変
    化に応答する1つまたは複数のデータベース・トリガと
    して実現される、1つまたは複数の購読トリガを含み、 前記購読トリガが、前記データベース・テーブルT及び
    前記メタデータ・テーブルを参照するデータベース照会
    文により、前記メタデータ・テーブルに記憶される購読
    要求の前記表現に従い資格を得る前記データベース・テ
    ーブルの記録を決定する、通知システム。
  2. 【請求項2】前記データベース照会文が購読要求の特定
    な値に無関係であって、前記メタデータ・テーブル内容
    を通じて間接的にのみ、前記購読要求の特定な値を参照
    する、請求項1記載の通知システム。
  3. 【請求項3】前記購読トリガにより決定される前記記録
    の配信のための通知手段を含む、請求項1記載の通知シ
    ステム。
  4. 【請求項4】前記通知手段が前記データベース・システ
    ム内のユーザ定義機能である、請求項3記載の通知シス
    テム。
  5. 【請求項5】前記購読が前記メタデータ・テーブル内に
    論理和正規形で記憶される、請求項4記載の通知システ
    ム。
  6. 【請求項6】所定のデータベース・テーブル上の全ての
    購読が単一のトリガに統合される、請求項5記載の通知
    システム。
  7. 【請求項7】前記通知が加入者データベースに記憶され
    る、請求項6記載の通知システム。
  8. 【請求項8】請求項1乃至請求項7のいずれかに記載の
    システムを用いて、発行及び購読処理を実行する方法。
  9. 【請求項9】電子メール・システムを用いて通知を送信
    する、請求項8記載の方法。
  10. 【請求項10】前記通知がメッセージである、請求項8
    または請求項9記載の方法。
  11. 【請求項11】請求項8乃至請求項10のいずれかに記
    載の方法を実行するコンピュータ・プログラム・コード
    部分を含む、データ処理システムにおいて実行されるコ
    ンピュータ・プログラム。
  12. 【請求項12】請求項8乃至請求項10のいずれかに記
    載の方法をコンピュータに実行するように指示する、コ
    ンピュータ読取り可能プログラム手段を含む、コンピュ
    ータ読取り可能媒体上に記憶されるコンピュータ・プロ
    グラム製品。
JP2000205082A 1999-07-06 2000-07-06 データベース技術による通知システム及び発行、購読処理方法 Expired - Fee Related JP3996328B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP99113020.4 1999-07-06
EP99113020 1999-07-06

Publications (2)

Publication Number Publication Date
JP2001043248A true JP2001043248A (ja) 2001-02-16
JP3996328B2 JP3996328B2 (ja) 2007-10-24

Family

ID=8238524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000205082A Expired - Fee Related JP3996328B2 (ja) 1999-07-06 2000-07-06 データベース技術による通知システム及び発行、購読処理方法

Country Status (3)

Country Link
US (1) US6826560B1 (ja)
JP (1) JP3996328B2 (ja)
DE (1) DE10031716B4 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7152094B1 (en) * 2001-07-31 2006-12-19 Sprint Communications Company L.P. Middleware brokering system adapter
US7698276B2 (en) 2002-06-26 2010-04-13 Microsoft Corporation Framework for providing a subscription based notification system
US20040002958A1 (en) * 2002-06-26 2004-01-01 Praveen Seshadri System and method for providing notification(s)
US7177859B2 (en) * 2002-06-26 2007-02-13 Microsoft Corporation Programming model for subscription services
US20040002988A1 (en) * 2002-06-26 2004-01-01 Praveen Seshadri System and method for modeling subscriptions and subscribers as data
US8688462B2 (en) 2003-01-31 2014-04-01 Media Queue, Llc Media auto exchange system and method
US8700538B2 (en) 2003-01-31 2014-04-15 Media Queue, Llc Media exchange system and method
US8712867B2 (en) 2003-01-31 2014-04-29 Media Queue, Llc System for providing access to playable media
US8612311B2 (en) * 2004-05-28 2013-12-17 Media Queue, Llc Hybrid distribution method for playable media
US8433622B2 (en) * 2003-05-28 2013-04-30 Media Queue, Llc Method of controlling electronic commerce queue
US20040243479A1 (en) * 2003-05-28 2004-12-02 Gross John N. Method of monitoring electronic commerce queue
US8738541B2 (en) * 2003-06-25 2014-05-27 Media Queue, Llc Method of processing rental requests and returns
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US7590643B2 (en) 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US7669177B2 (en) 2003-10-24 2010-02-23 Microsoft Corporation System and method for preference application installation and execution
US8626716B1 (en) * 2004-04-08 2014-01-07 Sprint Communications Company L.P. Service broker enhancements
US20050251811A1 (en) * 2004-05-07 2005-11-10 International Business Machines Corporation Distributed messaging system supporting stateful
US7805422B2 (en) * 2005-02-28 2010-09-28 Microsoft Corporation Change notification query multiplexing
US8146100B2 (en) 2006-03-21 2012-03-27 Sap Ag System and method for event-based information flow in software development processes
US8458725B2 (en) 2006-04-10 2013-06-04 Oracle International Corporation Computer implemented method for removing an event registration within an event notification infrastructure
US9390118B2 (en) * 2006-04-19 2016-07-12 Oracle International Corporation Computer implemented method for transforming an event notification within a database notification infrastructure
US8464275B2 (en) * 2006-05-10 2013-06-11 Oracle International Corporation Method of using a plurality of subscriber types in managing a message queue of a database management system
US20090248612A1 (en) * 2008-03-31 2009-10-01 Morris Robert P Methods, Systems, And Computer Program Products For Providing Prior Values Of A Tuple Element In A Publish/Subscribe System
US8335762B2 (en) 2008-10-06 2012-12-18 Microsoft Corporation Resource tracking
US20100257275A1 (en) * 2009-04-02 2010-10-07 Morris Robert P Method and System For Changing A Subscription To A Tuple Based On A Changed State Of The Tuple
US20110137889A1 (en) * 2009-12-09 2011-06-09 Ca, Inc. System and Method for Prioritizing Data Storage and Distribution
US8332349B1 (en) * 2012-01-06 2012-12-11 Advent Software, Inc. Asynchronous acid event-driven data processing using audit trail tools for transaction systems
US8886671B1 (en) 2013-08-14 2014-11-11 Advent Software, Inc. Multi-tenant in-memory database (MUTED) system and method
US20180232779A1 (en) * 2014-12-19 2018-08-16 AdvisorDeck, LLC Multi-tenant publishing system
US10599672B2 (en) 2015-11-24 2020-03-24 Cisco Technology, Inc. Cursor-based state-collapse scheme for shared databases
CN108197263A (zh) * 2017-12-30 2018-06-22 苏州精易会信息技术有限公司 数据同步方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5101348A (en) * 1988-06-23 1992-03-31 International Business Machines Corporation Method of reducing the amount of information included in topology database update messages in a data communications network
JPH0660000A (ja) * 1992-08-07 1994-03-04 Hitachi Ltd 情報処理システムおよび情報処理方法
US5497317A (en) * 1993-12-28 1996-03-05 Thomson Trading Services, Inc. Device and method for improving the speed and reliability of security trade settlements
US5809483A (en) * 1994-05-13 1998-09-15 Broka; S. William Online transaction processing system for bond trading
US5797002A (en) * 1994-09-20 1998-08-18 Papyrus Technology Corp. Two-way wireless system for financial industry transactions
JPH1011373A (ja) 1996-06-21 1998-01-16 Matsushita Electric Ind Co Ltd 情報自動配送装置及び情報自動配送方法
US5903882A (en) * 1996-12-13 1999-05-11 Certco, Llc Reliance server for electronic transaction system
US6256676B1 (en) * 1998-11-18 2001-07-03 Saga Software, Inc. Agent-adapter architecture for use in enterprise application integration systems
US6338055B1 (en) * 1998-12-07 2002-01-08 Vitria Technology, Inc. Real-time query optimization in a decision support system
AU778101B2 (en) * 1999-06-14 2004-11-18 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
US6405191B1 (en) * 1999-07-21 2002-06-11 Oracle Corporation Content based publish-and-subscribe system integrated in a relational database system

Also Published As

Publication number Publication date
DE10031716B4 (de) 2006-10-26
DE10031716A1 (de) 2001-01-25
US6826560B1 (en) 2004-11-30
JP3996328B2 (ja) 2007-10-24

Similar Documents

Publication Publication Date Title
JP2001043248A (ja) データベース技術による通知システム及び発行、購読処理方法
AU760999B2 (en) System and method for dynamic correlation of events
US6510429B1 (en) Message broker apparatus, method and computer program product
US7844636B2 (en) Systems and methods for client-side filtering of subscribed messages
CN101263492B (zh) 用于透明地存档的方法和设备
JP5171932B2 (ja) カスタマのアクティビティを統合、管理、および調整するためのシステムおよび方法
US5519855A (en) Summary catalogs
JP4856541B2 (ja) データベースの自動的および動的な提供
US6502088B1 (en) Method and system for improved access to non-relational databases
US7287249B2 (en) Method and system for tracking and exchanging incremental changes to hierarchical objects
US6792416B2 (en) Managing results of federated searches across heterogeneous datastores with a federated result set cursor object
AU775791B2 (en) Method and apparatus for the dynamic filtering and routing of events
US8805782B2 (en) Representing an object as an aggregate of identifiable parts shareable by users of a collaboration system
JPH09325939A (ja) エージェント機能を備えるグループウェアシステム
JP2006528800A (ja) 自己記述型ビジネスオブジェクト
AU5781000A (en) Content based publish-and-subscribe system integrated in a relational database system
JP2006528801A (ja) サービス指向ビジネスフレームワークのサービス管理
US20060271384A1 (en) Reference data aggregate service population
CN100550009C (zh) 异步信息共享系统
KR100324978B1 (ko) 메시지 중개인 장치, 방법 및 컴퓨터 프로그램 제품
WO2024040784A1 (zh) 一种基于云计算的数据检索方法、装置及系统
Xu et al. VDM: virtual database management for distributed databases and file systems
Leung et al. A scalable yet transparent infrastructure for distributed applications: core design of Jasmine ii framework

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070802

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

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110810

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120810

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130810

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees