Web services Tutorials



Web services are open standard (XML, SOAP, HTTP etc.) based Web applications that interact with other web applications for the purpose of exchanging data. Web Services can convert your existing applications into Web-applications.

A web service is any piece of software that makes itself available over the internet and uses a standardized XML messaging system. XML is used to encode all communications to a web service. For example, a client invokes a web service by sending an XML message, then waits for a corresponding XML response. As all communication is in XML, web services are not tied to any one operating system or programming language--Java can talk with Perl; Windows applications can talk with Unix applications.

Web services are web 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
·     HTTP and XML is the basis for Web services
Web services can be published, found, and used on the Web.

Components of Web Services

The basic web services platform is XML + HTTP. All the standard web services work using the following components
·     SOAP (Simple Object Access Protocol)
·     UDDI (Universal Description, Discovery and Integration)
·     WSDL (Web Services Description Language)

Interoperability has Highest Priority

When all major platforms could access the Web using Web browsers, different platforms couldn't interact. For these platforms to work together, Web-applications were developed.
Web-applications are simply applications that run on the web. These are built around the Web browser standards and can be used by any browser on any platform.

Web Services take Web-applications to the Next Level
By using Web services, your application can publish its function or message to the rest of the world.
Web services use XML to code and to decode data, and SOAP to transport it (using open protocols).
For example: With Web services, your accounting department's Win 2k server's billing system can connect with your IT supplier's UNIX server.

Web Services have Two Types of Uses
Reusable application-components.
Web services can offer application-components like: currency conversion, weather reports, or even language translation as services.
Connect existing software.
Web services can help to solve the interoperability problem by giving different applications a way to link their data. With Web services you can exchange data between different applications and different platforms.


How Does a Web Service Work?

A web service enables communication among various applications by using open standards such as HTML, XML, WSDL, and SOAP. A web service takes the help of:
·     XML to tag the data
·     SOAP to transfer a message
·     WSDL to describe the availability of service.
You can build a Java-based web service on Solaris that is accessible from your Python program that runs on Windows.
You can also use C# to build new web services on Windows that can be invoked from your web application that is based on JavaServer Pages (JSP) and runs on Linux.

Example

Consider a simple account-management and order processing system. The accounting personnel use a client application built with Visual Basic or JSP to create new accounts and enter new customer orders.
The processing logic for this system is written in Java and resides on a Solaris machine, which also interacts with a database to store information.
The steps to perform this operation are as follows:
·     The client program bundles the account registration information into a SOAP message.
·     This SOAP message is sent to the web service as the body of an HTTP POST request.
·     The web service unpacks the SOAP request and converts it into a command that the application can understand.
·     The application processes the information as required and responds with a new unique account number for that customer.
·     Next, the web service packages the response into another SOAP message, which it sends back to the client program in response to its HTTP request.
·    The client program unpacks the SOAP message to obtain the results of the account registration process.
Web services characteristics
Web services have the following special behavioral characteristics:

XML-Based

Web Services uses XML at data representation and data transportation layers. Using XML eliminates any networking, operating system, or platform binding. Web Services based applications are highly interoperable application at their core level.

Loosely Coupled

A consumer of a web service is not tied to that web service directly. The web service interface can change over time without compromising the client's ability to interact with the service. A tightly coupled system implies that the client and server logic are closely tied to one another, implying that if one interface changes, the other must be updated. Adopting a loosely coupled architecture tends to make software systems more manageable and allows simpler integration between different systems.

Coarse-Grained

Object-oriented technologies such as Java expose their services through individual methods. An individual method is too fine an operation to provide any useful capability at a corporate level. Building a Java program from scratch requires the creation of several fine-grained methods that are then composed into a coarse-grained service that is consumed by either a client or another service.
Businesses and the interfaces that they expose should be coarse-grained. Web services technology provides a natural way of defining coarse-grained services that access the right amount of business logic.

Ability to be Synchronous or Asynchronous

Synchronicity refers to the binding of the client to the execution of the service. In synchronous invocations, the client blocks and waits for the service to complete its operation before continuing. Asynchronous operations allow a client to invoke a service and then execute other functions.
Asynchronous clients retrieve their result at a later point in time, while synchronous clients receive their result when the service has completed. Asynchronous capability is a key factor in enabling loosely coupled systems.

Supports Remote Procedure Calls(RPCs)

Web services allow clients to invoke procedures, functions, and methods on remote objects using an XML-based protocol. Remote procedures expose input and output parameters that a web service must support.
Component development through Enterprise JavaBeans (EJBs) and .NET Components has increasingly become a part of architectures and enterprise deployments over the past couple of years. Both technologies are distributed and accessible through a variety of RPC mechanisms.
A web service supports RPC by providing services of its own, equivalent to those of a traditional component, or by translating incoming invocations into an invocation of an EJB or a .NET component.

Supports Document Exchange

