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

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsrf message

[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]