perfectxml.com
 Basic Search  Advanced Search   
Topics Resources Free Library Software XML News About Us
  You are here: home Info Bank Articles » The Rise of Web Services: Completing the Picture Tuesday, 14 August 2007
 

Back to Articles Page      

        

TechMetrix The Rise of Web Services: Completing the Picture
 Reproduced with kind permission of TechMetrix Research External link
 Article written by: JOHANN DUMSER, R&D Consultant (jdumser@techmetrix.net) &
 JEAN-CHRISTOPHE CIMETIERE, CEO (jcc@techmetrix.com)

We've made it - the whole concept of Web Service is taking off. Certain companies have already taken the plunge and have joined support and development groups in an effort to standardize Web Service Description Languages, while others are concentrating on hosting and referencing primary services. Here's how XML, SOAP and, more recently, UDDI and WSDL are making this possible.

Hosting Web Services and supporting deployment
The XMethodsExternal link site is a portal which aims to promote Web Services. To this end, its three founders offer, free of charge, the possibility of using or offering Web Services of public interest with the aim of boosting their creation, deployment and use. Various SOAP implementations are available; these currently include a Java implementation, ApacheSOAPExternal link, and a Perl implementation, SOAP::LiteExternal link.

To be completely usable with most SOAP implementations, as XMethod suggests, a Web Service should provide a complete description which includes the following elements:
  • SOAP End point URL: URL where the SOAP server receives the SOAP request
    E.g.: http://www.server.com/rpcRouter
  • SOAPAction: Some services may demand a SOAPAction Header
    E.g.: urn:xmethodsSoapPing#pingHost
  • Method Namespace URI: URI (Univeral Resource Identifier) of the object for which the method is called
    E.g.: urn:StockQuoteEngine
  • Method Name(s): Name of the available methods
    E.g.: getStockQuote, getMarketCap
  • WSDL URL: URL of a file which fully describes a service in WSDL format. The WSDL description is all that is needed to execute the service.
    E.g.: http://www.server.com/stockquote.wsdl
  • Instructions: Instructions for use of service
  • Server Implementation: Writing environment necessary for interoperability
    E.g.: SOAP::Lite for Perl v0.35
  • Sample URL Client Code: Source code of the downloadable example
    E.g.: http://www.server.com/sampleClient.java


The examples shown on the XMethods site are very varied: translation using BabelFish Altavista, Verification of Domain Name, Ping Test, FedEx Package Tracking display of price of books at Barnes&Nobles.

Each service uses either the Perl implementation (SOAP::Lite) or the Java one (ApacheSOAP), but other initiatives have led to new listed implementations such as 4s4cExternal link.

For the majority of these services the code of the client example is available and ready for use. You simply need to configure your station using an appropriate implementation. This rapid and effective installation enables you to access SOAP services via a simple process, which consists in invoking a SOAP object which defines its end point, URI and the method to be called corresponding to the service requested.

We carried out interoperability tests between Java and Perl implementations and these proved conclusive. We will discuss these aspects in more detail in a later article.

In order to avoid the security restrictions imposed by certain companies, XMethods has made all its services available on port 80 (standard port for HTTP). In addition, XMethods tries as far as possible to provide the WSDL associated with each service, as more and more implementations rely on this description language to call Web Services.


WSDL: Web Service Description Language

As with any IDL (Interface Definition Language) which plays the role of service describer in CORBA, WSDL is an XML syntax used to describe Web Services. Its specifications are the result of a joint effort from Microsoft, IBM and Ariba.

Microsoft already has a SOAP service description language called SDL (Service Definition Language). SDL, although present in November's SOAPToolkit version, is replaced by WSDL (Web Service Definition Language) in the new version, Toolkit 2.0 Beta 1, as Microsoft is currently repositioning itself.

The same three companies (Microsoft, IBM and Ariba) are also behind another initiative called UDDIExternal link (Universal Description, Discovery and Integration), whose aim is to form a series of directories which will reference companies offering B2B oriented services and, more specifically, Web Services. The first implementation of the Business Registry UDDI project was launched in November 2000 with the participation of Ariba, IBM and Microsoft, all three of whom are operating a distributed UDDI base (UDDI Registry). Although launched outside of the UDDI group, the WSDL specification should quickly find its niche within UDDI as a standard for describing Web Services.

The WSDL specification is available on IBM's developerWorks siteExternal link and on Microsoft's siteExternal link. WSDL is an important factor in the development of SOAP, and it facilitates the interoperability of Web Services. An increasing number of SOAP implementations support this description language. Thanks to WSDL, SOAP implementations can self-configure exchanges between Web Services while masking most of the technical details.


