[go: up one dir, main page]

CN1240964A - Publish and subscribe data processing apparatus, method and computer program product - Google Patents

Publish and subscribe data processing apparatus, method and computer program product Download PDF

Info

Publication number
CN1240964A
CN1240964A CN 99107057 CN99107057A CN1240964A CN 1240964 A CN1240964 A CN 1240964A CN 99107057 CN99107057 CN 99107057 CN 99107057 A CN99107057 A CN 99107057A CN 1240964 A CN1240964 A CN 1240964A
Authority
CN
China
Prior art keywords
data processing
application program
issue
processing unit
message
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
Application number
CN 99107057
Other languages
Chinese (zh)
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
Priority to CN 99107057 priority Critical patent/CN1240964A/en
Publication of CN1240964A publication Critical patent/CN1240964A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

一种发布/订阅数据处理代理设备具有:用于自发布应用程序接收由发布应用程序在限定主题的流中发布的数据消息的装置;以及用于将收到的发布数据消息分配至订阅应用程序的装置,该订阅应用程序曾请求接收曾在其中发布过发布消息的流中的消息,用于分配的装置包括多个连接的分配代理数据处理单元;其中有一个流是为由发布分配代理数据处理单元发布的消息保留的,并准备由位于发布分配代理数据处理单元邻近处的订阅分配代理数据处理单元接收。

A publish/subscribe data processing proxy device having: means for receiving from a publishing application a data message published by a publishing application in a stream defining a topic; and for distributing the received published data message to a subscribing application means for which the subscribing application has requested to receive messages in a stream in which a publish message has been published, the means for distributing comprises a plurality of connected distributing proxy data processing units; one of the streams is distributing proxy data for publishing The messages published by the processing unit are reserved and ready to be received by the subscription distribution agent data processing unit located adjacent to the publish distribution agent data processing unit.

Description

发布/订阅数据处理设备、方法和计算机程序产品Publish/subscribe data processing apparatus, method and computer program product

本发明涉及数据处理领域,更具体地涉及用于将消息自数据消息供应者(此后称为“发布者”)分配给这类消息的消费者(此后称为“订户”)的数据处理。The present invention relates to the field of data processing, and more particularly to data processing for distributing messages from data message suppliers (hereinafter "publishers") to consumers of such messages (hereinafter "subscribers").

发布/订阅数据处理系统近年来日益普及,用作将数据消息自发布计算机分配至订户计算机的一种手段。将世界各地种类各异的计算机连接起来的因特网的不断增长的普及程度有助于使这类发布/订阅系统更为普及。因特网的全球网浏览器应用程序(“应用程序”或“过程”一词系指在计算机上运行的软件程序或其一部分)可与发布者或订户一起用于图形地显示消息。当由发布者提供的数据经常变化及大量订户要求快速地用最新数据更新时,这类系统特别有用。也许说明它有用的最佳例子是股票交易数据的分配。Publish/subscribe data processing systems have grown in popularity in recent years as a means of distributing data messages from a publishing computer to subscriber computers. The growing popularity of the Internet, which connects all kinds of computers around the world, has helped to make this type of publish/subscribe system even more popular. The Internet's web browser application (the term "application" or "process" refers to a software program, or a portion thereof, that runs on a computer) can be used with publishers or subscribers to graphically display messages. Such systems are particularly useful when the data provided by publishers changes frequently and a large number of subscribers require rapid updates with the latest data. Perhaps the best example of its usefulness is the distribution of stock transaction data.

在这类系统中,数据消息发布应用程序不必知道将要接收消息的订阅应用程序的标识或地点。发布者只须连至一个发布/订阅分配代理过程,该过程包含于一组用于组成代理系统(此后称为代理程序)的这类过程中,它将消息送至分配代理过程,并说明送至分配代理过程的消息主题。该分配代理过程然后将发布的消息分配至订阅应用程序,这些订阅应用程序以前曾向代理程序表示过它们希望接收限定主题的数据消息。因此,订户也不必知道发布者的标识和地点。订户只须连至分配代理过程即可。In this type of system, the data message publishing application does not have to know the identity or location of the subscribing application to receive the message. Publishers need only connect to a pub/sub distribution agent process, included in a set of such processes used to make up a broker system (hereinafter referred to as brokers), which sends messages to the distribution agent process and specifies the sending The subject of the message to the dispatch agent process. The distribution broker process then distributes the published messages to subscribing applications that have previously indicated to the broker that they wish to receive data messages of a defined topic. Therefore, the subscriber also does not have to know the identity and location of the publisher. Subscribers need only connect to the distribution agent process.

