# Web services overview

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.

Web services are self-contained, self-describing modular applications that can be published, located, and invoked across the Web.

> Web services are self-contained. 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.

> Web services are self-describing. 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.

> Web services are modular. 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.

> Web Services are platform independent. 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.

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.

#### Categories of Web services

Web services can be grouped into three categories:

> Business information. 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.

> Business integration. 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.

> Business process externalization. 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.

#### Service roles and interactions

A network component in a Web Services architecture can play one or more fundamental roles: service provider, service broker, and service client.

- 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.
- Service brokers register and categorize published services and provide search services. For example, UDDI acts as a service broker for WSDL-described Web services.
- 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.

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.

Figure 1. Service roles and interactions.

For more information on Web services, refer to www.ibm.com/developerworks/webservices

- Web services standards
  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.
- Creating top-down Web services
  Web services can be created using two methods: top-down development and bottom-up development. Top-down Web services development involves creating a Web service from a WSDL file.
- Creating bottom-up Web services
  Web services can be created using two methods: top-down development and bottom-up development. Bottom-up Web services development involves creating a Web service from a Java bean or enterprise bean.

Related Concepts
Tools for Web services development
Web services standards
Related Tasks
Developing Web services