GB2354850A - Message broker using tree structures - Google Patents

Message broker using tree structures Download PDF

Info

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
Application number
GB9922928A
Other versions
GB2354850B (en
GB9922928D0 (en
Inventor
Roy B Harrison
Simon A Holdsworth
Thomas Quarendon
Michael George Taylor
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 GB9922928A priority Critical patent/GB2354850B/en
Publication of GB9922928D0 publication Critical patent/GB9922928D0/en
Publication of GB2354850A publication Critical patent/GB2354850A/en
Application granted granted Critical
Publication of GB2354850B publication Critical patent/GB2354850B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message 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)

  1. 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. 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. 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. 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. 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. 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. 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. 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. 9. The method of claim 7 wherein the messages received by the broker are transformed into a tree structure using format-specific parsers.
  10. 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.
GB9922928A 1999-09-29 1999-09-29 Data processing with reuse of existing message structure to allow access to distribution list Expired - Fee Related GB2354850B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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