Friday, 10 February 2012

SOA: XML, WSDL, SOAP, Web Service


What is XML?

Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications

As of 2009, hundreds of XML-based languages have been developed, click on the link to see the number of XML based language http://en.wikipedia.org/wiki/List_of_XML_markup_languages

Read more about XML and understand it before continuing to read this article.

What is WSDL?

WSDL (Web Services Description Language) is one of the XML-based language for describing Web services and how to access them. It specifies the location of the service and the operations (or methods) the service exposes.

  • WSDL stands for Web Services Description Language
  • WSDL is written in XML
  • WSDL is an XML document
  • WSDL is used to describe Web services
  • WSDL is also used to locate Web services
  • WSDL is a W3C recommendation

Now we know what WSDL is and we have to understand SOAP.

What is a Protocol?

A protocol is a set of rules that governs the communications between computers on a network. In order for two computers to talk to each other, they must be speaking the same language. Many different types of network protocols and standards are required to ensure that your computer (no matter which operating system, network card, or application you are using) can communicate with another computer located on the next desk or half-way around the world. The OSI (Open Systems Interconnection) Reference Model defines seven layers of networking protocols. The complexity of these layers is beyond the scope of this tutorial; however, they can be simplified into four layers to help identify some of the protocols with which you should be familiar (see fig 1).

OSI Layer

Name

Common Protocols

7

Application

HTTP | FTP | SMTP | DNS | Telnet

6

Presentation

5

Session

4

Transport

TCP | SPX

3

Network

IP | IPX

2

Data Link

Ethernet

1

Physical

Fig 1. OSI model related to common network protocols

Figure 1 illustrates how some of the major protocols would correlate to the OSI model in order to communicate via the Internet. In this model, there are four layers, including:

  • Ethernet (Physical/Data Link Layers)
  • IP/IPX (Network Layer)
  • TCP/SPX (Transport Layer)
  • HTTP, FTP, Telnet, SMTP, WAP, and DNS(combined Session/Presentation/Application Layers)

What is SOAP?

SOAP: (Simple Object Access Protocol) A group of vendors from Microsoft, IBM, Lotus and others, created an XML-based protocol that lets you activate applications or objects within an application across the Internet. SOAP codifies the practice of using XML and HTTP to invoke methods across networks and computer platforms.

  • SOAP stands for Simple Object Access Protocol
  • SOAP is a communication protocol
  • SOAP is for communication between applications
  • SOAP is a format for sending messages
  • SOAP communicates via Internet
  • SOAP is platform independent
  • SOAP is language independent
  • SOAP is based on XML
  • SOAP is simple and extensible
  • SOAP allows you to get around firewalls
  • SOAP is a W3C recommendation

 

SOA Technology: SOAP, WSDL, UDDI

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 working language 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.

clip_image002

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.

clip_image004

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.

2 comments: