Web services are self-contained, modular applications that we can describe, publish, locate, and invoke over a network. WAS implements a number of core technologies on which Web services are developed and implemented.
If we have an existing application, and you want to make the service that the application provides available to others - either within our own organization or beyond it - we can use Web services technologies to provide a standard Web interface for the service. Web services can be defined as middleware that connects applications together no matter how each application is implemented or where it is located.
Web services operate at a level of abstraction that is similar to the Internet; they can work with any operating system, hardware platform or programming language that can be Web-enabled and are one of the technologies that we can use to implement a SOA.
The WAS v7 supports a set of Web services standards that support the creation and administration of interoperable, securable, transactionable, and reliable Web services applications. Using the strategic JAX-WS model, Web service clients can now additionally invoke Web services asynchronously, which means your client can continue processing without waiting on the response. Your JAX-WS Web services can also take advantage of the Web Services Reliable Messaging protocol quality of service where we can be confident that the communication is reliable and reaches its destination while interoperating with other vendors.
- Web Services for Java EE
- Defines the model and runtime architecture for implementing Web services based on the Java language. WAS V 7.0 is supports Web Services for Java EE spec (JSR 109), V 1.2.
- Java API for XML Web Services (JAX-WS)
- Simplifies the development of Web services and clients with greater platform independence for Java applications by the use of dynamic proxies and Java annotations. WAS V7.0 supports JAX-WS 2.1.
- Java API for XML-Based RPC (JAX-RPC)
- JAX-RPC enables you to develop SOAP-based interoperable and portable Web services and Web services clients.
- Provides a way to map Java classes and XML schema for simplified development of Web services. JAXB leverages the flexibility of platform-neutral XML data in Java applications to bind XML schema to Java applications without requiring extensive knowledge of XML programming. WAS V7.0 supports JAXB 2.1.
- SOAP with Attachments API for Java interface (SAAJ)
- SAAJ is used for SOAP messaging that works behind the scenes in the JAX-WS or JAX-RPC implementation. We can also use this API to directly write SOAP messaging applications rather than using JAX-WS or JAX-RPC. SAAJ enables you to do XML messaging from the Java platform by making method calls by creating, sending and consuming XML messages over the Internet.
- A Web Services Invocation Framework (WSIF)
- SOAP bindings for Web services are part of the WSDL specification. So when you think of using a Web service, you probably think of assembling a SOAP message and sending it across the network to the service endpoint, using some SOAP client API. The WSDL spec enables for extensibility points which can describe alternate ways of invoking a Web service. A WSIF client can make use of these non-SOAP descriptions to invoke a service in a more efficient way. For example, a Web service provider might offer a SOAP binding for the service and a local Java binding that enables you to treat the local service implementation (a Java class) as a Web service. If the client is deployed in the same environment as the service, then the local Java binding for the service can be used. This provides more efficient communication with the service by making direct Java calls rather than sending and receiving SOAP messages.
- To deploy a Web service as a WSIF-enabled service, you first develop and deploy the Web service, then you develop the WSIF client based on the WSDL document for that Web service.
Web services standards
- SOAP Message Transmission Optimization Mechanism (MTOM)
- XML (Extensible Markup Language)
- XML solves the problem of data independence. You use it to describe data, and also to map that data into and out of any application or programming language.
- WSDL (Web Services Description Language)
- Create a description of an underlying application. It is this description that turns an application into a Web service, by acting as the interface between the underlying application and other Web-enabled applications.
- SOAP 1.1 and 1.2
- SOAP is the core communications protocol for the Web, and most Web services use this protocol to talk to each other.
- SOAP Qualities of Service
- We can get different qualities of service with WS-ReliableMessaging, depending on the level of durability and transaction support provided by the store used to manage the reliable messaging state. These qualities of service range from protecting against loss of messages across a network, through to protecting against server failure.
- IBM supports WS-Security, which is an extension of the Web services engine, to provide a quality of service. The WAS security infrastructure fully integrates WS-Security with the Java EE security specification.
- WS-Transaction is an interoperability standard that includes the WS-AtomicTransaction, WS-BusinessActivity, and WS-Coordination specifications.
- With WS-ReliableMessaging, we can make the SOAP over HTTP-based Web services interoperable and reliable without having to write custom code.
See Add assured delivery to Web services through WS-ReliableMessaging
- WS-Policy is an interoperability standard to describe and communicate the policies of a Web service so that service providers can export policy requirements in a standard format. Clients can combine the service provider requirements with their own capabilities to establish the policies required for a specific interaction.
- The WS-MetadataExchange spec defines a mechanism to retrieve metadata from an endpoint. WebSphere Application Server supports the use of the WS-MetadataExchange 1.1 GetMetadata request to return metadata in a response.
- WS-Secure Exchange is an effort to normalize the WS-SecureConversation, WS-SecurityPolicy and WS-Trust suite of specifications.
- Web Services Trust (WS-Trust) is a proposed Organization for the Advancement of Structured Information Standards (OASIS) standard that enables security token interoperability by defining a request/response protocol. This protocol enables SOAP actors, such as a Web services client, to request of some trusted authority that a particular security token be exchanged for another. The trust service, which is provided with WebSphere® Application Service, uses the secure messaging mechanisms of WS-Trust to define additional extensions for the issuance, exchange, and validation of security tokens.
Other Web services and related technologies
- WS-Notification enables Web services to use the "publish and subscribe" messaging pattern. In this pattern a producing application inserts (publishes) a message (event notification) into the messaging system, having marked it with a topic that indicates the subject area of the message. Consuming applications that have subscribed to the topic and have the appropriate authority, receive an independent copy of the message that was published by the producing application.
WS-Notification also enables interchange of event notification between WS-Notification applications and other clients of the service integration bus. By exploiting other service integration bus functionality, we can also use this function to interchange messages with other IBM publish and subscribe brokers such as Event Broker or Message Broker.
- Web services and service integration technologies
Web services can use the service integration bus and the Web services gateway to provide a single point of control, access, and validation of Web service requests and to enable control of Web services that are available to different groups of Web service users. With service integration bus-enabled Web services, we can achieve the following goals:
- Take an internally-hosted service that is available at a bus destination, and make it available as a Web service.
- Take an externally-hosted Web service, and make it available internally at a bus destination.
- Use the Web services gateway to map an existing service - either an internal service, or an external Web service - to a new Web service that appears to be provided by the gateway.
See Enable Web services through service integration technologies
- A private UDDI registry
- A private UDDI registry provides a way to publish and discover information about Web services that are available within and through the organization. Use it to make the Web services available to people within the organization, or beyond the organization. A group of companies can use it to share their Web services, or to make them available to others outside the group. At its simplest, a private UDDI registry does for Web services what a business telephone directory does for business addresses and telephone numbers. However, a private UDDI registry is much more than just a directory. It needs to be in order to harness the considerable power and flexibility of Web services. If we publish the Web service to UDDI, you make it available for other people or applications to discover and reuse. This saves development time, effort and cost, and helps minimize the need to maintain several different implementations of the same application.
- Web services distributed management (WSDM)
- WSDM is an OASIS approved standard that supports managing resources through a standardized Web service interface. Your environment, such as WebSphere® Application Server host or an operating system host that has an exposed resource as a Web service within a single interface is used to manage and control resources. WSDM is a distributed management model, but it does not replace any existing WAS administration models.
- Streaming API for XML (StAX)
- StAX is an efficient method to change and traverse XML data. In previous releases, if we wanted to manipulate XML schemas and types, you had to use one of two standard mechanisms for parsing the XML data: Documents Object Model (DOM) and Simple API for XML (SAX). StAX is another, more efficient, alternative to manipulate XML data.
- EJB 3.0
- The EJB 3.0 spec provides the foundation of the development and application model for EJB 3.0 applications.
For a complete list of the supported standards and specifications, see the Web services specifications and API documentation.