WO2004072800A2 - Inscription dynamique et acheminement dynamique de messages portant sur un sujet entre un noeud d'edition et des noeuds d'inscription - Google Patents

Inscription dynamique et acheminement dynamique de messages portant sur un sujet entre un noeud d'edition et des noeuds d'inscription Download PDF

Info

Publication number
WO2004072800A2
WO2004072800A2 PCT/US2004/003674 US2004003674W WO2004072800A2 WO 2004072800 A2 WO2004072800 A2 WO 2004072800A2 US 2004003674 W US2004003674 W US 2004003674W WO 2004072800 A2 WO2004072800 A2 WO 2004072800A2
Authority
WO
WIPO (PCT)
Prior art keywords
message
broker
topic
subscribers
path
Prior art date
Application number
PCT/US2004/003674
Other languages
English (en)
Other versions
WO2004072800A3 (fr
Inventor
William Cullen
Original Assignee
Progress Software Corporation
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 Progress Software Corporation filed Critical Progress Software Corporation
Priority to GB0517847A priority Critical patent/GB2417160B/en
Publication of WO2004072800A2 publication Critical patent/WO2004072800A2/fr
Publication of WO2004072800A3 publication Critical patent/WO2004072800A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1859Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2885Hierarchically arranged intermediate devices, e.g. for hierarchical caching

Definitions

  • the present invention relates to systems and methods for sending and receiving messages.
  • the present invention relates to a system and method for sending and receiving messages using a publish/subscribe architecture.
  • the present invention relates to devices and methods for efficiently implementing a publish/subscribe messaging system on a distributed computing architecture.
  • MOM systems include software that performs the message-handling tasks that enable disparate software applications to communicate without requiring programmers know the details of the message handling operations.
  • MOM architectures often require additional message processors to handle such message processing responsibilities.
  • messages are at a consistent level and a high volume, the added administrative processing resources can be underutilized and waste bandwidth. This is especially true as networks and systems grow in size and scale.
  • Another issue in the prior art is that most messaging systems provide only point-to-point communication methods. With point-to-point communication methods, there is significant processing overhead associated with establishing a point-to-point connection to every destination when a single message is sent to multiple destinations.
  • the present invention overcomes the deficiencies and limitations of the prior art by providing a system and method for dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes.
  • the system of the present invention includes a plurality of message queues, at least one topic/node table, a subscribing module, a publishing module, and other modules to send messages between one or more publisher and one or more subscribers. These modules are coupled together by a bus and provide for the dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes.
  • the dynamic subscription and message routing system includes a plurality of nodes each having aforementioned modules. The message queues store messages at each node for delivery to subscribers remote to that node.
  • the topic/node table lists which clients subscribe to which topics, and is used by the other modules to ensure proper distribution of messages.
  • the subscribing module is used to establish and remove a subscription to a topic for that node and dynamically route and propagate the subscription.
  • the invention also automatically terminates a subscription after a connection is unavailable to dynamically maintain the subscriptions.
  • the publishing module is used to identify subscribers to a topic and transmit messages to subscribers dynamically.
  • the other modules include various processes to optimize message communication in a publish/subscribe architecture operating on a distributed computing system.
  • the present invention also includes a number of novel methods including: a method for publishing a message on a topic, a method for forwarding a message on a topic, a method for subscribing to messages on a topic, a method for automatically removing subscribers, a method for direct publishing of messages, and methods for optimizing message transmission between nodes.
  • Figure 1 is a block diagram of an exemplary dynamic, distributed computer system according to the present invention.
  • Figure 2 is a block diagram of an exemplary architecture for a publish subscribe system that operates on the system of Figure 1.
  • Figure 3 is a block diagram of a server or node according to the present invention.
  • Figure 4 is a block diagram of the memory of the server of Figure 3 in accordance with the present invention.
  • Figure 5 is a block diagram of an exemplary arrangement of publishers, subscribers and brokers.
  • Figure 6 is a flowchart for a preferred method for publishing a message according to the present invention.
  • Figure 7 is a flowchart for a preferred method for forwarding a message according to the present invention.
  • Figure 8A is a flowchart of a preferred method for subscribing to a topic.
  • Figure 8B is a flowchart of a preferred method for unsubscribing to a topic.
  • Figures 9A and 9B are a flowchart for a preferred method for examining and testing whether to deliver a message according to the present invention.
  • Figure 10 is a flowchart for a preferred method for automatically removing subscriptions according to the present invention.
  • Figure 11 is a flowchart for a preferred method for sending messages to durable subscribers in accordance with the present invention.
  • Figure 12 is a flowchart for a preferred method for publishing directly to a cluster in accordance with the present invention.
  • Figures 13A and 13B are a flowchart for a preferred method for selecting and allocating paths for delivering messages.
  • Figure 14 is a block diagram of an exemplary arrangement of publishers, subscribers and brokers for publishing on subtopics.
  • FIG. 15 flowchart of an additional method used to optimize the delivery of messages. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • a system and method for dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes is described. More specifically, the subscriptions are demand based and dynamically maintained so the brokers are not required to administer or maintain them.
  • numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention.
  • the present invention is described primarily with reference to a few nodes and publishing on a topic between a publishing node and a subscribing node. However, the present invention applies to any distributed computing system that has publish and subscribe capabilities, and may include significantly more nodes, brokers, publishers, subscribers, and topics.
  • This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer.
  • a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
  • the present invention claimed below is operating on or working in conjunction with an information system.
  • an information system as claimed may be an entire messaging system or only portions of such a system.
  • the present invention can operate with an information system that need only be a broker in the simplest sense to process messages.
  • the information system might alternately be the system described below with reference to Figures 3 and 4.
  • the present invention is capable of operating with any information system from those with minimal functionality to those providing all the functionality disclosed herein.
  • the distributed computing system 100 comprises a plurality of sites 102, 104, 106, a plurality of nodes or servers 110a- 11 Of some of which are grouped into clusters 112a, 112b, and a plurality of client applications 108a-108i.
  • the distributed computing system 100 is distributed over a plurality of sites 102, 104, 106 that may be physically and geographically separate.
  • At each site at least one server 110 or cluster 112 couples to client applications 108 for performing computations and transferring data.
  • the sites 102, 104, 106 are coupled for communication by establishing connections between the servers 110a, 110b, 1 lOd, 1 lOe, and 1 lOf.
  • An exemplary node 110 is described below with reference to Figures 3 and 4.
  • the distributed computing system 100 is simply an exemplary configuration illustrating that: 1) a single sever 110a may be a site 102 and be coupled to multiple applications 108a, 108b, 2) a site 106 may have a plurality of servers 1 lOe and 1 lOf grouped and coupled as a cluster 112b, and 3) the servers HOe and 11 Of may be respectively coupled to associated applications 108g-i.
  • FIG. 2 shows an exemplary publish/subscribe architecture 200 that operates on the distributed computing system 100 to process messages.
  • the publish/subscribe architecture 200 includes at least one publisher 208a, aplurality of brokers 210a-210f, and a plurality of subscribers 214a-214d.
  • a message is defined broadly to refer to one or more data packets that can be generated by a software application program 108a-i which includes control information (such as a name or label associated with a message queue and/or indicia pertaining to one or more topics of interest that can be located on the broker 210a-210f) and payload data that includes, for example, data relevant to the underlying transaction.
  • a publisher 208a is a client application that generates a message and sends the message and an , associated topic to a broker 210a for publication (routing to subscribers).
  • the publisher 208a is coupled for communication with a broker 210a.
  • a subscriber 214 is a client application that identified a topic for which it wants to receive all messages.
  • the subscribers 214a-d are coupled to respective brokers 210b-d, 21 Of.
  • the broker 21 Oa-f is a set of instructions and or other appropriate elements that enable a digital processing device to operate within the publish/subscribe architecture 200.
  • the brokers 21 Oa-f can, for example, operate on or otherwise manipulate messaging data (e.g., network connection data, topic indicia, named message queues, routing path information, hop and other reference counts, time-out counter, message location data, pointers to named message queues and buffers, named cluster and message queue information, load balancing data, resource utilization/availability information and other prioritized information relating to the selection of digital data processors, static data, dynamically changing runtime data, processor grouping and relationship information, access authorization and encryption information, network performance information, software application parameters/data, licensing information, status data, commands, and/or any other type of data desirable for the proper operation of the publish/subscribe architecture 200).
  • messaging data e.g., network connection data, topic indicia, named message queues, routing path information, hop and other reference counts, time-out counter, message location data, pointers to named message queues and buffers, named cluster and message queue information, load balancing data, resource utilization/availability information and other prioritized information relating to the selection
  • the brokers 21 Oa-f are coupled to client applications that can act either as subscribers 214 or publishers 208.
  • Brokers 21 Oa-f can concurrently act as a publishing node, a routing node, a forwarding node and a subscribing node, or any subset of these depending on what nodes, subscribers and/or publishers are coupled to a broker 21 Oa-f.
  • a publishing node refers to anode where messages of interest are published by client applications.
  • a routing node can be both a publishing and a subscribing node at the same time with regard to different topics.
  • a forwarding node refers to a node that receives messages from the publishing node, directly or indirectly and forwards messages to the subscribing node.
  • a subscribing node is a node that receives messages on a topic and sends the message to client applications that are subscribers.
  • a broker 210b can be clustered with other brokers 210c, 21 Od executing on other digital data processing devices 1 lOb-1 lOd or which can be executing on an unclustered digital data processing device 110a, can be considered to be a routing node.
  • a unique name or label e.g., a Java string of Unicode characters, or any other numerical, textual, or combination numerical/textual string, or other indicia
  • messages communicated between brokers 210a-210f can include at least one data packet with a packet header that contains one or more routing node names, topic indicia, and/or queue names for an originating, administrative, transaction, and/or destination node 110.
  • processor clusters 212a, 212b can be assigned cluster names, thereby enabling routing node names with the same name, but different cluster names, to coexist and still be differentiated.
  • a single broker 210a executes on and/or is otherwise associated with a node 110a and/or a single processor cluster.
  • a single broker can be associated with more than one node or cluster.
  • a cluster will be generally referred to as an aggregation of brokers defined to be one node.
  • a network connection process is communicatively coupled to broker 210 or the broker 210 itself determines network com ection information pertaining to the cluster names, routing node names, topic indicia, and/or queue names specified by the broker 210 by accessing, for example, a data structure that maps such names to indicia of previously-selected network addresses.
  • the previously selected network addresses can be determined by an administrator 420 and communicated to the data structure (which can be, for example, centrally located on a configuration server or distributed, (partially or in its entirety) to one or more of the nodes 110 associated with the brokers 210).
  • the data structure which can be, for example, centrally located on a configuration server or distributed, (partially or in its entirety) to one or more of the nodes 110 associated with the brokers 210).
  • brokers 210 can communicate during periodic time intervals (e.g., every 15 minutes) and/or upon the occurrence of an event (e.g., a node in a cluster is added, removed, or modified, etc.) by transmitting/receiving informational messages that specify cluster names, routing node names, topic indicia, queue names, network connection information, network hops, network paths, and/or other types of configuration information that enable the broker 210 to communicate, without requiring a user of such processes to manually determine and/or configure network comiection parameters.
  • periodic time intervals e.g., every 15 minutes
  • an event e.g., a node in a cluster is added, removed, or modified, etc.
  • the informational messages enable the broker 210 to obtain up-to-date configuration information about other brokers 210 during runtime and to thereby dynamically and automatically reconfigure their operations to accommodate additions, deletions, and/or modifications to such broker 210 and/or associated hardware and software elements.
  • the informational messages can also enable brokers 210 to identify routing/network paths between one or more messaging broker processes, by accessing, for example, network hop information contained in such messages.
  • one or more processor clusters 112a, 112b can be implemented in accordance with a bus architecture, in which at least some of the nodes 110 provide at least some of the functionality discussed above with respect to the administrative process, without having a separate administrative module 420 to support such functions.
  • Messages transmitted to the processor cluster 112a, 112b from one or more originating and/or destination nodes 110 can be received by one or more nodes 110 based on election criteria, which can be based on, for example, load balancing/performance metrics associated with such nodes 110.
  • a message received by an elected node 110 can be analyzed and subsequently forwarded to one or more other nodes 110 that host relevant software application programs 108 to perform desired functions.
  • the broker 210 can identify the cluster, routing node, topic indicia, queue names, information about subscribers and topics, and/or network addresses associated with the broker 210 of the selected node, originating node and/or destination mode by, for example, accessing a configuration file, initialization file, messaging data, informational message, and/or any other processor-accessible data structure.
  • the broker 210 of the destination node can determine the network addresses of the node involved in the transaction from the message stored in the message queue 406 and/or by searching the processor-accessible data structures (not shown).
  • the broker 210 can either directly provide or instruct another process to provide the network address, cluster name, routing node name, topic indicia, queue name, routing/network path, and related transaction details to a network connection process, which can compress, encrypt, encode and/or otherwise manipulate such parameters to form a data packet that can be transmitted to one or more network connection processes associated with such nodes.
  • FIG. 3 is a block diagram of one embodiment of a broker or node 210 constructed according to the present invention.
  • the broker or node 210 preferably comprises a control unit 350, a display device 310, a keyboard 312, a cursor control device 314, a network controller 316 and one or more input/output (I/O) audio device(s) 318.
  • Control unit 350 may comprise an arithmetic logic unit, a microprocessor, a general purpose computer, a personal digital assistant or some other information appliance equipped to provide electronic display signals to display device 310.
  • control unit 350 comprises a general purpose computer having a graphical user interface, which may be generated by, for example, a program written in Java running on top of an operating system like WINDOWS® or UNIX® based operating systems.
  • one or more application programs are executed by control unit 350 including, without limitation, word processing applications, electronic mail applications, financial applications, and web browser applications.
  • the control unit 350 is shown including processor 302, main memory 304, and data storage device 306, all of which are communicatively coupled to system bus 308.
  • Processor 302 processes data signals and may comprise various computing architectures including a complex instruction set computer (CISC) architecture, a reduced instruction set computer (RISC) architecture, or an architecture implementing a combination of instruction sets. Although only a single processor is shown in Figure 3, multiple processors may be included.
  • CISC complex instruction set computer
  • RISC reduced instruction set computer
  • Main memory 304 stores instructions and/or data that may be executed by processor 302.
  • the instructions and/or data may comprise code for performing any and/or all of the techniques described herein.
  • Main memory 304 may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, or some other memory device known in the art.
  • DRAM dynamic random access memory
  • SRAM static random access memory
  • the memory 304 is described in more detail below with reference to Figure 4. In particular, the portions of the memory 304 for providing publication, forwarding, subscription, path selection, traffic control and direct publishing will be described.
  • Data storage device 306 stores data and instructions for processor 302 and comprises one or more devices including a hard disk drive, a floppy disk drive, a CD-ROM device, a DVD-ROM device, a DVD-RAM device, a DVD-RW device, a flash memory device, or some other mass storage device known in the art.
  • System bus 308 represents a shared bus for communicating information and data throughout control unit 350.
  • System bus 308 may represent one or more buses including an industry standard architecture (ISA) bus, a peripheral component interconnect (PCI) bus, a universal serial bus (USB), or some other bus known in the art to provide similar functionality.
  • Additional components coupled to control unit 350 through system bus 308 include the display device 310, the keyboard 312, the cursor control device 314, the network controller 316 and the I/O device(s) 318.
  • Display device 310 represents any device equipped to display electronic images and data as described herein.
  • Display device 310 may be, for example, a cathode ray tube (CRT), liquid crystal display (LCD), or any other similarly equipped display device, screen, or monitor, h one embodiment, display device 310 is equipped with a touch screen in which a touch-sensitive, transparent panel covers the screen of display device 310.
  • CTR cathode ray tube
  • LCD liquid crystal display
  • display device 310 is equipped with a touch screen in which a touch-sensitive, transparent panel covers the screen of display device 310.
  • Keyboard 312 represents an alphanumeric input device coupled to control unit
  • Cursor control 314 represents a user input device equipped to communicate positional data as well as command selections to processor 302.
  • Cursor control 314 may include a mouse, a trackball, a stylus, a pen, a touch screen, cursor direction keys, or other mechanisms to cause movement- of a cursor.
  • Network controller 316 links control unit 350 to a network that may include multiple processing systems.
  • the network of processing systems may comprise a local area network (LAN), a wide area network (WAN) (e.g., the Internet), and/or any other interconnected data path across which multiple devices may communicate.
  • the control unit 350 also has other conventional connections to other systems such as a network for distribution of files (media objects) using standard network protocols such as TCP/IP, http, and SMTP as will be understood to those skilled in the art.
  • One or more I/O devices 318 are coupled to the system bus 308.
  • the I/O device 318 may be an audio input/output device 318 equipped to receive audio input via a microphone and transmit audio output via speakers.
  • Audio input may be received through various devices including a microphone within I/O audio device 318 and network controller 316.
  • audio output may originate from various devices including processor 302 and network controller 316.
  • audio device 318 is a general purpose; audio add-in/expansion card designed for use within a general purpose computer system.
  • I/O audio device 318 may contain one or more analog-to-digital or digital-to-analog converters, and/or one or more digital signal processors to facilitate audio processing.
  • control unit 350 may include more or less components than those shown in Figure 3 without departing from the spirit and scope of the present invention.
  • the memory unit 304 preferably comprises: an operating system 402, a topic/node table 404 for a cluster, a message queue 406, a topic/node table 408 for a broker, a dead message queue 410, a subscribing module 412, a publishing module 414, a forwarding module 416, a path selection module 418, a traffic control module and administration module 420, a broker module 422, a direct publishing module 424, and a delivery control module 426.
  • the memory unit 304 stores instructions and/or data that may be executed by processor 302.
  • the instructions and/or data may comprise code for performing any and/or all of the techniques described herein.
  • These modules 402-428 are coupled by bus 308 to the processor 302 for communication and cooperation to provide the publish/subscribe architecture 200.
  • modules or portions of a memory unit 304 of a computer system may also be stored in other media such as permanent data storage device 306 and may be distributed across a network having a plurality of different computers such as in a client/server environment.
  • the operating system 402 is preferably one of a conventional type such as,
  • the memory unit 304 may also include one or more application programs including, without limitation, word processing applications, electronic mail applications, financial applications, and web browser applications.
  • the memory unit 304 stores a topic/node table 404 for a cluster 212. Since a cluster 212 is a collection of brokers, the cluster topic/node table 404 provides a global map of topics and associated nodes for the entire cluster 212.
  • the cluster topic/node table 404 has an exemplary structure including a pair of topic name and corresponding node list.
  • the topic name specifies which subscriptions should be propagated. A subscription is propagated if its topic matches the string specified in this field.
  • the node list is a list of nodes to which the subscriptions that match this topic should be propagated.
  • the message queue 406 stores messages that have been received from other nodes and that need to be forwarded to other nodes or distributed locally to subscribing applications.
  • the message queue 406 is accessible to the broker 210.
  • the topic/node table 408 for a broker 210 is similar to the cluster topic/node table 404 but only limited to a specific broker 210. hi an alternate embodiment, the broker topic/node table 408 can be part of the cluster topic/node table 404.
  • the dead message queue 410 is a queue for storing messages that cannot be delivered. Messages that have been processed by the present invention are deposited in the dead message queue 410 if a broker 210 is unable to deliver them.
  • the subscribing module 412 is used to establish a subscription to a topic for a node and to unsubscribe from a topic.
  • the processes performed by the subscribing module 412 are described in detail below with reference to Figures 8 A and 8B.
  • the publishing module 414 is used to identify subscribers to a topic and transmit messages to subscribers dynamically. The processes performed by the publishing module 414 are described in detail below with reference to Figure 6.
  • the forwarding module 416 is used by a node to local subscribers to receive messages, and node to which to transmit a message. The processes performed by the forwarding module 416 are described in detail below with reference to Figure 7.
  • the path selection module 418 is used to dynamically select a path for distribution or publication of a message. The processes performed by the path selection module 418 are described in detail below with reference to Figure 13.
  • the traffic control and administration module 420 is a set of instructions and other appropriate elements that enable nodes 110 to monitor, control, and/or otherwise administer a single or clustered MOM topology.
  • the traffic control and administration module 420 can a) maintain and update configuration, runtime, and/or session data for one or more of the nodes 110 and/or originating and destination nodes 110, b) provide buffer management, multi-threaded services, and/or data structure management, c) provide initialization parameters to at least some of the nodes 110, d) manage groups of objects (e.g., groups of transaction, originating, and/or destination nodes 110; groups of software application programs 108; groups of users authorized to access software application programs 108; groups of nodes 110 that host particular software application programs 108; groups of licenses, etc.), e) manage relationships between objects in response to messages communicated between one or more nodes 110, f) provide one or more common services (e.g., encryption decryption, path routing, message
  • common services e.g
  • the direct publishing module 424 provides instructions for direct publishing of message to a cluster.
  • the present invention advantageously allows the infrastructure of the present invention to be used manually by brokers to publish to an existing cluster.
  • the steps performed by the direct publishing module 424 are described in detail below with reference to Figure 12.
  • the delivery control module 426 provides instructions to determine whether messages can be delivered. In particular, the delivery control module 426 checks for permissions, removes duplicate messages, checks buffer availability, and applies filters or selectors to messages to determine whether they should be delivered. The processes performed by the delivery control module 426 are described in detail below with reference to Figures 9 A and 9B.
  • the broker module 422 is used to create instances of brokers 210 with the functionality that has been described above with reference to Figure 2.
  • the broker module 422 manages the creation and deletion of broker instances to ensure the proper operation of the publish/subscribe architecture 200.
  • a cluster of brokers appears to have the same functionality as a single broker to brokers outside the cluster. Other brokers outside the cluster do not need to know what is inside the cluster, the number of brokers in the cluster or the rules or subscriptions within a cluster. This advantageously allows the dynamic subscription and routing methods of the present invention to scale up over any number of sites using various levels of clustering. Publishing a Message.
  • Figure 5 shows an exemplary publish/subscribe architecture 500 that is used as an example to illustrate the operation of the present invention.
  • FIG. 6 is a flowchart of one embodiment for publishing messages.
  • the method begins with a message being generated 602 by a client application on a topic, for example, by a Publisher 1 504(a) on Topic Tl. Then the message and the topic are sent from the client application, Publisher 1 504(a), to a broker, Broker 1 502a.
  • This is a particular advantage of the present invention because the client application does not need to be involved in managing the connection between the broker 502 and other subscribers.
  • the client application merely needs to send the message to the broker 502 with a corresponding topic.
  • the message and topic are received 606 at the broker, Broker 1 502a and store message in the message queue 406 (not shown).
  • the broker examines 608 the message for any delivery control issues.
  • step 608 determines whether the broker has the permissions to send the message, whether the message is a duplicate. This is done by the dynamic routing architecture underlying the publish/subscribe architecture 200.
  • step 610 the method tests whether the message can be delivered. If not, the method ends without performing further computations necessary to deliver the message. If the message is deliverable, the method continues to determine 612 the subscribers for the topic provided by the client application. This is preferably done by accessing the topic/node table 408.
  • the topic provided by the client application is compared to topic name in the table.
  • the node list corresponding to the matching topic entry in the table identifies the nodes to which the message will be delivered.
  • the broker identifies 614 the best path and the associated brokers for sending the message.
  • the broker determines the best path for example, the paths with least number of nodes to traverse.
  • the preferred method for identifying the best path is described in more detail below with reference to Figure 13. However, those skilled in the art will recognize that a variety of metrics may be used to determine the best path such as, but not limited to, bandwidth availability, number of hops, bottle neck delays, shortest path, and shortest time.
  • the process first determines 704 and identifies local subscribers for the topic and message that have been received.
  • a local subscriber refers to client application coupled to the broker that is a subscriber, or in the case of a cluster, any client application coupled to the cluster. This can be determined by accessing the broker topic/node table 408 (or the cluster topic/node table 404) to see what applications have entries in the table.
  • the process sends 706 the message to the subscribers local to this broker. This process and the underlying addressing are all managed by the present invention using the dynamic routing architecture.
  • the forwarding process determines 612 whether there are other subscribers, in addition to the local ones, that have subscribed to the topic that has been received.
  • step 614 the best path and associated brokers are determined 614 as has been described above. Since this is forwarding broker, the message was received from another broker. Thus, the process next eliminates the path the message was received on from the best path list generated in step 614. This eliminates redundant traffic and prevents the message from being sent back to the node that sent it to this forwarding broker. It should be understood that these steps are particularly advantageous because the broker to whom the message and topic are forwarded, dynamically determines the nodes to which to further forward the message, and therefore can take in to account changes in the network topology that may have occurred. Finally, in step 710, the message is sent to the brokers in the best path list as modified by step 708, and processing by this broker is complete. Subscribing to a Topic.
  • the method begins with a subscription request being received 802 at a broker from a client.
  • the subscription request preferably includes: a topic, a subscription type, such as whether it is durable, any selectors or filters that should be applied to the subscription and other subscription parameters as will be understood to those skilled in the art.
  • the broker updates 804 the broker topic/node table 408 to add the requesting client as a subscriber to the topic provided by the client.
  • the broker further processes the subscription and consolidates 806 the subscription with other subscriptions the broker is handling. For example, there may be multiple subscribers to the same topic.
  • These multiple subscriptions are consolidated into a single subscription to that topic rather than maintaining multiple subscriptions.
  • selector rules associated with subscriptions are also consolidated such that if necessary the subscription to topic Tl with the selector having a second value will be propagated if it allows receipt of messages that are filtered out by the subscription to topic Tl with the first value.
  • the method determines 808 if propagation of the subscription or the selector rules is required. For example, if there is already a subscriber to the topic, then no additional notification to the publishing node or other nodes is required. However, the new subscription, even if to a topic already being subscribed to, may have a different parameter associated with it as compared to the existing subscription. For example, the new subscription may be durable, where the existing one was not. Similarly, the new subscription may apply no or a different selector to the subscription where the existing subscription has a selector that more limited.
  • the method determines whether propagation is required. If not the method is complete and ends. However, if propagation is required, then the broker sends 812 an updated subscription (the consolidated subscription - for example a single subscription on topic Tl) to all its neighboring nodes. Upon receipt of the updated subscription request by each of these neighboring nodes, they in turn will send it to their neighboring nodes until the updated subscription request has be propagated across the entire distributed computing system 100.
  • the broker sends 812 an updated subscription (the consolidated subscription - for example a single subscription on topic Tl) to all its neighboring nodes.
  • the broker Upon receipt of the updated subscription request by each of these neighboring nodes, they in turn will send it to their neighboring nodes until the updated subscription request has be propagated across the entire distributed computing system 100.
  • These duplicate updated subscription requests provide information about the network that can be used by the node to determine which is the best path for routing messages as will be described with reference to Figure 13 A.
  • the neighboring nodes compare 814 the subscription request to their security policy.
  • Each node includes an administrator and an associated security policy that dictates nodes from which it can accept subscriptions.
  • the neighboring node either accepts or rejects 816 the subscription request based on that node's particular security policy.
  • the method begins with the broker receiving 852 from a client a request to unsubscribe from a topic.
  • the request to unsubscribe preferably includes at least a subscription identification and a topic, but may also include a subscription type, such as whether it is durable, any selectors or filters that should be applied to the subscription and other subscription parameters as will be understood to those skilled in the art.
  • the broker updates 854 the broker topic/node table 408 to remove the requesting client as a subscriber to the topic provided by the client.
  • the broker further processes the request to unsubscribe by consolidating 856 the remaining subscriptions the broker is handling, without the subscription identified in the request to unsubscribe. This is done is the same manner has been described above for subscribing, just without the subscription identified in the request to unsubscribe.
  • the method determines 858 if propagation of the reconsolidated subscription is required. In step 860, the method tests if propagation is required. If not the method is complete and ends. However, if propagation is required, then the broker sends 862 the reconsolidated subscription to the neighboring nodes, which in turn propagate the reconsolidated subscription. Delivery Control.
  • FIGS 9A and 9B various delivery control mechanisms will be described. It will be understood to those skilled in the art that these are just a few such delivery control mechanisms than may be applied by respective nodes and brokers as messages are published over the distributed computing system 100.
  • the mechanisms are designed to limit the number of messages passed between brokers and thereby maximize usage of available bandwidth for useful message traffic. Each mechanism may be applied in a different order or individually even though set forth in a particular order in Figures 9 A and 9B.
  • the broker processes some of these mechanisms while others are perfonned by the protocol layers associated with the dynamic routing architecture under and supporting the broker.
  • a first control mechanism checks 906 if the message is a duplicate message.
  • the messaging protocols and administrator preferably maintain a search list of messages that have been received and are able to compare the message identification number with those identification numbers stored in the search list. Then the underlying protocols test 908 whether the message is a duplicate. If the message is a duplicate, the message is dropped 910. If the message is not a duplicate, the permissions and actions allowed by the broker are reviewed. The process first retrieves 902 the permissions of the broker with regard to publishing messages. Then the method tests 904 whether the broker has permission. If the broker does not have permission to publish messages on this topic, the process continues to step 910 where the message is dropped and remove from the message queue 406. hi another embodiment, the message may also be moved to the dead message queue 410.
  • control handling measures include, but are not limited to, slowing down the rate at which the publisher can send message, sending notifications about the buffer conditions, and discarding the oldest messages from the buffers.
  • control handling mechanism include, but are not limited to, slowing down the rate at which the publisher can send message, sending notifications about the buffer conditions, and discarding the oldest messages from the buffers.
  • step 924 the process continues in step 924 to send the message. If the selectors are active, the process proceeds to step 920 to apply the selector to the message. If the broker determines that the selector matches the message (e.g., the message should be delivered) then the process continues in step 924 to send the message. However, if the selector does not match the criteria, the message is dropped 910. Automatic Termination of Subscriptions. [0078] Yet another method to optimize the publish/subscribe architecture 200 is the automatic termination or expiration of subscriptions. In order to further reduce the overhead and administration of subscriptions in the system 100, the present invention terminates subscriptions if a node or client has been inaccessible for a predetermined amount of time.
  • the inaccessibility of a node for a predetermined amount of time indicates that a possible failure in the node, client or connection that makes sending messages to that subscriber a waste of available bandwidth.
  • the method begins by selecting an existing subscriber 1002. Then the method determines 1004 whether the node for the selected subscriber is inaccessible by accessing the protocol layers and determining whether the connection to a node and broker are accessible. The then method determines how long the node has been inaccessible. Next, the method tests 1006 whether the node has been inaccessible for greater than a predetermined amount of time (t).
  • the broker removes the subscription in step 1012. Removing 1012 the subscription is done in a similar manner to how a subscription is created, by first removing the subscription in the broker topic/node tables 408. hi one embodiment, the broker also sets the subscription so that all messages received for the subscription are stored 1014 in the dead message queue 410. Thus, in the event the subscriber returns some the message may be available for retrieval from the dead message queue 410. After the subscription has been removed, the process is completes and the other subscriptions may be similarly tested for removal. Durable Subscriptions.
  • a durable subscription is one that persists even though there may be connection loss, node failure or client failure that prevents real-time communication with the subscriber.
  • the messages published to a topic are stored for the subscriber until the subscriber re-connects to the distributed computing system 100 and renews the connection at which time the messages can be delivered.
  • Deliver of messages to durable subscribers start in the same manner as processing of all messages with receipt 1102 of a message on a topic at the node for a subscriber.
  • the process determines 1104 if the subscriber is a durable subscriber. If so, the method determines 1106 whether the subscriber is accessible.
  • the message is stored 1108 in long-term storage 306. If and when the subscriber becomes accessible, the method will retrieve the messages from long-term storage 306 and deliver them to the subscriber. If the subscriber is determined 1106 to be accessible, then the message is delivered 1112 without long-term storage in a nonnal fashion as has been described above. If the subscriber is determined not to be durable subscriber in step 1104, the method processes the message as normal and determines whether 1110 subscriber is accessible. If so, the message is deliver 1112. If not the message is dropped 1114. In one embodiment, the message may be store temporarily by storing the message in the dead message queue 410 in addition to dropping 1114 the message. Direct Publishing.
  • Yet another novel feature of the present invention is direct publishing to a specific cluster.
  • the messaging architecture provided by the present invention may be extended to allow specific use of the publish/subscribe capability on a cluster-by-cluster basis.
  • Many of the steps in direct publishing are similar to publishing generally as has been described above with reference to Figure 6, so where possible like reference numerals have been used to identify similar steps.
  • the direct publishing begins in the same way as the general case with a message being generated 602 at a client, and the messaging being published to a topic. Then an additional step of identifying 1202 a cluster to which to send the message is performed. This information is added to the message and topic.
  • the message and topic are sent 604 to the broker, received 606 by the broker, and examined 608 for deliver controls as has been already described above.
  • the broker tests 610 whether the message can be sent. If the message cannot be sent, the process terminates without sending the message. If the message can be sent, then the method identifies 1204 the best path for sending the message to the identified cluster. This step is different from the general method in that the method preferably selects a single path for publication of the message since it is being sent to a specific cluster. While the same messaging infrastructure is utilized, the number of messages generated is minimized by only sending messages on a single path from the client application to the identified cluster. For example, the message would not be sent on paths to other clusters from the publishing node even though they subscribe to the same topic. Thus, in this step, the broker must determine the next node in path from the publishing node to the particular cluster.
  • the broker may distribute the message across multiple paths to get to the cluster, or may identify primary and secondary paths to send the message from the publishing node to the cluster. Once the path has been identified, the message is sent 1206 to the identified cluster using that path. It should be noted that once the message is received at the cluster it is published, as has been described above locally to that cluster. This may mean that the message is propagated to multiple brokers in the cluster and any applications coupled to the cluster and subscribing to the topic. Path Selection.
  • One feature of the present invention is the combination of dynamic routing with publish/subscribe architecture.
  • the present invention ensures that dynamic routing is preserved by adjusting path selection based in part on changes to the topology of the network. More specifically, path selection is affected by the criteria used to determine the best path, real-time adjustment to the path based on connection changes, and strict message ordering.
  • the present invention also allows the use of multiple paths to deliver messages on a given topic.
  • One embodiment of the method for path selection begins by determining 1302 all the paths from the publishing node to the subscribers. Next, the method selects 1304 a best path from the publishing node to each subscriber based on criteria set by the system administrator.
  • the criteria may be a particular attribute of the path, or more complex evaluations with weighted values for each criteria.
  • criteria may include: paths that have the fewest nodes to traverse, paths that are the shortest in distance, paths that are the fastest, paths with the least traffic, paths with the most available bandwidth, paths that have the fewest bottlenecks, paths with best routing conditions, etc.
  • criteria may include: paths that have the fewest nodes to traverse, paths that are the shortest in distance, paths that are the fastest, paths with the least traffic, paths with the most available bandwidth, paths that have the fewest bottlenecks, paths with best routing conditions, etc.
  • Those skilled in the art will recognize that there are a variety of criteria in addition to those enumerated, and a variety of algorithms for evaluating the criteria values to select a best path. Any such evaluation techniques and criteria may be used in selecting the best path to each subscriber.
  • the method then performs real-time adjustment of the best paths.
  • the method monitors 1306 the connections between nodes for changes. Then, the method tests 1308 whether any connections between nodes are unavailable. If there are no unavailable connections, the method continues to step 1312 with no real-time adjustments of the best paths. However, if a connection has become unavailable, the method determines 1310 that subscribers that are affected by the connection not being available, and recalculates 1310 the best paths to those subscribers using the real-time information on connection availability.
  • the present invention also uses multiple paths in routing messages to subscribers. However, because the latency of any particular path, use of multiple paths may cause messages to be received in a different order from that in which they were sent.
  • the present invention allows the subscriber to select strict message ordering. When selected, strict message ordering ensures that the publish/subscribe architecture 200 will deliver the messages in the same order in which they were published.
  • the strict message ordering method first tests whether strict message ordering has been selected for the subscription. If so the method, continues in step 1314 to use an ordered message delivery mechanism to deliver the message. For example, the method may send all messages for that subscription using the same path to guarantee that the original message ordering is preserved.
  • a message order number may be added to each message so that the subscriber could ensure that the original message ordering was preserved, and even re-order the message by message order number if necessary.
  • Those skilled in the art will recognize that there are a wide variety of other ordered message delivery mechanisms that may be employed in step 1314.
  • This completes the path selection process for subscriptions where strict message ordering has been set.
  • the method can regulate and change paths used to send messages to subscribers based on changing network conditions. The method first monitors 1316 the bandwidth on connections between the nodes. Periodically, the method tests 1318 whether additional bandwidth is needed for a subscriber. If additional bandwidth is not needed then the best path identified above is used to send messages to the subscriber.
  • the method calculates 1320 an alternative path from the publishing node to the subscriber. Then messages are send on both the best path and the alternate path to the subscriber. After step 1322, the method returns to step 1318 to retest the bandwidth needs of the subscriber. The method can loop through steps 1318-1322 to create as many paths as necessary to match the bandwidth needs of a particular subscriber. Topic Hierarchy.
  • FIG 14 an exemplary arrangement 1400 of brokers, publisher and subscribers is shown.
  • the corresponding broker topic/node table 1402 is shown for each broker.
  • Figure 14 illustrates how the present invention provides topic hierarchy.
  • the prior art provides only multiple topics without hierarchy.
  • the present invention allows topics to have subtopic for further refining what messages a subscriber will receive. This provides an added advantage of further optimizing the message traffic to its minimum.
  • Those skilled in the art will recognize that this can logically be extended to include sub- subtopics or any numbers of levels in a topic hierarchy.
  • publisher 2 publishes on topic Tl. This could be both for topics on subtopic ST1 or subtopic ST2.
  • Each subtopic is noted in the corresponding broker topic/node table 1402 as a suffix to the topic name.
  • the absence of a suffix indicates that the subscriber subscribes to all subtopics. For example, if publisher 2 publishes four messages on topic Tl; the first two on topic Tl, subtopic ST1, and the second two message on topic Tl, but subtopic ST2, all four message are send from broker 2 to broker 1, while only the latter two messages are sent from broker 2 to broker 3.
  • This example also illustrates how topic consolidation may occur.
  • the broker topic/node table 1402 for broker 2 there is only a single table entry for broker Bl because the subtopic subscription of subscriber 2 is subsumed in subscriber l's subscription to topic 1 regardless of subtopic. Traffic Control.
  • the publish/subscribe system 200 of the present invention advantageously also allows the message traffic to be shaped according the bandwidth changes on connections and topic. This process begins by monitoring 1502 the network connections for changes in bandwidth. Then the method identifies 1504 comiections with decreasing bandwidth. Next, the system 200 identifies 1506 topics using the connections that have decreasing bandwidth. Then, the method determines 1508 any bandwidth preferences for topics.
  • the present invention allows the administrator to provide preferences as to which topic will get a preference on a given connection.
  • topic A may be more important or have a guaranteed quality of service and thus get a preference over topics B and C.
  • the method modifies and re-routes messages by topic according to the bandwidth preferences.
  • the messages for topics B and C would be re-routed as bandwidth on a given connection decreases, and messages on topic A would have priority to remain on the connection.
  • This method is particularly advantageous because it allows traffic to be shaped on a topic basis.
  • the adverse effects can be limited to messages on a specific topic that may be less important.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

L'invention concerne un système d'acheminement dynamique de messages portant sur un sujet entre des noeuds d'édition et des noeuds d'inscription, qui comprend une pluralité de files d'attente de messages, au moins une table sujets/noeuds, un module d'inscription, un module d'édition, et d'autres modules destinés à envoyer des messages entre un ou plusieurs éditeurs et un ou plusieurs inscrits. Lesdits modules sont couplés ensemble par un bus dans une pluralité de noeuds, et assurent l'acheminement dynamique de messages portant sur un sujet entre des noeuds d'édition et des noeuds d'inscription. Les files d'attente de messages stockent les messages au niveau de chaque noeud, en vue de leur distribution aux inscrits se trouvant à proximité dudit noeud. La table sujets/noeuds établit une liste indiquant quels clients s'inscrivent à quels sujets, que les autres modules utilisent pour assurer une distribution correcte des messages. Le module d'inscription sert à identifier les inscrits à un thème, et à transmettre les messages aux inscrits de manière dynamique. Les autres modules comprennent divers dispositifs permettant d'optimiser la communication de messages dans une architecture d'édition/inscription fonctionnant sur un système informatique réparti. La présente invention se rapporte également à un certain nombre de nouveaux procédés, notamment à un procédé permettant de publier un message portant sur un sujet, à un procédé permettant de transférer un message portant sur un sujet, à un procédé permettant de s'inscrire à des messages portant sur un sujet, à un procédé permettant d'éliminer automatiquement des inscrits, à un procédé permettant de publier directement des messages, et à des procédés permettant d'optimiser la transmission de messages entre des noeuds.
PCT/US2004/003674 2003-02-06 2004-02-06 Inscription dynamique et acheminement dynamique de messages portant sur un sujet entre un noeud d'edition et des noeuds d'inscription WO2004072800A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0517847A GB2417160B (en) 2003-02-06 2004-02-06 Dynamic subscription and message routing on a topic between a publishig node and subscribing nodes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US44554303P 2003-02-06 2003-02-06
US60/445,543 2003-02-06

Publications (2)

Publication Number Publication Date
WO2004072800A2 true WO2004072800A2 (fr) 2004-08-26
WO2004072800A3 WO2004072800A3 (fr) 2004-12-29

Family

ID=32869378

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2004/003674 WO2004072800A2 (fr) 2003-02-06 2004-02-06 Inscription dynamique et acheminement dynamique de messages portant sur un sujet entre un noeud d'edition et des noeuds d'inscription

Country Status (2)

Country Link
GB (1) GB2417160B (fr)
WO (1) WO2004072800A2 (fr)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006116866A1 (fr) * 2005-05-02 2006-11-09 Polycentric Networks Corporation Publication, souscription, et/ou distribution de donnees formatees et/ou a controle de qualite modulable comportant une formation dynamique de reseau
CN1327653C (zh) * 2004-12-09 2007-07-18 中国科学院软件研究所 构建于结构化P2P网络之上的pub/sub系统的路由方法
WO2008101033A2 (fr) * 2007-02-14 2008-08-21 Ripple Networks, Inc. Procédés et systèmes pour programmer en libre-service un contenu et faire de la publicité sur des réseaux numériques hors foyer
WO2009080096A1 (fr) * 2007-12-19 2009-07-02 Telefonaktiebolaget Lm Ericsson (Publ) Réseaux de publication/abonnement
WO2009109510A1 (fr) * 2008-03-03 2009-09-11 International Business Machines Corporation Procédé et système de distribution de message
GB2466289A (en) * 2008-12-18 2010-06-23 Veda Technology Ltd Executing a service application on a cluster by registering a class and storing subscription information of generated objects at an interconnect
US7970918B2 (en) 2005-01-06 2011-06-28 Tervela, Inc. End-to-end publish/subscribe middleware architecture
WO2015047438A1 (fr) * 2013-09-28 2015-04-02 Mcafee, Inc. Distribution de politique en temps réel
US9705752B2 (en) 2015-01-29 2017-07-11 Blackrock Financial Management, Inc. Reliably updating a messaging system
CN109391500A (zh) * 2017-08-11 2019-02-26 华为技术有限公司 一种配置管理方法、装置及设备
US10609155B2 (en) 2015-02-20 2020-03-31 International Business Machines Corporation Scalable self-healing architecture for client-server operations in transient connectivity conditions
CN111103570A (zh) * 2019-11-04 2020-05-05 航天南湖电子信息技术股份有限公司 一种雷达实时信号处理应用软件架构
CN111163159A (zh) * 2019-12-27 2020-05-15 中国平安人寿保险股份有限公司 消息订阅方法、装置、服务器及计算机可读存储介质
CN111221659A (zh) * 2018-11-23 2020-06-02 北京图森智途科技有限公司 一种多机器人操作系统环境的订阅性能追踪系统
EP2979173B1 (fr) * 2013-03-28 2021-01-06 InterDigital CE Patent Holdings Gestion de cycle de vie d'objet dans un environnement publication-abonnement
CN113162970A (zh) * 2021-01-27 2021-07-23 中央财经大学 基于发布/订阅模型的消息路由方法、装置、设备及介质
CN114726737A (zh) * 2020-12-22 2022-07-08 诺基亚通信公司 使用分区用于可缩放性的基于意图的组网
CN115190164A (zh) * 2022-06-24 2022-10-14 弥费实业(上海)有限公司 网络通信方法、装置、计算机设备和存储介质
EP4145287A1 (fr) * 2021-09-03 2023-03-08 Siemens Aktiengesellschaft Dispositif de commande intégré, procédé de mise à jour d'une unité de courtier du dispositif intégré et produit programme informatique
WO2024021582A1 (fr) * 2022-07-29 2024-02-01 中兴通讯股份有限公司 Système de plan de données de réseau, procédé d'interaction de données et support d'enregistrement

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154781A (en) * 1998-12-24 2000-11-28 International Business Machines Corporation Publish and subscribe data processing with subscriber option to request subscription propagation prior to acknowledgement
US6298455B1 (en) * 1998-12-29 2001-10-02 International Business Machines Corporation Publish and subscribe data processing with failover using cascaded sequence numbers
US6336119B1 (en) * 1997-11-20 2002-01-01 International Business Machines Corporation Method and system for applying cluster-based group multicast to content-based publish-subscribe system
US6643682B1 (en) * 1999-09-22 2003-11-04 International Business Machines Corporation Publish/subscribe data processing with subscription points for customized message processing
US6728715B1 (en) * 2000-03-30 2004-04-27 International Business Machines Corporation Method and system for matching consumers to events employing content-based multicast routing using approximate groups

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336119B1 (en) * 1997-11-20 2002-01-01 International Business Machines Corporation Method and system for applying cluster-based group multicast to content-based publish-subscribe system
US6154781A (en) * 1998-12-24 2000-11-28 International Business Machines Corporation Publish and subscribe data processing with subscriber option to request subscription propagation prior to acknowledgement
US6298455B1 (en) * 1998-12-29 2001-10-02 International Business Machines Corporation Publish and subscribe data processing with failover using cascaded sequence numbers
US6643682B1 (en) * 1999-09-22 2003-11-04 International Business Machines Corporation Publish/subscribe data processing with subscription points for customized message processing
US6728715B1 (en) * 2000-03-30 2004-04-27 International Business Machines Corporation Method and system for matching consumers to events employing content-based multicast routing using approximate groups

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1327653C (zh) * 2004-12-09 2007-07-18 中国科学院软件研究所 构建于结构化P2P网络之上的pub/sub系统的路由方法
US9253243B2 (en) 2005-01-06 2016-02-02 Tervela, Inc. Systems and methods for network virtualization
US8321578B2 (en) 2005-01-06 2012-11-27 Tervela, Inc. Systems and methods for network virtualization
US7970918B2 (en) 2005-01-06 2011-06-28 Tervela, Inc. End-to-end publish/subscribe middleware architecture
WO2006116866A1 (fr) * 2005-05-02 2006-11-09 Polycentric Networks Corporation Publication, souscription, et/ou distribution de donnees formatees et/ou a controle de qualite modulable comportant une formation dynamique de reseau
WO2008101033A2 (fr) * 2007-02-14 2008-08-21 Ripple Networks, Inc. Procédés et systèmes pour programmer en libre-service un contenu et faire de la publicité sur des réseaux numériques hors foyer
WO2008101033A3 (fr) * 2007-02-14 2009-05-22 Ripple Networks Inc Procédés et systèmes pour programmer en libre-service un contenu et faire de la publicité sur des réseaux numériques hors foyer
US9154571B2 (en) 2007-12-19 2015-10-06 Telefonaktiebolaget L M Ericsson (Publ) Publish/subscribe networks
WO2009080096A1 (fr) * 2007-12-19 2009-07-02 Telefonaktiebolaget Lm Ericsson (Publ) Réseaux de publication/abonnement
WO2009109510A1 (fr) * 2008-03-03 2009-09-11 International Business Machines Corporation Procédé et système de distribution de message
US8346876B2 (en) 2008-03-03 2013-01-01 International Business Machines Corporation Method and system for message delivery
GB2466289A (en) * 2008-12-18 2010-06-23 Veda Technology Ltd Executing a service application on a cluster by registering a class and storing subscription information of generated objects at an interconnect
US11019115B2 (en) 2013-03-28 2021-05-25 Interdigital Ce Patent Holdings Object life cycle management in a publish-subscribe environment
EP2979173B1 (fr) * 2013-03-28 2021-01-06 InterDigital CE Patent Holdings Gestion de cycle de vie d'objet dans un environnement publication-abonnement
WO2015047438A1 (fr) * 2013-09-28 2015-04-02 Mcafee, Inc. Distribution de politique en temps réel
US10148695B2 (en) 2013-09-28 2018-12-04 Mcafee, Llc Real-time policy distribution
US10715556B2 (en) 2013-09-28 2020-07-14 Mcafee, Llc Real-time policy distribution
US10623272B2 (en) 2015-01-29 2020-04-14 Blackrock Financial Management, Inc. Authenticating connections and program identity in a messaging system
US9705752B2 (en) 2015-01-29 2017-07-11 Blackrock Financial Management, Inc. Reliably updating a messaging system
US10263855B2 (en) 2015-01-29 2019-04-16 Blackrock Financial Management, Inc. Authenticating connections and program identity in a messaging system
US10341196B2 (en) 2015-01-29 2019-07-02 Blackrock Financial Management, Inc. Reliably updating a messaging system
US9712398B2 (en) 2015-01-29 2017-07-18 Blackrock Financial Management, Inc. Authenticating connections and program identity in a messaging system
US10609155B2 (en) 2015-02-20 2020-03-31 International Business Machines Corporation Scalable self-healing architecture for client-server operations in transient connectivity conditions
US11265218B2 (en) 2017-08-11 2022-03-01 Huawei Technologies Co., Ltd. Configuration management method and apparatus, and device
CN109391500B (zh) * 2017-08-11 2021-08-31 华为技术有限公司 一种配置管理方法、装置及设备
CN109391500A (zh) * 2017-08-11 2019-02-26 华为技术有限公司 一种配置管理方法、装置及设备
CN111221659A (zh) * 2018-11-23 2020-06-02 北京图森智途科技有限公司 一种多机器人操作系统环境的订阅性能追踪系统
CN111221659B (zh) * 2018-11-23 2023-10-03 北京图森智途科技有限公司 一种多机器人操作系统环境的订阅性能追踪系统
CN111103570B (zh) * 2019-11-04 2023-04-28 航天南湖电子信息技术股份有限公司 一种雷达实时信号处理应用软件系统
CN111103570A (zh) * 2019-11-04 2020-05-05 航天南湖电子信息技术股份有限公司 一种雷达实时信号处理应用软件架构
CN111163159A (zh) * 2019-12-27 2020-05-15 中国平安人寿保险股份有限公司 消息订阅方法、装置、服务器及计算机可读存储介质
CN111163159B (zh) * 2019-12-27 2023-07-14 中国平安人寿保险股份有限公司 消息订阅方法、装置、服务器及计算机可读存储介质
CN114726737A (zh) * 2020-12-22 2022-07-08 诺基亚通信公司 使用分区用于可缩放性的基于意图的组网
CN114726737B (zh) * 2020-12-22 2024-03-22 诺基亚通信公司 使用分区用于可缩放性的基于意图的组网
CN113162970B (zh) * 2021-01-27 2023-08-22 中央财经大学 基于发布/订阅模型的消息路由方法、装置、设备及介质
CN113162970A (zh) * 2021-01-27 2021-07-23 中央财经大学 基于发布/订阅模型的消息路由方法、装置、设备及介质
WO2023030953A1 (fr) * 2021-09-03 2023-03-09 Siemens Aktiengesellschaft Dispositif de commande intégré, procédé de mise à jour d'une unité de courtage du dispositif intégré et produit programme informatique
EP4145287A1 (fr) * 2021-09-03 2023-03-08 Siemens Aktiengesellschaft Dispositif de commande intégré, procédé de mise à jour d'une unité de courtier du dispositif intégré et produit programme informatique
CN115190164B (zh) * 2022-06-24 2023-11-03 弥费科技(上海)股份有限公司 网络通信方法、装置、计算机设备和存储介质
CN115190164A (zh) * 2022-06-24 2022-10-14 弥费实业(上海)有限公司 网络通信方法、装置、计算机设备和存储介质
WO2024021582A1 (fr) * 2022-07-29 2024-02-01 中兴通讯股份有限公司 Système de plan de données de réseau, procédé d'interaction de données et support d'enregistrement

Also Published As

Publication number Publication date
WO2004072800A3 (fr) 2004-12-29
GB2417160A (en) 2006-02-15
GB2417160B (en) 2006-12-20
GB0517847D0 (en) 2005-10-12

Similar Documents

Publication Publication Date Title
US11374885B2 (en) Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes
US20220286415A1 (en) Dynamic Subscription and Message Routing on a Topic Between Publishing Nodes and Subscribing Nodes
WO2004072800A2 (fr) Inscription dynamique et acheminement dynamique de messages portant sur un sujet entre un noeud d'edition et des noeuds d'inscription
US7039671B2 (en) Dynamically routing messages between software application programs using named routing nodes and named message queues
US20030135556A1 (en) Selection of communication strategies for message brokers or publish/subscribe communications
US8108345B2 (en) Managing rich presence collections in a single request
JP3382953B2 (ja) 有限メモリコンピュータシステム上におけるクライアント管理フロー制御方法及び装置
US6658485B1 (en) Dynamic priority-based scheduling in a message queuing system
US7865633B2 (en) Multiple context single logic virtual host channel adapter
US20070239866A1 (en) Managing Rich Presence Collections
US7860948B2 (en) Hierarchical caching in telecommunication networks
US20030229674A1 (en) Internet scaling in a PUB/SUB ENS
JP2002512411A (ja) アクセス制御方法および装置
CA2644124A1 (fr) Gestion de collections de presence riches en contenu
US10439901B2 (en) Messaging queue spinning engine
US20030093463A1 (en) Dynamic distribution and network storage system
US20080235384A1 (en) Web service for coordinating actions of clients
US20060075101A1 (en) Method, system, and computer program product for supporting a large number of intermittently used application clusters
US7802065B1 (en) Peer to peer based cache management
JP2004506272A (ja) 未加工金融データを処理して、妥当性検査した商品案内情報を加入者に対して生成するシステム
JP4154287B2 (ja) サーバ負荷分散方法,負荷分散システム,サーバおよび負荷分散装置
JPH10198623A (ja) ネットワ−ク用キャッシュシステム及びデ−タ転送方法
JP4430951B2 (ja) コンテンツ配信管理方法、コンテンツ配信装置、コンテンツ配信システム、プログラムおよび記録媒体
US20240064089A1 (en) Priority based route programing and advertising
JP4483633B2 (ja) ハードウェアリソースの状態を管理するための情報処理装置、方法及びプログラム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 0517847

Country of ref document: GB

122 Ep: pct application non-entry in european phase