Matthew,
This sounds like a great first step towards unifying WSDL 1.1 and WSDL 2.0.
We need to decide on the internal model that Axis2 will use. We could either enhance WOM to support WSDL 2.0, or enhance Woden to support WSDL 1.1.
The way to enhance WSDL 2.0 to support WSDL 1.1 is via extensions. Would you be able to define a WSDL 2.0 extension to support rpc/enc? I see that as the major obstacle to adopting the Woden component model for Axis2 since there are so many legacy rpc/enc services. WSDL 2.0 is highly extensible so this should be feasible. This is essentially a new binding. For completeness, we need to support all combos of rpc and doc with encoding and literal.
The other main mismatch is that a WSDL 2.0 <service> implements a single <interface>. In WSDL 1.1, a service can contain endpoints ( <port>'s) that implement arbitrary interfaces (<portType>'s). To map WSDL 1.1 to WSDL 2.0, you'd have to split up a <wsdl11:service> into several <wsdl20:service> elements. However, we should preserve the relation between these split up services so we can generate the same WSDL 1.1 again. This could also be handled with an extension.
By extensions I mean a new set of elements and attributes in a new namespace, placed in appropriate positions, together with a specification of their meaning and affect on the component model. See WSDL 2.0 Part 2 [1] for examples.
You would then have to morph your code so that it constructed extended WSDL 2.0 documents and we'd also need the extension handlers so they could add the extensions to the Woden component model.
Arthur Ryman,
IBM Software Group, Rational Division
blog: http://ryman.eclipsedevelopersjournal.com/
phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: [EMAIL PROTECTED]
| Matthew Duftler <[EMAIL PROTECTED]>
03/17/2006 09:25 AM
|
|
Hi Guys,
I have some code that can help with a shorter-term solution for option 1.
In the course of comparing WSDL 2.0 with WSDL 1.1, I've written some Java
code that can convert a 1.1 document into a 2.0 document.
When I started this project, quite a while ago, I had intended to use XSLT.
After working on it for a few days, I decided to abandon the XSLT effort,
and switch to a Java-based solution. The utility works by first reading the
document into a JWSDL Definition. The advantages of this method over using
XSLT are:
- The dereferencing of WSDL elements is basically done already (I say
basically, because no real validation is being done.)
- The message pattern of each WSDL 1.1 operation (one-way,
request-response, solicit-response, notification) is determined by the
WSDLReader, not the conversion utility.
- Faster development time (and easier maintenance).
- It will be easier to modify this code to directly produce the new WSDL
2.0 model, if desired.
The code consists of 2 classes, with a total of about 1500 lines of code.
It presently is used as a command-line utility, but does have entry-points
that would only require minor modification to code-gen into
client-specified streams, instead of files. The reason it presently
produces files is because it attempts to walk the entire Definition graph
to convert all imported definitions into WSDL 2.0. This obviously requires
multiple output streams.
I can provide some more details if folks are interested. In short, its only
major constraint is that it supports solely doc/lit WSDL 1.1 documents. If
it encounters a non- doc/lit 1.1 document, it throws an exception. There is
a sort-term solution (gen <xsd:any> elements), and a long-term solution
(generate whatever MEP and associated stuff is appropriate), but I don't
really have the time to add this logic anymore.
I also wrote a bit of testing code that will attempt to convert entire
trees of WSDL 1.1 documents into WSDL 2.0, and then validate them. It
presently does only schema-validation. This could be easily changed to use
Woden to do the validation. I was using this code to ensure proper coverage
of the 1.1 specification.
I would probably need a couple of days time to properly integrate it into
the codebase, and to add some comments.
At present, I am in limbo with regards to committing anyway. If I read the
link that was posted yesterday properly, my Apache id falls into both of
the following categories:
- I am a committer who has not signed a CLA.
- I have a signed CLA, but I am not a committer.
I'm not quite sure how both of these things can be true at the same time,
but I have signed a new ICLA and I faxed it to Apache yesterday.
Thanks,
-Matt Duftler
John Kaputin
<[EMAIL PROTECTED] To: [email protected]
om> cc:
Subject: Re: Woden & WSDL 1.1
03/16/2006 11:01
AM
Please respond to
woden-dev
Jim,
as Arthur mentions, WSDL 1.1 support in Woden is an ultimate objective of
the project.
There are actually two objectives:
1) converting a wsdl 1.1 document into the WSDL 2.0 component model.
2) converting a wsdl 1.1 document into a WSDL 1.1 object model (e.g. the
Definition object implemented in wsdl4j)
Option 1) will support applications that need a common wsdl model
regardless of the source document (1.1 or 2.0).
Option 2) will provide 'native' wsdl 1.1 support for applications that
currently require it, with a migration path to move to wsdl 2.0.
The current focus on WSDL 2.0 compliance and the longer term plan for wsdl
1.1 support in Woden is based on current priorities and available resource.
Our developer resource to date (2 developers) have only been able to focus
on the highest priority item, WSDL 2.0 functionality and for the time being
will continue to do so until the reference implementation is complete. If
Woden can attract more developers we may be able to expand our scope
sooner. Contributors can volunteer to work on particular items such as
WSDL 1.1 support if that is of interest to them.
regards,
John Kaputin
Arthur Ryman
<[EMAIL PROTECTED]
> To
[email protected]
16/03/2006 14:25 cc
[email protected]
Subject
Please respond to Re: Woden & WSDL 1.1
[EMAIL PROTECTED]
he.org
Jim,
The initial goal of Woden 1.0 is to help get the WSDL 2.0 specification out
of the CR stage and become a W3C Recommendation. We are therefore focusing
on the quality of the WSDL 2.0. We want to identify problems in the spec
before they become enshrined as part of the standard. So no, both WSDL 1.1
and WS-I are out of scope for the initial release. However, it is a longer
term goal to have a single implementation that handles WSDL 1.1 too and
that is extensible so that other validation rules, like WS-I, can be
plug-in.
If you need WSDL 1.1 and WS-I support, use WSDL4J at Apache and the WS-I
Tools Tools in WTP at Eclipse.
Arthur Ryman,
IBM Software Group, Rational Division
blog: http://ryman.eclipsedevelopersjournal.com/
phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: [EMAIL PROTECTED]
"jim ma" <[EMAIL PROTECTED]>
To
03/16/2006 01:13 AM [EMAIL PROTECTED]
g
cc
Please respond to
[email protected] Subject
Woden & WSDL 1.1
Hi , all
Just tried woden and I have two qustions about it :
[1] Will Woden1.0 support parsing and validating WSDL 1.1 documents ?
[2] Does Woden intend to do the validation inculde ws-i basic profile
conformance ?
Thanks
Jim
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
