Web Services - PowerPoint PPT Presentation

About This Presentation
Title:

Web Services

Description:

Aplicaciones auto-contenidas, auto-escritas que pueden ser publicadas, ... element name='price' type='float'/ /complexType /element /schema /types 31 ... – PowerPoint PPT presentation

Number of Views:25
Avg rating:3.0/5.0
Slides: 72
Provided by: jimku94
Category:
Tags: services | web

less

Transcript and Presenter's Notes

Title: Web Services


1
Web Services
  • Index
  • Overview
  • SOAP
  • WSDL
  • UDDI
  • Performance

basado en UPC-DAC/FIB-AAD Jordi Torres v2.0-05/04
2
Web Services
  • What are web services?
  • Web services are modular web applications that
    provide data and services to other applications
    over the web
  • Web services apply web technologies such as HTTP
    and XML to the concepts of distributed computing
    technologies such as CORBA and DCOM
  • Aplicaciones auto-contenidas, auto-escritas que
    pueden ser publicadas, localizadas e invocadas a
    través de la Web

3
Web Service Examples
  • A stock quote service.
  • A weather service, a map service, a web search
    service
  • any composition of Web services.
  • e.g. Dollar Rent-A-Car
  • Create standard interfaces so business partners
    could tap into the company's car reservation
    system.
  • Google, Amazon,
  • ?http//www.google.com/apis/

4
What are Web Services?
  • Todays web
  • Web designed for application to human
    interactions
  • Information sharing a distributed content
    library.
  • Built on very few standards http html
  • Shallow interaction model very few assumptions
    made about computing platforms.
  • Enabled B2C e-commerce.
  • Non-automated B2B interactions.
  • Web services is an effort to build a
    distributed computing platform for the Web.
  • Services available via the Web.
  • Meant mainly for application to application
    communication (as opposed to users directly)
  • Enables Business-to-Business transactions.
  • E.g., a web service is contacted on a URL using
    the SOAP protocol over HTTP.

5
Complete picture of distributed applications
(using WS)
6
Core technologies used for WS
  • XML
  • SOAP
  • Simple Object Access Protocol
  • a framework for exchanging XML-based information
    in a network
  • the currently most hyped XML/Web service
    technology
  • WSDL
  • Web Service Description Language
  • an XML-based language for describing network
    services
  • WSDL descriptions of capabilities and locations
    of services
  • like an interface description language for Web
    services
  • communication using SOAP or direct HTTP
  • UDDI
  • Universal Description, Discovery, and Integration
  • provides a registry mechanism for clients and
    servers to find each other
  • uses SOAP for communication

7
Otra definición
  • Programas accesibles en Internet que exponen su
    funcionalidad recibiendo/enviando mensajes SOAP a
    través de HTTP(s) y describen su interfaz en WSDL

8
The Web Services Stack
ServicePublication/Discovery
UDDI
ServiceDescription
WSDL
XML Messaging
SOAP
Transport Network
HTTP, SMTP, MQSeries, etc.
9
(No Transcript)
10
What is SOAP?
  • SOAP is a lightweight protocol for exchange of
    information in a decentralized, distributed
    environment using XML.

11
The Simple Object Access Protocol (SOAP)
  • XML-based protocol for messaging and RPC
  • Can works on top of existing transports
  • HTTP, SMTP, FTP, MQSeries
  • Use of XML schema for encoding typed values
  • Language independent
  • Generation of SOAP messages available in popular
    programming language
  • C, Java, Perl

12
SOAP FORMATO GENERAL
Envelope
Header
Header Key
Header Key
Body
13
SOAP Formato general
  • SOAP especifica el formato de mensajes
  • Envelope datos globales (codificación, espacio
    de nombres, ...)
  • contiene header (opcional) body (obligatorio)
  • Bodycontiene datos en formato XML
  • Header contiene meta-informaticón

