Skip to main content

skip to main content

developerWorks  >  SOA and Web services | Grid computing  >

Migrating from WSRF to WSRT

developerWorks
Document options

Document options requiring JavaScript are not displayed


Rate this page

Help us improve this content


Level: Intermediate

David A. Cafaro (dac@cafaro.net), Computational Researcher, Consultant

31 Jul 2007

The Web services group has migrated from the original WS-Resource Framework (WSRF) standard to the WS-ResourceTransfer (WS-RT) framework. WS-RT combines elements of the original WSRF standard with the WS-Management standards to enable easier exchange of resource information and objects between different components. We'll examine the two standards, the differences between them, and how to move and migrate between the two — for compatibility and to help you migrate to the new standard for interoperability with other applications.

Introduction

With the growth of networking and the idea of distributed computing load, the concept and implementation of grid computing has matured. Though the definition of "grid computing" can mean different things to different groups, it generally refers to the interoperability and communication of heterogeneous resources over a network in a structured or managed system. One way to implement grid infrastructure is through the use of Web-based services. WS-Resource Framework (WSRF) is one specification toward the implementation of Web-based grid services. Coupled with the WS-Notification (WSN) specifications, these provided an excellent starting point for Web services-based grid computing.

At around the same time, competing standards, such as WS-Transfer, were also being developed and deployed. Since these were competing standards and did not communicate with each other, the idea of networking separately developed grid resources was being hampered.

In March 2005, the developers of WS-Transfer and WSRF announced a plan for a new specification: WS-ResourceTransfer (WS-RT). WS-RT was an expansion and enhancement of WS-Transfer that added the functionality WSRF provided that the original WS-Transfer did not. Specifically, WS-RT added functionality from WS-ResourceProperties and Web Services ResourceLifetime (WS-ResourceLifetime) — two components of WSRF that had certain detailed control mechanisms that were lacking in WS-Transfer.

In this article, we'll look at what functionality is provided by WSRF — specifically, WS-ResourceProperties and WS-ResourceLifetime — what functionality is provided by WS-RT, how they overlap, and what migration strategies you might take to move WSRF to WS-RT.



Back to top


WS-Resource Framework (WSRF)

The WSRF specification consists of four primary components: WS-ResourceProperties, WS-ResourceLifetime, WS-ServiceGroup (WSRF-SG), and WS-BaseFaults (WSRF-BF). Of these component specifications, WS-ResourceProperties and WS-ResourceLifetime are the primary concerns when looking at a migrations to WS-ResourceLifetime. These two components deal primarily with resource object representation and access. They provide the key specifications for Web services to interact with each other's resources. Below is a brief description of what each component of the WSRF specification standard provides.

But first, let's look at WS-ResourceProperties, one of the two primary focuses of this article.

WS-ResourceProperties

WS-ResourceProperties deals with the properties associated with a given resource and the characteristics of that resource. The WS-ResourceProperties specifications document standardizes how services may present the definition of a resource's properties within a Web services architecture. By using these specifications, you can present a standardized view of what resources are available and how they may be accessed through the WSRF. WS-ResourceProperties provides a set of standard messages a requester can use to query and update the property values within a published resource. These messages are restrained to subsets based on what resource properties are defined for a given service and resource. See Resources for further information.

WS-RT used some of the expanded abilities of get, put, create, and destroy statements within WS-ResourceProperties to provide for fragmented access to resource documents. This fragmented access will be discussed in detail. Next, we will look at WS-ResourceLifetime, the second of the two WSRF specifications related to WS-RT.

WS-ResourceLifetime

WS-ResourceLifetime deals with how a give resource may be destroyed (deleted) and what constraints are placed on this "lifetime" of a resource. The lifetime restrictions can include the ability to immediately destroy a resource or schedule time-based destruction. The lifetime restrictions are placed within WS-ResourceProperties so they can be queried. See Resources for further information.

WS-RT added the concepts of lifetime restrictions to resource properties based on the specifications of WS-ResourceLifetime. This provides greater control over temporal aspects of resource listings than previously provided by WS-Transfer alone.

WS-SG and WS-BF are touched on here, but are not as critical to our discussion of WSRF to WS-RT migrations. Both specifications are inherently covered by the core specifications and are redundant to some degree.

WS-Service Group (WSRF-SG)

Though not a focus of this article, WS-SG is part of the WSRF also. WSRF-SG focuses on creating heterogeneous collections of Web services and resources. Service groups are represented by components called entries, which are themselves considered resources. In a way, a service group is a subgrouping of multiple resources based on WSRF presented within a top-level WSRF framework. Service groups can contain most of the same properties and objects that would be available to the individual WSRF-compliant resources that have been collected within the group. See Resources for further information.

WS-Base Faults (WSRF-BF)

WSRF-BF is another specification that isn't a focus of this article. WS-RT provides fault standardization, which covers the original WS-Transfer specification, as well as the enhancements made to WS-RT. WSRF-BF provides a simplified standard set of fault information that may be reported to help resolve problems within the Web service. WSRF-BF also provides rules for the extension of these standard faults, as well as basic use by a Web service. See Resources for further information.

Now that we have covered what areas of WSRF we will be focusing on, as well as what they provide, we can look at what the new WS-RT specification covers and how that relates to the old WSRF specifications.

WS-ResourceTransfer (WS-RT)

