SlideShare una empresa de Scribd logo
1 de 69
Descargar para leer sin conexión
Topic 3

    WSDL and WADL and UDDI



Assoc.Prof. Dr. Thanachart Numnonda
       www.imcinstitute.com
            August 2010
Agenda

   What is and Why WSDL?
   WSDL Elements
   WSDL Transmission Patterns
   WADL Basics and Elements
   UDDI Basics and Data Types


                                 2
What is and why WSDL?




                        3
What is WSDL?
• XML language for describing web services
• Web service is described as
   – A set of communication endpoints (ports)
• Endpoint is made of two parts
   – Abstract definitions of operations and messages
   – Concrete binding to networking protocol (and corresponding
     endpoint address) and message encoding
• Why this separation?
   – Enhance reusability (of the abstract part, for example)

                                                               4
WSDL Service Description
• WSDL is “the interface for Web Services” describing:
• What a service does - the operations (methods) the
  service provides, and the data (arguments and returns)
  needed to invoke them.
• How a service is accessed - details about data formats
  and protocols necessary to access the service
  operations.
• Where a service is located - details of the protocol-
  specific network address, such as a URL.
                                                       5
Where is WSDL Used?
Web service                                               Web service
   W
 requester                                                 provider
                                 (4) Invoke web
      e                               service
                                                        Servlets       JAXR
      b
Business partner
 or other system
                                 soap request

                                                               WSDL
                                                              Document


                                (3) Retrieve WSDL
                                     definition

                                 Soap request


           (2) Search for web
                 service
                                                    (1) Register web
                                 UDDI                    service
             Soap request
                                  UDDI
                                service              Soap request
                                 Registry


                                                                              6
Why WSDL?




       source: WSDL 1.2 primer   7
Why WSDL? (cont.)
• Enables automation of communication details
  between communicating partners
  – Machines can read WSDL
  – Machines can invoke a service defined in WSDL
• Discoverable through registry
• Arbitration
  – 3rd party can verify if communication conforms to
    WSDL
                                                        8
WSDL Document Structure
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl"
            targetNamespace="your namespace here"
            xmlns:tns="your namespace here"
            xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap">
    <wsdl:types>
        <xs:schema targetNamespace="your namespace here (could be another) "
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            <!-- Define types and possibly elements here -->
        </schema>
    </wsdl:types>
    <wsdl:message name="some operation input">
        <!-- part(s) here -->
    </wsdl:message>
    <wsdl:message name="some operation output">
        <!-- part(s) here -->
    </wsdl:message>
    <wsdl:portType name="your type name">
        <!-- define operations here in terms of their messages -->
    </wsdl:portType>
    <wsdl:binding name="your binding name" type="tns:port type name above">
        <!-- define style and transport in general and use per operation -->
    </wsdl:binding>
    <wsdl:service>
        <!-- define a port using the above binding and a URL -->
    </wsdl:service>
</wsdl:definitions>
                                                                               9
WSDL Elements




                10
WSDL Structure
   Abstract part
       –   Types
       –   Message
       –   Operation
       –   Port Type
   Concrete part
       –   Binding
       –   Port
       –   Service               11
WSDL Structure - Abstract
   port type - logical collection of
    related operations
   operation - abstract description
    of an action supported by the
    service
   message - data exchanged in a
    single logical transmission
   types - data structures that will
    be exchanged as parts of
    messages
                                        12
WSDL Structure - Concrete
   interface bindings - message
    encoding and protocol binding
    for all operations and messages
    defined in a given porttype
   ports - combine the interface
    binding information with a
    network address specified by a
    URI
   services - are logical groupings
    of ports
                                       13
WSDL Information Model




                         14
WSDL : Example




                 15
WSDL : Example (cont.)




                         16
WSDL Elements : Definitions
   name attribute - corresponds to the name of the
    web service. It is only for documentation and is
    optional
   targetNamespace attribute - a URI for the entire
    WSDL file
   default namespace - all elements without a
    namespace prefix, such as message or portType,
    are assumed to be part of the default WSDL
    namespace: http://schemas.xmlsoap.org/wsdl/
   other XML namespace declarations                   17
WSDL Elements : Type
   Data type definitions
   Used to describe exchanged messages
   Uses W3C XML Schema as canonical type system




                                                   18
WSDL Example: Types
<definitions name="StockQuote"
   targetNamespace="http://example.com/stockquote.wsdl"
              xmlns:tns="http://example.com/stockquote.wsdl"
              xmlns:xsd1="http://example.com/stockquote.xsd"
              xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
              xmlns="http://schemas.xmlsoap.org/wsdl/”>
   <types>
       <schema targetNamespace="http://example.com/stockquote.xsd"
               xmlns="http://www.w3.org/2000/10/XMLSchema">
            <element name="TradePriceRequest">
               <complexType>
                   <all>
                       <element name=”tickerSymbol" type="string"/>
                   </all>
               </complexType>
            </element>
            <element name="TradePrice">
               <complexType>
                   <all>
                       <element name="price" type="float"/>
                   </all>
               </complexType>
            </element>
       </schema>
   </types>
                                                                      19
WSDL Elements : Message
   A message describes the abstract form of an input,
    output or a fault message.
   A message describes the data being communicated.
   Each message has a unique name within the WSDL
    document and contains a collection of parts.
   A message may have several parts.
   A part may belong to several messages.


                                                     20
WSDL Elements : Part
   Parts provide a flexible mechanism for describing
    the logical content of messages.
   A part element has two properties:
       –   name : represented by the name attribute,
           which must be unique among all the part
           elements of the message element
       –   kind : defined as either a type or an element
           attribute:
             •   element - the payload of the message on the
                 wire is precisely the XML element
             •   type - any element conforming to the type 21
WSDL Elements : PortType
   portType is a collection of one or more related operations
    describing the interface of a web service.
   portType definition is a collection of operation elements.
   Generally, WSDL documents contain only one portType
    element, because different web service interface
    definitions are written with different documents.
   portType has a single name attribute.
   The name of portType together with the namespace of the
    WSDL document define a unique name for the portType.

                                                                 22
