GB2354850A - Message broker using tree structures - Google Patents
Message broker using tree structures Download PDFInfo
- Publication number
- GB2354850A GB2354850A GB9922928A GB9922928A GB2354850A GB 2354850 A GB2354850 A GB 2354850A GB 9922928 A GB9922928 A GB 9922928A GB 9922928 A GB9922928 A GB 9922928A GB 2354850 A GB2354850 A GB 2354850A
- Authority
- GB
- United Kingdom
- Prior art keywords
- message
- broker
- data processing
- list
- destinations
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Abstract
A message broker 12 provides for application integration amongst a plurality of data processing applications. The broker has a plurality of data processing nodes, where the data processing applications communicate by passing messages through data processing nodes of the broker. Messages received by the broker are transformed into a tree structure before being passed through data processing nodes of the broker. A list of destinations for a message is generated while a message passes through a data processing node of the broker. The list of destinations is also represented as a tree structure so that the list of destinations can be processed by the data processing nodes of the message broker.
Description
2354850 DATA PROCESSING WITH REUSE OF EXISTING MESSAGE STRUCTURE TO ALLOW
ACCESS TO DISTRIBUTION LIST
Field of the Invention
The present invention relates to the art of data processing, and more specifically to a message broker which receives messages from one data processing application, performs operations on such messages, and passes them along to at least an other data processing application.
Background of the Invention
Message brokers are becoming very common in the area of application integration. mMulti-function message broker systems are used to inter-connect applications which may be on heterogeneous platforms and may use different message formats. For example, Saga Software of Reston, Virginia (USA) (www.sagasoftware.com) have such a message broker product called "Sagavistall (a trademark of Saga Software). Further, Tibco Software Inc. of Palo Alto, California (USA) (www.tibco.com) also have such a message broker called "TIB/Message Broker" (both "TIB11 and 11TIB/Message Broker" are trademarks of Tibco). In these multi-function message brokers, a set of pluggable data processing nodes is provided, with each node being dedicated to a specific data processing task, such as message format transformation, publish/subscribe message distribution, and a rules engine for deciding (based on a plurality of predefined rules) where (e.g., to which further nodes in the message broker) an incoming message should be routed.
it is-very common in such a message broker for a list of destinations for a message to be generated as a message passes through the data processing nodes of the broker. This list of destinations, sometimes called a distribution list, is generated by the broker as a result of predefined rules that are based on message content and other settings. The list of destinations tells the various parts of the broker where (e.g., which nodes) the message is to be forwarded to.
In the prior art, this distribution list was fixed such that once the list is generated it cannot be changed. This is problematic because it provides for a great deal of inflexibility. For example, the SMTP (Simple Mail Transfer Protocol) electronic mail, considers the distribution list as part of the message (i.e., the destination list is carried as a field (s) in the header of the message). The distribution list is then consulted by the data processing system to route the message 2 to its destinations. However, once generated, the distribution list cannot be altered, it is simply passed through the processing system in order to get the message to its destinations.
Thus, there is a great need in the art for more flexibility in dealing with distribution lists, once such lists are generated.
Summary of-the Invention
According to a first aspect, the present invention provides a message broker for application integration amongst a plurality of data processing applications, the broker having a plurality of data processing nodes, where the data processing applications communicate by passing messages through data processing nodes of the broker. messages received by the broker are transformed into a tree structure before being passed through data processing nodes of the broker. A list of destinations for a message is generated while a message passes through a data processing node of the broker. The list of destinations is also represented as a tree structure so that the list of destinations can be processed by the data processing nodes of the message broker.
Preferably, the list of destinations is provided separately from the message so that the list of destinations can be processed by data processing nodes separately from processing of the message. Also preferably, the messages received by the broker are transformed into a tree structure using format-specific parsers.
According to a second aspect, the invention provides a message broker for application integration amongst a plurality of data processing applications, the broker having: a plurality of data processing nodes, wherein the data processing applications communicate by passing messages through data processing nodes of the broker; a unit for receiving messages and transforming messages into a tree structure before passing the messages through the data processing nodes; and a unit for generating a list of destinations for a message while a message passes through a data processing node of the broker, wherein the list of destinations is also represented as a tree structure so that the list of destinations can be processed by the data processing nodes of the message broker.
ACcording to a third aspect, the invention provides a message broker data processing method for application integration amongst a plurality of data processing applications, wherein the data processing applications communicate by passing messages through data processing nodes of the broker; the method comprising steps of: receiving messages from one application; transforming the received messages into a tree 3 structure before passing the messages through the data processing nodes; and generating a list of destinations for a message while a message passes through a data processing node of the broker, wherein the list of destinations is also represented as a tree structure so that the list of destinations can be processed by the data processing nodes of the message broker.
According to a fourth aspect, the invention provides a computer program product, stored on a computer readable storage medium for, when run on a computer, carrying out the method of the third aspect.
Thus, with the present invention, because the distribution list is represented in a tree format, modifications to the distribution list can easily be carried out using the existing data processing nodes of the broker. No modification to such nodes is required.
Brief Description of the Drawings
The present invention will be better understood through a description below of preferred embodiments thereof, which will be provided with reference to the following drawings:
Fig. 1 is a block diagram showing a message broker in which a preferred embodiment of the present invention can be advantageously used; Fig. 2 shows a tree structure representation of a message used in a preferred embodiment of the present invention; and Fig. 3 shows the distribution list represented as a tree structure, according to a preferred embodiment of the present invention.
Detailed Description of the Preferred Embodiments
In Fig. 1, application 11 is communicating with application 13 via message broker 12. Application 11, message broker 12 and application 13 are most likely running on separate machines and in communication with each other via a network (such as the Internet) but it is possible that all three applications are running on the same machine.
Application 11 sends XML (eXtensible markup Language) format messages to message broker 12. When XML messages are received into message broker 12, a parser 121 parses the XML messages (which are in a flat byte structure needed by the transport mechanism used to link application 11 with broker 12) into a generic tree structure (a hierarchical structure, and thus no longer a flat structure). In fact 4 no matter what format messages come into the message broker 12 they are parsed into this generic tree structure in the preferred embodiment.
There is a corresponding parser 122 which parses messages from the generic tree structure into the COBOL message format (again in flat byte structure) required by application 13.
As shown in Fig. 2, the tree structure is made up of a sequence of data elements 21 to 28. These data elements may be simple data types, substructures, lists, arrays or simple data types or arrays of substructures. A substructure is itself composed of a sequence of named data elements of the same nature as the main message body, so the entire message can be expressed (and thus navigated) as a tree graph similar to a directory based file system but with an (optional) ordering of the entities within each directory. Each message has associated with it some meta- information describing its structure, content and physical representation. Note that the tree structure is an internal representation of the message's wire format. The wire format is converted to the tree by a parser. Every wire format can have a parser written to convert it into a tree structure. That tree structure might be degenerate, in that it only has one element, which contains the entire contents of the wire-format message, but the tree structure representation exists nevertheless.
Returning to Fig. 1, message broker 12 also includes a rules engine data processing node 123 which examines the content of messages passing through node 123 and applies various rules which have been pre-set by a systems administrator. As a result of a message having passed through the rules engine node 123, a distribution list is generated, which includes the identity of node(s) which the message should be next forwarded to upon leaving the node 123.
For example, one rule might be "if the message involves a stock price giving the current value of a company's shares on a stock exchange, then send the message to database augmentor node 124". Database augmentor node 124 receives the forwarded message and accesses a database 124a (in local storage) to determine how many shares the particular customer owns of the stock that is mentioned in the message and then this number of shares is added to the message, thus augmenting the original content of the message using the data from the database.
Another rule might be "if the message is marked confidential, then send message to filter node 125". Filter node 125 would then remove a field from the message which indicated the name of a party who originally sent the message so that when the message is received by a receiving application the name of the party sending the message is no longer ascertainable.
A common message broker would usually apply many such rules to messages and forward on messages to a large number of different choices of nodes in order to carry out intelligent message routing and processing. only two rules have been shown in Fig. 1 for the sake of clarity.
once the messages exit from nodes 124 and 125, they arrive at message format transform node 126 which carries out. the function of transforming the format of the message from the XML physical representation format (used by application 11) to the COBOL physical representation format (of application 13). The basic structure of the message entering and exiting node 126 is still the hierarchical tree structure of Fig. 2, but the ordering of fields and data representations are transformed from that of XML to that of COBOL.
Upon exiting from node 126, the messages are then parsed from the generic tree structure to the COBOL structure (flat bytes needed by the transport mechanism used to link broker 12 with application 13, as opposed to a hierarchical tree structure). In the preferred embodiment, the transport mechanism used to link the applications 11 and 13 with the broker 12 is an asynchronous messaging and queuing transport mechanism, such as that of IBM's MQSeries (trademark) product.
When rules engine node 123 determines that a particular message is to be sent to filter node 125, an indication of the destination node 125 is represented as a tree-structure as shown in Fig. 3, which can then be passed to processing nodes of the broker in order to carry out any desired modifications of the distribution list. In this simple case the distribution list includes only one entry for destination node 125.
Thus, data element 34, which is part of the tree structure of Fig. 3, includes the value 125. This then informs the broker that when the particular message leaves node 123 it should then be forwarded to each of the nodes on the distribution list (in this simple case, only node 125).
The tree structure of Fig. 3 has been illustrated with many data elements because in the usual case there would be many destinations for a message, however, in the simple example provided, only one destination has been discussed.
Because the distribution list is represented as a tree structure, and messages passing through the broker also are represented as tree structures, modifications to the distribution list can easily be carried out using the existing nodes of the message broker. For example, the distribution list (represented as a tree structure) could be sent to a rules engine node (not shown in Fig. 1) and rules could be applied on the distribution list in order to generate another distribution list of destinations where the modified distribution list should be forwarded 6 upon leaving this rules engine node. Thus, the existing data processing nodes of the broker can be easily used, without modification thereto, to perform data processing using the distribution list as input.
Preferably, the distribution list is not included in the message to which the distribution list pertains, but is instead provided in a separate tree structure (and thus the destination list is not sent along with the message to the destinations indicated in the destination list for that message). This allows the distribution list to be modified by nodes without requiring that such nodes be concerned with message data that is not distribution list data. For example, the rules engine node discussed in the preceding paragraph receives only distribution list data in a tree structure and thus the rules are applied only to the distribution list and not to fields of the message to which the distribution list pertains. This is advantageous because since the message has been parsed into a tree structure, any update to that tree structure has to be represented in the flat wire format of the message by walking the tree and rewriting the flat message. This is generally an expensive operation. Thus, preferably, the distribution list is not actually part of the message, and the distribution list is considered by the broker as a separate object.
7
Claims (10)
- A message broker for application integration amongst a plurality of data processing applications, the broker comprising:a plurality of data processing nodes, where the data processing applications communicate by passing messages through data processing nodes of the broker; wherein messages received by the broker are transformed into a tree structure before being passed through data processing nodes of the broker; wherein a list of destinations for a message is generated while a message passes through a data processing node of the broker, and the list of destinations is also represented as a tree structure so that the list of destinations can be processed by the data processing nodes of the message broker.
- 2. The message broker of claim 1 wherein the list of destinations is provided separately from the message so that the list of destinations can be processed by data processing nodes separately from processing of the message.
- 3. The message broker of claim 1 wherein the messages received by the broker are transformed into a tree structure using format-specific parsers.
- 4. A message broker for application integration amongst a plurality of data processing applications, the broker comprising:a plurality of data processing nodes, wherein the data processing applications communicate by passing messages through data processing nodes of the broker; means for receiving messages and transforming messages into a tree structure before passing the messages through the data processing nodes; and means for generating a list of destinations for a message while a message passes through a data processing node of the broker, wherein the list of destinations is also represented as a tree structure so that the list of destinations can be processed by the data processing nodes of the message broker.8
- 5. The message broker of claim 4 wherein the list of destinations is provided separately from the message so that the list of destinations can be processed by data processing nodes separately from processing of the message. 5
- 6. The message broker of claim 4 wherein the messages received by the broker are transformed into a tree structure using format-specific parsers.
- 7. A message broker data processing method for application integration amongst a plurality of data processing applications, wherein the data processing applications communicate by passing messages through data processing nodes of the broker; the method comprising steps of:receiving messages from one application; transforming the received messages into a tree structure before passing the messages through the data processing nodes; and generating a list of destinations for a message while a message passes through a data processing node of the broker, wherein the list of destinations is also represented as a tree structure so that the list of destinations can be processed by the data processing nodes of the message broker.
- 8. The method of claim 7 wherein the list of destinations is provided separately from the message so that the list of destinations can be processed by data processing nodes separately from processing of the message.
- 9. The method of claim 7 wherein the messages received by the broker are transformed into a tree structure using format-specific parsers.
- 10. A computer program product, stored on a computer readable storage medium for, when run on a computer, carrying out the method of claim 7.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9922928A GB2354850B (en) | 1999-09-29 | 1999-09-29 | Data processing with reuse of existing message structure to allow access to distribution list |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9922928A GB2354850B (en) | 1999-09-29 | 1999-09-29 | Data processing with reuse of existing message structure to allow access to distribution list |
Publications (3)
Publication Number | Publication Date |
---|---|
GB9922928D0 GB9922928D0 (en) | 1999-12-01 |
GB2354850A true GB2354850A (en) | 2001-04-04 |
GB2354850B GB2354850B (en) | 2002-01-09 |
Family
ID=10861745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB9922928A Expired - Fee Related GB2354850B (en) | 1999-09-29 | 1999-09-29 | Data processing with reuse of existing message structure to allow access to distribution list |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2354850B (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004061650A2 (en) * | 2003-01-07 | 2004-07-22 | International Business Machines Corporation | A method and system for improving message syntactic analysis in a message broker |
WO2004061651A2 (en) * | 2003-01-07 | 2004-07-22 | International Business Machines Corporation | A method and system for dynamically creating parsers in a message broker |
US6886166B2 (en) * | 2000-09-20 | 2005-04-26 | International Business Machines Corporation | Message parsing in message processing systems |
GB2421102A (en) * | 2004-12-09 | 2006-06-14 | Siemens Med Solutions Health | Inter process communication between incompatible applications |
US7085736B2 (en) * | 2001-02-27 | 2006-08-01 | Alexa Internet | Rules-based identification of items represented on web pages |
GB2458371A (en) * | 2008-03-14 | 2009-09-23 | Northrop Grumman Space & Msn | Extracting data from application messages |
CN101180627B (en) * | 2005-01-28 | 2011-06-15 | 爱克发公司 | Message-based connectivity manager. |
EP2645675A1 (en) | 2012-03-29 | 2013-10-02 | Software AG | Broker cluster and method of operating a broker cluster |
US9946584B2 (en) | 2008-03-14 | 2018-04-17 | Northrop Grumman Systems Corporation | Systems and methods for extracting application relevant data from messages |
US11314765B2 (en) | 2020-07-09 | 2022-04-26 | Northrop Grumman Systems Corporation | Multistage data sniffer for data extraction |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5241305A (en) * | 1987-05-15 | 1993-08-31 | Newspager Corporation Of America | Paper multi-level group messaging with group parsing by message |
EP0961452A2 (en) * | 1998-05-27 | 1999-12-01 | International Business Machines Corporation | Publish & subscribe data processing apparatus, method and computer program product with use of a stream to distribute administrative and configuration information |
-
1999
- 1999-09-29 GB GB9922928A patent/GB2354850B/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5241305A (en) * | 1987-05-15 | 1993-08-31 | Newspager Corporation Of America | Paper multi-level group messaging with group parsing by message |
EP0961452A2 (en) * | 1998-05-27 | 1999-12-01 | International Business Machines Corporation | Publish & subscribe data processing apparatus, method and computer program product with use of a stream to distribute administrative and configuration information |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6886166B2 (en) * | 2000-09-20 | 2005-04-26 | International Business Machines Corporation | Message parsing in message processing systems |
US7085736B2 (en) * | 2001-02-27 | 2006-08-01 | Alexa Internet | Rules-based identification of items represented on web pages |
WO2004061650A3 (en) * | 2003-01-07 | 2005-05-06 | Ibm | A method and system for improving message syntactic analysis in a message broker |
WO2004061650A2 (en) * | 2003-01-07 | 2004-07-22 | International Business Machines Corporation | A method and system for improving message syntactic analysis in a message broker |
WO2004061651A3 (en) * | 2003-01-07 | 2005-07-14 | Ibm | A method and system for dynamically creating parsers in a message broker |
WO2004061651A2 (en) * | 2003-01-07 | 2004-07-22 | International Business Machines Corporation | A method and system for dynamically creating parsers in a message broker |
GB2421102A (en) * | 2004-12-09 | 2006-06-14 | Siemens Med Solutions Health | Inter process communication between incompatible applications |
CN101180627B (en) * | 2005-01-28 | 2011-06-15 | 爱克发公司 | Message-based connectivity manager. |
GB2458371A (en) * | 2008-03-14 | 2009-09-23 | Northrop Grumman Space & Msn | Extracting data from application messages |
GB2458371B (en) * | 2008-03-14 | 2010-12-15 | Northrop Grumman Space & Msn | Systems and methods for extracting application relevant data from messages |
US9946584B2 (en) | 2008-03-14 | 2018-04-17 | Northrop Grumman Systems Corporation | Systems and methods for extracting application relevant data from messages |
EP2645675A1 (en) | 2012-03-29 | 2013-10-02 | Software AG | Broker cluster and method of operating a broker cluster |
US11314765B2 (en) | 2020-07-09 | 2022-04-26 | Northrop Grumman Systems Corporation | Multistage data sniffer for data extraction |
Also Published As
Publication number | Publication date |
---|---|
GB2354850B (en) | 2002-01-09 |
GB9922928D0 (en) | 1999-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9185082B2 (en) | Method and apparatus for adaptive application message payload content transformation in a network infrastructure element | |
US20200177533A1 (en) | Content based data routing | |
US7590729B2 (en) | Method and apparatus for content based switching | |
JP4367650B2 (en) | Method, content-based router, content-based network | |
US7606832B2 (en) | System and method for orchestrating composite web services in constrained data flow environments | |
US7111076B2 (en) | System using transform template and XML document type definition for transforming message and its reply | |
US6996625B2 (en) | Reduction and optiminization of operational query expressions applied to information spaces between nodes in a publish/subscribe system | |
US8151003B2 (en) | System and method for routing data by a server | |
US20040199586A1 (en) | Using expressive session information to represent communication sessions in a distributed system | |
GB2354850A (en) | Message broker using tree structures | |
US20090164548A1 (en) | Message transport manager and methods for using the same | |
US20070168546A1 (en) | Efficient Dispatch of Messages Based on Message Headers | |
US7490157B2 (en) | System and method for defining interface of manufacture execution system | |
US7376748B1 (en) | Data delivering system | |
EP1160691A2 (en) | Distribution system for structured information | |
SE515343C2 (en) | Support function for mains elements | |
JP2001075793A (en) | Remote procedure call expression generation system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 20040929 |