[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [wsrf] Issue 10: Concrete proposals for Metadata (Action Item)
Hi Tom,
A fourth possiblity is defining the metadata as fixed attributes in the resource properties document schema. The WS-RP spec schema would define the available metadata attributes as follows:
<attribute name="readable" type="xsd:boolean" form="qualified" />
<attribute name="writeable" type="xsd:boolean" form="qualified" />
<attribute name="deleteable" type="xsd:boolean" form="qualified" />
etc...
Then, in the resource properties document schema, metadata attributes would be specified as follows:
<xsd:import namespace="http://www.ibm.com/xmlns/stdwip/web-services/WS-ResourceProperties"
schemaLocation="../spec/wsrf/WS-ResourceProperties-1_1.xsd" />
<element name="BlockSize">
<complexType><simpleContent>
<extension base="xsd:int">
<attribute ref="wsrp:writeable" fixed="false" />
<attribute ref="wsrp:deleteable" fixed="false" />
</extension>
</simpleContent></complexType>
</element>
<element name="Manufacturer">
<complexType><simpleContent>
<extension base="xsd:string">
<attribute ref="wsrp:writeable" fixed="false" />
<attribute ref="wsrp:deleteable" fixed="false" />
</extension>
</simpleContent></complexType>
</element>
etc...
--Ian
| -----Original Message-----
| From: Tom Maguire [mailto:tmaguire@us.ibm.com]
| Sent: Tuesday, September 21, 2004 10:12 AM
| To: Tom Maguire
| Cc: wsrf@lists.oasis-open.org
| Subject: Re: [wsrf] Issue 10: Concrete proposals for Metadata
| (Action Item)
|
|
|
|
|
| Perhaps I was a bit too subtle with the analysis of potential
| resolutions
| and what I believe
| is the preferred proposal. The 3 choices are:
|
| 1) Add metadata to portType in annotations
| 2) Add metadata to portType through attachments (ala policy
| attachments)
| 3) Separate metadata document that is related to the portType
|
| The pros and cons of each choice are detailed below. The
| conclusion I draw
| is
| that choice 3 met most of the requirements and had the most
| desirable set
| of attributes.
|
| This choice would likely require our adding another
| specification to the
| WSRF suite
| of specifications and deliverables.
|
| Thoughts?
|
| Tom
|
| Tom Maguire/Hawthorne/IBM@IBMUS wrote on 09/17/2004 03:46:26 PM:
|
| >
| >
| >
| >
| > There are several ways for WSRF to capture metadata
| associated with a
| > particular portType.
| >
| > Add metadata to portType in annotations
| > Use the xs:documentation element to annotate components in
| WSDL1.1 and
| xsd
| > with additional metadata.
| >
| > <element name="pt1ResourceProperties">
| > <complexType>
| > <sequence>
| > <element ref="type1" minOccurs="0" maxOccurs="1">
| > <documentation>
| > <wsrf:propertyMetadata
| > mutability="mutable"
| > modifiability="read-only" />
| > </documentation>
| > </element>
| > <element ref="type2" minOccurs="0" maxOccurs="1">
| > <documentation>
| > <wsrf:propertyMetadata
| > mutability="mutable"
| > modifiability="read-write" />
| > </documentation>
| > </element>
| > </sequence>
| > </complexType>
| > </element>
| >
| > <element name="type1" type="xs:string"/>
| > <element name="type2" type="xs:string"/>
| >
| > <portType name="pt1"
| wsrp:ResourceProperties="pt1ResourceProperties">
| > <operation name="GetResourceProperty">
| > <documentation>
| > <wsrf:operationMetadata
| > idempotent="true" />
| > </documentation>
| > <input name="GetResourcePropertyRequest"
| > message="wsrp:GetResourcePropertyRequest" />
| > <output name="GetResourcePropertyResponse"
| > message="wsrp:GetResourcePropertyResponse" />
| > <fault name="ResourceUnknownFault"
| > message="wsrp:ResourceUnknownFault" />
| > <fault name="InvalidResourcePropertyQNameFault"
| > message="wsrp:InvalidResourcePropertyQNameFault" />
| > </operation>
| > </portType>
| >
| > Pros:
| > Uses established extensibility mechanism
| > Cons:
| > Mixed content of xs:documentation pretty ugly
| > Metadata is spread all over the place
| > Does not allow implementation specific extension of metadata;
| > metadata is only expressible at the type level
| > Confuses roles of authorship; the person with the
| knowledge of the
| > metadata might not have write access to xsd or wsdl
| > Substantial change to existing specifications; granularity of
| > expression forces lots of wsdl and xsd changes
| > No ability to have metadata on XML Schema attributes
| > Not sure how to add metadata for components that are
| not reflected
| in
| > WSDL or xsd (notifications, relationships, others?)
| >
| > Add metadata to portType through attachments (ala policy
| attachments)
| > Use open attribute capabilities to attach metadata to components in
| WSDL1.1
| > and xsd.
| >
| > <xs:schema>
| > <xs:attribute name="metadataURIs" type="list of xs:anyURI"/>
| > </xs:schema>
| >
| > <element name="pt1ResourceProperties">
| > <complexType>
| > <sequence>
| > <element ref="type1" minOccurs="0" maxOccurs="1"
| >
| wsrf:metadataURIs="http://example.com/metadata#MUTABLE
| >
| "http://example.com/metadata#READ-ONLY" />
| > <element ref="type2" minOccurs="0" maxOccurs="1"
| >
| wsrf:metadataURIs="http://example.com/metadata#MUTABLE
| >
| "http://example.com/metadata#READ-WRITE" />
| > </sequence>
| > </complexType>
| > </element>
| >
| > <element name="type1" type="xs:string"/>
| > <element name="type2" type="xs:string"/>
| >
| > <portType name="pt1"
| wsrp:ResourceProperties="pt1ResourceProperties">
| > <operation name="GetResourceProperty"
| >
| wsrf:metadataURIs="http://example.com/metadata#IDEMPOTENT"
| />
| > <input name="GetResourcePropertyRequest"
| > message="wsrp:GetResourcePropertyRequest" />
| > <output name="GetResourcePropertyResponse"
| > message="wsrp:GetResourcePropertyResponse" />
| > <fault name="ResourceUnknownFault"
| > message="wsrp:ResourceUnknownFault" />
| > <fault name="InvalidResourcePropertyQNameFault"
| > message="wsrp:InvalidResourcePropertyQNameFault" />
| > </operation>
| > </portType>
| >
| > Pros:
| > Mechanism that is proposed for WS-Policy
| > Metadata in a separate document
| > Cons:
| > URI dereferencing is not clear
| > Confuses roles of authorship (less then documentation
| approach)
| > Metadata attachments are spread all over the place
| (potentially
| > metadata is spread all over the place as well)
| > Does not allow implementation specific extension of metadata
| > list of xs:anyURI is problematic for some tools
| (could use QName I
| > guess)
| > Substantial change to existing specifications; granularity of
| > expression forces lots of wsdl and xsd changes
| > No ability to have metadata on XML Schema attribute
| > Not sure how to add metadata for components that are
| not reflected
| in
| > WSDL or xsd
| > Need to detail separate document structure for metadata
| >
| > Separate metadata document that is related to the portType
| > Define a separate metadata document that has composition
| and separate
| > lifetime from WSDL. Allow
| > connection to metadata document through portType open
| attributes (QName
| and
| > location ala wsdlLocation) for
| > design time introspection. Alloc connection to
| implementation specific
| > metadata through resourceProperty
| > element or MetadataExchange or both for runtime introspection.
| >
| > <element name="pt1ResourceProperties">
| > <complexType>
| > <sequence>
| > <element ref="type1" minOccurs="0" maxOccurs="1"/>
| > <element ref="type2" minOccurs="0" maxOccurs="1"/>
| > </sequence>
| > </complexType>
| > </element>
| >
| > <element name="type1" type="xs:string"/>
| > <element name="type2" type="xs:string"/>
| >
| > <portType name="pt1" wsrp:ResourceProperties="pt1ResourceProperties"
| >
| xxx:metadataDescriptor="tns1:pt1MetadataDocument"
| > xxx:metadataDescriptorLocation="
| > http://example.com/md/pt1
| >
| > http://example.com/md/pt1.md">
| > <operation name="GetResourceProperty" />
| > <input name="GetResourcePropertyRequest"
| > message="wsrp:GetResourcePropertyRequest" />
| > <output name="GetResourcePropertyResponse"
| > message="wsrp:GetResourcePropertyResponse" />
| > <fault name="ResourceUnknownFault"
| > message="wsrp:ResourceUnknownFault" />
| > <fault name="InvalidResourcePropertyQNameFault"
| > message="wsrp:InvalidResourcePropertyQNameFault" />
| > </operation>
| > </portType>
| >
| > The metadata description document would be structured something like
| below.
| > It could allow
| > for non-WSDL component metadata, as well as specialization and
| > reconcilation.
| >
| > <Definitions
| >
| xmlns="http://www.proposedstandards.org/xmlns/MetadataDescriptor"
| > xmlns:tns="http://example.com/ns/pt1"
| > targetNamespace="http://example.com/ns/pt1">
| > <MetadataDescriptor
| > name="pt1MetadataDescriptor"
| > interface="tns:pt1"
| > wsdlLocation="http://example.com/ns/pt1
| > http://example.com/wsdl/pt1.wsdl" >
| > <Property path="tns:type1"
| > mutability="constant"
| > modifiability="read-only" />
| > <Property path="tns:type2"
| > mutability="constant"
| > modifiability="read-only" />
| > </MetadataDescriptor>
| > </Definitions>
| >
| > Pros:
| > Metadata in a separate document
| > URI dereferencing is clear (follows wsdlLocation model)
| > Roles of authorship are clear and separated
| > Metadata is namespaced and in a single place
| > WSDL tooling and xml tooling minimal impact
| > Allows implementation specific extensions of metadata
| > No change to existing specifications
| > Metadata on attributes should be no problem
| > Cons:
| > New mechanism
| > New specification
| > Need to detail separate document structure for metadata
| >
| >
| >
| > Issue WSRF10: Need mechanism to express metadata on
| properties such as
| > 'read-only'
| > It is currently not possible to determine property behavior based on
| > examining a property document schema. OGSI ServiceData defined some
| > metadata for properties to express behaviors such as
| 'read-only'. It is
| > useful to a client to have access to this and similar
| metadata about a
| > property.
| >
| > Discussion occurred at the face-to-face July 27, 2004 about
| this issue.
| It
| > was generally accepted that there is a need to express
| meta-data about
| > properties.
| >
| >
| >
| > Specifications
| >
| > � WS-ResourceProperties, Version 1.1, March 5, 2004
| >
| >
| > Notes
| >
| >
| >
| > Proposed Recommendations
| >
| > One possible solution is to use the annotation element from
| schema to add
| > meta-data about the property.
| >
| > Another possible solution is to have a secondary document
| that includes
| > meta-data about some or all of the properties in a resource property
| > document.
| >
| > Some interesting resource property meta-data includes:
| >
| > � Insertable:bool
| > � Updateable: bool
| > � Deleteable: bool
| > � Readable: bool
| > � Initial Value(s): <any>
| > � Constant: bool
| > � ValidValue: <any> (??)
| >
| > Concrete proposals to be sent to the list.
| >
| >
| >
| > Status: Open since April 28, 2004
| >
| >
| >
| > Contact: Bryan Murray
| >
| >
| >
| > Cross Reference:
| >
| >
|
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]