SOA Tutorial
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.

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.

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.
Great explanation about SOA Technology, this is really what i seek, thanks!
You’re welcome Tommy, thanks for visiting this blog.
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/
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!
I only recently bumped into the site. Makes for a quick start.
And just keep writing good articles and we’ll be back.
Where else can novices salvage distinctive tutorials?
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).
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..
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
Congratulations Joe, and welcome to the SOA World!
~-; I am really thankful to this topic because it really gives great information .,:
It’s a great information for any one to start with SOAP, WSDL, UDDI
Thanks a lot.
Sreeni
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
Pffft, SOAP, WSDL, and UDDI are dead.
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
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
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.
@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…
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.