WSDL Elements : Operation
   operation defines a method of a web service, including the
    name of the method, input parameters, and the output or
    return type of the method.
   All operations in a portType must have different names.
   Each operation may define:
       –    input message
       –    output message
       –    fault message
   An operation in WSDL is the equivalent of a method
    signature in Java.
                                                              23
Abstract Elements : Example

<message name="GetLastTradePriceInput">
    <part name="body" element="xsd1:TradePriceRequest"/>
</message>

<message name="GetLastTradePriceOutput">
    <part name="body" element="xsd1:TradePrice"/>
</message>

<portType name="StockQuotePortType">
    <operation name="GetLastTradePrice">
       <input message="tns:GetLastTradePriceInput"/>
       <output message="tns:GetLastTradePriceOutput"/>
    </operation>
    <!-- More operations -->
</portType>
                                                         24
WSDL Elements : Binding
   The binding element specifies how to format messages in a
    protocol specific manner:
       –   message encoding
       –   protocol binding
   Each portType can have several binding elements
    associated with it.
   Each binding specifies how to invoke operations using
    particular transport protocols. For instance: SOAP over
    HTTP, SOAP over SMTP, etc.

                                                              25
WSDL Elements : Binding (cont.)
   The binding element has two attributes:
       –   name : must be unique among all binding elements
           defined in the WSDL document
       –   type : identifies which portType the binding
           describes




                                                          26
WSDL Elements : Binding (cont.)
   Defines protocol details and message format for
    operations and messages defined by a particular
    portType
   Specify one protocol out of
      SOAP (SOAP over    HTTP, SOAP over SMTP)
      HTTP GET/POST

   Provides extensibility mechanism
      Can includes binding extensibility elements
      Binding extensibility elements are used to specify the
       concrete grammar
                                                                27
RPC and Document-style
       RPC             Document-style

   Procedure call        Business documents
   Method signature      Schema
   Marshaling            Parsing & Validating
   Tightly-coupled       Loosely coupled
   Point to point        End to end
   Synchronous           Asynchronous
   Typically within      Typically over
    Intranet               internet


                                                  28
RPC and Document-style (cont.)
         RPC            Document-style
   Within Enterprise      Between enterprise
                            and enterprise
   Simple, point-to-      Complex, end to end
    point                   with intermediaries
   Short running          Long running
    business process        business process
   Reliable and high      Unpredictable
    bandwidth               bandwidth
   Trusted                Blind trust
    environment

                                                  29
Binding Protocol Encoding Rules
   The binding also specifies the encoding rules used in
    serializing parts of a message into XML:
       –    literal encoding: takes the WSDL types defined in
            XML Schemaand “literally” uses those definitions to
            represent the XML content of messages. Abstract
            WSDL types becomes concrete types
       –    SOAP encoding : considers the XML Schema
            definitions as abstract entities and translates them into
            XML using SOAP encoding rules
   Literal encoding is used for document style interactions.
   SOAP encoding is used for RPC style interactions.                   30
WSDL Elements : Port
   Port specifies the network address of the end-point
    hosting the web service.
   port is a single end-point defined as a combination of a
    binding and a network address.
   There can be many ports for a binding, just like many
    implementations for the same interface.
   The soap:address element is used to give a port an
    address.

                                                           31
WSDL Elements : Service
   A service is a collection of ports.
   Although a WSDL document can contain a collection
    of service elements, by convention a WSDL document
    contains a single service.
   Usage: group the ports that are related to the same
    service interface (portType) but expressed by different
    protocols (binding).



                                                          32
Concrete Elements : Example
<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
   <soap:binding style="document"
         transport="http://schemas.xmlsoap.org/soap/http"/>
   <operation name="GetLastTradePrice">
      <soap:operation
            soapAction="http://example.com/GetLastTradePrice"/>
        <input> <soap:body use="literal" />
        </input>
        <output> <soap:body use="literal" />
        </output>
   </operation>
</binding>

<service name="StockQuoteService">
   <documentation>My first service</documentation>
   <port name="StockQuotePort" binding="tns:StockQuoteSoapBinding">
       <soap:address location="http://example.com/stockquote"/>
   </port>
</service>

                                                                       33
WSDL Transmission Patterns




                             34
Transmission Patterns in WSDL
   One-way
      The   endpoint receives a message
   Request/response
      The endpoint receives a message, and sends a correlated
       message
   Notification
      The   endpoint sends a message
   Solicit/response
      The endpoint sends a message, and receives a correlated
       message
                                                                 35
Transmission Patterns in WSDL




                                36
One-way Operation : Example
<operation name=”submitPurchase”>
   <input message=”purchase”/>
</operation>




                                    37
Request/Response Operation : Example
 <operation name=”submitPurchase”>
    <input message=”purchase”/>
    <output message=”confirmation”/>
 </operation>

 <operation name=”submitPurchase”>
    <input message=”purchase”/>
    <output message=”confirmation”/>
    <fault message=”faultMessage”/>
 </operation>
                                       38
Notification Operation : Example
<operation name=”deliveryStatus”>
   <output message=”trackingInformation”/>
</operation>




                                             39
Solicit/Response Operation : Example
 <operation name=”clientQuery”>
    <output message=”bandwidthRequest”/>
    <input message=”bandwidthInfo”/>
    <fault message=”faultMessage”/>
 </operation>




                                           40
WADL Basic and Elements




                          41
WADL

   Web Application Description Language
   An XML-based file format
   A machine-readable description of HTTP-
    based REST web Services
   Development language+platform neutral




                                              42
WADL Elements
•   Grammars
     −   Currently specify use of W3C XML Schema or RelaxNG
•   Resources
     –   Identified by a URI template
     –   Specify which methods are supported
•   Method
     –   Specify details of request and response contents
     –   Often refer to representations
•   Representation
     –   Describe the format of a HTTP entity
     –   Can refer to grammars
                                                              43
WADL Document Structure
<application>
  <doc/>*
  <grammars/>?
  <resources base='anyURI'>?
    <doc/>*
    <resource path='template' type='anyURI+'?>+
      <doc/>*
      <param/>*
      ( <method/> | <resource/> )+
    </resource>
  </resources>
  ( <method/> | <representation/> | <fault/> |
    <resource_type/>)*
</application>
                          * => 0 or more
                          ? => 0 or 1
                          + => 1 or more
                                                  44
