graphic with four colored squares
slanted W3C logo
Cover page images (keys)

Web Services

Philippe Le Hégaret,

W3C Architecture Domain Leader,
<plh@w3.org>

The Hartford
January 16, 2007

Web Services

Follow-up on work from:

Is about:

Service Oriented Architecture

Principles:

Benefits

Participants

Vendors:
IBM, BEA, webMethods, IONA, TIBCO, SAP, CA, Oracle, Microsoft, Sun, etc.

Users:
Citigroup, BT, Canon, Xerox, NACS, HL7, etc.

Web Services

Web Services in Bird's Eye view of W3C Technologies

Web Services Protocol

Web Services Protocol

Web Services Description

Web Services Protocol

Messaging Framework

SOAP 1.2:

W3C Recommendation since June 2003. Slow but steady transition.

SOAP 1.2

<soap:Envelope>

  <soap:Headers>
    <wsa:To>http://www.example.org/MyService</wsa:To>
    <wsa:Action>http://www.example.org/Update</wsa:Action>
  </soap:Headers>
  <soap:Body></soap:Body>
</soap:Envelope>

Addressing (1/2)

MTOM Example

Addressing (2/2)

Web Services Addressing 1.0:

W3C Recommendation (Core and SOAP Binding)

WSDL Binding interoperability ongoing

Web Services Addressing 1.0 Interoperability

Required tests
Client/Server Axis IBM JBoss Microsoft Sun WSO2
IBM 100% 100% 100% 100% 100% 100%
JBoss 100% 100% 100% 100% 100% 100%
Microsoft 79% 100% 100% 100% 100% 100%
Sun 100% 100% 100% 100% 100% 100%
WSO2 100% 100% 100% 100% 100% 100%

Next is Addressing 1.0 Policy assertion.

Message Transmission Optimization Mechanism (1/2)

MTOM Example

Message Transmission Optimization Mechanism (2/2)

SOAP Message Transmission Optimization Mechanism (MTOM):

W3C Recommendation since January 2005.

Web Services Description

Web Services Protocol

WSDL 2.0 (1/3)

WSDL 2.0: Define a basic description of a Web Service

WSDL 2.0 (2/3)

Candidate Recommendation

Second Interoperability event in November (Dinard, France)

Removed recently: feature/properties, 6 MEPs

(see also dashboard)

WSDL 2.0 (3/3)

<description …>

  <types>
    <xs:schema …>
      <xs:element name="checkAvailability" type="tCheckAvailability"/>    
      <xs:complexType name="tCheckAvailability">     
        <xs:sequence>      
          <xs:element  name="checkInDate" type="xs:date"/>      
          <xs:element  name="checkOutDate" type="xs:date"/>      
          <xs:element  name="roomType" type="xs:string"/>      
        </xs:sequence>     
      </xs:complexType>            
      <xs:element name="checkAvailabilityResponse" type="xs:double"/>        
      <xs:element name="invalidDataError" type="xs:string"/>    
    </xs:schema>    
  </types>
  
  <interface  name="reservationInterface" >
    <fault name="invalidDataFault"
            element="ghns:invalidDataError"/>    
    <operation name="opCheckAvailability" 
            pattern="http://www.w3.org/2006/01/wsdl/in-out" 
            style="http://www.w3.org/2006/01/wsdl/style/iri"
            wsdlx:safe="true">
        <input messageLabel="In" 
              element="ghns:checkAvailability" />
        <output messageLabel="Out" 
              element="ghns:checkAvailabilityResponse" />
        <outfault ref="tns:invalidDataFault" messageLabel="Out"/>
    </operation>
  </interface>

  <binding name="reservationSOAPBinding" 
          interface="tns:reservationInterface"
          type="http://www.w3.org/2006/01/wsdl/soap"
          wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP">
    <fault ref="tns:invalidDataFault" 
      wsoap:code="soap:Sender"/>
    <operation ref="tns:opCheckAvailability" 
      wsoap:mep="http://www.w3.org/2003/05/soap/mep/soap-response"/>
  </binding>

  <service name="reservationService" interface="tns:reservationInterface">
     <endpoint name="reservationEndpoint" 
               binding="tns:reservationSOAPBinding"
               address ="http://greath.example.com/2004/reservation"/>        
  </service>

</description>

WS-Policy 1.5 (1/2)

(see also Web Services Policy 101)

WS-Policy 1.5 (2/2)

<wsp:Policy>

  <wsap:AddressingRequired />
  <mtom:OptimizedMimeSerialization
          wsp:Optional="true"/>
  <wsp:ExactlyOne>
    <sp:TransportBinding>…</sp:TransportBinding>
    <sp:AsymmetricBinding>…</sp:AsymmetricBinding>
  </wsp:ExactlyOne>
</wsp:Policy>

Choreography

WS-CDL 1.0: Describe interaction among atomic Web Services

Candidate Recommendation

XML Schema Patterns for Databinding

First Working Draft for XML Schema Patterns for Databinding published on May 12.

XML Schema Patterns for Databinding (1/2)

