ProxyLinkByWebservice

GregorHagedorn - Mon May 08 2006 - Version 1.2
Parent topic: ObsoleteTopicProxyDataModel
Until version UBIF 1.0 beta 14, the ProxyBaseType in UBIF contained an attempt to model linking using fully definable web service links. This was correctly criticized as being rather complex and consequently unlikely to be used.

The part has therefore been removed from future UBIF beta versions. The xml schema fragment is preserved below to possibly form the basis for future discussion, if this should become desirable. A better overview is the following schema diagram:

ProxyBaseLink_LastWebservice.png



<xs:element name="WebService" minOccurs="0">
<xs:annotation>
  <xs:documentation xml:lang="en-us">A web service providing an object representation, of which either the 
wsdl url is directly known, or which 
can be discovered through UDDI (allowing the service to move to 
new locations).

@@ The lack of distinction 
between identifying parameters, 
and method-specific parameters 
in web services is problematic. 
Different services or methods 
may have different parameter, 
but may still be pointing to the 
same object!</xs:documentation>
</xs:annotation>
<xs:complexType>
  <xs:sequence>
    <xs:choice>
      <xs:element name="ServiceURI" type="xs:anyURI">
        <xs:annotation>
          <xs:documentation xml:lang="en-us">Defines a static service uri; normally a web service wsdl-file.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:sequence>
        <xs:annotation>
          <xs:documentation xml:lang="en-us">Alternatively,
the service 
may be
discovered
through 
UDDI</xs:documentation>
        </xs:annotation>
        <xs:element name="RegistryURI" type="xs:anyURI" minOccurs="0">
          <xs:annotation>
            <xs:documentation xml:lang="en-us">This might be the wsdl URI of the UDDI web service itself. We assume that the UDDI used is a private UDDI, not part of the global business UDDI system. Is missing, if the public UDDI has been used.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="BindingKey" type="String255">
          <xs:annotation>
            <xs:documentation xml:lang="en-us">A key value to recover the desired service port from a UDDI registry. This might be a UUID key provided by the registry.</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:choice>
    <xs:element name="MethodName" type="String255">
      <xs:annotation>
        <xs:documentation xml:lang="en-us">Name of a method retrieving the object from a web service. Other methods to link information between the current infoset and the external infoset may exist; how to use these would be application knowledge. 

A method or function is called an operation in the wsdl file</xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="Parameters" minOccurs="0">
      <xs:annotation>
        <xs:documentation xml:lang="en-us">Parameters to be 
used when calling 
the method above</xs:documentation>
      </xs:annotation>
      <xs:complexType>
        <xs:sequence>
          <xs:element name="Parameter" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation xml:lang="en-us">ATTR: name / value 
(both as string, date or numerical types are assumed to be converted into the xml string representation)</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:attribute name="name" type="xs:string" use="required"/>
              <xs:attribute name="value" type="xs:string" use="required"/>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:sequence>
</xs:complexType>
</xs:element>


Instance example:


<WebService>
  <RegistryURI>uddi.gbif.net</RegistryURI>
  <BindingKey>Fishbase-DiGIR-Interface</BindingKey>
  <MethodName>DiGIR-Request</MethodName>
  <Parameters>
    <Parameter name="ID" value="99999"/>  
    <!-- Note: in ABCD no single object ID is planned for, instead mutliple parameters have to be passed to a webservice-->
  </Parameters>
</WebService>

-- Main.GregorHagedorn - 13 Aug 2004