One of the key advantages of XML is its generic way of representing not only data, but also complex documents. These documents can be as simple as representing a current address, or they can be as complex as representing an entire book or Request for Quotation (RFQ). Web services support the transparent exchange of documents to facilitate business integration.


Web Services Architecture
There are two ways to view the web service architecture:
·     The first is to examine the individual roles of each web service actor.
·     The second is to examine the emerging web service protocol stack.

Web Service Roles

There are three major roles within the web service architecture:

Service Provider

This is the provider of the web service. The service provider implements the service and makes it available on the Internet.

Service Requestor

This is any consumer of the web service. The requestor utilizes an existing web service by opening a network connection and sending an XML request.

Service Registry

This is a logically centralized directory of services. The registry provides a central place where developers can publish new services or find existing ones. It therefore serves as a centralized clearing house for companies and their services.

Web Service Protocol Stack

A second option for viewing the web service architecture is to examine the emerging web service protocol stack. The stack is still evolving, but currently has four main layers.

Service Transport

This layer is responsible for transporting messages between applications. Currently, this layer includes Hyper Text Transport Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), File Transfer Protocol (FTP), and newer protocols such as Blocks Extensible Exchange Protocol (BEEP).

XML Messaging

This layer is responsible for encoding messages in a common XML format so that messages can be understood at either end. Currently, this layer includes XML-RPC and SOAP.

Service Description

This layer is responsible for describing the public interface to a specific web service. Currently, service description is handled via the Web Service Description Language (WSDL).

Service Discovery

This layer is responsible for centralizing services into a common registry and providing easy publish/find functionality. Currently, service discovery is handled via Universal Description, Discovery, and Integration (UDDI).
As web services evolve, additional layers may be added and additional technologies may be added to each layer.
Service Transport
The bottom of the web service protocol stack is service transport. This layer is responsible for actually transporting XML messages between two computers.

Hyper Text Transfer Protocol (HTTP)

Currently, HTTP is the most popular option for service transport. HTTP is simple, stable, and widely deployed. Furthermore, most firewalls allow HTTP traffic. This allows XML-RPC or SOAP messages to masquerade as HTTP messages. This is good if you want to integrate remote applications, but it does raise a number of security concerns.

Blocks Extensible Exchange Protocol (BEEP)

This is a promising alternative to HTTP. BEEP is a new Internet Engineering Task Force (IETF) framework for building new protocols. BEEP is layered directly on TCP and includes a number of built-in features, including an initial handshake protocol, authentication, security, and error handling. Using BEEP, one can create new protocols for a variety of applications, including instant messaging, file transfer, content syndication, and network management.
SOAP is not tied to any specific transport protocol. In fact, you can use SOAP via HTTP, SMTP, or FTP. One promising idea is therefore to use SOAP over BEEP.

Web Services Components:
The three primary technologies have emerged as worldwide standards that make up the core of today's web services technology.

XML-RPC

This is the simplest XML-based protocol for exchanging information between computers.
·     XML-RPC is a simple protocol that uses XML messages to perform RPCs.
·     Requests are encoded in XML and sent via HTTP POST.
·     XML responses are embedded in the body of the HTTP response.
·     XML-RPC is platform-independent.
·     XML-RPC allows diverse applications to communicate.
·     A Java client can speak XML-RPC to a Perl server.
·     XML-RPC is the easiest way to get started with web services.

SOAP

SOAP is an XML-based protocol for exchanging information between computers.
·     SOAP is a communication protocol.
·     SOAP is for communication between applications.
·     SOAP is a format for sending messages.
·     SOAP is designed to communicate via Internet.
·     SOAP is platform independent.
·     SOAP is language independent.
·     SOAP is simple and extensible.
·     SOAP allows you to get around firewalls.
·     SOAP will be developed as a W3C standard.

WSDL

WSDL is an XML-based language for describing web services and how to access them.
·     WSDL stands for Web Services Description Language.
·     WSDL was developed jointly by Microsoft and IBM.
·     WSDL is an XML based protocol for information exchange in decentralized and distributed environments.
·     WSDL is the standard format for describing a web service.
·     WSDL definition describes how to access a web service and what operations it will perform.
·     WSDL is a language for describing how to interface with XML-based services.
·     WSDL is an integral part of UDDI, an XML-based worldwide business registry.
·     WSDL is the language that UDDI uses.
·     WSDL is pronounced as 'wiz-dull' and spelled out as 'W-S-D-L'.

UDDI

UDDI is an XML-based standard for describing, publishing, and finding web services.
·     UDDI stands for Universal Description, Discovery, and Integration.
·     UDDI is a specification for a distributed registry of web services.
·     UDDI is platform independent, open framework.
·     UDDI can communicate via SOAP, CORBA, and Java RMI Protocol.
·     UDDI uses WSDL to describe interfaces to web services.
·     UDDI is seen with SOAP and WSDL as one of the three foundation standards of web services.
·     UDDI is an open industry initiative enabling businesses to discover each other and define how they interact over the Internet.

Comments