Claims
- 1. A message routing method, comprising:
(a) receiving a message; (b) determining a route path for delivery of said message to one or more recipient services, said route path including one or more in-transit services; and (c) delivering said message to an in-transit service in said route path, wherein said in-transit service performs an identifiable operation on said message as said message travels from a sending service to a recipient service.
- 2. The message routing method of claim 1, wherein said message includes a header element and at least one of a body element and an attachment.
- 3. The message routing method of claim 2, wherein said header element is an extensible markup language header element.
- 4. The message routing method of claim 2, wherein said body element and said attachment can accommodate any type of data.
- 5. The message routing method of claim 4, wherein said data includes extensible markup language data.
- 6. The message routing method of claim 4, wherein said data includes text data.
- 7. The message routing method of claim 4, wherein said data includes binary data.
- 8. The message routing method of claim 2, wherein said message further includes routing and route trace elements.
- 9. The message routing method of claim 1, wherein said receiving is based on the Simple Object Access Protocol.
- 10. The message routing method of claim 1, wherein said receiving includes receiving said message from a party that sends said message on behalf of a sender.
- 11. The message routing method of claim 2, wherein said determining is based on a reference to a service identified in said header element.
- 12. The message routing method of claim 1, wherein said determining is based on at least one routing script.
- 13. The message routing method of claim 12, wherein said determining is based on a routing script defined by a sending service.
- 14. The message routing method of claim 12, wherein said determining is based on a routing script defined by a recipient service.
- 15. The message routing method of claim 12, wherein said determining is based on a routing script defined by an in-transit service.
- 16. The message routing method of claim 12, wherein said determining is based on routing scripts defined by a sending service, a recipient service, and at least one in-transit service.
- 17. The message routing method of claim 12, wherein said determining is recursive.
- 18. The message routing method of claim 12, wherein said determining occurs prior to physical delivery of said message.
- 19. The message routing method of claim 12, wherein said determining occurs dynamically during logical and physical delivery of said message.
- 20. The message routing method of claim 12, wherein a routing script defines a procedure that determines an existence of one or more attributes of the message.
- 21. The message routing method of claim 12, wherein a routing script defines a procedure based on pattern matching.
- 22. The message routing method of claim 12, wherein a routing script defines a procedure that compares one or more attributes of a message to a reference value.
- 23. The message routing method of claim 12, wherein a routing script is based on a routing rule, said routing rule including a condition and one or more actions.
- 24. The message routing method of claim 23, wherein said condition is one of an equals, not-equals, equals-one-of, less-than, greather-than, and exists operators.
- 25. The message routing method of claim 23, wherein said condition is a combination of one or more conditions.
- 26. The message routing method of claim 25, wherein said one or more conditions are combined using one or more of an AND, OR, XOR, and NOT operators.
- 27. The message routing method of claim 1, wherein said delivering includes pushing said message to said in-transit service.
- 28. The message routing method of claim 1, wherein said delivering includes delivering said message upon a polling action by said in-transit service.
- 29. The message routing method of claim 1, wherein said delivering includes delivering said message to said in-transit service for one of a data transformation operation, an enrichment operation, a cross-reference ID mapping operation, a filtering operation, and a credit scoring operation.
- 30. The message routing method of claim 1, further comprising logging usage, status, and billing information after processing said message.
- 31. The message routing method of claim 1, further comprising delivering said message to said recipient service after said message has been routed to all in-transit services in said route path.
- 32. A message routing system, comprising:
a message routing network that enables message routing between a sending service and one or more recipient services, said message routing network further enabling inclusion of a plurality of in-transit services into said message routing network, wherein an in-transit service can be selectively included in a routing for a message based upon an identifiable type of processing that said in-transit service can perform on said message.
- 33. The message routing system of claim 32, wherein said in-transit service performs one of a data transformation operation, an enrichment operation, a cross-reference ID mapping operation, a filtering operation, and a credit scoring operation.
- 34. The message routing system of claim 32, wherein an in-transit service is included in said routing based on a routing script.
- 35. The message routing system of claim 34, wherein said routing script is defined by a sending service.
- 36. The message routing system of claim 34, wherein said routing script is defined by a recipient service.
- 37. The message routing system of claim 34, wherein said routing script is defined by an in-transit service.
- 38. The message routing system of claim 34, wherein said routing is defined by a sending service, a recipient service, and at least one in-transit service.
- 39. The message routing system of claim 34, wherein said routing is determined recursively.
- 40. The message routing system of claim 34, wherein said routing is determined prior to physical delivery of said message.
- 41. The message routing system of claim 34, wherein said routing is determined during logical and physical delivery of said message.
- 42. The message routing system of claim 34, wherein a routing script defines a procedure that determines an existence of one or more attributes of the message.
- 43. The message routing system of claim 34, wherein a routing script defines a procedure based on pattern matching.
- 44. The message routing system of claim 34, wherein a routing script defines a procedure that compares one or more attributes of a message to a reference value.
- 45. The message routing system of claim 34, wherein a routing script is based on a routing rule, said routing rule including a condition and one or more actions.
- 46. The message routing system of claim 45, wherein said condition is one of an equals, not-equals, equals-one-of, less-than, greather-than, and exists operators.
- 47. The message routing system of claim 45, wherein said condition is a combination of one or more conditions.
- 48. The message routing system of claim 47, wherein said one or more conditions are combined using one or more of an AND, OR, XOR, and NOT operators.
- 49. The message routing system of claim 32, wherein said message routing network provides a transport level messaging service.
- 50. The message routing system of claim 32, wherein said message is delivered to said recipient service after said message has been routed to all in-transit services in said route path.
- 51. A computer program product comprising:
computer-readable program code for causing a computer to receive a message; computer-readable program code for causing a computer to determine a route path for delivery of said message to one or more recipient services, said route path including one or more in-transit services; computer-readable program code for causing a computer to deliver said message to an in-transit service in said route path, wherein said in-transit service has been created to perform an identifiable operation on said message as said message travels from a sending service to a recipient service; and a computer-usable medium configured to store the computer-readable program codes.
- 52. A message routing network method, comprising:
(a) receiving a registration request from a service for inclusion in a message routing network, said service being operative to provide a data operation; and (b) including said service in a directory of services, said directory of services enabling users of said message routing network to define at least a portion of a desired data processing on a message.
- 53. The message routing network method of claim 52, wherein said service provides a data transformation service.
- 54. The message routing network method of claim 52, wherein said service provides a data enrichment service.
- 55. The message routing network method of claim 52, wherein said service provides a cross-reference service.
- 56. The message routing network method of claim 52, wherein said service provides a filtering service.
- 57. The message routing network method of claim 52, wherein said service provides a credit scoring service.
- 58. The message routing network method of claim 52, wherein a service is selected from said directory of services by a sending service.
- 59. The message routing network method of claim 52, wherein a service is selected from said directory of services by a recipient service.
- 60. The message routing network method of claim 52, wherein a service is selected from said directory of service engines by an in-transit service.
- 61. The message routing network method of claim 52, further comprising storing a script defined by one of a sending service, a recipient service, and an in-transit service, said script mapping an invocation of a first service to an invocation of a second service, wherein contexts of said invocations are managed by said message routing network.
- 62. The message routing network method of claim 61, wherein said script defines a procedure for enabling determination of at least part of a routing of a message between services.
- 63. A computer program product comprising:
computer-readable program code for causing a computer to receive a registration request from a service for inclusion in a message routing network, said service being operative to provide a data operation; computer-readable program code for causing a computer to include said service in a directory of services, said directory of services enabling users of said message routing network to define at least a portion of a desired data processing on a message; and a computer-usable medium configured to store the computer-readable program codes.
- 64. A message routing system, comprising:
a message routing network having an interface that enables a plurality of services to post messages to and receive messages from said message routing network, at least a portion of said plurality of services providing a menu of data operations that can be selectively applied to a message traversing said message routing network.
- 65. The message routing system of claim 64, wherein said message routing network provides a transport level messaging service.
- 66. The message routing system of claim 65, wherein said message routing network is implemented on a public network.
- 67. The message routing system of claim 64, wherein said plurality of services includes a service that provides a data transformation service.
- 68. The message routing system of claim 64, wherein said plurality of services includes a service that provides a data enrichment service.
- 69. The message routing system of claim 64, wherein said plurality of services includes a service that provides a cross-reference service.
- 70. The message routing system of claim 64, wherein said plurality of services includes a service that provides a filtering service.
- 71. The message routing system of claim 64, wherein said plurality of services includes a service that provides a credit scoring service.
- 72. The message routing system of claim 64, wherein a service is selected by a sending service.
- 73. The message routing system of claim 64, wherein a service is selected by a recipient service.
- 74. The message routing system of claim 64, wherein a service is selected by an in-transit service.
- 75. The message routing system of claim 64, wherein said interface uses the Simple Object Access Protocol.
- 76. The message routing system of claim 64, wherein a service is selectively applied based on a routing script.
- 77. The message routing system of claim 76, wherein said routing script maps an invocation of a first service to an invocation of a second service, wherein contexts of said invocations are managed by said message routing network.
- 78. The message routing system of claim 76, wherein said script defines a procedure for enabling determination of at least part of a routing of a message between services.
- 79. The message routing system of claim 76, wherein said routing script is defined by one of a sending service, a recipient service, and an in-transit service.
- 80. A message routing system, comprising:
a message routing network that enables message routing between a plurality of services, wherein each service provides a data operation that is applied to a message traversing said routing, wherein said message routing network generates a bill for at least part of said message routing based on usage of individual services.
- 81. The message routing system of claim 80, wherein said bill is generated through an analysis of invocations of said plurality of services.
- 82. The message routing system of claim 80, wherein said bill is based on message size.
- 83. The message routing system of claim 80, wherein said bill is determined on a per transaction basis.
Parent Case Info
[0001] The present application claims priority to Provisional Application No. ______, Attorney Docket No. GRCN001/00US, entitled, “System and Method for Routing Messages Between Applications,” filed Mar. 26, 2001, which is incorporated herein by reference in its entirety.