Hi Paul;
 
Its a nice picture and well understandable !!
 
And this is moreless (almost ) the same as my second suggestion , but I have some problems that I need to clarify too
  1. In this approach how can we deploy mediators (since mediators are not Axis@ service)
  2. We need a way to deploy them , in this approach you assumed that Synapse is going to be an Axis2 module
 
In my view is there should be a component that will provide a way to deploy mediators say (SyanpseDeployer) , I mean we have to think about the extensibility too.
 
As far as rule engine is concern the one you have in mind is perfect , and that should be the right way axis2 is concern
  1. Axis2 gets a request
  2. call its engine.receive(MC)
  3. At the end of the chain , Syanpase MR will be invoked
  4. After that its upto SyanpseMR to continue his job , as ur picture describe the looping can be done there
 
I am +1 on ur approach , its better if we can see full architectural picture of Synapse
 

Thanks,
 Deepal
................................................................
~Future is Open~
----- Original Message -----
Sent: Wednesday, October 19, 2005 2:24 PM
Subject: Re: Rule Engine / Dispatcher

Deepal

The picture I have in mind is this.

In this scenario, a message comes in via HTTP, matches two rules, and then is sent on via HTTP.

In each case the rule mediators do not "consume" the message but simply act on it and return true.

There is the overall AxisEngine in which the message is first received. The SynapseRuleEngine is actually a MessageReceiver in that engine. Then Synapse news up AxisEngines in which to handle the QoS specified by each rule. The mediators are called by a MessageReceiver running in the second AxisEngine. The Java return of those returns control to the SynapseRuleEngine which continues matching rules. Then, since no more rules match and the return value is true, the default behaviour of the SynapseRuleEngine is to forward the message to the <wsa:To> address in the MessageContext.

I hope the picture explains this!

Paul




On 10/18/05, Deepal Jayasinghe <[EMAIL PROTECTED]> wrote:
Hi Paul and all;
 
I am sorry I was out from the list for a while , any way this is what I have in my mind regarding Synapse + Axis2
 
 
As shown in the Figure the driver is SynapseEngine , which will call AxisEngine.receive(new MC) , the looping will taken place depending on the rule status. As far as Java is concern you will some have get the java return and at that point you can decide to continue or not depending on the status properties. In this picture Synapse is not just a axis2 module.
 
In the following picture MessageReceiver will do the looping , at the MR it can decide depending on the status whether to continue or not , and the second approach Synapse can be deployed as an Axis2 extension module.
 
 
All the decision making logic has burn into MR in this case ,
 
you guys have implemented that in this way some other way I just need to clarify

Thanks,
 Deepal
................................................................
~Future is Open~
----- Original Message -----
Sent: Tuesday, October 18, 2005 7:20 PM
Subject: Rule Engine / Dispatcher

Saminda / folks

I've been looking at the code you've posted. I also talked it over with Ant Elder. It seems one difference between my prototype code and yrs is that in mine the rule engine retains control.
I think that it is possibly a more robust model. For example, if each rule requires a new inflow then there has to be a way for the dispatcher to maintain state.

One option that occurred to us was for Synapse to launch a new AxisEngine and then retain control.

Paul


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to