First Working Draft for XML Schema Patterns for Databinding published on May 12.

XML Schema Patterns for Databinding (2/2)

<xs:complexType name="Collection">
  <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="shade" type="xs:string"/>
    <xs:element name="length" type="xs:int"/>
  </xs:sequence>
  <xs:attribute name="id" type="xs:string"/>
  <xs:attribute name="inStock" type="xs:int"/>
</xs:complexType>

Semantic Web Services

Generic Semantic Annotation mechanism for WSDL

Semantic Web Services (2/3)

urn:Electronics rdf:type categorization:Category;
     categorization:haveValue "443112";
     categorization:usesTaxonomy <http://naics.com> . 
<wsdl:interface name="CheckItemAvailability">
  <wsdl:operation name="CheckItemAvailabilityOperation" sawsdl:modelReference="categorization#Electronics"
    ...
  </wsdl:operation>
</wsdl:interface>

Semantic Web Services (3/3)

<xs:exlement name="CheckInventoryServiceRequest">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="UPC" type="xsd:string"
        sawsdl:modelReference="SampleRetailOntology#UPCCode"/>
      <wsdl:element name="DeliveryDate" type="xs:string"
        sawsdl:modelReference="SampleRetailOntology#DeliveryDate"/>
      <wsdl:element name="numBundles" type="xs:float"
        sawsdl:modelReference="SampleRetailOntology#NumBundles/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<SampleRetailOntology.owl#> rdf:type owl:Ontology  .
  :PartNumber rdf:type owl:Class;
     rdfs:subClassOf owl:Thing;
     owl:equivalentClass :UPC .
  :UPC rdf:type owl:Class;
     owl:equivalentClass :PartNumber .
  :NumBundles rdf:type owl:Class;
     owl:equivalentClass :Quantity .
  :Quantity rdf:type owl:Class;
     rdfs:subClassOf owl:Thing;
     owl:equivalentClass :NumBundles; .
  :DeliveryDate rdf:type owl:Class;
     rdfs:subClassOf owl:Thing;
     owl:equivalentClass owl:DueDate .
  :DueDate rdf:type owl:Class;
     owl:equivalentClass :DeliveryDate .

WS2: SPARQL + WSDL Demonstrator

Adding WSDL annotations for SPARQL Queries

Ties RDF data to locations in a Web Services message.:

<xs:element name="Item" spat:SPAT='?book tns:doctitle xpath("aws:Title")'/>

Demo

PREFIX tnss: <http://webservices.amazon.com/AWSECommerceService/2004-11-10>
SELECT ?asin ?title WHERE {
 ?X tnss:id "0FWYBWB91M5S26YBE382" ;
    tnss:keywords "cola" ;
    tnss:index "Books" ;

    tnss:asin ?asin ;
    tnss:doctitle ?title }
asin title
"0896584542""The Sparkling Story of Coca-Cola"
"0953984028""The World Stormrider Guide (Stormrider Guides)"
"0887307515""Secret Formula"
"0873493818""The Encyclopedia of Pepsi-Cola Collectibles (Encyclopedia of Pepsi-Cola Collectibles)"
"0896960528""The Cola Wars: The story of the global battle between the Coca-Cola Company and PepsiCo, Inc."
"1887432930""Coca-Cola Collectible Santas (Collector's Guide to Coca Cola Items Series)"
"0977184307""Splenda® Is It Safe Or Not?"
"0873492412""Petretti's Coca-Cola Collectibles Price Guide (Petretti's Coca-Cola Collectibles Price Guide)"
"0553568914""Elvis, Jesus and Coca-Cola (Kinky Friedman Novels (Paperback))"
"0465054684""For God, Country, and Coca-Cola: The Definitive History of the Great American Soft Drink and the Company That Makes It"

    

Service Oriented Architecture

Principles:

Benefits

Web Architecture: Principles

From Architecture of the World Wide Web, Volume One

SOA/Web: What's missing?

SOA/Web Services: What's missing?

Going beyond SOAP/WSDL 1.1…

Services on the Web

Web of Services for Enterprise Computing

facilitate the processing of business transactions and interactions with systems and address the need to interconnect intranet and/or extranet services using Web technologies.

W3C Workshop on Web of Services for Enterprise Computing (end of February 2007)

Efficient XML Interchange (EXI)

EXI: Improving the XML pipeline

EXI: Test cases

Scientific
AVCL, GAML, HepRep, MAGE-ML, Seismic, XAL, Misc/periodic
Financial
FixML, FpML, Invoice
Document
OpenOffice, SVGTiny, Misc/factbook
Web Services
Google, WSDL, epicsArchiver

…, Military (ASMTF, JTLM), Broadcast (CBMS), Storage (DataStore), Sensor (LocationSightings)

From Analysis of EXI Measurement Results, by Jaakko Kangasharju

EXI: Compaction document+schema

Efficient XML Interchange results, with document+schema optimization in use

EXI: Latest news

Thank you

More information at:

http://www.w3.org/2002/ws/