CN101056190A - 提供发布/订阅系统中访问控制的方法和装置及所述系统 - Google Patents
提供发布/订阅系统中访问控制的方法和装置及所述系统 Download PDFInfo
- Publication number
- CN101056190A CN101056190A CNA2007100963023A CN200710096302A CN101056190A CN 101056190 A CN101056190 A CN 101056190A CN A2007100963023 A CNA2007100963023 A CN A2007100963023A CN 200710096302 A CN200710096302 A CN 200710096302A CN 101056190 A CN101056190 A CN 101056190A
- Authority
- CN
- China
- Prior art keywords
- access control
- agency
- message
- trustship
- change
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2105—Dual mode as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Abstract
本发明公开了用于分布式消息传送系统(如基于内容的发布/订阅系统)的改进的访问控制技术。例如,用于在基于内容的发布/订阅系统中提供访问控制的方法(其中通过多个代理将消息从发布客户端发送到订阅客户端)包括以下步骤/操作。指定一个或多个对访问控制策略的更改。将访问控制版本标识符与所述一个或多个更改相关联。将所述一个或多个更改发送到所述多个代理中的一个或多个代理,所述一个或多个代理具有与其关联并受所述一个或多个更改影响的发布客户端或订阅客户端。将与所述一个或多个更改关联的所述访问控制版本标识符发送到所述多个代理中的每个代理。
Description
技术领域
本申请一般地涉及分布式消息传送系统,更具体地说,涉及此类系统中的访问控制技术。
背景技术
一种在分布式消息传送系统中与异步分布式应用一起使用的常用方法是基于内容的发布/订阅消息传送方法。基于内容的发布/订阅系统包括生成消息的发布客户端设备或机器(“发布方”),和注册对与在其订阅中指定的谓语(predicate)/布尔过滤器匹配的消息感兴趣的订阅客户端设备或机器(“订阅方”)。所述系统确保及时向所有感兴趣的订阅者传送已发布的消息,并通常包含用于此目的的路由代理设备或机器(“代理方”)。因此,在基于内容的发布/订阅范例中,信息提供者(即,发布方)和消费者(即,订阅方)是分离的,因为发布方不需要知道哪些订阅者接收到他们的消息,并且订阅者不需要知道其接收的消息的来源。
对于许多应用,要求基于内容的发布/订阅系统提供强有力的服务保障(例如,可靠、有序、无间隙传送)、支持大量客户端的高伸缩性、高服务可用性和高性能/吞吐量。为了实现这些目标,通常的系统:(1)向发布方传播和合并订阅信息;(2)使用订阅信息来执行内容过滤以实现良好的网络带宽利用率和可伸缩性;以及(3)使用冗余网络路径来获得高服务可用性。
将阻止发布/订阅系统商用的一个重要但经常被忽略的问题是向应用提供的安全保证。具体地说,应用希望在传播事件时确保其机密性、完整性和真实性。通常要求应只允许受信的源发布事件,并且消息/事件应该仅分发到授权或付费订阅者。一个密切相关的问题是记账和审计,其允许根据使用情况来向订阅方收费。
更改访问控制策略的问题使发布/订阅系统中的访问控制的问题进一步复杂化。与访问控制策略更改关联的一个问题是在进行更改时出现的发布/订阅服务中断。
因此,需要用于分布式消息传送系统的能够高效地应对访问控制策略更改的改进的访问控制技术。
发明内容
本发明的原理提供了用于分布式消息传送系统(如基于内容的发布/订阅系统)的改进的访问控制技术。
例如,在本发明的一个方面中,用于在基于内容的发布/订阅系统中提供访问控制的方法(其中通过多个代理将消息从发布客户端发送到订阅客户端)包括以下步骤/操作。指定一个或多个对访问控制策略的更改。将访问控制版本标识符与所述一个或多个更改相关联。将所述一个或多个更改发送到所述多个代理中的一个或多个代理,所述一个或多个代理具有与其关联并受所述一个或多个更改影响的发布客户端或订阅客户端。将与所述一个或多个更改关联的所述访问控制版本标识符发送到所述多个代理中的每个代理。在一个实施例中,所述访问控制版本标识符为数字。
将对所述现有访问控制策略的所述一个或多个更改中的每个更改存储在所述系统中并作为批处理来实现,所述更改具有与其关联的访问控制版本标识符,以便将所述一个或多个更改与对所述系统的所述现有访问控制策略的一个或多个先前更改唯一地区别开。
所述多个代理中的每个代理是发布方托管代理(PHB)、订阅方托管代理(SHB)和中间代理(IB)中的至少一个,并且根据安全管理员来执行上述指定、关联和发送步骤。
所述安全管理员可以将所述一个或多个更改和所述关联的访问控制版本标识符发送给具有与其关联并受所述一个或多个更改影响的发布客户端或订阅客户端的发布方托管代理和订阅方托管代理。
订阅方托管代理一旦接收到所述一个或多个更改就计算受影响客户端的受限订阅。所述订阅方托管代理然后可以将所述受限订阅和访问控制编号一起发送给一个或多个其他代理。
发布方托管代理一旦接收到所述一个或多个更改,就可以将所述一个或多个更改应用到所述访问控制策略以获取最新的发布权和所述访问控制版本标识符。此外,发布方托管代理一旦接收到要发布的数据消息,就可以将最新的发布权应用到所述消息。所述发布方托管代理然后可以将所述数据消息和访问控制编号一起发送给一个或多个其他代理。
中间代理可以维护控制版本向量。
在本发明的另一个方面中,一种用于从发布客户端向订阅客户端提供消息传送的基于内容的发布/订阅系统包括:多个通过网络彼此操作地连接的代理,所述代理中的每个代理都配置为发布方托管代理(PHB)、订阅方托管代理(SHB)和中间代理(IB)中的至少一个。所述系统还包括至少一个管理员,所述管理员操作地连接到所述多个代理中的至少一部分并配置为在所述系统内存储和更新至少一个访问控制策略。所述多个代理中的至少一部分和所述至少一个管理员被配置为通过将访问控制版本标识符与在它们之间发送的一个或多个消息包括在一起,来实现对所述系统中的所述访问控制策略的更改,其中所述访问控制标识符唯一地标识了有效的访问控制策略,使得所述访问控制策略中的所述更改确定地并一致地应用到与受所述访问控制策略中的所述更改影响的一个或多个主体关联的发布客户端和订阅客户端。
有利地,所述系统由此可以代表系统中的同一主体向所有订阅者保证确定性的和一致的访问控制语义,即使至少一个代理的崩溃和重新启动丢失了所述至少一个代理的非永久性状态,并且即使网络中至少一个链路出现故障并重建其连接,致使在所述至少一个链路上传输的至少一个消息被丢弃、重复或未按顺序传输。也就是说,代表同一主体的不同订阅方将接收到完全相同的消息序列(按模计算订阅过滤器差),即使它们连接在系统中的不同子网处并且即使它们的子网经历不同的通信延迟和网络或路由代理故障。
所述多个代理可以配置为消除在除发布方托管代理之外的代理处永久地存储访问控制状态的需要。发布方托管代理可以被配置为永久地存储与最新的访问控制策略关联的控制版本标识符。发布方托管代理可以被配置为永久地存储与在消息发布时有效的访问控制策略关联的访问控制版本标识符。发布方托管代理和订阅方托管代理之间可以存在多个路径,并且不同路径上的中间代理无需维护相同的访问控制状态。所述中间代理的至少一部分维护访问控制版本向量,且每个订阅方托管代理一个版本,而不是维护访问控制规则。每个订阅方托管代理可以维护与其相连的主体的最新访问控制规则。
订阅方托管代理可以订阅与其相连的主体的访问控制规则更改。中间代理可以根据主体来过滤访问控制规则更改。可以使用可靠的传送来确保需要访问控制规则更改的订阅方托管代理接收到所述访问控制规则更改。从新的主体接受连接的订阅方托管代理可以使用请求-响应协议来初始化该主体的访问控制规则。
订阅方托管代理可以使订阅与最新的访问控制规则相交并使用所述控制规则的版本来分配和维护所述相交的订阅的控制版本。所述订阅方托管代理可以将具有所述访问控制版本标识符的结果订阅传播到上游中间代理。中间代理维护具有访问控制版本标识符的订阅状态。
发布方托管代理可以将所述访问控制版本标识符包括在数据消息中。如果所述数据消息中的访问控制版本标识符只是订阅状态中的访问控制版本号,则中间代理可以使用所述订阅状态来过滤所述消息,否则所述中间代理将所述消息发送到下游。订阅方托管代理可以检查与消息匹配的所述相交订阅的控制版本标识符与所述消息的控制版本的等同性以实施订阅访问控制规则。
从以下将结合附图阅读的对本发明的示例性实施例的详细说明,本发明的这些和其他目标、特征以及优点将变得显而易见。
附图说明
图1A是根据本发明的一个实施例的示出包括示意性代理网络的基于内容的发布/订阅系统的至少一部分的方块图;
图1B是根据本发明的一个实施例的示出基于内容的发布/订阅系统的一个或多个组件的计算体系结构的方块图;
图2是根据本发明的一个实施例的示出实现代理网络的信息流程图;
图3是根据本发明的一个实施例的示出服务模型的示意性实现的方块图;
图4是根据本发明的一个实施例的示出访问控制策略分发和消息传送协议的概述的流程图;
图5A和5B是根据本发明的一个实施例的示出实现访问控制策略分发和消息传送协议的基于内容的发布/订阅系统的一部分的方块图;
图6A到6E是根据本发明的一个实施例的示出访问控制策略分发和消息传送协议的流程图。
具体实施方式
将结合示例性的基于内容的发布/订阅系统来说明本发明的示例性实施例,所述系统包括优选地连接在一起以形成覆盖网络的多个代理设备或代理,尽管本发明构想了备选的连接布置。所述多个代理负责至少部分地根据消息内容和/或根据订阅方请求的过滤谓语来将发布方发送的一个或多个消息传送到订阅方。
代理可以根据特定功能分组。例如,一个或多个代理可以优选地专用于托管发布方。这些代理在文中可以称为发布方托管代理或PHB。此外,一个或多个代理可以优选地专用于托管订阅方。这些代理在文中可以称为订阅方托管代理或SHB。在PHB和SHB之间,可以存在任何数量的包括路由和/或过滤的中间跃点。在这种跃点处的代理在本文中可以称为中间代理或IB。为了便于说明,将假定每个不同的代理都是单独的实体。但是,在实际的实现中,构想了任何一个代理都可以执行一个或多个PHB、SHB和IB的功能。
在说明本发明的访问控制服务模型和访问控制策略分发和消息传送协议的示例性实施例之前,将在图1A、1B和2的上下文中说明其中可以实现这种模型和协议的示例性的基于内容的发布/订阅系统。在申请日为2002年6月21日、序号为10/177,474且标题为“Gapless Delivery and DurableSubscriptions in a Content-Based Publish/Subscribe System”(在基于内容的发布/订阅系统中的无间隙传送和持久订阅)的美国专利申请(其公开在此引入作为参考)中详细说明了这种基于内容的发布/订阅系统。但是,应该理解,本发明的访问控制技术不限于该示例性系统。
图1A示出了根据本发明的一个方面形成的包括示意性代理网络的基于内容的发布/订阅系统的至少一部分。发布方101a、101b、101c和101d分别在相应的客户端连接107a、107b、107c和107d上优选地建立到特定PHB 102a和102b的连接。客户端连接一般可以是传递发出的信息的任何类型的通信介质,包括无线通信链路(例如,红外线、射频、卫星、微波等)和专用通信连接(例如,电话、电缆、光纤等)。优选地,每个客户端连接都是可靠的、先进先出(FIFO)连接,例如(但不限于)传输控制协议/网际协议(TCP/IP)套接字连接。
独立地,订阅方105a、105b、105c和105d优选地分别在相应的客户端连接108a、108b、108c和108d上建立到SHB 104a和104b的连接。客户端连接108a、108b、108c和108d优选地与上述的客户端连接107a、107b、107c和107d一致。PHB 102a、102b和SHB 104a、104b可以通过代理到代理的连接106a、106b、106c、106d、106e、106f、106g和106h连接到IB 103a和103b。假定网络采用无间隙传送协议且可容忍连接失败和消息重新排序,则代理到代理的连接不需要使用可靠的FIFO协议(例如,TCP/IP),但可以有利地使用更快而可靠性稍低的协议,由此增加系统吞吐量。
如图1B所示,每个发布方、订阅方和代理(表示为150)可以根据处理器152、存储器154以及一个或多个输入/输出(I/O)设备156实现。要理解的是,这里使用的术语“处理器”旨在包括任何处理设备,例如,包括中央处理单元(CPU)和/或其他处理电路(例如,微处理器)的设备。此外,要理解的是,术语“处理器”可以指多个处理设备,且与处理设备关联的各种元素可由其他处理设备共享。这里使用的术语“存储器”旨在包括存储器和其他与处理器或CPU关联的计算机可读介质,例如,随机存取存储器(RAM)、只读存储器(ROM)、固定存储介质(例如,硬盘)、可移动存储介质(例如,盘)、闪存等。此外,这里使用的术语“输入/输出设备”或“I/O设备”旨在包括例如一个或多个将数据输入处理器的输入设备(例如,键盘、鼠标、网络接口卡等)和一个或多个呈现与处理器关联的结果的输出设备(例如,打印机、监视器、网络接口卡等)。
因此,将在这里进一步说明的应用程序或其软件组件(包括用于执行本发明的方法的指令或代码)可以存储在一个或多个关联的存储介质(例如,ROM、固定或可移动存储装置)中,并在准备好以供使用时全部或部分地加载(例如,到RAM中)并由处理器152执行。因此,每个发布方、订阅方和代理都可以例如是独立的计算机、在计算机上运行的过程或应用,或为了最小化因系统故障造成的延迟,可以是在多个计算机内以分布方式运行的冗余过程的群集。
现在参考图2,图2是示出了根据本发明的一个方面的代理网络的实施方式的示意性信息流程图。如图所示,代理网络的示例性信息流程图包括多个节点(表示为椭圆),在这里称为信息流,并且包括边或路径(表示为源椭圆和目标椭圆之间的箭头),在这里称为变换。所述信息流程图可以由系统管理员静态地或响应于订阅请求而构建。所述信息流程图定义了通过中间信息流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,在这里称为订阅端)之间的路径。
优选地,每个发布方将消息只传送到一个发布端,而每个订阅方从单个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指定只有具有与“Loc=NY”匹配的内容的消息才可以通过。没有与其关联的谓语的过滤器(例如,214i和214j)将通过所有内容,其实质上等同于链路。
每个代理202a、202b、203a、203b、204a、204b优选地分别具有与其关联的计时器或时钟222a、222b、222c、222d、222e、222f。虽然本发明的方法不要求这些时钟和实际时间同步,但是如果这些时钟至少大致上准确或彼此同步的话,性能可以得到提高。除了具有与特定代理关联的时钟外,PHB 202a和202b需要分别与其关联的稳定的存储介质221a和221b。稳定的存储旨在包括非易失性存储器,例如,RAM、固定存储装置、可移动存储装置等。其余的代理(例如,SHB和IB)203a、203b、204a、204b不需要稳定的存储,但是可以使用“软”状态。仅需要PHB中的稳定存储以及允许SHB和IB使用软状态的能力有利地将本代理网络与使用存储转发技术的其他协议区分开。这些常规协议通常需要与网络中的每个代理关联的稳定存储。
从发布端到给定客户端的订阅端(多个)的一个或多个路径确定了确保该客户端接收哪些消息。具体地说,每个路径传播满足该路径上与每个过滤器对应的谓语的逻辑乘积(即,逻辑“与”)的消息。如果存在多个与给定节点关联的路径,则该节点接收满足路径过滤器的逻辑加法(即,逻辑“或”)的消息。
仅通过实例的方式,考虑与订阅端216a和216b关联的客户端C1。根据订阅端216a和发布端之间的路径(即,214o、213i、214e、213a和214a),C1将接收发布到发布端211a的满足过滤器“Topic=1”&“Loc=NY”&“p>3”的消息,其中符号“&”表示逻辑“与”运算。同样,根据订阅端216b和发布端之间的路径(即,214q、213m、214g、213f和214d),C1将接收发布到发布端211b的满足过滤器“Topic=1”&“Loc=NY”&“p>3”的消息。
每个订阅端优选地是有序的流。因此,客户端C1将从发布端211a按照发布顺序接收所有相关的消息(即,那些具有满足与给定的路径关联的过滤器的内容的消息),以及按照发布顺序从发布端211b接收所有相关消息。但是,在发布到发布端211a的消息和发布到发布端211b的其他消息之间不必存在顺序。这意味着不考虑发布时间,通常无法预知来自发布端211a的给定消息是在来自发布端211b的给定消息之前还是之后到达。这是一个具有内容选择(例如,Topic=1 & Loc=NY & p>3)和发布方顺序的客户端订阅的实例。
相比之下,考虑与单个订阅端216e关联的客户端C2。如图2所示,订阅端216e和一个发布端之间的路径(即,214s、213k、214i、215a、213b、214b、213e和214c)是来自发布端211a的过滤器“Topic=2”和来自发布端211b的过滤器“Topic=2”的合并,并进一步由“i=1”过滤。因为客户端C2具有与其关联的单个订阅端,所以它接收单个有序的流。这是具有内容选择(例如,Topic=2 & i=1)和总体顺序的客户端订阅的实例。注意,客户端C3具有带有相同内容选择(例如,Topic=2 & i=1)和总体顺序的订阅,并将因此以与客户端C2相同的顺序接收相同的消息。本代理网络的此一致总体顺序特性是合并变换是确定性的事实的结果,意味着两个接收相同输入信息流的合并变换将产生相同的合并后的输出信息流。
图2的示例性信息流程图说明了本发布/订阅系统的无间隙传送方法。总之,每个信息流优选地记录在每个特定时间间隔或时间单位内发生的事。因此,每个信息流优选地包括数据消息(或静默)以及表示要了解时间单位的迫切程度的好奇心。信息向下游(即,沿着箭头的方向)流动,而好奇心向上游(即,沿着与箭头方向相反的方向)流动。因此,订阅端会在检测到扩展了信息单位的无间隙序列时传送消息。另一方面,发布端将消息记录到稳定的存储中。如果没有其他代理知道在给定时间单位内发生了什么,则在稳定的存储中维护的这些记录可以随后用作好奇心的仲裁方。
给出了上述对示例性的基于内容的发布/订阅系统的说明后,现在将示例性地介绍本发明的访问控制原理。
本发明的原理认识到,发布/订阅系统应能够持续工作而无需关闭以制定新的访问控制策略,如任务关键应用(例如金融市场的电子贸易)通常所要求的。
因此,本发明的示例性实施例向发布/订阅系统中的动态访问控制提供了基于内容的过滤和路由、可靠的传送和冗余路线。为此,为基于内容的发布/订阅系统中的动态访问控制提供了确定性的服务模型。这种服务模型的确定性保证实现了对事件机密性的精确控制并与诸如客户端位置、网络延迟和故障之类的问题无关。管理员知道在发布的消息流中发生访问控制更改时的确切时刻。明确地定义了在此模型下的可靠传送的语义,即,在同一主体的访问控制策略更改时,该主体的两个或更多个订阅方将接收到同一组消息,而不管订阅方连接到何处。
应当理解,在这里使用的“主体”通常指实体。此类实体可以通过验证技术来明确地标识和检验。将授予主体某种权限来使用系统的资源或服务。系统的实际客户端可以代表主体并使用系统的资源/服务。当系统为客户端服务时,系统根据授予所述客户端代表其连接的主体的权限来进行此操作。以下将说明主体类型的实例。
本发明的示例性实施例还提供了支持此确定性服务模型的算法。使用该算法,在受影响的主体连接到其的所有代理间一致地执行访问控制更改。系统无需从这些代理获得同意,获得同意可能损害系统的效率和实行更改的及时性。该算法是:(1)高效的,因为它允许访问控制执行跨网络分布并接近事件源来执行;和(2)高可用的,因为允许路由以选择任何冗余路径而无需这些路径的同意。
A.服务模型
在该部分,示例性地说明了动态服务控制的确定性服务模型。更具体地说,说明了在动态访问控制中所涉及的各种实体及其角色,用于指定访问控制规则的基于内容的形式和访问控制更改的明确起点。
在示例性的服务模型中,访问控制中涉及两种类型的实体:
(1)安全管理员。安全管理员是系统中访问控制的最终负责方。安全管理员决定(根据外部因素,如客户服务合同)客户端主体的访问权限(在以下定义)和/或是否应对其现有的访问权限做出任何更改。安全管理员通过管理接口指示系统他/她的决定。
在大型系统中,可以有多个安全管理员。由于每个管理员做出的更改可以重叠影响客户端组,所以系统以事务和可串行化的方式接受更改。出于此示例性说明和简化讨论的目的,将安全管理员视为发起单个策略更改序列的单个实体。我们假定来自不同管理员的策略更改被排序且解决了更改冲突。
(2)客户端主体。示例性发布/订阅系统中的客户端具有在客户端连接时由系统通过验证来决定/检验的关联主体。应当理解,如这里示例性地使用的术语“客户端”可以指发布方(即,发布客户端)或订阅方(即,订阅客户端)。实际上,客户端可以同时充当发布方和订阅方。也就是说,客户端可以连接到系统,发布消息或订阅和接收消息。客户端的连接、发布和订阅/接收消息的能力由其主体的访问权限来控制。例如,如果客户端对接收股价、金融新闻和IBM公司的报告感兴趣,但其主体仅具有对股价的访问权限,则尽管客户端做出了请求,但客户端不会接收到任何新闻和报告。
示例性系统中的访问控制规则与主体相关联。同一主体的多个客户端可以在系统中不同的位置处连接。
示例性系统中存在两种类型的主体:(1)组;和(2)个体。组主体是个体的集合,或递归地,是其他组主体的集合。授予组主体的访问权限会自动授予该组的所有成员,并递归地授予成员组的成员。
主体的访问权限包括连接权限、发布权限以及订阅和接收消息的权限。我们采用基于内容的形式来指定这三种权限的访问控制规则。访问控制规则采取以下三个元素的元组的形式:
[主体,访问类型,内容过滤器]
这种形式的规则指定了主体具有连接到系统、发布或订阅与内容过滤器匹配的消息的权限。虽然发布和订阅规则可以采用非平凡过滤器,但是使用true或false来指定连接规则以指示是否具有连接权限。例如,允许主体“John Doe”连接并订阅股价的规则指定为如下:
[John Doe,连接,True]
[John Doe,订阅,类型=’报价’]
在内部以肯定形式维护访问控制规则,因为所有规则都指定了允许主体执行何种操作。提供了指定不允许主体执行何种操作的否定形式来方便安全管理员,并通过采用内容过滤器的取反来在内部将其转换为肯定形式。
在访问控制规则的控制下,允许客户端发布匹配其主体的发布规则的消息及接收同时匹配其订阅过滤器和其主体的订阅规则的消息。这允许系统提供:(1)信息验证(通过仅允许授权的源发布消息);(2)信息机密性(通过仅将消息分发到授权的订阅方);(3)防止由恶意的订阅方(其请求大量只是将丢弃的消息)发起的拒绝服务(DoS)攻击。所述大量的消息可以导致网络拥塞并削弱系统为其他客户端服务的能力。
组和个体主体共享相同形式的连接、发布和订阅访问权限。此外,组主体还存在新的类型的规则(称为成员列表)。例如,高级订阅方组(包括Jane Smith和James Brown并具有对所有股价、新闻和报告的订阅权)具有以下访问控制规则:
[高级组,成员列表,{Jane Smith,James Brown}]
[高级组,订阅,类型=’报价’或类型=’新闻’或类型=’报告’]
将自动授予组中的所有成员对该组的访问权限。因此,个体主体的访问权限是个体的权限与它所属的所有组主体的权限的并集。因此,JaneSmith和James Brown除了授予他们的其他访问权限外,还将具有对所有股价、新闻和报告的访问权限。
图3示出了示例性服务模型的实例。
示例性的确定性服务模型提供了访问控制更改的明确起点。在该模型中,由安全管理员302在管理控制台发起访问控制规则/更改301并将其存储在名为ACL DB(访问控制数据库)的永久性存储装置303中。在任何时间,安全管理员可以指定若干与一个或多个主体有关的更改。这些更改被看作必须以原子的方式实施的批处理。在安全管理员确认每批更改之后,将在整个代理网络304传播所述更改。
发布方(未显示)连接到其的代理托管一个或多个消息流。每个流都包含一个或多个发布方发布的按顺序排列的消息。例如,如图3所示,代理305托管消息流306。
对于这些流中的每个流,代理选取一个起点来实施由安全管理员指定的新的访问控制规则。通过这样的方式选择起点:(1)后续批次的更改获得较后的起点;和(2)起点足够晚以致根据旧规则在起点之后不传送任何消息。这可以通过在流上将新发布的消息指定为起点来实现。将起点信息发送回安全管理员以供将来的查询和参考。在起点后,在整个系统对所有消息一致地实行该新规则,而不管主体的客户端连接到何处。
图3中还示出了订阅方307接收其所订阅的一个或多个消息308,下面将进一步说明它的一个实例。
我们使用其中主体John Doe的订阅权限经历三个阶段更改的实例来示出访问控制策略更改的影响:(1)John Doe变成仅对股价具有订阅权限的发起组的成员;(2)John Doe变成高级订阅者,并随后获得了对所有三种类型的金融信息(股价、金融新闻和报告)的订阅访问;以及(3)John Doe的高级订阅过期,结果失去了对金融新闻和报告的订阅权限。
关于图3,假定订阅方主体John Doe连接到系统并请求订阅期刊=’ibm’。在服务模型下,每次John Doe的访问权限更改时,系统将在每个消息流中提供明确的起点,以便:(1)当且仅当起点之前的消息同时满足更改前的订阅过滤器和访问权限过滤器时,将该消息传送给客户端;以及(2)当且仅当起点之后的消息同时满足更改后的订阅过滤器和访问权限过滤器时,将该消息传送给客户端。在图3的实例的流中,如果选中的起点为第一访问更改的消息100、第二访问更改的消息103和第三更改的消息106,则传送给客户端的消息将是100、103、104、107、109。注意,仅在范围103...105内才会传送非报价消息。在具有多个消息流的系统中,此活动会出现在所有流中,每个流都有其各自的起点。
由代理网络使用的路由拓扑是节点的生成树的抽象拓扑模型,其中每个节点包括多个冗余的并且可以互换地工作的虚拟代理。树是简化无循环路由任务的非循环结构。具有冗余代理的树节点提供了高可用性。
回顾以上在图1的上下文中说明的示例性发布/订阅系统(其中可以实现本发明的示例性服务模型),我们将发布方连接的代理称为发布方托管代理(PHB)并将订阅方连接的代理称为订阅方托管代理(SHB)。为了简洁,我们将从一个PHB的角度来讨论路由。可以构建抽象网络,以便任何托管客户端的物理代理在叶节点中实现虚拟代理。因此,在该模型中,SHB仅位于树的叶节点;并且仅有一个PHB且它位于树的根。上游/下游的方向指向/离开根。因为客户端连接到一个代理,所以每个叶节点都包含一个代理。该拓扑模型可以表示大范围的实际拓扑,因为通过将代理分组成树节点及将代理间链路分组成树的边,可以将具有冗余路径的图变换为此模型下的拓扑。
访问控制的一种示例性实施方式是PHB和中间代理将所有匹配客户端订阅的已发布消息转发给SHB,并且SHB通过传送不仅匹配客户端订阅而且匹配其访问权限的消息来实施访问控制。此类解决方案将是完全正确的实施方式,但它会浪费相当大的带宽来发送稍后将丢弃的消息。
订阅传播是可以导致较少浪费的消息被发送到SHB的优化,作为交换,其要求PHB和中间代理获取关于订阅谓语的信息和执行过滤。通过将客户端的访问权限连同其订阅一起传播,可以实现进一步的通信成本节约。
提供上述确定性的服务保证在部署在具有冗余路径的网络上的基于内容的系统中是挑战性的。由于基于内容的路由,不能通过传统方法(如发布方分配的序列号)来检测间隙,因为每个订阅方都可以请求传送完全唯一的消息序列。因此,基于内容的系统中的可靠性需要路由路径上的代理来协助间隙检测。
多个路径、通信异步性和故障使订阅和访问控制信息的传播复杂化,因为备选路线上的冗余代理可以具有互不相同的订阅和访问控制信息。如果来自同一已发布流的消息通过这些代理来路由,则会将它们与不同的订阅和访问控制过滤器组相匹配。结果,在传送到订阅方的消息序列中会出现间隙。
在“A General Algorithmic Model for Subscription Propagation andContent-based Routing with Delivery Guarantees”(Y.Zhao等人,RC23669,IBM Research 2005)和“Subscription Propagation inHighly-available Publish/Subscribe Middleware”(Y.Zhao等人,ACM/IFIP/USENIX第五界国际中间件会议,2005)中公开了订阅传播的示例性协议(在此引入其公开作为参考)。这些协议保持了可靠传送并使得能够在任何用于系统可用性和负载共享的冗余路径上进行自由的路由选择。此外,这种协议假设在已发布的消息流上的订阅的可靠传送起点可被选择为流中的任何点(如果在所述起点之后没有确认任何消息,使得系统可以收回由消息所占用的永久性存储的话)。
下面,我们将这种可靠传送和订阅传播协议用作构建块,以便建立有效和高可用性的分布式协议,所述协议实施对发布/订阅客户端的动态访问控制的确定性语义。我们采用基于域的信任模型。同一域中的所有代理彼此信任。不相互信任的代理应该放入不同的域,并且通过根据其信任级别分配访问控制规则来控制跨域的通信。为了简洁,将在一个受信域下讨论所述协议。这具有实际用途,因为在许多商业情况下,将在管理员的完全控制下在受管理的环境中部署发布/订阅系统。通过将域视为发布/订阅客户端并向域分配主体,可以将所述概念延伸到多个受信域。通过非受信域连接到系统的客户端仅可访问同时满足域的权限及其自己的访问权限的消息。
B.访问控制策略分发和消息传送协议
图4示出了提供消息传送的确定性服务保证的访问控制策略分发和消息传送协议。如图所示,该协议提供:将访问控制信息分发给托管相关主体的代理(401);通过仅接受满足发布方的发布权限的消息来限制发布活动(402);使用其订阅权限来限制客户端订阅(403);通过对客户端的订阅和访问权限同时执行内容过滤来传播受限订阅并因此在路由代理中实施访问控制(404);以及在SHB处最终实施访问控制(405)。我们返回参考图1A到图3中示出的组件来说明这些协议的每一个方面。
如上所述,在名为ACL DB的永久性存储中维护访问控制策略。安全管理员在事务批处理中做出对ACL DB的策略更改。访问控制策略与是整数计数器的控制版本相关联。每个事务批处理都将ACL DB带入新的控制版本。新的访问控制规则会分配有新的版本号。由于旧的访问控制规则可能对某些消息仍然有效,所以ACL DB包含各种具有不同版本的访问控制规则。为了避免发送整体状态,ACL DB通过将其发布为增量更改来分发新版本的访问控制。
每个PHB/SHB为当前连接的客户端维护最新的访问控制规则的高速缓存。当具有新主体的客户端连接时,代理通过请求/回复协议使用ACLDB来检索该主体的访问控制规则的初始版本。代理还建立用于接收连接的主体的未来访问控制更改的订阅。订阅传播和可靠传送服务确保代理在获得已连接主体的访问规则的初始版本之后接收到每一次访问控制更改。
当PHB接收到新版本的访问控制规则时,它会更新其高速缓存。PHB选取新版本的起点作为要发布的下一个消息。仅当新发布的消息匹配当前起作用的发布权限时,它们才能被接受。此外,在带有有效访问控制版本的系统中传输新发布的消息。现在说明如何实施订阅权限。
在基于内容的路由单纯地基于客户端订阅并且仅在客户端连接的代理处实施访问控制的系统中,路由代理可以发送仅匹配客户端的订阅而非其访问权限的消息。这些消息将只能在稍后被丢弃并导致系统带宽的浪费。
我们将访问控制信息视为除了客户端订阅之外可以影响消息路由的另一种类型的信息。因此,SHB不是将原始客户端订阅过滤器传播到网络的其余部分,而是传播受限形式的过滤器,所述过滤器是客户端订阅过滤器与SHB高速缓存中最新版本的基于内容的访问规则的交集。当访问控制规则更改时,SHB使用新版本的规则来重新计算所有受影响的客户端/主体的受限订阅。将结果订阅和控制版本一起以原子的方式向上游传播。上游路由代理处理所述订阅而无需了解所述订阅是否受限。上游路由代理只需为其下游中的每个SHB维护控制版本的向量。
当传播受限的过滤器时,基于内容的路由是基于客户端订阅过滤器与访问控制规则的交集。这允许路由代理以及SHB参与访问控制。
如上所述,系统中的消息带有对该消息有效的控制版本。当向下游路由消息时,路由代理将该消息版本与位于该下游的SHB的控制版本向量的子部分相比较。只有当所述消息不匹配来自下游的受限订阅时,才会过滤出所述消息,并且代理的控制版本向量的子部分的每一个元素都和所述消息的相应部分一样。在代理不具备足够大的控制版本向量时,代理可以适当地将消息发送到下游。例如,代理b将消息发送到下游代理,尽管该消息可能是浪费的,即,不匹配任何在以下游代理为根的子网处连接的客户端的订阅过滤器和订阅权限。如果代理b具有足够大的控制版本向量,则代理b能够过滤出消息,并在消息不匹配它(代理b)为以下游代理b’为根的子网维护的任何订阅过滤器时,阻止向下游代理b’发送消息。
访问控制的最终实施者为SHB,因为中间路由代理可能适当地发送不匹配客户端的访问权限的消息。
SHB首先检查其是否接收到消息所需版本的访问控制规则。如果否,则SHB推迟消息的处理直至所述版本的访问控制规则到达。如果SHB接收到规则的控制版本,则SHB检查每个匹配该消息的受限订阅。如果受限订阅具有和该消息相同的控制版本,则将该消息发送到订阅客户端。否则,不会将该消息发送到客户端。
控制版本的使用不仅允许消息传送算法实现服务模型的明确起点功能,还可使系统变得更为异步和容错。当使用了到所有代理的广播事务会话时,将访问控制更改和控制版本号一起分发使系统中的每个代理异步地继续,而不是等待缓慢或崩溃的代理。即使在路由树节点中的大多数代理都出现故障的情况下,还可以制订新的访问控制规则,并且其余的代理可以参与实施访问控制而无需从其冗余同伴获得同意。当代理恢复时,尽管其控制版本可能落后,所述代理通过使用其部分网络容量(否则会保持闲置),仍可以参与消息路由。
仅使用已连接主体的控制规则高速缓存使系统即使在主体数量很大的大型环境中仍能够伸缩。SHB仅需知道本地连接的主体的访问控制规则。
现在参考图5A和5B,其中示出了根据本发明的一个实施例的实现访问控制策略分发和消息传送协议的基于内容的发布/订阅系统的一部分。应当理解,在示出的实例中,为了简洁,仅示出了一个安全管理员、一个PHB、一个IB和一个SHB。因此,实际的系统将涉及多个此类组件。此外,PHB可以直接连接到SHB,即,无需在其间具有IB。另外,应当理解,所述安全管理员、PHB、SHB和IB指执行所述步骤的计算设备。此类计算设备可以如图1B所示进行配置,以便所述步骤/操作可以通过处理器和存储器布置来执行。
如图所示,在该实例中,安全管理员502如上所述地将包括访问控制策略更改(即,一批访问控制策略更改)的消息连同分配的控制版本号发送给适当的代理。适当的代理将是代表受策略更改影响的主体来托管客户端的任何代理。在该实例中,适当的代理示出为PHB(504)和SHB 1(508)。
如上所述并且如图5A所示,当访问控制规则更改时,SHB会使用新的版本的规则来重新计算所有受影响的客户端/主体的受限订阅。将结果订阅连同控制版本一起以原子的方式向上游传播。上游路由代理(在该实例中为IB 506)处理订阅而不必知道订阅是否受限。上游路由代理只需为其下游中的每个SHB维护控制版本向量。
此外,如上所述并且如图5B所示,当PHB接收到新的版本的访问控制规则时,它会更新其高速缓存。PHB选取新版本的起点作为要发布的下一个消息。由带有有效的访问控制版本的系统中的PHB(504)来传输新发布的消息。
现在参考图6A到图6E,流程图示出了由SHB(图6A和图6B)、PHB(图6C和图6D)以及IB(图6E)在访问控制策略分发和消息传送协议中采取的步骤。这些流程图示出了上述访问控制策略分发和消息传送协议的各方面的实例。
图6A示出了由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)。
图6B示出了由SHB在接收到新的客户端订阅时执行的处理。
在步骤622,SHB接收客户端订阅过滤器。
在步骤624,SHB从访问控制策略高速缓存检索客户端主体的最新访问订阅规则。
在步骤626,SHB计算客户端订阅过滤器和访问控制策略过滤器的交集。
在步骤628,SHB将相交的订阅和所使用的控制规则的版本号传播到一个或多个上游代理。
图6C示出了PHB在接收到与新版本的访问控制有关的信息时执行的处理。
在步骤630,PHB接收访问控制规则和版本号。
在步骤632,PHB更新其访问控制策略高速缓存。
图6D示出了PHB在接收到新的数据消息时执行的处理。
在步骤634,PHB接收数据消息。
在步骤636,PHB检查消息是否匹配发布方的主体的最新发布权限。
如果在步骤636中为“否”,则PHB丢弃消息(步骤638)。
如果在步骤636中为“是”,则PHB使用最新版本号在消息上设置控制版本号并发送消息(步骤640)。
图6E示出了IB在接收到数据消息时执行的处理。
在步骤642,IB接收数据消息。
在步骤644,IB检查消息控制版本是否小于或等于IB的控制版本向量元素。
如果在步骤644中为“是”,则IB检查消息是否匹配来自下游的订阅(步骤646)。
如果在步骤646中为“否”,则IB丢弃消息(步骤648)。
如果在步骤644中为“否”或在步骤646中为“是”,则IB将消息发送到下游(步骤650)。
应当理解,上述处理步骤本质上旨在是示例性的,因此,本发明的访问控制策略分发和消息传送协议可以执行更少或更多的处理步骤、执行其他处理步骤和/或以不同的顺序执行上述处理步骤。
有利地,如本文所示,根据本发明的示例性实施例的服务模型本质上能够代表系统中的同一主体向所有订阅者保证确定性的和一致的访问控制语义。即使当一个或多个代理的崩溃和重新启动使所述一个或多个代理失去有效的访问控制策略的非永久性状态时也是如此。即使在网络中至少一个链路出现故障并重建其连接,致使在网络上传输的至少一个消息被丢弃、重复或未按顺序传输时也是如此。也就是说,代表同一主体的不同订阅方将接收到完全相同的消息序列(按模计算订阅过滤器差),即使它们连接在系统中的不同子网处并且即使它们的子网经历不同的通信延迟和网络或路由代理故障。
此外,此类服务模型允许使用可应用到基于内容的发布/订阅系统的基于内容的形式来实施发布和订阅访问控制的能力,以及所有代理(而不只是SHB)参与订阅方访问控制而不必维护访问控制规则的能力。
尽管参考附图在此描述了本发明的示例性实施例,但是应当理解,本发明并不限于这些精确的实施例,并且在不偏离本发明的精神和范围的情况下,本领域的技术人员可以做出各种其他更改和修改。
Claims (20)
1.一种在基于内容的发布/订阅系统中提供访问控制的方法,其中通过多个代理将消息从发布客户端发送到订阅客户端,所述方法包括以下步骤:
指定一个或多个对访问控制策略的更改;
将访问控制版本标识符与所述一个或多个更改相关联;
将所述一个或多个更改发送到所述多个代理中的一个或多个代理,所述一个或多个代理具有与其关联并受所述一个或多个更改影响的发布客户端或订阅客户端;以及
将与所述一个或多个更改关联的所述访问控制版本标识符发送到所述多个代理中的每个代理。
2.如权利要求1中所述的方法,其中将对所述现有访问控制策略的所述一个或多个更改中的每个更改存储在所述系统中并作为批处理来实现,所述更改具有与其关联的访问控制版本标识符,以便将所述一个或多个更改与对所述系统的所述现有访问控制策略的一个或多个先前更改唯一地区别开。
3.如权利要求1中所述的方法,其中所述多个代理中的每个代理是发布方托管代理、订阅方托管代理和中间代理中的至少一个,并且其中根据安全管理员来执行所述指定、关联和发送步骤。
4.如权利要求3中所述的方法,其中所述安全管理员将所述一个或多个更改和所述关联的访问控制版本标识符发送给具有与其关联并受所述一个或多个更改影响的发布客户端或订阅客户端的发布方托管代理和订阅方托管代理。
5.如权利要求3中所述的方法,其中订阅方托管代理一旦接收到所述一个或多个更改就计算受影响客户端的受限订阅。
6.如权利要求5中所述的方法,其中所述订阅方托管代理将所述受限订阅和访问控制编号一起发送给一个或多个其他代理。
7.如权利要求3中所述的方法,其中发布方托管代理执行以下步骤中的至少一个步骤:
一旦接收到所述一个或多个更改,就将所述一个或多个更改应用到所述访问控制策略以获取最新的发布权和所述访问控制版本标识符;以及
一旦接收到要发布的数据消息,就将最新的发布权应用到所述消息。
8.如权利要求7中所述的方法,其中所述发布方托管代理将所述数据消息和访问控制编号一起发送给一个或多个其他代理。
9.如权利要求3中所述的方法,其中中间代理维护控制版本向量。
10.一种在基于内容的发布/订阅系统中提供访问控制的装置,其中通过多个代理将消息从发布客户端发送到订阅客户端,所述装置包括:
存储器;以及
至少一个处理器,所述处理器与所述存储器相连并可执行以下操作:(i)指定一个或多个对访问控制策略的更改;(ii)将访问控制版本标识符与所述一个或多个更改相关联;(iii)将所述一个或多个更改发送到所述多个代理中的一个或多个代理,所述一个或多个代理具有与其关联并受所述一个或多个更改影响的发布客户端或订阅客户端;以及(iv)将与所述一个或多个更改关联的所述访问控制版本标识符发送到所述多个代理中的每个代理。
11.一种用于从发布客户端向订阅客户端提供消息传送的基于内容的发布/订阅系统,所述系统包括:
多个通过网络彼此操作地连接的代理,所述代理中的每个代理都配置为发布方托管代理、订阅方托管代理和中间代理中的至少一个;
至少一个管理员,所述管理员操作地连接到所述多个代理中的至少一部分并配置为在所述系统内存储和更新至少一个访问控制策略;以及
其中所述多个代理中的至少一部分和所述至少一个管理员被配置为通过将访问控制版本标识符与在它们之间发送的一个或多个消息包括在一起,来实现对所述系统中的所述访问控制策略的更改,其中所述访问控制标识符唯一地标识了有效的访问控制策略,使得所述访问控制策略中的所述更改确定地并一致地应用到与受所述访问控制策略中的所述更改影响的一个或多个主体关联的发布客户端和订阅客户端。
12.如权利要求11中所述的系统,其中所述多个代理配置为消除在除发布方托管代理之外的代理处永久地存储访问控制状态的需要。
13.如权利要求11中所述的系统,其中至少一个发布方托管代理被配置为永久地存储与最新的访问控制策略关联的控制版本标识符。
14.如权利要求13中所述的系统,其中至少一个发布方托管代理被配置为永久地存储与在消息发布时有效的访问控制策略关联的访问控制版本标识符。
15.如权利要求11中所述的系统,其中发布方托管代理和订阅方托管代理之间存在多个路径,并且不同路径上的中间代理无需维护相同的访问控制状态。
16.如权利要求11中所述的系统,其中所述中间代理的至少一部分维护访问控制版本向量,且每个订阅方托管代理一个版本,而不是维护访问控制规则。
17.如权利要求11中所述的系统,其中每个订阅方托管代理维护与其相连的主体的最新访问控制规则。
18.如权利要求11中所述的系统,其中:(i)订阅方托管代理订阅与其相连的主体的访问控制规则更改;(ii)中间代理根据主体来过滤访问控制规则更改;(iii)使用可靠的传送来确保需要访问控制规则更改的订阅方托管代理接收到所述访问控制规则更改;以及(iv)从新的主体接受连接的订阅方托管代理使用请求-响应协议来初始化该主体的访问控制规则。
19.如权利要求18中所述的系统,其中(i)订阅方托管代理使订阅与最新的访问控制规则相交并使用该版本的控制规则来分配和维护所述相交的订阅的控制版本;(ii)所述订阅方托管代理将具有所述访问控制版本标识符的结果订阅传播到上游中间代理;以及(iii)中间代理维护具有访问控制版本标识符的订阅状态。
20.如权利要求19中所述的系统,其中:(i)发布方托管代理将所述访问控制版本标识符包括在数据消息中;(ii)如果所述数据消息中的访问控制版本标识符只是订阅状态中的访问控制版本号,则中间代理使用所述订阅状态来过滤所述消息,否则所述中间代理将所述消息发送到下游;(iii)订阅方托管代理检查与消息匹配的所述相交订阅的控制版本标识符与所述消息的控制版本的等同性以实施订阅访问控制规则。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/402,685 US20070245018A1 (en) | 2006-04-12 | 2006-04-12 | Dynamic access control in a content-based publish/subscribe system with delivery guarantees |
US11/402,685 | 2006-04-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101056190A true CN101056190A (zh) | 2007-10-17 |
Family
ID=38606140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100963023A Pending CN101056190A (zh) | 2006-04-12 | 2007-04-09 | 提供发布/订阅系统中访问控制的方法和装置及所述系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US20070245018A1 (zh) |
JP (1) | JP5160134B2 (zh) |
CN (1) | CN101056190A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102341808A (zh) * | 2009-03-04 | 2012-02-01 | 皇家飞利浦电子股份有限公司 | 指定访问控制策略 |
CN103067251A (zh) * | 2011-10-20 | 2013-04-24 | 华为技术有限公司 | 一种维护联系人信息的方法和系统 |
CN106341305A (zh) * | 2015-07-07 | 2017-01-18 | 国际商业机器公司 | 发布/订阅系统中对消息的控制 |
CN107911284A (zh) * | 2011-01-27 | 2018-04-13 | 谷歌有限责任公司 | 一种用于内容访问控制的方法 |
CN109600375A (zh) * | 2018-12-13 | 2019-04-09 | 锐捷网络股份有限公司 | 消息跟踪方法、装置、电子设备及存储介质 |
CN110351355A (zh) * | 2019-07-04 | 2019-10-18 | 苏宁云计算有限公司 | 消息处理系统 |
CN110569135A (zh) * | 2019-09-07 | 2019-12-13 | 武汉中海庭数据技术有限公司 | 一种基于发布订阅模式的进程间通信方法及系统 |
CN111181976A (zh) * | 2019-12-31 | 2020-05-19 | 深圳云天励飞技术有限公司 | 基于消息队列的行列权限管理的方法及相关装置 |
CN112751916A (zh) * | 2020-12-28 | 2021-05-04 | 中国科学院软件研究所 | 一种面向微服务治理的数据发布-订阅方法和系统 |
CN112835911A (zh) * | 2021-03-10 | 2021-05-25 | 四川大学华西医院 | 一种适用于医疗信息平台的主数据管理系统 |
CN113227974A (zh) * | 2018-12-27 | 2021-08-06 | 三菱电机株式会社 | 数据处理装置、数据处理系统、数据处理方法及程序 |
US11308264B2 (en) | 2015-07-07 | 2022-04-19 | International Business Machines Corporation | Managing document annotations in a publish/subscribe system |
Families Citing this family (50)
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 |
US8214847B2 (en) | 2007-11-16 | 2012-07-03 | Microsoft Corporation | Distributed messaging system with configurable assurances |
US8200836B2 (en) | 2007-11-16 | 2012-06-12 | Microsoft Corporation | Durable exactly once message delivery at scale |
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 |
CN101668031B (zh) * | 2008-09-02 | 2013-10-16 | 阿里巴巴集团控股有限公司 | 一种消息处理方法及系统 |
JP5212066B2 (ja) * | 2008-12-11 | 2013-06-19 | 日本電気株式会社 | 配信システム、購読端末、仲介端末、配信方法およびプログラム |
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 |
US9237068B2 (en) * | 2011-01-30 | 2016-01-12 | Blue Coat Systems, Inc. | System and method for distributing heuristics to network intermediary devices |
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 |
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 |
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 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 発行/購読メッセージング・システムにおいてメッセージの購読を管理するための方法および装置、ならびにコンピュータ・プログラム |
US9317496B2 (en) * | 2011-07-12 | 2016-04-19 | Inkling Systems, Inc. | Workflow system and method for creating, distributing and publishing content |
US10534842B2 (en) | 2011-07-12 | 2020-01-14 | Inkling Systems, Inc. | Systems and methods for creating, editing and publishing cross-platform interactive electronic works |
US20130060834A1 (en) * | 2011-09-07 | 2013-03-07 | Microsoft Corportion | Distributed messaging system connectivity and resource management |
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 |
WO2014000276A1 (en) | 2012-06-29 | 2014-01-03 | Harman International (Shanghai) Management Co., Ltd. | 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 |
KR101894198B1 (ko) * | 2012-12-10 | 2018-08-31 | 코닌클리즈케 케이피엔 엔.브이. | 모바일 네트워크를 보호하기 위한 시스템 |
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 |
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 |
EP3385853A4 (en) | 2015-12-04 | 2018-12-26 | Ricoh Company, Ltd. | Control system, communication control method, and program |
WO2017170176A1 (ja) | 2016-03-28 | 2017-10-05 | 株式会社リコー | 情報送信システム、情報送信方法、及びプログラム |
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 |
US20180248977A1 (en) * | 2017-02-24 | 2018-08-30 | Satori Worldwide, Llc | Selective distribution of messages in a publish-subscribe system |
US10270726B2 (en) | 2017-02-24 | 2019-04-23 | Satori Worldwide, Llc | Selective distribution of messages in a scalable, real-time messaging 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 |
EP3928218A1 (en) * | 2019-03-19 | 2021-12-29 | 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 |
US11663015B2 (en) | 2020-07-23 | 2023-05-30 | International Business Machines Corporation | Tracking asynchronous event processing |
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 |
Family Cites Families (23)
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 |
-
2006
- 2006-04-12 US US11/402,685 patent/US20070245018A1/en not_active Abandoned
-
2007
- 2007-04-09 CN CNA2007100963023A patent/CN101056190A/zh active Pending
- 2007-04-11 JP JP2007103883A patent/JP5160134B2/ja not_active Expired - Fee Related
-
2008
- 2008-06-11 US US12/137,147 patent/US8392961B2/en not_active Expired - Fee Related
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102341808A (zh) * | 2009-03-04 | 2012-02-01 | 皇家飞利浦电子股份有限公司 | 指定访问控制策略 |
CN107911284A (zh) * | 2011-01-27 | 2018-04-13 | 谷歌有限责任公司 | 一种用于内容访问控制的方法 |
CN103067251A (zh) * | 2011-10-20 | 2013-04-24 | 华为技术有限公司 | 一种维护联系人信息的方法和系统 |
US9332073B2 (en) | 2011-10-20 | 2016-05-03 | Huawei Technologies Co., Ltd. | Method and system for maintaining contact information |
CN103067251B (zh) * | 2011-10-20 | 2017-04-05 | 华为技术有限公司 | 一种维护联系人信息的方法和系统 |
US10447626B2 (en) | 2015-07-07 | 2019-10-15 | International Business Machines Corporation | Control of messages in publish/subscribe system |
US10257138B2 (en) | 2015-07-07 | 2019-04-09 | International Business Machines Corporation | Control of messages in publish/subscribe system |
CN106341305B (zh) * | 2015-07-07 | 2019-09-10 | 国际商业机器公司 | 发布/订阅系统中对消息的控制 |
CN106341305A (zh) * | 2015-07-07 | 2017-01-18 | 国际商业机器公司 | 发布/订阅系统中对消息的控制 |
US11308264B2 (en) | 2015-07-07 | 2022-04-19 | International Business Machines Corporation | Managing document annotations in a publish/subscribe system |
US10771417B2 (en) | 2015-07-07 | 2020-09-08 | International Business Machines Corporation | Control of messages in publish/subscribe system |
US10771416B2 (en) | 2015-07-07 | 2020-09-08 | International Business Machines Corporation | Control of messages in publish/subscribe system |
CN109600375A (zh) * | 2018-12-13 | 2019-04-09 | 锐捷网络股份有限公司 | 消息跟踪方法、装置、电子设备及存储介质 |
CN109600375B (zh) * | 2018-12-13 | 2021-07-16 | 锐捷网络股份有限公司 | 消息跟踪方法、装置、电子设备及存储介质 |
CN113227974A (zh) * | 2018-12-27 | 2021-08-06 | 三菱电机株式会社 | 数据处理装置、数据处理系统、数据处理方法及程序 |
CN110351355A (zh) * | 2019-07-04 | 2019-10-18 | 苏宁云计算有限公司 | 消息处理系统 |
CN110351355B (zh) * | 2019-07-04 | 2022-02-25 | 苏宁云计算有限公司 | 消息处理系统 |
CN110569135A (zh) * | 2019-09-07 | 2019-12-13 | 武汉中海庭数据技术有限公司 | 一种基于发布订阅模式的进程间通信方法及系统 |
CN111181976A (zh) * | 2019-12-31 | 2020-05-19 | 深圳云天励飞技术有限公司 | 基于消息队列的行列权限管理的方法及相关装置 |
CN111181976B (zh) * | 2019-12-31 | 2022-06-24 | 深圳云天励飞技术股份有限公司 | 基于消息队列的行列权限管理的方法系统、电子设备及存储介质 |
CN112751916A (zh) * | 2020-12-28 | 2021-05-04 | 中国科学院软件研究所 | 一种面向微服务治理的数据发布-订阅方法和系统 |
CN112835911A (zh) * | 2021-03-10 | 2021-05-25 | 四川大学华西医院 | 一种适用于医疗信息平台的主数据管理系统 |
CN112835911B (zh) * | 2021-03-10 | 2022-12-02 | 四川大学华西医院 | 一种适用于医疗信息平台的主数据管理系统 |
Also Published As
Publication number | Publication date |
---|---|
JP5160134B2 (ja) | 2013-03-13 |
US20080244696A1 (en) | 2008-10-02 |
US8392961B2 (en) | 2013-03-05 |
US20070245018A1 (en) | 2007-10-18 |
JP2007287148A (ja) | 2007-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101056190A (zh) | 提供发布/订阅系统中访问控制的方法和装置及所述系统 | |
CN111488595B (zh) | 用于实现权限控制的方法及相关设备 | |
JP7292783B2 (ja) | 許可型ブロックチェーンにおける優先順位付け | |
US9071575B2 (en) | Method and system for abuse route aggregation and distribution | |
US7478402B2 (en) | Configurable message pipelines | |
CN101523403B (zh) | 用于在Web服务环境中同步策略控制的方法和系统 | |
US7836502B1 (en) | Scheduled gateway scanning arrangement and methods thereof | |
US11170118B2 (en) | Network system and method for access management authentication and authorization | |
US7903656B2 (en) | Method and system for message routing based on privacy policies | |
US8732258B2 (en) | Method and system for transporting telemetry data across a network | |
US8533782B2 (en) | Access control | |
US20050278384A1 (en) | External authentication against a third-party directory | |
MX2011003223A (es) | Acceso al proveedor de servicio. | |
CN105493046A (zh) | 面向服务的架构 | |
CN111338906B (zh) | 终端设备、边缘节点及基于区块链的应用监管方法和系统 | |
CN112261172B (zh) | 服务寻址访问方法、装置、系统、设备及介质 | |
EP3529950B1 (en) | Method for managing data traffic within a network | |
EP2283670A2 (en) | Security message processing | |
KR20170062244A (ko) | Api 관리 장치 | |
KR101653685B1 (ko) | 컴퓨터 수행 가능한 api 관리 방법 | |
US9064289B2 (en) | Service mediation model | |
CN101072201A (zh) | 实现消息业务的系统和方法 | |
CN112837023A (zh) | 机构的业务协同平台、方法、装置及电子设备 | |
WO2007143903A1 (fr) | Système et procédé pour réaliser un service de message | |
KR102120225B1 (ko) | 4-tier 방식 CASB의 접근통제 관리 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20071017 |