图1中显示当今使用的一种这类发布/订阅系统。发布者11和12连至发布/订阅代理程序2并将发布的消息送至代理程序2,后者将消息分配至订户31、32、33、34。作为输出数据消息的数据处理应用程序的发布者11和12使用周知的称为远程过程调用(或RPC)的应用程序间数据连接协议连至代理程序2。每个发布应用程序可在单独的机器上运行,或者备择地,单个机器也可执行多个发布应用程序。代理程序2由多个分配代理(21至27)组成,后者用下面称之为“树结构”的层次方式连接起来。这些分配代理中可以每个在单独的机器上运行,它们是将数据消息自发布者通过代理程序2分配至订户的数据处理应用程序。订阅应用程序31、32、33和34通过RPC连至代理程序2以便接收发布的消息。One such publish/subscribe system in use today is shown in Figure 1. Publishers 11 and 12 are connected to publish/subscribe broker 2 and send published messages to broker 2 which distributes the messages to subscribers 31,32,33,34. Publishers 11 and 12, which are data processing applications for outgoing data messages, connect to broker 2 using a well-known inter-application data connection protocol known as Remote Procedure Call (or RPC). Each publishing application can run on a separate machine, or alternatively, a single machine can execute multiple publishing applications. The agent program 2 consists of a plurality of distribution agents (21 to 27) connected in a hierarchical manner which will be referred to below as a "tree structure". These distribution agents, which may each run on a separate machine, are data processing applications that distribute data messages from publishers to subscribers through the agent program 2 . Subscribing applications 31, 32, 33 and 34 are connected to broker 2 via RPC to receive published messages.

发布者11和12首先通过RPC直接连至一个根分配代理21,它又通过RPC连至第二层分配代理22和23,后者又通过RPC连至第三层分配代理24、25、26和27(亦称为“叶分配代理”,因为它们是树结构中的最后分配代理)。每个分配代理可在它自己的机器上运行,或者备择地,一个机器上可运行数组分配代理。叶分配代理通过RPC连至订阅应用程序31至34,后者之中每个可在它自己机器上运行。Publishers 11 and 12 are first connected directly by RPC to a root distribution agent 21, which in turn is connected by RPC to second-level distribution agents 22 and 23, which in turn are connected by RPC to third-level distribution agents 24, 25, 26 and 27 (also known as "leaf allocation agents" because they are the last allocation agents in the tree structure). Each allocation agent can run on its own machine, or alternatively, an array of allocation agents can run on one machine. The leaf distribution agent connects via RPC to the subscribing applications 31 to 34, each of which can run on its own machine.

为使代理程序2能确定哪个发布消息应送至哪个订户,发布者向根分配代理21提供每个发布消息的分配流名称。分配流(此后称为“流”)是具有名称的消息的有序序列(例如股票交易报价的流名称是“股票”),该名称用于将一个流与其它流区别开。类似地,订户向叶分配代理31至34提供它们希望订阅的流的名称。以此方式,代理程序2一直留意着哪个订户对哪个流感兴趣,因此当发布者向这些流发布消息时,这些消息就可以分配至相应的订户。也允许订户向代理程序提供筛选表示以限制在具体流中接收的消息(例如,只对IBM股票报价感兴趣的订户31可用以下方式向“股票”流订阅:向叶分配代理24发出RPC调用并包括筛选表示,要求只将“股票”流中与IBM股票有关的消息送至订户31)。In order for Broker 2 to determine which Publish message should go to which Subscriber, the Publisher provides the Root Distribution Broker 21 with the distribution stream name for each Publish message. A distribution stream (hereinafter "stream") is an ordered sequence of messages with a name (eg "stock" for a stock trade quote stream name) that is used to distinguish one stream from the other. Similarly, subscribers provide the leaf distribution agents 31 to 34 with the names of the streams they wish to subscribe to. In this way, Broker 2 keeps track of which subscribers are interested in which streams, so when publishers publish messages to these streams, these messages can be distributed to the corresponding subscribers. Subscribers are also allowed to provide filter representations to brokers to limit messages received in specific streams (for example, a subscriber 31 interested only in IBM stock quotes can subscribe to the "stock" stream by issuing an RPC call to the leaf distribution agent 24 and Included is a filter indicating that only IBM stock-related messages in the "stock" stream are required to be sent to the subscriber 31).

经常需要分配代理将某些事件通知其“孩子”(也即直接位于该分配代理下面的那些分配代理),以使孩子能采取适当行动。例如,如分醒代理22丢失了它与它父亲(根分配代理21)的连接,则分配代理22应通知其子分配代理24和25以便这些孩子能采取已由系统管理程序预先筹划的适当行动(例如分配代理24和25可以或者尝试与其它父亲连接,例如与分配代理23连接,或者只是简单地与分配代理22在一起,等待分配代理22重新获得它与根分配代理21的连接)。It is often desirable for a dispatch agent to notify its "children" (ie, those dispatch agents directly beneath it) of certain events so that the children can take appropriate action. For example, if the wake-up agent 22 loses its connection to its parent (the root distribution agent 21), the distribution agent 22 should notify its child distribution agents 24 and 25 so that these children can take appropriate actions that have been pre-planned by the hypervisor (For example distribution agents 24 and 25 may either try to connect with other parents, such as distribution agent 23, or simply stay with distribution agent 22, waiting for distribution agent 22 to regain its connection to root distribution agent 21).

