Routing messages between applications
View Patent ↗A system and method for enabling the interchange of enterprise data through an open platform is disclosed. This open platform can be based on a standardized interface that enables parties to easily connect to and use the network. Services operating as senders, recipients, and in-transit parties can therefore leverage a framework that overlays a public network.
1. A method for routing a message, the method comprising:
receiving, by a message routing system from a sending service, a message directed to a receiving service;
logically routing, by the message routing system, the message to a plurality of in-transit services, wherein during the logical routing each of the plurality of services modifies routing of the message or context of the message without physically receiving the message;
physically routing, by the message routing system, the message to a subset of in-transit services from the plurality of in-transit services, the physical routing determined based on the logical routing and comprising physical delivery of the message to each in-transit service of the subset; and
providing, by the message routing system, the message to the receiving service.
2. The method of claim 1 , wherein during the logical routing an in-transit service from the plurality of in-transit services determines not to include itself in the physical routing of the message.
3. The method of claim 1 , wherein logically routing the message comprises evaluating scripts defined by one or more of the plurality of services.
4. The method of claim 1 , wherein the message is physically routed through a routing network built on an open platform overlaying a public network.
5. The method of claim 1 , wherein each in-transit service from the subset performs one or more of the following operations upon receiving the message:
transforming data of the message, enriching the message, cross-referencing data included in the message, and filtering the message.
6. The method of claim 1 , wherein providing the message to the receiving service comprises storing the message in a queue, the message retrieved by the receiving service from the queue.
7. The method of claim 1 , wherein providing the message to the receiving service comprises transmitting the message to the receiving service.
8. A computer program product for routing a message, the computer program product comprising a non-transitory computer-readable storage medium containing computer program instructions for:
receiving, by a message routing system from a sending service, a message directed to a receiving service;
logically routing, by the message routing system, the message to a plurality of in-transit services, wherein during the logical routing each of the plurality of services modifies routing of the message or context of the message without physically receiving the message;
physically routing, by the message routing system, the message to a subset of in-transit services from the plurality of in-transit services, the physical routing determined based on the logical routing and comprising physical delivery of the message to each in-transit service from the subset; and
providing, by the message routing system, the message to the receiving service.
9. The computer program product of claim 8 , wherein during the logical routing an in-transit service from the plurality of in-transit services determines not to include itself in the physical routing of the message.
10. The computer program product of claim 8 , wherein logically routing the message comprises evaluating scripts defined by one or more of the plurality of services.
11. The computer program product of claim 8 , wherein the message is physically routed through a routing network built on an open platform overlaying a public network.
12. The computer program product of claim 8 , wherein each in-transit service from the subset performs one or more of the following operations upon receiving the message: transforming data of the message, enriching the message, cross-referencing data included in the message, and filtering the message.
13. The computer program product of claim 8 , wherein providing the message to the receiving service comprises storing the message in a queue, the message retrieved by the receiving service from the queue.
14. The computer program product of claim 8 , wherein providing the message to the receiving service comprises transmitting the message to the receiving service.
15. A message routing system comprising:
one or more computer processors; and
a non-transitory computer-readable storage medium containing computer program instructions executed by the one or more computer processors for:
receiving, from a sending service, a message directed to a receiving service;
logically routing the message to a plurality of in-transit services, wherein during the logical routing each of the plurality of services modifies routing of the message or context of the message without physically receiving the message;
physically routing the message to a subset of in-transit services from the plurality of in-transit services, the physical routing determined based on the logical routing and comprising physical delivery of the message to each in-transit service from the subset; and
providing the message to the receiving service.
16. The message routing system of claim 15 , wherein during the logical routing an in-transit service from the plurality of in-transit services determines not to include itself in the physical routing of the message.
17. The message routing system of claim 15 , wherein logically routing the message comprises evaluating scripts defined by one or more of the plurality of services.
18. The message routing system of claim 15 , wherein the message is physically routed through a routing network built on an open platform overlaying a public network.
19. The message routing system of claim 15 , wherein each in-transit service from the subset performs one or more of the following operations upon receiving the message: transforming data of the message, enriching the message, cross-referencing data included in the message, and filtering the message.
20. The message routing system of claim 15 , wherein providing the message to the receiving service comprises transmitting the message to the receiving service or storing the message in a queue, wherein the message is retrieved by the receiving service from the queue.