Top Banner
Presentation 7 part 2: SOAP & WSDL
33

Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Apr 01, 2015

Download

Documents

Jamie Ruck
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Presentation 7 part 2:

SOAP & WSDL

Page 2: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 2

Outline

• Building blocks in Web Services SOA• SOAP• WSDL• (UDDI)

Page 3: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 3

Service-Oriented Architecture (SOA)

ClientClientServerServer

RegistryRegistryAbstract Architecture- Web service stackAbstract Architecture- Web service stack

Legacycode onserver

Legacycode onserver

11 22

33

Opening up for doing business (the sharing of objects) on the Internet

Page 4: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 4

Technologies for Implementing SOA

SOAP for communicationSOAP for communication WSDL for contract & bindingWSDL for contract & binding

UDDI & WSDL for registration & discoveryUDDI & WSDL for registration & discovery

Page 5: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 5

What is SOAP?

• Simple Object Access Protocol• Wire protocol similar to

– IIOP for CORBA– JRMP for RMI

• XML is used for data encoding – “text” based protocol vs. “binary” protocol

• Supports XML-based RPC

Page 6: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 6

What is Not SOAP?

• Not a component model– So it will not replace objects and components, i.e. EJB,

JavaBeans and .NET

• Not a programming language– So it will not replace Java, C# og C++

• Not a solution for all– So it will not replace other distributed computing

technologies such as RMI and CORBA

Page 7: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 7

Where is SOAP?

• W3C XML Protocol working group– SOAP 1.2 current version:

http://www.w3.org/TR/soap12/

• Microsoft, SUN, Oracle, HP, IBM all support the W3C recommendation– but there are still differences to be overcome– security issues, transactions etc.

Page 8: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 8

What does SOAP define?

• Message Envelope• Encoding Rules• RPC Convention• Binding with underlying protocols

– HTTP (which we will use in this course)– SMTP– FTP and others

Page 9: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 9

SOAP Message Format

Possible to Attach binaries (images, cryptographic material) to attachmentsPossible to Attach binaries (images, cryptographic material) to attachments

Page 10: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 10

SOAP Message Envelope

• Encoding information• Header

– Optional– Could contain context knowledge

• Security• Transaction

• Body– RPC methods and parameters– Contains application data

Page 11: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 11

Two types of communication

Page 12: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 12

SOAP RPC Request Example

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="…"

SOAP-ENV:encodingStyle="…">

<SOAP-ENV:Header>

<!-- Optional context information -->

</SOAP-ENV:Header>

<SOAP-ENV:Body>

<m:GetLastTradePrice xmlns:m=“some_URI">

<tickerSymbol>SUNW</tickerSymbol>

</m:GetLastTradePrice>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Page 13: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 13

SOAP RPC Response Example

<SOAP-ENV:Envelopexmlns:SOAP-ENV="…"SOAP-ENV:encodingStyle="…"><SOAP-ENV:Header>

<!-- Optional context information --></SOAP-ENV:Header><SOAP-ENV:Body>

<m:GetLastTradePriceResponse xmlns:m=“some_URI"><price>30.5</price>

</m:GetLastTradePriceResponse></SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Page 14: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 14

SOAP RPC composition I

• Information needed for a method call:1. The URI of the target object (marked with red)

• <SOAP-ENV:Body><m:GetLastTradePrice xmlns:m=“http://stocks.com/StockQuotes">

<tickerSymbol>SUNW</tickerSymbol>

</m:GetLastTradePrice>

</SOAP-ENV:Body>

Page 15: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 15

SOAP RPC composition II

• Information needed for a method call:1. The URI of the target object

2. The Method Name

<SOAP-ENV:Body>

<m:GetLastTradePrice xmlns:m=“http://stocks.com/StockQuotes">

<tickerSymbol>SUNW</tickerSymbol>

</m:GetLastTradePrice>

</SOAP-ENV:Body>

Page 16: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 16

SOAP RPC composition III

• Information needed for a method call:1. The URI of the target object

2. The Method Name

3. Parameters

4. Binding protocol (next slide)

<SOAP-ENV:Body>

<m:GetLastTradePrice xmlns:m=“http://stocks.com/StockQuotes">

<tickerSymbol>SUNW</tickerSymbol>

</m:GetLastTradePrice>

