Thanks James,

The positioning is the most important thing... I completely agree with you.
And specially when some of the utility pieces are already there in SM and the concept of BAM in my opinion fits well in the ESB Space.

Let's hope users will find it worth while...

Best regards
Soumadeep

----- Original Message ----- From: "James Strachan" <[EMAIL PROTECTED]>
To: <servicemix-dev@geronimo.apache.org>
Sent: Monday, July 31, 2006 3:35 PM
Subject: Re: BAM Component


Interesting stuff. I've pondered before on whether we should create a
kind of 'Event-Condition-Action' (ECA) type component where we can
register conditions (typically XPath predicates) on 'events' (or maybe
endpoints is a more JBI term to use) and fire arbitrary actions when
they are matched.

In terms of low level implementation we can kinda do similar things
today such as via the xpath router or drools component - but I'm
thinking it would make lots of sense to provide this 'high level
concept' to an end user - such as the XML example given below.

I think the ECA approach can make things simpler for users to understand.

Under the ECA approach I'm sure we could plugin the various
capabilities we already have in ServiceMix such as the pluggable
Expressions (XPath, Groovy etc).

http://incubator.apache.org/servicemix/maven/servicemix-core/apidocs/org/apache/servicemix/expression/package-summary.html

along with reusing many of the existing components as the actions etc.

Incidentally the ECA approach lends itself nicely to great IDE tooling :)

On 7/31/06, Guillaume Nodet <[EMAIL PROTECTED]> wrote:
Great, thx a lot !
CCing servicemix-dev, as I think this is the place where this discussion
should take place.

Do you have any plan / ideas of future features for this component ?
Currently, it seems this that the component is a router with actions.
How will it differ from existing content based routers (xpath router, drools
component) ?
Another point I am wondering about, is the fact that the component embeds
the
email code inside an action: i think it would be better to reuse the
existing components
for that, else the BAM component would end up lots of BCs code internally
(what about
jms, jabber, etc...).

On 7/31/06, Soumadeep-Infravio <[EMAIL PROTECTED]> wrote:
>
> Hi Guillaume/All,
>
> We feel that a Business Activity Monitoring Component would be a good
> addition to ServiceMix's existing samples. We have worked on a > prototype for
> such a component and would like to contribute it.
>
> We have phased it out and depending on the feedback we will add other
> features as required.
>
> Please send us your feedback...
>
> Best regards
> Soumadeep
>
> Details of the component
> ==================
>
> Phase 1
> This is a Business Activity Monitoring Component which would work only > for
> Web services message payload in phase 1. An XPath expression could be
> provided in a config file which will be used to evaluate the incoming
> message. Depending on the evaluation result it will allow one or more
> actions to be taken. These actions again could be made available in a > config
> files as below.
>
> Config file:
> =======
>
> <SM-WS-BAM>
>     <Service url=http://www.xmethod.com/getVersion>
>         <Rule name="sendEmailWhenGetQuoteInvoked">
>             <expression value/Envelope/Body/GetQuote">
>             <Action name="emailer"/>
>             <Action name="..."/>
>         </Rule>
>         <Rule name=.../>
>     </Service>
> </SM-WS-BAM>
>
> <Actions>
>             <Action name="emailer">
>                 <Description/>
>                 <Adaptor name="org.apache.sm.Emailer">
>                     <smtp-host name="mail.webmail.org">
>                     <from address="[EMAIL PROTECTED]">
>                     <to [EMAIL PROTECTED];[EMAIL PROTECTED]>
> <message value="There is a new quotation coming > your
> way!!">
>                 </Adaptor>
>             </Action>
> </Actions>
>
> Flow (inside the BAM component)
> ===
> note: The usual MEP will be followed to pass the payload to the next
> component in line.
>
> 1) Fetch the Source from the Normalized Message
> 2) Fetch the rule to evaluate depending on the endpoint-request URL
> 3) Check for condition and get the evaluation result (using > java1.5xpath's evaluate method)
> 4) Get the adaptor to invoke and invoke it. (Adaptor instances will be
> cached ) - from the action definition.
>
>
> Phase 2
> The component would be extended to monitor any payload. This will be
> achieved using appropriate marshalers, which will convert the payload > to
> xml. The marshaler to use could be indicated as a property value in the
> MessageExchange. The rest will be per phase 1.
>
> Possible use:
> ==========
>
> Servicemix 3.0 currently is distributed with several samples, one of > them > being the http-binding, which internally uses a saaj binding to > redirect the > message to a soap endpoint. The BAM component could be used in-between > which
> would enable the user to monitor the payload and take action.
>
>


--
Cheers,
Guillaume Nodet




--

James
-------
http://radio.weblogs.com/0112098/



Reply via email to