WADL Method Structure
<method name='NMTOKEN'? id='ID'? href='anyURI'?>
  <doc/>*
  <request>?
    <param>*
    <representation/>*
  </request>
  <response>?
    ( <representation/> | <fault/> )*
  </response>
</method>




                                                   45
Yahoo News Search
•   http://api.search.yahoo.com/NewsSearchService/
    V1/newsSearch
•   Query parameters
     –   appid: get this from Yahoo by registering
     –   query: space separated list of keywords
     –   many others including language, sort, result count
         etc.
•   Get back results as XML, JSON or PHP
     –   XML schema available for normal and error
         responses
                                                              46
Yahoo News Search in WADL
<application xmlns:...>

  <grammars>
    <include href=".../NewsSearchResponse.xsd"/>
    <include href=".../NewsSearchError.xsd"/>
  </grammars>

  <resources
base="http://api.search.yahoo.com/NewsSearchService/V1/">
    <resource path="newsSearch">
      <param name="appid" type="xsd:string"
        required="true" style="query"/>
      <method href="#search"/>
    </resource>
  </resources>


                                                      47
Yahoo News Search in WADL (cont.)
 <method name="GET" id="search">
   <request>
     <param name="query" type="xsd:string"
         required="true" style="query"/>
     <param name="type" type="xsd:string"
         default="all" style="query">
       <option value="all"/>
       <option value="any"/>
       <option value="phrase"/>
     </param>
     ...
   </request>
   <response>
     <representation href="#resultSet"/>
     <fault href="#searchError"/>
   </response>
 </method>
                                             48
Yahoo News Search in WADL (cont.)
 <representation id="resultSet"
     mediaType="application/xml"
     element="yn:ResultSet">
   <doc xml:lang="en"
     title="A matching list of news items"/>
 </representation>

 <fault id="searchError"
   status="400"
   mediaType="application/xml"
   element="ya:Error"/>




                                               49
wadl2java
•   Open source project
     –   http://wadl.dev.java.net
•   Generates client-side stubs
•   Command line or Apache Ant task
     −   java -jar wadl2java.jar
•   Uses JAXB for XML processing
•   file.wadl



                                      50
Yahoo News Search Stub
public class NewsSearch {
  public NewsSearch() {...}
  public ResultSet getAsResultSet(
    String appid, String query) {...}
  public DataSource getAsApplicationXml(
    String appid, String query) {...}
  public DataSource getAsApplicationJson(
    String appid, String query) {...}
  public DataSource getAsApplicationPhp(
    String appid, String query) {...}
  ...
}
                                            51
Mapping WADL to Java

public class NewsSearch {
  public NewsSearch() {...}
  public ResultSet getAsResultSet(
    String appid, String query) {...}
}




                                        52
Mapping WADL to Java (cont.)
public class NewsSearch {
  public NewsSearch() {...}
  public ResultSet getAsResultSet(
   String appid, String query) {...}
}

<resource path="newsSearch">
 <param name="appid" style="query"/>
 <method name="GET">
  ...
 </method>
</resource>
                                       53
Mapping WADL to Java (cont.)
public class NewsSearch {
  public NewsSearch() {...}
  public ResultSet getAsResultSet(
   String appid, String query) {...}
}

<resource path="newsSearch">
 <param name="appid" style="query"/>
 <method name="GET">
  ...
 </method>
</resource>
                                       54
Mapping WADL to Java (cont.)
public class NewsSearch {
  public NewsSearch() {...}
  public ResultSet getAsResultSet(
   String appid, String query) {...}
}

<resource path="newsSearch">
 <param name="appid" style="query"/>
 <method name="GET">
  ...
 </method>
</resource>
                                       55
Mapping WADL to Java (cont.)
public class NewsSearch {
  public NewsSearch() {...}
  public ResultSet getAsResultSet(
   String appid, String query) {...}
}

<method name="GET">
 <request>
  <param name="query" style="query"/>
 </request>
 <response>
  <representation element="y:ResultSet"/>
 </response>
</method>                                   56
                                             56
Mapping WADL to Java (cont.)
public class NewsSearch {
  public NewsSearch() {...}
  public ResultSet getAsResultSet(
   String appid, String query) {...}
}

<method name="GET">
 <request>
  <param name="query" style="query"/>
 </request>
 <response>
  <representation element="y:ResultSet"/>
 </response>
                                            57
</method>                                    57
Client Code

NewsSearch s = new NewsSearch();
ResultSet rs = s.getAsResultSet("some_app_id","java");
for (Result r: rs.getResultList()) {
    System.out.printf("%s (%s)n",
    r.getTitle(),
    r.getClickUrl());
}




                                                   58
UDDI Basic and Data Types




                            59
Service Architecture
                  Service
                  Provider


    Publish                    Bind


       Service                Service
       Registry              Consumer


                  Discover

UDDI defines a scheme to publish and discover
information about Web services.                 60
WSDL & UDDI




              61
UDDI Runs “Over” SOAP

                        UDDI Registry
     User               Node
     UDDI
  SOAP Request            HTTP        SOAP
                          Server    Processor
     UDDI
 SOAP Response                  UDDI
                           Registry Service


Create, View,              B2B Directory
Update, and Delete
registrations           Platform-neutral

                                                62
What is UDDI?
   Programmatic registration and discovery of
    business entities and their Web services
   Public UDDI registries
    IBM, Microsoft, and SAP have shut down their public
    UDDI registries on January 12, 2006 after first
    announcement in 2000.

   Private UDDI registries within an intranet
    (where we are today)
                                                          63
Business Registration Data
   “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              64
Registry Data
                        Created by standard
                        organizations, industry
Created by businesses   consortium



                            Service Type
      Business               Definitions
    Registrations       (Meta information on
                         WSDL documents)


    businessEntity's
                             tModel's
    businessService's
    bindingTemplate's
                                                  65
UDDI Data Types

    Business Entity               BusinessEntity
       White Pages information

    Business Services               BusinessService
       Yellow Pages information

    Binding Templates                  BindingTemplate
       Green Pages information
       Contains references to          BindingTemplate
       tModels

    tModels                                              Tmodel
       Service Type Definitions
       Contains references to
       WSDL documents                                    Tmodel
                                                                  66
