# Presentation: 215434

## ESIP Technology Workshop Web Service TutorialYuan-Chi ChangIBM Thomas J. Watson Research CenterMay 14, 2002

## Disclaimer

- Presentation today on the subject of web services is solely reflecting the view of the speaker. The presentation material does not suggest the stance of the IBM corporation and its research and development directions.

## Outline

- Web services - beneath the hypes
- This tutorial - how it is related to other workshop topics
- XML Schema
- SOAP
- WSDL
- UDDI
- Apache Axis
- WMS
- WMS web service wrapper

## Web Service Push/Pull Information

- Web, disk, phone, manual download, processing

- Fully automated multi-stage acquisition and processing

## What is Web Service

- From browser centric web to service centric web
- Connect heterogeneous servers, platforms, software
- Structured request/response with XML
- Push/pull, workflow
- Save integration efforts
- Rely on
- Meta data standard for descriptions
- Meta model for access and interaction
- Web service will not
- Save the world
- Interpret and understand tags, values, descriptions, semantically
- Automatically connect other services unless of identical meta model

## How is this Tutorial related to Others

- Web Mapping Server (WMS)
- Our web service example
- Earth Science Markup Language (ESML)
- Meta tag/value/description standard
- Data Access layers such as DODS
- Data access service
- Directory service/Finder such as Mercury
- Data/service discovery

## Web Service Chaining Adds Value

- A necessary step to turn valuable research results into valuable information products (SST to coordinates of tuna)
- In-situ processing to minimize client overhead (receive only mission critical data; no software to install)
- Service registry to advertise web services - Universal Description, Discovery and Integration (UDDI)
- Interface definition to invoke remote services - Web Services Definition Language (WSDL)
- XML messaging protocol to carry data inputs and outputs - Simple Object Access Protocol (SOAP)

## Outline

- Web services - beneath the hypes
- This tutorial - how it is related to other workshop topics
- XML Schema
- SOAP
- WSDL
- UDDI
- Apache Axis
- WMS
- WMS web service wrapper

## XML Schema different from DTD

- XML structure expressed in XML
- XML namespace
- Simple data types
- string, integer, boolean, time, data, ID, IDREF, etc.
- Complex data types
- nested structure, sequence, choice, minOccurs, maxOccurs
- http://www.w3.org/XML/Schema

## XML Schema Examples

- <?xml version="1.0" encoding="UTF-8"?>
- <purchaseOrder orderDate="1999-10-20">
-     <shipTo country="US">
-         <name>Alice Smith</name>
-         <street>123 Maple Street</street>
-         <city>Mill Valley</city>
-         <state>CA</state>
-         <zip>90952</zip>
-     </shipTo>
-     <billTo country="US">
-         <name>Robert Smith</name>
-         <street>8 Oak Avenue</street>
-         <city>Old Town</city>
-         <state>PA</state>
-         <zip>95819</zip>
-     </billTo>
-     <comment>Hurry, my lawn is going wild!</comment>
-     <items>
-         <item partNum="872-AA">
-             <productName>Lawnmower</productName>
-             <quantity>1</quantity>
-             <USPrice>148.95</USPrice>
-             <comment>Confirm this is electric</comment>
-         </item>
-         <item partNum="926-AA">
-             <productName>Baby Monitor</productName>
-             <quantity>1</quantity>
-             <USPrice>39.98</USPrice>
-             <shipDate>1999-05-21</shipDate>
-         </item>
-     </items>
- </purchaseOrder>

- Show PO.xml and PO.xsd

## Outline

- Web services - beneath the hypes
- This tutorial - how it is related to other workshop topics
- XML Schema
- SOAP
- WSDL
- UDDI
- Apache Axis
- WMS
- WMS web service wrapper

## SOAP (Simple Object Access Protocol)

- XML messaging protocol to carry data inputs and outputs
- XML distributed computing
- Previous attempts by industry: CORBA, DCOM
- SOAP message structure
- Header
- Envelop
- Body
- Example - travel reservation
- http://www.w3.org/2002/ws/

## Outline

- Web services - beneath the hypes
- This tutorial - how it is related to other workshop topics
- XML Schema
- SOAP
- WSDL
- UDDI
- Apache Axis
- WMS
- WMS web service wrapper

## WSDL (Web Service Description Language)

- Interface definition language in XML
- Conceptually, no different from Enterprise Java Bean or Common Gateway Interface
- Based on XML Schema, powerful expressions
- Five declarations
- Types
- Messages
- Ports
- Bindings
- Services
- Example
- http://www.w3.org/TR/wsdl/

## SOAP messages and WSDL

- Service input

- Service output

- WSDL

## Outline

- Web services - beneath the hypes
- This tutorial - how it is related to other workshop topics
- XML Schema
- SOAP
- WSDL
- UDDI
- Apache Axis
- WMS
- WMS web service wrapper

## UDDI Registry

- Organizations register public informationabout themselves
- Standards bodies, Programmers, Businesses register information about their Service Types

- WhitePages

- YellowPages

- GreenPages

- Service Type
- Registrations

## White Pages

- Organization Name
- Text Description
- list of multi-language text strings
- Contact info
- names, phone numbers, fax numbers, web sites...
- Known Identifiers
- list of identifiers that a business may be known by - DUNS, Thomas, other

## Yellow Pages

- Organization categories
- 3 standard taxonomies in V1
- Industry:  NAICS (Industry codes - US Govt.)
- Product/Services:  UN/SPSC (ECMA)
- Location: Geographical taxonomy
- Implemented as name-value pairs to allow any valid taxonomy identifier to be attached to the business white page

## Green Pages

- New set of information providers use to describe how to connect with them
- Nested model
- Business processes
- Service descriptions
- Binding information
- Programming/platform/implementation agnostic
- Services can also be categorized

## Business Registration

**businessEntity**

**businessKey**
**name**
**URL**
**description**
**contacts**
**businessServices**
**identifierBag**
**categoryBag**

**businessService**

**Key**
**Name**
**Description**
**BindingTemplates**

**businessService**

- XML document
- Created by end-user company (or on their behalf)
- Can have multiple service listings
- Can have multiple taxonomy listings

## Registration Example

## UDDI and SOAP

**User **

**UDDI Registry****Node**

**Create, View, ****Update, and Delete****registrations**

**Implementation-****neutral**

**© Copyright 2000 By Ariba, Inc., International Business Machines Corporation and Microsoft Corporation.  All Rights Reserved.**

## Registry API

- Inquiry API
- Find things
- find_business
- find_service
- find_binding
- find_tModel
- Get Details about things
- get_businessDetail
- get_serviceDetail
- get_bindingDetail
- get_tModelDetail

- Publishers API
- Save things
- save_business
- save_service
- save_binding
- save_tModel
- Delete things
- delete_business
- delete_service
- delete_binding
- delete_tModel
- Security...
- get_authToken
- discard_authToken

## Outline

- Web services - beneath the hypes
- This tutorial - how it is related to other workshop topics
- XML Schema
- SOAP
- WSDL
- UDDI
- Apache Axis
- WMS
- WMS web service wrapper

## Apache Axis

- Open source code in development
- One of the many web service development platform
- Apache SOAP
- Sun JAXP
- IBM/Apache WSTK
- Microsoft .NET
- WSDL2Java and Java2WSDL
- UDDI Registry access

## Outline

- Web services - beneath the hypes
- This tutorial - how it is related to other workshop topics
- XML Schema
- SOAP
- WSDL
- UDDI
- Apache Axis
- WMS
- WMS web service wrapper

## WMS

- Version
- Request
- Layers
- Styles
- SRS
- Bbox
- Width
- Height
- Format
- Transparent
- BGColor
- Exceptions
- Time
- Elevation
- Vendor specific

## Outline

- Web services - beneath the hypes
- This tutorial - how it is related to other workshop topics
- XML Schema
- SOAP
- WSDL
- UDDI
- Apache Axis
- WMS
- WMS web service wrapper

## Tutorial Summary

- Web service transforms browser centric web to service centric
- Learning curve quite steep
- XML Schema, SOAP, WSDL, UDDI, choice of development platform
- Better tools are definitely coming from open source and other venues
- Earth science web service applications
- Large data volume
- Sophisticated statistical and analytical processes
- Intermediate products have value
- Scientific research to operational value delivery