在现有技术发布/订阅代理程序中,在父分配代理与其孩子之间的这类通信要求父亲应在正常发布/订阅消息流之外发送一个专门命令。这增加了分配代理间传送的通信种类。此外,与其兄弟中的一个相比较,一个孩子可能以不同顺序接收消息,这是由于父亲必须向每个孩子发送不同命令。因此,此领域中现有技术导致可用资源的低效使用和通常无法令人满意的体系结构方法。In prior art publish/subscribe brokers, this type of communication between a parent distribution broker and its children requires that the parent should send a special command outside of the normal publish/subscribe message flow. This increases the variety of communications passed between distribution agents. Furthermore, a child may receive messages in a different order than one of its siblings, since the father must send different commands to each child. Thus, the prior art in this field results in an inefficient use of available resources and a generally unsatisfactory architectural approach.

根据一个方面,本发明提供一种发布/订阅数据处理代理设备,它具有:一个用于自发布应用程序接收由发布应用程序发布的限定主题流中的数据消息的装置;以及一个用于将收到的所发布数据消息分配给一个曾请求接收曾发布过所发布消息的流中的消息的订阅应用程序的装置,用于分配的装置包括多个连接的分配代理数据处理单元;其中一个流是为由发布分配代理数据处理单元发布的消息保留的,并准备由位于发布分配代理数据处理单元邻近处的订阅分配代理数据处理单元接收,或者准备由位于发布分配代理数据处理单元邻近处的订阅应用程序接收。According to one aspect, the present invention provides a publish/subscribe data processing proxy device having: a means for receiving from the publishing application a data message in a stream of defined topics published by the publishing application; A means for distributing received published data messages to a subscribing application that has requested to receive messages in a stream that has published published messages, the means for distributing comprises a plurality of connected distribution agent data processing units; one of the streams is Reserved for messages published by a Publishing Distribution Agent data processing unit and intended to be received by a Subscribing Distribution Agent data processing unit located adjacent to a Publishing Distribution Agent data processing unit, or to be received by a Subscribing application located adjacent to a Publishing Distribution Agent data processing unit Program received.

根据第二方面,本发明提供一个发布/订阅数据处理代理设备,它具有:一个用于自发布应用程序接收由发布应用程序发布的限定主题流中的数据消息的装置;以及一个用于将收到的所发布数据消息分配给一个曾请求接收曾发布过所发布消息的流中的消息的订阅应用程序的装置,用于分配的装置包括多个安排在包括多个有序层次的层次结构中的分配代理数据处理单元,该有序层次包括最靠近发布应用程序的顶层和最靠近订阅应用程序的底层;其中一个流是为位于层次中一层上的发布分配代理数据处理单元发布的消息保留的,并准备由位于层次中相邻层上的订阅分配代理数据处理单元接收,或当发布分配代理数据处理单元位于层次中底层上时准备由订阅应用程序接收。According to a second aspect, the present invention provides a publish/subscribe data processing agent device having: a means for receiving from the publishing application a data message in a stream of defined topics published by the publishing application; A means for distributing a published data message to a subscribing application that has requested to receive a message in the stream that has published the published message, the means for distributing includes a plurality of The distribution agent data processing unit of the ordered hierarchy including the top level closest to the publishing application and the bottom level closest to the subscribing application; one of the streams is reserved for messages published by the publishing distribution agent data processing unit located one level up in the hierarchy and is intended to be received by a Subscription Distribution Agent data processing unit located on an adjacent layer in the hierarchy, or by a subscribing application when a Published Distribution Agent data processing unit is located on a lower layer in the hierarchy.

在收到保留的流中发布的消息后,订阅分配代理数据处理单元或订阅应用程序最好根据收到的发布消息内容采取预定动作。此外,发布应用程序或订阅应用程序中至少一个程序最好利用因特全球网浏览器以使所发布消息在因特网上发送或接收。Upon receipt of a published message in the retained stream, the subscription distribution agent data processing unit or subscription application preferably takes a predetermined action based on the content of the received published message. In addition, at least one of the publishing application or the subscribing application preferably utilizes an Internet web browser to enable the sending or receiving of published messages over the Internet.

本发明重新使用现有流体系结构以实现相邻分配代理之间(以及分配代理和与其直接相连的订户之间的)通信。因此不必要为这类通信使用另外的通信类型,因而导致可用系统资源的高效使用。The present invention reuses the existing streaming architecture to enable communication between adjacent distribution agents (and between distribution agents and their directly connected subscribers). It is therefore not necessary to use another communication type for this type of communication, thus resulting in an efficient use of available system resources.