tModel Example
<tModel authorizedName="..." operator="..." tModelKey="...">
   <name>StockQuote Service</name>
   <description xml:lang="en">
       WSDL description of a standard stock quote service interface
   </description>
   <overviewDoc>
      <description xml:lang="en"> WSDL source document. </description>
      <overviewURL> http://stockquote-definitions/stq.wsdl </overviewURL>
   </overviewDoc>
   <categoryBag>
      <keyedReference tModelKey="UUID:..."
                 keyName="uddi-org:types"
                 keyValue="wsdlSpec"/>
   </categoryBag>
</tModel>



                                                                       67
Resources

 Some contents are borrowed from the presentation
  slides of Sang Shin, Java™ Technology Evangelist,
  Sun Microsystems, Inc.
 Some contents are borrowed from the presentation
  slides of Marc Hadley and Ayub Khan
 Web Services and Java, Elsa Estevez, Tomasz
  Janowski and Gabriel Oteniya, UNU-IIST, Macau




                                                      68
Thank you

   thananum@gmail.com
www.facebook.com/imcinstitute
   www.imcinstitute.com



                                69

Más contenido relacionado

La actualidad más candente

Testing of React JS app
Testing of React JS appTesting of React JS app
Testing of React JS appAleks Zinevych
 
Creating custom Validators on Reactive Forms using Angular 6
Creating custom Validators on Reactive Forms using Angular 6Creating custom Validators on Reactive Forms using Angular 6
Creating custom Validators on Reactive Forms using Angular 6AIMDek Technologies
 
jstl ( jsp standard tag library )
jstl ( jsp standard tag library )jstl ( jsp standard tag library )
jstl ( jsp standard tag library )Adarsh Patel
 
Asp.net membership anduserroles_ppt
Asp.net membership anduserroles_pptAsp.net membership anduserroles_ppt
Asp.net membership anduserroles_pptShivanand Arur
 
Angular & RXJS: examples and use cases
Angular & RXJS: examples and use casesAngular & RXJS: examples and use cases
Angular & RXJS: examples and use casesFabio Biondi
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to SwaggerKnoldus Inc.
 
The never-ending REST API design debate
The never-ending REST API design debateThe never-ending REST API design debate
The never-ending REST API design debateRestlet
 
Spring Boot & WebSocket
Spring Boot & WebSocketSpring Boot & WebSocket
Spring Boot & WebSocketMing-Ying Wu
 

La actualidad más candente (20)

Jdbc ppt
Jdbc pptJdbc ppt
Jdbc ppt
 
Soap Vs Rest
Soap Vs RestSoap Vs Rest
Soap Vs Rest
 
Testing of React JS app
Testing of React JS appTesting of React JS app
Testing of React JS app
 
WSDL
WSDLWSDL
WSDL
 
Angular
AngularAngular
Angular
 
Creating custom Validators on Reactive Forms using Angular 6
Creating custom Validators on Reactive Forms using Angular 6Creating custom Validators on Reactive Forms using Angular 6
Creating custom Validators on Reactive Forms using Angular 6
 
jstl ( jsp standard tag library )
jstl ( jsp standard tag library )jstl ( jsp standard tag library )
jstl ( jsp standard tag library )
 
Asp.net membership anduserroles_ppt
Asp.net membership anduserroles_pptAsp.net membership anduserroles_ppt
Asp.net membership anduserroles_ppt
 
Introduction to JSON
Introduction to JSONIntroduction to JSON
Introduction to JSON
 
Node.js Express Framework
Node.js Express FrameworkNode.js Express Framework
Node.js Express Framework
 
Angular & RXJS: examples and use cases
Angular & RXJS: examples and use casesAngular & RXJS: examples and use cases
Angular & RXJS: examples and use cases
 
Ajax Presentation
Ajax PresentationAjax Presentation
Ajax Presentation
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to Swagger
 
Protocol Buffers
Protocol BuffersProtocol Buffers
Protocol Buffers
 
The never-ending REST API design debate
The never-ending REST API design debateThe never-ending REST API design debate
The never-ending REST API design debate
 
Swagger UI
Swagger UISwagger UI
Swagger UI
 
JSP Directives
JSP DirectivesJSP Directives
JSP Directives
 
Spring Boot & WebSocket
Spring Boot & WebSocketSpring Boot & WebSocket
Spring Boot & WebSocket
 
Broadleaf Presents Thymeleaf
Broadleaf Presents ThymeleafBroadleaf Presents Thymeleaf
Broadleaf Presents Thymeleaf
 
Json
JsonJson
Json
 

Destacado

Java Web Services [2/5]: Introduction to SOAP
Java Web Services [2/5]: Introduction to SOAPJava Web Services [2/5]: Introduction to SOAP
Java Web Services [2/5]: Introduction to SOAPIMC Institute
 
Java Web Services [5/5]: REST and JAX-RS
Java Web Services [5/5]: REST and JAX-RSJava Web Services [5/5]: REST and JAX-RS
Java Web Services [5/5]: REST and JAX-RSIMC Institute
 
Java Web Services [1/5]: Introduction to Web Services
Java Web Services [1/5]: Introduction to Web ServicesJava Web Services [1/5]: Introduction to Web Services
Java Web Services [1/5]: Introduction to Web ServicesIMC Institute
 
Java Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web ServicesJava Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web ServicesIMC Institute
 
Introduction aux web services
Introduction aux web servicesIntroduction aux web services
Introduction aux web servicesmohammed addoumi
 
Java Web Service - Summer 2004
Java Web Service - Summer 2004Java Web Service - Summer 2004
Java Web Service - Summer 2004Danny Teng
 
Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108nit Allahabad
 
Simple API for XML
Simple API for XMLSimple API for XML
Simple API for XMLguest2556de
 
REST API Design for JAX-RS And Jersey
REST API Design for JAX-RS And JerseyREST API Design for JAX-RS And Jersey
REST API Design for JAX-RS And JerseyStormpath
 
Xml Java
Xml JavaXml Java
Xml Javacbee48
 
java API for XML DOM
java API for XML DOMjava API for XML DOM
java API for XML DOMSurinder Kaur
 
