|
Web Services - Web Services Tutorials
In this section of the Web Services tutorial you
will be familiarized with the Web Services.
Introduction
The next generation of distributed computing has
arrived. A Web service is a unit of managed code that can be remotely invoked
using HTTP, that is, it can be activated using HTTP requests.
Historically speaking, remote access to binary units
required platform-specific and sometimes language-specific protocols. For
example, DCOM clients access remote COM types using tightly coupled
RPC calls.
CORBA requires the use of tightly coupled protocol referred to as Internet
Inter-ORB Protocol (IIOP), to activate remote types. Enterprise JavaBeans (EJBs)
requires a Remote Method Invocation (RMI) Protocol and by and large a specific
language (Java). Thus each of these remote invocation architectures needs
proprietary protocols, which typically require a tight connection to the remote
source.
One can access Web services using nothing but HTTP. Of
all the protocols in existence today, HTTP is the one specific wire protocol
that all platforms tend to agree on. Thus , using Web services, a Web service
developer can use any language he wish and a Web service consumer can use
standard HTTP to invoke methods a Web service provides. The bottom line is that
we have true language and platform integration . Simple Object Access Protocol
(SOAP) and XML are also two key pieces of the Web services
architecture.
What is a Web Service
Web services constitute a distributed computer
architecture made up of many different computers trying to communicate over the
network to form one system. They consist of a set of standards that allow
developers to implement distributed applications - using radically different
tools provided by many different vendors - to create applications that use a
combination of software modules called from systems in disparate departments or
from other companies.
A Web service contains some number of classes,
interfaces, enumerations and structures that provide black box functionality to
remote clients. Web services typically define business objects that execute a
unit of work (e.g., perform a calculation, read a data source, etc.) for the
consumer and wait for the next request. Web service consumer does not
necessarily need to be a browser-based client. Console-baed and Windows
Forms-based clients can consume a Web service. In each case, the client
indirectly interacts with the Web service through an intervening proxy. The
proxy looks and feels like the real remote type and exposes the same set of
methods. Under the hood, the proxy code really forwards the request to the Web
service using standard HTTP or optionally SOAP messages.
Web Service Standards
Web services are registered and announced using the
following services and protocols. Many of these and other standards are being
worked out by the UDDI project, a group of industry leaders that is spearheading
the early creation and design efforts.
Universal Description, Discovery, and Integration (UDDI)
is a protocol for describing available Web services components. This standard
allows businesses to register with an Internet directory that will help them
advertise their services, so companies can find one another and conduct
transactions over the Web. This registration and lookup task is done using XML
and HTTP(S)-based mechanisms.
Simple Object Access Protocol (SOAP) is a protocol for
initiating conversations with a UDDI Service. SOAP makes object access simple by
allowing applications to invoke object methods or functions, residing on remote
servers. A SOAP application creates a request block in XML, supplying the data
needed by the remote method as well as the location of the remote object itself.
Web Service Description Language (WSDL), the proposed
standard for how a Web service is described, is an XML-based service IDL
(Interface Definitition Language) that defines the service interface and its
implementation characteristics. WSDL is referenced by UDDI entries and describes
the SOAP messages that define a particular Web service.
ebXML (e-business XML) defines core components,
business processes, registry and repository, messaging services, trading partner
agreements, and security.
Implementing Web Services
Here comes a brief step-by-step on how a Web service is
implemented.
- A service provider creates a Web service
- The service provider uses WSDL to describe the
service to a UDDI registry
- The service provider registers the service in a UDDI
registry and/or ebXML registry/repository.
- Another service or consumer locates and requests the
registered service by querying UDDI and/or ebXML registries.
- The requesting service or user writes an application
to bind the registered service using SOAP in the case of UDDI and/or
ebXML
- Data and messages are exchanged as XML over HTTP
Web Service Infrastructure
Even though Web services are being built using existing
infrastructure, there exists a strong necessity for a number of innovative
infrastructures. The core architectural foundation of Web services are XML,
XML namespaces, and XML schema. UDDI, SOAP, WSDL,
ebXML and security standards are
being developed in parallel by different vendors
Web Services Technologies and Tools
There are a number of mechanisms for constructing Web
services. Microsoft has come out with a new object-oriented language C# as the
development language for Web services and .NET framework. Microsoft has an
exciting tool called Visual Studio .NET in this regard. The back end database
can be Microsoft SQL Server 2000 in Windows 2000 Professional.
Sun Microsystems has its own set of technologies and
tools for facilitating Web services development. Java Servlets, Java Server
Pages (JSPs), Enterprise JavaBeans (EJB) architecture and other Java 2
Enterprise Edition (J2EE) technologies play a very critical role in developing
Web services.
There are a number of tools for developing Web
services. They are Forte Java IDE, Oracle JDeveloper, and WebGain Studio.
Sun Microsystems has taken an initiative called Sun ONE
(Open Network Environment) and is planning to push Java forward as a platform
for Web services. It is developing Java APIs for XML-based remote procedure
calls and for looking up services in XML registries - two more JAX family APIs:
JAX/RPC (Java API for XML Remote Procedure Calls) and JAXR (Java API for XML
Registries). These will wrap up implementations of Web services standards, such
as SOAP and UDDI.
IBM also for its part has already developed a suite of
early-access tools for Web services development. They are Web Services Toolkit (WSTK),
WSDL Toolkit, and Web Services Development Environment (WSDE).
Apache Axis is an implementation of the SOAP
("Simple Object Access Protocol") submission
to W3C.
From the draft W3C specification:
SOAP is a lightweight protocol for exchanging structured
information in a decentralized, distributed environment. It is an XML based
protocol that consists of three parts: an envelope that defines a framework
for describing what is in a message and how to process it, a set of encoding
rules for expressing instances of application-defined datatypes, and a
convention for representing remote procedure calls and responses.
Apache Axis is an Open Source SOAP server
and client. SOAP is a mechanism for inter-application communication between
systems written in arbitrary languages, across the Internet. SOAP usually
exchanges messages over HTTP: the client POSTs a SOAP request, and receives
either an HTTP success code and a SOAP response or an HTTP error code. Open
Source means that you get the source, but that there is no formal support organization
to help you when things go wrong.
Conclusion
For the last few years, XML has enabled heterogeneous
computing environments to share information over the Web. It now offers a
simplified means by which to share process as well. From a technical
perspective, the advent of Web services is not a revolution in distributed
computing. It is instead a natural evolution of XML application from structured
representation of information to structured representation of inter-application
messaging.
Prior to the advent of Web services, enterprise
application integration (EAI) was very difficult due to differences in
programming languages and middleware used within organizations. This led to the
situation where interoperability was cumbersome and painful. With the arrival of
Web services, any application can be integrated as long as it is
Internet-enabled.
It is difficult to avoid the popularity and hype that
is surrounding Web services. Each software vendor has some initiative concerning
Web services and there is always great speculation about the future of the
market for them. Whichever way it turns out, Web service architectures provide a
very different way of thinking about software development. From client-server to
n-tier systems, to distributed computing, Web service applications represent the
culmination of each of these architectures in combination with the Internet.
|