Operating Systems: i5/OS
             Personalize the table of contents and search results

 

Introduction: Web services

 

Explore the key concepts pertaining to Web services applications. Web services are self-contained, modular applications that can be described, published, located, and invoked over a network. They implement a service-oriented architecture (SOA), which supports the connecting or sharing of resources and data in a flexible and standardized manner. Services are described and organized to support their dynamic, automated discovery and reuse.

The following list includes the core Web services concepts:

Web services

Web services are self-contained, modular applications that you can describe, publish, locate, and invoke over a network.

Web Services for J2EE specification

The Web services for J2EE specification defines the programming model and runtime architecture for implementing Web services based on the Java language. Another name for the Web Services for J2EE specification is the Java Specification Requirements (JSR) 109. The specification includes open standards for developing and implementing Web services.

Java API for XML-based RPC (JAX-RPC)

You can use the Java API for XML-based RPC (JAX-RPC) specification to develop SOAP-based interoperable and portable Web services and Web services clients. JAX-RPC provides core APIs for developing and deploying Web services on a Java platform and is a required part of the J2EE platform. Use the J2EE platform to develop portable Web services. You can also develop and deploy Web services on J2EE containers.

SOAP

SOAP is a specification for the exchange of structured information in a decentralized, distributed environment. SOAP represents the main way of communication between the three key actors in an SOA environment: service provider, service requestor and service broker. The main goal of its design is to be simple and extensible. A SOAP message is used to request a Web service.

SOAP with Attachments API for Java interface

SOAP with Attachments API for Java (SAAJ) is used for SOAP messaging that works behind the scenes in the JAX-RPC implementation. You can map XML to Java types with standards supported by the JAX-RPC specification; however, there are limited XML schema types. Therefore, you can use the SOAPElement interface to create a custom data binder.

Web Services-Interoperability Basic Profile

The Web Services-Interoperability (WS-I) Basic Profile is a set of non-proprietary Web services specifications that promote interoperability.

RMI-IIOP using JAX-RPC

JAX-RPC is the Java standard API for invoking Web services through remote procedure calls. A transport is used by a programming language to communicate over the Internet. You can use protocols with the transport such as SOAP and RMI. You can use Remote Method Invocation over Internet Inter-ORB Protocol (RMI-IIOP) with JAX-RPC to support non-SOAP bindings.

WS-I Attachments Profile

The WS-I Attachments Profile is a set of non-proprietary Web services specifications that promote interoperability. This profile compliments the WS-I Basic Profile to add support for interoperable SOAP messages with attachments-based Web services.

Service-oriented architecture

SOA is a collection of services that communicate with each other, for example, passing data from one service to another or coordinating an activity between one or more services.

Web services approach to a service-oriented architecture

The Web services approach implements a SOA. A major focus of Web services is to make functional building blocks accessible over standard Internet protocols that are independent from platforms and programming languages. These services can be new applications or just built on existing legacy systems to make them network-enabled. A service can rely on another service to achieve its goals.

Web services business models supported

A benefit of using a SOA is that Web services are well-suited for binding small modules that perform independent tasks within a highly heterogeneous e-business model. Web services can be easily built around existing applications in your business model and plugged into different business processes.

Custom data binders

A custom data binder is used to map XML schema types with Java objects. Custom data binders provide bindings for XML schema types that are not supported by the current JAX-RPC specification.

Custom binding providers

A custom binding provider is the packaging of custom data binder classes with a declarative metadata file. The main purpose of a custom binding provider is to aggregate related custom data binders to support particular user scenarios. The custom binding provider is used to plug the custom data binders into the emitter tools and the runtime system so that the emitter tools can generate the appropriate artifacts, and the runtime system can augment its existing type mapping system to reflect the applied custom data binders and invoke them.

Securing Web services applications at the transport level

You can use transport-level security that is based on SSL or Transport Layer Security (TLS) that runs beneath HTTP. Use transport-level security to secure Web services messages. However, transport-level security functionality is independent from functionality that is provided by WS-Security or HTTP Basic Authentication.

Authenticating Web services clients using HTTP basic authentication