Soap vs. rest - which is right web service protocol for your need?
Soap vs. rest -  which is right web service protocol for your need?Soap vs. rest -  which is right web service protocol for your need?
Soap vs. rest - which is right web service protocol for your need?Vijay Prasad Gupta
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7Lukáš Fryč
 
Java web services using JAX-WS
Java web services using JAX-WSJava web services using JAX-WS
Java web services using JAX-WSIndicThreads
 

Destacado (20)

Java Web Services [2/5]: Introduction to SOAP
Java Web Services [2/5]: Introduction to SOAPJava Web Services [2/5]: Introduction to SOAP
Java Web Services [2/5]: Introduction to SOAP
 
Java Web Services [5/5]: REST and JAX-RS
Java Web Services [5/5]: REST and JAX-RSJava Web Services [5/5]: REST and JAX-RS
Java Web Services [5/5]: REST and JAX-RS
 
Java Web Services [1/5]: Introduction to Web Services
Java Web Services [1/5]: Introduction to Web ServicesJava Web Services [1/5]: Introduction to Web Services
Java Web Services [1/5]: Introduction to Web Services
 
Java Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web ServicesJava Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web Services
 
WebServices
WebServicesWebServices
WebServices
 
SCDJWS 2. Soap
SCDJWS 2. SoapSCDJWS 2. Soap
SCDJWS 2. Soap
 
Introduction aux web services
Introduction aux web servicesIntroduction aux web services
Introduction aux web services
 
JAXP
JAXPJAXP
JAXP
 
Java Web Service - Summer 2004
Java Web Service - Summer 2004Java Web Service - Summer 2004
Java Web Service - Summer 2004
 
Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108
 
Simple API for XML
Simple API for XMLSimple API for XML
Simple API for XML
 
REST API Design for JAX-RS And Jersey
REST API Design for JAX-RS And JerseyREST API Design for JAX-RS And Jersey
REST API Design for JAX-RS And Jersey
 
Xml Java
Xml JavaXml Java
Xml Java
 
java API for XML DOM
java API for XML DOMjava API for XML DOM
java API for XML DOM
 
Soap vs. rest - which is right web service protocol for your need?
Soap vs. rest -  which is right web service protocol for your need?Soap vs. rest -  which is right web service protocol for your need?
Soap vs. rest - which is right web service protocol for your need?
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7
 
Java Web Services
Java Web ServicesJava Web Services
Java Web Services
 
6 xml parsing
6   xml parsing6   xml parsing
6 xml parsing
 
Java web services using JAX-WS
Java web services using JAX-WSJava web services using JAX-WS
Java web services using JAX-WS
 
Java XML Parsing
Java XML ParsingJava XML Parsing
Java XML Parsing
 

Similar a Java Web Services [3/5]: WSDL, WADL and UDDI

Similar a Java Web Services [3/5]: WSDL, WADL and UDDI (20)

WSDL Services
WSDL ServicesWSDL Services
WSDL Services
 
Wsdl
WsdlWsdl
Wsdl
 
Lecture 16 - Web Services
Lecture 16 - Web ServicesLecture 16 - Web Services
Lecture 16 - Web Services
 
Web services overview
Web services overviewWeb services overview
Web services overview
 
Webservices
WebservicesWebservices
Webservices
 
Cloud computing 21 concept of wsdl modeling
Cloud computing 21 concept of wsdl modelingCloud computing 21 concept of wsdl modeling
Cloud computing 21 concept of wsdl modeling
 
Webservices
WebservicesWebservices
Webservices
 
Web services
Web servicesWeb services
Web services
 
Web Services
Web Services Web Services
Web Services
 
Web services wsdl
Web services wsdlWeb services wsdl
Web services wsdl
 
Developmeant and deployment of webservice
Developmeant and deployment of webserviceDevelopmeant and deployment of webservice
Developmeant and deployment of webservice
 
Web services wsdl
Web services wsdlWeb services wsdl
Web services wsdl
 
Web services wsdl
Web services wsdlWeb services wsdl
Web services wsdl
 
Ogsi protocol perspective
Ogsi protocol perspectiveOgsi protocol perspective
Ogsi protocol perspective
 
Cloud computing 20 service modelling
Cloud computing 20 service modellingCloud computing 20 service modelling
Cloud computing 20 service modelling
 
Wsdl1
Wsdl1Wsdl1
Wsdl1
 
Ajax
AjaxAjax
Ajax
 
Topic6 Basic Web Services Technology
Topic6 Basic Web Services TechnologyTopic6 Basic Web Services Technology
Topic6 Basic Web Services Technology
 
Topic6 Basic Web Services Technology
Topic6 Basic Web Services TechnologyTopic6 Basic Web Services Technology
Topic6 Basic Web Services Technology
 
Web services
Web servicesWeb services
Web services
 

Más de IMC Institute

นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14IMC Institute
 
Digital trends Vol 4 No. 13 Sep-Dec 2019
Digital trends Vol 4 No. 13  Sep-Dec 2019Digital trends Vol 4 No. 13  Sep-Dec 2019
Digital trends Vol 4 No. 13 Sep-Dec 2019IMC Institute
 
บทความ The evolution of AI
บทความ The evolution of AIบทความ The evolution of AI
บทความ The evolution of AIIMC Institute
 
IT Trends eMagazine Vol 4. No.12
IT Trends eMagazine  Vol 4. No.12IT Trends eMagazine  Vol 4. No.12
IT Trends eMagazine Vol 4. No.12IMC Institute
 
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformationเพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital TransformationIMC Institute
 
IT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIMC Institute
 
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมมูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมIMC Institute
 
IT Trends eMagazine Vol 4. No.11
IT Trends eMagazine  Vol 4. No.11IT Trends eMagazine  Vol 4. No.11
IT Trends eMagazine Vol 4. No.11IMC Institute
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationIMC Institute
 
บทความ The New Silicon Valley
บทความ The New Silicon Valleyบทความ The New Silicon Valley
บทความ The New Silicon ValleyIMC Institute
 
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10IMC Institute
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationIMC Institute
 
The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)IMC Institute
 
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง IMC Institute
 