14
Sample HTTP Interaction
(C) Prof. Dr. Frank Leymann, IBM
15
HTTP POST Invoking Code
(C) Prof. Dr. Frank Leymann, IBM
16
A Simple SOAP RPC
  • ( SOAP Message Embedded in HTTP Request)
  • POST /StockQuote HTTP/1.1Host
    www.stockquoteserver.comContent-Type text/xml
    charset"utf-8"Content-Length nnnnSOAPAction
    "Some-URI"ltSOAP-ENVEnvelope  xmlnsSOAP-ENV"h
    ttp//schemas.xmlsoap.org/soap/envelope/"  SOAP-E
    NVencodingStyle"http//schemas.xmlsoap.org/soap/
    encoding/"gt   ltSOAP-ENVBodygt       ltmGetLastTr
    adePrice xmlnsm"Some-URI"gt           ltsymbolgtDI
    Slt/symbolgt       lt/mGetLastTradePricegt   lt/SOAP
    -ENVBodygtlt/SOAP-ENVEnvelopegt

Object Endpoint
Method name
Input parameter
17
A simple soap response
  • ( SOAP Message Embedded in HTTP Response)
  • HTTP/1.1 200 OKContent-Type text/xml
    charset"utf-8"Content-Length
    nnnnltSOAP-ENVEnvelope  xmlnsSOAP-ENV"http//
    schemas.xmlsoap.org/soap/envelope/"  SOAP-ENVenc
    odingStyle"http//schemas.xmlsoap.org/soap/encodi
    ng/"/gt   ltSOAP-ENVBodygt       ltmGetLastTradePr
    iceResponse xmlnsm"Some-URI"gt           ltPricegt
    34.5lt/Pricegt       lt/mGetLastTradePriceResponsegt
       lt/SOAP-ENVBodygtlt/SOAP-ENVEnvelopegt

18
(three) standard aspects of SOAP
  • Overall message format
  • A SOAP message is an envelope containing zero
    or more headers and exactly one body.
  • The SOAP encoding rules
  • defines a serialization mechanism that can be
    used to exchange instances of application-defined
    datatypes. ( based on XSD)
  • The SOAP RPC representation
  • defines a convention that can be used (optional)
    to represent remote procedure calls and responses
    (if not, message-oriented style)

19
Working example A soap request
  • POST /servlet/rpcrouter HTTP/1.1
  • Host www.messages.com
  • Content-Type text/xml charset"utf-8"
  • Content-Length nnnn
  • SOAPAction ""
  • ltSOAP-ENVEnvelope
  • xmlnsSOAP-ENV"http//schemas.xmlsoap.org/soap/e
    nvelope/"
  • ltSOAP-ENVBodygt
  • ltns1getMessage xmlnsns1"urnNextMessage"
  • SOAP-ENVencodingStyle"http//schemas.xmlsoap.o
    rg/soap/encoding/"gt
  • ltUserID xsitype"xsdstring"gtJDoelt/UserIDgt
  • ltPassword xsitype"xsdstring"gt0JDOE0lt/Password
    gt
  • lt/ns1getMessagegt
  • lt/SOAP-ENVBodygt
  • lt/SOAP-ENVEnvelopegt

20
Working example soap response
  • HTTP/1.1 200 OK
  • Content-Type text/xml charset"utf-8"
  • Content-Length nnnn
  • ltSOAP-ENVEnvelopegt
  • xmlnsSOAP-ENV"http//schemas.xmlsoap.org/soap/e
    nvelope/"
  • ltSOAP-ENVBodygt
  • ltns1getMessage xmlnsns1"urnNextMessage"
  • SOAP-ENVencodingStyle"http//schemas.xmlsoap.or
    g/soap/encoding/"gt
  • ltreturn xsitype"xsdstring"gtCall mom!lt/returngt
  • lt/ns1getMessagegt
  • lt/SOAP-ENVBodygt
  • lt/SOAP-ENVEnvelopegt

21
SOAP Endpoint Reference
  • POST /servlet/rpcrouter HTTP/1.1
  • Host www.messages.com
  • Content-Type text/xml charset"utf-8"
  • Content-Length nnnn
  • SOAPAction ""
  • ltSOAP-ENVEnvelope
  • xmlnsSOAP-ENV"http//schemas.xmlsoap.org/soap/e
    nvelope/"
  • ltSOAP-ENVBodygt
  • ltns1getMessage xmlnsns1"urnNextMessage"
  • SOAP-ENVencodingStyle"http//schemas.xmlsoap.o
    rg/soap/encoding/"gt
  • ltUserID xsitype"xsdstring"gtJDoelt/UserIDgt
  • ltPassword xsitype"xsdstring"gt0JDOE0lt/Password
    gt
  • lt/ns1getMessagegt
  • lt/SOAP-ENVBodygt
  • lt/SOAP-ENVEnvelopegt

85.34.235.95
80
/servlet/rpcrouter/getMessage
22
SOAP client-server interaction
23
The Apache eXtensible Interaction System (AXIS)
  • A very flexible SOAP engine from Apache
  • Open and pluggable architecture
  • Design to cope with various deployment
    configuration
  • From very simplistic to highly sophisticated
    configurations
  • The Java Web Services facility (JWS)
  • Drop-in development
  • Simplest and quickest way to deploy a Java-base
    Web Service
  • Rename source file from xxx.java to xxx.jws
  • Drop xxx.jws into JWS directory

24
APIs de Java
  • SAAJ (SOAP with Attachment API for Java)
  • tratar mensajes SOAP como objetos Java
  • JAX-RPC (Java API for XML based RPC)
  • WSDL/XML lt-gt Java
  • API para cliente WSDL, Invocación, proxy
    dinámico
  • JWSDL
  • acceso a descripciones WSDL
  • JAXR (Java API for XML registries)
  • acceso a registros de servicios Web
  • ...

25
Creación de un Servicio Web
  • Utilizar JWS
  • Con limitaciones (no package, ...)
  • WSDD (Web Service Deployment Descriptor)

26
Creación de un cliente
  • Acceder a WSDL
  • http ....Calculator.jws?wsdl
  • -gt almacenar Calculator.wsdl
  • Generar stubs
  • java org.apache.axis.wsdl.WSDL2Java p
    Calculator Calculator.wsdl
  • Clases generadas ls Calculator/ .java
  • Compilar javac Calculator/ .java
  • Compilar cliente javac ClienteCalculator.java
  • Ejecutar cliente java ClienteCalculator

27
What is WSDL?
  • SOAP
  • specifies the communication between a requester
    and a provider
  • WSDL
  • describes the services offered by the provider
    (an endpoint)
  • and might be used as a recipe to generate the
    proper SOAP messages to access the services.
  • WSDL describes network services by using an XML
    grammar.
  • A WSDL document has a role similar to an IDL file
    in CORBA or the Remote Interface in a Java RMI
    implementation.

