beehive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eddie O'Neil <ekon...@gmail.com>
Subject [wsm] a plan
Date Tue, 03 Jan 2006 17:11:59 GMT
All--

  Happy New Year!  And, as a way to start the year off on a good foot,
let's get WSM to 1.0.  Below is a proposal for how we get from here to
there with some details about where we are and what needs to happen.

  Today, there are two core WSM parts, both of which are tailored to
the Axis web service stack:

  build-time: This is a generic annotation processing layer that has
the ability to work against Mirror, reflection, and WSDL to produce a
WSM JavaBean model that represents a web service.  The build-time
layer has a plug-point for generating source artifacts to support
various web service runtimes.  For example, the Axis implementation
produces a serialized version of the WSM JavaBean model.  This could
also produce JAX-RPC source / deployment descriptor artifacts, etc.

  runtime: The runtime side of WSM is specifically built to support
the Axis 1.x runtime.  It loads the serialized JavaBean model
generated at build time and uses an Axis Handler to configure a
SOAPService given this information.

  There is another large bunch of code in WSM related to tools:

wsdl2ajava -- this tool supports the top-down web service development
model and starts with a WSDL to produce an annotated Java source file.
 This tool requires significant knowledge of WSDL and type mapping for
a specific web service stack.  For example, the mapping for an XSD
year is mapped to org.apache.axis.types.Year and something different
on other web service stacks.  wsdl2java is a non-trivial bunch of code
to write, but is also a very useful tool.

  In order to finish WSM, one more re-architecting step needs to be
completed; I'd like to remove the use of a serialized Java object as
the way to communicate from the build-time to runtime parts of the
implementation.  This would be replaced with a WSDD like, but WSM
specific, XML descriptor of the service.  AFAICT, WSDD can't be used
for this because too closely matches the shape of a Java class (Dims
and others, feel free to correct me if I'm wrong).  So, we need a
simple XML file that describes the information captured in a
WsmService.

  Once this is done, we can start work on passing the JSR-181 TCK. 
This will be done atop Apache Axis 1.x.

  In order to expedite the process of getting from here to TCK
compliance, I'd like to suggest that we stop stop work on the
wsdl2ajava tool in order to focus on finishing 1.0 and restart this
tool immediately post-1.0.

  Post 1.0, there are lots of other things that we could do including:

- JDK 1.4 support
- drop-in support for WSM in Axis to support iteratively developing an
annotated web service
- JAX-RPC support (Ias, still have any interest in working on this?)
- custom annotations to support container-specific features like type mapping
- and so on...

  Personally, I'm chomping at the bit to get WSM's 1.0 done and would
like to narrow scope in order to do that.  I think we're almost ready
for the TCK; I'll start on the XML file to describe an annotated Axis
web service shortly.

  Thoughts, comments, and flames welcome.

Eddie

Mime
View raw message