OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

uddi-spec message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [uddi-spec] Changes to UDDI Schemas and WSDL to support code generation


If we're going to talk about standard Java interfaces to UDDI, then we 
should be talking about JAXR, not JAX-RPC. According to the JCP, JAXR is 
the single standard Java API for UDDI. I believe that JAXR is based on JAXM 
rather than JAX-RPC.

Bear in mind that JAX-RPC was initially designed to support RPC/encoded and 
not Document/Literal. The sample serialization framework defined in the 
current version of JAX-RPC (the first Appendix -- describing the JAX-RPC RI 
serialization framework) is based on SOAP Encoding -- not full XML Schema.

I don't think we should constrain our schemas due to shortcomings in the 
design of JAX-RPC.

Anne

At 11:14 AM 10/3/2003 +0100, John Colgrave wrote:
>This is a response to both Matthew and Daniel.
>
>I deliberately avoided mention of any particular product or tool and focused
>on standards.  In the case of Java that means JAX-RPC.  It is only when
>JAX-RPC mandates the mapping to Java for all of XML Schema, or at least the
>subset of XML Schema that we use in the description of UDDI, that we can
>reasonably expect to have a single standard Java programming model for UDDI.
>
>If similar standards exist for other languages then the same will hold for
>those languages. I know there are multiple tools that can generate code in
>languages other than Java but I don't know if there are standards similar to
>JAX-RPC for other languages.
>
>It is highly unlikely that all tools will support exactly the same set of
>extensions to the standard, and even less likely that they will all do so in
>a compatible way.  It is also unlikely that all tools will support the same
>set of optional features of the standard.
>
>I don't think WS-I is particularly relevant to this discussion as WS-I does
>not address programming interfaces.  There are some tools available, I have
>used the Analyzer tool to check the UDDI 3.0.1 WSDL and Schema descriptions.
>
>John Colgrave
>IBM
>
>
> > -----Original Message-----
> > From: Matthew J. Dovey [mailto:matthew.dovey@oucs.ox.ac.uk]
> > Sent: 02 October 2003 18:33
> > To: John Colgrave; UDDI Spec TC
> > Subject: RE: [uddi-spec] Changes to UDDI Schemas and WSDL to support code
> > generation
> >
> > John,
> >
> > This is an issue I've also raised in the past (being surprised when I
> > first encoutered UDDI that the authors of the v1 and v2 WSDL hadn't
> > tested with code generation tools already!), and I did do some quick
> > testing of the 3.0.1 WSDL through the .Net and Apache Axis WSDL2Java
> > compilers at the Moscow FTF. At present, the only issue which came
> > immediately to light (without a close inspection of the generated code,
> > and of course at the time I didn't have a UDDI v3 registry to test
> > against) was that Axis (which I suspect is as well used in Java circles
> > as JAX-RPC) couldn't handle constructs of the form
> >
> > <choice>
> >   <element name="something" />
> >   <sequence>
> >         <element name="something" />
> >         <element name="somethingelse" />
> >   </sequence>
> > </choice>
> >
> > I have this open as a bug against the Apache bugtraq system.
> >
> > Part of the problem, is that these tools are developing too (I've had
> > similar tool support trouble in another web service standard, where it
> > was tricky to balance modifying the standard against waiting for the
> > tools to develop). For example, when I tried the UDDI v3 WSDL last year
> > in Axis, little of it compiled due to lack of support for any but core
> > types, in Jan most went through apart from the above construct and about
> > 1 or 2 types. At the last check in July, only the above construct seemed
> > problematic.
> >
> > Matthew
> >
> > > -----Original Message-----
> > > From: John Colgrave [mailto:colgrave@hursley.ibm.com]
> > > Sent: Thursday, October 02, 2003 5:16 PM
> > > To: 'UDDI Spec TC'
> > > Subject: [uddi-spec] Changes to UDDI Schemas and WSDL to
> > > support code generation
> > >
> > > This note is related to a discussion I initiated in the
> > > context of UDDI V4
> > > back in March and which I let fizzle out.  I did not lose
> > > interest however,
> > > indeed I have since been thinking about the issue in the
> > > context of UDDI V3.
> > >
> > > I must apologize for the fact that the remainder of this note
> > > is going to
> > > talk about one programming language/platform only.  This is a
> > > reflection of
> > > my limited experience/knowledge.  I don't know if there are
> > > similar problems
> > > with other languages/platforms, but I think the proposed
> > > solution/approach
> > > will apply equally well to them, and we should take into account any
> > > requirements of any other languages/platforms.
> > >
> > > I must also apologize for the length of the note, but it
> > > could have been
> > > worse: I could have included the gory details of all the changes.
> > >
> > > I will write up the detailed changes as a Change Request
> > > if/when there is
> > > agreement that what I am about to describe is worth doing.
> > >
> > > I was surprised at how many different Java clients for UDDI
> > > V2 there were
> > > when I did a simple search on the Web, and I think that it
> > > cannot help the
> > > adoption of UDDI in general to have so many different client
> > > interfaces to
> > > UDDI.  I would like to avoid this problem for UDDI V3.
> > >
> > > Given that we have a description of the UDDI data structures
> > > and APIs in XML
> > > Schema and WSDL, the obvious approach to providing a Java API
> > > for UDDI is to
> > > use JAX-RPC and the mapping it defines from WSDL/Schema to
> > > Java.  There are
> > > various tools available that can take a WSDL/Schema
> > > description and generate
> > > Java code from it.
> > >
> > > The problem for UDDI is that the current JAX-RPC
> > > specification does not
> > > require support for all of the schema constructs that are used in the
> > > description of UDDI, and therefore the various tools either
> > > do not implement
> > > support for these constructs at all, or do not implement them
> > > in the same
> > > way.  I would hope that the JAX-RPC and associated
> > > specifications evolve to
> > > support XML Schema fully, but in the meantime I suggest
> > > changing the UDDI
> > > schemas to use only those schema constructs that are required
> > > by JAX-RPC, as
> > > that gives the best chance for all tools to support them the
> > > same way and
> > > therefore allow for UDDI applications that are portable
> > > between JAX-RPC
> > > implementations.
> > >
> > > We could choose either to have one copy of the schemas or two
> > > until such
> > > time as the specifications require support for enough of XML
> > > Schema, and
> > > there are implementations of those future specifications
> > > available.  If we
> > > choose to have one published version of the schemas then UDDI
> > > implementers
> > > that use schema validation will have to maintain a separate
> > > version.  If we
> > > choose to have two then we would have to keep the
> > > client/programming version
> > > synchronized with the server version.  My current inclination
> > > is towards
> > > having two versions so that we do not lose/forget what the original
> > > intention was.
> > >
> > > From my experiments to date, these schema changes can be made without
> > > requiring UDDI implementations to change, which is good, but
> > > my experiments
> > > also indicate that even with these changes some implementations do not
> > > generate correct Java code for the entire UDDI API, so some
> > > tweaking of the
> > > generated code is necessary in those cases.
> > >
> > > The schema changes fall into several different categories.
> > >
> > > The first category is related to the use of constructs such
> > > as xsd:choice
> > > that are nor mandatory in JAX-RPC 1.0.  It is possible to
> > > replace the use of
> > > such constructs with a more lax approach using sequences of
> > > elements, each
> > > of which is optional.  This allows applications to be
> > > developed which can
> > > generate invalid messages of course, but I am not aware of
> > > any environment
> > > that applies schema validation to a message being sent by a
> > > client, so even
> > > with the current schemas you cannot guarantee that a client
> > > will never send
> > > an invalid message so this is not introducing any new problem.
> > >
> > > The second category is related to elements/types that have
> > > been introduced
> > > only to limit string lengths etc. such as
> > > validationTypeString255.  These
> > > currently show up in the generated programming model, which
> > > is ugly.  In
> > > this case also, I am not aware of this checking being applied
> > > to outbound
> > > messages from a client, so nothing is lost by removing these
> > > and just using
> > > the base types such as string.
> > >
> > > The third category is related to things that are supported in
> > > a proprietary
> > > way, which obviously limits application portability.  If my
> > > memory serves,
> > > these can be avoided by an approach similar to that for the
> > > second category,
> > > and replacing something like NMTOKEN with string.
> > >
> > > The fourth category is for things such as extensions of
> > > xsd:boolean that I
> > > do not think add any value and again show up as unnecessary
> > > complications in
> > > the generated code.  An example of this is truncated.  I
> > > think that it is
> > > highly unlikely that anyone will want to extend truncated
> > > beyond simply true
> > > and false.
> > >
> > > There are also a couple of things that need to be
> > > added/changed to the UDDI
> > > WSDL.  These changes to the WSDL are "strategic", by which I
> > > mean that I see
> > > no sign of them ever not being required.
> > >
> > > The first of these is that WSDL service and port definitions
> > > need to be
> > > created, as these affect the Java programming model.
> > > Unfortunately this
> > > means that a default/dummy endpoint has to be supplied for
> > > each port but the
> > > user can supply the correct one at runtime.
> > >
> > > The second is that we need to change the element used to
> > > indicate success on
> > > calls such as delete_tModel that currently use
> > > dispositionReport, as Java
> > > does not like the same element being used as both a normal
> > > output and a
> > > fault.  I have created an empty success element for this
> > > case, as mentioned
> > > in the WS-I Basic Profile.  This will require a change to the UDDI
> > > specification and possibly a change in implementations.  My
> > > experiments
> > > indicate that the implementations do not have to change, and if a
> > > dispositionReport is returned when the Java is not expecting
> > > one, it is
> > > simply ignored, but we may not be able to rely on this.  This
> > > change is the
> > > most significant one and may require a publication of a 3.1.1 spec. or
> > > something.
> > >
> > > John Colgrave
> > > IBM
> > >
> > >
> > >
> > >
> > > To unsubscribe from this mailing list (and be removed from
> > > the roster of the OASIS TC), go to
> > > http://www.oasis-open.org/apps/org/workgroup/uddi-spec/members
> > > /leave_workgroup.php.
> > >
> > >
> > >
> >
> > To unsubscribe from this mailing list (and be removed from the roster of
> > the OASIS TC), go to http://www.oasis-open.org/apps/org/workgroup/uddi-
> > spec/members/leave_workgroup.php.
>
>
>To unsubscribe from this mailing list (and be removed from the roster of 
>the OASIS TC), go to 
>http://www.oasis-open.org/apps/org/workgroup/uddi-spec/members/leave_workgroup.php.




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]