28
Complete picture of distributed applications
(using WS)
29
WSDL
service
port
1-M
binding
1-1
1-M
port types
operation
1-1
message
1-M
types
1-M
30
Types xSchema definition of data
Service
Port
Binding
lttypesgt ltschema targetNamespace"http//example.c
om/stockquote.xsd" xmlns"http//www.w3.org/2000
/10/XMLSchema"gt ltelement name"TradePriceRequest
"gt ltcomplexTypegt ltelement
name"tickerSymbol" type"string"/gt lt/complexTy
pegt lt/elementgt ltelement name"TradePrice"gt
ltcomplexTypegt ltelement name"price"
type"float"/gt lt/complexTypegt lt/elementgt lt/s
chemagt lt/typesgt
Port Types
Operations
Messages
Types
31
Messages meaningful collections of Types
Service
Port
Binding
Port Types
Operations
ltmessage name"GetLastTradePriceInput"gt ltpart
name"body" element"xsd1TradePriceRequest"/gt lt/m
essagegt ltmessage name"GetLastTradePriceOutput"gt
ltpart name"body" element"xsd1TradePrice"/gt lt/m
essagegt
Messages
Types
32
Operations available Methods
Service
Port
Binding
Port Types
Operations
ltoperation name"GetLastTradePrice"gt ltsoapoperat
ion soapAction"http//example.com/GetLastTrade
Price"/gt ltinputgt ltsoapbody use"literal"/gt lt/
inputgt ltoutputgt ltsoapbody use"literal"/gt lt/o
utputgt lt/operationgt
Messages
Types
33
Port Types XML in/out for specific methods
Maps Operations to Messages
Service
Port
Binding
ltportType name"StockQuotePortType"gt ltoperation
name"GetLastTradePrice"gt ltinput
message"tnsGetLastTradePriceInput"/gt ltoutput
message"tnsGetLastTradePriceOutput"/gt lt/operati
ongt lt/portTypegt
Port Types
Operations
Messages
Types
34
Binding Maps Protocols to Methods (Http, etc.)
Service
Port
ltbinding name"StockQuoteSoapBinding type"tnsS
tockQuotePortType"gt ltsoapbinding
style"document transport"http//schem
as.xmlsoap.org/soap/http"/gt ltoperation
name"GetLastTradePrice"gt ltsoapoperation
soapAction"http//example.com/GetLastTradePric
e"/gt ltinputgt ltsoapbody use"literal"/gt lt/i
nputgt ltoutputgt ltsoapbody use"literal"/gt lt
/outputgt lt/operationgt lt/bindinggt
Binding
Port Types
Operations
Messages
Types
35
Port Maps URLs to Methods
Service
ltport name"StockQuotePort" binding"tnsStockQuot
eBinding"gt ltsoapaddress location"http//example
.com/stockquote"/gt lt/portgt
Port
Binding
Port Types
Operations
Messages
Types
36
Service Packages ports bindings
Service
ltservice name"StockQuoteService"gt ltdocumentation
gtMy first servicelt/documentationgt ltport
name"StockQuotePort" binding"tnsStockQuoteB
inding"gt ltsoapaddress location"http
//example.com/stockquote"/gt lt/portgt lt/servicegt
Port
Binding
Port Types
Operations
Messages
Types
37
Document structure of WSDL
  • ltdefinitionsgt element the root of any WSDL
  • The name attribute specifies the name of the Web
    Service (usually it corresponds to the file
    name).
  • it contains a set of namespace definitions that
    are used throughout the document.
  • ...
  • ltdefinitions name 'weatherservice
    xmlns'http//schemas.xmlsoap.org/wsdl/'gt
  • lt/definitionsgt

38
Document structure of WSDL
  • ltdefinitionsgt contains other elements
  • elements
  • types
  • messages
  • portType
  • bindings
  • services
  • ...
  • Each element within the document may contain a
    ltdocumentationgt element to provide some human
    readable explanation of the element that is
    specified.
  • In addition, all the elements contain an
    attribute name serving as an identifier.

39
Document structure of WSDL
  • lttypesgt element
  • Provide data types definitions
  • All data type definitions relevant for sending
    and receiving the messages described
  • The specification suggests using XML schema
    definitions.

lttypesgt ltschema targetNamespace"http//add
.fib.upc.es/symbol.xsd" xmlns"http//www.w3.org/
2000/10/XMLSchema"gt ltelement name"exampleType"gt
... lt/elementgt ... lt/schemagt lt/typesgt
40
Document structure of WSDL
  • ltmessagegt element
  • specifiy the data that will be communicated
    between a requester and a service
  • may appear multiple times and consists of a name
    and one or more ltpartgt elements.
  • The parts specify the contents of the message.

ltmessage name'Weather.GetTemperature'gt ltpart
name'zipcode' type'xsdstring'/gt ltpart
name'celsius' type'xsdboolean'/gt lt/messagegt
ltmessage name'Weather.GetTemperatureResponse'gt
ltpart name'Result' type'xsdfloat'/gt
lt/messagegt
41
Document structure of WSDL
  • ltoperationgt element
  • In order to tie the defined messages together as
    a request-response pair corresponding to a method
    call.
  • An operation specifies which message is the input
    and which message is the output.

ltoperation name'GetTemperature'gt ltinput
message'wsdlnsWeather.GetTemperature' /gt
ltoutput message'wsdlnsWeather.GetTemperatureRes
ponse' /gt lt/operationgt
42
Document structure of WSDL
  • ltportTypegt element
  • The collection of all operations (i.e. methods)
    exposed by your service

