Introduction to Web Services Bina Ramamurthy This work is partially supported by

advertisement

Introduction to Web Services

Bina Ramamurthy bina@cse.buffalo.edu

This work is partially supported by

NSF-DUE-CCLI-A&I Grant 0311473

4/13/2020 1

Topics for Discussion

Webservices and Service Oriented

Architectures (SOA)

XML (eXtensible Markup Language)

SOAP (Simple Object Access Protocol)

WS (Web Services)

Summary

4/13/2020 2

Web Services and SOA

Web Services is a technology that allows for applications to communicate with each other in a standard format.

A Web Service exposes an interface that can be accessed through XML messaging.

A Web service uses XML based protocol to describe an operation or the data exchange with another web service. Ex: SOAP

A group of web services collaborating accomplish the tasks of an application. The architecture of such an application is called Service-Oriented Architecture

(SOA).

4/13/2020 3

SOA in Real World: Report in

InfoWorld, May 2, 2005 Issue 18

http://www.infoworld.com/article/05/05/02/18FEsoabt_1.html?WEB%20SERVICES

State of Massachusetts uses SOA to deliver healthcare services. With

HTML web application it had no control of look and feel and handling many hospitals. With SOAP based messaging they can easily handle different systems, billing systems, medical records systems etc. Use

Microsoft-based systems.

Countrywide financial simplifies lending: IBM Websphere based SOA is used to deliver services.

Guardian Life Insurance uses SOA: IBM websphere based services. Uses

EJB for business logic.

British Telecom uses combination of BEA systems and Microsoft’s

Connected Services Framework. Billing backend and operational support for the organization are web services. Legacy systems are enabled as web services.

Amazon.com provides WS API for developers to implement applications leveraging their architecture and data.

4/13/2020 4

XML

XML is a markup language, developed by

W3C (World Wide Web Consortium), mainly to overcome the limitations of HTML.

But it took a life of its own and has become a very popular part of distributed systems.

We will examine its definition, associated specifications (DTD, XSLT etc.), Java APIs available to process XML, protocols and services based on XML, and the role XML plays in a distributed computing environment.

4/13/2020 5

First Look at XML

It has no predefined tags.

Such as in HTML

Domains may specify their own set of standard tags

It is stricter.

Most html document have errors and the browser have to built to take care of these.

On the other hand XML has a strict syntax.

There is a notion of validity and

A notion of well-formed.

4/13/2020 6

An Example: Memo

See the two documents enclosed: one in html and the other in XML formats.

Observe the meaningful tags in XML.

Compare it to a class definition: it looks like a class with data definitions and accessors (tags).

4/13/2020 7

Memo.html vs memo.xml

<!DOCTYPE html PUBLIC "-//W3C//DTD

HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

<title>memo.html</title>

</head>

<body>

<h3>Hello World</h3>

Bina<br>

CS 220 Advanced Java Programming Students

<br>

Wake up everyone<br>

BR<br>

<br>

</body>

</html>

<?xml version="1.0" ?>

<!DOCTYPE memo (View Source for full doctype...) >

<memo>

<header>Hello World</header>

<from>bina</from>

<to>CS220 Advanced Java

Programming Students</to>

<body>Wake up everyone</body>

<sign>br</sign>

</memo>

4/13/2020 8

Memo Class

Memo

Header

Body

Para[]

Link

From

To

Signature

4/13/2020 9

XML document Content

XML documents are composed of markup and contents

Some of markup tags:

Element

Attributes

Entity References

Comments

Processing instructions

CDATA sections

4/13/2020 10

Elements

Elements are the most common form of markup.

Delimited by angle brackets, most elements identify the nature of the content they surround.

Example: <allen><quote>Goodnight,

Gracie.</quote></allen>

Some elements may be empty, as seen above, in which case they have no content. If an element is not empty,it begins with a start-tag, <element>, and ends with an end-tag, </element>.

Example:<applause/>

4/13/2020 11

Attributes

Attributes are name-value pairs that occur inside start-tags after the element name. For example,

<div class="preface"> is a div element with the attribute class having the value preface.

In XML, all attribute values must be quoted.

4/13/2020 12

Entities

In XML, entities are used to represent these special characters.

Entities are also used to refer to often repeated or varying text and to include the content of external files.

Example: &amp to represent &

&US to represent United States

XML also has a set of predefined entities:

&quot, &amp

4/13/2020 13

Comments

Comments begin with <!-- and end with

-->. Comments can contain any data except the literal string --. You can place comments between markup anywhere in your document.

Example:

<!– loosely inspired by the vcard3.0 -->

4/13/2020 14

Processing Instructions (PI)

Processing instructions (PIs) are an escape hatch to provide information to an application. Like comments, they are not textually part of the XML document, but the

XML processor is required to pass them to an application.

Processing instructions have the form:

<?name pidata?>

Example:

<?xml-stylesheet href=“simple-ie5.xsl” type=“text/xsl”?>

4/13/2020 15

CDATA

In a document, a CDATA section instructs the parser to ignore most markup characters.

<?xml version=“1.0”?>

<example>

<[CDATA[

<?xml verion=“1.0”?>

<entry> ….

</entry>]]>

</example>

4/13/2020 16

XML Processing Models

XML Input Processing

Business Logic Handling

XML Output Processing

XML input

EXTRACT

Business

Logic

XML output

WEB

4/13/2020 17

XML input Processing

1.

Processing and validating the source document

2.

Recognizing/searching for relevant information based on its location or its tagging in the source document

3.

Extracting relevant information once it has been located

4.

Mapping/binding retrieved information to business objects

4/13/2020 18

XML Processing Technologies

SAX, Simple API for XML

DOM, Document Object Model API from

W3C

XSLT, XML Style Sheets Language

Transformations from W3C

XPath, the XML Path Language from

W3C

Other third party APIs.

4/13/2020 19

Apache Ant Tool

Ant tool is an XML based build tool.

Ant requires its config files to be specified in XML format.

Config file build.xml has general commands for ant tool.

Ant tool is used for build, deploy, and run java applications.

See these tutorial for more information on ant:

Tutorial1: http://www.ii.uni.wroc.pl/~nthx/java/ant.html

Tutorial2: http://www.iseran.com/Java/ant/tutorial/ant_tutorial.html

Ant Book Chapter: http://www.oreilly.com/catalog/anttdg/chapter/ch01.pdf

4/13/2020 20

XML to SOAP

Simple xml can facilitate sending message to receive information.

The message could be operations to be performed on objects.

Simple Object Access Protocol (SOAP)

4/13/2020 21

SOAP Request

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<getProductDetails xmlns="http://warehouse.example.com/ws">

<productId>827635</productId>

</getProductDetails>

</soap:Body>

</soap:Envelope>

4/13/2020 22

SOAP Reply

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<getProductDetailsResponse xmlns="http://warehouse.example.com/ws">

<getProductDetailsResult>

<productName>Toptimate 3-Piece Set</productName>

<productId>827635</productId>

<description>3-Piece luggage set. Black Polyester.</description>

<price>96.50</price>

<inStock>true</inStock>

</getProductDetailsResult>

</getProductDetailsResponse>

</soap:Body>

</soap:Envelope>

4/13/2020 23

SOAP

Web Services (WS)

Literature surveyed:

1. IBM’s alphaworks site: http://www-106.ibm.com/developerworks/webservices/

2. http://www-3.ibm.com/software/solutions/webservices/pdf/WSCA.pdf

3. O’Reilly book on Web Services: Kim Topley’s Webservices in a

Nutshell: http://www.oreilly.com/catalog/javawsian/index.html

This link has a sample chapter (SAAJ) and zip of all examples in the book.

4. http://www.w3.org/DesignIssues/WebServices.html

4/13/2020 24

Web Services Suite of

Protocols

A suite of protocols define the Web Services

Technology.

These are used to describe, publish, discover, deliver and interact with services.

The information about the protocols is from

IBM’s developerworks .

4/13/2020 25

WS Suite of Protocols

Messaging protocol Simple Object Access Protocol

(SOAP) encodes messages so that they can be delivered over the transport protocols HTTP, SMTP or

IIOP.

Web Services Definition Language (WSDL) is used to specify the service details such as name, methods and their parameters, and the location of the service.

This facilitates the registering and discovery of the service.

For services to locate each other, the Universal

Description, Discovery and Integration (UDDI) protocol defines a registry and associated protocols for locating and accessing services.

4/13/2020 26

WS Suite of Protocols (contd.)

The WS-Transaction and WS-Coordination protocols work together to handle distributed transactions.

The Business Process Execution Language for Web

Services (BPEL4WS) defines workflow operations.

WS-Security is a family of protocols that cover authentication, authorization, federated security, secure communications, and delivery.

WS-Policy is another group of protocols that define the policy rules behind how and when Web services can interact with each other.

WS-Trust defines how trust models work between different services.

4/13/2020 27

WS Stack

WSFL Service Flow

UDDI Service Discovery

UDDI Service Publication

WSDL

Service Description

SOAP

HTTP, FTP, MQ

XML-based Messaging

Network

28

WS Interoperability Infrastructure

WSDL Service Description

XML Messaging SOAP

HTTP Network

Do you see any platform or language dependencies here?

4/13/2020 29

JAX-RPC

JAX-RPC: Java API for XML-based Remote Procedure

Call (RPC).

An API for building Web Services and Web Services clients.

Some important concepts in JAX-RPC are:

Type-mapping system (WSDL to Java)

Service endpoint

Exception handling

Service endpoint context

Message handlers

Service clients and service context

SOAP with attachments

Runtime services

JAX-RPC client invocation models

4/13/2020 30

JAX-RPC (contd.)

JAX-RPC is designed to provide a simple way for developers to create Web services server and Web services client.

Based on remote procedure calls; so the programming model is familiar to Java developers who have used RMI or CORBA.

Major difference between RMI and JAX-RPC is that messages exchanged are encoded in XML based protocol and can be carried over a variety of transport protocols such as HTTP, SMTP etc.

You can use JAX-RPC without having to be an expert in XML, SOAP, or HTTP.

4/13/2020 31

The JAX-RPC Programming

Model

Services, ports and bindings

JAX-RPC web service servers and clients

JAX-RPC service creation

JAX-RPC client and server programming environments

Stubs and ties

Client invocation modes

Static and dynamic stubs and invocation

4/13/2020 32

Services, ports and bindings

Service endpoint interface or service endpoint that defines one or more operations that the web service offers.

Access to an endpoint is provided by binding it to a protocol stack through a port .

A port has an address that the client can use to communicate with the service and invoke its operations.

An endpoint can be bound to different ports each offering a different suite of protocols for interaction.

4/13/2020 33

Endpoint, Port and binding

Web service endpoint

Port1 port2 port3

SOAP1.1

Over http

SOAP 1.1 over https

Other. Ex: ebXML over

SMTP

Web services Client https 1.1 transport soap1.1 messages

4/13/2020 34

WS Development Lifecycle

Build:

Definition of service interface

Definition of service implementation

New services

Existing application into WS

Composing a WS out of other WS and applications

Source compiled and Stubs and Ties are generated.

Deploy:

Publication of the service interface and service implementation to service registry or service requestor.

Deployment of executables in an execution environment.

4/13/2020 35

WS Development Lifecycle

(contd.)

Run: A WS is available for invocation.

Requestor can perform find and bind operation.

Manage: on going management and administration for security, availability, performance, QoS, and business processes.

4/13/2020 36

Service Oriented Architectures

Lets look at some success stories.

Amazon.com has is data collection available web services developers.

See these URLs:

Amazon.com E-Commerce Service ( ECS )

Conceptual Model

ECS Usage/Query Scenarios

Types of data available through ECS (and not available)

Sample applications (some of them are cool )

Programming and API for making (SOAP) requests

4/13/2020 37

Summary

We looked at foundational concepts supporting web services: XML, SOAP,

WSDL and Web Services standards.

We also illustrated the concepts using sample programs.

Best way to get started is try out WS tutorials by yourself.

4/13/2020 38

Download