An application has a service that it would like to make available to other applications.
How can an application design a service to be invoked both via various messaging technologies and via non-messaging techniques?
Design a Service Activator that connects the messages on the channel to the service being accessed.
A Service Activator can be one-way (request only) or two-way (Request-Reply). The service can be as simple as a method call—synchronous and non-remote—perhaps part of a Service Layer [EAA]. The activator can be hard-coded to always invoke the same service, or can use reflection to invoke the service indicated by the message. The activator handles all of the messaging details and invokes the service like any other client, such that the service doesn’t even know it’s being invoked through messaging.
... Read the entire pattern in the book Enterprise Integration Patterns
Related patterns:
Command Message, Competing Consumers, Event-Driven Consumer, Invalid Message Channel, Message Dispatcher, Message Endpoint, Messaging Gateway, Polling Consumer, Request-Reply, Transactional Client