IT Trends eMagazine Vol 3. No.9
IT Trends eMagazine  Vol 3. No.9 IT Trends eMagazine  Vol 3. No.9
IT Trends eMagazine Vol 3. No.9 IMC Institute
 
Thailand software & software market survey 2016
Thailand software & software market survey 2016Thailand software & software market survey 2016
Thailand software & software market survey 2016IMC Institute
 
Developing Business Blockchain Applications on Hyperledger
Developing Business  Blockchain Applications on Hyperledger Developing Business  Blockchain Applications on Hyperledger
Developing Business Blockchain Applications on Hyperledger IMC Institute
 
Digital transformation @thanachart.org
Digital transformation @thanachart.orgDigital transformation @thanachart.org
Digital transformation @thanachart.orgIMC Institute
 
บทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgบทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgIMC Institute
 
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformationกลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital TransformationIMC Institute
 

Más de IMC Institute (20)

นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14
 
Digital trends Vol 4 No. 13 Sep-Dec 2019
Digital trends Vol 4 No. 13  Sep-Dec 2019Digital trends Vol 4 No. 13  Sep-Dec 2019
Digital trends Vol 4 No. 13 Sep-Dec 2019
 
บทความ The evolution of AI
บทความ The evolution of AIบทความ The evolution of AI
บทความ The evolution of AI
 
IT Trends eMagazine Vol 4. No.12
IT Trends eMagazine  Vol 4. No.12IT Trends eMagazine  Vol 4. No.12
IT Trends eMagazine Vol 4. No.12
 
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformationเพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
 
IT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to Work
 
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมมูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
 
IT Trends eMagazine Vol 4. No.11
IT Trends eMagazine  Vol 4. No.11IT Trends eMagazine  Vol 4. No.11
IT Trends eMagazine Vol 4. No.11
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
 
บทความ The New Silicon Valley
บทความ The New Silicon Valleyบทความ The New Silicon Valley
บทความ The New Silicon Valley
 
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
 
The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)
 
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
 
IT Trends eMagazine Vol 3. No.9
IT Trends eMagazine  Vol 3. No.9 IT Trends eMagazine  Vol 3. No.9
IT Trends eMagazine Vol 3. No.9
 
Thailand software & software market survey 2016
Thailand software & software market survey 2016Thailand software & software market survey 2016
Thailand software & software market survey 2016
 
Developing Business Blockchain Applications on Hyperledger
Developing Business  Blockchain Applications on Hyperledger Developing Business  Blockchain Applications on Hyperledger
Developing Business Blockchain Applications on Hyperledger
 
Digital transformation @thanachart.org
Digital transformation @thanachart.orgDigital transformation @thanachart.org
Digital transformation @thanachart.org
 
บทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgบทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.org
 
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformationกลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
 