此外,自例如父分配代理至其孩子的数据消息总是在流中按顺序传送,从而保证每个这类孩子完全按相同顺序接收所有这类消息,因此用于提供所得结果的高度稳定性和可预见性。Furthermore, data messages from e.g. a parent allocating agent to its children are always delivered in order in the stream, thereby guaranteeing that each such child receives all such messages in exactly the same order, thus serving to provide high stability and predictability.

根据第三和第四方面,本发明提供一种数据处理方法,该方法所具有的方法步骤分别对应于本发明的第一和第二方面的数据处理设备的每个部件。According to third and fourth aspects, the present invention provides a data processing method having method steps corresponding to each component of the data processing apparatus of the first and second aspects of the present invention, respectively.

根据第五和第六方面,本发明提供一个具有存放于其上的计算机程序的计算机可读存储媒体,当在计算机上运行时,该计算机程序分别执行本发明第三和第四方面的数据处理方法功能。According to the fifth and sixth aspects, the present invention provides a computer-readable storage medium having stored thereon a computer program which, when run on a computer, performs the data processing of the third and fourth aspects of the present invention, respectively. method function.

通过参照结合附图描述的优选实施例的详细描述,将能更好地理解本发明,附图中:The invention will be better understood by reference to the detailed description of the preferred embodiment described in conjunction with the accompanying drawings, in which:

图1显示与本发明优选实施例有关的发布/订阅系统的体系结构。Fig. 1 shows the architecture of the publish/subscribe system related to the preferred embodiment of the present invention.

图2是显示根据本发明优选实施例的父分配代理所采取步骤的流程图;Figure 2 is a flowchart showing the steps taken by a parent distribution agent according to a preferred embodiment of the present invention;

图3是显示根据本发明优选实施例的子分配代理所采取步骤的流程图;以及Figure 3 is a flowchart showing steps taken by a sub-allocation agent according to a preferred embodiment of the present invention; and

图4显示在执行图2和3流程图中步骤之后的图1代理体系结构的替代版本。FIG. 4 shows an alternative version of the broker architecture of FIG. 1 after performing the steps in the flowcharts of FIGS. 2 and 3. FIG.

图1中在计算机上运行的发布应用程序11是例如现场股票交易数据报价的供应者。也即,发布应用程序11提供用于报道股票价格当前值的每分钟消息。此例中,发布应用程序11正在发行早已在代理程序2中配置好的称为“股票”的流中的消息。众所周知,当发布者11希望向“股票”流发布股票报价消息时,发布者11向位于代理树结构顶层的根分配代理21发出RPC调用。此例中,在另一计算机上运行的订阅应用程序32已通过RPC调用向位于树结构底层的叶分配代理24发送一个订阅请求,以标示订户32希望向“股票”流订阅。The publishing application 11 running on the computer in FIG. 1 is, for example, a provider of live stock trading data quotes. That is, the publishing application 11 provides minute-by-minute news reporting the current value of stock prices. In this example, the publishing application 11 is publishing messages in a stream called "stock" that has already been configured in the broker 2. As is well known, when a publisher 11 wishes to publish a stock quote message to the "stock" stream, the publisher 11 issues an RPC call to the root dispatch agent 21 at the top of the agent tree structure. In this example, the subscription application 32 running on another computer has sent a subscription request via RPC call to the leaf distribution agent 24 at the bottom of the tree structure, indicating that the subscriber 32 wishes to subscribe to the "stock" stream.

因此,任何时候当发布者11向“股票”流发布数据消息时,代理程序2的分配树结构将消息通过根分配代理21往下送,通过任何中间分配代理(例如图1例中的22)及通过叶分配代理24送至订户32。这涉及一系列在图1中连接发布者11与订户32的每个连续圆圈之间所发生的RPC调用(即11至21,21至22,22至24和24至32)。Thus, anytime a publisher 11 publishes a data message to the "stock" stream, the distribution tree structure of the broker 2 sends the message down through the root distribution agent 21, through any intermediate distribution agents (such as 22 in the example of Figure 1) And to the subscriber 32 through the leaf distribution agent 24. This involves a series of RPC calls (ie 11 to 21, 21 to 22, 22 to 24 and 24 to 32) that occur between each successive circle connecting the publisher 11 and the subscriber 32 in Figure 1 .

迄今已描述了现有技术发布/订阅代理程序的操作。现描述本发明的优选实施例。The operation of a prior art publish/subscribe broker has been described so far. Preferred embodiments of the present invention are now described.

