• No results found

Web Services.pdf

N/A
N/A
Protected

Academic year: 2020

Share "Web Services.pdf"

Copied!
35
0
0

Loading.... (view fulltext now)

Full text

(1)

Web Services

and

(2)

Web Services Evolution

Web Services are an Architectural Evolution.

What are Web Services?

Web Server

Internet

Application Server

(3)

Current distributed infrastructure

Microsoft:

– DCOM/COM+

SUN:

– Java RMI

CORBA:

– Try to be a standard specification ( but complex to use)

Disadvantages:

 Vendor Specific

 Platform Specific

 No interoperability

(4)
(5)

Introduction

Definition of Web Service

– A Web service is a software application identified by a URI, whose interfaces and binding are capable of being defined, described and discovered by XML artifacts and supports direct interactions with other software applications using XML based messages via Internet-based protocols. (W3C definition)

– A web service is a self-contained, language neutral, platform independent, and loosely coupled application. It can be described, published, located, and invoked over the Internet

– “Web services” is an effort to build a distributed computing

(6)
(7)

Characteristics

A Web Service is accessible over the Web.

Web Services communicate using platform-independent

and language-neutral Web protocols.

A Web Service provides an interface that can be called

from another program.

A Web Service is registered and can be located through

a Web Service Registry.

Web Services support loosely coupled connections

between systems.

(8)

Advantages of web services

Loose Coupling

Standard-Based (interoperability)

Flexibility

Reusability

Scalability

Reduced Complexity

Programmatically Accessible

(9)

Web Services Technologies

 XML Messaging

Simple Object Access Protocol (SOAP) - is an XML Messaging Protocol that allows software running on disparate operating systems and different environments to make Remote Procedure Calls (RPC)

 Web Services Description

Web Service Description Language (WSDL) – is a language that defines the interface of a Web service, required for interaction between a requester and a service provider

 Web Services Registry

(10)

eXtensible Markup Language

All the technologies in Web Services are XML based

– Messaging

– Description Are all in XML

– Registry

Why?

– XML is pure text with no binary data – Applications read the XML

– Applications share data using XML . Any application can talk to any other application using XML (unlike binary) irrespective of the platform

(11)

XML Document

<?XML version=“1.0” encoding=“UTF-8” standalone=“no”?>

<!–- this is an XML comment --> <books xmlns=“somename"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation=“somename M:\XML\Schemas\docbook.xsd">

<book year=“2000” book-title=“XML in Depth”>

<author>

<title>Mr.</title> John Doe </author>

<publisher> &pub </publisher> </book>

</books>

(12)

XML Rules

l Well formed

– Syntax is correct (all tags opened and closed)

l Valid

– All the elements matches the definitions written in the schema

l XML Documents (.xml) == XML Instances of the Schema (.xsd)

l DTD

– Document Type Definitions – Validates XML data against it

l XML Schema

– Alternative to DTD with added functionality. It supports other data types not supported by DTD

 Predefined Simple Types (integers,booleans,dateTime…)

 User-defined datatypes ( Complex Types)

 Validations Restrictions to types

– XML schema itself is an XML document !

l XML Processing

– Read the XML documents XML processors (Parsers)

 SAX (based on events)

 DOM ( reads the xml document and loads it in memory)

(13)

SOAP: Simple Object Access Protocol

An Internet standard specification, the goal of which is to define a platform and vendor-neutral WIRE PROTOCOL based on Internet standard protocols [HTTP & XML] to access Web Services

How do we access a service???

– With a SOAP message: Is a XML stream which is used to transmit messages via HTTP

SOAP Structure

– Envelope: contains the entire SOAP message – Header

– Body

 Message

Envelope

Header

Body

(14)

SOAP Example

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body>

<m:calculateCarPayment

xmlns:m="http://www.exadel.com/services/CarPayment.xsd">

<loanAmount xsi:type="xsd:string">5000</loanAmount> <loanTerm xsi:type="xsd:string">12</loanTerm>

<loanRate xsi:type="xsd:string">8</loanRate> </m:calculateCarPayment>

</SOAP-ENV:Body> </SOAP-ENV:Envelope>

This example sends a request for a web service method called calculateCarPayment with three different arguments

You can try that with XML SPY ( v 4.4)

(15)

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body>

<ns1:calculateCarPaymentResponse

xmlns:ns1="http://www.exadel.com/services/CarPayment.xsd" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<Result xsi:type="xsd:double">434.94</Result> </ns1:calculateCarPaymentResponse>

</SOAP-ENV:Body> </SOAP-ENV:Envelope>

Soap Example II

The response could include Fault elements to describe any error that occurred invoking the service

(16)
(17)

Soap libraries-engines

To run SOAP : – XML Spy

Soap Engine

– Apache AXIS: Is an application you include inside Tom Cat Has Java API’s that talk to SOAP

Python SOAP Libraries

– Python SOAP Libraries

 4Suite SOAP, administered by Fourthought

 SOAPy, administered by Adam Elman

 SOAP.py, a project of the Web services for Python project

SOAP.py 0.9.5 download from http://sourceforge.net/projects/pywebsvcs

 soaplib, by Secret Labs

 Orchard, by Ken MacLeod

 PySOAP, administered by Dave Warner

The good part of this is that SOAP is completely transparent to developers when trying to access web services

(18)

WSDL Web Service Definition Language

l WSDL is an XML-based language used to define Web Services

and describe how to access them.

l It is the external interface for a client (IDL)

 WSDL includes information about

– Data types it uses

– Parameters it requires and returns – Groupings of functionality

(19)

