blob: a6c33e83a799a36e500253679187b4acdf56c571 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- /*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/ -->
<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
<title>Web services overview</title>
</head>
<body id="cws"><a name="cws"><!-- --></a>
<h1 class="topictitle1">Web services overview</h1>
<div><p>A Web service is a set of related application functions that can
be programmatically invoked over the Internet. Businesses can dynamically
mix and match Web services to perform complex transactions with minimal programming.
Web services allow buyers and sellers all over the world to discover each
other, connect dynamically, and execute transactions in real time with minimal
human interaction.</p>
<p>Web services are self-contained, self-describing modular applications that
can be published, located, and invoked across the Web.</p>
<blockquote> <p> <span class="uicontrol">Web services are self-contained.</span>  On
the client side, no additional software is required.  A programming language
with XML and HTTP client support is enough to get you started.  On the
server side, a Web server and servlet engine are required.  The client
and server can be implemented in different environments.  It is possible
to Web service enable an existing application without writing a single line
of code.</p>
<p> <span class="uicontrol">Web services are self-describing.</span> 
The client and server need to recognize only the format and content of request
and response messages.  The definition of the message format travels
with the message; no external metadata repositories or code generation tools
are required.</p>
<p> <span class="uicontrol">Web services are modular.</span> 
Simple Web services can be aggregated to form more complex Web services either
by using workflow techniques or by calling lower layer Web services from a
Web service implementation.</p>
<p><span class="uicontrol">Web Services are platform independent.</span> Web
services are based on a concise set of open, XML-based standards designed
to promote interoperability between a Web service and clients across a variety
of computing platforms and programming languages.</p>
</blockquote>
<p>Web services might be anything, for example, theatre review articles, weather
reports, credit checks, stock quotations, travel advisories, or airline travel
reservation processes. Each of these self-contained business services is an
application that can easily integrate with other services, from the same or
different companies, to create a complete business process. This interoperability
allows businesses to dynamically publish, discover, and bind a range of Web
services through the Internet.</p>
<div class="section"><h4 class="sectiontitle">Categories of Web services</h4><p>Web services can be grouped
into three categories:</p>
<blockquote> <p> <span class="uicontrol">Business information.</span> A
business shares information with consumers or other businesses. In this case,
the business is using Web services to expand its scope. Examples of business
informational Web services are news streams, weather reports, or stock quotations.</p>
<p> <span class="uicontrol">Business
integration.</span> A business provides transactional, "for fee" services
to its customers. In this case, the business becomes part of a global network
of value-added suppliers that can be used to conduct commerce. Examples of
business integration Web services include bid and auction e-marketplaces,
reservation systems, and credit checking.</p>
<p> <span class="uicontrol">Business process
externalization.</span> A business differentiates itself from its competition
through the creation of a global value chain. In this case, the business uses
Web services to dynamically integrate its processes. An example of business
process externalization Web services is the associations between different
companies to combine manufacturing, assembly, wholesale distribution, and
retail sales of a particular product.</p>
</blockquote>
</div>
<div class="section"><h4 class="sectiontitle">Service roles and interactions</h4><p>A network component
in a Web Services architecture can play one or more fundamental roles: service
provider, service broker, and service client.</p>
<ul><li>Service providers create and deploy their Web services and can publish
the availability of their WSDL-described services through a service registry,
such as a UDDI Business Registry.</li>
<li>Service brokers register and categorize published services and provide
search services. For example, UDDI acts as a service broker for WSDL-described
Web services.</li>
<li>Service clients use broker services such as the UDDI Business Registry
to discover a needed WSDL-described service and then bind to and call the
service provider.</li>
</ul>
<p>Binding involves establishing all environmental prerequisites that
are necessary to successfully complete the services. Examples of environmental
prerequisites include security, transaction monitoring, and HTTP availability.
The relationships between these roles are described in Figure 1.</p>
<p>Figure
1. Service roles and interactions.</p>
<p> <img src="../images/roles.gif" alt="Figure 1 illustrates the interactions between the service broker, service provider, and service requestor." /> </p>
</div>
<div class="section"><h4 class="sectiontitle">Web service standards</h4><p>One of the key attributes
of Internet standards is that they focus on protocols and not on implementations.
The Internet is composed of heterogeneous technologies that successfully interoperate
through shared protocols. This prevents individual vendors from imposing a
standard on the Internet. Open Source software development plays a crucial
role in preserving the interoperability of vendor implementations of standards.</p>
<p>The
following standards play key roles in Web services: Universal Description,
Discovery and Integration (UDDI), Web Services Description Language (WSDL),
Web Services Inspection Language (WSIL), Simple Object Access Protocol (SOAP)
and Web Services Interoperability (WS-I). The relationship between these standards
is described in Figure 2.</p>
<p>The UDDI specification defines open, platform-independent
standards that enable businesses to share information in a global business
registry, discover services on the registry, and define how they interact
over the Internet. For more information on UDDI, refer to <a href="http://www.uddi.org" target="_blank">www.uddi.org</a></p>
<p>WSIL
is an XML-based open specification that defines a distributed service discovery
method that supplies references to service descriptions at the service provider's
point-of-offering, by specifying how to inspect a Web site for available Web
services.  A WSIL document defines the locations on a Web site where
you can look for Web service descriptions. Since WSIL focuses on distributed
service discovery, the WSIL specification complements UDDI by facilitating
the discovery of services that are available on Web sites that may not be
listed yet in a UDDI registry. A separate topic in this documentation
discusses the <a href="cwsilud.html">Relationship between UDDI and WSIL</a>
For more information on WSIL, refer to <a href="http://www-106.ibm.com/developerworks/webservices/library/ws-wsilspec.html" target="_blank"> www.ibm.com/developerworks/webservices/library/ws-wsilspec.html</a></p>
<p>WSDL
is an XML-based open specification that describes the interfaces to and instances
of Web services on the network. It is extensible, so endpoints can be described
regardless of the message formats or network protocols that are used to communicate.
Businesses can make the WSDL documents for their Web services available though
UDDI, WSIL, or by broadcasting the URLs to their WSDL via email or Web sites.
WSDL is described as a separate topic in this documentation. For more information
on WSDL, refer to <a href="http://www.w3.org/TR/wsdl" target="_blank">www.w3.org/TR/wsdl</a></p>
<div class="p">SOAP
is an XML-based standard for messaging over HTTP and other Internet protocols.
It is a lightweight protocol for the exchange of information in a decentralized,
distributed environment. It is based on XML and consists of three parts:<ul><li>An envelope that defines a framework for describing what is in a message
and how to process it.</li>
<li>A set of encoding rules for expressing instances of application-defined
data types.</li>
<li>A convention for representing remote procedure calls and responses.</li>
</ul>
SOAP enables the binding and usage of discovered Web services by defining
a message path for routing messages. SOAP may be used to query UDDI for Web
services. For more information on SOAP, refer to <a href="http://www.w3.org/TR/SOAP" target="_blank">www.w3.org/TR/SOAP</a></div>
<p>Figure 2. Relationships between
SOAP, UDDI, WSIL and WSDL.</p>
<p> <img src="../images/soapudws.gif" alt="Figure 2 illustrates the relationships between SOAP, UDDI, WSIL, and WSDL." /> </p>
<p>A service provider hosts a Web
service and makes it accessible using protocols such as SOAP/HTTP or SOAP/JMS.
The Web service is described by a WSDL document that is stored on the provider's
server or in a special repository. The WSDL document may be referenced by
the UDDI business registry and WSIL documents. These contain pointers to the
Web service's WSDL files.</p>
<p>The WS-I Simple SOAP Binding Profile and WS-I
Attachments Profile are outlines of requirements to which WSDL and Web service
protocol (SOAP/HTTP) traffic must comply in order to claim WS-I conformance.
The Web services WS-I validation tools currently support WS-I Simple SOAP
Binding Profile 1.0 and the Attachment Profile 1.0. To view the specifications,
refer to the WS-I Web site, and under <span class="uicontrol">Resources</span> select
<span class="uicontrol">Documentation</span>: <a href="http://www.ws-i.org" target="_blank">http://www.ws-i.org</a></p>
<div class="p">Several
new Web services standards are also supported by Rational<sup>®</sup> Developer products. These
include:<dl><dt class="dlterm">JAX-RPC</dt>
<dd>JAX-RPC stands for Java™ API for XML-based RPC, also known as
JSR 101. It is a specification that describes Java Application Programming Interfaces
(APIs) and conventions for building Web services and Web service clients that
use remote procedure calls (RPC) and XML. It standardizes the Java to
WSDL and WSDL to Java mappings, and provides the core APIs for developing
and deploying Web services and Web service clients on the Java platform.
For more information refer to the <a href="http://www.jcp.org/en/jsr/detail?id=101" target="_blank">official specifications</a>.</dd>
<dt class="dlterm">JSR-109 and JSR-921</dt>
<dd>JSR-109 and JSR-921 (Implementing Enterprise Web Services) define the
programming model and run-time architecture to deploy and look up Web services
in the J2EE environment; more specifically, in the Web, EJB, and Client Application
containers. One of its main goals is to ensure vendors' implementations interoperate.
For more information, refer to the official specifications: <ul><li><a href="http://www.jcp.org/en/jsr/detail?id=109" target="_blank">JSR-109</a></li>
<li><a href="http://www.jcp.org/en/jsr/detail?id=921" target="_blank">JSR-921</a></li>
</ul>
</dd>
<dt class="dlterm">WS-S</dt>
<dd>Rational Developer
products support the OASIS Web Services Security 1.0 standard. For more information
on the various components of this standard, refer to:<ul><li><a href="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf" target="_blank">Web Services Security: SOAP Message Security
V1.0</a> </li>
<li> <a href="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf" target="_blank">Web Services Security: Username Token Profile
V1.0</a></li>
<li> <a href="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0.pdf" target="_blank">Web Services Security: X.509 Token Profile V1.0</a></li>
</ul>
</dd>
</dl>
</div>
<p>For more information on Web services, refer to <a href="http://www.ibm.com/developerworks/webservices" target="_blank">www.ibm.com/developerworks/webservices</a></p>
</div>
</div>
<div>
<div class="linklist"><strong>Related Concepts</strong><br />
<div><a href="cwsinwsa.html">Tools for Web services development</a></div>
<div><a href="cwsiover.html" title="WS-I is an organization designed to promote Web service interoperability across platforms, operating systems, and programming languages.">Web services
interoperability (WS-I)</a></div></div>
<div class="linklist"><strong>Related Tasks</strong><br />
<div><a href="../tasks/toverws.html" title="Use Web services tools to discover, create, and publish Web services that are created from Java beans, DADX files, enterprise beans, WSDL files, and URLs. The Rational Developer products support the creation of Web services using a top-down approach (which starts with a WSDL file) or a bottom-up approach (which starts with a Java bean or EJB)."> Developing Web
services</a></div></div>
</div>
</body>
</html>