axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sanjiva Weerawarana <sanj...@opensource.lk>
Subject Re: [AXIS2] WSDL 2 integration and Proposal for supporting multiple endpoints
Date Mon, 22 Jan 2007 04:34:49 GMT
+1 from me for merging. 

Sanjiva.

On Sat, 2007-01-20 at 07:47 +0530, keith chapman wrote:
> Hi devs, 
> 
> As most of you might know we (Chinthaka and myself) created a branch
> [1] to work on Axis2 to improve it for WSDL 2.0 support. We have
> successfully completed most of the work now. The rest can be completed
> within a week or so.  So we thought we better discuss  the  changes we
> had to do before merging the branch to the trunk. We had to do a
> couple of notable changes to Axis2 in order to  do the improvements in
> a cleaner way. We did not want to hack axis2 to provide WSDL 2
> support. 
> 
> The following briefing might help those who are not very familiar with
> WSDL 2.0. 
> 
> Approximate mapping of WSDL 2.0 components to WSDL 1.1 
> Note : This mapping is just for explanatory purposes. 
> 
> WSDL 2.0                     WSDL 1.1 
> 
> endpoint                     port 
> binding                       binding 
> interface                     portType 
> 
> 
> WSDL 2.0 uses lots of defaulting rules and thrives on the principle of
> reuse (Which enables the user to write a WSDL 2.0 document without
> specifying too many things). A service can have multiple endpoints, an
> endpoint has a single binding (a binding may be used by several
> endpoints). A binding may be bound to an interface (Generic Bindings
> can also exist where the binding is not bound to an interface). 
> 
> In order to maximize the benefits of WSDL is it clear that axis2 needs
> to support multiple endpoints. Currently axis2 does not support
> multiple services or multiple endpoints. Axis2 just processors the
> first endpoint and deploys the service. While integrating WSDL 2.0
> support to axis2 it was clear that we needed to support multiple
> endpoints. 
> 
> *Proposal for supporting multiple endpoints.* 
> 
> Introduce the following classes (class diagram attached)
> 
> AxisEndpoint - Hold information about an endpoint 
> 
> AxisBinding - Hold information about a Binding 
> 
> AxisBindingOperation - Hold information about a binding operation.
> AxisOperation will hold general information  pertaining to an
> operation . All additional information (Binding specific information)
> will be captured by this class. It will also have a link to its
> corresponding AxisOperation. 
> 
> AxisBindingMessage - Hold information about a binding Message.
> AxisMessage will hold general information  pertaining to 
> a message . All additional information (Binding specific message
> information) will be captured by this class. It will also have a 
> link to its corresponding AxisMessage 
> 
> In correspondence to the inclusion of the new binding hierarchy,
> WSDL20ToAxisServiceBuilder and WSDL11ToAxisServiceBuilder will have to
> be updated to pump the new classes. (We have already updated
> WSDL20ToAxisServiceBuilder.  WSDL11ToAxisServiceBuilder is in the
> process of been updated). Also AxisServiceBasedMultiLanguageEmitter
> will have to be updated to draw information from the new binding
> hierarchy (This has also been completed). 
> 
> *Effects on Dispatching* 
> 
> With the introduction of multiple endpoints we should have a way of
> dispatching messages to the correct endpoints now. The mechanism we
> used was to have the default URIs as
> $Prefix/ServiceName.EndpointName[/OperationName][/Other Stuff]. It
> will be nice if we can include something like 
> 
> <endpoints> 
>     <endpoint alias="NSPath" name="" />* 
> </endpoints>? 
> 
> in the services.xml. which will make the request url look like
> $Prefix/alias[/OperationName][/Other Stuff] 
> 
> We have updated RequestURIBasedDispatcher to dispatch messages to the
> correct endpoint based on the above. The allServices map in
> AxisConfiguration has been updated to map ServiceName.EndpointName to
> the corresponding  AxisService. Once we find the correct AxisService
> we add the name of the endpoint (the endpoint that the message came
> to) as a property to the message context. 
> 
> We would like to know your comments on this before going ahead and
> merging the WSDL 2.0 branch to the trunk. 
> 
> [1] : 
> https://svn.apache.org/repos/asf/webservices/axis2/branches/java/WSDL_2_0 <https://svn.apache.org/repos/asf/webservices/axis2/branches/java/WSDL_2_0>

> 
> Thanks, 
> Keith 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
-- 
Sanjiva Weerawarana, Ph.D.
Founder & Director; Lanka Software Foundation; http://www.opensource.lk/
Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
Director; Open Source Initiative; http://www.opensource.org/
Member; Apache Software Foundation; http://www.apache.org/
Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message