ltportType name'WeatherSoapPort'gt
ltoperation name'GetTemperature'gt
ltinput message'wsdlnsWeather.GetTemperature'
/gt ltoutput message'wsdlnsWeather.GetTemp
eratureResponse' /gt lt/operationgt lt!--
other operations would go here --gt lt/portTypegt
43
Document structure of WSDL
  • ltbindinggt element
  • to bind the operation to the SOAP protocol.
  • The elements presented so far described our
    operation in a generic way (Nothing has been said
    about a concrete implementation).
  • Next to a name attribute it contains a type
    attribute that references a portType and provides
    predefined binding for protocols such as SOAP,
    HTTP, and MIME.

ltbinding name'WeatherSoapBinding'
type'wsdlnsWeatherSoapPort' gt . lt/bindinggt
44
Document structure of WSDL
  • ltbindinggt element (cont)
  • Binding to SOAP
  • Inside the ltbindinggt element you have a WSDL
    SOAP extension element called ltsoapbindinggt
    which is used to specify the transport protocol
    youre using (SOAP can be used over HTTP, SMTP,
    or possibly any other transport) and the style of
    request (rpc and document are the two styles).

ltsoapbinding style'rpc' transport'http//sc
hemas.xmlsoap.org/soap/http' /gt
45
Document structure of WSDL
  • ltbindinggt element (cont)
  • Then for each operation that this service
    exposes, you specify the value of the SOAPAction
    that is used for the HTTP header of SOAP message

ltbinding name'WeatherSoapBinding'
type'wsdlnsWeatherSoapPort' gt
ltsoapbinding style'rpc' transport'http//sch
emas.xmlsoap.org/soap/http' /gt ltoperation
name'GetTemperature' gt ltsoapoperation
soapAction'http//tempuri.org/action/Weather.GetT
emperature' /gt .... lt/operationgt
lt/bindinggt
46
Document structure of WSDL
  • ltbindinggt element (cont)
  • There has to be at least one binding for every
    portType.
  • In order to specify how the input and output
    messages of this operation are encoded, there is
    an operation element having three subelements
    input, output, and fault. Each operation
    corresponds to an operation in the portType
    element.

ltbinding name'WeatherSoapBinding'
type'wsdlnsWeatherSoapPort' gt
ltsoapbinding style'rpc' transport'http//sche
mas.xmlsoap.org/soap/http' /gt ltoperation
name'GetTemperature' gt ltsoapoperation
soapAction'http//tempuri.org/action/Weather.GetT
emperature' /gt ltinputgt
ltsoapbody use'encoded' namespace'http//tem
puri.org/message/' encodingStyle'http//sch
emas.xmlsoap.org/soap/encoding/'/gt
lt/inputgt ltoutputgt
ltsoapbody use'encoded' namespace'http//tem
puri.org/message/' encodingStyle'http//sch
emas.xmlsoap.org/soap/encoding/'/gt
lt/outputgt lt/operationgt lt/bindinggt
47
Document structure of WSDL
  • ltservicegt and ltportgt element
  • A service is a set of related ports.
  • The binding is specified within the port element.
  • In order to bind to the SOAP protocol a
    ltsoapaddressgt is defined.
  • It contains a name and a location that defines an
    address of the same type as the transport
    specified in the soapbinding element. That means
    that we have to define a HTTP address.
  • ? See the Web Service Example

48
WSDL Structure Overview
  • portType
  • Abstract definition of a service (set of
    operations)
  • Multiple bindings per portType
  • How to access it
  • Ports
  • Where to access it