如分配代理22丢失了它与它父亲(即根分配代理21)的连结,则这意味着在分配代理22重新获得它与根分配代理21的连接之前,作为分配代理22的孩子的分配代理24和25将无法进一步接收任何数据消息。当然,连至分配代理24的订户31和32(及连至分配代理25的任何订户)也将接不到任何数据消息。分配代理22必须将丢失连接一事通知其孩子24和25,以便这些孩子能采取恰当行动(例如连至分配代理22的兄弟,如分配代理23)。孩子应采取哪些恰当行动的细节应预先由系统管理程序将它作为预配置政策加以规定。If the distribution agent 22 loses its connection with its parent (i.e. the root distribution agent 21), then this means that the distribution agent 24, which is a child of the distribution agent 22, before the distribution agent 22 regains its connection with the root distribution agent 21 and 25 will not be able to receive any further data messages. Of course, subscribers 31 and 32 connected to distribution agent 24 (and any subscribers connected to distribution agent 25) will also not receive any data messages. The distribution agent 22 must notify its children 24 and 25 of the lost connection so that these children can take appropriate action (eg connect to a sibling of the distribution agent 22, such as the distribution agent 23). The details of what appropriate action a child should take should be pre-specified by the hypervisor as a pre-configured policy.

图2的流程图阐释了根据本发明优选实施例的分配代理22所采取的操作步骤。2 is a flowchart illustrating the operational steps taken by distribution agent 22 in accordance with the preferred embodiment of the present invention.