WSDL Structure

 <definition> - Root element

 <types> - Provides data type definitions

 <message> - Represents the abstract definition of the

data being transmitted

 <portType> - Defines a set of abstract operations

 <binding> - Specifies concrete protocol and data format

specifications for the operations and messages defined by a particular portType

 <port> - Specifies an address for a binding

 <service> - Used to aggregate a set of related ports

(20)

UDDI Universal Description Discovery and Integration

Marketplaces, search engines, and business apps query the

registry to discover services at other companies

3.

Business uses this data to facilitate easier integration with each other over the Web

4. 2.

• Businesses populate

the registry with descriptions of the services they support

Business Descriptions

SW companies, standards bodies, and programmers populate the registry with descriptions of different types of services

1.

(21)
(22)

UDDI Registries

https://uddi.ibm.com/testregistry/registry.html

http://demo.alphaworks.ibm.com/browser/

http://uddi.microsoft.com

(23)

Web Service Composition

The process of developing a

composite web services

is

called

Web

Service Composition

.

Composition

is the ability to provide

value-added

services

through integration of other web service

components

(24)

Web Service Composition Examples

Web Users

– Make the travel arrangements for a conference – Buy all the DVDs in Star Wars series

– Arrange doctor and hospital appointments for relative

Pervasive computing

– E-mail my presentation to all the people in the conference room and project it on the screen

B2B Applications

– Purchase the items … from suppliers that satisfy … and arrange the shipment so that delivery will be done in … days without

exceeding the cost limit

Grid computing

(25)

Web Services Usage Scenarios

Remote Web Service Repository Remote Web service Remote Web service Remote Web service Service Requestor Individual Service Invocation Composite Service Execution Publish Web Services Web Service Lookup Invoke WS Compose Abstract Process Web Service Lookup Execute (WSDL) (UDDI)

WSFL Service Providers

Service Broker

(26)

Web Service Composition Approaches

Manual vs. Automatic

– Manual composition is performed by means of employees who have access to the elementary services

– Automatic implies that a software agent performs composition based on some predefined algorithm

Static vs. Dynamic

(27)

Why Dynamic Web Service Composition

Greater Flexibility

The customization of software, based on individual needs of a user, can be made dynamic

New Services can be created at runtime

The capabilities of the application can be extended at runtime

Users are not interrupted during upgrades of applications

Users can continue to interact with the old services while composition of new services is taking place

Unlimited Set of Services

(28)

28

Composition techniques 1/3

Composition Language

A combination of architectural description language

(ADL), a scripting language, a glue language, and a

coordination language

Pros

 Specifically designed to assemble components

 Uses components that have standardized interfaces

 Define higher level abstraction to better describe composition

Cons

 More complex in comparing with other techniques

 Recursive composition is not possible

(29)

29

Composition techniques 2/3

Workflow Driven Composition

(30)

30

Composition techniques 2/3

Workflow Driven Composition

Pros

 Users can participate in composition

 Simple monitoring and recovery procedures

 Recovery plans can be included in the workflow

 Easier to impose distributed execution of composite services

Cons

 Composed service can’t be advertised

 Recursive composition becomes more difficult

(31)

31

Composition techniques 3/3

Ontology Driven Composition

 The ontological descriptions and relationships of web services with other services are used to automatically and semi-automatically composing web services

Place Building Room Object Mobile phone Person Prof OwnedBY LocatedIn PartOf PartOf

Park Stationary

(32)

32

Composition techniques 3/3

Ontology Driven Composition

 Pros

 Consider semantics

 Supports easier forms of requesting composition (English-like queries)

 Can be integrated with any other technique  Enables distributed composition and execution

 Cons

 Too hard to verify the effectiveness of the ontology  Domain specific

 No agreed-upon taxonomy as the foundation of the ontology  Assumes that elementary services are semantically

represented

(33)

Orchestration vs. Choreography

There are two ways to compose web services: either

through orchestration or choreography.

 In orchestration, the involved web services are under control

(34)

Choreography, in contrast, does not depend on a central orchestrator.

 Each Web service that participates in the choreography has to know exactly when to become active and with whom to interoperate.

 Choreography is based on collaboration and is mainly used to exchange messages in public business processes.

(35)

Orchestration vs. Choreography

Orchestration

A Single Director In Control

BPEL follows the

orchestration paradigm

Choreography

Defines Interaction.

WSCI and WS-CDL are

https://uddi.ibm.com/testregistry/registry.html http://demo.alphaworks.ibm.com/browser/

Figure

Figure 1. A client invoking a Web service

References

Related documents

[r]

We report a rare finding of two male breast cancer patients with HER2-positive breast cancer who also developed thyroid cancer.. We reviewed 45 male breast cancer patients treated

Although the average wage penalty associated with inactivity is insignificant over the 1991-1997 period, being made redundant and then experiencing a spell of inactivity in an

our becoming. Inter-activity is therefore seen as our fundamental way of being, our way of relating and existing through doing. If we extend this logic to interactive artefacts,

Dead wood inventories have traditionally focused on coarse woody debris (CWD, base diameter ≥ 10 cm); partly because the large logs comprise most biomass, and partly because a

Then it may approach the station with visual information, but in connecting to the station the vehicle needs more accurate sensors like wire or magnet spot guidance.. Also

creditor. ƒ “Creditor” means any person who offers or extends credit creating a debt or to whom a debt is owed, but does not include any person to the extent that he receives

Solo and Ensemble (Open to all chorus students; required for Advanced Chorus &amp; Show Choir) In February, students interested in being adjudicated as a soloist or as a part of a