Configurable message pipelines
First Claim
1. One or more computer readable storage media having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
- provide an interface for a plurality of single-threaded message handlers, wherein the message handlers may be synchronous and/or asynchronous;
identify a plurality of the message handlers available in an array in the interface that are to be included in a message handling pipeline of a service used to communicate with one or more other services, each of the plurality of message handlers being designed to operate on a message passed into the message handling pipeline;
the identified plurality of message handlers including one or more extension handlers and one or more default message handlers, the one or more extension handlers having been designed separate from the design of the service that includes the one or more default message handlersbuild a stage to describe the ordering of the message handlers;
reference at least two arrays encoding the relationship between the message handler and the stage and build a pipeline from the stage of identified and ordered message handler modules; and
request that the pipeline be made available for use by applications run by the one or more processors, with messages passed into the pipeline being operated on based on the identified plurality of ordered message handlers.
2 Assignments
0 Petitions
Accused Products
Abstract
In accordance with certain aspects of configurable message pipelines, a service allows one or more applications running on a system to communicate with one or more other systems. The service includes a port having a send pipeline to allow the one or more applications to send messages to the one or more other systems and/or a receive pipeline to allow the one or more applications to receive messages from the one or more other systems. Each of the send pipeline and the receive pipeline is configurable by the one or more applications to include functionality desired by the one or more applications.
-
Citations
14 Claims
-
1. One or more computer readable storage media having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
-
provide an interface for a plurality of single-threaded message handlers, wherein the message handlers may be synchronous and/or asynchronous; identify a plurality of the message handlers available in an array in the interface that are to be included in a message handling pipeline of a service used to communicate with one or more other services, each of the plurality of message handlers being designed to operate on a message passed into the message handling pipeline; the identified plurality of message handlers including one or more extension handlers and one or more default message handlers, the one or more extension handlers having been designed separate from the design of the service that includes the one or more default message handlers build a stage to describe the ordering of the message handlers; reference at least two arrays encoding the relationship between the message handler and the stage and build a pipeline from the stage of identified and ordered message handler modules; and request that the pipeline be made available for use by applications run by the one or more processors, with messages passed into the pipeline being operated on based on the identified plurality of ordered message handlers. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
receiving a message; identifying a single-threaded message handler in a pipeline of a service to operate on the message, the pipeline including one or more default message handlers and one or more extension message handlers and wherein the message handlers in the pipeline are less than all of the message handlers available for inclusion in the pipeline; each of the message handlers being implemented as a message handler object to; operate on the message in response to a process method exposed by the message handler object being invoked by a caller, the process method receiving as a parameter an identification of the message; if the message handler object consumes the message, then return, to the caller, a value indicating that the message handler object has consumed the message; and if the message handler object does not consume the message, then return, to the caller, a value indicating that the message handler object has finished operating on the message and that a second message handler object can operate on the message; invoking the identified message handler; and repeating the identifying and invoking until either all of the message handlers in the pipeline have operated on the message or one of the message handlers has consumed the message. - View Dependent Claims (9, 10, 11)
-
-
12. A system comprising:
-
a processor and computer readable storage media; a service to allow one or more applications running on the system to communicate with one or more other systems wherein the service implements a class to; create an object exposing a first method that can be invoked by the one or more applications to allow the one or more applications to identify a first message handler to be added to a channel of a send pipeline or a receive pipeline; and add, in response to the first method being invoked, the identified first message handler to the channel; the service including a port having a send pipeline to allow the one or more applications to send messages to the one or more other systems and a receive pipeline to allow the one or more applications to receive messages from the one or more other systems wherein each of the send pipeline and the receive pipeline are implemented as a plurality of message handler objects, each message handler object to; operate on one of the messages in response to a process method exposed by the message handler object being invoked by a caller, the process method receiving as a parameter an identification of the one message; if the message handler object consumes the one message, then return, to the caller, a value indicating that the message handler object has consumed the one message; and if the message handler object does not consume the one message, then return, to the caller, a value indicating that the message handler object has finished operating on the one message and that a second message handler object can operate on the one message; and each of the send pipeline and the receive pipeline being configurable by the one or more applications to include functionality desired by the one or more applications and wherein the send pipeline and receive pipelines are configurable by allowing the one or more applications to identify particular single-threaded message handlers from a plurality of different single-threaded message handlers to be included in the pipeline, the different message handlers offering different functionality by operating on messages in the pipeline differently. - View Dependent Claims (13, 14)
-
Specification