Último

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Java Web Services [3/5]: WSDL, WADL and UDDI

  • 1. Topic 3 WSDL and WADL and UDDI Assoc.Prof. Dr. Thanachart Numnonda www.imcinstitute.com August 2010
  • 2. Agenda  What is and Why WSDL?  WSDL Elements  WSDL Transmission Patterns  WADL Basics and Elements  UDDI Basics and Data Types 2
  • 3. What is and why WSDL? 3
  • 4. What is WSDL? • XML language for describing web services • Web service is described as – A set of communication endpoints (ports) • Endpoint is made of two parts – Abstract definitions of operations and messages – Concrete binding to networking protocol (and corresponding endpoint address) and message encoding • Why this separation? – Enhance reusability (of the abstract part, for example) 4
  • 5. WSDL Service Description • WSDL is “the interface for Web Services” describing: • What a service does - the operations (methods) the service provides, and the data (arguments and returns) needed to invoke them. • How a service is accessed - details about data formats and protocols necessary to access the service operations. • Where a service is located - details of the protocol- specific network address, such as a URL. 5
  • 6. Where is WSDL Used? Web service Web service W requester provider (4) Invoke web e service Servlets JAXR b Business partner or other system soap request WSDL Document (3) Retrieve WSDL definition Soap request (2) Search for web service (1) Register web UDDI service Soap request UDDI service Soap request Registry 6
  • 7. Why WSDL? source: WSDL 1.2 primer 7
  • 8. Why WSDL? (cont.) • Enables automation of communication details between communicating partners – Machines can read WSDL – Machines can invoke a service defined in WSDL • Discoverable through registry • Arbitration – 3rd party can verify if communication conforms to WSDL 8
  • 9. WSDL Document Structure <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl" targetNamespace="your namespace here" xmlns:tns="your namespace here" xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap"> <wsdl:types> <xs:schema targetNamespace="your namespace here (could be another) " xmlns:xsd="http://www.w3.org/2001/XMLSchema" <!-- Define types and possibly elements here --> </schema> </wsdl:types> <wsdl:message name="some operation input"> <!-- part(s) here --> </wsdl:message> <wsdl:message name="some operation output"> <!-- part(s) here --> </wsdl:message> <wsdl:portType name="your type name"> <!-- define operations here in terms of their messages --> </wsdl:portType> <wsdl:binding name="your binding name" type="tns:port type name above"> <!-- define style and transport in general and use per operation --> </wsdl:binding> <wsdl:service> <!-- define a port using the above binding and a URL --> </wsdl:service> </wsdl:definitions> 9
  • 11. WSDL Structure  Abstract part – Types – Message – Operation – Port Type  Concrete part – Binding – Port – Service 11
  • 12. WSDL Structure - Abstract  port type - logical collection of related operations  operation - abstract description of an action supported by the service  message - data exchanged in a single logical transmission  types - data structures that will be exchanged as parts of messages 12
  • 13. WSDL Structure - Concrete  interface bindings - message encoding and protocol binding for all operations and messages defined in a given porttype  ports - combine the interface binding information with a network address specified by a URI  services - are logical groupings of ports 13
  • 16. WSDL : Example (cont.) 16
  • 17. WSDL Elements : Definitions  name attribute - corresponds to the name of the web service. It is only for documentation and is optional  targetNamespace attribute - a URI for the entire WSDL file  default namespace - all elements without a namespace prefix, such as message or portType, are assumed to be part of the default WSDL namespace: http://schemas.xmlsoap.org/wsdl/  other XML namespace declarations 17
  • 18. WSDL Elements : Type  Data type definitions  Used to describe exchanged messages  Uses W3C XML Schema as canonical type system 18
  • 19. WSDL Example: Types <definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/”> <types> <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType> <all> <element name=”tickerSymbol" type="string"/> </all> </complexType> </element> <element name="TradePrice"> <complexType> <all> <element name="price" type="float"/> </all> </complexType> </element> </schema> </types> 19
  • 20. WSDL Elements : Message  A message describes the abstract form of an input, output or a fault message.  A message describes the data being communicated.  Each message has a unique name within the WSDL document and contains a collection of parts.  A message may have several parts.  A part may belong to several messages. 20
  • 21. WSDL Elements : Part  Parts provide a flexible mechanism for describing the logical content of messages.  A part element has two properties: – name : represented by the name attribute, which must be unique among all the part elements of the message element – kind : defined as either a type or an element attribute: • element - the payload of the message on the wire is precisely the XML element • type - any element conforming to the type 21
  • 22. WSDL Elements : PortType  portType is a collection of one or more related operations describing the interface of a web service.  portType definition is a collection of operation elements.  Generally, WSDL documents contain only one portType element, because different web service interface definitions are written with different documents.  portType has a single name attribute.  The name of portType together with the namespace of the WSDL document define a unique name for the portType. 22
  • 23. WSDL Elements : Operation  operation defines a method of a web service, including the name of the method, input parameters, and the output or return type of the method.  All operations in a portType must have different names.  Each operation may define: – input message – output message – fault message  An operation in WSDL is the equivalent of a method signature in Java. 23
  • 24. Abstract Elements : Example <message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/> </message> <message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/> </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> <!-- More operations --> </portType> 24
  • 25. WSDL Elements : Binding  The binding element specifies how to format messages in a protocol specific manner: – message encoding – protocol binding  Each portType can have several binding elements associated with it.  Each binding specifies how to invoke operations using particular transport protocols. For instance: SOAP over HTTP, SOAP over SMTP, etc. 25
  • 26. WSDL Elements : Binding (cont.)  The binding element has two attributes: – name : must be unique among all binding elements defined in the WSDL document – type : identifies which portType the binding describes 26
  • 27. WSDL Elements : Binding (cont.)  Defines protocol details and message format for operations and messages defined by a particular portType  Specify one protocol out of  SOAP (SOAP over HTTP, SOAP over SMTP)  HTTP GET/POST  Provides extensibility mechanism  Can includes binding extensibility elements  Binding extensibility elements are used to specify the concrete grammar 27
  • 28. RPC and Document-style RPC Document-style  Procedure call  Business documents  Method signature  Schema  Marshaling  Parsing & Validating  Tightly-coupled  Loosely coupled  Point to point  End to end  Synchronous  Asynchronous  Typically within  Typically over Intranet internet 28
  • 29. RPC and Document-style (cont.) RPC Document-style  Within Enterprise  Between enterprise and enterprise  Simple, point-to-  Complex, end to end point with intermediaries  Short running  Long running business process business process  Reliable and high  Unpredictable bandwidth bandwidth  Trusted  Blind trust environment 29
  • 30. Binding Protocol Encoding Rules  The binding also specifies the encoding rules used in serializing parts of a message into XML: – literal encoding: takes the WSDL types defined in XML Schemaand “literally” uses those definitions to represent the XML content of messages. Abstract WSDL types becomes concrete types – SOAP encoding : considers the XML Schema definitions as abstract entities and translates them into XML using SOAP encoding rules  Literal encoding is used for document style interactions.  SOAP encoding is used for RPC style interactions. 30
  • 31. WSDL Elements : Port  Port specifies the network address of the end-point hosting the web service.  port is a single end-point defined as a combination of a binding and a network address.  There can be many ports for a binding, just like many implementations for the same interface.  The soap:address element is used to give a port an address. 31
  • 32. WSDL Elements : Service  A service is a collection of ports.  Although a WSDL document can contain a collection of service elements, by convention a WSDL document contains a single service.  Usage: group the ports that are related to the same service interface (portType) but expressed by different protocols (binding). 32
  • 33. Concrete Elements : Example <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding> <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteSoapBinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> 33
  • 35. Transmission Patterns in WSDL  One-way  The endpoint receives a message  Request/response  The endpoint receives a message, and sends a correlated message  Notification  The endpoint sends a message  Solicit/response  The endpoint sends a message, and receives a correlated message 35
  • 37. One-way Operation : Example <operation name=”submitPurchase”> <input message=”purchase”/> </operation> 37
  • 38. Request/Response Operation : Example <operation name=”submitPurchase”> <input message=”purchase”/> <output message=”confirmation”/> </operation> <operation name=”submitPurchase”> <input message=”purchase”/> <output message=”confirmation”/> <fault message=”faultMessage”/> </operation> 38
  • 39. Notification Operation : Example <operation name=”deliveryStatus”> <output message=”trackingInformation”/> </operation> 39
  • 40. Solicit/Response Operation : Example <operation name=”clientQuery”> <output message=”bandwidthRequest”/> <input message=”bandwidthInfo”/> <fault message=”faultMessage”/> </operation> 40
  • 41. WADL Basic and Elements 41
  • 42. WADL  Web Application Description Language  An XML-based file format  A machine-readable description of HTTP- based REST web Services  Development language+platform neutral 42
  • 43. WADL Elements • Grammars − Currently specify use of W3C XML Schema or RelaxNG • Resources – Identified by a URI template – Specify which methods are supported • Method – Specify details of request and response contents – Often refer to representations • Representation – Describe the format of a HTTP entity – Can refer to grammars 43
  • 44. WADL Document Structure <application> <doc/>* <grammars/>? <resources base='anyURI'>? <doc/>* <resource path='template' type='anyURI+'?>+ <doc/>* <param/>* ( <method/> | <resource/> )+ </resource> </resources> ( <method/> | <representation/> | <fault/> | <resource_type/>)* </application> * => 0 or more ? => 0 or 1 + => 1 or more 44
  • 45. WADL Method Structure <method name='NMTOKEN'? id='ID'? href='anyURI'?> <doc/>* <request>? <param>* <representation/>* </request> <response>? ( <representation/> | <fault/> )* </response> </method> 45
  • 46. Yahoo News Search • http://api.search.yahoo.com/NewsSearchService/ V1/newsSearch • Query parameters – appid: get this from Yahoo by registering – query: space separated list of keywords – many others including language, sort, result count etc. • Get back results as XML, JSON or PHP – XML schema available for normal and error responses 46
  • 47. Yahoo News Search in WADL <application xmlns:...> <grammars> <include href=".../NewsSearchResponse.xsd"/> <include href=".../NewsSearchError.xsd"/> </grammars> <resources base="http://api.search.yahoo.com/NewsSearchService/V1/"> <resource path="newsSearch"> <param name="appid" type="xsd:string" required="true" style="query"/> <method href="#search"/> </resource> </resources> 47
  • 48. Yahoo News Search in WADL (cont.) <method name="GET" id="search"> <request> <param name="query" type="xsd:string" required="true" style="query"/> <param name="type" type="xsd:string" default="all" style="query"> <option value="all"/> <option value="any"/> <option value="phrase"/> </param> ... </request> <response> <representation href="#resultSet"/> <fault href="#searchError"/> </response> </method> 48
  • 49. Yahoo News Search in WADL (cont.) <representation id="resultSet" mediaType="application/xml" element="yn:ResultSet"> <doc xml:lang="en" title="A matching list of news items"/> </representation> <fault id="searchError" status="400" mediaType="application/xml" element="ya:Error"/> 49
  • 50. wadl2java • Open source project – http://wadl.dev.java.net • Generates client-side stubs • Command line or Apache Ant task − java -jar wadl2java.jar • Uses JAXB for XML processing • file.wadl 50
  • 51. Yahoo News Search Stub public class NewsSearch { public NewsSearch() {...} public ResultSet getAsResultSet( String appid, String query) {...} public DataSource getAsApplicationXml( String appid, String query) {...} public DataSource getAsApplicationJson( String appid, String query) {...} public DataSource getAsApplicationPhp( String appid, String query) {...} ... } 51
  • 52. Mapping WADL to Java public class NewsSearch { public NewsSearch() {...} public ResultSet getAsResultSet( String appid, String query) {...} } 52
  • 53. Mapping WADL to Java (cont.) public class NewsSearch { public NewsSearch() {...} public ResultSet getAsResultSet( String appid, String query) {...} } <resource path="newsSearch"> <param name="appid" style="query"/> <method name="GET"> ... </method> </resource> 53
  • 54. Mapping WADL to Java (cont.) public class NewsSearch { public NewsSearch() {...} public ResultSet getAsResultSet( String appid, String query) {...} } <resource path="newsSearch"> <param name="appid" style="query"/> <method name="GET"> ... </method> </resource> 54
  • 55. Mapping WADL to Java (cont.) public class NewsSearch { public NewsSearch() {...} public ResultSet getAsResultSet( String appid, String query) {...} } <resource path="newsSearch"> <param name="appid" style="query"/> <method name="GET"> ... </method> </resource> 55
  • 56. Mapping WADL to Java (cont.) public class NewsSearch { public NewsSearch() {...} public ResultSet getAsResultSet( String appid, String query) {...} } <method name="GET"> <request> <param name="query" style="query"/> </request> <response> <representation element="y:ResultSet"/> </response> </method> 56 56
  • 57. Mapping WADL to Java (cont.) public class NewsSearch { public NewsSearch() {...} public ResultSet getAsResultSet( String appid, String query) {...} } <method name="GET"> <request> <param name="query" style="query"/> </request> <response> <representation element="y:ResultSet"/> </response> 57 </method> 57
  • 58. Client Code NewsSearch s = new NewsSearch(); ResultSet rs = s.getAsResultSet("some_app_id","java"); for (Result r: rs.getResultList()) { System.out.printf("%s (%s)n", r.getTitle(), r.getClickUrl()); } 58
  • 59. UDDI Basic and Data Types 59
  • 60. Service Architecture Service Provider Publish Bind Service Service Registry Consumer Discover UDDI defines a scheme to publish and discover information about Web services. 60
  • 62. UDDI Runs “Over” SOAP UDDI Registry User Node UDDI SOAP Request HTTP SOAP Server Processor UDDI SOAP Response UDDI Registry Service Create, View, B2B Directory Update, and Delete registrations Platform-neutral 62
  • 63. What is UDDI?  Programmatic registration and discovery of business entities and their Web services  Public UDDI registries IBM, Microsoft, and SAP have shut down their public UDDI registries on January 12, 2006 after first announcement in 2000.  Private UDDI registries within an intranet (where we are today) 63
  • 64. Business Registration Data  “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 64
  • 65. Registry Data Created by standard organizations, industry Created by businesses consortium Service Type Business Definitions Registrations (Meta information on WSDL documents) businessEntity's tModel's businessService's bindingTemplate's 65
  • 66. UDDI Data Types  Business Entity BusinessEntity White Pages information  Business Services BusinessService Yellow Pages information  Binding Templates BindingTemplate Green Pages information Contains references to BindingTemplate tModels  tModels Tmodel Service Type Definitions Contains references to WSDL documents Tmodel 66
  • 67. tModel Example <tModel authorizedName="..." operator="..." tModelKey="..."> <name>StockQuote Service</name> <description xml:lang="en"> WSDL description of a standard stock quote service interface </description> <overviewDoc> <description xml:lang="en"> WSDL source document. </description> <overviewURL> http://stockquote-definitions/stq.wsdl </overviewURL> </overviewDoc> <categoryBag> <keyedReference tModelKey="UUID:..." keyName="uddi-org:types" keyValue="wsdlSpec"/> </categoryBag> </tModel> 67
  • 68. Resources  Some contents are borrowed from the presentation slides of Sang Shin, Java™ Technology Evangelist, Sun Microsystems, Inc.  Some contents are borrowed from the presentation slides of Marc Hadley and Ayub Khan  Web Services and Java, Elsa Estevez, Tomasz Janowski and Gabriel Oteniya, UNU-IIST, Macau 68
  • 69. Thank you thananum@gmail.com www.facebook.com/imcinstitute www.imcinstitute.com 69