XML Europe 2001 logo21-25 May 2001
Internationales Congress Centrum (ICC)
Berlin, Germany

Web Service Standards - A Survey

Murali Janakiraman <murali@roguewave.com>
 PDF version    Latest version   

ABSTRACT

Before we barely got used to the term web services, we witnessed an explosion of web services and XML communication standards: SOAP, XP, ebXML etc. Have you ever wondered what these standards are for, where they are going and how you can make use of them? This paper explains the various standardization efforts and gives a high level overview of major web service standards in addition to defining web services and describing the different functional pieces that make up a web service.

Table of Contents

1. Presentation Overview

2. Web Services

2.1. What are Web Services?

Business functionality exposed through an Internet connection

2.2. Examples of Web Services

Any service over the Internet

2.3. Benefits of Web Services

Figure 1: Connects Many Devices, Many Technologies
Figure 2: Simple Web Service Architecture

2.4. Web Service Components

3. Web Service Standards

Service Description

WSDL

Defines grammar for each of these elements

WSDL-Example Definition

<?xml version='1.0' 
<schema targetNamespace='http://example.com/stockquote/schemas' 
  xmlns:'http://www.w3.org/1999/XMLSchema'> 
<element name='GetLastTradePrice' 
<complexType> <all> 
<element name='tickerSymbol' type='string'/> 
</all> 
</compleType> 
</element> 
// Similarly define a complexType for 'GetLastTradePriceResult' 
</schema>
		

Abstract message definition

<?xml version='1.0' 
<definitions name='stockQuote' 
  targetNamespace='http://example.com/stockquote/definitions' 
xmlns:tns='http://example.com/stockquote/definitions' 
xmlns:xsd1='http://example.com/stockquote/schemas' 
  xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' 
  xmlns:'http://schemas.xmlsoap.org/wsdl/'> 
<import namespace='http://example.com/stockquote/schemas' 
location='http://example.com/stockquote/stockquote.xsd'/> 
<message name='GetLastTradePriceRequest' 
<part name='body' element='xsd1:GetLastTradePrice' /> 
  </message> 
// similarly define a message for 'GetLastTradePriceResponse' 
<portType name='StockQuotePortType'> 
<operation name='GetLastTradePrice'> 
<input message='tns:GetLastTradePriceRequest'/> 
<output message='tns: GetLastTradePriceResponse' /> 
</operation> </portType> </definitions> 
http://example.com/stockquote/stockquote.wsdl source: 
WSDL 1.1 specification
		

Binding definition

<?xml version='1.0' 
<definitions name='StockQuote'> 
targetNamespace='http://example.com/stockquote/service' 
xmlns:tns='http://example.com/stockquote/service' 
xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' 
xmlns:'http://schemas.xmlsoap.org/wsdl/'> 
<import namespace='http://example.com/stockquote/definitions' 
location='http://example.com/stockquote/stockquote.wsdl'/> 
<binding name='StockQuoteSoapBinding' type='tns:StockQuotePortType' 
<soap:binding style='document' /> <operation name='GetLastTradePrice'> 
<soap:operation soapAction='http://my.org/GetLastTradePrice' /> 
</operation> </message> <service name='StockQuoteService'> 
<documentation>My First Stock Service </documentation> 
<port name='StockQuotePort' binding='tns:StcokQuoteBinding'/> 
<soap:address location='http://my.org/stockquote' /> </port> 
</service> </definitions> http://example.com/stockquote/stockquote.wsdl 
source: WSDL 1.1 specification
		

Communication Protocols

SOAP-Simple Object Access Protocol

SOAP 1.1

SOAP Basic Structure

An Envelope is the root element of a SOAP document

<Envelope> 
  <Header> ... </Header> 
  <Body> ... </Body> 
</Envelope>
		

The Header is optional

A Body is required

Use of Namespaces

Figure 3: Example Request
Figure 4: SOAP History

W3C XML Protocol

The W3C XML Protocol Activity

XP Working Group Charter

ebXML

A Set Of Specifications

Figure 5: Technical Architecture
Figure 6: Usage Example

Status

Service Repository and Discovery

Repository and Discovery Protocols

UDDI

Figure 7: Where Does UDDI Fit In?

UDDI Specification

UDDI Business Registry

Figure 8: UDDI Relationship - Relates schema, specification and registry

Enterprise Functionality

Transaction

XAML

XAML Details

Figure 9: Relationships to Other Standards
Figure 10: Security - Do we need another security standard?

Security Standards

S2ML Details

S2ML Key Elements

Conclusion

Additional Resources

Contacting Rogue Wave Software

Biography

Murali Janakiraman
Software Architect
Rogue Wave Software
Corvallis
Oregon
USA
Email: murali@roguewave.com

Murali Janakiraman - Murali Janakiraman has been with Rogue Wave for six years, and is currently the Software Architect for the XML Products team in Corvallis, Oregon. During his tenure at Rogue Wave, Murali has been a developer, senior developer and tech lead on almost all of Rogue Wave's database products, including DBTools.h++, JDBTools, DBTools.h++ XA, RW-Metro and now XML Link. Murali has a bachelor's degree in Mechanical Engineering from Anna University in Chennai, India, and a Masters in Computer Science from Portland State University. He has spoken numerous times for Rogue Wave web seminars on database products such as RW-Metro and XML Link. For the past five years, Murali has focused on databases, distributed transactions and object-relational mapping, making him a key asset to the XML technology team.