WSDL Architecture

A WSDL document has clearly defined sub-elements. It begins with the tag which describes the service called, and has several sub-tags to ensure the sequence of a SOAP message.

<?xml version="1.0" ?>
<definitions
name="BabelFishService"
targetNamespace=
"http://www.xmethods.net/BabelFishService"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="BabelFishRequest">
<message name="BabelFishResponse">
<portType name="BabelFishPortType">
<binding name="BabelFishBinding" type= "BabelFishPortType">
<service name="BabelFish">
</definitions>


Message

-> Definition of conveyed data which is the input/output of the XML Payload of a SOAP message (see the SOAP article in our December issueExternal link for details on Payload).


<message name="BabelFishRequest">
<part name="translationmode" type="xsd:string" />
<part name="sourcedata" type="xsd:string" />
</message


PortType

-> All of the operations supported by specified break points.

<binding name="BabelFishBinding"
type="BabelFishPortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="BabelFish">
<soap:operation
soapAction="urn:xmethodsBabelFish#BabelFish" />
<input>
<soap:body
use="encoded"
namespace="urn:xmethodsBabelFish"
encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body
use="encoded" namespace="urn:xmethodsBabelFish"
encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>


Service

Address (location) of the endpoint, service name and associated comments.
<service name="BabelFish">
<documentation>Translates text.</documentation>
<port name="BabelFishPort" binding="BabelFishBinding">
<soap:address
location=
"http://services.xmethods.net:80/perl/soaplite.cgi" />
</port>
</service>


Moving towards Web Service portals

Various sites featuring technical articles, examples of code and forums are cropping up on the Web. For example, PerfectXML for SOAP or Soaprc.comExternal link are Web sites offering support, mailing lists and resources for SOAP.

There are also many other resources available, and we have listed some of these at the end of this article.

Worth special mention are the portals which reference available Web Services, although their content can be fairly sparse or simply formulated. This is the case with The Mind ElectricExternal link, presented as a Web service portal which aims to "design, build and license forward-thinking distributed computing infrastructure." Although still incomplete, this type of portal should develop quickly, using UDDI in particular.

The concept of Web Services has frequently featured in recent TrendMarkers articles, such as No place like Smart homeExternal link (December 2000) and The Ins and Outs of Web SyndicationExternal link (November 2000).

It is easy to pinpoint the building blocks which today are enabling the concept of Web Services to become a reality:
  • XML : a technology used to describe information
  • UDDI : to find the necessary services
  • WSDL : to describe how Web Services work
  • SOAP : to remotely execute Web Services

These four technologies are closely linked, although closer inspection highlights the two basic standards that have led to the Internet's success: HTTP and XML (bear in mind that HTML is derived from XML).

This is why we recommend that you begin experimenting with all of this technology within your distributed applications.

SOAP Bookmarks
Technical information, samples, articles:
http://www.perfectxml.com/SOAP.asp
External link  http://www.soaprpc.com/
External link  http://www.soap-wrc.com/
External link  http://soap.weblogs.com

Forums:
External link  http://discuss.develop.com/soap.html
External link  http://soap.weblogs.com/discuss/
External link  http://lists.w3.org/Archives/Public/xml-dist-app/

SOAP Implementations:
Java - IBM/Apache:
External link  http://xml.apache.org/soap/
.NET - Microsoft
External link  http://msdn.microsoft.com/soap/
Perl - SOAP::Lite - Paul Kulchenko:
External link  http://www.soaplite.com
Zvon.org - IdooXoap:
External link  http://www.zvon.org/index.php?nav_id=30
4S4C - Simon Fell:
External link  http://www.zaks.demon.co.uk/com/soap.html

Web Service Directories:
External link  http://www.uddi.org/register.html
External link  http://www.xmethods.com/
External link  http://www.soapwebservices.com/
External link  http://www.themindelectric.com/(opening soon)

TechMetrix  Reproduced with kind permission of TechMetrix Research External link
 Article written by: JOHANN DUMSER, R&D Consultant (jdumser@techmetrix.net) &
 JEAN-CHRISTOPHE CIMETIERE, CEO (jcc@techmetrix.com)


  

Back to Articles Page      



  Contact Us | E-mail Us | Site Guide | About PerfectXML | Advertise ©2004 perfectxml.com. All rights reserved. | Privacy