HTTP basic authentication uses a user name and password to authenticate a service client to a secure endpoint. The application server can have several resources, including Web services which are protected by a J2EE security model.

WSDL

Web Services Description Language (WSDL) is an Extensible Markup Language (XML)-based description language. This language was submitted to the World-Wide Web Consortium (W3C) as the industry standard for describing Web services. The capabilities of WSDL are derived from two main architectural principles: the ability to describe a set of business operations and the ability to separate that description into two basic units. These units are a description of the operations and the details of how the operation and the information associated with it are packaged.

What is new for securing Web services

In this version of the product, security enhancements for Web services include supporting sections of the Web services security specifications and providing architectural support for plugging in and extending the capabilities of security tokens.

High-level architecture for Web services security

This version of the product uses the J2EE Web services deployment model to implement Web services security. The Web services security constraints are specified in the IBM extension of the Web services deployment descriptors and bindings. The Web services security run time enforces the security constraints specified in the deployment descriptors. One of the advantages of the deployment model is that you can define the Web services security requirements outside of the application business logic. With the separation of roles, the application developer can focus on the business logic, and the security expert can specify the security requirement.

Overview of platform configuration and default bindings

The Web services security constraints are defined in an IBM extension of the Web services deployment descriptor for J2EE. The IBM extension deployment descriptor and binding for Web services security are IBM proprietary. Due to the complexity of these files, it is not recommended that you edit the deployment descriptor and binding files manually with a text editor because that action might cause errors. It is recommended, however, that you use the tools provided by IBM to configure the Web services security constraints for an application. These tools are the Rational Application Developer, the Application Server Toolkit, and the application server administrative console.

Security model mixture

There can be multiple protocols and channels in the WebSphere Application Server V6 and later programming environments. For example, you might access a Web-based application through the HTTP transport. For example, a servlet, JavaServer Pages file, HTML and so on. You might access an enterprise application through the Remote Method Invocation over the Internet Inter-ORB (RMI/IIOP) protocol and a Web service application through the Simple Object Access Protocol (SOAP) over HTTP, SOAP over the Java Message Service (JMS), or SOAP over RMI/IIOP protocol. Each of these applications serve different business needs. More importantly, Web services are often implemented as servlets with a JavaBeans or an EJB file. Therefore, you can mix and match the Web services security model with the J2EE security model for Web and EJB components. Web services security compliments the J2EE role-based security and the security runtime for this versionof the application server.

Default implementations of the Web services security service provider programming interfaces

The following information describes the default implementations of the service provider interfaces (SPI) for Web services security within this version of the application server. The default implementations of the service provider interfaces for WebSphere Application Server V5.x are not described in this document. Instead, see Securing Web services for V5.x applications based on WS-Security for the V5.x implementations that are deprecated in V6.0.x and later.

Default configuration

This version of the product provides a variety of sample configurations that you can configure through the administrative console. The configurations that you specify are reflected at the cell or server level. Do not use these configurations in a production environment as they are for sample and testing purposes only. To make modifications to these sample configurations, it is recommended that you use the administrative console provided by the application server.

Nonce, a randomly generated token

A nonce is a randomly generated, cryptographic token used to prevent replay attacks. Although a nonce can be inserted anywhere in the SOAP message, you typically insert this token in the UsernameToken element.

XML digital signature

XML-Signature Syntax and Processing (XML digital signature) is a specification that defines XML syntax and processing rules to sign and verify digital signatures for digital content.

Collection certificate store

A collection certificate store is a collection of non-root, certificate authority (CA) certificates and certificate revocation lists (CRLs). This collection of CA certificates and CRLs is used to check the signature of a digitally signed SOAP message.

Trust anchor

A trust anchor specifies the keystores that contain trusted root certificates. Use these certificates to validate the X.509 certificate that is embedded in the SOAP message.

Key locator

A key locator, or the com.ibm.wsspi.wssecurity.keyinfo.KeyLocator class, is an abstraction of the mechanism that retrieves the key for digital signature and encryption.

Trusted ID evaluator

A trusted ID evaluator, (com.ibm.wsspi.wssecurity.id.TrustedIDEvaluatorImpl), is an abstraction of the mechanism that evaluates whether the given ID name is trusted.

