On 10/24/05, Vikas <[EMAIL PROTECTED]> wrote:
Hi Deepal/all
 
Are you thinking of something like the stuff in this picture?

Cool picture, btw, Vikas :)

If i understand this correctly, your picture resembles the code in https://svn.apache.org/repos/asf/incubator/synapse/trunk/scratch/saminda/synapse1

Let me go through with it,

1) The client sends a request to Synapse.

in src/org/apache/client/ SampleClient  represtent  a  generic client that sends a message to Synpse.

2) The relevant transport listener picks it up and passes it to the Synapse engine.

Transport Listener  can be a Servlet. Thus, class  src/org/apache/synapse/server/SimpleSynapseServer represent the Listener and it calls  src/org/apache/synapse/engine/SynapseEngine. 

3) The engine calls the rule-processor which sends out a list of matching rules or none.
src/org/apache/synapse/engine/SynapseEngine does exactly as stated.
 

4) The 'Call mediation' part calls the relevant mediations in an orchestrated manner.

src/org/apache/synapse/engine/SynapseEngine exaclty as stated.  

5) The control then gets back to the engine.
[Steps 4 and 5 can happen more than once]

SynapseEngine will receive the control back as stated and do looping if more rules are present to that message.

6) The engine then calls the actual service.

SynpaseEngine uses  Axis2's  MessageSender  to  do this.

7) The engine can discard the message at any point due to varied reasons.

We can come up with such policy at any time , can be implemented  :)

Let me add a few more points..
* Calling mediations on axis2(and its revisions) would only need changing the part that calls the mediation(these would be similar to client codes calling a service)
* Synapse would be a step above axis2 and might as well go on and support its later versions.
* An externalized rule-processing part.. would allow core synapse-engine to just call it like any other service/mediation.

I agree.

So, my guess is, synapse1 has already doing what you being saying. It needs a hell of  modifications and refactorying. As i have concentrated more on synapse2, i havn't done much work on it since then.

Deepals picture resembles the above, that can be implemented in different way, as in https://svn.apache.org/repos/asf/incubator/synapse/trunk/scratch/SynapseToy , which is version that Deepal has implemented, my guess is, it's pretty cool.

We all patiently waiting for a good architecuture to be finalize. So the next step is,  as i guess,  is to come up with a solid architecture to develope more robust code, knowing it will be usefull in future :)

Saminda

Comments??
 
Thanks!
Vikas.
----- Original Message -----
Sent: Saturday, October 22, 2005 1:22 PM
Subject: Axis2 and Synapse

Hi all;
 

I am bit confusing about current synapse architecture, I want to clarify following some problems

§         If you deploy Axis2 in an application server and if you type localhot:8080/axis2 , you will see axis2 admin  page ,

§         But when it comes to synapse , if some body deploy synapse he should be able to see Synapse admin page NOT axis2 page , to out side word axis2 should not be visible

§         If you deploy axis2.war  in an application server and if you drop synapse.mar (assuming synapse is axis2 module) , then you can not achieve above functionally because , module can not go and change the transport . meaning AxisServlet is the one who handle axis2 web interface , so some one has to change the servlet mapping ,

§         That leads to create a new servlet for synapse (say SynapseServlet) , without doing that you can not achieve those goal.

 

That is mean we need to have separate servlet for Synapse (there can be options) , so if we do that synapse no longer be a just an axis2 module.

 

So my suggestion is to have two main components for synapse,

1.      First part will be the synapse transport , which will hands over messages to AxisEngine when it gets message

2.      Second there should be a separate Synapse module which we do the rule processing and all   

 

This leads to a nice architecture f someone want synapse we will give him a Synapse.war , he can deploy that in an application server. In side that it uses Axis2 functionality, meaning inside Axis2repo/module directory will contain a module called synapse.mar too.  

 

According to this synapse will drive axis2 and synapse.mar will give required configuration to axis2

 

Synapse war file look like below

 

 

here web.xml is synapse web.xml not axis2 one , class folder may contain synapse class

 

 

 


Thanks,
 Deepal
................................................................
~Future is Open~

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



Reply via email to