17
03/25/22 Page 1 Web Services-based Distributed System B. Ramamurthy

6/11/2015Page 1 Web Services-based Distributed System B. Ramamurthy

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

04/18/23Page 1

Web Services-based Distributed System

B. Ramamurthy

04/18/23Page 2

Web Services (Colouris)• A web service provides a service interface

enabling clients to interact with servers in a more general way than web browsers do.

• Clients access operations in the interface usually by XML messages over http.

• However other architectural models such as REST and CORBA could access WS.

• WSDL provides additional details than for standard operation: for encoding, security, communication and location.

04/18/23Page 3

Services, ports and bindings

• Service endpoint interface (SEI) 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.

04/18/23Page 4

Endpoint, Port and binding

SOAP1.1Over http

SOAP 1.1 overhttps

Other. Ex:ebXML overSMTP

Port1 port2 port3

endpoint

Web services Client

Web service

https 1.1 transportsoap1.1 messages

04/18/23Page 5

Application Architecture

Weather Client

JAX-WS Stub

JAX-WS Runtime (APIs)

Transport

Weather ServiceEndpoint impl

JAX-WS Ties

JAX-WS Runtime (APIs)

TransportSOAP/HTTP

04/18/23Page 6

WS Interoperability Infrastructure

Network

XML Messaging

Service DescriptionWSDL

SOAP

HTTP

04/18/23Page 7

WS Stack

Network

XML-based Messaging

Service Description

Service Publication

Service Discovery

Service Flow

HTTP, FTP, MQEmail, IIOP

SOAP

WSDL

UDDI

UDDI

WSFL

Secu

rity

Man

ag

em

en

t

Qu

ality

of S

erv

ice

04/18/23Page 8

WSDL

• Web Services Definition Language for definition of WS in a standard format and for publication to allow discovery by computational agents.

• Lets understand WSDL– http://www.w3.org/TR/wsdl#_wsdl– http://www.w3schools.com/wsdl/wsdl_documents.asp– http://webservices.amazon.com/

AWSECommerceService/AWSECommerceService.wsdl?

– Lets look at the components of WSDL and look at Amazon.com ECS as example

04/18/23Page 9

Anatomy of a WSDL document

Service (Name)

Porttype BindingAddress location

(URI)

Operation name

Input message

Output message

Protocol binding

Operation Location/path

Input name & type

Output name & type

Fault handling

TypeDefinition/

Target name Space/

XML Schema

04/18/23Page 10

Sample WSDL

• http://www.w3.org/2001/04/wsws-proceedings/uche/wsdl.html

04/18/23Page 11

WS 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.

04/18/23Page 12

WS 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.

04/18/23Page 13

Creation and consumption of WS

• Based on Sun’s WS discussion.• The starting point for developing a JAX-

WS web service is a Java class annotated with the javax.jws.WebService annotation. The WebService annotation defines the class as a web service endpoint. A WS method can also be created using annotation.

04/18/23Page 14

Coding WS Hello Server

package helloservice.endpoint; import javax.jws.WebService;

@WebService() public class Hello {   private String message = new String("Hello, ");   

public void Hello() {}   

@WebMethod()   public String sayHello(String name) {     return message + name + ".";   } }

04/18/23Page 15

Coding the Hello WS client

1. Uses the javax.xml.ws.WebServiceRef annotation to declare a reference to a web service. WebServiceRef uses the wsdlLocation element to specify the URI of the deployed service's WSDL file.

@WebServiceRef(wsdlLocation="http://localhost:8080/helloservice/hello?wsdl")

static HelloService service;

2. Retrieves a proxy to the service, also known as a port, by invoking getHelloPort on the service.

Hello port = service.getHelloPort();

The port implements the SEI defined by the service. 3. Invokes the port's sayHello method, passing to the service a name. String response = port.sayHello(name);

04/18/23Page 16

Development using an IDE

• An IDE supports tools for compilation, deployment, automatic generation of proxies, auto completion, auto import of packages, build tool etc.

04/18/23Page 17

Demo: Develop, deploy and consume a sample WS

• We will use Netbeans IDE (any version above 6.5 should be fine).