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 PDFInfo
- 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
- application program
- data processing
- issue
- processing unit
- assignment agent
- 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
Landscapes
- Computer And Data Communications (AREA)
Abstract
A publish/subscribe data processing broker apparatus has: a means for receiving from a publisher application data messages published on a subject-specific stream by the publisher application; and a means for distributing the received published data messages to a subscriber application which has requested to receive messages on the stream upon which the published messages were published, the means for distributing including a plurality of connected distribution agent data processing units; wherein one of the streams is reserved for messages published by a publishing distribution agent data processing unit and intended for receipt by a subscribing distribution agent data processing unit located adjacent the publishing distribution agent data processing unit or intended for receipt by a subscriber application located adjacent the publishing distribution agent data processing unit.
Description
The present invention relates to data processing field, relate more specifically to be used for message is distributed to from data-message supplier (after this being called " publisher ") consumer's's (after this being called " subscriber ") of this class message data processing.
The publish/subscribe data handling system is universal day by day in recent years, as data-message is issued a kind of means that computing machine is dispensed to subscriber's computing machine certainly.The ever-increasing popularity of the Internet that the different computing machine of kind is all over the world coupled together helps to make this class publish/subscribe system more popular.The World Wide Web browser application of the Internet (" application program " or " process " speech means software program or its part of operation on computers) can be used from figure ground display message with publisher or subscriber one.When the data that provided by the publisher often change and a large amount of subscriber request when upgrading with latest data apace, this type systematic is particularly useful.Perhaps illustrate that its useful preferred examples is the distribution of stock exchange data.
In this type systematic, data-message issue application program needn't be known the sign or the place of the subscription application program that will receive message.The publisher need only be connected to a publish/subscribe assignment agent process, this process is contained in one group and is used for forming agency plant this class process of (after this being called Agent), it delivers to the assignment agent process with message, and the message subject of assignment agent process is delivered in explanation.This assignment agent process then with the distribution of messages of issue to subscribing to application program, these are subscribed to application programs and once represented to Agent that their wished to receive the data-message that limits theme in the past.Therefore, the subscriber also needn't know publisher's sign and place.The subscriber need only be connected to the assignment agent process and get final product.
Show current a kind of this class publish/subscribe system that uses among Fig. 1. Publisher 11 and 12 be connected to publish/subscribe Agent 2 and with the issue message deliver to Agent 2, the latter with distribution of messages to subscriber 31,32,33,34.Use as the publisher 11 and 12 of the data process application of output data message that the data connection protocol is connected to Agent 2 between the known application program that is called remote procedure call (or RPC).Each issue application program can be moved on independent machine, perhaps selects ground fully, and individual machine also can be carried out a plurality of issue application programs.Agent 2 is made up of a plurality of assignment agent (21 to 27), and the level mode that is referred to as " tree construction " below the latter uses couples together.Can each move on independent machine in these assignment agent, they are the data process applications that data-message are dispensed to the subscriber from the publisher by Agent 2.Subscribe to application program 31,32,33 and 34 and be connected to Agent 2 so that receive the message of issue by RPC.
Can determine which gives out information to deliver to which subscriber, the branch flow title that the publisher provides each to give out information to root assignment agent 21 for making Agent 2.Dividing flow (after this being called " stream ") is the ordered sequence (for example the stream title of stock exchange quotation is " stock ") with message of title, and this title is used for a stream and other stream are differentiated.Similarly, subscriber Xiang Ye assignment agent 31 to 34 provides them to wish the title of the stream of subscription.In this way, which influenza interest which subscriber Agent 2 be careful to always, therefore when the publisher when these streams give out information, these message just can be dispensed to corresponding subscriber.Also allow the subscriber to provide screening expression (for example to be limited in the message that receives in the concrete stream to Agent, only can subscribe to " stock " stream with following mode the interested subscriber 31 of IBM stock quotation: send RPC to leaf assignment agent 24 and call and comprise the screening expression, the message relevant with IBM stock is delivered to subscriber 31 in requiring only " stock " to be flowed).
Often need assignment agent with some event notice its " child " (also promptly be located immediately at this assignment agent below those assignment agent), so that child can take appropriate action.For example, as divide the agency 22 that wakes up to lose it and being connected of its father (root assignment agent 21), then assignment agent 22 should notify its sub-assignment agent 24 with 25 in case the suitable action that these children can take to have been prepared in advance by system supervisor (for example assignment agent 24 and 25 can or attempt being connected with other father, for example be connected with assignment agent 23, perhaps just simply with assignment agent 22 together, wait for that assignment agent 22 regains it and being connected of root assignment agent 21).
In prior art publish/subscribe Agent, should outside normal publish/subscribe message flow, send a special order this class communicating requirement father between father's assignment agent and its child.This has increased the communications category that transmits between assignment agent.In addition, compare with among its brother one, a child may receive message with different order, and this is because father must send different command to each child.Therefore, prior art causes the poor efficiency of available resources to use and usually can't gratifying architectural approach in this field.
According to an aspect, the invention provides a kind of publish/subscribe data processing agent equipment, it has: one is used for from issuing the device of application program reception by the data-message that limits theme stream of issue application issued; And one be used for the institute's distributing data distribution of messages that will receive and receive the device of the subscription application program of the message of once issuing the stream that is given out information for a request once, is used for the assignment agent data processing unit that assigned unit comprises a plurality of connections; One of them stream is that the serve as reasons message of issue assignment agent data processing unit issue keeps, 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.
According to second aspect, the invention provides a publish/subscribe data processing agent equipment, it has: one is used for from issuing the device of application program reception by the data-message that limits theme stream of issue application issued; And institute's distributing data distribution of messages that is used for receiving receives the device of the subscription application program of the message of once issuing the stream that is given out information for a request once, 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.
After the message of issuing in receiving the stream of reservation, subscription assignment agent data processing unit or subscription application program are preferably taked predetermined action according to the content of receiving that gives out information.In addition, issue application program or subscribe in the application program that at least one program is preferably utilized because of special World Wide Web browser so that give out information is sending on the Internet or reception.
The present invention reuse existing flowing system structure with realize between the adjacent assignment agent (and assignment agent and with subscriber that it directly links to each other between) communication.Therefore it be not necessary for this class communication and use other communication type, thereby cause the efficient use of free system resources.
In addition, the data-message from father's assignment agent for example to its child always transmits in stream in order, thereby guarantees that each this class child receives all these class message by same sequence fully, therefore is used to provide gained result's high stability and predictable.
According to third and fourth aspect, the invention provides a kind of data processing method, the method step that this method had corresponds respectively to each parts of the data processing equipment of first and second aspects of the present invention.
According to the 5th and the 6th aspect, the invention provides one and have the computer-readable storage medium of depositing computer program thereon, when moving on computers, this computer program is carried out the data processing method function of the present invention third and fourth aspect respectively.
By with reference to the detailed description of preferred embodiment of describing in conjunction with the accompanying drawings, can understand the present invention better, in the accompanying drawing:
Fig. 1 shows the architecture of the publish/subscribe system relevant with the preferred embodiment of the present invention.
Fig. 2 is the process flow diagram that shows that father's assignment agent is according to the preferred embodiment of the invention taken steps;
Fig. 3 is the process flow diagram that shows that sub-assignment agent is according to the preferred embodiment of the invention taken steps; And
Fig. 4 is presented at the alternate version of Fig. 1 agent architecture after the step in execution graph 2 and 3 process flow diagrams.
The issue application program of moving on computers among Fig. 1 11 is suppliers of for example on-the-spot stock exchange data quotation.Also promptly, issue application program 11 is provided for reporting the per minute message of stock price currency.In this example, issue application program 11 is being issued the message in the stream that is called " stock " that configures already in Agent 2.As everyone knows, when publisher 11 wished to " stock " stream issue stock quotation message, publisher 11 sent RPC and calls to being positioned at the root assignment agent 21 of acting on behalf of the tree construction top layer.In this example, the subscription application program of moving on another computing machine 32 has been called to the leaf assignment agent 24 that is positioned at the tree construction bottom by RPC and has been sent a subscribe request, wishes to subscribe to " stock " stream to indicate subscriber 32.
Therefore, whenever as publisher 11 during to " stock " stream distributing data message, the allocation tree structure of Agent 2 is down sent message by root assignment agent 21, reaches by any distributed amongst agency (for example 22 in Fig. 1 example) and delivers to subscriber 32 by leaf assignment agent 24.This relates to a series of RPC that taken place between each continuous circle of publisher 11 and subscriber 32 that connect and calls (promptly 11 to 21,21 to 22,22 to 24 and 24 to 32) in Fig. 1.
The operation of prior art publish/subscribe Agent has been described so far.The preferred embodiments of the present invention are now described.
Lost it and its father's's (being root assignment agent 21) binding as assignment agent 22, then this means assignment agent 22 regain it with being connected of root assignment agent 21 before, can't further receive any data-message as the child's of assignment agent 22 assignment agent 24 and 25.Certainly, the subscriber 31 and 32 any subscriber of assignment agent 25 (and be connected to) who is connected to assignment agent 24 will not receive any data-message yet.Assignment agent 22 must will be lost connection one thing and be notified its child 24 and 25, so that these children can take appropriate action (for example being connected to the brother of assignment agent 22, as assignment agent 23).Child should take the details of which appropriate action by system supervisor it to be stipulated as pre-configured policy in advance.
The process flow diagram of Fig. 2 has been explained the operation steps that assignment agent 22 is according to the preferred embodiment of the invention taked.
In the step 201, assignment agent 22 detects it and has lost and being connected of its father (root assignment agent 21).In the step 202, assignment agent 22 one be called " information flow " for father's assignment agent and its child between issue a piece of news in the transmission information usefulness stream that keeps.Have only assignment agent in this stream, to be used as the publisher, make a safety verification so that allowing the publisher in this stream, to determine whether the publisher is assignment agent before the issue.Whenever be connected to assignment agent (it is this child's father) as a new child (no matter it is assignment agent or subscriber), this child subscribes to " information flow " stream, so that this child can be easily received message from its father's assignment agent.Give out information in step 202 child 24 and 25 of notification agent 22 of assignment agent 22 tells their agencies 22 to lose it and acts on behalf of 21 be connected.
The process flow diagram of Fig. 3 has been explained sub-assignment agent 24 and 25 operation stepss of being taked after receiving by the message of father's assignment agent 22 issue in the step 202 according to a preferred embodiment of the invention.
In the step 301, sub-assignment agent 24 and 25 message that receive by 22 issues of father's assignment agent.This starts RPC to each sub-assignment agent 24 and 25 by father's assignment agent 22 and calls and finish.When the group assignment agent was for the first time participated in this tree as the child of assignment agent 22, they were for a long time to the subscription of " information flow " stream.In the step 302, sub-assignment agent 24 and 25 is followed the pre-configured policy that is provided with by system supervisor, so that notification agent 24 and 25: receive in " information flow " stream from their fathers' message when them, tell in the message what they should do when their fathers had lost with being connected of its father.In this example, pre-configured policy is: sub-in the case assignment agent should connect another and select godfather parent 23, and the latter is the brother who has lost with its father 21 the initial father 22 who is connected.Therefore, agency 24 and 25 sends RPC and calls (it sends RPC to root assignment agent 21 again and calls) to agency 23, and request was delivered to giving out information of agency 24 and 25 and should be sent by agency 23 now by acting on behalf of 22 originally.Fig. 4 shows the revision of the tree construction of the publish/subscribe Agent 2 of explaining this change.
It should be noted that child follows after the step 301 another choosing for policy be parent reason 22 regain it with being connected of root agent 21 before be wait.Yet the result of this policy is that subscriber 31 and 32 experiences delay in receiving message when losing connection.When connecting once again, the message of issuing during losing connection can retrieve in permanent storage (being kept by root agent 21) and deliver to subscriber 31 and 32 by acting on behalf of 22 and 24.
Use " information flow " stream in the above in father and example that its child communicates by letter, a father send a piece of news to its each child.The same with other stream in the allocation tree, father also can be chosen in according to the character of sending message in " information flow " stream and particular message to be given among its child which.For example, another purposes of " information flow " is that father's assignment agent wishes to notify subscriber 31 (it is agency 24 child) to say, subscriber 31 has lost its mandate that receives message in stream (for example " stock " stream).For example, this may be company's process reorganization, and has changed the subscriber that can consult a given data.On the other hand, subscriber 32 does not lose its mandate that receives message in this stream.Therefore, father 24 only gives out information in " information flow " stream to subscriber 31 by RPC, and its content is to notify subscriber 31, and subscriber 31 no longer is authorized to receive message in stream (for example " stock " stream).In the case, the subscriber needn't take any specific respone after receiving this message.Yet clearly notify subscriber 31, it does not look in " stock " stream any message being arranged again.
It is the situation that makes load balancing that " information flow " stream also has a purposes, supposes that leaf assignment agent 24 is sending to message one (subscriber 31) among its child busily, and the message burden of also promptly delivering to subscriber 31 is very heavy.Father's assignment agent 24 can be issued a piece of news in " information flow " stream, other child (subscriber 32) who tells it is so that be connected to subscriber 32 with assignment agent 25 in heavy communication period temporarily.Subscriber 32 then by to agency 25 send RPC call be connected to agency 25.Time after a while, transship owing to overloading if act on behalf of 25, then act on behalf of 25 and can in " information flow " stream, issue a piece of news, be connected to its initial father 24 again by subscriber 32.Give out information in response to this, subscriber 32 calls by the RPC to initial father 24 then and is connected to its initial father 24 again.
Though described the hierarchical tree structure of assignment agent process in a preferred embodiment in order to explain purpose, scope of the present invention also comprises many other architectures.The present invention also can be used for one group and crosses over different type network (comprising LAN (Local Area Network) and wide area network) and dissimilar machine and use (the RPC for example of communication protocol between various process, socket, TCP/IP or other any well-known interprocedual communication protocol) the environment of cooperating process group.For example, the present invention also can be used in the internet environment, and the Internet relates to the different type network of the dissimilar machines of a plurality of connections.In the embodiment that does not use tree construction, " information flow " not only is used for transmitting information at father and son's interprocedual, and more widely between adjacent process transmission information (also promptly, process adjacent one another are, and use known interprocedual communication protocol and by pilot process direct communication to each other).
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.
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 |
---|---|---|---|
US104811 | 1998-06-25 | ||
CN 99107057 CN1240964A (en) | 1998-06-25 | 1999-05-26 | Publish and subscribe data processing apparatus, method and computer program product |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100591056C (en) * | 2006-01-06 | 2010-02-17 | 国际商业机器公司 | Method and system for processing message |
CN101583942B (en) * | 2005-02-02 | 2011-10-05 | 赛尼维斯Icx有限公司 | A method and apparatus to implement themes for a handheld device |
-
1999
- 1999-05-26 CN CN 99107057 patent/CN1240964A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101583942B (en) * | 2005-02-02 | 2011-10-05 | 赛尼维斯Icx有限公司 | A method and apparatus to implement themes for a handheld device |
CN100591056C (en) * | 2006-01-06 | 2010-02-17 | 国际商业机器公司 | Method and system for processing message |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100300787B1 (en) | publish&subscribe data processing apparatus, method, and computer program product with use of a stream to distribute local information between neighbors in a broker structure | |
KR101926394B1 (en) | System of cloud computing and method for detaching load in cloud computing system | |
CN1575461B (en) | Mobile client provisioning web service | |
US6065051A (en) | Apparatus and method for communication between multiple browsers | |
US7299244B2 (en) | System and method for dynamic sequencing of a requirements-based workflow | |
US20070061282A1 (en) | Data network information distribution | |
US20010051929A1 (en) | On-demand service expanding system and method for providing services | |
CN1723451A (en) | Prioritization of third party access to an online commerce site | |
CN101455060A (en) | Synchronizing an active feed adapter and a backup feed adapter in a high speed, low latency data communications environment | |
CN1239252A (en) | Publish and subscribe data processing apparatus, method and computer program product with use of stream to distribute administrative and configuration information | |
AU2006203012A1 (en) | Information exchange system, management server, and method for reducing network load used in the same | |
US6167451A (en) | Multiple push protocol unifying system | |
AU2006203017A1 (en) | Information exchange system and management server, terminal unit, and method for reducing network load used in the same | |
EP1247188B1 (en) | Converting messages between point-to-point and subject-based addressing | |
WO2003067460A1 (en) | A method of data refreshing of a mark-up language document | |
US6442596B1 (en) | Shared data views for large-scale multimode environments | |
KR100385926B1 (en) | Distribution Performance System constructed by fabricat ing Several User terminals into single system and Construction method thereof | |
CA2397114A1 (en) | Communications network | |
CN1240964A (en) | Publish and subscribe data processing apparatus, method and computer program product | |
CN1440606A (en) | Communications system | |
EP1865424B1 (en) | Dynamic aggregation of web services | |
KR20040110647A (en) | Sysem and its method for load distribution between servers | |
GB2354349A (en) | Event notification data processing with command and command notification combined into a single event | |
NL1008262C2 (en) | Data system for obtaining data or computer programs | |
KR20040073630A (en) | System and method for sharing content among CDNSPs |
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 |