WS-RT was born out of (and, hence, an enhancement of) WS-Transfer. The developers of WS-RT looked at WS-Transfer and WSRF, and added the functionality found in WSRF missing in WS-Transfer to WS-RT. Through this, they were also able to provide the basics needed to ease the migration from either of these older standards to the new WS-RT. Since WS-RT was just an enhancement of WS-Transfer, WS-Transfer functionality is preserved as it was originally. Though exact operational matches for WSRF may not exist, the functionality to translate those operations does exist within WS-RT.

The WS-RT specification covers the definition of resources, as well as how to access that information. It provides the details of how to present storage resource, computational resources, or other resources and time constraints associated with those resources. Beyond the original get, put, create, and delete operations on resources provided in WS-Transfer, WS-RT expands on those and adds the functionality of "fragment access." This allows an operation to access a small part of the overall XML resource representation. This was functionality provided for in WSRF that wasn't available in WS-Transfer. There has also been a reworking of the metadata support to provide for a lifetime element that contains information similar to what is defined in the WS-ResourceLifetime specification.

For further details on what WS-RT provides and how it is implemented, read the "Meet the Specs" series (see Resources). These articles provide great detail into what has been done in the WS-RT specification and how you would implement them.

With this basic foundation of the WSRF and WS-RT specifications, we will now look at two possible migration techniques that can be used to allow for the migration to the new WS-RT framework.



Back to top


Migrating WSRF to WS-RT

There are two primary methods to provide for migration from WSRF to WS-RT. First is by providing access to both WSRF and WS-RT via delegation. The second is the use of XSLT to directly translate WSRF to and from WS-RT. In the following sections, I will provide some details on how these might be implemented. See Resources for further information.

Dual services via delegation

In this arrangement, you can run WSRF- and WS-RT-based services at the same time since WS-RT operations can be almost completely mapped to equivalent WSRF operations. In Figure 1, you will see a simple diagram of how this is set up.


Figure 1. Example of deleted migration setup
Example of deleted migration setup

You can see how WSRF clients can continue to use your existing WSRF services. WS-RT clients will use the WS-RT services provided by the server, which are mapped within the server to the WSRF operations service. This allows the server to service WS-RT and WSRF clients during your transition period. For future development, it is recommended to allow your core resources to be defined in a general manner your application stack can provide to your WSRF. This way, as you later prepare to phase out your old WSRF clients, you can eventually allow your WS-RT services to directly interact with your resources with out retooling your core resources. For a good example of this method, check out Apache Muse (see Resources). Under the preview tree of the project, you will find a reference implementation of WS-RT delegation.

During this transition period, you would have some redundancy in your published properties and operations. You would have both WSRF and WS-RT published, and nonoverlapping specs, such as wsrl:Destroy() (from WSRF) and ws-t:Delete() (from WS-RT), which would be providing similar functionality, but to different clients. As your clients migrate to only WS-RT, you would eventually eliminate the publishing of WSRF-specific items.

The disadvantage of this is that you must code a delegation layer into your service engine if your service does not provide for the delegation model. If your engine supports a delegation model, you need only add the module to your existing service.

Translated service via XSLT

Another method for migration is the use of XSLT. Though an XSLT transforms WS-Transfer, WSRF and WS-RT clients can be serviced by a Web service regardless of whether it is a WSRF or WS-RT server. Figure 2 shows how this might be set up.


Figure 2. Example of XSLT transform setup
Example of an XSLT transform setup

As shown above, using XSLT to transform the service requests, you can maintain your current WSRF Web service while allowing the migration to new WS-RT-based clients. WSRF clients can transverse the XSLT layer with no translation. WS-RT clients transverse the XSLT layer via an XML-to-XML translation to WSRF. The reverse can also be done, providing translation from WSRF clients to WS-RT Web services.

There are two primary disadvantages to this approach. First, you must code a translation layer and service to provide the XSLT transform between your clients and your Web service. Second, there are limits to when this can be applied. The XML-to-XML transform requires that there be a direct 1:1 mapping in both specifications (WS-RT and WSRF) for the given transforms.

For more details on XSLT transforms vs. the delegation system, take a look at "WSDM/WS-Man Reconciliation" (see Resources). This document provides a detailed look at the issues involved that are beyond the scope of this article.



Back to top


Summary

Share this...

digg Digg this story
del.icio.us Post to del.icio.us
Slashdot Slashdot it!

We have provided a brief description of the WS-ResourceTransfer (WS-RT) and related WS-Resource Framework (WSRF) specifications in preparation for looking at the issues involved in planning a migration strategy. We then looked at two possible strategies for dealing with migration from the WSRF to WS-RT. These two strategies, XSLT transforms and delegation, provide a method to deal with most possible migration situations. Though neither will solve every situation, by studying your individual needs and future plans, one of these — or a combination of them — should set you on the path to a smooth transition to WS-RT-based Web services.



Resources

Learn

Get products and technologies

Discuss


About the author

David A. Cafaro is currently employed at Georgetown University's Advanced Research Computing (ARC) group, where he supports computational research needs through the use of Linux and open source technologies and is a Red Hat Certified Engineer. In addition, he sits on the Program Committee for LinuxWorld Expo and Summit ,where he helps develop track content and technology focus. He has worked as a security analyst at Tresys Technology with a focus on SELinux policy work. He is active in the open source and Linux communities as a member of the Tux.org Board of Directors.




Rate this page


Please take a moment to complete this form to help us better serve you.



YesNoDon't know
 


 


12345
Not
useful
Extremely
useful
 


Back to top