+ All Categories
Home > Documents > Chapter 3: Programming Web Services

Chapter 3: Programming Web Services

Date post: 12-Feb-2016
Category:
Upload: drew
View: 30 times
Download: 0 times
Share this document with a friend
Description:
Chapter 3: Programming Web Services. Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005. Highlights of this Chapter. Representational State Transfer (ReST or REST) Developing and Using Web Services Web Service Interoperability. - PowerPoint PPT Presentation
12
Chapter 3: Programming Web Services Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005
Transcript
Page 1: Chapter 3: Programming Web Services

Chapter 3:Programming Web ServicesService-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2005

Page 2: Chapter 3: Programming Web Services

Chapter 3 2Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Highlights of this Chapter Representational State Transfer

(ReST or REST) Developing and Using Web

Services Web Service Interoperability

Page 3: Chapter 3: Programming Web Services

Chapter 3 3Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Representational State Transfer REST is an architectural style for

networked systems that constrains the connector semantics (not the component semantics)

The Web is a network of hyperlinked resources A resource is anything identified by a URI

A Web application works as a state machine

A client selecting a link is a state transition, resulting in receiving the next page (next state) of the application

Page 4: Chapter 3: Programming Web Services

Chapter 3 4Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns

Characteristics of REST Client-Server Statelessness: requests cannot take advantage

of stored contexts on a server Great for load balancing

Caching: responses can be labeled as cacheable

Uniform interface – URIs, hypermedia Layered components Focus on resources as opposed to methods:

Read, construct, update a resource representation Well-suited to hypermedia applications

Page 5: Chapter 3: Programming Web Services

HTTP Verbs Popular verbs

Get: query (no side effects) Post: update Put Delete

Idempotent operations Multiple executions = one execution

Challenge: the specification imposes requirements but with no way to judge compliance

Especially, can use Get and Post instead of much of SOAP

Chapter 3 5Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Page 6: Chapter 3: Programming Web Services

Chapter 3 6Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Software for Open Environments Tempting to simply lift current

database and programming techniques for open environments

Popular pitfall (blame the tools for it) Think of objects (get and set methods);

use Web services standards to invoke them

Poor performance Tight coupling

Error: services at too fine a granularity

Page 7: Chapter 3: Programming Web Services

Chapter 3 7Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Suppose you want to sell cameras over the Web, debit a credit card, and guarantee next-day delivery

Your application must update sales database debit the credit card send an order to the shipping department receive an OK from the shipping department

for next-day delivery update an inventory database

Problems: Some steps complete but not all

Simple B2C Web Service Example

InternetSellCameraWeb Service

Shipping Database

Sales Database

Inventory Database

User

Page 8: Chapter 3: Programming Web Services

Chapter 3 8Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

“Traditional” B2C Problems

What if the order is shipped, but the debit fails?

What if the debit succeeds, but the order was never entered or shipped?

Page 9: Chapter 3: Programming Web Services

Chapter 3 9Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Traditional (Database) Approach

A traditional database approach works only for a closed environment:

Transaction processing (TP) monitors (such as IBM’s CICS, Transarc’s Encina, BEA System’s Tuxedo) can ensure that all or none of the steps are completed, and that systems eventually reach a consistent state

But what if the user’s modem is disconnected right after he clicks on OK? Did the order succeed? What if the line went dead before the acknowledgement arrives? Will the user order again?

The TP monitor cannot get the user into a consistent state!

Page 10: Chapter 3: Programming Web Services

Chapter 3 10Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Approach for Open Environment

Server application could send email about credit problems, or detect duplicate transactions

Downloaded applet could synchronize with server after broken connection was restored, and recover transaction; applet could communicate using http, or directly with server objects via CORBA/IIOP or RMI

If there are too many orders to process synchronously, they could be put in a message queue, managed by a Message Oriented Middleware server (which guarantees message delivery or failure notification), and customers would be notified by email when the transaction is complete

The server behaves like an agent!

Page 11: Chapter 3: Programming Web Services

Chapter 3 11Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Requirements Cross-enterprise processes

Autonomy leading to updates by “whim”

Exception handling Revisions leading to updates by

necessity Conversations and long-lived

transactions Contracts among parties involved

Page 12: Chapter 3: Programming Web Services

Chapter 3 12Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Chapter 3 Summary Tools help with low-level details

Agreeing on standards is more important than the standards themselves

Should conceptualize interactions in a manner compatible with the Web architecture Can simplify from SOAP in many cases

The above is a small point anyway Bigger challenges are in ensuring larger-scale

interactions, ensuring integrity, handling exceptions, …

Sophisticated programming models are emerging


Recommended