AspAlliance.com LogoASPAlliance: Articles, reviews, and samples for .NET Developers
URL:
http://aspalliance.com/articleViewer.aspx?aId=218&pId=-1
The Rise of Web Services: Completing the Picture
page
by Jean-Christophe Cimetiere
Feedback
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 30560/ 54

Introduction
Johann Dumser, R&D Consultant, Techmetrix.com (jdumser@techmetrix.net)
Jean-Christophe Cimetiere, CEO,
Techmetrix.com (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 XMethods 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, ApacheSOAP, and a Perl implementation, SOAP::Lite.

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 4s4c.

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 UDDI (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 site and on Microsoft's site. 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 issue 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.com 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 Electric, 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 home (December 2000) and The Ins and Outs of Web Syndication (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.soaprpc.com/
http://www.soap-wrc.com/
http://soap.weblogs.com
http://www.perfectxml.com/soap.asp

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

SOAP Implementations:
Java - IBM/Apache:
http://xml.apache.org/soap/

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

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


TechMetrix Research is a technical research firm specialized in e-business application development needs.

Product Spotlight
Product Spotlight 

©Copyright 1998-2024 ASPAlliance.com  |  Page Processed at 2024-04-18 9:39:04 PM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search