Service
Port (e.g. http//host/svc)
Port
Binding (e.g. SOAP)
Binding
Abstract interface
portType
operation(s)
inMesage
outMessage
49
WSDL Example
  • float WeatherGetTemperature(String zipCode,
    bool celsius)
  • if (celsius)
  • return 21.7
  • else
  • return 71.06

50
WSDL Example Defining Services
  • You can think of the class as the Web service and
    the GetTemperature method as an operation on that
    service. To describe this service, you use the
    WSDL ltservicegt element.
  • ltdefinitions name 'weatherservice
    xmlns'http//schemas.xmlsoap.org/wsdl/'gt
  • ltservice name'WeatherService' gt
  • lt/servicegt
  • lt/definitionsgt

51
WSDL Example Defining Services (cont.)
  • Each service is defined using a service element.
    Inside the service element, you specify the
    different ports on which this service is
    accessible.
  • The port definition would be like this
  • ltport name'WeatherSoapPort' binding'wsdlnsWeat
    herSoapBinding' gt
  • ltsoapaddress
  • location'http//localhost/demos/wsdl/devxpert/w
    eatherservice.asp' /gt
  • lt/portgt

52
WSDL Example Defining Services (cont.)
  • A Web service does not have to be exposed using
    SOAP. For example, if your Web service is exposed
    via HTTP GET, the port element would contain an
    lthttpaddress/gt element similar to this
  • lthttpaddress location"http//localhost/demos/w
    sdl/devxpert/weatherGET.asp"/gt
  • A Web service may be accessible on many ports.
    For example, you might make your service
    available via SOAP and HTTP GET and possibly even
    via SMTP. For this Web service, you would have
    three ports each one with a different name.

53
WSDL Example Whats Your Message? (cont.)
  • To use Web services in a remote procedure call
    (RPC) model, there are two messages you must
    describe.
  • To describe the message structures, you use the
    WSDL ltmessagegt element. Each ltmessagegt contains
    zero or more ltpartgt elements. A ltpartgt
    corresponds to a parameter or a return value in
    the RPC call.
  • ltmessage name'Weather.GetTemperature'gt
  • ltpart name'zipcode' type'xsdstring'/gt
  • ltpart name'celsius' type'xsdboolean'/gt
  • lt/messagegt
  • ltmessage name'Weather.GetTemperatureResponse'gt
  • ltpart name'Result' type'xsdfloat'/gt
  • lt/messagegt

54
WSDL Example Port Types and Operations
  • An operation specifies which message is the input
    and which message is the output like this
  • ltoperation name'GetTemperature'gt
  • ltinput message'wsdlnsWeather.GetTemperatu
    re' /gt
  • ltoutput message'wsdlnsWeather.GetTemperat
    ureResponse' /gt
  • lt/operationgt

55
WSDL Example Port Types and Operations (cont.)
  • The collection of all operations (i.e. methods)
    exposed by your service is called a portType and
    is defined using the WSDL ltportTypegt element like
    this
  • ltportType name'WeatherSoapPort'gt
  • ltoperation name'GetTemperature'gt
  • ltinput message'wsdlnsWeather.GetTemperat
    ure' /gt
  • ltoutput message'wsdlnsWeather.GetTempera
    tureResponse' /gt
  • lt/operationgt
  • lt!-- other operations would go here --gt
  • lt/portTypegt

56
WSDL Example Binding It All Together
  • We are now making a transition from abstract data
    types, messages, and operations to concrete
    physical representation of messages on the wire.
    To define the concrete aspects of operations, you
    use the WSDL ltbindinggt element
  • ltbinding name'WeatherSoapBinding'
    type'wsdlnsWeatherSoapPort' gt
  • .
  • lt/bindinggt

57
WSDL Example Binding It All Together (cont.)
  • Inside the ltbindinggt element you have a WSDL SOAP
    extension element called ltsoapbindinggt which is
    used to specify the transport protocol youre
    using (SOAP can be used over HTTP, SMTP, or
    possibly any other transport) and the style of
    request (rpc and document are the two styles).
    For example
  • ltsoapbinding style'rpc'
  • transport'http//schemas.xmlsoap.org/soap/http'
    /gt

58
WSDL Example Binding It All Together (cont.)
  • Then for each operation that this service
    exposes, we specify the value of the SOAPAction
    HTTP header
  • ltbinding name'WeatherSoapBinding'
    type'wsdlnsWeatherSoapPort' gt
  • ltsoapbinding style'rpc'
    transport'http//schemas.xmlsoap.org/soap/http'
    /gt
  • ltoperation name'GetTemperature' gt
  • ltsoapoperation soapAction'http//tempuri
    .org/action/Weather.GetTemperature' /gt
  • ....
  • lt/operationgt
  • lt/bindinggt

59
SOAP client-server interaction(rep)
60
WSDL Example Binding It All Together (cont.)
  • Finally, we must specify how the input and output
    messages of this operation are encoded, the
    complete binding looks like this
  • ltbinding name'WeatherSoapBinding'
    type'wsdlnsWeatherSoapPort' gt
  • ltsoapbinding style'rpc'
    transport'http//schemas.xmlsoap.org/soap/http'
    /gt
  • ltoperation name'GetTemperature' gt
  • ltsoapoperation soapAction'http//tempur
    i.org/action/Weather.GetTemperature' /gt
  • ltinputgt
  • ltsoapbody use'encoded'
    namespace'http//tempuri.org/message/'
  • encodingStyle'http//schemas.xmlsoap.org/so
    ap/encoding/'/gt
  • lt/inputgt
  • ltoutputgt
  • ltsoapbody use'encoded'
    namespace'http//tempuri.org/message/'
  • encodingStyle'http//schemas.xmlsoap.org/so
    ap/encoding/'/gt
  • lt/outputgt
  • lt/operationgt
  • lt/bindinggt

61
What is UDDI?
  • Universal Description, Discovery, and Integration
    (UDDI) is a standard designed to provide a
    searchable directory of businesses and their Web
    Services.
  • Thus, it represents the service broker that
    enables service requesters to find a suitable
    service provider.

62
Complete picture of distributed applications
(using WS)
63
What is UDDI?
  • To get access to the UDDI services, the UDDI
    directory exposes a set of APIs in the form of a
    SOAP-based Web Service.
  • UDDI APIs
  • Publication API - Authenticated set of operations
    that allow organizations to publish businesses,
    services, service type specifications
  • Inquiry API - Non authenticated public set of
    operations that allows users to extract
    information out of the UDDI registry.

64
What is UDDI?
  • UDDI classifies businesses and services according
    to standard taxonomies
  • Why Classification ?
  • Searches based on keywords alone, could return a
    large set of hits for a particular search
  • Classification of services and businesses allows
    to perform better searches
  • Registry Data
  • White Pages
  • Yellow Pages
  • Green Pages
  • ServiceType Registrations

65
What is UDDI?
  • (In many ways UDDI is designed like a phone
    book)
  • White Pages
  • contains business name, text description, contact
    info and other related info.
  • contains classification information about the
    business entity and types of the services the
    entity offers.
  • Searches can be performed to locate businesses
    which service a particular industry or product
    category, or that are located within a specific
    geographic region.
  • Green Pages
  • contains information about how to invoke the
    offered services.
  • If a business entity were to offer its catalog
    online, its Green
  • pages entry would have a reference to its
    catalog URL

White Pages
Yellow Pages
Green Pages
66
Web Service Deployment
ServiceProvider
Write Application
Deploy Application As Service
Remote UDDI Web Service Registry
1
WSDL File Generation and Registration
WSDL
SOAP Request
Start Listener
67
Dynamic Service Invocation
Service Requestor
2
Remote UDDI Web Service (Registry)
SOAP Request
Automated Web Service Lookup
3
WSDL(s)
Automatic Service Selection
(SOAP Response)
1
Dynamic Client Code Generation
Remote Web service
4
SOAP Request
Publish Web Service
Web Service Invocation
5
SOAP Response
68
  • Business registry nodes
  • http//uddi.microsoft.com
  • http//uddi.ibm.com
  • http//uddi.ltcompanynamegt.com
  • ...

69
Web Services Performance
  • New technologies are often marketed with grand
    promises to solve business problems, but ...
    PERFORMANCE?
  • Performance criteria
  • simultaneous requests,
  • latency in responding to requests,
  • levels of operational degradation due to
    increases in transaction loads.
  • ...

70
Web Services Performance
  • Web service component stack

71
Web Services Performance
  • Impact of parsing and marshalling

(source http//www-106.ibm.com/developerworks/lib
rary/ws-best9)
Write a Comment
User Comments (0)
About PowerShow.com