XML encryption

XML encryption is a specification developed by the W3C that contains the steps to encrypt data, the steps to decrypt encrypted data, the XML syntax to represent encrypted data, the information used to decrypt the data, and a list of encryption algorithms such as Triple Data Encryption Standard (DES), Advanced Encryption Standard (AES), and RSA.

Security token

A security token represents a set of claims made by a client that might include a name, password, identity, key, certificate, group, privilege, and so on.

Username token

You can use the UsernameToken element to propagate a user name and, optionally, password information. Also, you can use this token type to carry basic authentication information. Both a user name and a password are used to authenticate the message. A UsernameToken containing the user name is used in identity assertion, which establishes the identity of the user based on the trust relationship.

Binary security token

The ValueType attribute identifies the type of the security token, for example, a Lightweight Third Party Authentication (LTPA) token. The EncodingType token type indicates how the security token is encoded, for example, Base64Binary. The BinarySecurityToken element defines a security token that is binary encoded. The encoding is specified using the EncodingType attribute. The value type and space are specified using the ValueType attribute. The Web services security implementation for WebSphere Application Server, V6 and later supports both LTPA and X.509 certificate binary security tokens.

Hardware cryptographic device support for Web Services Security

Web services security supports the use of cryptographic hardware devices. There are two ways in which to use hardware cryptographic devices with Web services security.

Web services security specification—a chronology

This document describes the process used to develop the Web services security specifications.

Web services security and Java 2 Platform, Enterprise Edition security relationship

This document describes the relationship between Web services security (message level security) and J2EE platform security. It also includes information on J2EE role-based authorization checks.

Web Services Addressing support

The Web Services Addressing (WS-Addressing) support in the application server provides the environment for Web services that use the W3C WS-Addressing specifications or the W3C submission WS-Addressing specification.

Web Services Resource Framework support

The Web Services Resource Framework (WSRF) support in the application server provides the environment for Web service applications that follow the OASIS WSRF specifications.

WSIF Overview

The Web Services Invocation Framework (WSIF) provides a Java API for invoking Web services, independent of the service format or the transport protocol through which it is invoked.

Goals of WSIF

WSIF aims to extend the flexibility provided by SOAP services into a general model for invoking Web services, irrespective of the underlying binding or access protocols.

Overview of the V3 UDDI registry

The Universal Description, Discovery and Integration (UDDI) specification defines a way to publish and discover information about Web services. The term Web service describes specific business functionality exposed by a company, usually through an Internet connection, so that another company, or its subsidiaries, or software program can use the service. You can find the UDDI specification on the OASIS UDDI Web site.

Database considerations for production use of the UDDI registry

The UDDI registry fully supports a number of databases (see An overview of the V3 UDDI registry for details) and can be used for development and test purposes. However, there are factors to consider when determining which database is appropriate for your anticipated UDDI registry production use such as the size and volume of the requests and the performance and scalability of the UDDI registry.

Access control for UDDI registry interfaces

Access to UDDI registry interfaces is controlled by a combination of J2EE declarative security using role mappings, and UDDI properties and policies such as the registering of users as UDDI publishers.

UDDI registry security additional considerations

In addition to the configuration of UDDI registry security, there are a number of other UDDI registry settings that might affect the behavior of the UDDI registry. Some of these settings are security specific, while others are points to remember when configuring security.

UDDI registry Administrative (JMX) Interface

Use the UDDI registry Administrative Interface to inspect and manage the run time configuration of a UDDI application. This action includes managing the information and the activation state about a UDDI node; updating properties and policies; setting publish tier limits; registration of UDDI publisher and controlling value set support. You can read and invoke the operations of the UDDI registry Administrative Interface using standard Java Management Extensions (JMX) interfaces.

Java API for XML Registries (JAXR) provider for UDDI

The Java API for XML Registries (JAXR) is a Java client API for accessing both UDDI (V2 only) and ebXML registries. It is part of the J2EE specification.

For a complete list of the specifications and standards the product supports, read about specifications and API documentation.


 

Related concepts


Web services security enhancements
Learn about Web services

 

Related Reference


Specifications and API documentation