Pages

Friday, May 22, 2009

Web Service Quick Start

 

What are Web Services?
Web services are application components
Web services communicate using open protocols
Web services are self-contained and self-describing
Web services can be discovered using UDDI
Web services can be used by other applications
XML is the basis for Web services

How Does it Work?
The basic Web services platform is XML + HTTP.

XML provides a language which can be used between different platforms and programming languages and still express complex messages and functions.

The HTTP protocol is the most used Internet protocol.

below are Web services platform elements:

SOAP (Simple Object Access Protocol)
a framework for exchanging XML-based information in a network
It defines a uniform way of passing XML-encoded data.
In also defines a way to perform remote procedure calls (RPCs) using HTTP as the underlying communication protocol.

UDDI (Universal Description, Discovery and Integration)
provides a registry mechanism for clients and servers to find each other
uses SOAP for communication

WSDL (Web Services Description Language)
an XML-based language for describing network services
WSDL descriptions of capabilities and locations of services
like an interface description language for Web services
communication using SOAP or direct HTTP

Web services uses set of tools that can be used in a number of ways. The three most common styles of use are RPC, SOA and REST.
Remote procedure calls
RPC Web services present a distributed function (or method) call interface that is familiar to many developers.
Typically, the basic unit of RPC Web services is the WSDL operation
The first Web services tools were focused on RPC, and as a result this style is widely deployed and supported. However, it is sometimes criticized for not being loosely coupled, because it was often implemented by mapping services directly to language-specific functions or method calls. Many vendors felt this approach to be a dead end, and pushed for RPC to be disallowed in the WS-I Basic Profile.

Service-oriented architecture
Web services can also be used to implement an architecture according to Service-oriented architecture (SOA) concepts, where the basic unit of communication is a message, rather than an operation. This is often referred to as "message-oriented" services.

SOA Web services are supported by most major software vendors and industry analysts. Unlike RPC Web services, loose coupling is more likely, because the focus is on the "contract" that WSDL provides, rather than the underlying implementation details.

Representational state transfer
Representational State Transfer (REST) attempts to describe architectures which use HTTP or similar protocols by constraining the interface to a set of well-known, standard operations (like GET, POST, PUT, DELETE for HTTP). Here, the focus is on interacting with stateful resources, rather than messages or operations. An architecture based on REST (one that is 'RESTful') can use WSDL to describe SOAP messaging over HTTP, which defines the operations, can be implemented as an abstraction purely on top of SOAP (e.g., WS-Transfer), or can be created without using SOAP at all.

 

Further to understand how RPC model can be defined using the following steps:

1. A client application builds an XML document containing the URI of the server that will service the request, the name of the remote method to execute, and the parameters associated with that method.
2. The targeted server receives and unwinds the XML document. It then executes the named method.
3. After the named method has returned its results, the results are packed into a response XML document, which is sent back to the calling client.
4. The client application receives the response and unwinds the results, which contains the response of the invocated method.

Web Services tools with Java
The most essential Java tools for Web service development:
xml.apache.org/axis - Apache AXIS (Apache Extensible Interaction System)
a Java-based implementation of SOAP+WSDL
largely allows the programmer to forget these technologies  typically used together with Tomcat

www.alphaworks.ibm.com/tech/ettk - alphaWorks's EETK (Emerging Technologies Toolkit)
support for SOAP, WSDL, UDDI and much more...

java.sun.com/webservices/downloads/webservicespack.html - Sun's Java WSDP (Web Services Developer Pack)
support for SOAP, WSDL, UDDI, ...
JAX-RPC maps SOAP/WSDL to RMI (Java Remote Method Invocations)

imp links
Tutorial on what is web service
http://www.w3schools.com/webservices/default.asp

Typical soap RPC based web service example
http://www.onjava.com/pub/a/onjava/2002/02/27/tomcat.html

List of web service framework on which web service can be built
http://en.wikipedia.org/wiki/List_of_Web_service_Frameworks

Wikipedia definition and detail note on web service
http://en.wikipedia.org/wiki/Web_service

Top Ten FAQs for Web Services
http://webservices.xml.com/pub/a/ws/2002/02/12/webservicefaqs.html

No comments:

Post a Comment