</SOAP-ENV:Body>

Name is not important

Name is not important

Page 17: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 17

SOAP RPC composition IV: complete SOAP RPC Request

POST /StockQuote HTTP/1.1Host: www.stockquoteserver.comContent-Type: text/xml; charset="utf-8"Content-Length: nnnnSOAPAction: "Some-URI"

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

<SOAP-ENV:Body><m:GetLastTradePrice xmlns:m=" http://stocks.com/StockQuotes">

<tickerSymbol>SUNW</tickerSymbol></m:GetLastTradePrice>

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

HTTPHTTP

EncodingEncoding

Name-spaceName-space

STEP 4: BINDING TO PROTOCOLSTEP 4: BINDING TO PROTOCOL

Page 18: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 18

Request to HelloWorld.jws

Input parameters type stringInput parameters type string

HTTP Post CallHTTP Post Call

HTTP Host TargetHTTP Host Target

Method nameMethod name

Page 19: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 19

… and the HTTP Response from Server

HTTP ResponseHTTP Response

Method ResponseMethod Response

Parameter valueParameter valueParameter nameParameter name

Apache Tomcat Server RespondingApache Tomcat Server Responding

Page 20: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 20

Issues with SOAP

• Issues with SOAP– Lack of business semantics– Insufficient functionality for business operations– Security– Reliability– Under development

• Low performance

Page 21: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 21

WSDL

• WSDL is used for describing WebServices

Page 22: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 22

What is WSDL?

• XML language for describing web services• Web service is described as

– A set of communication endpoints (ports)

• Endpoint is made of– Abstract definitions of operations and messages– Concrete binding to networking protocol and message

format

Page 23: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 23

Why WSDL?

• Enables automation of communication details between communicating partners– Machines can read WSDL– Machines can invoke a service defined in WSDL

• Note that WSDL defines only low-level aspects of Web services, however other technologies might follow …– Security– Transactions– Persistency

Page 24: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 24

WSDL Document Example

• Simple service providing stock quotes• A single operation called GetLastTradePrice• Deployed using SOAP 1.1 over HTTP• Request takes a ticker symbol of type string• Response returns price as a float

Page 25: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 25

WSDL Elements

• Types– Data type definitions– Used to describe exchanged messages– Uses W3C XML Schema as canonical type system

Page 26: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 26

WSDL Elements

• Messages– Abstract, typed definitions of data being exchanged

• Operations– Abstract description of an action– Refers to input and output messages

• Port type– Collection of operations – Resembles a Class in OOPL

Page 27: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 27

WSDL Elements

• Binding– Concrete protocol and data format for a particular Port

type– Example: SOAP 1.1, HTTP, MIME

• Port– Defines a single communication endpoint– Address for binding– URL for HTTP, email address for SMTP

• Service– Aggregate set of related ports

Page 28: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 28

HelloWorld.jws?wsdl

Page 29: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 29

Tools

• Generate WSDL document from– existing Java classes or EJB components– AXIS: Java2WSDL

• Generate SOAP messages from– WSDL document (via client stub and server skeleton)

• JAX-RPC– Part of J2EE from Sun (needs AS)

• IDE Tools:– NetBeans, Eclipse, Forte for Java, JBuilder, JDeveloper

• Microsoft:– IIS for services and Visual Studio for IDE

Page 30: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 30

UDDI

• UDDI for publishing & discovery – the SOA

Page 31: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 31

UDDI

• Universel Descrition, Discovery & Integration• UDDI defines a scheme to publish and discover

information about Webservices• Programmatic registration and discovery business

entities and their Webservices• Based on SOAP, HTTP, XML• Registry data

– Business registrations– Service type definitions

Page 32: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 32

Registration

• “ White pages”– Address, contact, and known identifiers

• “ Yellow pages”– industrial categorizations– Industry: NAICS (Industry codes - US Govt.)– Product/Services: UN/SPSC (ECMA)– Location: Geographical taxonomy

• “ Green pages”– technical information about services

Page 33: Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

Ingeniørhøjskolen i ÅrhusSlide 33

What uses UDDI?

• Tool building client (Service Consumer)– Browse or search registry– Create a service proxy

• Tool publishing the service– Generates WSDL– Construct UDDI entries

• Application that needs dynamic binding– Directly access UDDI– Query can be pre-generated