JP5160134B2 - 配送保証されるコンテンツベースのパブリッシュ/サブスクライブ・システムの動的アクセス制御 - Google Patents

配送保証されるコンテンツベースのパブリッシュ/サブスクライブ・システムの動的アクセス制御 Download PDF

Info

Publication number
JP5160134B2
JP5160134B2 JP2007103883A JP2007103883A JP5160134B2 JP 5160134 B2 JP5160134 B2 JP 5160134B2 JP 2007103883 A JP2007103883 A JP 2007103883A JP 2007103883 A JP2007103883 A JP 2007103883A JP 5160134 B2 JP5160134 B2 JP 5160134B2
Authority
JP
Japan
Prior art keywords
access control
message
changes
client
subscription
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.)
Expired - Fee Related
Application number
JP2007103883A
Other languages
English (en)
Other versions
JP2007287148A (ja
Inventor
ユアンユアン、チャオ
ダニエル、チャールズ、スターマン
スメール、クメール、ボーラ
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 JP2007287148A publication Critical patent/JP2007287148A/ja
Application granted granted Critical
Publication of JP5160134B2 publication Critical patent/JP5160134B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Description

本出願は、一般的に分散メッセージング・システムに関係し、さらに具体的には当該システムのアクセス制御技術に関係する。
非同期分散アプリケーションと併用する分散メッセージング・システムで採用される一般に普及したアプローチは、コンテンツベースのパブリッシュ/サブスクライブ(pub/sub)メッセージング・アプローチである。コンテンツベースのpub/subシステムは、メッセージを発行する発行側クライアント・デバイスまたはマシン(「発行者」)と、そのサブスクリプションで指定される述語/ブール型フィルタと一致するメッセージへの関心を登録する購読側クライアント・デバイスまたはマシン(「購読者」)を含む。このシステムは発行されるメッセージを関心を寄せる購読者全員に確実にタイムリーに配送し、典型的にはこのためのルーティング・ブローカ・デバイスまたはマシン(「ブローカ」)を含む。こうして、コンテンツベースのpub/subパラダイムにおいては、発行者がそのメッセージを受け取る購読者を知る必要がなく、また購読者も受け取るメッセージの発信者を知る必要がないため、情報提供者(すなわち、発行者)と消費者(すなわち、購読者)が切り離される。
多くのアプリケーションでは、コンテンツベースのpub/subシステムはしっかりしたサービス保証(高信頼性、順序のある、ギャップレス配送など)、多数のクライアントをサポートする高いスケーラビリティ、高いサービス可用性、高い性能/処理能力を提供することが求められる。以上の目標を達成するために、典型的なシステムは、(1)サブスクリプション情報を発行者に向けて伝搬、統合する、(2)サブスクリプション情報を使って、コンテンツのフィルタリングを行い、ネットワーク帯域幅の有効利用と良好なスケーラビリティを達成する、(3)サービス可用性を高めるために冗長ネットワーク・パスを利用する。
pub/subシステムの商業的な採用の妨げとなりうる重要な割に軽視されることの多い問題が、アプリケーションに提供されるセキュリティ保証である。特に、アプリケーションは配布されるときにイベントの機密性、完全性、真正性を確保したいと考える。信頼できる発信元だけにイベントの発行を認め、許可された購読者もしくは料金を支払う購読者だけに情報/イベントを配信することを求められることが多い。利用に基づいた購読者への請求決済を可能にする会計および監査についての問題が密接に関係している。
米国特許出願番号第10/177,474号「Gapless Delivery and Durable Subscriptions in a Content−Based Publish/Subscribe System」2002年6月21日出願 Y.Zhao(Y.チャオ)ら、A General Algorithmic Model for Subscription Propagation and Content−based Routing with Delivery Guarantees、RC23669、IBM Research 2005年 Y.Zhao(Y.チャオ)ら、Subscription Propagation in Highly−available Publish/Subscribe Middleware、 ACM/IFIP/USENIX、第5回国際ミドルウェア会議2005年
pub/subシステムにおけるこのアクセス制御の問題は、アクセス制御ポリシーの変更という問題でさらに複雑になる。アクセス制御ポリシーの変更に伴うひとつの問題が、変更を行ったときに発生するpub/subサービスの中断である。
従って、アクセス制御ポリシーの変更に効率的かつ効果的に役割を担うことのできる分散メッセージング・システムのアクセス制御技術の改良が必要である。
本発明の原理は、コンテンツベースのパブリッシュ/サブスクライブ・システムなどの分散メッセージング・システムに改良されたアクセス制御技術を提供する。
例えば、本発明のある側面では、メッセージを複数のブローカを介して発行側クライアントから購読側クライアントに配送するコンテンツベースのパブリッシュ/サブスクライブ・システムにおけるアクセス制御を提供する方法は、次のステップ/操作を含む。アクセス制御ポリシーのひとつまたは複数の変更を指定する。アクセス制御バージョン識別子をひとつまたは複数の変更に対応付ける。ひとつまたは複数の変更を該ひとつまたは複数の変更により影響を受ける発行側クライアントもしくは購読側クライアントに対応する複数のブローカのうちひとつまたは複数のブローカに送る。ひとつまたは複数の変更に対応するアクセス制御バージョン識別子を複数のブローカの各々に送る。ある実施例では、アクセス制御バージョン識別子は数字である。
既存のアクセス制御ポリシーのひとつまたは複数の変更の各々は、それにアクセス制御バージョン識別子を対応付けるとともに、バッチとしてシステムに格納および実装され、ひとつまたは複数の変更を、システムの既存のアクセス制御ポリシーのひとつまたは複数の過去の変更とは一意的に識別できるようにしてもよい。
複数のブローカの各々は、発行者ホスティング・ブローカ(PHB)、購読者ホスティング・ブローカ(SHB)、および中間ブローカ(IB)のうちの少なくとも1つでよく、上記指定する、対応付ける、および送る各ステップをセキュリティ・アドミニストレータに従って行う。
セキュリティ・アドミニストレータはひとつまたは複数の変更および対応のアクセス制御バージョン識別子を、ひとつまたは複数の変更により影響を受ける発行側クライアントもしくは購読側クライアントに対応付けられたPHBおよびSHBに送ることができる。
SHBは、ひとつまたは複数の変更を受け取った際、その対象となるクライアントに関し制限付きのサブスクリプションを計算できる。それからSHBは制限付きのサブスクリプションをアクセス制御番号とともにひとつまたは複数の他のブローカに送ることができる。
PHBは、ひとつまたは複数の変更を受け取った際、ひとつまたは複数の変更をアクセス制御ポリシーに適用して、最新の発行権およびアクセス制御バージョン識別子を取得できる。また、PHBは、発行されるデータ・メッセージを受け取った際、最新の発行権をそのメッセージに適用できる。それからPHBはデータ・メッセージをアクセス制御番号とともにひとつまたは複数の他のブローカに送ることができる。
IBは制御バージョン・ベクトルを維持できる。
本発明の別の側面において、発行側クライアントから購読側クライアントにメッセージ配送を提供するコンテンツベースのパブリッシュ/サブスクライブ・システムは、ネットワークを介して互いに作動的に連結される複数のブローカを含み、ブローカの各々は発行者ホスティング・ブローカ(PHB)、購読者ホスティング・ブローカ(SHB)、および中間ブローカ(IB)のうちの少なくとも1つとして構成される。システムはまた、複数のブローカの少なくとも一部に作動的に連結され、システム内の少なくとも1つのアクセス制御ポリシーを格納および更新するように構成される少なくとも1つのアドミニストレータを含む。複数のブローカの少なくとも一部および少なくとも1つのアドミニストレータは、ひとつまたは複数のメッセージを挟んで送るアクセス制御バージョン識別子を含むことによって、システム内のアクセス制御ポリシーの変更を実施するように構成し、そこではアクセス制御識別子は有効なアクセス制御ポリシーを一意的に識別して、アクセス制御ポリシーの変更をアクセス制御ポリシーの変更により影響を受けるひとつまたは複数のプリンシパルに対応付けられる発行側クライアントおよび購読側クライアントに確定的かつ統一的に適用する。
有利なことに、システムはそれによって、少なくとも1つのブローカのクラッシュおよび再始動がその少なくとも1つのブローカの非永続状態を失ったときでも、またネットワーク内の少なくとも1つのリンクが途切れ、その接続を再確立し、少なくとも1つのリンクで送信される少なくとも1つのメッセージを脱落、重複、または順序を間違って配送させてしまうときでも、システムの同じプリンシパルの代わりに確定的かつ統一的なアクセス制御のセマンティクス(semantics)を購読者全員に保証できる。すなわち、システム内の別のサブネットワークで接続されているときでも、またそのサブネットワークが別の通信遅延およびネットワークもしくはルーティング・ブローカの障害を受けるときでも、同じプリンシパルの代わりに別の購読者がまったく同じシーケンスのメッセージを受け取ることになる(サブスクリプション・フィルタ差分を法として)。
複数のブローカは、PHB以外のブローカでアクセス制御状態の永続ストレージの必要をなくすように構成できる。PHBは最新のアクセス制御ポリシーに対応する制御バージョン識別子を永続的に格納するように構成できる。PHBは、メッセージが発行された時点で有効であったアクセス制御ポリシーに対応するアクセス制御バージョン識別子を永続的に格納するように構成できる。PHBとSHBの間には多重パスが存在してもよく、別のパス上のIBは同一のアクセス制御状態を維持する必要はない。IBの少なくとも一部は、アクセス制御ルールを維持するのではなく、1つのSHBごとに1つのバージョンとして、アクセス制御バージョン・ベクトルを維持できる。各SHBはそれに接続されるプリンシパルに関して最新のアクセス制御ルールを維持できる。
SHBはそれに接続されるプリンシパルに関するアクセス制御ルールの変更を購読依頼できる。IBはプリンシパルによってアクセス制御ルールの変更をフィルタリングしてもよい。高信頼性配送を使用して、アクセス制御ルールの変更をそれを必要とするSHBが確実に受け取るようにする。新たなプリンシパルからの接続を受け入れるSHBは要求応答プロトコルを使用して、そのプリンシパルのアクセス制御ルールを初期化できる。
SHBはサブスクリプションと最新のアクセス制御ルールとの論理積を求め、論理積を求めたサブスクリプションの制御バージョンをそのバージョンの制御ルールを使って割り当ておよび維持する。SHBはそれで残ったサブスクリプションをそのアクセス制御バージョン識別子とともに上流のIBに伝搬できる。IBはアクセス制御バージョン識別子とともにサブスクリプション状態を維持できる。
PHBはデータ・メッセージにアクセス制御バージョン識別子を含むことができる。IBはサブスクリプション状態を使って、データ・メッセージのアクセス制御バージョン識別子がサブスクリプション状態のアクセス制御バージョン番号以下の場合メッセージをフィルタリングし、そうでなければメッセージを下流に送る。SHBはメッセージがメッセージの制御バージョンと一致する論理積を求めたサブスクリプションの制御バージョン識別子が等しいかを点検して、購読アクセス制御ルールを施行する。
本発明の上記並びにその他の目的、特徴、および利点は、添付の図面と関連して以下のその例示的な実施例の詳細な説明を読むと明らかになるであろう。
本発明で代替接続構成も考えられるが、本発明の例示的な実施例を、好ましくはまとめて接続し、1つのオーバーレイ・ネットワークを形成する複数のブローカデバイスもしくはブローカを含む例示的なコンテンツベースのパブリッシュ/サブスクライブ・システムと合わせて以下説明していく。複数のブローカは発行者から購読者に送られるひとつまたは複数のメッセージを、少なくとも部分的に、これらメッセージのコンテンツおよび購読者が要求するフィルタリング述語、もしくはこれらメッセージのコンテンツまたは購読者が要求するフィルタリング述語に基づいて、配送する役割を担う。
ブローカは一定の機能に従いグループ分けできる。例えば、ひとつまたは複数のブローカは発行者のホスティング専用とするのが好ましいであろう。これらブローカを本明細書では発行者ホスティング・ブローカまたはPHBと呼ぶ。また、ひとつまたは複数のブローカを購読者のホスティング専用とするのが好ましいであろう。これらブローカを本明細書では購読者ホスティング・ブローカまたはSHBと呼ぶ。PHBとSHBの間には、ルーティングおよびフィルタリング、もしくはルーティングまたはフィリタリングを含む任意の数の中間ホップが存在してもよい。当該ホップのブローカを本明細書では中間ブローカまたはIBと呼ぶ。説明しやすくするために、異なるブローカの各々が個々別々のエンティティであると仮定する。ただし、実際の実施においては、どのブローカもひとつまたは複数のPHB、SHB、およびIBの機能を行うことができる。
本発明のアクセス制御サービス・モデルおよびアクセス制御ポリシー配布およびメッセージ配送プロトコルの例示的な実施例を説明する前に、図1、図2、および図3の状況で当該モデルおよびプロトコルを実装できる例示的なコンテンツベースのpub/subシステムを説明する。当該コンテンツベースのpub/subシステムは、特許文献1に詳細に述べられている。本発明のアクセス制御技術はこの例示的なシステムに限定されるものではないことは理解されるべきである。
図1は、本発明のある側面に従って形成した代表的なブローカのネットワークを含むコンテンツベースのpub/subシステムの少なくとも一部を図示する。発行者101a、101b、101c、および101dは、それぞれ対応するクライアント接続107a、107b、107cおよび107dを通して、特定のPHB102aおよび102bとの接続を確立することが好ましい。クライアント接続は一般的に、例えば赤外線、無線周波数、衛星、マイクロ波等などのワイヤレス通信リンク、および例えば電話、ケーブル、光ファイバー等などの専用通信接続を含め、伝送される情報を伝えるあらゆる種類の通信媒体でよい。好ましくは、クライアント接続の各々は、転送制御プロトコル/インターネット・プロトコル(TCP/IP)ソケット接続など信頼性の高い先入れ先出し(FIFO)方式の接続であるが、それだけに限定されない。
購読者105a、105b、105c、および105dは、それぞれ対応するクライアント接続108a、108b、108c、および108dを通して、SHB104aおよび104bとの接続を独立して確立するのが好ましい。クライアント接続108a、108b、108c、および108dは前述したクライアント接続107a、107b、107cおよび107dと両立するのが好ましい。PHB102a、102bおよびSHB104a、104bは、ブローカ間接続106a、106b、106c、106d、106e、106f、106g、106hを介して、IB103aおよび103bに接続してもよい。ネットワークがギャップレス配送プロトコルを採用し、接続障害とメッセージ並べ替えを許容できるとすると、ブローカ間接続にTCP/IPなどの高信頼性FIFOプロトコルを使う必要はなく、信頼性は劣るがより高速のプロトコルを使うことによってシステムの処理能力を高めると有利であろう。
図2に図示するように、各発行者、購読者、およびブローカ(150として示す)は、プロセッサ152、メモリ154、およびひとつまたは複数の入出力(I/O)デバイス156に従い実装できる。本明細書で使用する「プロセッサ」という用語は、例えば、中央処理装置(CPU)および他の処理回路(例、マイクロプロセッサ)、もしくは中央処理装置(CPU)または他の処理回路(例、マイクロプロセッサ)を含むもののようなあらゆる処理デバイスを含むことを意図していることを了解するべきである。加えて、「プロセッサ」という用語は1台の処理デバイスより多くの処理デバイスをいうこともあり、また1台の処理デバイスに関連する様々なエレメントを他の処理デバイスと共有することもあることは理解されるべきである。本明細書で使用する「メモリ」という用語は、例えば、ランダム・アクセス・メモリ(RAM)、読取専用メモリ(ROM)、固定ストレージ媒体(例、ハードドライブ)、取り外し可能なストレージ媒体(例、ディスケット)、フラッシュメモリ等など、プロセッサもしくはCPUに関連するメモリおよびその他のコンピュータ読み取り可能媒体を含むことを意図している。また、本明細書で使用する「入出力デバイス」または「I/Oデバイス」という用語は、例えば、データをプロセッサに入力するひとつまたは複数の入力デバイス(例、キーボード、マウス、ネットワーク・インターフェース・カード等)およびプロセッサに関連する結果を提示するひとつまたは複数の出力デバイス(例、プリンタ、モニタ、ネットワーク・インターフェース・カード等)もしくはデータをプロセッサに入力するひとつまたは複数の入力デバイス(例、キーボード、マウス、ネットワーク・インターフェース・カード等)またはプロセッサに関連する結果を提示するひとつまたは複数の出力デバイス(例、プリンタ、モニタ、ネットワーク・インターフェース・カード等)を含めることを意図している。
従って、本明細書で詳しく説明するアプリケーション・プログラム、またはそのソフトウェア・コンポーネントは、本発明の方法論を実行する命令もしくはコードを含めて、ひとつまたは複数の関連するストレージ媒体(例、ROM、固定または取り外し可能なストレージ)に格納することができ、利用する準備ができたとき、プロセッサ152によって全体もしくは一部がロードされて(例、RAMに)実行される。このように、各発行者、購読者、およびブローカは、例えば、独立型コンピュータ、コンピュータ上でランするプロセスまたはアプリケーション、もしくはシステム故障による遅延を最小限にするために、複数のコンピュータ内で分散方式でランする冗長プロセスのクラスターのいずれでもよい。
ここで図3を参照すると、本発明のある側面に従い、ブローカ・ネットワークの実施を図示する代表的な情報フロー図が示されている。図から明らかなように、ブローカ・ネットワークの例示的な情報フロー図は、本明細書で情報ストリームと呼ぶ複数のノード(楕円形で示す)と、本明細書で変換と呼ぶエッジもしくはパス(発信元楕円形と宛先楕円形の間の矢印で示す)とを有する。情報フロー図はシステム・アドミニストレータが、静的にまたはサブスクリプション要求に応答するいずれかで構成できる。情報フロー図は、中間情報ストリーム212a、212b、212c、212d、212e、212f、212g、212h、212i、212j、212k、212l、212m、212n、212o、212p、212q、212r、212s、212t、212u、212v、212w、212x、212y、212z、212aa、212bb、212cc、212dd(集合的に、212)を介して、本明細書でパブエンドと呼ぶ発信元情報ストリーム211aおよび211bと、本明細書でサブエンドと呼ぶ宛先情報ストリーム216a、216b、216c、216d、216e、216f、216g、216h、216i、216j、216k、216l(集合的に、216)との間のパスを定義する。
好ましくは、各発行者はメッセージを1つだけのパブエンドに配送するが、各購読者は1つのSHB内でひとつまたは複数のサブエンドからメッセージを受け取る。各変換は、フィルタ変換214a、214b、214c、214d、214e、214f、214g、214h、214i、214j、214k、214l、214m、214n、214o、214p、214q、214r、214s、214t、214u、214v、214w、214x、214y、214z(集合的に、214)、リンク変換213a、213b、213c、213d、213e、213f、213g、213h、213i、213j、213k、213l、213m、213n、213o、213p、213q、213r、213s(集合的に、213)、またはマージ結合変換215a、215bのいずれかである。所定の変換を通過しながら情報を遅延、消失、または並べ替えできるが、実際にはこれはリンク上でしか起こらないのが一般的である。
フィルタはコンテンツ・フィルタを表す述語を含むのが好ましい。例えば、フィルタ214eは「場所=NY」と一致するコンテンツをもつメッセージしか通過しないと指定する。対応する述語をもたないフィルタ(例、214iおよび214j)はすべてのコンテンツを通過するが、これは本質的にはリンクに匹敵する。
各ブローカ202a、202b、203a、203b、204a、204bは、それぞれ対応するタイマまたはクロック222a、222b、222c、222d、222e、222fをもつことが好ましい。本発明の方法論ではこれらクロックが実時間と同期する必要はないが、これらクロックが互いに少なくともほぼ正確、または同期していれば、性能は高まるであろう。クロックをあるブローカに対応付けることに加えて、PHB202aおよび202bはそれぞれ対応する安定したストレージ媒体221aおよび221bを必要とする。安定したストレージとは、例えば、RAM、固定ストレージ、取り外し可能なストレージ等など、不揮発性メモリを含むことを意図している。残りのブローカ(例、SHBおよびIB)203a、203b、204a、204bは安定したストレージである必要はなく、代わりに「ソフト」状態を使える。PHBにだけ安定したストレージがあればいいということと、SHBおよびIBがソフト状態を利用できるということにより、本ブローカ・ネットワークは、ストア・アンド・フォワード技術を採用する他のプロトコルと有利に区別される。これら従来のプロトコルは安定したストレージを一般的にネットワーク内の各ブローカに対応付ける必要がある。
パブエンドから所定のクライアントのサブエンドまでのパスは、クライアントが受け取るのを保証されるのはどのメッセージかを決定する。具体的には、各パスはパスに沿った各フィルタに対応する述語の論理積(すなわち、論理AND)を満たすメッセージを伝搬する。所定のノードに対応するパスが複数ある場合、そのノードはパスフィルタの論理和(すなわち、論理OR)を満たすメッセージを受け取る。
単なる例として、サブエンド216aおよび216bに対応するクライアントC1を考えてみる。サブエンド216aとパブエンドの間のパス、すなわち214o、213i、214e、213a、および214aに基づき、C1はパブエンド211aに発行され、フィルタ「トピック=1」&「場所=NY」&「p>3」を満たすメッセージを受け取り、ここで「&」の記号は論理AND演算を表す。同様に、サブエンド216bとパブエンドの間のパス、すなわち214q、213m、214g、213f、および214dに基づき、C1はパブエンド211bに発行され、フィルタ「トピック=1」&「場所=NY」&「p>3」を満たすメッセージを受け取る。
各サブエンドは順序のあるストリームであることが好ましい。そのため、クライアントC1はパブエンド211aからの関係あるメッセージのすべて(すなわち、所定のパスに対応するフィルタを満たすコンテンツをもつメッセージ)を発行された順番で受け取り、パブエンド211bからの関係あるメッセージのすべてを発行された順番で受け取る。ただし、パブエンド211aに発行されたメッセージとパブエンド211bに発行される別のメッセージとの間に、順序は必要ない。すなわち、発行時とは無関係で、パブエンド211aからの所定のメッセージがパブエンド211bからの所定のメッセージの前に到着するか、または後に到着するかは一般的に予測できないことを意味する。これは、コンテンツ選択(例、トピック=1&場所=NY&p>3)および発行者順序のあるクライアント・サブスクリプションの例である。
対して、1つのサブエンド216eに対応するクライアントC2を考えてみる。図3に示すように、サブエンド216eとパブエンドの間のパス、すなわち214s、213k、214i、215a、213b、214b、213e、および214cは、パブエンド211aからのフィルタ「トピック=2」とパブエンド211bからのフィルタ「トピック=2」のマージ結合であり、さらに「i=1」によってフィルタリングされる。クライアントC2は対応するサブエンドが1つであるため、1つの順序のあるストリームを受け取る。これは、コンテンツ選択(例、トピック=2&i=1)と総合順序のあるクライアント・サブスクリプションの例である。クライアントC3は同じコンテンツ選択(例、トピック=2&i=1)と総合順序のあるサブスクリプションであるため、クライアントC2と同じ順序で同じメッセージを受け取ることに留意する。本ブローカ・ネットワークのこの統一的な総合順序特性は、マージ結合変換が確定的であり、同一の入力情報ストリームを受け取る2つのマージ結合変換は同じマージ結合出力情報ストリームを生むことの結果である。
図3の例示的な情報フロー図は、本pub/subシステムのギャップレスな配送方法論を指す。要約すると、好ましくは各情報ストリームは各特定の時間間隔またはチックの間に発生したトラックを維持する。このため、各情報ストリームはデータ・メッセージ(または沈黙)とそのチックについてどの程度熱心に知りたいのかを表す関心度を有することが好ましい。知識は下流(すなわち、矢印の方向)に流れる一方、関心度は上流(すなわち、矢印の方向とは逆の方向)に流れる。従って、サブエンドは、知識チックのギャップレス・シーケンスが延長していることを検出したときにメッセージを配送する。他方でパブエンドはメッセージを安定したストレージにログする。安定したストレージに維持されるこれらログはその後、他のブローカが所定のチック中に何が起こったかの知識をもたない場合に、関心度のアービタ(arbiter)として利用できる。
例示的なコンテンツベースのpub/subシステムを上記説明してきたところで、ここで本発明のアクセス制御の原理を例示的に説明していく。
本発明の原理は、金融市場における電子取引などのミッション・クリティカルなアプリケーションでしばしば求められるように、パブリッシュ/サブスクライブ・システムが新しいアクセス制御ポリシーを成立させるためにシャットダウンをする必要なく機能し続けることを実現する。
従って、本発明の例示的な実施例は、コンテンツベースのフィルタリングおよびルーティング、高信頼性配送並びに冗長ルートを備えるpub/subシステムの動的アクセス制御を提供する。この目的のために、コンテンツベースのpub/subシステムにおける動的アクセス制御の確定的サービス・モデルを提供する。このようなサービス・モデルの確定的な保証により、イベントの機密性に正確な制御が可能となり、クライアントの場所、ネットワーク遅延、および障害などの問題とは独立する。アドミニストレータは、発行されたメッセージ・ストリームでアクセス制御の変更が起こった正確な時点を知る。このモデルによる高信頼性配送のセマンティクスが明確に定義され、すなわち同じプリンシパルの2以上の購読者は、購読者がどこに接続されていても、プリンシパルのアクセス制御ポリシーが変更されたときに同じメッセージのセットを受け取る。
本明細書で使用する「プリンシパル」とは一般的にあるエンティティをいうことは理解される。当該エンティティは認証技術によって能動的に特定され、検証できる。プリンシパルにはシステムのリソースまたはサービスを使用する一定の権利が与えられる。システムの実際のクライアントはプリンシパルの代理として行為して、システムのリソース/サービスを使用できる。システムがクライアントにサービスを提供しようとする場合、システムはクライアントが接続するプリンシパルに与えられる権利に従ってサービスを提供する。プリンシパルの種類の例は以下説明する。
本発明の例示的な実施例は、この確定的なサービス・モデルをサポートするアルゴリズムも提供する。このアルゴリズムを使って、アクセス制御の変更を、その影響を受けるプリンシパルが接続している全ブローカに統一的に実施する。システムは、システムの効率と変更を成立させる時宜性を犠牲にしうるこれらブローカからのコンセンサスを得る必要はない。このアルゴリズムは、(1)アクセス制御の施行をネットワーク全体に配信でき、イベント発信元に密接に行える点で効率的であり、かつ(2)パス間のコンセンサスを得る必要なく、ルーティングがどの冗長パスでも選べることによって可用性が高い。
A.サービス・モデル
本セクションでは、動的アクセス制御の確定的なサービス・モデルを例示的に説明する。より具体的には、動的アクセス制御に関わる様々なエンティティとその役割、アクセス制御ルールを指定するためのコンテンツベース形態、およびアクセス制御変更の明確な開始点を説明する。
例示的なサービス・モデルでは、アクセス制御に関わるエンティティは以下の2種類がある。
(1)セキュリティ・アドミニストレータ。セキュリティ・アドミニストレータとは、システム内のアクセス制御の最終認証者である。セキュリティ・アドミニストレータはクライアント・プリンシパル(以下に定義する)のアクセス権およびその現在のアクセス権に何らかの変更をすべきかどうか、もしくはクライアント・プリンシパルのアクセス権またはその現在のアクセス権に何らかの変更をすべきかどうかを決める(クライアント・サービス契約などの外部要因に基づき)。セキュリティ・アドミニストレータはその決定を管理インターフェースからシステムに命令する。
大型のシステムでは、セキュリティ・アドミニストレータが複数いる場合もある。各アドミニストレータが行う変更が重複したクライアントの組に影響することがあるため、システムはトランザクションごとに直列化可能に変更を受け入れる。このように例示的に説明し、解説を簡潔にするために、セキュリティ・アドミニストレータを1シーケンスのポリシーの変更を開始する1つのエンティティとして考える。別のアドミニストレータからのポリシーの変更が順序付けられ、変更の矛盾は解決されたと想定する。
(2)クライアント・プリンシパル。例示的なpub/subシステムのクライアントは、クライアントが接続したときに認証によりシステムが決定/検証するプリンシパルに対応付けられている。本明細書で例示的に使用する「クライアント」という用語は、発行者(すなわち、発行側クライアント)または購読者(すなわち、購読側クライアント)のいずれかをいうことは理解されるべきである。実際には、クライアントは発行者および購読者の両者として行為できる。すなわち、クライアントはシステムに接続し、メッセージを発行する、またはメッセージを購読依頼して受け取ることができる。クライアントが接続し、メッセージを発行および購読依頼/受け取ることのできる能力は、そのプリンシパルのアクセス権によって規制される。例えば、クライアントが株価情報、金融ニュース、およびIBMコーポレーションのレポートを受け取ることに関心をもっているが、そのプリンシパルが株価情報へのアクセス権しかもたない場合、クライアントは要求してもニュースおよびレポートは一切受け取れない。
例示的なシステムのアクセス制御ルールはプリンシパルに対応付けられる。同じプリンシパルの複数のクライアントはシステム内の別の場所で接続できる。
例示的なシステムのプリンシパルには、(1)グループ、および(2)個人の2種類がある。グループ・プリンシパルとは個人または再帰的に他のグループ・プリンシパルの集合体である。グループ・プリンシパルに与えられるアクセス権は自動的にそのグループの全メンバー、および再帰的にメンバー・グループのメンバーに与えられる。
プリンシパルのアクセス権は、接続する権利、メッセージを発行する権利、およびメッセージを購読依頼して受け取る権利を含む。これら3つの権利のアクセス制御ルールを指定するためにコンテンツベースの形態を採用する。アクセス制御ルールは以下の3要素1組の形をとる。
[プリンシパル、アクセス形態、コンテンツ・フィルタ]
当該形態のルールは、プリンシパルがシステムに接続し、コンテンツ・フィルタと一致するメッセージを発行または購読依頼する権利をもつことを指定する。発行および購読依頼ルールは3要素1組ではないフィルタを採用することができるが、接続ルールは真または偽で指定して、接続する権利があるかどうかを示す。例えば、プリンシパル「John Doe」に接続および株価情報を購読依頼することを認めるルールは以下のように指定される。
[John Doe、接続、真]
[John Doe、購読依頼、タイプ='株価']
アクセス制御ルールは、すべてのルールがプリンシパルになにをすることを認めるかを指定する肯定形で内部で維持される。プリンシパルにすることを認めないことを指定する否定形はセキュリティ・アドミニストレータへの便宜として提供され、コンテンツ・フィルタの否定をとることによって内部で肯定形に変換される。
アクセス制御ルールの統制の下、クライアントはそのプリンシパルの発行ルールと一致するメッセージの発行を認められ、そのサブスクリプション・フィルタおよびそのプリンシパルの購読ルールの両方と一致するメッセージの受け取りを認められる。このことから、システムは、(1)許可された発信元だけにしかメッセージの発行を認めないことにより情報の真正性、(2)許可された購読者だけにメッセージを配信することにより情報の機密性、(3)ただ廃棄するつもりで大量のメッセージを要求する悪意の購読者により開始されるサービス妨害(DoS:denial of service)攻撃に対する保護の提供を可能にする。このような大量のメッセージはネットワークの渋滞を招いて、システムが他のクライアントにサービスを提供する能力を減じることになりかねない。
グループ・プリンシパルおよび個人プリンシパルは同じ形態の接続、発行、および購読依頼アクセス権を共有する。加えて、グループ・プリンシパルにはメンバーリストと呼ぶ新しいタイプのルールが存在する。例えば、Jane SmithとJames Brownを含み、株価情報、ニュース、およびレポート全部を購読する権利をもつプレミアム購読者グループは、以下のアクセス制御ルールをもつ。
[プレミアム・グループ、メンバー・リスト、{Jane Smith、James Brown}]
[プレミアム・グループ、購読依頼、タイプ='株価'またはタイプ='ニュース'またはタイプ='レポート']
グループ内の全メンバーには自動的にそのグループのアクセス権が与えられる。このため、個人プリンシパルのアクセス権は個人の権利と個人が所属する全部のグループ・プリンシパルの権利の論理和となる。そのため、Jane SmithとJames Brownは二人に与えられる他のアクセス権に加えて、株価情報、ニュースおよびレポートのすべてにアクセス権をもつことになる。
図4は例示的なサービス・モデルの例を図示する。
例示的な確定的サービス・モデルはアクセス制御の変更の明確な開始点を提供する。このモデルでは、アクセス制御ルール/変更301はセキュリティ・アドミニストレータ302が管理コンソールで開始し、ACL DB(アクセス制御データベース)と呼ばれる永続ストレージ303に格納される。セキュリティ・アドミニストレータはいつでも、ひとつまたは複数のプリンシパルに関係する多数の変更を指定できる。これら変更は原子的に施行しなければならないバッチと考えられる。セキュリティ・アドミニストレータが変更の各バッチを確認した後、変更はブローカ・ネットワーク304に伝搬する。
発行者(図示せず)が接続するブローカはひとつまたは複数のメッセージ・ストリームをホストする。各ストリームはひとつまたは複数の発行者が発行したメッセージを順番に有する。例えば、図4に示すように、ブローカ305はメッセージ・ストリーム306をホストする。
これらストリームの各々について、ブローカはセキュリティ・アドミニストレータが指定した新たなアクセス制御ルールを成立させる開始点を選ぶ。開始点は、(1)連続する変更のバッチが後の開始点を求める、および(2)開始点以降のメッセージが旧ルールに従って配送されることのないよう開始点が十分遅くなるように選ぶ。これはストリームで新たに発行されたメッセージを開始点とすることによって達成できる。開始点情報は将来の問い合わせおよび参照のためにセキュリティ・アドミニストレータに送り戻される。新しいルールは、プリンシパルのクライアントがどこに接続していようとも、開始点以降のすべてのメッセージにシステム全体で統一的に施行される。
図4には、購読者が購読依頼したひとつまたは複数のメッセージ308を受け取る購読者307も図示され、その例を以下詳しく説明する。
アクセス制御ポリシーの変更の効果を、プリンシパルJohn Doeの購読権が3段階で変更された例を使って説明する。(1)John Doeは株価情報だけに購読アクセスをもつ販促グループのメンバーとなった。(2)John Doeはプレミアム購読者となり、その後3種類の金融情報すべて(株価情報、金融ニュース、レポート)への購読アクセスが与えられた。(3)John Doeのプレミアム・サブスクリプションが終了し、その結果金融ニュースとレポートの購読権を失った。
図4に関連し、プリンシパルJohn Doeの購読者はシステムに接続して、記事=「ibm」のサブスクリプションを要求したと仮定する。このサービス・モデルでは、John Doeのアクセス権が変更するたびに、システムは各メッセージ・ストリームの明確な開始点を提供して、(1)開始点以前のメッセージは、そのメッセージが変更前にサブスクリプション・フィルタとアクセス権フィルタを満たす場合かつその場合に限ってクライアントに配送される、および(2)開始点以降のメッセージは、そのメッセージが変更以降のサブスクリプション・フィルタとアクセス権フィルタの両方を満たす場合かつその場合に限ってクライアントに配送される。図4の例のストリームでは、選ばれた開始点が第1アクセス変更についてはメッセージ100、第2アクセス変更についてはメッセージ103および第3変更についてはメッセージ106である場合、クライアントに配送されるメッセージは100、103、104、107、109となる。範囲103・・・105では株価情報以外だけが配送されることに留意する。メッセージ・ストリームが1より多いシステムの場合、この活動がすべてのストリームに起こり、それぞれその個々の開始点をもつ。
ブローカのネットワークが採用するルーティング・トポロジーは、各ノードが冗長で互いに交換可能に動作できる複数の仮想ブローカを含むノードの全域ツリーの抽象的なトポロジーモデルである。ツリーはループなしルーティングのタスクを単純にする非周期構造である。冗長ブローカを備えるツリーのノードは可用性が高い。
図1の状況で上記説明した例示的なpub/subシステム(本発明の例示的なサービス・モデルを実装できる)から、発行者が接続するブローカを発行者ホスティング・ブローカ(PHB)と呼び、購読者が接続するブローカを購読者ホスティング・ブローカ(SHB)と呼んだことを思い出していただきたい。単純にするために、1つのPHBの観点からルーティングを論じる。抽象的なネットワークは、クライアントをホストするあらゆる物理的なブローカが葉ノードで仮想ブローカを実装するように構成できる。そのため、このモデルでは、SHBはツリーの葉ノードにしか存在しない。また、PHBは1つだけあり、ツリーの根に存在する。上流/下流の方向は根に向かう/根から離れる。1クライアントは1ブローカに接続するため、各葉ノードは1つのブローカを含む。ブローカをツリーのノードにグループ分けし、ブローカ間のリンクをツリーのエッジにグループ分けすることによって、冗長パスのグラフをこのモデルのトポロジーに変換できるため、このトポロジー・モデルは大きな範囲の実際のトポロジーを表すことができる。
アクセス制御のある例示的な実施とは、PHBおよび中間ブローカがクライアントのサブスクリプションと一致する発行されたすべてのメッセージをSHBに送り、SHBがクライアントのサブスクリプションだけでなくそのアクセス権にも一致するメッセージを配送することによってアクセス制御を施行する。このようなソリューションは完璧に正しい実施となるが、後で廃棄するメッセージを送る帯域幅がかなりの無駄となりうる。
サブスクリプション伝搬とは、PHBおよび中間ブローカにサブスクリプション述語に関する知識を取得してフィルタリングを行うことを要求する代わりに、SHBに送る無駄なメッセージを少なくすることになりうる最適化である。クライアントのアクセス権をそのサブスクリプションとともに伝搬することによって、通信コストの更なる節約が達成できる。
前述した確定的サービス保証を提供することは、冗長パスをもつネットワークで展開されるコンテンツベースのシステムでは大変なことである。コンテンツベースのルーティングのために、発行者割り当てシーケンス番号などの従来の方法ではギャップを検出することはできない。各購読者が完全に一意的なシーケンスのメッセージを配送することを求めるかもしれないからである。そのため、コンテンツベースのシステムの信頼性はルーティングパス上のブローカにギャップ検出を支援することが必要である。
代替ルートの冗長ブローカが互いに異なるサブスクリプションおよびアクセス制御情報をもちうるため、複数のパス、通信非同期、および障害がサブスクリプションおよびアクセス制御情報の伝搬を複雑にする。同じ発行ストリームからのメッセージがそれらのブローカを経由している場合、異なるサブスクリプション・フィルタとアクセス制御フィルタのセットに一致する。その結果、購読者に配送されるメッセージ・シーケンスにギャップが現れる可能性がある。
サブスクリプション伝搬の例示的なプロトコルが、非特許文献1および非特許文献2に開示されており、その開示を参照により本明細書に組み込む。これらプロトコルは高信頼性配送を保全し、システムの可用性と負荷分散のために冗長パスのどこでも自由なルーティングの選択を可能にする。さらに、当該プロトコルにより、メッセージが占有する永続ストレージをシステムが取り戻せるように、開始点以降のメッセージがまったく確認応答されていなければ、発行されたメッセージ・ストリーム上のサブスクリプションの高信頼性配送の開始点をストリームのどの時点としても選べることとなる。
以下、当該高信頼性配送およびサブスクリプション伝搬プロトコルを、pub/subクライアントに動的アクセス制御の確定的なセマンティクスを施行する効率的かつ可用性の高い分散プロトコルを構築する基本要素として使用する。ドメインベースの信頼モデルを採用する。同じドメイン内のすべてのブローカは互いに信頼する。互いに信頼しないブローカは別のドメインに入れることとし、ドメイン間の通信はその信頼レベルに応じてアクセス制御ルールを割り当てることによって統制する。単純にするために、1つの信頼されたドメインにおけるプロトコルを論じる。多くの商業ケースでは、pub/subシステムをアドミニストレータの完全な管理の下にある管理された環境で展開するため、これは実用的である。1ドメインを1発行側/購読側クライアントとして扱い、プリンシパルをそのドメインに割り当てることによって、この概念を複数の信頼されたドメインに敷衍することができる。信頼されていないドメインを通してシステムに接続されるクライアントは、ドメインの権利とそれ自身のアクセス権の両方を満たすメッセージにしかアクセスできない。
B.アクセス制御ポリシー配布およびメッセージ配送プロトコル
図5は、メッセージ配送の確定的サービス保証を提供するアクセス制御ポリシー配布およびメッセージ配送プロトコルを図示する。概説したように、プロトコルは、アクセス制御情報を関係あるプリンシパルをホストするブローカに配信するステップ(401)、発行者の発行権を満たすメッセージだけを受け入れることによって発行活動を制限するステップ(402)、その購読権を使ってクライアントのサブスクリプションを制限するステップ(403)、制限付きのサブスクリプションを伝搬し、そのためクライアントのサブスクリプションとアクセス権の両方でコンテンツのフィルタリングを行うことによって、ルーティング・ブローカでアクセス制御を施行するステップ(404)、SHBで最終的なアクセス制御の施行をするステップ(405)を備える。これらプロトコルの各側面を図1から図4に図示したコンポーネントを再び参照しながら以下説明する。
前述したように、アクセス制御ポリシーはACL DBと呼ばれる永続ストレージで維持する。セキュリティ・アドミニストレータはトランザクション・バッチでACL DBのポリシー変更を行う。アクセス制御ポリシーは制御バージョンに対応付けられ、制御バージョンは整数カウンタである。各トランザクション・バッチはACL DBを新しい制御バージョンにする。この新しいアクセス制御ルールに新バージョン番号を割り当てる。旧アクセス制御ルールがいくつかのメッセージでまだ有効なこともあるため、ACL DBはバージョンの異なるアクセス制御ルールが入り混じった状態で含まれる。全体を送らないように、ACL DBはアクセス制御の新バージョンを増分変更として発行することにより配信する。
各PHB/SHBは現在接続されているクライアントの最新の制御ルールのキャッシュを維持する。新しいプリンシパルのクライアントが接続する場合、ブローカはそのプリンシパルの初期バージョンのアクセス制御ルールを、ACL DBに要求/応答プロトコルを使用して検索する。ブローカは接続されるプリンシパルの将来のアクセス制御の変更を受け取るためのサブスクリプションも確立する。サブスクリプション伝搬および高信頼性配送サービスは、ブローカが接続されるプリンシパルの初期バージョンのアクセスルールを取得した後のすべてのアクセス制御変更を確実に受け取るようにする。
PHBが新バージョンのアクセス制御ルールを受け取った場合、PHBはそのキャッシュを更新する。PHBは新バージョンの開始点を発行されることになる次のメッセージとして選ぶ。新たに発行されるメッセージは、有効な現在の発行権と一致する場合に限り受け入れる。加えて、新たに発行されるメッセージは、有効なアクセス制御バージョンを保持しながらシステムに送信される。ここで、購読権をどのように施行するかを説明する。
コンテンツベースのルーティングが純粋にクライアントのサブスクリプションだけに基づき、アクセス制御がクライアントが接続するブローカでのみ施行されるシステムにおいては、ルーティング・ブローカはそのアクセス権ではなくクライアントのサブスクリプションだけに一致するメッセージを送ることができる。これらメッセージは後で単に廃棄されるだけで、システムの帯域幅の無駄になる。
アクセス制御情報を、クライアントのサブスクリプションに加えてメッセージのルーティングに影響を与えることのできる別の種類の情報として扱うことができる。このため、当初のクライアント・サブスクリプション・フィルタをネットワークの残りに伝搬する代わりに、SHBはクライアント・サブスクリプション・フィルタとSHBキャッシュにある最新バージョンのコンテンツベースのアクセスルールとの論理積である制限付き形態のフィルタを伝搬する。アクセス制御ルールが変更されると、SHBは影響を受ける全クライアント/プリンシパルの制限付きのサブスクリプションを新バージョンのルールで再計算する。その結果得られるサブスクリプションを制御バージョンと一緒に原子的に上流に伝搬する。上流のルーティング・ブローカはサブスクリプションが制限されているかどうかを知る必要なくサブスクリプションを操作する。上流のルーティング・ブローカはその下流で各SHBの制御バージョンのベクトルを維持するだけでよい。
制限付きフィルタを伝搬するとき、コンテンツベースのルーティングはクライアント・サブスクリプション・フィルタとアクセス制御ルールの論理積に基づく。このことから、ルーティング・ブローカはアクセス制御およびSHBに参加できる。
前述したように、システム内のメッセージはメッセージに有効な制御バージョンを保持する。下流のメッセージをルーティングする場合、ルーティング・ブローカはこのバージョンのメッセージとその下流に位置するSHBのその制御バージョン・ベクトルの部分ベクトルとを比較する。メッセージは、下流からの制限付きのサブスクリプションと一致せず、かつブローカの制御バージョン・ベクトルの部分ベクトルのすべてのエレメントがメッセージのもの以上の場合に限って除外される。ブローカが十分な大きさの制御バージョン・ベクトルをもたない場合、ブローカは一応メッセージを下流に送る。例えば、ブローカbは、メッセージがたとえ無駄になっても、すなわちサブスクリプション・フィルタと下流のブローカを根とするサブネットワークで接続されるクライアントの購読権が一致しなくても、とにかく下流のブローカにメッセージを送る。ブローカbが十分な大きさの制御バージョン・ベクトルをもつ場合、ブローカbは、メッセージがブローカbが下流のブローカb’を根とするサブネットワークのために維持するサブスクリプション・フィルタと一致しない場合、メッセージを除外して、下流のブローカb’にメッセージを送るのを差し控えることができる。
アクセス制御の最終的な施行者は、中間ルーティング・ブローカがクライアントのアクセス権と一致しないメッセージを一応送ることがあるため、SHBである。
SHBはまず、メッセージが要求するバージョンのアクセス制御ルールを受け取ったかどうかを調べる。受け取っていない場合、SHBはそのアクセス制御ルールのバージョンが到着するまでメッセージの処理を遅らせる。SHBが制御バージョンのルールを受け取ったら、SHBはそのメッセージと一致する各制限付きのサブスクリプションを調べる。制限付きのサブスクリプションがメッセージと同じ制御バージョンの場合、メッセージは購読側クライアントに配送される。そうでなければ、メッセージはクライアントに配送されない。
制御バージョンを使うことで、メッセージ配送アルゴリズムがサービス・モデルの明確な開始点の特徴を実施できるだけでなく、システムがより非同期し耐故障性をもつことにもなる。制御バージョン番号を付けてアクセス制御の変更を配信することで、システム内の各ブローカは、全ブローカに一斉配信するトランザクション・セッションを利用する場合に、遅いまたはクラッシュしたブローカを待たずに、非同期して進めることができる。ルーティング・ツリー・ノードの大半のブローカに障害が起こった場合でも、新しいアクセス制御ルールを成立させることができ、残りのブローカはその冗長ピアから同意を取得する必要なくアクセス制御の施行に参加できる。ブローカが復旧したら、その制御バージョンが最新のものでなくても、それでもブローカはアイドル状態に留まっていたはずのネットワーク容量のその部分を利用して、メッセージのルーティングに参加できる。
唯一接続されるプリンシパルの制御ルール・キャッシュを利用することで、プリンシパルの数が多い大規模な環境でもシステムを基準化させられる。SHBはローカルに接続されるプリンシパルのアクセス制御ルールだけを知ればよい。
ここで図6および図7を参照すると、本発明のある実施例に従い、アクセス制御ポリシー配布およびメッセージ配送プロトコルを実装するコンテンツベースのパブリッシュ/サブスクライブ・システムの一部が示されている。図示する例では、単純にするために1つのセキュリティ・アドミニストレータ、1つのPHB、1つのIB、1つのSHBのみが示されていることは理解されるべきである。このため、実際のシステムでは複数の当該コンポーネントを含む。また、PHBは直接、すなわちIBを介さなくてもSHBに連結できる。さらに、セキュリティ・アドミニストレータ、PHB、SHB、およびIBは説明するステップを行うコンピューティング・デバイスをいうことは理解されるべきである。当該コンピューティング・デバイスは図2に図示するように構成して、説明するステップ/操作をプロセッサおよびメモリの構成により実行できるようにする。
図示するように、この例では、セキュリティ・アドミニストレータ502は上記説明したようにアクセス制御ポリシー変更(すなわち、アクセス制御ポリシー変更のバッチ)を含むメッセージを、割り当てられた制御バージョン番号とともに適切なブローカに送る。適切なブローカとは、ポリシーの変更により影響を受けるプリンシパルの代わりにクライアントをホストするあらゆるブローカとなろう。この例では、適切なブローカはPHB(504)およびSHB1(508)として示される。
上記説明したように、また図6に図示するように、アクセス制御ルールが変更されると、SHBは影響を受ける全クライアント/プリンシパルの制限付きのサブスクリプションを新バージョンのルールで再計算する。その結果得られるサブスクリプションは制御バージョンと一緒に原子的に上流に伝搬される。上流のルーティング・ブローカ(この例ではIB506)はサブスクリプションが制限されているかどうかを知る必要なくサブスクリプションを操作する。上流のルーティング・ブローカはその下流で各SHBの制御バージョンのベクトルを維持するだけでよい。
また、上記説明したように、また図7に図示するように、PHBが新バージョンのアクセス制御ルールを受け取った際、PHBはそのキャッシュを更新する。PHBは新バージョンの開始点を発行されることになる新たなメッセージとして選ぶ。新たに発行されるメッセージは有効なアクセス制御バージョンを保持しながらシステムにPHB(504)によって送信される。
ここで図8から図12を参照すると、フローチャートはアクセス制御ポリシー配布およびメッセージ配送プロトコルで、SHB(図8および図9)、PHB(ステップ6Cおよび6D)、およびIB(図12)がとるステップを表す。これらフローチャートは上記説明したアクセス制御ポリシー配布およびメッセージ配送プロトコルの様々な側面の例を表す。
図8は、新バージョンのアクセス制御に関する情報を受け取った際にSHBが行う処理を表す。
ステップ602で、SHBはアクセス制御ルールとバージョン番号を受け取る。
ステップ604で、SHBはそのアクセス制御ポリシーのキャッシュを更新する。
ステップ606で、SHBはクライアント・サブスクリプション・フィルタとアクセス制御ポリシー・フィルタの論理積を計算する。
ステップ608で、SHBは上流のブローカに論理積を求めたサブスクリプションと使用する制御ルールのバージョン番号を伝搬する。
ステップ610で、SHBはこの最新のACLの変更と同じ制御バージョン番号をもつバッファに入れられたメッセージがあるかどうかを点検する。
ステップ610で「いいえ」の場合、SHBはそれに対してそれ以上なにも行わない(ブロック612)。
ステップ610で「はい」の場合、SHBは、これらメッセージの各々について、論理積を求めたサブスクリプションのどれかと一致するかどうかを点検する(ステップ614)。
ステップ614で「いいえ」の場合、SHBはメッセージを廃棄する(ステップ616)。
ステップ614で「はい」の場合、SHBは、このような論理積を求めたサブスクリプションについて、その制御バージョン番号がメッセージのものと同じかどうかを点検する(ステップ618)。
ステップ618で「いいえ」の場合、SHBはメッセージを廃棄する(ステップ616)。
ステップ618で「はい」の場合、SHBはメッセージを論理積を求めたサブスクリプションの購読者に送る(ステップ620)。
図9は、新たなクライアントのサブスクリプションを受け取った際にSHBが行う処理を表す。
ステップ622で、SHBはクライアント・サブスクリプション・フィルタを受け取る。
ステップ624で、SHBはアクセス制御ポリシーのキャッシュからクライアントのプリンシパルの最新のアクセス購読ルールを検索する。
ステップ626で、SHBはクライアント・サブスクリプション・フィルタとアクセス制御ポリシー・フィルタの論理積を計算する。
ステップ628で、SHBは上流のブローカに論理積を求めたサブスクリプションと使用する制御ルールのバージョン番号を伝搬する。
図10は、新バージョンのアクセス制御に関する情報を受け取った際PHBが行う処理を表す。
ステップ630で、PHBはアクセス制御ルールとバージョン番号を受け取る。
ステップ632で、PHBはそのアクセス制御ポリシーのキャッシュを更新する。
図11は、新たなデータ・メッセージを受け取った際PHBが行う処理を表す。
ステップ634で、PHBはデータ・メッセージを受け取る。
ステップ636で、PHBはメッセージが発行者のプリンシパルの最新の発行権と一致するかどうかを点検する。
ステップ636で「いいえ」の場合、PHBはメッセージを廃棄する(ステップ638)。
ステップ636で「はい」の場合、PHBはメッセージの最新バージョン番号を使って制御バージョン番号を設定し、メッセージを送る(ステップ640)。
図12は、データ・メッセージを受け取った際にIBが行う処理を表す。
ステップ642で、IBはデータ・メッセージを受け取る。
ステップ644で、IBはメッセージの制御バージョンがIBの制御バージョン・ベクトルのエレメント以下であるかどうかを点検する。
ステップ644で「はい」の場合、IBはメッセージが下流からのサブスクリプションと一致するかどうかを点検する(ステップ646)。
ステップ646で「いいえ」の場合、IBはメッセージを廃棄する(ステップ648)。
ステップ644で「いいえ」の場合もしくはステップ646で「はい」の場合、IBはメッセージを下流に送る(ステップ650)。
上記の処理ステップは例示的な性質のものであることを意図しており、そのため本発明のアクセス制御ポリシー配布およびメッセージ配送プロトコルはこれより少ないもしくは多い処理ステップ、他の処理ステップ、および上記処理ステップを別の順番で行うことができ、もしくはこれより少ないもしくは多い処理ステップ、他の処理ステップ、または上記処理ステップを別の順番で行うことができることは理解されるべきである。
有利なことに、本明細書で説明したように、本発明の例示的な実施例によるサービス・モデルはシステム内の同じプリンシパルの代わりに全購読者に対して確定的かつ統一的なアクセス制御のセマンティクスを実質的に保証できる。このことは、ひとつまたは複数のブローカのクラッシュおよび再始動のためにひとつまたは複数のブローカに有効なアクセス制御ポリシーの非永続状態を失わせることになった場合でも当てはまる。また、ネットワーク内の少なくとも1つのリンクが途切れ、その接続が再確立されたことにより、そのリンクを通して送信される少なくとも1つのメッセージが脱落、重複、または順序を間違って配送されてしまう場合でさえも当てはまる。すなわち、同じプリンシパルの代わりに様々な購読者は、システム内の別のサブネットワークで接続されている場合でも、またそのサブネットワークが別の通信遅延およびネットワークもしくはルーティング・ブローカの障害を受ける場合であっても、まったく同じシーケンスのメッセージを受け取る(サブスクリプション・フィルタ差分を法として)。
また、このようなサービス・モデルで、コンテンツベースのパブリッシュ/サブスクライブ・システムに適用できるコンテンツベース形態を使って発行と購読両方のアクセス制御を施行できること、および単にSHN以外の全ブローカがアクセス制御ルールを維持する必要なく購読者のアクセス制御に参加できることを可能にする。
本明細書において、本発明の例示的な実施例を添付の図面を参照しながら説明してきたが、本発明はこのまったく同じ実施例に限定されるものではなく、本発明の範囲または精神を逸脱することなく当業者には他の様々な変更および修正が行えることは理解されるべきである。
本発明のある実施例による、代表的なブローカのネットワークを含むコンテンツベースのパブリッシュ/サブスクライブ・システムの少なくとも一部を図示するブロック図である。 本発明のある実施例による、コンテンツベースのパブリッシュ/サブスクライブ・システムのひとつまたは複数のコンポーネントのコンピューティング・アーキテクチャを図示するブロック図である。 本発明のある実施例による、ブローカ・ネットワークの実施を図示する情報フロー図である。 本発明のある実施例による、サービス・モデルの代表的な実施を図示するブロック図である。 本発明のある実施例による、アクセス制御ポリシー配布およびメッセージ配送プロトコルの概要を図示するフロー図である。 本発明のある実施例による、アクセス制御ポリシー配布およびメッセージ配送プロトコルを実施するコンテンツベースのパブリッシュ/サブスクライブ・システムの一部を図示するブロック図である。 本発明のある実施例による、アクセス制御ポリシー配布およびメッセージ配送プロトコルを実施するコンテンツベースのパブリッシュ/サブスクライブ・システムの一部を図示するブロック図である。 本発明のある実施例によるアクセス制御ポリシー配布およびメッセージ配送プロトコルを図示するフロー図である。 本発明のある実施例によるアクセス制御ポリシー配布およびメッセージ配送プロトコルを図示するフロー図である。 本発明のある実施例によるアクセス制御ポリシー配布およびメッセージ配送プロトコルを図示するフロー図である。 本発明のある実施例によるアクセス制御ポリシー配布およびメッセージ配送プロトコルを図示するフロー図である。 本発明のある実施例によるアクセス制御ポリシー配布およびメッセージ配送プロトコルを図示するフロー図である。

Claims (20)

  1. メッセージを発行側クライアントから購読側クライアントに複数のルーティング・ブローカ・マシンを介して配送するコンテンツベースのパブリッシュ・システムまたはサブスクライブ・システムのいずれかにおいてアクセス制御を提供する方法であって、
    アクセス制御ポリシーのひとつまたは複数の変更を指定するステップであって、前記アクセス制御ポリシーは、クライアントにメッセージを発行する権利、メッセージを購読依頼する権利(サブスクリプション・フィルタ)および受け取る権利(アクセス・フィルタ)を指定する、前記変更を指定するステップと、
    前記ひとつまたは複数の変更にアクセス制御バージョン識別子を対応付けるステップであって、前記アクセス制御バージョン識別子数字である、前記対応付けるステップと、
    前記ひとつまたは複数の変更を、前記ひとつまたは複数の変更により影響を受ける発行側クライアントまたは購読側クライアントに対応する前記複数のルーティング・ブローカ・マシンのうちひとつまたは複数のルーティング・ブローカ・マシンに送るステップと、
    前記複数のルーティング・ブローカ・マシンの各々に、前記ひとつまたは複数の変更に対応する前記アクセス制御バージョン識別子を送るステップと、
    を有する方法であって、
    前記変更を受け取った前記複数のルーティング・ブローカ・マシンは、ひとつまたは複数のメッセージ・ストリームをホストし、各ストリームはひとつまたは複数の発行側クライアントが発行したメッセージを順番に有し、
    これらストリームの各々について、ルーティング・ブローカ・マシンは新たなアクセス制御ルールを成立させる開始点を選び、
    (1)開始点以前のメッセージは、そのメッセージが、前記アクセス制御バージョン識別子に対応付けられた前記変更前にサブスクリプション・フィルタとアクセス・フィルタを満たす場合かつその場合に限ってクライアントに配送され、また(2)開始点以降のメッセージは、そのメッセージが前記アクセス制御バージョン識別子に対応付けられた前記変更以降のサブスクリプション・フィルタとアクセス・フィルタの両方を満たす場合にクライアントに配送される、
    方法。
  2. 既存のアクセス制御ポリシーの前記ひとつまたは複数の変更の各々を、前記アクセス制御バージョン識別子に対応付けて、バッチとしてシステムに格納および実装することによって、前記ひとつまたは複数の変更をシステムの前記既存のアクセス制御ポリシーのひとつまたは複数の過去の変更とは一意的に識別する、請求項1の方法。
  3. 前記複数のルーティング・ブローカ・マシンの各々が発行者ホスティング・ブローカ(PHB)、購読者ホスティング・ブローカ(SHB)、および中間ブローカ(IB)のうちの少なくとも1つであり、前記指定するステップ、前記対応付けるステップ、および前記送るステップをセキュリティ・アドミニストレータに従って行う、請求項1の方法。
  4. 前記セキュリティ・アドミニストレータが前記ひとつまたは複数の変更および前記対応するアクセス制御バージョン識別子を、前記ひとつまたは複数の変更により影響を受ける発行側クライアントまたは購読側クライアントに対応するPHBおよびSHBに送る、請求項3の方法。
  5. SHBが、前記ひとつまたは複数の変更を受け取った際、その影響を受けるクライアントの制限付きのサブスクリプションを計算する、請求項3の方法。
  6. 前記SHBが制限付きのサブスクリプションを前記アクセス制御番号とともにひとつまたは複数の他のルーティング・ブローカ・マシンに送る、請求項5の方法。
  7. PHBが、前記ひとつまたは複数の変更を受け取った際、前記ひとつまたは複数の変更を前記アクセス制御ポリシーに適用して、最新の発行権および前記アクセス制御バージョン識別子を取得するステップと、
    発行されるデータ・メッセージを受け取った際、前記最新の発行権を前記メッセージに適用するステップのうち、少なくとも1つのステップを行う、請求項3の方法。
  8. 前記PHBが前記データ・メッセージを前記アクセス制御番号とともにひとつまたは複数の他のルーティング・ブローカ・マシンに送る、請求項7の方法。
  9. IBが制御バージョン・ベクトルを維持する、請求項3の方法。
  10. メッセージを発行側クライアントから購読側クライアントに複数のルーティング・ブローカ・マシンを介して配送するコンテンツベースのパブリッシュ・システムまたはサブスクライブ・システムのいずれかにおいてアクセス制御を提供する装置であって、
    メモリと、
    メモリに連結されて、(i)アクセス制御ポリシーのひとつまたは複数の変更を指定し、前記アクセス制御ポリシーは、クライアントにメッセージを発行する権利、メッセージを購読依頼する権利(サブスクリプション・フィルタ)および受け取る権利(アクセス・フィルタ)を指定するものであり、(ii)前記ひとつまたは複数の変更にアクセス制御バージョン識別子を対応付け、前記アクセス制御バージョン識別子数字であり、(iii)前記ひとつまたは複数の変更を、前記ひとつまたは複数の変更により影響を受ける発行側クライアントまたは購読側クライアントに対応する前記複数のルーティング・ブローカ・マシンのうちのひとつまたは複数のルーティング・ブローカ・マシンに送る、および(iv)前記ひとつまたは複数の変更に対応付けられる前記アクセス制御バージョン識別子を前記複数のルーティング・ブローカ・マシンの各々に送る、ように作動する少なくとも1つのプロセッサと、を有する装置であって、
    前記変更を受け取った前記複数のルーティング・ブローカ・マシンは、ひとつまたは複数のメッセージ・ストリームをホストし、各ストリームはひとつまたは複数の発行側クライアントが発行したメッセージを順番に有し、
    これらストリームの各々について、ルーティング・ブローカ・マシンは新たなアクセス制御ルールを成立させる開始点を選び、
    (1)開始点以前のメッセージは、そのメッセージが、前記アクセス制御バージョン識別子に対応付けられた前記変更前にサブスクリプション・フィルタとアクセス・フィルタを満たす場合かつその場合に限ってクライアントに配送され、また(2)開始点以降のメッセージは、そのメッセージが前記アクセス制御バージョン識別子に対応付けられた前記変更以降のサブスクリプション・フィルタとアクセス・フィルタの両方を満たす場合にクライアントに配送される、
    装置。
  11. 発行側クライアントから購読側クライアントにメッセージ配送を提供するコンテンツベースのパブリッシュ/サブスクライブ・システムであって、
    ネットワークを介して互いに作動的に連結される複数のルーティング・ブローカ・マシンで、前記ルーティング・ブローカ・マシンの各々が発行者ホスティング・ブローカ(PHB)、購読者ホスティング・ブローカ(SHB)、および中間ブローカ(IB)のうち少なくとも1つとして構成される、前記複数のルーティング・ブローカ・マシンと、
    前記複数のルーティング・ブローカ・マシンの少なくとも一部に作動的に連結され、システム内の少なくとも1つのアクセス制御ポリシーを格納および更新するように構成される少なくとも1つのアドミニストレータとを有し、前記アクセス制御ポリシーは、クライアントにメッセージを発行する権利、メッセージを購読依頼する権利(サブスクリプション・フィルタ)および受け取る権利(アクセス・フィルタ)を指定するものであり、
    前記複数のルーティング・ブローカ・マシンの少なくとも一部、および少なくとも1つのアドミニストレータが、間にひとつまたは複数のメッセージを挟んで送るアクセス制御バージョン識別子を含むことによってシステム内に前記アクセス制御ポリシーの変更を実装するように構成され、前記アクセス制御バージョン識別子数字であり、
    前記アクセス制御識別子が有効な前記アクセス制御ポリシーを一意的に識別して、前記アクセス制御ポリシーの前記変更を、前記アクセス制御ポリシーの前記変更により影響を受けるひとつまたは複数のプリンシパルに対応する発行側クライアントおよび購読側クライアントに確定的かつ統一的に適用する、コンテンツベースのパブリッシュ/サブスクライブ・システムであって、
    前記変更を受け取った前記複数のルーティング・ブローカ・マシンは、ひとつまたは複数のメッセージ・ストリームをホストし、各ストリームはひとつまたは複数の発行側クライアントが発行したメッセージを順番に有し、
    これらストリームの各々について、ルーティング・ブローカ・マシンは新たなアクセス制御ルールを成立させる開始点を選び、
    (1)開始点以前のメッセージは、そのメッセージが、前記アクセス制御バージョン識別子に対応付けられた前記変更前にサブスクリプション・フィルタとアクセス・フィルタを満たす場合かつその場合に限ってクライアントに配送され、また(2)開始点以降のメッセージは、そのメッセージが前記アクセス制御バージョン識別子に対応付けられた前記変更以降のサブスクリプション・フィルタとアクセス・フィルタの両方を満たす場合にクライアントに配送される、
    パブリッシュ/サブスクライブ・システム。
  12. 前記複数のルーティング・ブローカ・マシンが、前記PHB以外のルーティング・ブローカ・マシンでアクセス制御状態の永続ストレージの必要性をなくすように構成される、請求項11のシステム。
  13. 少なくとも1つのPHBが、最新のアクセス制御ポリシーに対応付ける前記制御バージョン識別子を永続的に格納するように構成される、請求項11のシステム。
  14. 少なくとも1つのPHBが、メッセージが発行された時点で有効であったアクセス制御ポリシーに対応付けるアクセス制御バージョン識別子を永続的に格納するように構成される、請求項13のシステム。
  15. PHBとSHBの間に多重パスが存在し、別のパスにあるIBが同一のアクセス制御状態を維持する必要がない、請求項11のシステム。
  16. 前記IBの少なくとも一部が、アクセス制御ルールを維持するのではなく、1つのSHBにつき1バージョンで、アクセス制御バージョン・ベクトルを維持する、請求項11のシステム。
  17. 各SHBがそれに接続されるプリンシパルの最新のアクセス制御ルールを維持する、請求項11のシステム。
  18. (i)SHBがそれに接続されるプリンシパルのアクセス制御ルールの変更を購読依頼し、(ii)IBがプリンシパルごとにアクセス制御ルールの変更をフィルタリングし、(iii)高信頼性配送を使用して、アクセス制御ルールの変更がそれを必要とする前記SHBで確実に受け取れるようにし、(iv)新しいプリンシパルからの接続を受け入れるSHBが要求応答プロトコルを使用して、当該プリンシパルの前記アクセス制御ルールを初期化する、請求項11のシステム。
  19. (i)SHBがサブスクリプションと前記最新のアクセス制御ルールとの論理積を求めて、前記論理積を求めたサブスクリプションの前記制御バージョンを前記制御ルールの前記バージョンを使用して割り当て、維持し、(ii)前記SHBが前記アクセス制御バージョン識別子をもつ求めたサブスクリプションを上流のIBに伝搬し、および(iii)IBがサブスクリプション状態をアクセス制御バージョン識別子で維持する、請求項18のシステム。
  20. (i)PHBがデータ・メッセージに前記アクセス制御バージョン識別子を含め、(ii)IBがサブスクリプション状態を使用して、前記データ・メッセージに含めた前記アクセス制御バージョン識別子が前記サブスクリプション状態の前記アクセス制御バージョン番号以下である場合に前記メッセージをフィルタリングし、そうでなければ前記メッセージを下流に送り、(iii)SHBがメッセージと一致する論理積を求めたサブスクリプションの制御バージョン識別子とメッセージの制御バージョンが等しいかを点検して、購読アクセス制御ルールを施行する、請求項19のシステム。
JP2007103883A 2006-04-12 2007-04-11 配送保証されるコンテンツベースのパブリッシュ/サブスクライブ・システムの動的アクセス制御 Expired - Fee Related JP5160134B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/402685 2006-04-12
US11/402,685 US20070245018A1 (en) 2006-04-12 2006-04-12 Dynamic access control in a content-based publish/subscribe system with delivery guarantees

Publications (2)

Publication Number Publication Date
JP2007287148A JP2007287148A (ja) 2007-11-01
JP5160134B2 true JP5160134B2 (ja) 2013-03-13

Family

ID=38606140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007103883A Expired - Fee Related JP5160134B2 (ja) 2006-04-12 2007-04-11 配送保証されるコンテンツベースのパブリッシュ/サブスクライブ・システムの動的アクセス制御

Country Status (3)

Country Link
US (2) US20070245018A1 (ja)
JP (1) JP5160134B2 (ja)
CN (1) CN101056190A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017094774A1 (ja) 2015-12-04 2017-06-08 株式会社リコー 制御システム、通信制御方法、及びプログラム
WO2017170176A1 (ja) 2016-03-28 2017-10-05 株式会社リコー 情報送信システム、情報送信方法、及びプログラム
US11663015B2 (en) 2020-07-23 2023-05-30 International Business Machines Corporation Tracking asynchronous event processing

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676580B2 (en) 2003-03-27 2010-03-09 Microsoft Corporation Message delivery with configurable assurances and features between two endpoints
GB0621409D0 (en) * 2006-10-27 2006-12-06 Ibm Access control within a publish/subscribe system
US8200836B2 (en) * 2007-11-16 2012-06-12 Microsoft Corporation Durable exactly once message delivery at scale
US8214847B2 (en) 2007-11-16 2012-07-03 Microsoft Corporation Distributed messaging system with configurable assurances
CN101668031B (zh) * 2008-09-02 2013-10-16 阿里巴巴集团控股有限公司 一种消息处理方法及***
US20100057910A1 (en) * 2008-09-02 2010-03-04 International Business Machines Corporation Concept for trusting client-side storage and distribution of asynchronous includes in an application server environment
JP5212066B2 (ja) * 2008-12-11 2013-06-19 日本電気株式会社 配信システム、購読端末、仲介端末、配信方法およびプログラム
EP2404259A1 (en) * 2009-03-04 2012-01-11 Koninklijke Philips Electronics N.V. Specifying an access control policy
US20110035594A1 (en) * 2009-07-27 2011-02-10 Barbara Ann Fox Apparatus and method for providing elective message tagging
US8489674B2 (en) * 2010-03-11 2013-07-16 Yahoo! Inc. Distributed publish/subscribe system
US9537747B2 (en) 2010-06-11 2017-01-03 International Business Machines Corporation Publish/subscribe overlay network control system
CA2825662C (en) * 2011-01-27 2020-07-07 Google Inc. Content access control in social network
US9237068B2 (en) * 2011-01-30 2016-01-12 Blue Coat Systems, Inc. System and method for distributing heuristics to network intermediary devices
US8843580B2 (en) 2011-02-20 2014-09-23 International Business Machines Corporation Criteria-based message publication control and feedback in a publish/subscribe messaging environment
US8793322B2 (en) 2011-02-20 2014-07-29 International Business Machines Corporation Failure-controlled message publication and feedback in a publish/subscribe messaging environment
US8615580B2 (en) 2011-02-20 2013-12-24 International Business Machines Corporation Message publication feedback in a publish/subscribe messaging environment
US9372739B2 (en) 2011-04-20 2016-06-21 International Business Machines Corporation Monitoring of subscriber message processing in a publish/subscribe messaging environment
WO2012144919A2 (en) * 2011-04-20 2012-10-26 Ibt Internet Bussiness Technologies - Informática, S.A. Methods and systems for access to real-time full-duplex web communications platforms
JP2014515152A (ja) 2011-05-18 2014-06-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 発行/購読メッセージング・システムにおいてメッセージの購読を管理するための方法および装置、ならびにコンピュータ・プログラム
US10534842B2 (en) 2011-07-12 2020-01-14 Inkling Systems, Inc. Systems and methods for creating, editing and publishing cross-platform interactive electronic works
US9317496B2 (en) 2011-07-12 2016-04-19 Inkling Systems, Inc. Workflow system and method for creating, distributing and publishing content
US20130060834A1 (en) * 2011-09-07 2013-03-07 Microsoft Corportion Distributed messaging system connectivity and resource management
CN107071080B (zh) * 2011-10-20 2020-11-17 华为技术有限公司 一种维护联系人信息的方法和***
US9344391B2 (en) 2012-03-14 2016-05-17 Microsoft Technology Licensing, Llc High density hosting for messaging service
US9177129B2 (en) * 2012-06-27 2015-11-03 Intel Corporation Devices, systems, and methods for monitoring and asserting trust level using persistent trust log
US10318519B2 (en) 2012-06-29 2019-06-11 Harman International Industries, Incorporated Control logic analyzer and method thereof
US9509529B1 (en) * 2012-10-16 2016-11-29 Solace Systems, Inc. Assured messaging system with differentiated real time traffic
US9949112B2 (en) * 2012-12-10 2018-04-17 Koninklijke Kpn N.V. System to protect a mobile network
US20140289805A1 (en) * 2013-03-20 2014-09-25 Tencent Technology (Shenzhen) Company Limited Methods and systems for managing user privileges
JP2017098588A (ja) * 2014-02-20 2017-06-01 日本電気株式会社 通信システム、無線通信装置及び無線通信方法
CN104104615B (zh) 2014-07-21 2017-07-07 华为技术有限公司 策略冲突解决方法以及装置
CN105447032A (zh) * 2014-08-29 2016-03-30 国际商业机器公司 用于处理消息与订阅信息方法和***
CN104735078B (zh) * 2015-04-02 2018-12-25 迈普通信技术股份有限公司 一种Portal接入认证***及方法
US10277601B1 (en) * 2015-05-11 2019-04-30 Google Llc System and method for recursive propagating application access control
US10447626B2 (en) * 2015-07-07 2019-10-15 International Business Machines Corporation Control of messages in publish/subscribe system
US11308264B2 (en) 2015-07-07 2022-04-19 International Business Machines Corporation Managing document annotations in a publish/subscribe system
US10581976B2 (en) * 2015-08-12 2020-03-03 A10 Networks, Inc. Transmission control of protocol state exchange for dynamic stateful service insertion
US10498716B2 (en) 2015-11-25 2019-12-03 Ricoh Company, Ltd. Management system, communication control method, and communication system
US10530776B2 (en) 2016-06-29 2020-01-07 International Business Machines Corporation Dynamic cognitive access control list management
CN106412023B (zh) * 2016-09-05 2018-07-27 南京臻融软件科技有限公司 一种基于发布订阅机制的多源数据分发方法
CN106375462B (zh) * 2016-09-13 2019-05-10 北京百度网讯科技有限公司 在分布式消息***中实现消息持久化的方法及装置
US10637960B2 (en) * 2016-10-21 2020-04-28 Infiswift Technologies, Inc. Method for bridging publish/subscribe brokers for guaranteed low-latency delivery
US20180181269A1 (en) * 2016-12-23 2018-06-28 tronc, Inc. Systems and methods for online-content and print-content assembly
US10270726B2 (en) 2017-02-24 2019-04-23 Satori Worldwide, Llc Selective distribution of messages in a scalable, real-time messaging system
US20180248977A1 (en) * 2017-02-24 2018-08-30 Satori Worldwide, Llc Selective distribution of messages in a publish-subscribe system
US10708360B2 (en) 2017-03-14 2020-07-07 Infiswift Technologies, Inc. Method for transport agnostic communication between internet of things client and broker
US11627132B2 (en) * 2018-06-13 2023-04-11 International Business Machines Corporation Key-based cross domain registration and authorization
US11201937B2 (en) 2018-11-22 2021-12-14 Jeffrey Alan Carley Message broker customization with user administered policy functions
CN109600375B (zh) * 2018-12-13 2021-07-16 锐捷网络股份有限公司 消息跟踪方法、装置、电子设备及存储介质
CN113227974A (zh) * 2018-12-27 2021-08-06 三菱电机株式会社 数据处理装置、数据处理***、数据处理方法及程序
WO2020190931A1 (en) * 2019-03-19 2020-09-24 Sigma Computing, Inc. Cross-organization worksheet sharing
WO2020224753A1 (de) * 2019-05-06 2020-11-12 Siemens Aktiengesellschaft Verfahren zum konfigurieren eines kommunikationsnetzwerks für das zyklische übertragen von nachrichten
CN110351355B (zh) * 2019-07-04 2022-02-25 苏宁云计算有限公司 消息处理***
CN110569135A (zh) * 2019-09-07 2019-12-13 武汉中海庭数据技术有限公司 一种基于发布订阅模式的进程间通信方法及***
CN111181976B (zh) * 2019-12-31 2022-06-24 深圳云天励飞技术股份有限公司 基于消息队列的行列权限管理的方法***、电子设备及存储介质
US11354161B2 (en) 2020-08-10 2022-06-07 Bank Of America Corporation Controlling memory utilization by a topic in a publish-subscribe environment
US11340828B2 (en) 2020-08-10 2022-05-24 Bank Of America Corporation Restoring messages to a memory utilized by a topic in a publish-subscribe environment
CN112751916B (zh) * 2020-12-28 2022-03-25 中国科学院软件研究所 一种面向微服务治理的数据发布-订阅方法和***
CN112835911B (zh) * 2021-03-10 2022-12-02 四川大学华西医院 一种适用于医疗信息平台的主数据管理***

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US679032A (en) * 1900-11-26 1901-07-23 John H Osborne Thill-coupling.
US5265221A (en) * 1989-03-20 1993-11-23 Tandem Computers Access restriction facility method and apparatus
US5577209A (en) * 1991-07-11 1996-11-19 Itt Corporation Apparatus and method for providing multi-level security for communication among computers and terminals on a network
GB2345157B (en) * 1998-12-23 2003-06-18 Ibm Publish and subscribe data processing apparatus, method and computer program product with declaration of a unique publisher broker
US5511122A (en) * 1994-06-03 1996-04-23 The United States Of America As Represented By The Secretary Of The Navy Intermediate network authentication
US5937159A (en) * 1997-03-28 1999-08-10 Data General Corporation Secure computer system
US6366663B1 (en) * 1997-07-21 2002-04-02 Mci Communications Corporation System for achieving local number portability
US6158007A (en) * 1997-09-17 2000-12-05 Jahanshah Moreh Security system for event based middleware
US6769032B1 (en) 1998-05-15 2004-07-27 E.Piphany, Inc. Augmented processing of information objects in a distributed messaging framework in a computer network
US6625734B1 (en) * 1999-04-26 2003-09-23 Disappearing, Inc. Controlling and tracking access to disseminated information
US6662206B1 (en) * 1999-05-28 2003-12-09 International Business Machines Corporation Method and apparatus for summarizing missing events using event stream interpretation
EP1075108A1 (en) * 1999-07-23 2001-02-07 BRITISH TELECOMMUNICATIONS public limited company Cryptographic data distribution
GB2354847A (en) * 1999-09-28 2001-04-04 Ibm Publish/subscribe data processing with subscription points for customised message processing
JP4390405B2 (ja) * 2001-05-31 2009-12-24 富士通株式会社 コンピュータシステム、サービス層、ポリシーキャッシュ機能部およびポリシー管理装置
NO316737B1 (no) * 2001-11-08 2004-04-19 Beep Science As Arrangement og fremgangsmate for innholdskontroll av dataobjekter, spesielt dataobjekter i MMS-meldinger
US7480799B2 (en) * 2001-12-11 2009-01-20 Actional Corporation Traffic manager for distributed computing environments
US8122118B2 (en) * 2001-12-14 2012-02-21 International Business Machines Corporation Selection of communication protocol for message transfer based on quality of service requirements
US7162524B2 (en) * 2002-06-21 2007-01-09 International Business Machines Corporation Gapless delivery and durable subscriptions in a content-based publish/subscribe system
US7512788B2 (en) * 2002-12-10 2009-03-31 International Business Machines Corporation Method and apparatus for anonymous group messaging in a distributed messaging system
US9237514B2 (en) * 2003-02-28 2016-01-12 Apple Inc. System and method for filtering access points presented to a user and locking onto an access point
GB0315191D0 (en) * 2003-06-28 2003-08-06 Ibm Methods, apparatus and computer programs for visualization and management of data organisation within a data processing system
US8024733B2 (en) * 2004-05-13 2011-09-20 International Business Machines Corporation Component model for batch computing in a distributed object environment
US20060072532A1 (en) * 2004-09-30 2006-04-06 Motorola, Inc. Method and system for proactive setup of multicast distribution tree at a neighbor cell or subnet during a call

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017094774A1 (ja) 2015-12-04 2017-06-08 株式会社リコー 制御システム、通信制御方法、及びプログラム
US10681094B2 (en) 2015-12-04 2020-06-09 Ricoh Company, Ltd. Control system, communication control method, and program product
WO2017170176A1 (ja) 2016-03-28 2017-10-05 株式会社リコー 情報送信システム、情報送信方法、及びプログラム
US10778455B2 (en) 2016-03-28 2020-09-15 Ricoh Company, Ltd. Conference system, information transmission method, and storage medium
US11663015B2 (en) 2020-07-23 2023-05-30 International Business Machines Corporation Tracking asynchronous event processing

Also Published As

Publication number Publication date
US20080244696A1 (en) 2008-10-02
US8392961B2 (en) 2013-03-05
US20070245018A1 (en) 2007-10-18
CN101056190A (zh) 2007-10-17
JP2007287148A (ja) 2007-11-01

Similar Documents

Publication Publication Date Title
JP5160134B2 (ja) 配送保証されるコンテンツベースのパブリッシュ/サブスクライブ・システムの動的アクセス制御
JP7454616B2 (ja) 分散型元帳におけるdagベースのトランザクション処理方法およびシステム
JP7292783B2 (ja) 許可型ブロックチェーンにおける優先順位付け
JP7304117B2 (ja) ブロックチェーン上のプロキシ・エージェントおよびプロキシ台帳
Fu et al. SHARP: An architecture for secure resource peering
JP7432686B2 (ja) ブロックチェーンネットワークにおける効率的な伝播のための確率的リレー
Sompolinsky et al. Secure high-rate transaction processing in bitcoin
CN103329113B (zh) 配置用于分级高速缓存的代理服务器以及动态站点加速和自定义对象和相关的方法
CN105247529B (zh) 在目录服务之间同步凭证散列
Baird et al. Hedera: A governing council & public hashgraph network
WO2017170997A1 (ja) 階層型ネットワークシステム、これに用いられるノード及びプログラム
US7114180B1 (en) Method and system for authenticating and authorizing requestors interacting with content servers
KR101086122B1 (ko) 업데이트 분배 시스템에서 소프트웨어 업데이트의 분배를관리하기 위한 애플리케이션 프로그래밍 인터페이스
JP2021526751A (ja) 自己監視ブロックチェーンのための安全な合意に基づくエンドースメント
WO2022121538A1 (zh) 基于区块链的数据同步方法、***及相关设备
US20080148342A1 (en) Management of application specific data traffic
JP2002140309A (ja) サービスシステム
Xiang et al. Jointgraph: A DAG‐based efficient consensus algorithm for consortium blockchains
JP2024505692A (ja) ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器
JP7432443B2 (ja) 移行支援システム、移行支援方法、およびノード
CN113422733B (zh) 区块链的业务处理方法、装置、计算机设备及存储介质
KR102651448B1 (ko) 블록 체인 기반 탈중앙화 인가 프로토콜 방법 및 장치
US20240113866A1 (en) Distributed key management system
EP2096569B1 (en) System and method for shared resource owner based access control
Zhao et al. Dynamic access control in a content-based publish/subscribe system with delivery guarantees

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120910

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121002

R155 Notification before disposition of declining of application

Free format text: JAPANESE INTERMEDIATE CODE: R155

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121212

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: 20151221

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees