Web Services ECC

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 38

Introduction to Web Services

Bina Ramamurthy
bina@cse.buffalo.edu
This work is partially supported by
NSF-DUE-CCLI-A&I Grant 0311473

02/05/23 1
Topics for Discussion
Webservices and Service Oriented
Architectures (SOA)
XML (eXtensible Markup Language)
SOAP (Simple Object Access Protocol)
WS (Web Services)
Summary

02/05/23 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).

02/05/23 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.

02/05/23 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.

02/05/23 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.

02/05/23 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).

02/05/23 7
Memo.html vs memo.xml
<!DOCTYPE html PUBLIC "-//W3C//DTD <?xml version="1.0" ?>
HTML 4.01 Transitional//EN">   <!DOCTYPE memo (View Source for full
<html> doctype...)>
<head> - <memo>
<meta http-equiv="content-type"   <header>Hello World</header>
content="text/html; charset=ISO-8859-1">   <from>bina</from>
<title>memo.html</title>   <to>CS220 Advanced Java
</head> Programming Students</to>
<body>   <body>Wake up everyone</body>
<h3>Hello World</h3>   <sign>br</sign>
Bina<br>   </memo>
CS 220 Advanced Java Programming
Students <br>
Wake up everyone<br>

BR<br>
<br>
</body>
</html>

02/05/23 8
Memo Class
Memo
Header
From
To
Body
Para[]
Link
Signature

02/05/23 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

02/05/23 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/>

02/05/23 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.

02/05/23 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

02/05/23 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 -->

02/05/23 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”?>

02/05/23 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>

02/05/23 16
XML Processing Models
XML Input Processing
Business Logic Handling
XML Output Processing

XML input Business XML output


WEB
EXTRACT
Logic

02/05/23 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

02/05/23 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.

02/05/23 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

02/05/23 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)

02/05/23 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>

02/05/23 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>

02/05/23 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

02/05/23 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.

02/05/23 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.

02/05/23 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.

02/05/23 27
WS Stack
WSFL Service Flow

UDDI Service Discovery

Quality of Service
Management
Security
UDDI Service Publication

WSDL Service Description

SOAP XML-based Messaging

HTTP, FTP, MQ
Network
Email,02/05/23
IIOP 28
WS Interoperability Infrastructure

WSDL Service Description

SOAP XML Messaging

HTTP Network

Do you see any platform or language dependencies here?


02/05/23 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

02/05/23 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.

02/05/23 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

02/05/23 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.

02/05/23 33
Endpoint, Port and binding
Web service

endpoint

Port1 port2 port3

SOAP1.1 SOAP 1.1 over Other. Ex: Web services Client


Over http https
ebXML over
SMTP

https 1.1 transport


soap1.1 messages

02/05/23 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.

02/05/23 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.

02/05/23 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

02/05/23 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.

02/05/23 38

You might also like