Toward Converging Web Service Standards for Resources, Events, and Management
March 15, 2006
Kevin Cline, Intel
Josh Cohen, Microsoft
Doug Davis, IBM
Donald F Ferguson, IBM
Heather Kreger, IBM
Raymond McCollum, Microsoft
Bryan Murray, HP
Ian Robinson, IBM
Jeffrey Schlimmer, Microsoft
John Shewchuk, Microsoft
Vijay Tewari, Intel
William Vambenepe, HP
HP, IBM, Intel and Microsoft plan to develop a common set of specifications for resources, events, and management that can be broadly supported across multiple platforms. The parties will do this by building on existing specifications and defining a set of enhancements that enable this convergence. In many scenarios, vendors and customers building solutions using Web services will find that the existing specifications support their scenarios. Vendors and customers may use the new specifications and functions when needing the common capabilities.
The common functionality we cover includes:
- Resources: The ability to create, read, update and delete information using Web services.
- Events: The ability to connect Web services together using an event-driven architecture based on publish and subscribe.
- Management: Provide a Web service model for building system and application management solutions, focusing on resource management.
Moreover the common interoperable collection of specifications is designed such that organizations can easily extend the specifications to cover additional advanced scenarios.
Today there are many specifications that provide Web service capabilities for resources, events, and management. Some examples are:
- Web Services Distributed Management
- Management Using Web Services (Part 1)
- Management Using Web Services (Part 2)
- Management of Web Services
HP, IBM, Intel and Microsoft have provided implementations of many of these specifications in developer kits and products. These implementations are providing valuable feedback for further evolution and refinement. Customer and user experience are also demonstrating the need to incrementally converge these specifications to provide a single definition of common, core functions. Many of the specifications are already standards, and others are recently submitted. Achieving convergence will simplify interoperability, solution development, and the process of standardizing a new common set of specifications.
This paper provides an overview of the convergence and motivation. It first breaks the problem down into two major building blocks: (a) information management, and (b) events and notification. Then it describes how these blocks form a composable foundation for Web services management. In each of these three sections, this paper provides a very brief technical overview of the relevant specifications and their relationship to existing specifications. The details in this paper represent our best current thinking and may evolve before publication of the specifications.
Consistent with previous roadmap efforts, the authors expect the specifications to be published and refined over the next 18-24 months. Some of the specifications identified in this roadmap will be published as early as 2Q06. The specs will be refined using the WS-* workshop process, with submission to a standards organization following that process when appropriate quality is assured.
This whitepaper describes what the co-authors anticipate will be the technical evolution of the current specifications. While the intent is that future versions of products would support these specifications, information regarding the specific product deliverables can be obtained from the respective companies representatives.
Readers should refer to the actual specifications for technical details.
HP, IBM, Intel and Microsoft are authoring two new specifications (WS-Transfer Addendum, WS-ResourceTransfer), and a new version of an existing specification (WS-MetadataExchange). These specifications layer on and compose with WS-Transfer and WS-Enumeration, which HP, IBM, Intel and Microsoft will support.
WS-Transfer Addendum (new) extends WS-Transfer (Sep 2004) by defining optional Get', Put', and Create' messages, which revise existing Get, Put, and Create. There is no change to the WS-Transfer Delete message. The optional extensions to Get', Put', and Create' allow the message body element to specify a subset of the resource or convey resource-specific processing directives. The dialect of the body element is resource specific and is defined by specifications layered on WS-Transfer Addendum. An obvious example dialect is XPath. In this example, if the representation of the resource is a large XML document, the XPath expression in a Get' selects a subset of that document. Similarly, a Put' body may specify a subset of the document to update. The GetResponse' message has analogous changes.
WS-Transfer Addendum extends the Put' and Create' responses so they may include the WS-Addressing endpoint reference (EPR) for the updated/new resource. Like the request messages, the body of all three response messages (GetResponse', PutResponse', CreateResponse') is left undefined to allow subsequent extension specifications to define resource-specific transfer mechanisms, including partial transfer mechanisms.
All three updated operations have new WS-Addressing action URIs. Using new URIs ensures backward compatibility with WS-Transfer.
WS-Transfer Addendum enables changes in WS-MetadataExchange that allows better integration with WS-Transfer. So, IBM and Microsoft are republishing WS-Metadata Exchange Version 1.1 (new). In essence, resource/service metadata is just another resource which is retrieved using Get.
The new WS-MetadataExchange:
- Changes the Get message to instead reference Get in WS-Transfer (Sep 2004).
- Defines the use of the mex:Metadata element within EPRs. This provides an interoperable way to convey metadata for an EPR.
For backward compatibility, the mex:Metadata element is retained as is the default binding and XML namespace of "http://schemas.xmlsoap.org/ws/2004/09/mex".
Based on the above work, HP, IBM, Intel and Microsoft are jointly developing a new specification known as WS-ResourceTransfer (WS-RT, new). WS-ResourceTransfer (WS-RT, new) references WS-Transfer (Sep 2004), WS-Transfer Addendum (new), WS-Enumeration (Sep 2004), and WS-MetadataExchange Version 1.1 (new). WS-ResourceTransfer adds some of the more advanced concepts from WS-ResourceFramework.
WS-RT (new) defines body elements for Create', Get', and Put' that support creating, retrieving, and updating partial elements of a resource. There are many motivations for supporting access to sub-elements of a resource's state. Some examples include
- Improved performance – a resource's state may be very large, while the requestor only needs sub-elements.
- Allowing partial updates eliminates unnecessary side effects due to updating entire documents. For example, updating an entire Directory entry could reset a password lifetime timer whereas simply updating the email address would not.
WS-RT (new) predefines two body element dialects: XPath and identifying child elements by QName. These two approaches are equivalent to functions that WS-ResourceProperties defined. Defining these dialects makes use of the body element in WS-TransferAddendum concrete. The concrete dialects also contain support for Get', Put' and Create' passing in multiple sub-element references for the resource. Again, the multiple Put' and Get' improve performance by avoiding getting/putting the entire document, and avoiding multiple network calls to get/put sub-elements.
Get' returns the multiple sub-elements, and Create' and Put' pass the multiple values to initialize and update, respectively. Again, these functions are equivalent to capabilities that WS-ResourceProperties defined.
Additionally, WS-RT (new) defines
- An optional resource lifetime. The lifetime specifies when the resource is automatically deleted. This supports some models for resources, for example subscriptions to events.
- A lifetime metadata format and associated WS-MetadataExchange dialect, which enables inclusion of supported lifetime models in a resource's metadata.
- Semantics for processing lifetime metadata when included in a Create' request.
- How a resource EPR may include the mex:Metadata element and within that, an EPR for resource metadata. This allows metadata to be retrieved and/or updated like any other element of a resource's data, including support for partial access.
Relationship to Existing Specifications
Figure 1. Relation to Existing Specifications
Figure 1 provides an overview of the relationship between the new specifications. (Shaded blocks represent jointly agreed upon specifications.)
There are no changes in WS-Transfer and WS-Enumeration. WS-Transfer Addendum extends WS-Transfer and requires backward compatibility. WS-ResourceTransfer layers on and composes with WS-Transfer Addendum, defining concrete syntax and semantics for generic expressions in the base specifications. WS-ResourceTransfer provides mappings for many of the capabilities of WS-ResourceFramework. These include support for accessing and updating partial elements of a resource, integrating metadata with a resources state model and a lifetime model for resources. Other functions of WS-ResourceFramework will be based on specifications identified below and other eventual specifications.
HP, IBM, Intel, and Microsoft intend to support WS-Transfer, WS-Enumeration, WS-TransferAddendum, WS-MetadataExchange and WS-ResourceTransfer specifications in future products.
IBM and others will continue to support WS-ResourceFramework. IBM and partners will work in standards bodies to re-factor WS-ResourceFramework to clearly delineate extensions beyond WS-ResourceTransfer. Programmers can use these extensions if they need these functions.
Microsoft and others will continue to support WS-Transfer, WS-Enumeration.
Programmers can start with WS-Transfer, WS-Transfer Addendum, WS-Enumeration, WS-MetadataExchange. Microsoft and partners who support these specifications will continue to provide this support moving forward. Programmers can use existing implementations and versions of WS-ResourceFramework. IBM and partners who support this specification will ensure interoperability with the new specifications.
Eventing and Notification
HP, IBM, Intel, and Microsoft are defining a specification that integrates functions from WS-Notification with WS-Eventing. The new specification, WS-EventNotification, layers on and composes with WS-Eventing. WS-EventNotification introduces five capabilities that WS-Notification supports. These are:
- Subscription policy – WS-Eventing and WS-Notification introduce the concept of subscribing to resource/services for events. Different services/resources may have different approaches to implementing subscriptions and notifications. Subscribers may wish to set different requirements or directive on subscriptions. WS-EventNotification defines concrete policies that allow a resource/service to describe its approaches for subscriptions and subscription management, and allows a subscriber to specify directives to the event source. This allows extensibility for WS-EventNotification and capability description that other specifications can use.
- Richer filter languages – WS-Eventing introduced a simple filtering language. The language allows a subscriber to specify a filter that describes which events the subscriber wishes to receive. WS-EventNotification introduces a richer filter language, which enables functions that WS-Notification supports.
- Wrapped Notification – WS-Eventing describes events as output operations/messages on a WSDL portType. The output messages correspond to input message/operations on the event sink. Some scenarios, especially those building on existing publish/subscribe systems require an explicit notification message that contains the event data. This is 'wrapped' notification. The output message/operation for the event is contained within an outer notify operation/message. Wrapped notification also provides a generic interface for receiving notifications. This allows defining subscribers that can receive events from any notifier. There is no need for an operation that matches the output operation of the event emitter.
- Subscription resources – WS-EventNotification, like WS-Notification, treats a subscription's state as a resource in WS-ResourceTransfer. A subscription may have a lifetime, and the subscriber can use Get', Put', and Delete' to read or update the subscription's state, for example to change a filter or expiration lifetime. This better integrates concepts defined in WS-Eventing with similar concepts in WS-ResourceTransfer, and WS-ResourceFramework.
- Pausing subscriptions – WS-EventNotification, like WS-Notification, introduces the notion of 'pausing' a subscription. This allows for the temporary halting the flow of Notifications to a particular subscriber. The exact QoS properties, e.g. whether the new notifications are cached or simply ignored, will be controlled by the Subscription Policies.
Relationship to Existing Specifications
Figure 2. Relationship to Existing Specifications
Figure 2 provides an overview of the relationship of eventing and notification specifications. WS-EventNotification is a superset of WS-Eventing, and supports backwards compatibility. The new specification (WS-EventNotification) composes with WS-ResourceTransfer to support a state/resource model for managing subscriptions. The existing functionality of WS-Notification not explicitly defined in WS-EventNotification can still be layered over its message model and functionality as an extension.
Microsoft, IBM and others will continue to support WS-Eventing,
HP, IBM, Intel and Microsoft intend to support the new WS-ResourceTransfer, and WS-EventNotification specification in future products.
IBM and others will continue to support WS-Notification, and expect to work in standards to better integrate the WS-Notification specifications with WS-ResourceTransfer and WS-EventNotification. Programmers can use the more advanced functions of the WS-Notification framework when necessary. IBM and partners will ensure that implementations that use WS-Notification will work in environments with WS-EventNotification and WS-ResourceTransfer.
Web Services Management
Finally, building on the joint work in the area of information distribution and event notification, HP, IBM, Intel and Microsoft are leading the development of a forthcoming common Web services management specification. This new specification composes WS-ResourceTransfer (new) and WS-EventNotification (new). Many of the differences between WS-Management and Web Services Distributed Management are directly due to the differences between WS-Transfer and WS-ResourceFramework, and between WS-Notification and WS-Eventing. The reconciliation of these lower-layer specifications enables convergence of the management specifications, which is in progress.
Figure 3 provides an overview of the new specifications and their relationship to existing specifications. HP, IBM, Intel and Microsoft are developing a new specification that provides a single definition of core management functions.
Relationship to Existing Specifications
Figure 3. Relationship to Existing Specifications (Proposed)
The reconciliation of the resource management and event/notification specifications enable reconciliation of many of the functions of the management specifications. Some examples include:
- Manipulation of state of managed resources, including sub-elements.
- Notification of management events and resource state change.
The new set of management specifications should include support for the following features for metadata, including resource type information:
- Bootstrapping the discovery process
- Discovery of the compliance levels and capabilities of the services and implementations
- Discovery and enumeration of resource types and the associated metadata
- Read/write access to the type space and associated metadata
- Navigation of relationships through the type and metadata space
- Accommodating a read-only type and metadata space which can be hosted outside the service (on a Web site) and adapted to the actual service at runtime
- Bootstrapping the discovery and enumeration of instances and event sources
In addition to the features provided in WS-Transfer providing the ability to create and delete resources, and WS-Resource Transfer providing read-write access to resource instances, the management specifications will provide support for multiple standardized data models that will define:
- Understanding and decoding relationships between instances
- A common mechanism for distinguishing instances of resources
- A basic common payload format for events for the purposes of interoperation, while not restricting the use of platform-specific formats
Interoperability across heterogeneous systems will require using one or more of the standardized data or event models. Some of these formats may be defined by the joint effort on an as-needed basis.
Extensions to these specifications may be developed and continue to exist for both the WS-Management and WSDM specification families. However, the unification will result in a large common core which can support monitoring, state management and configuration of resources.
The existing work on the current specifications will continue to its planned conclusion. This roadmap provides a vision for the next generation of the specifications and standards that are in process. A migration path will be defined for today's specifications. Building on their existing solutions based on the current specifications HP, IBM, Intel and Microsoft will evolve their solutions to incorporate these specifications as they progress.
HP, IBM, Intel and Microsoft intend to implement the new common management specification in future products.
IBM and partners will to continue to support WSDM. IBM and partners that currently implement WSDM will also ensure support for existing implementations based on WSDM.
Microsoft and partners will continue to support WS-Management. Microsoft and partners that currently implement WS-Management will also ensure support for existing implementations based on WS-Management.