SlideShare a Scribd company logo
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

More Related Content

What's hot

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
AIMDek Technologies
 
Angular Directives
Angular DirectivesAngular Directives
Angular Directives
iFour Technolab Pvt. Ltd.
 
Servlets
ServletsServlets
Servlets
ZainabNoorGul
 
Modelos de API Para El Diseño de Servicios
Modelos de API Para El Diseño de ServiciosModelos de API Para El Diseño de Servicios
Modelos de API Para El Diseño de Servicios
Javier Vélez Reyes
 
WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIWebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDI
Rajkattamuri
 
Lambda Expressions in C# From Beginner To Expert - Jaliya Udagedara
Lambda Expressions in C# From Beginner To Expert - Jaliya UdagedaraLambda Expressions in C# From Beginner To Expert - Jaliya Udagedara
Lambda Expressions in C# From Beginner To Expert - Jaliya UdagedaraJaliya Udagedara
 
Web server
Web serverWeb server
Web server
Sajan Sahu
 
Semantic web
Semantic webSemantic web
Semantic web
Imtiaz Siddique
 
Simple object access protocol(soap )
Simple object access protocol(soap )Simple object access protocol(soap )
Simple object access protocol(soap )
balamurugan.k Kalibalamurugan
 
An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST
Ram Awadh Prasad, PMP
 
Hibernate tutorial for beginners
Hibernate tutorial for beginnersHibernate tutorial for beginners
Hibernate tutorial for beginners
Rahul Jain
 
Introduction to RDF
Introduction to RDFIntroduction to RDF
Introduction to RDF
Dr Sukhpal Singh Gill
 
Web servers
Web serversWeb servers
Web servers
Kuldeep Kulkarni
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentation
guest0df6b0
 
Unit ii java script and xhtml documents and dynamic documents with javascript
Unit ii java script and xhtml documents and dynamic documents with javascriptUnit ii java script and xhtml documents and dynamic documents with javascript
Unit ii java script and xhtml documents and dynamic documents with javascript
zahid7578
 
OSI Layers
OSI LayersOSI Layers
OSI Layers
Kishore Kumar
 
Note of CGI and ASP
Note of CGI and ASPNote of CGI and ASP
Note of CGI and ASP
William Lee
 
Basic Networking in Java
Basic Networking in JavaBasic Networking in Java
Basic Networking in Java
suraj pandey
 
REST & RESTful Web Service
REST & RESTful Web ServiceREST & RESTful Web Service
REST & RESTful Web Service
Hoan Vu Tran
 
Introduction to Web Services
Introduction to Web ServicesIntroduction to Web Services
Introduction to Web Services
Thanachart Numnonda
 

What's hot (20)

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
 
Angular Directives
Angular DirectivesAngular Directives
Angular Directives
 
Servlets
ServletsServlets
Servlets
 
Modelos de API Para El Diseño de Servicios
Modelos de API Para El Diseño de ServiciosModelos de API Para El Diseño de Servicios
Modelos de API Para El Diseño de Servicios
 
WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIWebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDI
 
Lambda Expressions in C# From Beginner To Expert - Jaliya Udagedara
Lambda Expressions in C# From Beginner To Expert - Jaliya UdagedaraLambda Expressions in C# From Beginner To Expert - Jaliya Udagedara
Lambda Expressions in C# From Beginner To Expert - Jaliya Udagedara
 
Web server
Web serverWeb server
Web server
 
Semantic web
Semantic webSemantic web
Semantic web
 
Simple object access protocol(soap )
Simple object access protocol(soap )Simple object access protocol(soap )
Simple object access protocol(soap )
 
An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST
 
Hibernate tutorial for beginners
Hibernate tutorial for beginnersHibernate tutorial for beginners
Hibernate tutorial for beginners
 
Introduction to RDF
Introduction to RDFIntroduction to RDF
Introduction to RDF
 
Web servers
Web serversWeb servers
Web servers
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentation
 
Unit ii java script and xhtml documents and dynamic documents with javascript
Unit ii java script and xhtml documents and dynamic documents with javascriptUnit ii java script and xhtml documents and dynamic documents with javascript
Unit ii java script and xhtml documents and dynamic documents with javascript
 
OSI Layers
OSI LayersOSI Layers
OSI Layers
 
