JP2001285287A - プレフィルタリング及びポストフィルタリングを利用したパブリッシュ/サブスクライブ装置及び方法 - Google Patents
プレフィルタリング及びポストフィルタリングを利用したパブリッシュ/サブスクライブ装置及び方法Info
- Publication number
- JP2001285287A JP2001285287A JP2001042335A JP2001042335A JP2001285287A JP 2001285287 A JP2001285287 A JP 2001285287A JP 2001042335 A JP2001042335 A JP 2001042335A JP 2001042335 A JP2001042335 A JP 2001042335A JP 2001285287 A JP2001285287 A JP 2001285287A
- Authority
- JP
- Japan
- Prior art keywords
- message
- subscriber
- subscribe
- publish
- filter
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1859—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】 プレフィルタリング及びポストフィルタリン
グを利用したパブリッシュ/サブスクライブ装置及び方
法を提供する。 【解決手段】 メッセージインスタンスを生成するよう
に作動するパブリッシャ28と、前記メッセージインス
タンスを受信するように作動するサブスクライバ32
と、パブリッシュ/サブスクライブ機構38を有する通
信経路11と、前記パブリッシャが提供する第一のフィ
ルタ24と、前記サブスクライバが提供する第二のフィ
ルタ26とを有するフィルタ機構20とを含んでなるパ
ブリッシュ/サブスクライブ装置10を提供する。
グを利用したパブリッシュ/サブスクライブ装置及び方
法を提供する。 【解決手段】 メッセージインスタンスを生成するよう
に作動するパブリッシャ28と、前記メッセージインス
タンスを受信するように作動するサブスクライバ32
と、パブリッシュ/サブスクライブ機構38を有する通
信経路11と、前記パブリッシャが提供する第一のフィ
ルタ24と、前記サブスクライバが提供する第二のフィ
ルタ26とを有するフィルタ機構20とを含んでなるパ
ブリッシュ/サブスクライブ装置10を提供する。
Description
【0001】
【発明の属する技術分野】本発明はパブリッシャ(発行
者あるいは発行手段)とサブスクライバ(購読者あるい
は加入者、受信者、受信要素)との間におけるメッセー
ジの配信に関するものである。より具体的には、本発明
はチャネルを定義するメッセージタイプ情報に基づいた
インフラを有するパブリッシュ/サブスクライブ(Publi
sh / Subscribe:以下、「PS」と呼ぶ)機構であって、
サブスクライバが配信を望むメッセージのタイプを指定
し、更にそのメッセージタイプのメッセージの属性が表
すフィルタリング式を指定することを特徴とする機構に
関する。
者あるいは発行手段)とサブスクライバ(購読者あるい
は加入者、受信者、受信要素)との間におけるメッセー
ジの配信に関するものである。より具体的には、本発明
はチャネルを定義するメッセージタイプ情報に基づいた
インフラを有するパブリッシュ/サブスクライブ(Publi
sh / Subscribe:以下、「PS」と呼ぶ)機構であって、
サブスクライバが配信を望むメッセージのタイプを指定
し、更にそのメッセージタイプのメッセージの属性が表
すフィルタリング式を指定することを特徴とする機構に
関する。
【0002】
【従来の技術】コンピュータネットワークシステムやイ
ンターネット、そしてワールドワイドウェブ(WWW)
の発展及び導入に伴い、データ配信技術の有用性は増大
している。データ配信技術の一例として「プッシュ技
術」があげられるが、これは事前に定義された間隔で、
又は何らかの事象の発生に呼応してデータをクライアン
ト、即ちユーザのコンピュータへと自動的に配信するも
のである。プッシュ技術の具体例としては“PointCas
t”及び“Castanet”がある。PointCastとはカリフォル
ニア州Cupertino市のPointCast,Inc.,(www.pointcast.
com)から提供されるインターネットの新しいシステム
である。Castanetは、アプリケーションの更新やその他
の素材を発行し、インターネットやイントラネットを通
じて自動的に配信する為のJavaベース配信システム
の一種であり、これはカリフォルニア州Palo Alto市のM
arimba,Inc.,(www.marimba.com)から提供されてい
る。
ンターネット、そしてワールドワイドウェブ(WWW)
の発展及び導入に伴い、データ配信技術の有用性は増大
している。データ配信技術の一例として「プッシュ技
術」があげられるが、これは事前に定義された間隔で、
又は何らかの事象の発生に呼応してデータをクライアン
ト、即ちユーザのコンピュータへと自動的に配信するも
のである。プッシュ技術の具体例としては“PointCas
t”及び“Castanet”がある。PointCastとはカリフォル
ニア州Cupertino市のPointCast,Inc.,(www.pointcast.
com)から提供されるインターネットの新しいシステム
である。Castanetは、アプリケーションの更新やその他
の素材を発行し、インターネットやイントラネットを通
じて自動的に配信する為のJavaベース配信システム
の一種であり、これはカリフォルニア州Palo Alto市のM
arimba,Inc.,(www.marimba.com)から提供されてい
る。
【0003】その他にデータ配信技術において最近成長
している技術がパブリッシュ/サブスクライブ(Publish
/Subscribe:以下、「PS」と呼ぶ)システムであり、こ
れはユーザが選択的に検索する事が出来る情報源を提供
するものである。PSシステムとは、PS機構を用いて
無償又は有償のサービスを提供するものである。情報
は、代表的にはeメール又はウェブ(ワールドワイドウ
ェブ)を介してユーザへと提供される。PSシステムの
一例として、カリフォルニア州Cupertino市のApple Com
puter, Inc.,(www.apple.com)のMacintosh System7
に利用されているものがあり、これにはファイル間にホ
ットリンク機能を設けている。Macintosh System7によ
れば、あるファイルの全てあるいは部分を「エディショ
ンファイル(edition file)」として発行し、その後こ
れをサブスクライバファイルへとインポートすることが
出来る。発行したファイルのいずれかを更新した場合、
サブスクライバファイルもまた更新する。
している技術がパブリッシュ/サブスクライブ(Publish
/Subscribe:以下、「PS」と呼ぶ)システムであり、こ
れはユーザが選択的に検索する事が出来る情報源を提供
するものである。PSシステムとは、PS機構を用いて
無償又は有償のサービスを提供するものである。情報
は、代表的にはeメール又はウェブ(ワールドワイドウ
ェブ)を介してユーザへと提供される。PSシステムの
一例として、カリフォルニア州Cupertino市のApple Com
puter, Inc.,(www.apple.com)のMacintosh System7
に利用されているものがあり、これにはファイル間にホ
ットリンク機能を設けている。Macintosh System7によ
れば、あるファイルの全てあるいは部分を「エディショ
ンファイル(edition file)」として発行し、その後こ
れをサブスクライバファイルへとインポートすることが
出来る。発行したファイルのいずれかを更新した場合、
サブスクライバファイルもまた更新する。
【0004】PS機構は近年広く普及して来たが、これ
は特にアプリケーションのスケーラブルで分散的な実行
を略リアルタイムでサポートすることが出来る可能性を
約束するものだからである。「スケーラブルな」とは、
その実装系がサイズ的及び構成的に変更可能であること
であり、代表的にはコンピュータシステムにおけるアプ
リケーションの拡張能力を意味する。「分散的」とは、
1つの体系、即ち1ネットワークにおいて1つのセント
ラルシステムではなく、複数のコンピュータを利用して
分散的に演算を行うことを意味する。
は特にアプリケーションのスケーラブルで分散的な実行
を略リアルタイムでサポートすることが出来る可能性を
約束するものだからである。「スケーラブルな」とは、
その実装系がサイズ的及び構成的に変更可能であること
であり、代表的にはコンピュータシステムにおけるアプ
リケーションの拡張能力を意味する。「分散的」とは、
1つの体系、即ち1ネットワークにおいて1つのセント
ラルシステムではなく、複数のコンピュータを利用して
分散的に演算を行うことを意味する。
【0005】例えば、PS機構の一例は引用することに
より本明細書の一部をなすものとする米国特許第5,5
57,798号公報に開示されている。PS機構には幾
つかの重要な側面がある。第一に、パブリッシャが、サ
ブスクライバはもちろん他のパブリッシャがどれなのか
あるいは何なのかを識別しないという点である。第二に
は、サブスクライバが、パブリッシャはもちろん他のサ
ブスクライバがどれなのかをあるいは何なのかを識別し
ないという点である。そして最後に、PSのインフラス
トラクチャは、あるパブリッシャの送信したメッセージ
が対象サブスクライバに確実に届けられるものであると
いう点である。
より本明細書の一部をなすものとする米国特許第5,5
57,798号公報に開示されている。PS機構には幾
つかの重要な側面がある。第一に、パブリッシャが、サ
ブスクライバはもちろん他のパブリッシャがどれなのか
あるいは何なのかを識別しないという点である。第二に
は、サブスクライバが、パブリッシャはもちろん他のサ
ブスクライバがどれなのかをあるいは何なのかを識別し
ないという点である。そして最後に、PSのインフラス
トラクチャは、あるパブリッシャの送信したメッセージ
が対象サブスクライバに確実に届けられるものであると
いう点である。
【0006】ほとんどのサブスクライバは、PS機構上
で送られて来たいくつかのメッセージのうち、ある一部
にしか興味が無い。このメッセージの一部のみに対する
興味に応える為に、殆どのPS具体例においては、その
PS機構が伝送するメッセージ空間全体を区分化する為
にフラットなネーム空間を設けている。便宜上、本願に
おいてはこれらの区分の各々をチャネルと呼ぶものとす
る。特定のチャネルを識別する名前は任意なものとする
(単純なケースの場合)ことも出来るし、或いは特定の
サブジェクト/トピックを指すものとする(より複雑な
ケースの場合)ことも出来る。PS機構を利用するサブ
スクライバは、興味対象である特定のチャネルを指定す
る。するとパブリッシャはその特定のチャネルへとメッ
セージを発行する。PS機構の意味規定(semantics)
に従い、特定のチャネルを要求した各サブスクライバ
は、その特定のチャネルに発行されたメッセージを、そ
のサブスクリプション要求(購読要求あるいは申し込
み)を送信した時点から受信することになる。サブスク
ライバのチャネル選択には、そのチャネルで送られるメ
ッセージの構造に関する情報が潜在的にある。換言する
と、各パブリッシャはその特定の構造のメッセージのみ
を送信し、各サブスクライバはその構造に対応したメッ
セージを受信することを期待するということである。
で送られて来たいくつかのメッセージのうち、ある一部
にしか興味が無い。このメッセージの一部のみに対する
興味に応える為に、殆どのPS具体例においては、その
PS機構が伝送するメッセージ空間全体を区分化する為
にフラットなネーム空間を設けている。便宜上、本願に
おいてはこれらの区分の各々をチャネルと呼ぶものとす
る。特定のチャネルを識別する名前は任意なものとする
(単純なケースの場合)ことも出来るし、或いは特定の
サブジェクト/トピックを指すものとする(より複雑な
ケースの場合)ことも出来る。PS機構を利用するサブ
スクライバは、興味対象である特定のチャネルを指定す
る。するとパブリッシャはその特定のチャネルへとメッ
セージを発行する。PS機構の意味規定(semantics)
に従い、特定のチャネルを要求した各サブスクライバ
は、その特定のチャネルに発行されたメッセージを、そ
のサブスクリプション要求(購読要求あるいは申し込
み)を送信した時点から受信することになる。サブスク
ライバのチャネル選択には、そのチャネルで送られるメ
ッセージの構造に関する情報が潜在的にある。換言する
と、各パブリッシャはその特定の構造のメッセージのみ
を送信し、各サブスクライバはその構造に対応したメッ
セージを受信することを期待するということである。
【0007】サブスクリプション(購読あるいは申し込
み)を特定の述部を含むように拡張する場合、別のより
柔軟な具体例が必要となる。属性を持つメッセージスキ
ーマ(あるいはデータベース全体)を用いてメッセージ
空間を構成し、サブスクリプション要求はこれら属性に
対する述部となる。この例においては、これらサーチし
得る属性の特定のタイプ構造を異なるメッセージタイプ
について定義すべきである。属性はメッセージに関する
メタデータである為、さらにメッセージに対する潜在的
な構造が存在する。この潜在的構造はまた、これらの属
性がメッセージ中にある情報と重複してしまう可能性を
生じ、よって過剰なオーバーヘッドの原因ともなる。
み)を特定の述部を含むように拡張する場合、別のより
柔軟な具体例が必要となる。属性を持つメッセージスキ
ーマ(あるいはデータベース全体)を用いてメッセージ
空間を構成し、サブスクリプション要求はこれら属性に
対する述部となる。この例においては、これらサーチし
得る属性の特定のタイプ構造を異なるメッセージタイプ
について定義すべきである。属性はメッセージに関する
メタデータである為、さらにメッセージに対する潜在的
な構造が存在する。この潜在的構造はまた、これらの属
性がメッセージ中にある情報と重複してしまう可能性を
生じ、よって過剰なオーバーヘッドの原因ともなる。
【0008】本願においては、メタデータ(metadata)
とは他のデータを記述するデータのことである。例え
ば、データディクショナリやリポジトリ(repository)
等はメタデータを構成するものである。また、ウェブペ
ージの内容を記述する為に利用されるメタタグはメタデ
ータである。更に「メタデータ」という語は、他のデー
タベース構造や属性、処理又は変更に関する情報を保持
するあらゆるファイル又はデータベースに対して使用す
ることが出来る。
とは他のデータを記述するデータのことである。例え
ば、データディクショナリやリポジトリ(repository)
等はメタデータを構成するものである。また、ウェブペ
ージの内容を記述する為に利用されるメタタグはメタデ
ータである。更に「メタデータ」という語は、他のデー
タベース構造や属性、処理又は変更に関する情報を保持
するあらゆるファイル又はデータベースに対して使用す
ることが出来る。
【0009】従って、サブスクライバの関心対象である
メッセージサブセットをサブスクライバが表明する為の
基本機構が2つ存在する。第一に、メッセージ空間を複
数のチャネルへと区分化するものである。サブスクライ
バは自分の関心対象であるチャネルをサブスクリプショ
ン要求に示すべきである。よってサブスクライバには自
分がサブスクライブ(購読あるいは申し込み)するチャ
ネル各々について定義したメッセージ構造を取り扱う能
力を要求する。
メッセージサブセットをサブスクライバが表明する為の
基本機構が2つ存在する。第一に、メッセージ空間を複
数のチャネルへと区分化するものである。サブスクライ
バは自分の関心対象であるチャネルをサブスクリプショ
ン要求に示すべきである。よってサブスクライバには自
分がサブスクライブ(購読あるいは申し込み)するチャ
ネル各々について定義したメッセージ構造を取り扱う能
力を要求する。
【0010】第二に、PS機構で送信可能の全てのメッ
セージについて、メッセージ属性に関するメタデータス
キーマを定義するものである。サブスクライバは、対象
メッセージが一致すべきである属性値に関する制約条件
式を提供する。このモデルにおいては、PS機構を単一
のチャネルとみなし、属性の一致により多重分離化が生
じる。しかしながら、サブスクライバはここでもメッセ
ージを照合する為に定義したメッセージ構造を取り扱う
ことが出来るべきである。更に、メタデータ機構を利用
する場合、メタデータ属性がメッセージ中のデータ値と
重複する可能性があるので、オーバーヘッドが生じてし
まう。
セージについて、メッセージ属性に関するメタデータス
キーマを定義するものである。サブスクライバは、対象
メッセージが一致すべきである属性値に関する制約条件
式を提供する。このモデルにおいては、PS機構を単一
のチャネルとみなし、属性の一致により多重分離化が生
じる。しかしながら、サブスクライバはここでもメッセ
ージを照合する為に定義したメッセージ構造を取り扱う
ことが出来るべきである。更に、メタデータ機構を利用
する場合、メタデータ属性がメッセージ中のデータ値と
重複する可能性があるので、オーバーヘッドが生じてし
まう。
【0011】基本的に上述したチャネル区分化メッセー
ジ空間及びメタデータスキーマの2つの機構は、興味の
対象となるメッセージを特定する為のあるスペクトルの
エンドポイント(複数)を記述するものである。従っ
て、サブスクライバがこのスペクトルの中間で作業する
ことが出来るようにPS機構の利用効率を強化する為の
改善を必要としている。更に、メタデータ機構の採用に
より生じる過剰なオーバーヘッドを排除する為の改善も
必要としている。
ジ空間及びメタデータスキーマの2つの機構は、興味の
対象となるメッセージを特定する為のあるスペクトルの
エンドポイント(複数)を記述するものである。従っ
て、サブスクライバがこのスペクトルの中間で作業する
ことが出来るようにPS機構の利用効率を強化する為の
改善を必要としている。更に、メタデータ機構の採用に
より生じる過剰なオーバーヘッドを排除する為の改善も
必要としている。
【0012】A. PS機構配信インフラストラクチャ パブリッシュ/サブスクライブ機構は配信インフラスト
ラクチャに頼るものである。以下にこのような配信イン
フラストラクチャの2つのモデルを説明する。つまり、
PS機構は2つの異なる方法で具現化することが出来る
のである。一方のモデルによれば、発行したメッセージ
はメッセージサーバへと送る。するとメッセージサーバ
はそのメッセージを対象サブスクライバへと配信する。
このモデルを「記憶・転送型インフラストラクチャ(st
ore-and forward infrastructure)」と呼ぶ。
ラクチャに頼るものである。以下にこのような配信イン
フラストラクチャの2つのモデルを説明する。つまり、
PS機構は2つの異なる方法で具現化することが出来る
のである。一方のモデルによれば、発行したメッセージ
はメッセージサーバへと送る。するとメッセージサーバ
はそのメッセージを対象サブスクライバへと配信する。
このモデルを「記憶・転送型インフラストラクチャ(st
ore-and forward infrastructure)」と呼ぶ。
【0013】他方のモデルによれば、発行されたメッセ
ージをPS機構の基盤となるネットワーク上にマルチキ
ャスト配信する。サブスクリプションを行うことにより
発行されたメッセージのための適切なマルチキャストア
ドレスにおいて、サブスクライバがメッセージを待つ
(聞き耳を立てる)こととなる。このモデルを「マルチ
キャスト型インフラストラクチャ(multi-cast infrast
ructure)」と呼ぶ。
ージをPS機構の基盤となるネットワーク上にマルチキ
ャスト配信する。サブスクリプションを行うことにより
発行されたメッセージのための適切なマルチキャストア
ドレスにおいて、サブスクライバがメッセージを待つ
(聞き耳を立てる)こととなる。このモデルを「マルチ
キャスト型インフラストラクチャ(multi-cast infrast
ructure)」と呼ぶ。
【0014】以下に記載する各モデルのアプリケーショ
ンは、上述した2つのタイプのインフラストラクチャに
則して説明するものである。
ンは、上述した2つのタイプのインフラストラクチャに
則して説明するものである。
【0015】B.フィルタリングロジック位置 1.仮定条件 現在理解されている従来技術の例によれば、以下の仮定
条件を用いてフィルタリングロジックをPS機構へと組
み込んでいる。PS機構により送信する各メッセージは
代表的に以下の構造を有する。
条件を用いてフィルタリングロジックをPS機構へと組
み込んでいる。PS機構により送信する各メッセージは
代表的に以下の構造を有する。
【0016】2.PS機構構造擬似コード struct Messagei{ Typei1 fieldi1; Typei2 fieldi2; ・・・ TypeiN fieldiN; }
【0017】このような従来技術例によると、サブスク
ライバがPS機構に登録を望んだ場合、サブスクライバ
はフィルタリング式を指定するように求められる。代表
的なフィルタリング式は以下の要素を含む。1つの要素
は特定のフィールドの有無を識別するものである。例え
ば、“present(fieldk)”はこのような
要素である。他の要素はフィールド値と定数又は他のフ
ィールド値との比較を実行するものである。例えば、
“field1<42、field5!=field47”
等はそのような他の要素である。更なる要素は1セット
の定数中にフィールド値を含むかどうかをチェックする
能力を識別するものである。例えば、“field2
in{1 4 9 16 25}”がそのような更なる
要素である。また更なる要素はストリング値の部分的一
致をチェックする能力を識別するものである。例えば、
“field3〜“Λ+44‐131‐””はそのよう
な更なる要素の一例である。更に他の要素はこれらの最
小単位(atom)の論理連結語(logical connective)を
識別するものである。例えば、“present(fi
eld1)&&field1<42,field1<42
‖field1==85”がそのような更に他の要素で
あり、ここでの連結語の評価はその結果がわかると終了
する。また更なる要素は論理否定(logical negation)
を識別するものである。例えば、“!present
(field4)”はそのような要素である。更にデフ
ォルト順位を無効にするグループ化演算子を識別する要
素もある。例えば、“![present(field
1)&&present(field5)]”がそのよう
な要素である。
ライバがPS機構に登録を望んだ場合、サブスクライバ
はフィルタリング式を指定するように求められる。代表
的なフィルタリング式は以下の要素を含む。1つの要素
は特定のフィールドの有無を識別するものである。例え
ば、“present(fieldk)”はこのような
要素である。他の要素はフィールド値と定数又は他のフ
ィールド値との比較を実行するものである。例えば、
“field1<42、field5!=field47”
等はそのような他の要素である。更なる要素は1セット
の定数中にフィールド値を含むかどうかをチェックする
能力を識別するものである。例えば、“field2
in{1 4 9 16 25}”がそのような更なる
要素である。また更なる要素はストリング値の部分的一
致をチェックする能力を識別するものである。例えば、
“field3〜“Λ+44‐131‐””はそのよう
な更なる要素の一例である。更に他の要素はこれらの最
小単位(atom)の論理連結語(logical connective)を
識別するものである。例えば、“present(fi
eld1)&&field1<42,field1<42
‖field1==85”がそのような更に他の要素で
あり、ここでの連結語の評価はその結果がわかると終了
する。また更なる要素は論理否定(logical negation)
を識別するものである。例えば、“!present
(field4)”はそのような要素である。更にデフ
ォルト順位を無効にするグループ化演算子を識別する要
素もある。例えば、“![present(field
1)&&present(field5)]”がそのよう
な要素である。
【0018】そのフィールドが存在しない場合にはフィ
ールドへの照会を行うべきではない為、フィールドへの
照会がpresent()演算子を潜在的に呼び出すよ
うに更なる条件を作る。例えば、“fieldk==2
2”は“[present(fieldk)&&fie
ldk==22]”に等価である。
ールドへの照会を行うべきではない為、フィールドへの
照会がpresent()演算子を潜在的に呼び出すよ
うに更なる条件を作る。例えば、“fieldk==2
2”は“[present(fieldk)&&fie
ldk==22]”に等価である。
【0019】a.完全サブスクライバ側モデル PS機構中にフィルタリングロジックを配置する為の最
も単純なモデルは、そのPS機構のサブスクライバを1
以上有する各ホスト上にて各発行メッセージを受信する
ものである。そして、そのホストに常駐するロジックが
フィルタリング式をそのメッセージへと適用し、そのフ
ィルタリング式に一致するメッセージをそのホスト上の
適正なサブスクライバへと配信する為に利用される。
も単純なモデルは、そのPS機構のサブスクライバを1
以上有する各ホスト上にて各発行メッセージを受信する
ものである。そして、そのホストに常駐するロジックが
フィルタリング式をそのメッセージへと適用し、そのフ
ィルタリング式に一致するメッセージをそのホスト上の
適正なサブスクライバへと配信する為に利用される。
【0020】記憶・転送型インフラストラクチャの場
合、パブリッシャは単純に各メッセージをサーバへと送
る。その記憶・転送型インフラストラクチャに真のサブ
スクライバ側フィルタリングを採用している場合、サー
バは単に各メッセージのコピーを各サブスクライバへと
ルーティングするだけである。かわりに、サーバがメッ
セージメタデータにフィルタリングを実行し、そしてフ
ィルタリング式が一致したサブスクライバに対してのみ
特定のメッセージのコピーをルーティングするようにし
ても良い。しかしながら、このような例においてはサブ
スクライバのフィルタリング式をサブスクリプション時
間にサーバへと転送しなければならず、また、サーバは
各サブスクライバのためのフィルタリング式を各メッセ
ージに対して適用しなければならないので、ある程度の
負担が生じる。全ての発行メッセージをサーバへと送
る。その後それぞれのケースにより全てのメッセージ又
は一致メッセージをサブスクライバへと配信する。
合、パブリッシャは単純に各メッセージをサーバへと送
る。その記憶・転送型インフラストラクチャに真のサブ
スクライバ側フィルタリングを採用している場合、サー
バは単に各メッセージのコピーを各サブスクライバへと
ルーティングするだけである。かわりに、サーバがメッ
セージメタデータにフィルタリングを実行し、そしてフ
ィルタリング式が一致したサブスクライバに対してのみ
特定のメッセージのコピーをルーティングするようにし
ても良い。しかしながら、このような例においてはサブ
スクライバのフィルタリング式をサブスクリプション時
間にサーバへと転送しなければならず、また、サーバは
各サブスクライバのためのフィルタリング式を各メッセ
ージに対して適用しなければならないので、ある程度の
負担が生じる。全ての発行メッセージをサーバへと送
る。その後それぞれのケースにより全てのメッセージ又
は一致メッセージをサブスクライバへと配信する。
【0021】全てのフィルタリングをサブスクライバ側
で行い、チャネル構造を持たないことを前提としたマル
チキャスト型インフラストラクチャの場合、全てのメッ
セージをネットワークにより全サブスクライバ(ここで
フィルタリング式を適用する)に配信するので、単一の
マルチキャストアドレスしか存在しない。ここでは全て
のフィルタリングをサブスクライバサイドで行い、チャ
ネル構造が無い為、フィルタリングによる制約条件を適
用するには全てのメッセージを全てのサブスクライバが
受信すべきである。マルチキャスト型インフラストラク
チャの場合、そのマルチキャストアドレス上の全てのメ
ッセージを各サブスクライバに配信し、全てのパブリッ
シャは全てのメッセージをそのマルチキャストアドレス
へと発行する為、1つのブロードキャストアドレスしか
必要としない。名称/サブジェクト/トピックベースの
システムが、メッセージトラフィック(message traffi
c)を区別する為に複数のマルチキャストアドレスを利
用する場合、各サブスクライバは、全てのメッセージを
受信する為にこれらマルチキャストアドレスの各々を申
し込むべきである。しかしながら、更に複数のマルチキ
ャストアドレスも存在し得る。全てのメッセージをネッ
トワーク上に載せ、全てのサブスクライバが受信する。
しかし、名称/サブジェクト/トピックベースの機構の
場合、パブリッシャがメッセージを複数の記憶場所、即
ちバケットへと分類すると、全てのサブスクライバが全
てのメッセージを受信することを妨げる可能性がある。
で行い、チャネル構造を持たないことを前提としたマル
チキャスト型インフラストラクチャの場合、全てのメッ
セージをネットワークにより全サブスクライバ(ここで
フィルタリング式を適用する)に配信するので、単一の
マルチキャストアドレスしか存在しない。ここでは全て
のフィルタリングをサブスクライバサイドで行い、チャ
ネル構造が無い為、フィルタリングによる制約条件を適
用するには全てのメッセージを全てのサブスクライバが
受信すべきである。マルチキャスト型インフラストラク
チャの場合、そのマルチキャストアドレス上の全てのメ
ッセージを各サブスクライバに配信し、全てのパブリッ
シャは全てのメッセージをそのマルチキャストアドレス
へと発行する為、1つのブロードキャストアドレスしか
必要としない。名称/サブジェクト/トピックベースの
システムが、メッセージトラフィック(message traffi
c)を区別する為に複数のマルチキャストアドレスを利
用する場合、各サブスクライバは、全てのメッセージを
受信する為にこれらマルチキャストアドレスの各々を申
し込むべきである。しかしながら、更に複数のマルチキ
ャストアドレスも存在し得る。全てのメッセージをネッ
トワーク上に載せ、全てのサブスクライバが受信する。
しかし、名称/サブジェクト/トピックベースの機構の
場合、パブリッシャがメッセージを複数の記憶場所、即
ちバケットへと分類すると、全てのサブスクライバが全
てのメッセージを受信することを妨げる可能性がある。
【0022】しかしながら、ここで説明しているサブス
クライバ側モデルは各サブスクライバが全メッセージの
大部分を見たい場合には最も適したものである。
クライバ側モデルは各サブスクライバが全メッセージの
大部分を見たい場合には最も適したものである。
【0023】b.完全パブリッシャ側モデル 他の極端にある例では、PS機構内の全てのフィルタリ
ングロジックをパブリッシャ側に設けている。パブリッ
シャのホスト上にあるロジックが各サブスクライバのフ
ィルタリング式を発行すべき各メッセージに適用し、メ
ッセージがフィルタリング式の幾つかの条件を満たす場
合にそのメッセージをそのサブスクライバへと送る。
ングロジックをパブリッシャ側に設けている。パブリッ
シャのホスト上にあるロジックが各サブスクライバのフ
ィルタリング式を発行すべき各メッセージに適用し、メ
ッセージがフィルタリング式の幾つかの条件を満たす場
合にそのメッセージをそのサブスクライバへと送る。
【0024】このようなモデルではPS機構に幾つかの
条件を設けている。第一には、サブスクライバがそのフ
ィルタリング式を登録する際、そのフィルタリング式を
システム中の全てのパブリッシャに送るべきであるとい
うものである。第二には、パブリッシャ側は単に一致す
るメッセージに対応するサブスクライバへとユニキャス
ト配信すれば良い為にマルチキャスト通信は必要無いと
いう点である。
条件を設けている。第一には、サブスクライバがそのフ
ィルタリング式を登録する際、そのフィルタリング式を
システム中の全てのパブリッシャに送るべきであるとい
うものである。第二には、パブリッシャ側は単に一致す
るメッセージに対応するサブスクライバへとユニキャス
ト配信すれば良い為にマルチキャスト通信は必要無いと
いう点である。
【0025】このようなモデルを記憶・転送型インフラ
ストラクチャに適用した場合、サブスクリプション要求
からのフィルタリング式はサブスクリプション時間にサ
ーバへと転送すべきである。このモデルの最も単純な形
態においては、パブリッシャは単純に全てのメッセージ
をサーバへと送信するだけであり、フィルタリング式を
サーバにて適用する。かわりに、パブリッシャがメッセ
ージの発行開始に先立って登録すべきである場合におい
ては、サーバがフィルタリング式を各登録パブリッシャ
へと転送し、フィルタリング処理をパブリッシャ側ホス
トが正確に行うよう強制するようになっていても良い。
ストラクチャに適用した場合、サブスクリプション要求
からのフィルタリング式はサブスクリプション時間にサ
ーバへと転送すべきである。このモデルの最も単純な形
態においては、パブリッシャは単純に全てのメッセージ
をサーバへと送信するだけであり、フィルタリング式を
サーバにて適用する。かわりに、パブリッシャがメッセ
ージの発行開始に先立って登録すべきである場合におい
ては、サーバがフィルタリング式を各登録パブリッシャ
へと転送し、フィルタリング処理をパブリッシャ側ホス
トが正確に行うよう強制するようになっていても良い。
【0026】ここで説明する完全パブリッシャ側モデル
は、サブスクライバ数が少なく、各サブスクライバがメ
ッセージ全体のわずかな部分にしか興味が無い場合に好
ましい。
は、サブスクライバ数が少なく、各サブスクライバがメ
ッセージ全体のわずかな部分にしか興味が無い場合に好
ましい。
【0027】c.ハイブリッドモデル 実用及び商業用に有効なシステムの多くは、上述した2
つのモデルのいずれにもうまく適合しない。サブスクラ
イバの一部がメッセージの多くに関心がある一方で他の
一部が全メッセージのわずかな割合にしか関心がない場
合も多い。従って、多くの有用なシステムにおいては、
パブリッシャ側で一部の照合処理を行い、その他の照合
(マッチング)処理をサブスクライバ側で行う傾向があ
る。
つのモデルのいずれにもうまく適合しない。サブスクラ
イバの一部がメッセージの多くに関心がある一方で他の
一部が全メッセージのわずかな割合にしか関心がない場
合も多い。従って、多くの有用なシステムにおいては、
パブリッシャ側で一部の照合処理を行い、その他の照合
(マッチング)処理をサブスクライバ側で行う傾向があ
る。
【0028】このようなハイブリッド構成を達成しよう
とする場合、一般的に記憶・転送方インフラストラクチ
ャの方がマルチキャスト型インフラストラクチャよりも
高い柔軟性を持つと認識されている。記憶・転送型サー
バはある程度の間接指定(indirection)を提供するも
のであり、この間接指定はソフトウエアシステムにおい
て柔軟性を得る為の一般的な技法として周知であり、結
果的に得られるその柔軟性は別段驚くべきものではな
い。残念ながら、このような間接指定のもたらす更なる
遅延を、多くの新たな応用領域においては許容され得な
いことが実証されている。従って、以下の従来技術イン
フラストラクチャの説明は、マルチキャスト型インフラ
ストラクチャのみに焦点を絞って行うものとする。記憶
・転送型インフラストラクチャにも適用可能な機構に関
する記載においては、その旨を明言している。
とする場合、一般的に記憶・転送方インフラストラクチ
ャの方がマルチキャスト型インフラストラクチャよりも
高い柔軟性を持つと認識されている。記憶・転送型サー
バはある程度の間接指定(indirection)を提供するも
のであり、この間接指定はソフトウエアシステムにおい
て柔軟性を得る為の一般的な技法として周知であり、結
果的に得られるその柔軟性は別段驚くべきものではな
い。残念ながら、このような間接指定のもたらす更なる
遅延を、多くの新たな応用領域においては許容され得な
いことが実証されている。従って、以下の従来技術イン
フラストラクチャの説明は、マルチキャスト型インフラ
ストラクチャのみに焦点を絞って行うものとする。記憶
・転送型インフラストラクチャにも適用可能な機構に関
する記載においては、その旨を明言している。
【0029】3.ハイブリッドモデルの特長 ハイブリッドモデルを特徴付けるには幾つかの方法があ
る。第一には受信メッセージに関する割り込み負荷を、
そのホスト上のサブスクライバへの対象メッセージのパ
ーセンテージに相応なレベルに保つという点である。即
ち、受信側ホスト上の処理負荷を最低限に抑えるという
ことである。第二には、照合処理及びメッセージ送信の
両方の処理負荷を妥当な範囲でパブリッシャに課すとい
う点である。即ち、送信側ホストの処理負荷を最低限に
抑えるということである。そして最後に、同じメッセー
ジの送信を可能な範囲で避けるという点である。出来れ
ば関心を持つサブスクライバが無いメッセージの送信を
避けることが望ましい。言い換えると、ネットワーク上
の通信負荷を最低限に抑えるということである。
る。第一には受信メッセージに関する割り込み負荷を、
そのホスト上のサブスクライバへの対象メッセージのパ
ーセンテージに相応なレベルに保つという点である。即
ち、受信側ホスト上の処理負荷を最低限に抑えるという
ことである。第二には、照合処理及びメッセージ送信の
両方の処理負荷を妥当な範囲でパブリッシャに課すとい
う点である。即ち、送信側ホストの処理負荷を最低限に
抑えるということである。そして最後に、同じメッセー
ジの送信を可能な範囲で避けるという点である。出来れ
ば関心を持つサブスクライバが無いメッセージの送信を
避けることが望ましい。言い換えると、ネットワーク上
の通信負荷を最低限に抑えるということである。
【0030】一般的に、アプリケーション及びホストの
全ての可能な構成について上述した全てを抑制すること
は不可能であると考えられている。真に必要なのは、最
大限のパフォーマンスを提供するシステム構成を実現し
得るモデルである。以下にそのようなモデルの個々の特
性をあげた。
全ての可能な構成について上述した全てを抑制すること
は不可能であると考えられている。真に必要なのは、最
大限のパフォーマンスを提供するシステム構成を実現し
得るモデルである。以下にそのようなモデルの個々の特
性をあげた。
【0031】a.受信側ホストの処理負荷の最小化 可能な限り最良のケースとは、パブリッシャ側で全ての
フィルタリングを実行することを要求しており、また、
受信側ホスト各々に1サブスクライバがある場合であ
る。従って、この場合には、受信側ホスト上にて受信す
べきであるのは単一のサブスクライバへと送られる関心
対象メッセージのみであることを保証する。
フィルタリングを実行することを要求しており、また、
受信側ホスト各々に1サブスクライバがある場合であ
る。従って、この場合には、受信側ホスト上にて受信す
べきであるのは単一のサブスクライバへと送られる関心
対象メッセージのみであることを保証する。
【0032】単一の受信側ホストに2つ以上のサブスク
ライバがあるケースでは、それぞれの対象メッセージが
重なり合っていない場合はパブリッシャ側における全フ
ィルタリングの実行は未だ効果的である。メッセージが
重なりあっている場合、同じメッセージが同じホストへ
と2回以上にわたって送信することになる。
ライバがあるケースでは、それぞれの対象メッセージが
重なり合っていない場合はパブリッシャ側における全フ
ィルタリングの実行は未だ効果的である。メッセージが
重なりあっている場合、同じメッセージが同じホストへ
と2回以上にわたって送信することになる。
【0033】2つ以上のサブスクライバが異なるホスト
にあり、そしてサブスクライバ間でメッセージの関心対
象が重なり合っている場合、各メッセージを2回以上に
わたってネットワーク上にて送信することになる。これ
は各ホストの処理負荷を最小化していたとしても発生す
る。
にあり、そしてサブスクライバ間でメッセージの関心対
象が重なり合っている場合、各メッセージを2回以上に
わたってネットワーク上にて送信することになる。これ
は各ホストの処理負荷を最小化していたとしても発生す
る。
【0034】上述した問題により関心対象が重なること
(2以上のサブスクライバが同一関心対象に興味がある
場合)に対する配慮を必要としている。重なり合う領域
各々を異なるマルチキャストチャネルに割り付けること
が出来るように関心対象の重なり合いを把握する方法が
あれば、受信側ホストの処理負荷を最小化することが出
来る。更に、同じメッセージを複数回にわたって送信す
ることも抑制することが出来る。
(2以上のサブスクライバが同一関心対象に興味がある
場合)に対する配慮を必要としている。重なり合う領域
各々を異なるマルチキャストチャネルに割り付けること
が出来るように関心対象の重なり合いを把握する方法が
あれば、受信側ホストの処理負荷を最小化することが出
来る。更に、同じメッセージを複数回にわたって送信す
ることも抑制することが出来る。
【0035】b.送信側ホストの処理負荷の最小化 従来技術によりこれが可能である最良のケースは、フィ
ルタリング能力がサブスクライバ側にあり、殆どのサブ
スクライバがメッセージの大部分を関心対象としている
場合である。この状態であれば、パブリッシャ側はメッ
セージを送るか否かの判断をする為のいかなる処理も行
う必要はない。
ルタリング能力がサブスクライバ側にあり、殆どのサブ
スクライバがメッセージの大部分を関心対象としている
場合である。この状態であれば、パブリッシャ側はメッ
セージを送るか否かの判断をする為のいかなる処理も行
う必要はない。
【0036】しかしながら、サブスクライバの一部の関
心対象がメッセージのわずかな部分でしかない場合、完
全サブスクライバ側フィルタリングではネットワークと
これらのサブスクライバ側の処理サイクルを酷使するこ
とになる。
心対象がメッセージのわずかな部分でしかない場合、完
全サブスクライバ側フィルタリングではネットワークと
これらのサブスクライバ側の処理サイクルを酷使するこ
とになる。
【0037】従って、特定のメッセージがメンバーシッ
プ条件を満たしているいくつかの等価クラスを判定する
為の、そして関心を持つサブスクライバとこれらの等価
クラス(equivalence class)中の関心対象を照合(マ
ッチング)する為の改善した技法に対するニーズが存在
している。特定のメッセージが条件を満たす等価クラス
を判定する為のオーバーヘッドの低い方法があり、ま
た、パブリッシャ側ホストがどの等価クラスが登録サブ
スクライバの関心対象であるかを認識することが出来れ
ば、所望の等価クラス中のメッセージのみを配信するこ
とが可能となる。これにより送信側ホストの処理負荷を
最小化すると同時にネットワーク負荷も低減することが
出来る。しかしながら、それでも2つ以上の等価クラス
を満たすメッセージがある場合には問題が残る。このよ
うな場合、各等価クラスを異なるマルチキャストアドレ
スにマッピングすると仮定すると、同じメッセージを複
数回にわたって伝送すべき可能性もある。
プ条件を満たしているいくつかの等価クラスを判定する
為の、そして関心を持つサブスクライバとこれらの等価
クラス(equivalence class)中の関心対象を照合(マ
ッチング)する為の改善した技法に対するニーズが存在
している。特定のメッセージが条件を満たす等価クラス
を判定する為のオーバーヘッドの低い方法があり、ま
た、パブリッシャ側ホストがどの等価クラスが登録サブ
スクライバの関心対象であるかを認識することが出来れ
ば、所望の等価クラス中のメッセージのみを配信するこ
とが可能となる。これにより送信側ホストの処理負荷を
最小化すると同時にネットワーク負荷も低減することが
出来る。しかしながら、それでも2つ以上の等価クラス
を満たすメッセージがある場合には問題が残る。このよ
うな場合、各等価クラスを異なるマルチキャストアドレ
スにマッピングすると仮定すると、同じメッセージを複
数回にわたって伝送すべき可能性もある。
【0038】c.ネットワークの通信負荷の最小化 最良のケースは、少なくとも1つのサブスクライバに対
して関心対象であるメッセージのみを送信する場合であ
る。2つ以上のサブスクライバが同じメッセージに関心
がある場合であっても、そのメッセージを1回しか伝送
しない。
して関心対象であるメッセージのみを送信する場合であ
る。2つ以上のサブスクライバが同じメッセージに関心
がある場合であっても、そのメッセージを1回しか伝送
しない。
【0039】複数回にわたる伝送を回避する為の基本的
機構は、マルチキャストを採用するものであり、ここで
は要求する「多数のサブスクライバに対して1回の送信
(one-to-many fan out)」を行う為にネットワークレ
ベルのインターネットプロトコル(IP)を用いる。こ
のような機構の例においては、重複した関心対象から1
マルチキャストアドレスへとマッピングする能力を要求
する。実用的なものとして、市販しているネットワーク
インターフェースカード上のIPマルチキャストサポー
トは、一般的に特定のホストが利用出来るマルチキャス
トアドレスの数を限定している。このような条件では、
等価クラス/タイプ構造を何らかの形式でメッセージへ
と付与し、各等価クラスを1つのマルチキャストアドレ
スにマッピングすることが望ましい。
機構は、マルチキャストを採用するものであり、ここで
は要求する「多数のサブスクライバに対して1回の送信
(one-to-many fan out)」を行う為にネットワークレ
ベルのインターネットプロトコル(IP)を用いる。こ
のような機構の例においては、重複した関心対象から1
マルチキャストアドレスへとマッピングする能力を要求
する。実用的なものとして、市販しているネットワーク
インターフェースカード上のIPマルチキャストサポー
トは、一般的に特定のホストが利用出来るマルチキャス
トアドレスの数を限定している。このような条件では、
等価クラス/タイプ構造を何らかの形式でメッセージへ
と付与し、各等価クラスを1つのマルチキャストアドレ
スにマッピングすることが望ましい。
【0040】この従来技術によれば、サブスクライバの
関心対象がPS機構のパブリッシャ側において既知であ
れば不必要な伝送を回避することが出来る為、ある利点
を提供する。しかしながら、1サブスクライバが全ての
メッセージを関心対象とすることを表明した場合は全て
のメッセージを伝送しなければならない。
関心対象がPS機構のパブリッシャ側において既知であ
れば不必要な伝送を回避することが出来る為、ある利点
を提供する。しかしながら、1サブスクライバが全ての
メッセージを関心対象とすることを表明した場合は全て
のメッセージを伝送しなければならない。
【0041】まとめると、上述した既存のパブリッシュ
/サブスクライブ(PS)機構は、ネットワーク帯域を
非効率的に利用する為に多数のメッセージ、パブリッシ
ャ及び/又はサブスクライバへのスケーリングをサポー
トするに充分な柔軟性を提供していないということであ
る。チャネル名やトピック及び/又はサブジェクトをベ
ースとしたPS機構は、全てのメッセージをそれぞれ適
正なチャネルにわたって伝送する。しかしながら、この
伝送は、後にこれらのメッセージを利用するサブスクラ
イバが全くいない場合であっても生じてしまう。メタデ
ータ手法に基づくPS機構では、全てのメッセージを記
憶・伝送用サーバへと送り、そして、それらのメタデー
タ属性に割り付ける。このような場合、サブスクライバ
のフィルタリング式に一致するメッセージのみをサブス
クライバへと後に送ることになる。
/サブスクライブ(PS)機構は、ネットワーク帯域を
非効率的に利用する為に多数のメッセージ、パブリッシ
ャ及び/又はサブスクライバへのスケーリングをサポー
トするに充分な柔軟性を提供していないということであ
る。チャネル名やトピック及び/又はサブジェクトをベ
ースとしたPS機構は、全てのメッセージをそれぞれ適
正なチャネルにわたって伝送する。しかしながら、この
伝送は、後にこれらのメッセージを利用するサブスクラ
イバが全くいない場合であっても生じてしまう。メタデ
ータ手法に基づくPS機構では、全てのメッセージを記
憶・伝送用サーバへと送り、そして、それらのメタデー
タ属性に割り付ける。このような場合、サブスクライバ
のフィルタリング式に一致するメッセージのみをサブス
クライバへと後に送ることになる。
【0042】従って、PS機構内におけるメッセージの
伝播を改善する必要性がある。
伝播を改善する必要性がある。
【0043】
【課題を解決するための手段】本発明は、メッセージタ
イプをマルチキャストアドレスにマッピングする場合に
おいて配信するメッセージタイプにフィルタをかけるた
めの装置及び方法を提供するものである。このフィルタ
リングはサブスクライバ側ホストにおける割り込み負荷
を最小化する為に有効である。
イプをマルチキャストアドレスにマッピングする場合に
おいて配信するメッセージタイプにフィルタをかけるた
めの装置及び方法を提供するものである。このフィルタ
リングはサブスクライバ側ホストにおける割り込み負荷
を最小化する為に有効である。
【0044】一態様によれば、パブリッシャ、サブスク
ライバ、通信経路及びフィルタ機構を備えたパブリッシ
ュ/サブスクライブ(PS)装置を提供する。パブリッ
シャはメッセージインスタンスの生成を行う。サブスク
ライバはそのメッセージインスタンスの受信を行う。通
信経路はPS機構を有する。フィルタリング機構は、パ
ブリッシャが提供する第一のフィルタと、サブスクライ
バが提供する第二のフィルタとを有する。
ライバ、通信経路及びフィルタ機構を備えたパブリッシ
ュ/サブスクライブ(PS)装置を提供する。パブリッ
シャはメッセージインスタンスの生成を行う。サブスク
ライバはそのメッセージインスタンスの受信を行う。通
信経路はPS機構を有する。フィルタリング機構は、パ
ブリッシャが提供する第一のフィルタと、サブスクライ
バが提供する第二のフィルタとを有する。
【0045】他の態様によれば、パブリッシャクライア
ントと、サブスクライバクライアントと、通信経路及び
PS機構とを含むPS装置を提供する。パブリッシャク
ライアントは第一のフィルタを有し、その第一のフィル
タを用いて申し込んだ(サブスクライブする)メッセー
ジタイプに対応したチャネルインスタンスの生成を行
う。サブスクライバクライアントは、第二のフィルタを
有し、メッセージタイプの申し込み(購読要求)を行
い、対応するチャネルインスタンス中に含むメッセージ
インスタンスを受信するものであり、第二のフィルタ
は、メッセージタイプの属性を利用して特定のメッセー
ジタイプインスタンスのフィルタリングを行う。通信経
路は、パブリッシャクライアントとサブスクライバクラ
イアントとの間に伸びている。PS機構は、通信経路を
含んでおり、サブスクライバクライアントが第二のフィ
ルタを介して受信できるように対応するチャネルインス
タンスの受信を行う。
ントと、サブスクライバクライアントと、通信経路及び
PS機構とを含むPS装置を提供する。パブリッシャク
ライアントは第一のフィルタを有し、その第一のフィル
タを用いて申し込んだ(サブスクライブする)メッセー
ジタイプに対応したチャネルインスタンスの生成を行
う。サブスクライバクライアントは、第二のフィルタを
有し、メッセージタイプの申し込み(購読要求)を行
い、対応するチャネルインスタンス中に含むメッセージ
インスタンスを受信するものであり、第二のフィルタ
は、メッセージタイプの属性を利用して特定のメッセー
ジタイプインスタンスのフィルタリングを行う。通信経
路は、パブリッシャクライアントとサブスクライバクラ
イアントとの間に伸びている。PS機構は、通信経路を
含んでおり、サブスクライバクライアントが第二のフィ
ルタを介して受信できるように対応するチャネルインス
タンスの受信を行う。
【0046】更に他の態様によれば、PS機構における
メッセージ伝送のフィルタリングを行う為の方法を提供
する。方法は、パブリッシャと、サブスクライバと、パ
ブリッシャ・サブスクライバ間に伸びる通信経路及びフ
ィルタ機構とを提供するものであって、ここで通信経路
は、パブリッシャからサブスクライバへのPSメッセー
ジインスタンスの搬送を行う。方法はまた、サブスクラ
イバが現在申し込んでいるメッセージタイプについての
パブリッシャへの通知と、サブスクライバが少なくとも
も1人は存在するメッセージタイプの伝送と、伝送した
メッセージタイプからサブスクライバが指定した属性を
持つメッセージの受信を行う。
メッセージ伝送のフィルタリングを行う為の方法を提供
する。方法は、パブリッシャと、サブスクライバと、パ
ブリッシャ・サブスクライバ間に伸びる通信経路及びフ
ィルタ機構とを提供するものであって、ここで通信経路
は、パブリッシャからサブスクライバへのPSメッセー
ジインスタンスの搬送を行う。方法はまた、サブスクラ
イバが現在申し込んでいるメッセージタイプについての
パブリッシャへの通知と、サブスクライバが少なくとも
も1人は存在するメッセージタイプの伝送と、伝送した
メッセージタイプからサブスクライバが指定した属性を
持つメッセージの受信を行う。
【0047】以下に本発明実施の最良の態様を描いた添
付図を参照しつつ本発明の実施例を説明する。
付図を参照しつつ本発明の実施例を説明する。
【0048】
【発明の実施の形態】本開示は、「科学と有用な技術の
発展を促進する為」(米国憲法第1条第8節)に米国特
許法の憲法上の目的を推進する上で提示するものであ
る。
発展を促進する為」(米国憲法第1条第8節)に米国特
許法の憲法上の目的を推進する上で提示するものであ
る。
【0049】A.全体像 多要素フィルタリング式を利用するパブリッシュ/サブ
スクライブ(PS)機構にプレフィルタリング及びポス
トフィルタリングを実現する為の装置及び方法を提供す
る。
スクライブ(PS)機構にプレフィルタリング及びポス
トフィルタリングを実現する為の装置及び方法を提供す
る。
【0050】ここで本願出願者の発明の推奨する実施例
に基づき説明を行う。以下に一実施態様について図を参
照して説明するが、図は一実施例に基づくPS機構がネ
ットワーク上に実現した状態を描いたものである。本発
明は推奨する実施例に基づいて説明するが、その記載内
容は本発明をこの実施例に限定することを意図したもの
ではなく、代替的な形態、等価形態及び変更形態をも請
求の範囲に含むものとして網羅することを意図してい
る。
に基づき説明を行う。以下に一実施態様について図を参
照して説明するが、図は一実施例に基づくPS機構がネ
ットワーク上に実現した状態を描いたものである。本発
明は推奨する実施例に基づいて説明するが、その記載内
容は本発明をこの実施例に限定することを意図したもの
ではなく、代替的な形態、等価形態及び変更形態をも請
求の範囲に含むものとして網羅することを意図してい
る。
【0051】本発明を明確に説明する為に本発明の実現
に密接に関わる詳細についてのみ詳しく記載するが、現
在周知であるその周辺の詳細は、この分野において現在
理解されているものであり、引用することにより本明細
書の一部をなすものである。
に密接に関わる詳細についてのみ詳しく記載するが、現
在周知であるその周辺の詳細は、この分野において現在
理解されているものであり、引用することにより本明細
書の一部をなすものである。
【0052】図1は、全体的に符号10が識別する多構
造型(polymorphic)パブリッシュ/サブスクライブ(P
S)装置を描いたものであり、装置10は多要素フィル
タリング機構を有している。その一構造例によれば、装
置10をクライアント14、16と、サーバ18とを含
むクライアント/サーバネットワーク環境12中の通信
経路11上に設けている。クライアント/サーバネット
ワーク環境12は通信経路11を含み、この通信経路1
1はその一形態においてはネットワーク22を含む。ま
たネットワーク22は一構造例においてはローカルエリ
アネットワークである。更に、ネットワーク22はイン
ターネット24を含む場合もある。更に他の構造によれ
ば、インターネット24はワールドワイドウェブ(WW
W)26である。
造型(polymorphic)パブリッシュ/サブスクライブ(P
S)装置を描いたものであり、装置10は多要素フィル
タリング機構を有している。その一構造例によれば、装
置10をクライアント14、16と、サーバ18とを含
むクライアント/サーバネットワーク環境12中の通信
経路11上に設けている。クライアント/サーバネット
ワーク環境12は通信経路11を含み、この通信経路1
1はその一形態においてはネットワーク22を含む。ま
たネットワーク22は一構造例においてはローカルエリ
アネットワークである。更に、ネットワーク22はイン
ターネット24を含む場合もある。更に他の構造によれ
ば、インターネット24はワールドワイドウェブ(WW
W)26である。
【0053】図1に示すように、クライアント14はパ
ブリッシャ(発行者)コンピュータ(パブリッシャ)2
8を含み、クライアント16はサブスクライバ(購読
者、加入者)コンピュータ(サブスクライバ)32を含
む。インフラストラクチャ36を、ネットワーク22と
コンピュータ14、16とが提供する。本願において使
用した場合、「パブリッシャ(発行者)」という語は、
ユーザ即ちサブスクライバが通信経路を利用して選択的
に検索・取り込み出来る情報源をユーザが提供出来るよ
うにする一連の命令によりデータ処理を行う能力を持つ
汎用機械を指す。同様に、「サブスクライバ(購読者、
加入者)」という語を本願において使用した場合、ユー
ザが通信経路を利用してそのような情報源から選択的に
検索を行えるようにする一連の命令に基づいてデータ処
理を行う能力を持つ汎用機械を指す。更に「クライアン
ト」という語を本願において使用した場合、クライアン
ト/サーバ環境中に設けているワークステーション又は
パーソナルコンピュータを指す。
ブリッシャ(発行者)コンピュータ(パブリッシャ)2
8を含み、クライアント16はサブスクライバ(購読
者、加入者)コンピュータ(サブスクライバ)32を含
む。インフラストラクチャ36を、ネットワーク22と
コンピュータ14、16とが提供する。本願において使
用した場合、「パブリッシャ(発行者)」という語は、
ユーザ即ちサブスクライバが通信経路を利用して選択的
に検索・取り込み出来る情報源をユーザが提供出来るよ
うにする一連の命令によりデータ処理を行う能力を持つ
汎用機械を指す。同様に、「サブスクライバ(購読者、
加入者)」という語を本願において使用した場合、ユー
ザが通信経路を利用してそのような情報源から選択的に
検索を行えるようにする一連の命令に基づいてデータ処
理を行う能力を持つ汎用機械を指す。更に「クライアン
ト」という語を本願において使用した場合、クライアン
ト/サーバ環境中に設けているワークステーション又は
パーソナルコンピュータを指す。
【0054】図1によれば、PS装置10をクライアン
ト/サーバネットワーク環境中に設けている。図1に示
すように、装置10を、ネットワーク22を含む通信経
路11上に実現している。しかしながら、通信経路11
は他の特定の形式で実現した通信経路であっても良いこ
とは言うまでもない。
ト/サーバネットワーク環境中に設けている。図1に示
すように、装置10を、ネットワーク22を含む通信経
路11上に実現している。しかしながら、通信経路11
は他の特定の形式で実現した通信経路であっても良いこ
とは言うまでもない。
【0055】他の実施態様によれば、装置10を、ロー
カルエリアネットワーク全体にわたって設けたものでは
なく、かわりに単一のコンピュータ上に設けていても良
い。従ってこの他の態様によれば物理ネットワークは必
ずしも必要ではない。装置10を単一のコンピュータ中
に設けることにより、物理的なネットワーク接続の必要
性は無くなる。よって装置10は物理的なネットワーク
接続を持たない単一のコンピュータにおいて実現するこ
とが出来る。このような態様によれば、パブリッシャ2
8と、サブスクライバ32と、コンピュータ18及び通
信経路11とを全て単一の共通コンピュータ上に設け
る。このような態様においては、物理ネットワークが存
在しないコンピュータは、ローカルループバック(loca
l loop- back)をサポートしている。
カルエリアネットワーク全体にわたって設けたものでは
なく、かわりに単一のコンピュータ上に設けていても良
い。従ってこの他の態様によれば物理ネットワークは必
ずしも必要ではない。装置10を単一のコンピュータ中
に設けることにより、物理的なネットワーク接続の必要
性は無くなる。よって装置10は物理的なネットワーク
接続を持たない単一のコンピュータにおいて実現するこ
とが出来る。このような態様によれば、パブリッシャ2
8と、サブスクライバ32と、コンピュータ18及び通
信経路11とを全て単一の共通コンピュータ上に設け
る。このような態様においては、物理ネットワークが存
在しないコンピュータは、ローカルループバック(loca
l loop- back)をサポートしている。
【0056】より具体的には、このような他の態様にお
いては、パブリッシャ及びサブスクライバをホストする
処理能力を持つ単一の機械上にパブリッシュ/サブスク
ライブインフラストラクチャを提供するような形でパブ
リッシャ28と、サブスクライバ32及び通信経路11
とを共通のコンピュータ単体に設けている。
いては、パブリッシャ及びサブスクライバをホストする
処理能力を持つ単一の機械上にパブリッシュ/サブスク
ライブインフラストラクチャを提供するような形でパブ
リッシャ28と、サブスクライバ32及び通信経路11
とを共通のコンピュータ単体に設けている。
【0057】従ってパブリッシャ28と、サブスクライ
バ32と、インフラストラクチャ36及び通信経路11
とを、クライアントコンピュータ14、16及びサーバ
コンピュータ18のような1以上のコンピュータ上にお
ける通信リンク中の処理回路内に提供することが出来
る。コンピュータ14、16、18とは、メモリ60、
62、64と中央処理装置(CPU)66、68、70
をそれぞれに含む。CPU66、68、79は各々処理
回路(図示せず)を含む。アプリケーションプログラム
56及び68もまた、コンピュータ14、16内に設け
ている。
バ32と、インフラストラクチャ36及び通信経路11
とを、クライアントコンピュータ14、16及びサーバ
コンピュータ18のような1以上のコンピュータ上にお
ける通信リンク中の処理回路内に提供することが出来
る。コンピュータ14、16、18とは、メモリ60、
62、64と中央処理装置(CPU)66、68、70
をそれぞれに含む。CPU66、68、79は各々処理
回路(図示せず)を含む。アプリケーションプログラム
56及び68もまた、コンピュータ14、16内に設け
ている。
【0058】従って、PS装置10は、単一の共通機械
上、複数の機械上、或いはパブリッシャ又はサブスクラ
イバをホストする機械以外の機械上にさえも設けること
が出来るのである。よってPS装置10のPS機構38
を第一の機械に設けると共に1つ以上のパブリッシャ2
8及び/又はサブスクライバ32を更に他の異なる機械
上に設けることが出来る。図1にはPS装置10のPS
機構をコンピュータ14、16、18間に分散して設け
ているように描いているが、他の実施態様も請求項に定
義した本出願の発明の範囲内であることは明らかであ
る。
上、複数の機械上、或いはパブリッシャ又はサブスクラ
イバをホストする機械以外の機械上にさえも設けること
が出来るのである。よってPS装置10のPS機構38
を第一の機械に設けると共に1つ以上のパブリッシャ2
8及び/又はサブスクライバ32を更に他の異なる機械
上に設けることが出来る。図1にはPS装置10のPS
機構をコンピュータ14、16、18間に分散して設け
ているように描いているが、他の実施態様も請求項に定
義した本出願の発明の範囲内であることは明らかであ
る。
【0059】本願において使用した場合、PS装置10
は通信経路11を含むPSインフラストラクチャ36を
含んでいるものとする。一実施態様によれば、このよう
な通信経路11を、少なくとも部分的にネットワーク2
2が提供する。このようなネットワーク22はローカル
エリアネットワーク又はインターネットである。本願に
おいて使用した場合、通信経路11という語は、構造
(fabric)を意味し、通信経路11、即ちネットワーク
22全体にわたって情報を伝送する為のマルチキャスト
機構とチャネル及び物理媒体とを含む物理エンティティ
である通信構造(communication fabric)又はPS構造
(PS fabric)等を指す。従ってこのようなPS構造
は、通信経路11上にてパブリッシャ28又はサブスク
ライバ32のホストとなる1つ以上の機械上、或いはサ
ーバコンピュータ18上に設けることが出来る。
は通信経路11を含むPSインフラストラクチャ36を
含んでいるものとする。一実施態様によれば、このよう
な通信経路11を、少なくとも部分的にネットワーク2
2が提供する。このようなネットワーク22はローカル
エリアネットワーク又はインターネットである。本願に
おいて使用した場合、通信経路11という語は、構造
(fabric)を意味し、通信経路11、即ちネットワーク
22全体にわたって情報を伝送する為のマルチキャスト
機構とチャネル及び物理媒体とを含む物理エンティティ
である通信構造(communication fabric)又はPS構造
(PS fabric)等を指す。従ってこのようなPS構造
は、通信経路11上にてパブリッシャ28又はサブスク
ライバ32のホストとなる1つ以上の機械上、或いはサ
ーバコンピュータ18上に設けることが出来る。
【0060】更に任意選択的に通信経路11はある位置
から他の位置への情報の電子伝送を提供することが出来
る何らかの媒体を含んでいるものであっても良い。例え
ば、バスは複数の装置間に形成する共通経路、即ちチャ
ネルを含む通信経路の一形態を提供するものである。こ
のようなバスは単一の共通コンピュータの内部バスであ
っても、或いはネットワーク中で局間を接続する共通ケ
ーブルのようなネットワークバスであっても良い。例え
ば、クライアントとサーバとをネットワークバスを用い
て結合することが出来る。更に、個々のコンピュータシ
ステム等の処理回路を含む複数の装置が互いに通信を行
っている場合において、PS機構をそのような装置の1
以上の処理回路内に設けているといった他の構造も通信
経路11とみなしうる。
から他の位置への情報の電子伝送を提供することが出来
る何らかの媒体を含んでいるものであっても良い。例え
ば、バスは複数の装置間に形成する共通経路、即ちチャ
ネルを含む通信経路の一形態を提供するものである。こ
のようなバスは単一の共通コンピュータの内部バスであ
っても、或いはネットワーク中で局間を接続する共通ケ
ーブルのようなネットワークバスであっても良い。例え
ば、クライアントとサーバとをネットワークバスを用い
て結合することが出来る。更に、個々のコンピュータシ
ステム等の処理回路を含む複数の装置が互いに通信を行
っている場合において、PS機構をそのような装置の1
以上の処理回路内に設けているといった他の構造も通信
経路11とみなしうる。
【0061】本発明によれば、PS機構38は、異なる
メッセージタイプ(例えばストラクチャあるいは構造)
44、46のメッセージ40、42を伝送する能力を提
供するものである。パブリッシャ28は、そのパブリッ
シャ28が発行しようとする特定タイプ44、46のメ
ッセージ40、42を示して、インフラストラクチャ3
6を利用する。同様に、サブスクライバ32は、特定タ
イプのメッセージ40、42の購読要求(申し込み)を
行う為、即ち受信を望む関心のある対象を指定する為に
インフラストラクチャ36を利用する。チャネル48及
び50をメッセージタイプの名称が定義しており、これ
を従来技術のフラットなトピック名の使用に置き換え
る。
メッセージタイプ(例えばストラクチャあるいは構造)
44、46のメッセージ40、42を伝送する能力を提
供するものである。パブリッシャ28は、そのパブリッ
シャ28が発行しようとする特定タイプ44、46のメ
ッセージ40、42を示して、インフラストラクチャ3
6を利用する。同様に、サブスクライバ32は、特定タ
イプのメッセージ40、42の購読要求(申し込み)を
行う為、即ち受信を望む関心のある対象を指定する為に
インフラストラクチャ36を利用する。チャネル48及
び50をメッセージタイプの名称が定義しており、これ
を従来技術のフラットなトピック名の使用に置き換え
る。
【0062】図1に示すように、メッセージタイプ44
及び46を互いに独立したものとして描いている。しか
しながら、メッセージタイプ46及び44の関係は、2
形態のうちのいずれかであることが考えられる。例え
ば、第一の形態ではメッセージタイプ44及び46は、
別個の独立した関連性の無いメッセージチャネル48及
び50を作る「非関連メッセージタイプ(unrelated me
ssage type)」である。他方の形態においては、メッセ
ージタイプ44及び46はメッセージスーパータイプと
メッセージサブタイプを含む「関連メッセージタイプ
(related messagetype)」を形成するものである。
及び46を互いに独立したものとして描いている。しか
しながら、メッセージタイプ46及び44の関係は、2
形態のうちのいずれかであることが考えられる。例え
ば、第一の形態ではメッセージタイプ44及び46は、
別個の独立した関連性の無いメッセージチャネル48及
び50を作る「非関連メッセージタイプ(unrelated me
ssage type)」である。他方の形態においては、メッセ
ージタイプ44及び46はメッセージスーパータイプと
メッセージサブタイプを含む「関連メッセージタイプ
(related messagetype)」を形成するものである。
【0063】メッセージタイプが非関連タイプの場合、
非関連メッセージタイプを互いに完全に独立したタイプ
44及びタイプ46が提供し、これが機構を2チャネル
へと分割する。
非関連メッセージタイプを互いに完全に独立したタイプ
44及びタイプ46が提供し、これが機構を2チャネル
へと分割する。
【0064】メッセージタイプが関連タイプの場合には
サブタイプ関係を形成する。このような関連メッセージ
タイプは2つのメッセージチャネルを作成可能とするメ
ッセージサブタイプを利用する。例えば、メッセージタ
イプ44をメッセージスーパータイプとする一方で、メ
ッセージタイプ46をメッセージサブタイプとすること
が出来る。この例によれば、チャネル48及び50の2
つのメッセージチャネルを作成するが、ここではチャネ
ル50にわたって流れるサブタイプ46に関連したトラ
フィック全てを含むメッセージスーパータイプ44にチ
ャネル48を関連付ける。従ってチャネル48及び50
が関連している場合、サブタイプチャネル50にわたっ
て流れるメッセージは、スーパータイプチャネル48に
わたって流れるメッセージのサブセットを表している。
サブタイプ関係を形成する。このような関連メッセージ
タイプは2つのメッセージチャネルを作成可能とするメ
ッセージサブタイプを利用する。例えば、メッセージタ
イプ44をメッセージスーパータイプとする一方で、メ
ッセージタイプ46をメッセージサブタイプとすること
が出来る。この例によれば、チャネル48及び50の2
つのメッセージチャネルを作成するが、ここではチャネ
ル50にわたって流れるサブタイプ46に関連したトラ
フィック全てを含むメッセージスーパータイプ44にチ
ャネル48を関連付ける。従ってチャネル48及び50
が関連している場合、サブタイプチャネル50にわたっ
て流れるメッセージは、スーパータイプチャネル48に
わたって流れるメッセージのサブセットを表している。
【0065】パブリッシャ28及びサブスクライバ32
にメッセージタイプシステムをベースにしたPSインフ
ラストラクチャ36の使用を強制することにより、パブ
リッシャ28又はサブスクライバ32のいずれかが、誤
った構造のメッセージを生成又は処理してしまう可能性
を排除する。従って、特定のPSインスタンスに対して
メッセージ空間をチャネルへと区分化する為にメッセー
ジタイプ名を使用するのである。
にメッセージタイプシステムをベースにしたPSインフ
ラストラクチャ36の使用を強制することにより、パブ
リッシャ28又はサブスクライバ32のいずれかが、誤
った構造のメッセージを生成又は処理してしまう可能性
を排除する。従って、特定のPSインスタンスに対して
メッセージ空間をチャネルへと区分化する為にメッセー
ジタイプ名を使用するのである。
【0066】図1に示すように、多要素フィルタ機構2
0をPS装置10中に設けている。具体的にはフィルタ
機構20は、パブリッシャ28中のプレフィルタ24と
サブスクライバ32内のポストフィルタとを含む。チャ
ネルファクトリ30をサーバ18内に設けている。
0をPS装置10中に設けている。具体的にはフィルタ
機構20は、パブリッシャ28中のプレフィルタ24と
サブスクライバ32内のポストフィルタとを含む。チャ
ネルファクトリ30をサーバ18内に設けている。
【0067】より具体的に説明すると、プレフィルタ2
4は、パブリッシャ28が生成したメッセージインスタ
ンスに購読(申し込み)対象メッセージタイプを含む為
にサブスクライバ32が申し込んだメッセージタイプを
識別するように構成した回路72を含む。同様に、ポス
トフィルタ26は、特定のメッセージタイプを特定のマ
ルチキャストアドレスとともにその特定のマルチキャス
トアドレスを取得するサブスクライバ32がPS機構3
8からその特定のメッセージを受信できるように構成し
た回路74を含む。ある一構造例においては、回路72
及び74は各々フィルタ回路を含んでいる。回路72及
び74は代わりに処理回路を含むものであっても良い。
4は、パブリッシャ28が生成したメッセージインスタ
ンスに購読(申し込み)対象メッセージタイプを含む為
にサブスクライバ32が申し込んだメッセージタイプを
識別するように構成した回路72を含む。同様に、ポス
トフィルタ26は、特定のメッセージタイプを特定のマ
ルチキャストアドレスとともにその特定のマルチキャス
トアドレスを取得するサブスクライバ32がPS機構3
8からその特定のメッセージを受信できるように構成し
た回路74を含む。ある一構造例においては、回路72
及び74は各々フィルタ回路を含んでいる。回路72及
び74は代わりに処理回路を含むものであっても良い。
【0068】更に図1によれば、センサ54及び56
は、データをパブリッシャ28へと入力するように構成
した独立したセンサを含んでいる。一応用例によれば、
センサ54及び56は各々にユーザコールを監視するよ
うに構成した監視及び/又は処理回路を含んでいる。し
かしながら他の応用例が可能であることは言うまでもな
い。発行データを生成するようにクライアントをプログ
ラミングしてセンサ54及び56の必要性を排除する等
のように、パブリッシャ28へのデータ入力に他の技術
を利用することも可能である。
は、データをパブリッシャ28へと入力するように構成
した独立したセンサを含んでいる。一応用例によれば、
センサ54及び56は各々にユーザコールを監視するよ
うに構成した監視及び/又は処理回路を含んでいる。し
かしながら他の応用例が可能であることは言うまでもな
い。発行データを生成するようにクライアントをプログ
ラミングしてセンサ54及び56の必要性を排除する等
のように、パブリッシャ28へのデータ入力に他の技術
を利用することも可能である。
【0069】PS機構38は、チャネル48や50のよ
うな個々のチャネルを作成するように構成したチャネル
ファクトリ30を含む。チャネルファクトリ30はプロ
キシオブジェクト34を含む。プロキシオブジェクトと
は、他のオブジェクトに代わる働きをするオブジェクト
である。これは通常、オリジナルオブジェクトと同じイ
ンターフェースを提供し、オリジナルへの要求を転送し
たりそのクライアントに結果を返したりする為のポイン
トとしての働きを持つ。分散型システムにおいては、プ
ロキシオブジェクトは、一般的にそれが代理を行うオリ
ジナルオブジェクトとは異なるホスト上に存在するが、
これは必ずしもプロキシである為の必須条件ではない。
プロキシオブジェクトのクライアントの観点からは、こ
れらが実際のオブジェクトを扱っているかのように見え
ている(これらはオリジナルを代理するプロキシを実際
に扱っていることを大抵全く認識しない)。
うな個々のチャネルを作成するように構成したチャネル
ファクトリ30を含む。チャネルファクトリ30はプロ
キシオブジェクト34を含む。プロキシオブジェクトと
は、他のオブジェクトに代わる働きをするオブジェクト
である。これは通常、オリジナルオブジェクトと同じイ
ンターフェースを提供し、オリジナルへの要求を転送し
たりそのクライアントに結果を返したりする為のポイン
トとしての働きを持つ。分散型システムにおいては、プ
ロキシオブジェクトは、一般的にそれが代理を行うオリ
ジナルオブジェクトとは異なるホスト上に存在するが、
これは必ずしもプロキシである為の必須条件ではない。
プロキシオブジェクトのクライアントの観点からは、こ
れらが実際のオブジェクトを扱っているかのように見え
ている(これらはオリジナルを代理するプロキシを実際
に扱っていることを大抵全く認識しない)。
【0070】更に図1によれば、パブリッシャ28は、
アプリケーションプログラム形式のアプリケーション5
6とメモリ60と中央処理装置(CPU)66とを含
む。同様にサブスクライバ32も、アプリケーションプ
ログラム形式のアプリケーション58とメモリ62と中
央処理装置(CPU)68とを含む。更にサーバ18
は、メモリ64と中央処理装置(CPU)70とを含
む。
アプリケーションプログラム形式のアプリケーション5
6とメモリ60と中央処理装置(CPU)66とを含
む。同様にサブスクライバ32も、アプリケーションプ
ログラム形式のアプリケーション58とメモリ62と中
央処理装置(CPU)68とを含む。更にサーバ18
は、メモリ64と中央処理装置(CPU)70とを含
む。
【0071】PS装置10のアプリケーションは、サブ
スクライバにフィルタ機構20のフィルタリング式を2
つに区分するように強制する。
スクライバにフィルタ機構20のフィルタリング式を2
つに区分するように強制する。
【0072】第一の区分はサブスクライバが受信を望む
メッセージタイプの表示部であり、第二の区分はそのメ
ッセージタイプの属性に関する更なるフィルタリング式
である。
メッセージタイプの表示部であり、第二の区分はそのメ
ッセージタイプの属性に関する更なるフィルタリング式
である。
【0073】パブリッシャ及びサブスクライバによる特
定のマルチキャスト機構への入出を、その機構にわたっ
て送られるメッセージよりも大幅に低い周波数にて行う
ものと仮定する。この仮定条件下において、サブスクラ
イバが申し込んだメッセージタイプを各パブリッシャに
通知する。パブリッシャが誰も購読あるいは申し込み対
象としないタイプのメッセージを発行したい場合であっ
ても、パブリッシャ側のホストのインフラストラクチャ
はそのメッセージの送信を行わない。メッセージタイプ
の選択を適正に行う場合、ネットワークトラフィック
は、サブスクライバの申し込みを満たすに必要なネット
ワークトラフィックとなる。そして到着した指定タイプ
のメッセージに更なるフィルタリング式を提供するのは
サブスクライバ側ホストのインフラストラクチャの責任
であり、これにより特定のメッセージをサブスクライバ
に配信するべきかを導出している。
定のマルチキャスト機構への入出を、その機構にわたっ
て送られるメッセージよりも大幅に低い周波数にて行う
ものと仮定する。この仮定条件下において、サブスクラ
イバが申し込んだメッセージタイプを各パブリッシャに
通知する。パブリッシャが誰も購読あるいは申し込み対
象としないタイプのメッセージを発行したい場合であっ
ても、パブリッシャ側のホストのインフラストラクチャ
はそのメッセージの送信を行わない。メッセージタイプ
の選択を適正に行う場合、ネットワークトラフィック
は、サブスクライバの申し込みを満たすに必要なネット
ワークトラフィックとなる。そして到着した指定タイプ
のメッセージに更なるフィルタリング式を提供するのは
サブスクライバ側ホストのインフラストラクチャの責任
であり、これにより特定のメッセージをサブスクライバ
に配信するべきかを導出している。
【0074】既知の申し込んだタイプとの一致性を示す
為のメッセージフィルタリングの実行をパブリッシャ側
の責任としたことにより、パブリッシャ側ホストの処理
を最小化し、限定したおそらくは小さい値の集合に対し
て1回の照合だけで済む。
為のメッセージフィルタリングの実行をパブリッシャ側
の責任としたことにより、パブリッシャ側ホストの処理
を最小化し、限定したおそらくは小さい値の集合に対し
て1回の照合だけで済む。
【0075】1つ以上のマルチキャストアドレスが利用
可能である環境の場合、本発明はまた、サブスクライバ
側ホストの割り込み負荷を更に低減する為にメッセージ
タイプをマルチキャストアドレスにマッピングする方法
を幾つか定義するものである。特定のタイプを特定のマ
ルチキャストアドレスに関連付けることにより、その特
定のマルチキャストアドレスを取得しているサブスクラ
イバのみがそのメッセージを受信することになる。
可能である環境の場合、本発明はまた、サブスクライバ
側ホストの割り込み負荷を更に低減する為にメッセージ
タイプをマルチキャストアドレスにマッピングする方法
を幾つか定義するものである。特定のタイプを特定のマ
ルチキャストアドレスに関連付けることにより、その特
定のマルチキャストアドレスを取得しているサブスクラ
イバのみがそのメッセージを受信することになる。
【0076】従って、装置10のアプリケーションはこ
のようなPS機構に構築したアプリケーションに関わる
リソースの利用効率を最大化し、ひいてはより多数のメ
ッセージ、パブリッシャ及びサブスクライバへと対応す
るスケーラビリティを実現するものである。
のようなPS機構に構築したアプリケーションに関わる
リソースの利用効率を最大化し、ひいてはより多数のメ
ッセージ、パブリッシャ及びサブスクライバへと対応す
るスケーラビリティを実現するものである。
【0077】装置10によれば、サブスクライバは申し
込み(購読要求)時に2つの情報を用意すべきである。
第一には受信を望むメッセージタイプであり、そして第
二にはメッセージタイプのインスタンスにおいてフィー
ルド値で表した追加フィルタリング式である。引用する
ことにより本明細書の一部をなすものとする本出願人の
発明開示である発明者Joseph S.Sventek,Jerremy Hol
land及びGraham S.Pollackによる2000年1月13
日出願の米国特許出願番号第09/483,174号
“Polymorphic Publish/Subscribe Apparatus and Me
thod”に記載のものにおいては、チャネルをメッセージ
タイプが定義する。ここに記載の固有構造は本願におい
ては新たなメッセージタイプを定義する為に簡略的に説
明するに留める。
込み(購読要求)時に2つの情報を用意すべきである。
第一には受信を望むメッセージタイプであり、そして第
二にはメッセージタイプのインスタンスにおいてフィー
ルド値で表した追加フィルタリング式である。引用する
ことにより本明細書の一部をなすものとする本出願人の
発明開示である発明者Joseph S.Sventek,Jerremy Hol
land及びGraham S.Pollackによる2000年1月13
日出願の米国特許出願番号第09/483,174号
“Polymorphic Publish/Subscribe Apparatus and Me
thod”に記載のものにおいては、チャネルをメッセージ
タイプが定義する。ここに記載の固有構造は本願におい
ては新たなメッセージタイプを定義する為に簡略的に説
明するに留める。
【0078】特定のタイプのサブスクライバ及びパブリ
ッシャの出入よりも、特定のチャネル上で発行するメッ
セージの頻度の方がはるかに高いことを前提としてい
る。もしこれと異なる状況の場合、ネットワーク上のト
ラフィックは関連の様々なホスト上で走るインフラスト
ラクチャの部分間におけるメンバーシップ情報の交換が
大部分を占めることになり、ネットワーク帯域の利用効
率は低下する。この仮定条件下においては、各パブリッ
シャ側ホスト上のインフラストラクチャ部分は現在申し
込んでいる(購読している)メッセージタイプを常に認
識すべきである。これらのメッセージタイプが既知であ
れば、発行側ホストはサブスクライバの無いタイプのメ
ッセージを伝送することは決して無い。サブスクライバ
があるメッセージタイプについては、パブリッシャはメ
ッセージをそのタイプに関連付けたマルチキャストアド
レスへと送る。この行為により、その特定のマルチキャ
ストアドレスを取得しているサブスクライバのみが、そ
のメッセージを確実に受信することになる。
ッシャの出入よりも、特定のチャネル上で発行するメッ
セージの頻度の方がはるかに高いことを前提としてい
る。もしこれと異なる状況の場合、ネットワーク上のト
ラフィックは関連の様々なホスト上で走るインフラスト
ラクチャの部分間におけるメンバーシップ情報の交換が
大部分を占めることになり、ネットワーク帯域の利用効
率は低下する。この仮定条件下においては、各パブリッ
シャ側ホスト上のインフラストラクチャ部分は現在申し
込んでいる(購読している)メッセージタイプを常に認
識すべきである。これらのメッセージタイプが既知であ
れば、発行側ホストはサブスクライバの無いタイプのメ
ッセージを伝送することは決して無い。サブスクライバ
があるメッセージタイプについては、パブリッシャはメ
ッセージをそのタイプに関連付けたマルチキャストアド
レスへと送る。この行為により、その特定のマルチキャ
ストアドレスを取得しているサブスクライバのみが、そ
のメッセージを確実に受信することになる。
【0079】このタイプ/制約分割の効果は、アプリケ
ーションドメイン知識をタイプ階層においてどの程度捕
捉できるかに依存する。これはユーザが拡張出来るもの
である為、帯域効率機構を制御するのはユーザである。
結果として得られる柔軟性により、既存のソリューショ
ンに比べて更に有利な点を提供する。
ーションドメイン知識をタイプ階層においてどの程度捕
捉できるかに依存する。これはユーザが拡張出来るもの
である為、帯域効率機構を制御するのはユーザである。
結果として得られる柔軟性により、既存のソリューショ
ンに比べて更に有利な点を提供する。
【0080】タイプ及び/又はチャネル間に何らかの関
連性があった場合、インフラストラクチャはタイプ間に
存在する関連性を認識する必要はない為にサブスクライ
バがこれらの関係を認識し、各関連チャネルを購読する
ことにしなければならない。パブリッシャ側に発生する
行動は、少なくとも1人のサブスクライバを持つチャネ
ル上へのメッセージの送信のみである。
連性があった場合、インフラストラクチャはタイプ間に
存在する関連性を認識する必要はない為にサブスクライ
バがこれらの関係を認識し、各関連チャネルを購読する
ことにしなければならない。パブリッシャ側に発生する
行動は、少なくとも1人のサブスクライバを持つチャネ
ル上へのメッセージの送信のみである。
【0081】B.仮定 PS機構の設定において、幾つかの仮定を設ける。第一
には、PS機構にわたって送られるメッセージの各々は
以下の論理構造を持つ。 struct Message1{ Typei1 fieldi1; Typei2 fieldi2; ・・・ TypeiN fieldiN; }
には、PS機構にわたって送られるメッセージの各々は
以下の論理構造を持つ。 struct Message1{ Typei1 fieldi1; Typei2 fieldi2; ・・・ TypeiN fieldiN; }
【0082】サブスクライバがPS機構に登録を望む場
合、サブスクライバはメッセージタイプ(例えばMes
sagei)及び以下の要素を含むフィルタリング式を
指定する必要がある。 1.特定のフィールドの存在。例えば、present
(fieldk) 2.フィールド値の定数又は他のフィールド値との比
較。例えば、field 1<42,field5!=fi
eld47 3.一群の定数中にフィールド値が含まれているかをチ
ェックする能力。例えば、field2 in {1
4 9 16 25} 4.ストリング値の部分的一致があるかをチェックする
能力。例えばfield3〜“Λ+44‐131‐” 5.これら最小単位(atom)の論理連結語(logical co
nnectives)。例えば、present(field1)
&&field1<42,field1<42‖fiel
d1==85;連結語の評価は結果が既知となるとすぐ
に終了する。 6.論理否定。例えば、!present(field
4) 7.デフォルト順位を無効化するグループ化演算子。例
えば、![present(field1)&&pre
sent(field5)]
合、サブスクライバはメッセージタイプ(例えばMes
sagei)及び以下の要素を含むフィルタリング式を
指定する必要がある。 1.特定のフィールドの存在。例えば、present
(fieldk) 2.フィールド値の定数又は他のフィールド値との比
較。例えば、field 1<42,field5!=fi
eld47 3.一群の定数中にフィールド値が含まれているかをチ
ェックする能力。例えば、field2 in {1
4 9 16 25} 4.ストリング値の部分的一致があるかをチェックする
能力。例えばfield3〜“Λ+44‐131‐” 5.これら最小単位(atom)の論理連結語(logical co
nnectives)。例えば、present(field1)
&&field1<42,field1<42‖fiel
d1==85;連結語の評価は結果が既知となるとすぐ
に終了する。 6.論理否定。例えば、!present(field
4) 7.デフォルト順位を無効化するグループ化演算子。例
えば、![present(field1)&&pre
sent(field5)]
【0083】フィールドが存在しない場合、そのフィー
ルドへのいかなる照会も行うべきではない為、フィール
ドへの照合が潜在的にpresent()演算子を呼び
出す更なる条件を作る。即ち、fieldk==22は
[present(fieldk)&&fieldk==
22]に等しい。
ルドへのいかなる照会も行うべきではない為、フィール
ドへの照合が潜在的にpresent()演算子を呼び
出す更なる条件を作る。即ち、fieldk==22は
[present(fieldk)&&fieldk==
22]に等しい。
【0084】C.メッセージタイプの指定 1.メッセージタイプ用のIDLの使用 上述したように、PS機構にわたって送られるメッセー
ジの種類は、OMGIDLに基づく構文中のstruc
tが好適に表現する。
ジの種類は、OMGIDLに基づく構文中のstruc
tが好適に表現する。
【0085】OMGとは、オブジェクト指向アプリケー
ション用のオープンスタンダード技術を認定する為に創
設された国際組織Object Management Groupの略であ
る。OMGは、マサチューセッツ州フラミンガム市にあ
り、ウェブサイトwww.omg.orgを管理している。OM
Gは、分散型環境用の標準オブジェクトモデルの定義で
あり、より一般的にはCORBA(Common Object Requ
est Broker Architecture)として知られるオブジェク
トマネージメントアーキテクチャ(object management
archtechture:OMA)を指定している。
ション用のオープンスタンダード技術を認定する為に創
設された国際組織Object Management Groupの略であ
る。OMGは、マサチューセッツ州フラミンガム市にあ
り、ウェブサイトwww.omg.orgを管理している。OM
Gは、分散型環境用の標準オブジェクトモデルの定義で
あり、より一般的にはCORBA(Common Object Requ
est Broker Architecture)として知られるオブジェク
トマネージメントアーキテクチャ(object management
archtechture:OMA)を指定している。
【0086】IDLは、プログラミング言語におけるル
ーチン又は機能のインターフェースを独自の方法で記述
する為に用いられる言語であるInterface Definition L
anguageの略である。例えば、オブジェクトが実行する
サービスを記述し、またCORBAと共にデータがどの
ようにそのオブジェクトに送られるかを記述するIDL
で特定の分散型オブジェクト環境中のオブジェクトを定
義する。
ーチン又は機能のインターフェースを独自の方法で記述
する為に用いられる言語であるInterface Definition L
anguageの略である。例えば、オブジェクトが実行する
サービスを記述し、またCORBAと共にデータがどの
ようにそのオブジェクトに送られるかを記述するIDL
で特定の分散型オブジェクト環境中のオブジェクトを定
義する。
【0087】残念ながらIDL structは多構造
性(polymorphism)を呈することは無い為、メッセージ
タイプシステムには使用出来ない。しかしながら、ID
Lはインターフェース指定において属性の定義を行うこ
とが出来る。具体的には、各属性は一対のget/se
tアクセスオペレーションの短縮である。メッセージタ
イプシステムを実現する為にこのような属性を利用す
る。
性(polymorphism)を呈することは無い為、メッセージ
タイプシステムには使用出来ない。しかしながら、ID
Lはインターフェース指定において属性の定義を行うこ
とが出来る。具体的には、各属性は一対のget/se
tアクセスオペレーションの短縮である。メッセージタ
イプシステムを実現する為にこのような属性を利用す
る。
【0088】2.メッセージタイプ定義ルール 各メッセージタイプをIDLインターフェース定義が定
義する。メッセージタイプは、他の1つ以上のメッセー
ジタイプを継承するものでも良い。一般的なデータタイ
プ定義に加え、例えばtypedef、enum、st
ruct、union、sequenceステートメン
トからのインターフェース定義本文のステートメント
は、属性宣言(attribute declaration)に制限され
る。データタイプやインターフェースタイプは使用不可
である。しかしながら、この制約を緩和出来る他の構造
例もある。
義する。メッセージタイプは、他の1つ以上のメッセー
ジタイプを継承するものでも良い。一般的なデータタイ
プ定義に加え、例えばtypedef、enum、st
ruct、union、sequenceステートメン
トからのインターフェース定義本文のステートメント
は、属性宣言(attribute declaration)に制限され
る。データタイプやインターフェースタイプは使用不可
である。しかしながら、この制約を緩和出来る他の構造
例もある。
【0089】属性宣言の拡張形式が許される。構文の一
例をあげると、以下の通りである。
例をあげると、以下の通りである。
【0090】
【数1】
【0091】<relop>は“<”、“>”、“<
=”、“>=”、“==”、“!=”、“〜”(ストリ
ング一致)又は“in”(セット包含)のいずれか1つ
の値である。IDL制約を再宣言に関して緩和し、従っ
て<name>をベースインターフェースにおいて以前
に指定していても良い。これによりサブタイプは属性の
正当値を更に制約することが出来る。そして、<nam
e>に指定した制約が、以前に<name>に定義した
制約のいずれよりも限定的であることを保証する為にこ
れらの指定を行う為のコンパイラをチェックする。
=”、“>=”、“==”、“!=”、“〜”(ストリ
ング一致)又は“in”(セット包含)のいずれか1つ
の値である。IDL制約を再宣言に関して緩和し、従っ
て<name>をベースインターフェースにおいて以前
に指定していても良い。これによりサブタイプは属性の
正当値を更に制約することが出来る。そして、<nam
e>に指定した制約が、以前に<name>に定義した
制約のいずれよりも限定的であることを保証する為にこ
れらの指定を行う為のコンパイラをチェックする。
【0092】3.メッセージタイプ例
【数2】
【0093】これらの例においては、通話の開始及び終
了時間(ストリングとして)及び発信及び受信エンドポ
イント(8ビットのシーケンスとして)を捕捉するデー
タタイプ“DetailRecord”を設けている。“CallDetail
Record”とは、発信及び受信電話番号(<ushort,usho
rt,string>の3つの組みが、+country-area-numberフ
ォーマットに対応する)を更に含む“DetailRecord”で
ある。“SouthAmerica_CDR”は、南アメリカへの通話
の“CallDetailRecord”にあたる。“Columbia_CDR”
とは、コロンビアへの“SouthAmerica_CDR”である。
了時間(ストリングとして)及び発信及び受信エンドポ
イント(8ビットのシーケンスとして)を捕捉するデー
タタイプ“DetailRecord”を設けている。“CallDetail
Record”とは、発信及び受信電話番号(<ushort,usho
rt,string>の3つの組みが、+country-area-numberフ
ォーマットに対応する)を更に含む“DetailRecord”で
ある。“SouthAmerica_CDR”は、南アメリカへの通話
の“CallDetailRecord”にあたる。“Columbia_CDR”
とは、コロンビアへの“SouthAmerica_CDR”である。
【0094】4.専用IDLコンパイラの実行する処理 これらの指定の1つから、コンパイラは以下の動作を実
行する。 a.各インターフェースに指定ターゲット言語の1イン
プリメンテーションクラスを生成する。 b.属性名として同一フィールド名を持つstruct
を生成;インターフェース名がNameの場合、str
uctはNameStructとなる。 c.ターゲット言語におけるget/setメソッドの
適正コードの他に更に5つのメソッドのコードを生成す
る。 (1)生成したstructの値を入力パラメータとし
て使い、そのクラスの完全ロードインスタンスを作成す
る生成子。 (2)オブジェクトの内容をバッファに整理するmarsha
l()オペレーション。 (3)整理したバッファを利用し、そのクラスの完全ロ
ードインスタンスを生成するもう1つの生成子。 (4)属性名及びリテラルの条件式を使ってブール値を
返すmatch()オペレーション。 (5)生成したstructの値を入力パラメータとし
て使い、クラスインスタンスにおける属性をリロードす
るload()オペレーション。
行する。 a.各インターフェースに指定ターゲット言語の1イン
プリメンテーションクラスを生成する。 b.属性名として同一フィールド名を持つstruct
を生成;インターフェース名がNameの場合、str
uctはNameStructとなる。 c.ターゲット言語におけるget/setメソッドの
適正コードの他に更に5つのメソッドのコードを生成す
る。 (1)生成したstructの値を入力パラメータとし
て使い、そのクラスの完全ロードインスタンスを作成す
る生成子。 (2)オブジェクトの内容をバッファに整理するmarsha
l()オペレーション。 (3)整理したバッファを利用し、そのクラスの完全ロ
ードインスタンスを生成するもう1つの生成子。 (4)属性名及びリテラルの条件式を使ってブール値を
返すmatch()オペレーション。 (5)生成したstructの値を入力パラメータとし
て使い、クラスインスタンスにおける属性をリロードす
るload()オペレーション。
【0095】この生成したクラスのインスタンスを利用
する為にこの特定のメッセージタイプのパブリッシャ及
びサブスクライバを両者とも書き込む。
する為にこの特定のメッセージタイプのパブリッシャ及
びサブスクライバを両者とも書き込む。
【0096】5.パブリッシャ及びサブスクライバ例 以下の説明においては、パブリッシャが“Columbia_CD
R”を生成し、サブスクライバがシステムが生成する全
ての“Columbia_CDR”を見るという状況を想定してい
る。
R”を生成し、サブスクライバがシステムが生成する全
ての“Columbia_CDR”を見るという状況を想定してい
る。
【0097】D.パブリッシャの動作 パブリッシャはセンサから受信するデータに基づいて
“Columbia_CDR”を生成する。以下の擬似コードはパ
ブリッシャのロジックを示すものである。
“Columbia_CDR”を生成する。以下の擬似コードはパ
ブリッシャのロジックを示すものである。
【0098】
【数3】
【0099】E.サブスクライバの動作 サブスクライバは“Columbia_CDR”の全てのインスタ
ンスを受信するためにサブスクリプション要求を行う。
以下の擬似コードはサブスクライバのロジックを示すも
のである。
ンスを受信するためにサブスクリプション要求を行う。
以下の擬似コードはサブスクライバのロジックを示すも
のである。
【0100】
【数4】
【0101】1.データの伝送 サブスクライバがあるタイプの申し込み(購読要求)を
した場合、各パブリッシャにおける構造ランタイムを通
知する。パブリッシャがメッセージを送信(send())
した場合、 a.そのタイプに対するサブスクライバが存在しない場
合は、単にランタイムをパブリッシャへと返す。 b.send()オペレーションを呼び出したメッセージイ
ンスタンスにmarshal()オペレーションを呼び出し、
データを順番にバッファへと格納する。 c.バッファをそのタイプの各サブスクライバへとマル
チキャストする。
した場合、各パブリッシャにおける構造ランタイムを通
知する。パブリッシャがメッセージを送信(send())
した場合、 a.そのタイプに対するサブスクライバが存在しない場
合は、単にランタイムをパブリッシャへと返す。 b.send()オペレーションを呼び出したメッセージイ
ンスタンスにmarshal()オペレーションを呼び出し、
データを順番にバッファへと格納する。 c.バッファをそのタイプの各サブスクライバへとマル
チキャストする。
【0102】メッセージインスタンスを受信すると、受
信側構造ランタイムはそのメッセージクラスの新たなイ
ンスタンスを整理したバッファから構築する。購読時あ
るいは申し込み時に提供する制約条件式を用いてmat
ch()メソッドを呼び出す。呼び出したmatc
h()の結果がTRUEであった場合、サブスクライバ
をそのメッセージクラスインスタンスを用いてアップコ
ールする。
信側構造ランタイムはそのメッセージクラスの新たなイ
ンスタンスを整理したバッファから構築する。購読時あ
るいは申し込み時に提供する制約条件式を用いてmat
ch()メソッドを呼び出す。呼び出したmatc
h()の結果がTRUEであった場合、サブスクライバ
をそのメッセージクラスインスタンスを用いてアップコ
ールする。
【0103】2.マルチキャストアドレスへのマッピン
グ 上記の両擬似コードにおいて明らかであるが、特定タイ
プのメッセージを送受信する為のプロキシを得る為にチ
ャネルファクトリを照会する。チャネルファクトリは2
つのロジックを含んでいる。 a.パブリッシャ/サブスクライバのアドレス空間にお
いて、チャネルファクトリサーバ及びPS機構インフラ
ストラクチャと相互作用するプロキシオブジェクト。 b.チャネルファクトリサーバがそのPS機構に関する
全体的情報を表す。具体的にはこれが既知のメッセージ
タイプ及びそのアクティブなパブリッシャ及びサブスク
ライバ群を記録し、メッセージタイプ及びマルチキャス
トアドレス間のマッピングを行う。
グ 上記の両擬似コードにおいて明らかであるが、特定タイ
プのメッセージを送受信する為のプロキシを得る為にチ
ャネルファクトリを照会する。チャネルファクトリは2
つのロジックを含んでいる。 a.パブリッシャ/サブスクライバのアドレス空間にお
いて、チャネルファクトリサーバ及びPS機構インフラ
ストラクチャと相互作用するプロキシオブジェクト。 b.チャネルファクトリサーバがそのPS機構に関する
全体的情報を表す。具体的にはこれが既知のメッセージ
タイプ及びそのアクティブなパブリッシャ及びサブスク
ライバ群を記録し、メッセージタイプ及びマルチキャス
トアドレス間のマッピングを行う。
【0104】チャネルファクトリサーバがメッセージタ
イプをマルチキャストアドレスへとマッピングする為に
利用出来るアルゴリズムは幾つかある。 (1)マルチキャストアドレスが1つしかなく、全ての
メッセージをその同じマルチキャストチャネルにわたっ
て送信する場合、最も単純なアルゴリズムで良い。もち
ろん、これでは、全ての受信者が全ての申し込まれたタ
イプの全メッセージを見ることになる為に受信側の負荷
を最小化するにはあまり役に立たない。 (2)そのネットワークに接続する全てのホストのネッ
トワークインターフェースカードが少なくともNMC個の
アドレスをサポートすると想定した場合、チャネルファ
クトリサーバが使用するアルゴリズムは、サーバがメッ
セージトラフィックに関してどの程度の量の情報を持っ
ているかに依存する。 (a)メッセージトラフィックに関して一切の追加デー
タが無い場合、ファクトリサーバは、NMC個のアドレス
全てを指定するまで各メッセージタイプに対して異なる
マルチキャストアドレスを割り付ける。異なるメッセー
ジタイプを、各々にNMC個のアドレス群からランダムに
選択したマルチキャストアドレスに割り付ける。もちろ
ん、1つ以上のメッセージタイプを同じマルチキャスト
アドレスに送る可能性が生じるとすぐに、サーバは、受
信者が多重分離化を適正に行うことが出来るように、そ
のメッセージの伝送中の表示にメッセージタイプ名を含
むように強制する。 (b)チャネルファクトリサーバが各マルチキャストア
ドレスを申し込む(購読する)ようにすることも可能で
ある。サーバは、最初に上述の例と同様にN MC個のタイ
プを割り付け終えるまでマルチキャストアドレスの割付
を行う。各チャネル上にて単位時間あたりに受信したメ
ッセージの計数を行う。既に割り付けたマルチキャスト
アドレスの1つに新たなタイプを割り付けるべき必要が
生じた場合、サーバはそれを現在最低のメッセージ率を
持つアドレスへと割り付ける。 (c)パブリッシャにメッセージタイプ(固有階層が表
現したもの)間の関係を認識するように強制する場合、
マルチキャストアドレスの割り付けは、マルチキャスト
アドレスを共用するように関連タイプを系統化する。
イプをマルチキャストアドレスへとマッピングする為に
利用出来るアルゴリズムは幾つかある。 (1)マルチキャストアドレスが1つしかなく、全ての
メッセージをその同じマルチキャストチャネルにわたっ
て送信する場合、最も単純なアルゴリズムで良い。もち
ろん、これでは、全ての受信者が全ての申し込まれたタ
イプの全メッセージを見ることになる為に受信側の負荷
を最小化するにはあまり役に立たない。 (2)そのネットワークに接続する全てのホストのネッ
トワークインターフェースカードが少なくともNMC個の
アドレスをサポートすると想定した場合、チャネルファ
クトリサーバが使用するアルゴリズムは、サーバがメッ
セージトラフィックに関してどの程度の量の情報を持っ
ているかに依存する。 (a)メッセージトラフィックに関して一切の追加デー
タが無い場合、ファクトリサーバは、NMC個のアドレス
全てを指定するまで各メッセージタイプに対して異なる
マルチキャストアドレスを割り付ける。異なるメッセー
ジタイプを、各々にNMC個のアドレス群からランダムに
選択したマルチキャストアドレスに割り付ける。もちろ
ん、1つ以上のメッセージタイプを同じマルチキャスト
アドレスに送る可能性が生じるとすぐに、サーバは、受
信者が多重分離化を適正に行うことが出来るように、そ
のメッセージの伝送中の表示にメッセージタイプ名を含
むように強制する。 (b)チャネルファクトリサーバが各マルチキャストア
ドレスを申し込む(購読する)ようにすることも可能で
ある。サーバは、最初に上述の例と同様にN MC個のタイ
プを割り付け終えるまでマルチキャストアドレスの割付
を行う。各チャネル上にて単位時間あたりに受信したメ
ッセージの計数を行う。既に割り付けたマルチキャスト
アドレスの1つに新たなタイプを割り付けるべき必要が
生じた場合、サーバはそれを現在最低のメッセージ率を
持つアドレスへと割り付ける。 (c)パブリッシャにメッセージタイプ(固有階層が表
現したもの)間の関係を認識するように強制する場合、
マルチキャストアドレスの割り付けは、マルチキャスト
アドレスを共用するように関連タイプを系統化する。
【0105】図2はパブリッシュ/サブスクライブ機構
上でのメッセージ伝送をフィルタリングする為の方法
を、パブリッシュ/サブスクライブ装置のプログラミン
グを行う為の第一レベルロジックのフローチャートとし
て描いたものである。
上でのメッセージ伝送をフィルタリングする為の方法
を、パブリッシュ/サブスクライブ装置のプログラミン
グを行う為の第一レベルロジックのフローチャートとし
て描いたものである。
【0106】ステップS1においては、パブリッシャ
と、サブスクライバと、パブリッシャ・サブスクライバ
間に伸びる通信経路及びフィルタ機構とを設ける。通信
経路は、パブリッシュ/サブスクライブメッセージイン
スタンスをパブリッシャからサブスクライバへと搬送す
る働きを持つ。ステップ1を実行した後、手順はステッ
プS2へと進む。
と、サブスクライバと、パブリッシャ・サブスクライバ
間に伸びる通信経路及びフィルタ機構とを設ける。通信
経路は、パブリッシュ/サブスクライブメッセージイン
スタンスをパブリッシャからサブスクライバへと搬送す
る働きを持つ。ステップ1を実行した後、手順はステッ
プS2へと進む。
【0107】ステップS2においては、パブリッシャに
現在サブスクライバが申し込んでいる(購読している)
メッセージタイプを通知する。ステップS2の後、手順
はステップS3へと進む。
現在サブスクライバが申し込んでいる(購読している)
メッセージタイプを通知する。ステップS2の後、手順
はステップS3へと進む。
【0108】ステップS3においては、サブスクライバ
を持つメッセージタイプを、そのメッセージタイプに割
り付けたマルチキャストアドレスへと伝送する。ステッ
プS3を実行すると、手順は次にステップS4へと進
む。
を持つメッセージタイプを、そのメッセージタイプに割
り付けたマルチキャストアドレスへと伝送する。ステッ
プS3を実行すると、手順は次にステップS4へと進
む。
【0109】ステップS4においては、伝送したメッセ
ージタイプの中からサブスクライバが指定した属性を持
つメッセージを受信する。ステップS4を実行すると、
手順は終了する。
ージタイプの中からサブスクライバが指定した属性を持
つメッセージを受信する。ステップS4を実行すると、
手順は終了する。
【0110】本発明の構造的及び方法的特長を法に準拠
して幾分特定的な言語で記述してきた。しかしながら、
本発明は本願に図示及び記載した特定の特徴に限られる
ものではないことは言うまでもなく、本願に開示の手段
は本発明実施の推奨する形態に基づいて説明したもので
ある。従って、本発明はいずれの形式又は変更形態にあ
っても同等の教理に基づき適正に解釈した請求項の範囲
に入るものである。
して幾分特定的な言語で記述してきた。しかしながら、
本発明は本願に図示及び記載した特定の特徴に限られる
ものではないことは言うまでもなく、本願に開示の手段
は本発明実施の推奨する形態に基づいて説明したもので
ある。従って、本発明はいずれの形式又は変更形態にあ
っても同等の教理に基づき適正に解釈した請求項の範囲
に入るものである。
【図1】クライアント/サーバネットワーク環境に実現
した本発明の一実施例に基づくパブリッシュ/サブスク
ライブシステム中のパブリッシュ/サブスクライブ(P
S)機構を描いた概略ブロック図である。
した本発明の一実施例に基づくパブリッシュ/サブスク
ライブシステム中のパブリッシュ/サブスクライブ(P
S)機構を描いた概略ブロック図である。
【図2】本願出願人の発明を実施する1つの方法を説明
した論理フローチャートである。
した論理フローチャートである。
10 パブリッシュ/サブスクライブ装置 11 通信経路 20 フィルタ機構 22 ネットワーク 24 第一のフィルタ(プレフィルタ) 26 第二のフィルタ(ポストフィルタ) 28 パブリッシャ(パブリッシャクライアント) 32 サブスクライバ(サブスクライバクライアント) 38 パブリッシュ/サブスクライブ機構 72 第一のフィルタの回路 74 第二のフィルタの回路
───────────────────────────────────────────────────── フロントページの続き (71)出願人 399117121 395 Page Mill Road P alo Alto,California U.S.A. (72)発明者 ジェレミー・ホランド アメリカ合衆国カリフォルニア州 94024, ロス・アルトス・ヒルズ スパルディン グ・アベニュー 24041 (72)発明者 グラハム・エス・ポロック アメリカ合衆国カリフォルニア州 95014, カッパーティーノ,ソレンソン・アベニュ ー 18400 #131
Claims (20)
- 【請求項1】 メッセージインスタンスを生成するよう
に作動するパブリッシャと、 前記メッセージインスタンスを受信するように作動する
サブスクライバと、 パブリッシュ/サブスクライブ機構を有する通信経路
と、 前記パブリッシャが提供する第一のフィルタと、前記サ
ブスクライバが提供する第二のフィルタとを有するフィ
ルタ機構とを含んでなるパブリッシュ/サブスクライブ
装置。 - 【請求項2】 前記第一のフィルタは、前記サブスクラ
イバが申し込んだ要求したメッセージタイプを識別する
ように構成した回路を含み、これにより前記パブリッシ
ャが生成する前記メッセージインスタンスを識別したメ
ッセージタイプを含んでいる請求項1に記載のパブリッ
シュ/サブスクライブ装置。 - 【請求項3】 前記第二のフィルタが、属性値に関する
制約条件式と受信したメッセージとを照合する回路を含
み、前記通信経路が特定のメッセージタイプを特定のマ
ルチキャストアドレスに関連し、これにより特定のマル
チキャストアドレスを取得するサブスクライバがその特
定のメッセージを前記パブリッシュ/サブスクライブ機
構から受信する請求項1に記載のパブリッシュ/サブス
クライブ装置。 - 【請求項4】 前記サブスクライバがあるメッセージタ
イプを申し込み、前記パブリッシュ/サブスクライブ機
構がその申し込まれたメッセージタイプについて一致し
たメッセージインスタンスを前記パブリッシャから前記
サブスクライバへと配信する請求項1に記載のパブリッ
シュ/サブスクライブ装置。 - 【請求項5】 前記パブリッシュ/サブスクライブ機構
が、発行したメッセージを制約範囲内の値の集合と照合
する請求項4に記載のパブリッシュ/サブスクライブ装
置。 - 【請求項6】 前記サブスクライバが、メッセージタイ
プを申し込む請求項1に記載のパブリッシュ/サブスク
ライブ装置。 - 【請求項7】 前記サブスクライバが、1つのマルチキ
ャストアドレスを取得し、メッセージタイプを少なくと
も1つのマルチキャストアドレスにマッピングし、前記
サブスクライバが、前記1つのマルチキャストアドレス
にマッピングしたメッセージタイプの全てのメッセージ
を受信する請求項1に記載のパブリッシュ/サブスクラ
イブ装置。 - 【請求項8】 前記サブスクライバが前記パブリッシュ
/サブスクライブ機構に対して前記サブスクライバが受
信を望むメッセージタイプの表示を提出し、前記第一の
フィルタが前記所望のメッセージタイプの表示に基づい
て前記所望のメッセージタイプを少なくとも部分的に識
別する請求項1に記載のパブリッシュ/サブスクライブ
装置。 - 【請求項9】 前記パブリッシュ/サブスクライブ機構
が少なくとも1つのチャネルに区分化したメッセージ空
間を有し、前記少なくとも1つのチャネルを少なくとも
1つのメッセージタイプが識別し、特定のパブリッシュ
/サブスクライブメッセージインスタンスを識別するよ
うに作動する請求項1に記載のパブリッシュ/サブスク
ライブ装置。 - 【請求項10】 第一のフィルタを有し、前記第一のフ
ィルタを使用して申し込まれたメッセージタイプに対応
するチャネルインスタンスを生成するように作動してい
るパブリッシャクライアントと、 第二のフィルタを有し、あるメッセージタイプを申し込
み、前記対応するチャネルインスタンス内に含むメッセ
ージを受信するように作動しているサブスクライバクラ
イアントであって、前記第二のフィルタが前記メッセー
ジタイプの属性を利用して前記特定のメッセージタイプ
のインスタンスをフィルタリングするように作動してい
る前記サブスクライバクライアントと、 前記パブリッシャクライアントと前記サブスクライバク
ライアントとの間に伸びる通信経路と、 前記通信経路中にあり、サブスクライバクライアントが
第二のフィルタを介して受信用の前記対応するチャネル
インスタンスを受信するように作動しているパブリッシ
ュ/サブスクライブ機構とを含んでなるパブリッシュ/サ
ブスクライブ装置。 - 【請求項11】 前記サブスクライバが申し込んだメッ
セージタイプを識別するように前記第一のフィルタを構
成し、前記パブリッシャが生成する前記メッセージイン
スタンスが前記識別したメッセージタイプを含んでいる
請求項10に記載のパブリッシュ/サブスクライブ装
置。 - 【請求項12】 属性値に関する制約条件式と受信した
メッセージとを照合するように前記第二のフィルタを構
成し、特定のメッセージタイプを特定のマルチキャスト
アドレスに関連付けるように前記通信経路を構成し、特
定のマルチキャストアドレスを取得するサブスクライバ
が前記パブリッシュ/サブスクライブ機構から前記特定
のメッセージを受信する請求項11に記載のパブリッシ
ュ/サブスクライブ装置。 - 【請求項13】 前記第一のフィルタ及び第二のフィル
タが協働して二段フィルタ機構を提供している請求項1
0に記載のパブリッシュ/サブスクライブ装置。 - 【請求項14】 前記第一のフィルタがプレフィルタを
含み、前記第二のフィルタがポストフィルタを含んでい
る請求項11に記載のパブリッシュ/サブスクライブ装
置。 - 【請求項15】 前記通信経路がネットワークを含み、
前記ネットワークにわたって生じるデータ流量を最小化
するように、前記第一のフィルタ及び第二のフィルタが
データ源をネットワークに近接して備えているフィルタ
リングロジックを含んでいる請求項10に記載のパブリ
ッシュ/サブスクライブ装置。 - 【請求項16】 パブリッシャと、サブスクライバと、
前記パブリッシャと前記サブスクライバとの間に伸びる
通信経路と、フィルタ機構とを備えており、前記通信経
路が、パブリッシュ/サブスクライブメッセージインス
タンスの前記パブリッシャから前記サブスクライバへの
搬送するように作動するステップと、 前記サブスクライバが現在申し込んでいるメッセージタ
イプを前記パブリッシャに通知するステップと、 少なくとも1つのサブスクライバを持つメッセージタイ
プを伝送するステップと、 前記伝送したメッセージタイプの中から前記サブスクラ
イバが指定した属性を持つメッセージを受信するステッ
プとを含んでなるパブリッシュ/サブスクライブ機構に
わたるメッセージの伝送をフィルタリングする為の方
法。 - 【請求項17】 前記パブリッシャにメッセージタイプ
を通知するステップと前記メッセージタイプを伝送する
ステップとが、前記サブスクライバが申し込んでいるメ
ッセージタイプを識別することによりメッセージタイプ
のフィルタリングを行うステップを含み、これにより前
記パブリッシャが生成する前記メッセージインスタンス
が識別したメッセージタイプを含んでいる請求項16に
記載の方法。 - 【請求項18】 前記メッセージタイプを伝送するステ
ップと前記メッセージタイプを受信するステップとが、
特定のメッセージタイプをフィルタリングするステップ
を含み、これにより、ある特定のマルチキャストアドレ
スを取得するサブスクライバが前記パブリッシュ/サブ
スクライブ機構から前記特定のメッセージを受信してい
る請求項16に記載の方法。 - 【請求項19】 前記フィルタ機構が、前記パブリッシ
ャ側に設けたプレフィルタと前記サブスクライバ側に設
けたポストフィルタとを含んでいる請求項16に記載の
方法。 - 【請求項20】 前記サブスクライバによりあるタイプ
のメッセージを申し込むステップと、配信したメッセー
ジインスタンスを前記申し込んだメッセージタイプと照
合するステップと、発行したメッセージを制約範囲内の
値の集合と照合するステップとを更に含んでいる請求項
16に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US50733800A | 2000-02-18 | 2000-02-18 | |
US09/507338 | 2000-02-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001285287A true JP2001285287A (ja) | 2001-10-12 |
Family
ID=24018247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001042335A Pending JP2001285287A (ja) | 2000-02-18 | 2001-02-19 | プレフィルタリング及びポストフィルタリングを利用したパブリッシュ/サブスクライブ装置及び方法 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP1130845A3 (ja) |
JP (1) | JP2001285287A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005521950A (ja) * | 2002-03-28 | 2005-07-21 | プリキャッシュ インコーポレイテッド | 発行−購読ネットワークにおける、信頼性が高く効率的なコンテンツに基づくルーティング、クエリ及び応答のための方法及び装置 |
JP2007028117A (ja) * | 2005-07-15 | 2007-02-01 | Nec Corp | 情報交換システム、管理サーバ、端末装置及びそれらに用いるネットワーク負荷軽減方法 |
JP2008527519A (ja) * | 2005-01-10 | 2008-07-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ交換、収集、モニタリングおよび/または警告のためのメッセージ統合システム |
JP2010165172A (ja) * | 2009-01-15 | 2010-07-29 | Toshiba Corp | データ処理装置、データ処理方法及びプログラム |
JP2011501319A (ja) * | 2007-10-22 | 2011-01-06 | 本田技研工業株式会社 | 分散人型ロボットアーキテクチャにおける通信ミドルウェアの設計および評価 |
US8065372B2 (en) | 2003-03-06 | 2011-11-22 | International Business Machines Corporation | Publish/subscribe messaging |
JP2018531465A (ja) * | 2015-10-09 | 2018-10-25 | サトリ ワールドワイド リミテッド ライアビリティ カンパニー | メッセージデータを格納するためのシステム及び方法 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1454456B1 (en) * | 2001-12-11 | 2012-12-26 | BRITISH TELECOMMUNICATIONS public limited company | Event notification over a communications network |
US20030135553A1 (en) * | 2002-01-11 | 2003-07-17 | Ramesh Pendakur | Content-based caching and routing of content using subscription information from downstream nodes |
US6931405B2 (en) | 2002-04-15 | 2005-08-16 | Microsoft Corporation | Flexible subscription-based event notification |
US7197587B2 (en) * | 2002-06-19 | 2007-03-27 | Hewlett-Packard Development Company, L.P. | Systems-events core for monitorings system events for a cellular computer system within a parent computer system, system-event manager for monitoring system events for more than one cellular computer system, and related system and method |
US9124447B2 (en) | 2002-07-26 | 2015-09-01 | International Business Machines Corporation | Interactive client computer communication |
US7720910B2 (en) | 2002-07-26 | 2010-05-18 | International Business Machines Corporation | Interactive filtering electronic messages received from a publication/subscription service |
JP4007893B2 (ja) * | 2002-10-03 | 2007-11-14 | 株式会社エヌ・ティ・ティ・ドコモ | サーバ装置、プログラムおよび記録媒体 |
US8341646B2 (en) * | 2007-01-26 | 2012-12-25 | Sap Ag | Information system with event-enabled data objects |
EP2154639A1 (de) * | 2008-08-13 | 2010-02-17 | EADS Deutschland GmbH | Publikations-Abonnementsystem und Verfahren dazu |
US9026567B2 (en) | 2010-05-14 | 2015-05-05 | 2236008 Ontario Inc. | Publish-subscribe system |
US8706822B2 (en) | 2010-06-23 | 2014-04-22 | Microsoft Corporation | Delivering messages from message sources to subscribing recipients |
FR2962619B1 (fr) | 2010-07-09 | 2013-01-18 | Thales Sa | Dispositif d'acces a des donnees a bord d'un aeronef |
FR2970364B1 (fr) * | 2011-01-07 | 2013-01-18 | Thales Sa | Dispositif pour le partage de donnees entre un systeme de gestion du vol et un systeme d'aide au roulage d'un aeronef |
US9135037B1 (en) | 2011-01-13 | 2015-09-15 | Google Inc. | Virtual network protocol |
US9237087B1 (en) * | 2011-03-16 | 2016-01-12 | Google Inc. | Virtual machine name resolution |
US8533796B1 (en) | 2011-03-16 | 2013-09-10 | Google Inc. | Providing application programs with access to secured resources |
US8958293B1 (en) | 2011-12-06 | 2015-02-17 | Google Inc. | Transparent load-balancing for cloud computing services |
US8800009B1 (en) | 2011-12-30 | 2014-08-05 | Google Inc. | Virtual machine service access |
US8677449B1 (en) | 2012-03-19 | 2014-03-18 | Google Inc. | Exposing data to virtual machines |
US9870276B2 (en) * | 2013-09-26 | 2018-01-16 | Continental Automotive Gmbh | User message queue method for inter-process communication |
GB2520514A (en) * | 2013-11-22 | 2015-05-27 | Ibm | Message delivery in a messaging system |
GB2532490B (en) | 2014-11-21 | 2017-02-22 | Ibm | Publish/subscribe messaging using message structure |
CN113722125B (zh) * | 2021-09-08 | 2024-01-26 | 浙江中控技术股份有限公司 | 基于分布式订阅发布网络的数据处理方法及*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5557798A (en) * | 1989-07-27 | 1996-09-17 | Tibco, Inc. | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
US5893091A (en) * | 1997-04-11 | 1999-04-06 | Immediata Corporation | Multicasting with key words |
US6130924A (en) * | 1998-04-20 | 2000-10-10 | Sun Microsystems, Inc. | Method and apparatus for administrative control over data transmission using dynamic filtering in a multicast network |
-
2001
- 2001-02-15 EP EP01301338A patent/EP1130845A3/en not_active Withdrawn
- 2001-02-19 JP JP2001042335A patent/JP2001285287A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005521950A (ja) * | 2002-03-28 | 2005-07-21 | プリキャッシュ インコーポレイテッド | 発行−購読ネットワークにおける、信頼性が高く効率的なコンテンツに基づくルーティング、クエリ及び応答のための方法及び装置 |
JP2009163753A (ja) * | 2002-03-28 | 2009-07-23 | Precache Inc | 発行−購読ネットワークにおける、信頼性が高く効率的なコンテンツに基づくルーティング、クエリ及び応答のための方法及び装置 |
US8065372B2 (en) | 2003-03-06 | 2011-11-22 | International Business Machines Corporation | Publish/subscribe messaging |
JP2008527519A (ja) * | 2005-01-10 | 2008-07-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ交換、収集、モニタリングおよび/または警告のためのメッセージ統合システム |
US8306831B2 (en) | 2005-01-10 | 2012-11-06 | International Business Machines Corporation | Systems with message integration for data exchange, collection, monitoring and/or alerting |
JP2007028117A (ja) * | 2005-07-15 | 2007-02-01 | Nec Corp | 情報交換システム、管理サーバ、端末装置及びそれらに用いるネットワーク負荷軽減方法 |
JP2011501319A (ja) * | 2007-10-22 | 2011-01-06 | 本田技研工業株式会社 | 分散人型ロボットアーキテクチャにおける通信ミドルウェアの設計および評価 |
US9079306B2 (en) | 2007-10-22 | 2015-07-14 | Honda Motor Co., Ltd. | Evaluation of communication middleware in a distributed humanoid robot architecture |
JP2010165172A (ja) * | 2009-01-15 | 2010-07-29 | Toshiba Corp | データ処理装置、データ処理方法及びプログラム |
JP2018531465A (ja) * | 2015-10-09 | 2018-10-25 | サトリ ワールドワイド リミテッド ライアビリティ カンパニー | メッセージデータを格納するためのシステム及び方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1130845A3 (en) | 2001-09-12 |
EP1130845A2 (en) | 2001-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001285287A (ja) | プレフィルタリング及びポストフィルタリングを利用したパブリッシュ/サブスクライブ装置及び方法 | |
US10027564B2 (en) | Unobtrusive methods and systems for collecting information transmitted over a network | |
US7827565B2 (en) | Integration architecture for non-integrated tools | |
KR100703754B1 (ko) | 웹서비스 처리 장치 및 방법 | |
US7606818B2 (en) | Method and apparatus for aggregating change subscriptions and change notifications | |
US20080104258A1 (en) | System and method for dynamic data discovery in service oriented networks with peer-to-peer based communication | |
US8195633B2 (en) | Enabling interactive integration of network-accessible applications in a content aggregation framework | |
US8306979B2 (en) | Service query, selection, routing and propagation | |
US20080183721A1 (en) | Method of and system for providing performance information in a uddi system | |
US20070179948A1 (en) | Method and apparatus for disseminating new content notifications in peer-to-peer networks | |
JP2008211835A (ja) | ペイロード検査を介したパケット・ルーティング、及びパブリッシュ/サブスクライブ型ネットワークにおけるサブスクリプション処理 | |
US20110302272A1 (en) | Unobtrusive methods and systems for collecting information transmitted over a network | |
WO2018156980A1 (en) | Managing intelligent microservices in a data streaming ecosystem | |
Vinoski | Web services notifications | |
JP2001236310A (ja) | 多様的発行/引用の装置及び方法 | |
US7496925B2 (en) | Information kit objects for publish/subscribe integration architecture | |
US7496585B2 (en) | Methods and apparatus for discovering data providers satisfying provider queries | |
US7546608B2 (en) | Enhanced search expressions for information kit integration architecture | |
Nawaz et al. | Pushing Semantic Web service profiles to subscribers for efficient service discovery | |
Li et al. | Deploying mobile agents in distributed data mining | |
JP2000268014A (ja) | 分散システム制御方法及びその実施装置 | |
Byrom et al. | SANTA-G: an instrument monitoring framework for the Grid | |
Nawaz et al. | Semantic web service registry for efficient discovery of OWL-S based web services | |
KR20040039288A (ko) | 게시-가입 네트워크에서의 페이로드 조사 및 가입 처리를통한 패킷 라우팅 | |
Guerrero | Looking into the past: Enhancing mobile publish/subscribe middleware |