SOA Technology: SOAP, WSDL, UDDI

June 6th, 2010 | admin

A web service depends on three interrelated, XML-based software standards to function properly.

  • Simple Object Access Protocol (SOAP)—The message format
  • Web Services Description Language (WSDL)—The document that describes exactly what the web service does and how to invoke it
  • Universal Discovery, Description, and Integration (UDDI)—The directory of web services that are available for use

Together, the three standards combine to give a web service the ability to function, describe itself, and be found within a network. While theoretically a web service could function fully using SOAP alone, figure 1 shows how a web service needs WSDL and UDDI to be effective.

1. SOAP
SOAP is the lingua franca of web services, the XML structure on which all web services messages are built. When we say that web services are based on XML, we actually mean that web services are based on SOAP messages, which are written in XML. What makes SOAP special and distinct from plain-vanilla XML is that every SOAP message follows a pattern that has been specified by the W3C standards.

soatutorial.net_web_services_wsdl_uddi

Figure 1: When it comes to describing its functionality and location, a web service is in and of itself essentially “dumb.” To describe itself to potential requestors, the web service relies on its WSDL document, which provides a detailed explanation of the web service’s functionality and how to access it. For location, the web service relies on its listing in a UDDI registry to enable potential requestors to find it.

SOAP is sometimes referred to as a “data wrapper” or “data envelope.” Here’s what those apt descriptions mean: Every  SOAP message begins with a tag that reads <SOAP-ENV:envelope>. The envelope tag signals the message recipient that it is about to receive a SOAP message. What follows is a header, which contains the critical information about where the message is going and from whom it came. And then there is the body of the SOAP message, which lays out the actual data or operating instructions required by the consuming computer. Figure 2 shows a SOAP message, complete with “envelope” and body, traveling across a network from a web services consumer computer to a provider computer, in this case, a mainframe.

SOAP

Figure 2: A SOAP message is formatted as an “envelope” of XML code that defines its beginning and end. The “header” describes where the message came from, where it’s going, and how it is going to get there. The “body” of the SOAP message contains the relevant data or procedural instructions of the SOAP request of response.

2. WSDL

The Web Services Description Language (WSDL) is an XML document, designed according to standards specified by the W3C, that describes exactly how a specific web service works. However, the WSDL document (often referred to in speech as the “wizdil”) is much more than a mere instruction manual on how to use the web service that it describes. Web services development software can process the WSDL document and generate the SOAP messages automatically that are needed to invoke that specific service.

Because of the capabilities of WSDL, web services are known as “self-describing” software elements. This is a very powerful concept. Not only can web services inter-operate universally through  SOAP, they can also be described universally using WSDL. A software developer in Borneo can create a piece of software to invoke a web service in Trinidad just by reading and processing the WSDL document. He does not need to speak to anyone, read any particular manuals, or buy any special software—theoretically he need only conform to the standards. I say theoretically because clearly the developer in Borneo still would need to be properly authorized, and the transaction should be properly monitored to be safe, but the mechanism itself of achieving a request and a response between these parties has now been drastically simplified.

3. UDDI

Though several types of web service registries are available for use, we identify the Universal Discovery, Description, and Integration (UDDI) directory as the general standard used as a registry of web services that are available for use in a particular net-work. Think of the UDDI as a sort of “yellow pages” of web services. If you wanted to find a web service in your enterprise, you would look in the UDDI. The UDDI would tell you where to find that service, and it would link you to the WSDL document so you could examine the web service and make sure it was the one you wanted.

19 Responses to “SOA Technology: SOAP, WSDL, UDDI”

  1. Tommy says:

    Great explanation about SOA Technology, this is really what i seek, thanks!

  2. admin says:

    You’re welcome Tommy, thanks for visiting this blog.

  3. Robert says:

    Thanks for a very interesting read.

    You mention : “Web services development software can process the WSDL document and generate the SOAP messages automatically that are needed to invoke that specific service.”
    This site does exactly what you mention, including full documentation.
    http://www.apigenerator.com/

  4. admin says:

    Nice site Robert, I think I should start to use this site to generate PHP SOAP Client Class. Thanks for visiting my blog anyway….

    Keep up the great work!

  5. Robert says:

    I only recently bumped into the site. Makes for a quick start.
    And just keep writing good articles and we’ll be back.

  6. Merlin Elms says:

    Where else can novices salvage distinctive tutorials?

  7. Gebhard says:

    REST – replacing more and more SOAP – should be discussed here as well.

    Especially for data services REST seems to be the way to go.
    For details see
    http://msdn.microsoft.com/en-us/library/ff478141.aspx
    http://www.odata.org/developers/protocols/overview.aspx

    REST conform designed web services need not be described in WSDL files (as far as I can see – please tell me should I be wrong).

  8. admin says:

    Gebhard,

    REST will be discuss here very soon.. :)

    actually, REST need a service document as well as SOAP, it’s called WADL. Interesting discussion about REST & WADL, i think i would start to post an article about it.. :)

  9. Joe says:

    Hi,
    I am working as a CICS sysprog and I am very new to SOA.
    This year i may get a chance to work with CICS-SOA applications.
    I was not sure where to start.
    But this tutorial gave me good explanations.

    Thanks.
    Joe

  10. admin says:

    Congratulations Joe, and welcome to the SOA World! :)

  11. ~-; I am really thankful to this topic because it really gives great information .,:

  12. Sreeni says:

    It’s a great information for any one to start with SOAP, WSDL, UDDI

    Thanks a lot.
    Sreeni

  13. You have dealt with a few curious things in this posting. I found this by using Google and I’ve got to admit that I already subscribed to your site, it is quite good :D

  14. Pfft says:

    Pffft, SOAP, WSDL, and UDDI are dead.

  15. I have not checked in here for a while as I thought it was getting boring, but the last few posts are good quality so I guess I will add you back to my daily bloglist. You deserve it friend :)

  16. situsini says:

    I read many posts on your blog but I’m still confused about all the discussion I think is very complicated. maybe because I am a beginner in the field of technology. but all your articles can be an inspiration for me

  17. DG says:

    I am a test automation engineer, looking into performance testing of web services using SOAP over HTTP. I don’t know much about SOAP and Web Services, so thank you for the provided information.

    While I was trying to sort things out, I came across this Wiki page that says that SOAP “is sometimes confused with SOA, which stands for Service-oriented architecture, but the two are unrelated.” From: http://en.wikipedia.org/wiki/SOAP

    I have two questions:
    1. Can you please comment on that Wiki statement above, as it seems that there is a tight relation between SOA and SOAP?
    2. Can you please shed some light on how SOAP and HTTP are related, used together?

    Thank you very much in advance.

  18. admin says:

    @DG :

    1. SOA is an architecure of application, while SOAP is a protocol specification that running under HTTP or SMTP protocol. I little bit disagree with Wiki statement that SOA and SOAP is not related, because ONE of the protocol specification to build SOA is using SOAP. The bottom line is there are many protocol specifiaction / way to build SOA.

    2. SOAP is a protocol specification that running under HTTP.

    Hope this answer your questions… :)

  19. Nivas says:

    thxs for explanation about soap n wsdl and uddi.it is very useful for me.can u send me the soap,wsdl,uddi,xml and soa 11g related docs or links.
    thanks in advance

    Thanks,
    Nivas.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>