Hi Bryan,
Yes, thanks for throwing that information into the mix.
I note, from the current CD05 rev1 draft, lines 2787, 2788:
"An interface is defined in terms of a WSDL 1.1 portType with the
arguments and return of the service operations described using XML
schema." (Hmmm, that "s" in "schema" should be capitalized - editorial
nit.)
While this statement does not appear to influence any normative
constraints, it certainly aligns with the expectations that everyone
brings to bear on WSDL 1.1.
If you allow for the notion that WSDL 1.1 with alternate type systems
aligns with SCA Assembly's remotable concept, then we *definitely* need
more text around how type systems should be determined to be
compatible. In a sense, you're just "squeezing the balloon", in that
the problem pops up in a different place, but has exactly the same
implications.
Should we change the issue in question to be:
"Remotable interface compatibility should not be restricted to a WSDL
1.1 mapping, nor should it be restricted to WSDL 1.1 using XML Schema."
... or maybe that's two issues?
-Eric.
P.S. http://www.w3.org/TR/wsdl20-altschemalangs/
On 07/16/2010 10:57 AM, Bryan Aupperle wrote:
OF1FB3C125.FD6C460C-ON85257762.00607CD7-85257762.0062ADD4@us.ibm.com"
type="cite">I realize that we have
not opened this
issue yet. but I recognize the validity of allowing transport
representations
other than XML documents.
Having said that, there seems to be
an assumption here that WSDL 1.1 requires a XML 1.0 data format and the
use of the XSD type system. This is not correct. WSDL 1.1 explicitly
allows for other type systems and also notes that the XSD type system
can
be used even if the data format is not XML 1.0. I am not sure if
the WS-I Basic profiles require either the use of the XSD type system
or
an XML 1.0 data format, but I do not believe that the Assembly spec
currently
says anything about WSI-Basic Profile compliance.
An excellent view of how a view of
the
XSD type system can be used with other data formats is defined in the
Data
Format Description Language (DFDL) specification (being defined by an
Open
Grid Forum WG - http://forge.gridforum.org/projects/dfdl-wg/)
The public review draft is here: http://www.ogf.org/Public_Comment_Docs/Documents/2010-03/draft-gwdrp-dfdl-core-v1.0.pdf
DFDL allows data to be mapped between native formats (binary, textual)
and information sets – and thus XML. The information set is described
using XSDL types and annotated constructs. The data can contain any
character
in ISO 10646, including those not legal in XML documents. In addition
to
facet validation, assertions can be added to test data during parsing.
Allows data from native representation to be excluded from the
information
set, information set values to be calculated on parse and native
representation
data to be calculated on generation.
I am not positive that DFDL will
cover
all of the use cases Eric notes, but it would appear that:
1) A number of the are currently
possible
2) The assembly spec could be
clearer
and more robust in the treatment of this topic.
Bryan Aupperle, Ph.D.
STSM, WebSphere Enterprise Platform Software Solution Architect
WW Center of Excellence for Enterprise Systems & Banking Center of
Excellence Application Integration Architect
Research Triangle Park, NC
+1 919-254-7508 (T/L 444-7508)
Internet Address: aupperle@us.ibm.com
Logged as: http://www.osoa.org/jira/browse/ASSEMBLY-235
Yours, Mike.
Strategist - Emerging Technologies, SCA & SDO.
Co Chair OASIS SCA Assembly TC.
IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.
Phone & FAX: +44-1962-818014 Mobile: +44-7802-467431
Email: mike_edwards@uk.ibm.com
Target: sca-assembly-1.2-spec-wd01.doc
Title: Remotable interface compatibility should not be restricted to a
WSDL 1.1 mapping
Description:
The latest version of the Assembly specification
(sca-assembly-1.1-spec-cd05),
in section 6.2, defines interface compatibility in section 6.2.1, item
#6 "for checking the compatibility of 2 remotable interfaces which
are in different interface languages, both are mapped to WSDL 1.1 (if
not
already WSDL 1.1) and compatibility checking is done between the WSDL
1.1
mapped interfaces."
There are various reasons why this will fall over and not behave as
expected.
False positives:
- Some other interface kind may impose data type
semantic
restrictions which are not apparent in a WSDL 1.1 representation. WSDL
1.1 uses XML Schema 1.0 types for its representation of data.
Unfortunately,
there are limitations here, where XML Schema largely focuses on the
syntactic
representation, and not as much on the semantic values. Some random
examples:
- all odd numbers/all even numbers
- string validation via regular expressions,
where some
semantic is required on a portion of the string. Example - credit
card numbers
- string contents - XML Schema "string" type
allows
for a subset of all possible characters. This means that certain
characters cannot be represented in XML Schema representations, and
must
be somehow mapped.
- Object networks - representing a network of
objects serialized
to XML, certain objects should be serialized at most once, and then
referenced.
Creating and enforcing the linking of representations is at best
an imperfect alignment, as there are numerous ways that this can be
accomplished,
depending on the type of the object network. Unfortunately, something
conforming to the XML Schema requirements could easily not align on the
semantic requirements, either in generating a request, or receiving a
response.
False
negatives:
- Intrinsic to mapping to WSDL are choices about
how that
mapping might be done. For example, implementations might map JMX
to WSDL in myriad ways. Forcing the consumer and provider to do so
in a way that offers up a WSDL 1.1 mapping as part of the component
type
could lead to a declaration of "incompatible" even where the
JMX interfaces are, in fact compatible (albeit, at runtime, the
implementation
of the JMX conduit must be shared)
- Bad compromises - certain existing bindings
(binding.jms)
allow for possibility of sending Java Objects via JMS. To not
be able to call these bindings remotable is a mockery of the notion of
"remote", however, forcing a mapping of a generic Java Object
to some XML representation will have "binding" trade-offs.
Implementers
will then have to invest time to "maximize compatibility", whereas
if they simply used existing interfaces compatiblity would simply be
there.
(Partial)
Proposal:
Remoting compatibility should not be restricted to WSDL 1.1 mappings.
Interface
type definitions ought to be allowed to at least define a compatible
relationship
with themselves.
-Eric.
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with
number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
|