On Tue, Mar 25, 2008 at 5:46 PM, raulvk <[EMAIL PROTECTED]> wrote:
>
>  Hi everyone,
>
>  I have a question related to the implementation of EDA messaging strategies
>  in ServiceMix. How would you implement the following pattern in ServiceMix?
>
>  1) Some action happens within an application such that it needs to notify
>  the ESB so that other systems are updated accordingly, so it casts an event
>  onto the ESB.
>  2) The ESB transforms the data from the applications particular data model
>  into a canonical data model and publishes the message in this common data
>  format to a certain "topic" (I come from a TIBCO background, so we call this
>  a "subject" in Rendezvous terms).
>  3) All applications interested in snatching this event subscribe to the
>  topic they know beforehand.
>  4) The ESB transforms the message from the canonical data model to the
>  destination's particular model and invokes the appropriate endpoint on the
>  target application.
>
>  This means that there is no service choreography (one service doesn't invoke
>  another one), nor there is service orchestration (as we do not know
>  beforehand what services should be invoked).
>
>  How would you best implement this EDA behaviour in ServiceMix? What
>  components would you use to: 1) do the transformation (servicemix-saxon?),
>  2) publish the message to the ESB on an agreed topic, 3) subscribe to the
>  agreed topic, 4) do the reverse transformation?

1) Yes, I'd suggest using the servicemix-saxon component for the
transformation if the data is already XML

2) If the message needs to be published to a JMS destination, then I'd
just publish it using a JMS client. If the use of JMS is not possible,
you can use one of the other binding components to accept the message
using a supported protocol and pushing to a JMS destination.

3) The servicemix-jms component can subscribe to a queue or topic to
consume messages and those can be delivered using any of the supported
binding components.

4) Same as #1 above

Based on what you described above, it sounds like there are two
component flows here. The first flow will just push the messages to a
JMS destination to pile up until there's a request for them. The
second flow will accept a request for a message, consume a message
from the JMS destination and transform it appropriately for the
requestor. Does this make sense?

Bruce
-- 
perl -e 'print unpack("u30","D0G)[EMAIL 
PROTECTED]&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

Apache ActiveMQ - http://activemq.org/
Apache Camel - http://activemq.org/camel/
Apache ServiceMix - http://servicemix.org/
Apache Geronimo - http://geronimo.apache.org/

Blog: http://bruceblog.org/

Reply via email to