Note of CGI and ASP
Note of CGI and ASPNote of CGI and ASP
Note of CGI and ASP
 
Basic Networking in Java
Basic Networking in JavaBasic Networking in Java
Basic Networking in Java
 
REST & RESTful Web Service
REST & RESTful Web ServiceREST & RESTful Web Service
REST & RESTful Web Service
 
Introduction to Web Services
Introduction to Web ServicesIntroduction to Web Services
Introduction to Web Services
 

Viewers also liked

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
IMC 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-RS
IMC 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 Services
IMC 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 Services
IMC Institute
 
WebServices
WebServicesWebServices
WebServices
Rajkattamuri
 
SCDJWS 2. Soap
SCDJWS 2. SoapSCDJWS 2. Soap
SCDJWS 2. Soap
Francesco Ierna
 
Introduction aux web services
Introduction aux web servicesIntroduction aux web services
Introduction aux web services
mohammed addoumi
 
JAXP
JAXPJAXP
Java Web Service - Summer 2004
Java Web Service - Summer 2004Java Web Service - Summer 2004
Java Web Service - Summer 2004
Danny Teng
 
Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108
nit Allahabad
 
Simple API for XML
Simple API for XMLSimple API for XML
Simple API for XML
guest2556de
 
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
Stormpath
 
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
Java Web ServicesJava Web Services
Java Web Services
Jussi Pohjolainen
 
6 xml parsing
6   xml parsing6   xml parsing
6 xml parsing
gauravashq
 
Java web services using JAX-WS
Java web services using JAX-WSJava web services using JAX-WS
Java web services using JAX-WS
IndicThreads
 

Viewers also liked (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 to Java Web Services [3/5]: WSDL, WADL and UDDI

WSDL Services
WSDL ServicesWSDL Services
WSDL Services
Shahid Shaik
 
Wsdl
WsdlWsdl
Lecture 16 - Web Services
Lecture 16 - Web ServicesLecture 16 - Web Services
Lecture 16 - Web Services
phanleson
 
Web services overview
Web services overviewWeb services overview
Webservices
WebservicesWebservices
Webservices
MohitKumar1985
 
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
Vaibhav Khanna
 
Webservices
WebservicesWebservices
Webservices
xavier john
 
Web services
Web servicesWeb services
Web services
MohitKumar1985
 
Web services wsdl
Web services wsdlWeb services wsdl
Web services wsdl
princeirfancivil
 
Developmeant and deployment of webservice
Developmeant and deployment of webserviceDevelopmeant and deployment of webservice
Developmeant and deployment of webservice
Freelance android developer
 
Web services wsdl
Web services wsdlWeb services wsdl
Web services wsdl
Rajkattamuri
 
Web services wsdl
Web services wsdlWeb services wsdl
Web services wsdl
Khan625
 
Ogsi protocol perspective
Ogsi protocol perspectiveOgsi protocol perspective
Ogsi protocol perspective
Pooja Dixit
 
Cloud computing 20 service modelling
Cloud computing 20 service modellingCloud computing 20 service modelling
Cloud computing 20 service modelling
Vaibhav Khanna
 
Ajax
AjaxAjax
Topic6 Basic Web Services Technology
Topic6 Basic Web Services TechnologyTopic6 Basic Web Services Technology
Topic6 Basic Web Services Technologysanjoysanyal
 
Topic6 Basic Web Services Technology
Topic6 Basic Web Services TechnologyTopic6 Basic Web Services Technology
Topic6 Basic Web Services Technologysanjoysanyal
 

Similar to 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
 

More from IMC Institute

นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14
IMC 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 2019
IMC Institute
 
บทความ The evolution of AI
บทความ The evolution of AIบทความ The evolution of AI
บทความ The evolution of AI
IMC 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.12
IMC Institute
 
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformationเพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
IMC 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 Work
IMC 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.11
IMC Institute
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
IMC Institute
 
บทความ The New Silicon Valley
บทความ The New Silicon Valleyบทความ The New Silicon Valley
บทความ The New Silicon Valley
IMC Institute
 
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
IMC Institute
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
IMC 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 2016
IMC 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.org
IMC Institute
 
บทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgบทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.org
IMC Institute
 
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformationกลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
IMC Institute
 

More from 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
 

Recently uploaded

Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
Jen Stirrup
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 

Recently uploaded (20)

Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 

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