Hello,

I'm a Tuscany SCA newbie and am looking to solve an integration problem
using SCA. I have a Java SCA component that needs to route a message to one
of many external (non-SCA) web service end points. Each web service end
point exposes an identical interface, only the URL to which it is deployed
is different. As an example consider a CMS system that has multiple
'instances' one each for Authoring, Publishing, Staging, Production etc.

The number of these external end points needs to be configurable and
decoupled from the message router, so the message router can not simply have
a fixed number of SCA references with each pointing to one of the end
points. I'm not sure what's the best way to wire up the application using
SCA, some options could be:

1. Define a separate SCA component for each of the services. Each of these
SCA components provides a service with the same interface as the external
web service and has a reference to the external URL. These components will
just delegate all requests to the external web service. The message routing
SCA component can dynamically look up the component that corresponds to the
target end point from the injected ComponentContext.

2. Define a single reference on the message routing component and wire it up
using a special custom binding. Here the custom binding can be designed to
wrap a number of different end points with the actual target for a message
selected at run time somehow.

3.  Define a single reference on the message routing component and add a
reference policy interceptor. The interceptor can be designed to somehow
look at the message and override the target end point at run time.

I'm not sure whether 2 and 3 are even feasible. Any thoughts on the proposed
solutions?

Thanks
Anuj

Reply via email to