IP Library Granted Patent US 9,369,382
Granted Patent B2
US 9,369,382 · App. 14/042,084 · Granted Jun 14, 2016

System and method for supporting messaging in a fully distributed system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,369,382
App. No.
14/042,084
Granted
Jun 14, 2016
Kind
B2
Abstract

A system and method can support messaging in a fully distributed system. The fully distributed system includes a plurality of agents. An agent in the plurality of agents operates to determine an address for a message, wherein said address is determined at least partially according to a content of the message. Then, said agent can select a path to transmit the message according to said address, and send the message according to said path directly to said address.

Claims (39)

1. A method for distributing messages among a plurality of agents in a distributed system executing on a machine including one or more microprocessors, the method comprising:

parsing at least one XML element in a message to determine whether the message includes a particular topic;

determining, via a first agent, a destination address for the message at least partially according to the particular topic of the message and a second agent that subscribes to the particular topic;

selecting, via said first agent, a path to transmit the message according to said destination address; and

sending, via said first agent using a network layer, the message according to said path directly to the second agent;

wherein the message is sent using a transport selected from a plurality of transports in the distributed system, based on a cost value calculated by a cost function for each of the plurality of transports, wherein the cost value includes a cost for creating a network socket and a cost for initiating a protocol stack for a transport protocol in a transport.

2. The method of claim 1 , wherein the transport protocol is selected from a group consisting of a Java Message Service (JMS), Hypertext Transfer Protocol (HTTP), Transmission Control Protocol (TCP) and Remote Method Invocation (RMI).

3. The method of claim 1 , wherein said selected transport is from the group consisting of a persistent connection and a temporary transmission.

4. The method of claim 3 , wherein said selected transport is based on a connection protocol that is selected from the group consisting of User Datagram Protocol (UDP), Reliable User Datagram Protocol (RUDP), and Transmission Control Protocol (TCP).

5. The method of claim 3 , wherein said transmission mechanism is based on a transmission that is selected from the group consisting of unicast, broadcast, multicast, tunneling and reliable multicast.

6. The method of claim 3 , wherein said transport is further determined based on availability of connection, and scale of connection and/or transmission(s).

7. The method of claim 1 , wherein the distributed system operates without a central message broker.

8. The method of claim 1 , further comprising:

providing, via said first agent, a smart publish/subscribe function for the message.

9. The method of claim 1 , further comprising:

providing a distributed queue that queues messages from a plurality of agents in said distributed queue, including the message from said first agent.

10. The method of claim 9 , wherein each of the plurality of agents is associated with a local queue corresponding to said distributed queue.

11. The method of claim 1 , further comprising:

performing, via said first agent, an automatic discovery to determine at least one characteristic of at least one other agent.

12. The method of claim 11 , wherein said at least one characteristic comprises at least one of capability, published information and subscribed information of said at least one other agent.

13. The method of claim 11 , further comprising:

receiving, via said first agent, a map for said automatic discovery.

14. The method of claim 1 , wherein only said first agent performs message switching.

15. A system for support messaging in a distributed system, comprising:

one or more microprocessors;

a plurality of agents in the distributed system that runs on the one or more microprocessors, wherein a first agent in the plurality of agents operates to perform the steps comprising

parsing at least one XML element in a message to determine whether the message includes a particular topic,

determining a destination address for the message at least partially according to the particular topic of the message and a second agent that subscribes to the particular topic,

selecting a path to transmit the message according to said destination address, and

sending the message according to said path directly to the second agent using a network layer;

wherein the message is sent using a transport selected from a plurality of transports in the distributed system, based on a cost value calculated by a cost function for each of the plurality of transports, wherein the cost value includes a cost for creating a network socket and a cost for initiating a protocol stack for a transport protocol in a transport.

16. The system of claim 15 , wherein the selected transport protocol is from a group consisting of a Java Message Service (JMS), Hypertext Transfer Protocol (HTTP), Transmission Control Protocol (TCP) and Remote Method Invocation (RMI).

17. The system of claim 15 , wherein the selected transport is based on a connection protocol that is selected from the group consisting of User Datagram Protocol (UDP), Reliable User Datagram Protocol (RUDP), and Transmission Control Protocol (TCP).

18. A machine readable non-transitory storage medium having instructions stored thereon that when executed by a processor cause a system to perform the steps comprising:

parsing at least one XML element in a message to determine whether the message includes a particular topic;

determining a destination address for the message at least partially according to the particular topic of the message and a second agent that subscribes to the particular topic;

selecting, via said first agent, a path to transmit the message according to said destination address; and

sending, via said first agent using a network layer, the message according to said path directly to the second agent;

wherein the message is sent using a transport selected from a plurality of transports in the distributed system, based on a cost value calculated by a cost function for each of the plurality of transports, wherein the cost value includes a cost for creating a network socket and a cost for initiating a protocol stack for a transport protocol in a transport.