在步201,分配代理22检测到它已丢失与它父亲(根分配代理21)的连接。在步202,分配代理22在一个称为“信息流”的为父分配代理与其孩子之间传送信息用而保留的流中发布一条消息。只有分配代理才能在此流中用作发布者,要作一个安全检验以便在允许发布者在此流中发布之前确定发布者是否为分配代理。任何时候当一个新孩子(不论它是分配代理或是订户)连至分配代理(它是该孩子的父亲),该孩子向“信息流”流订阅,以便该孩子能容易地自它的父分配代理接收消息。分配代理22在步骤202中发布消息通知代理22的孩子24和25,告诉它们代理22已丢失它与代理21的连接。In step 201, the distribution agent 22 detects that it has lost its connection to its parent (the root distribution agent 21). In step 202, the distribution agent 22 publishes a message in a stream called the "message stream" reserved for the transfer of information between the parent distribution agent and its children. Only Allocation Agents can be used as Publishers in this stream, a security check is made to determine if a Publisher is an Allocation Agent before allowing a Publisher to publish in this stream. Whenever a new child (whether it is a distribution agent or a subscriber) connects to a distribution agent (which is the child's parent), the child subscribes to the "feed" stream so that the child can easily distribute from its parent The agent receives the message. The distribution agent 22 notifies the children 24 and 25 of the agent 22 by issuing a message in step 202, telling them that the agent 22 has lost its connection with the agent 21.

图3的流程图阐释了根据本发明的优选实施例在收到由父分配代理22在步202中发布的消息后子分配代理24和25所采取的操作步骤。3 is a flowchart illustrating the operational steps taken by child distribution agents 24 and 25 upon receipt of the message issued by parent distribution agent 22 in step 202 in accordance with the preferred embodiment of the present invention.

在步301,子分配代理24和25接收由父分配代理22发布的消息。这是由父分配代理22启动对每个子分配代理24和25的RPC调用而完成的。当子分配代理第一次作为分配代理22的孩子参加该树时,它们早就向“信息流”流订阅。在步302,子分配代理24和25遵循由系统管理程序设置的预配置政策,以便通知代理24和25:当它们收到“信息流”流中来自它们父亲的消息,消息中告诉它们父亲已丢失与其父亲的连接时,它们应该做什么。此例中,预配置政策是:在此情况下子分配代理应连接另一选代父亲23,后者是已丢失与其父亲21的连接的初始父亲22的兄弟。因此,代理24和25向代理23发出RPC调用(它又向根分配代理21发出RPC调用),请求本来通过代理22送至代理24和25的发布消息现在应通过代理23发送。图4显示阐释此改变的发布/订阅代理程序2的树结构的修改版本。At step 301, the child distribution agents 24 and 25 receive messages published by the parent distribution agent 22. This is done by the parent distribution agent 22 initiating an RPC call to each of the child distribution agents 24 and 25 . When child Allocation Agents first join the tree as children of Allocation Agent 22, they are already subscribed to the "Information Stream" stream. In step 302, sub-allocation agents 24 and 25 follow pre-configured policies set by the hypervisor to notify agents 24 and 25 that when they receive a message from their father in the "info" stream telling them that the father has What they should do when they lose connection to their parent. In this example, the pre-configured policy is that in this case the sub-allocation agent should connect to another alternate parent 23 which is a brother of the original parent 22 which has lost connection to its parent 21 . Thus, agents 24 and 25 issue RPC calls to agent 23 (which in turn issues an RPC call to root distribution agent 21), requesting that publish messages that would have been sent to agents 24 and 25 via agent 22 should now be sent via agent 23. Figure 4 shows a modified version of the tree structure of the Publish/Sub Broker 2 illustrating this change.

应注意,在步301之后孩子遵循的另一选代政策是在父代理22重新获得它与根代理21的连接之前只是等待。然而,此政策的结果是当丢失连接时订户31和32在接收消息中感受到延迟。当再度建立连接时,在丢失连接期间发布的消息可自永久存储器(由根代理21所维持)中检索出并通过代理22和24送至订户31和32。It should be noted that another generation policy followed by the child after step 301 is to simply wait until the parent broker 22 regains its connection to the root broker 21. However, a consequence of this policy is that subscribers 31 and 32 experience a delay in receiving messages when the connection is lost. When the connection is re-established, the messages published during the lost connection can be retrieved from persistent storage (maintained by the root broker 21) and sent to the subscribers 31 and 32 via the brokers 22 and 24.

在上面使用“信息流”流在父亲与其孩子通信的例子中,一个父亲对其每个孩子送一条消息。与分配树中其它流一样,父亲也可根据所送消息的性质来选择在“信息流”流中将特定消息送给它孩子中的哪一个。例如,“信息流”的另一用途是父分配代理希望通知订户31(它是代理24的孩子)说,订户31已丧失其在流(例如“股票”流)中接收消息的授权。例如,这可能是一个公司经过重组,并已改变可以查阅一定数据的订户。另一方面,订户32并未丧失其在此流中接收消息的授权。因此,父亲24通过RPC只向订户31在“信息流”流中发布消息,其内容是通知订户31,订户31不再被授权在流(例如“股票”流)中接收消息。在此情况下,订户收到此消息后不必采取任何特殊响应。然而已清楚地通知订户31,它不要指望“股票”流中再有任何消息。In the example above where a parent communicates with its children using the "message flow" flow, a parent sends a message to each of its children. As with other flows in the distribution tree, the parent can also choose which of its children to send a particular message to in the "Information Flow" flow, based on the nature of the message being sent. For example, another use of "Information Stream" is when a parent distribution agent wishes to notify Subscriber 31 (which is a child of Agent 24) that Subscriber 31 has lost its authorization to receive messages in a stream (such as the "Stock" stream). For example, this could be a company that has been restructured and has changed the subscribers who can view certain data. Subscriber 32, on the other hand, has not lost its authorization to receive messages in this stream. Therefore, the father 24 publishes a message via RPC only to the subscriber 31 in the "Information Stream" stream, the content of which is to inform the subscriber 31 that the subscriber 31 is no longer authorized to receive messages in the stream (eg "Stock" stream). In this case, the subscriber need not take any special response to this message. Subscriber 31 is however clearly informed that it should not expect any more news in the "stock" stream.

“信息流”流还有一个用途是使负载均衡的情况,假定叶分配代理24正在忙碌地将消息发送给它孩子中的一个(订户31),也即送至订户31的消息负担很重。父分配代理24可在“信息流”流中发布一条消息,告诉它的其它孩子(订户32)以便在繁重通信期间临时将分配代理25连至订户32。订户32然后通过向代理25发出RPC调用而连至代理25。稍后时间,如果代理25由于负荷过多而过载,则代理25可在“信息流”流中发布一条消息,通过订户32重新连至其初始父亲24。响应于此发布消息,订户32然后通过对初始父亲24的RPC调用来重新连至其初始父亲24。Another use of the "information flow" flow is to load balance the situation, assuming that the leaf distribution agent 24 is busy sending messages to one of its children (subscriber 31), ie the message load to the subscriber 31 is heavy. The parent distribution agent 24 may publish a message in the "info" stream telling its other children (subscribers 32) to temporarily connect the distribution agent 25 to the subscriber 32 during periods of heavy communication. Subscriber 32 then connects to proxy 25 by issuing an RPC call to proxy 25 . At a later time, if the proxy 25 becomes overloaded with too much load, the proxy 25 can publish a message in the "info" stream to reconnect to its original parent 24 via the subscriber 32 . In response to this publish message, the subscriber 32 then reconnects to its original parent 24 through an RPC call to the original parent 24 .

虽然为了阐释目的在优选实施例中描述了分配代理过程的层次树结构,但本发明的范围也包括许多其它体系结构。本发明也可用于一组跨越不同类型网络(包括局域网和广域网)和不同类型机器以及使用不同过程间通信协议(例如RPC,插口,TCP/IP或其它任何众所周知的过程间通信协议)的协作过程组的环境。例如,本发明也可用于因特网环境中,因特网涉及多个连接不同类型机器的不同类型网络。在不使用树结构的实施例中,“信息流”不但用于在父和子过程间传送信息,而且更广泛地在相邻过程间传送信息(也即,彼此相邻的过程,及使用周知的过程间通信协议而不通过中间过程彼此间直接通信)。Although a hierarchical tree structure of distribution agent processes is described in the preferred embodiment for purposes of illustration, many other architectures are also within the scope of the present invention. The invention is also applicable to a set of cooperating processes spanning different types of networks (including local and wide area networks) and different types of machines and using different inter-process communication protocols (such as RPC, sockets, TCP/IP or any other well-known inter-process communication protocol) group environment. For example, the invention may also be used in the context of the Internet, which involves many different types of networks connecting different types of machines. In embodiments that do not use a tree structure, "message flow" is used not only to pass information between parent and child processes, but more generally between adjacent processes (that is, processes that are next to each other, and using the well-known Interprocess communication protocols communicate directly with each other without going through intermediate processes).

Claims (8)

1. a publish/subscribe data processing agent equipment comprises:
Be used for from issuing the device that application program receives the data-message of being issued at the stream that limits theme by the issue application program; And
The distributing data distribution of messages that is used for receiving is to the device of subscribing to application program, and this subscription application program once asked to receive the message of once issuing therein in the stream that gives out information, and is used for the assignment agent data processing unit that assigned unit comprises a plurality of connections;
It is that the serve as reasons message of issue assignment agent data processing unit issue keeps that a stream is wherein arranged, and prepare to receive by the subscription assignment agent data processing unit that is positioned at the contiguous place of issue assignment agent data processing unit, perhaps prepare to receive by the subscription application program that is positioned at the contiguous place of issue assignment agent data processing unit.
2. a publish/subscribe data processing agent equipment comprises:
Be used for from issuing the device that application program receives the data-message of being issued at the stream that limits theme by the issue application program; And
The distributing data distribution of messages that is used for receiving is to the device of subscribing to application program, this subscription application program once asked to receive the message of once issuing therein in the stream that gives out information, this is used for assigned unit and comprises a plurality of assignment agent data processing units that are arranged in the hierarchical structure that comprises a plurality of orderly levels, and this orderly level comprises the top layer of the most close issue application program and the bottom of the most close subscription application program;
One of them stream is to keep for the message that is arranged in the issue assignment agent data processing unit issue on level one deck, and prepare to receive by the subscription assignment agent data processing unit that is arranged on the level adjacent layer, maybe when being arranged on the level bottom, prepares issue assignment agent data processing unit to receive by subscribing to application program.
3. the equipment of claim 1 wherein after the message of issuing in receiving the stream of reservation, is subscribed to the assignment agent data processing unit or is subscribed to application program and take predetermined action according to the content of receiving that gives out information.
4. the equipment of claim 1, wherein at least one issue application program or subscribe to the application program utilization and sending on the Internet or receiving so that will give out information because of special World Wide Web browser.
5. a publish/subscribe data processing Proxy Method may further comprise the steps:
Limiting the data-message of issuing in the stream of theme from the reception of issue application program by the issue application program; And
To subscribing to application program, this subscription application program once asked to receive the message of once issuing therein in the stream that gives out information, and was used for the assignment agent data processing unit that assigned unit comprises a plurality of connections with the distributing data distribution of messages received;
It is that the serve as reasons message of issue assignment agent data processing unit issue keeps that a stream is wherein arranged, and prepare to receive, or prepare to receive by the subscription application program that is positioned at the contiguous place of issue assignment agent data processing unit by the subscription assignment agent data processing unit that is positioned at the contiguous place of issue assignment agent data processing unit.
6. a publish/subscribe data processing Proxy Method may further comprise the steps:
Limiting the data-message of issuing in the stream of theme from the reception of issue application program by the issue application program; And
With the distributing data distribution of messages received to subscribing to application program, this subscription application program once asked to receive the message of once issuing therein in the stream that gives out information, be used for assigned unit and comprise a plurality of assignment agent data processing units that are arranged in the hierarchical structure that comprises a plurality of orderly levels, this orderly level comprises the top layer of the most close issue application program and the bottom of the most close subscription application program;
One of them stream is to keep for the message that is arranged in the issue assignment agent data processing unit issue on level one deck, and prepare to receive by the subscription assignment agent data processing unit that is arranged on the level adjacent layer, maybe when being arranged on the level bottom, prepares issue assignment agent data processing unit to receive by subscribing to application program.
7. computer program that is stored on the computer-readable storage medium, when moving on computers, this computer program is carried out the publish/subscribe data processing Proxy Method that may further comprise the steps:
Limiting the data-message of issuing in the stream of theme from the reception of issue application program by the issue application program; And
To subscribing to application program, this subscription application program once asked to receive the message of once issuing therein in the stream that gives out information, and was used for the assignment agent data processing unit that assigned unit comprises a plurality of connections with the distributing data distribution of messages received;
One of them stream is that the serve as reasons message of issue assignment agent data processing unit issue keeps, and prepare to receive, or prepare to receive by the subscription application program that is positioned at the contiguous place of issue assignment agent data processing unit by the subscription assignment agent data processing unit that is positioned at the contiguous place of issue assignment agent data processing unit.
8. computer program that is stored on the computer-readable storage medium, when moving on computers, this computer program is carried out the publish/subscribe data processing Proxy Method that may further comprise the steps:
Limiting the data-message of issuing in the stream of theme from the reception of issue application program by the issue application program; And
With the distributing data distribution of messages received to subscribing to application program, this subscription application program once asked to receive the message of once issuing therein in the stream that gives out information, be used for assigned unit and comprise a plurality of assignment agent data processing units that are arranged in the hierarchical structure that comprises a plurality of orderly levels, this orderly level comprises the top layer of the most close issue application program and the bottom of the most close subscription application program;
One of them stream is to keep for the message that is arranged in the issue assignment agent data processing unit issue on level one deck, and prepare to receive by the subscription assignment agent data processing unit that is arranged on the level adjacent layer, maybe when being arranged on the level bottom, prepares issue assignment agent data processing unit to receive by subscribing to application program.
CN 99107057 1998-06-25 1999-05-26 Publish and subscribe data processing apparatus, method and computer program product Pending CN1240964A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 99107057 CN1240964A (en) 1998-06-25 1999-05-26 Publish and subscribe data processing apparatus, method and computer program product

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN 99107057 CN1240964A (en) 1998-06-25 1999-05-26 Publish and subscribe data processing apparatus, method and computer program product
US104811 2002-03-22

Publications (1)

Publication Number Publication Date
CN1240964A true CN1240964A (en) 2000-01-12

Family

ID=5272612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 99107057 Pending CN1240964A (en) 1998-06-25 1999-05-26 Publish and subscribe data processing apparatus, method and computer program product

Country Status (1)

Country Link
CN (1) CN1240964A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100591056C (en) * 2006-01-06 2010-02-17 国际商业机器公司 Method and system for processing messages
CN101583942B (en) * 2005-02-02 2011-10-05 赛尼维斯Icx有限公司 Method and apparatus for implementing themes for handheld devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101583942B (en) * 2005-02-02 2011-10-05 赛尼维斯Icx有限公司 Method and apparatus for implementing themes for handheld devices
CN100591056C (en) * 2006-01-06 2010-02-17 国际商业机器公司 Method and system for processing messages

Similar Documents

Publication Publication Date Title
US6182143B1 (en) Publish and subscribe data processing apparatus, method and computer program product with use of a stream to distribute local information between neighbors in a broker structure
US7734778B2 (en) Distributed intelligent virtual server
US7333974B2 (en) Queuing model for a plurality of servers
US7664844B2 (en) Managing network errors communicated in a message transaction with error information using a troubleshooting agent
US7200657B2 (en) Autonomic provisioning of network-accessible service behaviors within a federated grid infrastructure
US6334151B1 (en) Publish and subscribe data processing apparatus, method and computer program product with declaration of a unique publisher broker
US6202093B1 (en) Publish and subscribe data processing with ability to specify a local publication/subscription
CN100479456C (en) Method and system for remote dynamic configuration of web servers to facilitate required capabilities
JP4870812B2 (en) Method, apparatus and program for synchronizing an active feed adapter and a backup feed adapter in a high speed, low latency data communication environment
US20170070457A1 (en) Multiplexed demand signaled distributed messaging
US20030018766A1 (en) Differentiated quality of service context assignment and propagation
US20090006560A1 (en) Terminating An Application Message Subscription
WO2008000625A1 (en) Reliable messaging using redundant message streams in a high speed, low latency data communications environment
US7051118B2 (en) Method and apparatus for anonymous subject-based addressing
US20070299936A1 (en) Interactively streaming data from a database in a high speed, low latency data communications environment
EP1480381A2 (en) Method and system for message based policy distribution
EP0961452A2 (en) Publish & subscribe data processing apparatus, method and computer program product with use of a stream to distribute administrative and configuration information
US20080114938A1 (en) Application Message Caching In A Feed Adapter
US20080059554A1 (en) distributed computing environment
CN1240964A (en) Publish and subscribe data processing apparatus, method and computer program product
GB2354349A (en) Event notification data processing with command and command notification combined into a single event
GB2345162A (en) Publish and subscribe data processing with distribution agents configured to support certain streams
US7493625B2 (en) Hierarchical event filtering for multiple parent event types
US20050193394A1 (en) Hierarchical event filtering for storage server
Tsaoussidis et al. An application-oriented cross-domain resource management schema using CORBA

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication