Release Notes
This document contains the release notes for OGSA-DAI WSRF.
Release 2.2
OGSA-DAI WSRF 2.2 is a Globus Toolkit 4.0.3-based version of OGSA-DAI. There
are two distributions - one source and one binary. Both distributions
are bundled with all but two third-party (non-Globus Toolkit) JARs required to
compile and run OGSA-DAI WSRF services. The distributions also contain
the minimal set of Globus Toolkit 4.0.3 JARs required to run OGSA-DAI WSRF
clients. The releases are still be compatible with Globus Toolkit 4.0.1.
New Functionality
New functionality provided in this release is as follows:
-
A prototype data service resource that creates prototype transient
data service resources is provided. Transient data service resources
exist in memory and have no associated configuration files on the
server. This data service resource has an associated activity:
-
demoCreateTransientInstance.
-
A prototype multi-resource is provided. This data service resource
interacts with multiple relational data service resources via the
client toolkit and integrates the result.
server. This data service resource has three associated activities:
- sqlBag
- removeDuplicates
- sqlResilient
eXist is now an officially supported data resource.
A number of new activities are provided. These include:
-
Data conversion activities:
- sqlResultsToXML - converts java.sql.ResultSet into WebRowSet.
- sqlResultsToCSV - converts java.sql.ResultSet into CSV.
- sqlResultToBytes - converts a binary
column result from a java.sql.ResultSet
into a stream of bytes.
-
Relational meta-data activities:
- extractDatabaseSchema - retrieves the
logical schema from a relational database.
- databaseSchemaToXML - converts logical
schema information from a relational database into an XML
document.
- extractPhysicalSchema - retrieves
physical schema information from a relational database.
-
XMLDB activities:
- xQueryStatement - run an XQuery
statement against an XML database [48].
-
Projection and transformation activities:
- removeDuplicates - removes duplicate
rows from the results retrieved from multi-resources.
- resultsetProjection - projects of
a java.sql.ResultSet onto column
name name or index.
- webrowsetProjection - projects a
WebRowSet onto column name or column index.
- csvProjection - projects CSV values
onto column index.
- frequencyDistributor - distributes
numeric values onto spaces.
- randomSample - generates a random
sample of the input data.
- bytesToTempFile - writes a stream of
bytes to a temporary file and then outputs a reference to this
temporary file.
-
Delivery activities:
- deliverToNull - throws the input stream
away.
- deliverToResourceProperty - writes data
to a resource property.
- deliverToAttachment - delivers results
to a SOAP attachment.
-
Resource management activities:
- removeResource - withdraws a data service
resource from a service.
- demoCreateTransientInstance -
creates a new transient resource.
-
Multi-resource activities:
- sqlBag - merges the results of multiple
queries executed on different relational data service
resources.
- sqlResilient - retrieves the results of
multiple queries from the first available relational data service
resource of a set of resources.
The readFile activity now produces
byte[] when reading binary files [25].
fileWritingActivity now accepts
byte[] and org.w3c.dom.Node objects from other
activities [58].
deliverFromGDT and
deliverToGDT activities now accept the type
of a target service (i.e. OGSA-DAI WSI or WSRF) and so can avoid an
extra communication with the target service to identify the service
type.
Improved support for BLOB handling in the following activities
[24, 41]:
- bytesToTempFile
- sqlQueryStatement
- sqlUpdateStatement
- sqlResultsToCSV
There is a prototype interface to support authorization of
access to resources and activity usage.
The databrowser now supports security when communicating with
OGSA-DAI WSRF services [18].
GSI Secure Conversation message-level security is now supported
for inter-service communications using the data transport activities [23].
MDS registration now work for data service resources created
dynamically using activities.
There is now client toolkit support for the following activities (as
well as all the new activities):
- directoryAccessActivity
- fileAccessActivity
- fileManipulationActivity
- gzipDecompression
Support for application-specific message bundles to be used in
OGSA-DAI by developers of extensions to OGSA-DAI (e.g. activities).
All but two third-party JARs are now bundled with OGSA-DAI.
-
This includes all but two of the non-Globus Toolkit JARs required
to compile
an OGSA-DAI WSRF binary distribution from an OGSA-DAI WSRF source
distribution.
-
The minimal set of Globus Toolkit JARs is also provided so that
users of OGSA-DAI WSRF binary distributions can use
OGSA-DAI clients without the need to download their own copy of
the Globus Toolkit.
Tutorials have been written for:
- How to register new message bundles.
- How to write OGSA-DAI-compliant exceptions.
- How to use OGSA-DAI logging.
- How to authorize access to resources and activities.
User documentation for individual activities now specifies the
expected input and output types of each activity.
An initial set of usage scenarios and best practice
is available on the OGSA-DAI WWW site.
Work on benchmarking and performance evaluations in the period
leading up to this release is available on the OGSA-DAI WWW
site.
Changes
The main changes between this and the previous release are as follows:
-
Apache Xindice is no longer an officially supported data resource.
-
Relational data services no longer expose the
databaseSchema property.
Relational database schema can be accessed using the following activities:
- extractDatabaseSchema
- databaseSchemaToXML
- extractPhysicalSchema
This allows database schema information to be streamed to a client
using data transport operations and addresses the problem of certain
databases causing OutOfMemoryExceptions
that arose in previous versions of OGSA-DAI.
-
If an activity fails then downstream activities now have their status
set to TERMINATED instead of
ERROR
-
fileWritingActivity has been changed.
The following renamings occurred:
- BOF renamed to start
- EOF renamed to end
- toEOF renamed to toEnd
-
The following classes in uk.org.ogsadai.dataresource have been renamed or
relocated. These changes affect data resource configuration files
also.
-
DataResource
renamed to
DataResourceAccessor
-
TestDataResource
renamed to
TestDataResourceAccessor
-
JDBCDataResource
renamed to
JDBCDataResourceAccessor
-
XMLDBDataResource
renamed to
XMLDBDataResourceAccessor
-
FilesDataResource
renamed to
FilesDataResourceAccessor
-
NullDataResource
renamed to
NullDataResourceAccessor
-
The following classes in uk.org.ogsadai.examples.demoFactory have been
renamed or relocated. These changes affect data resource
configuration files also.
-
DemoFactoryDataResource
renamed to
DemoFactoryDataResourceAccessor
-
DemoInstanceDataResource
renamed to
DemoInstanceDataResourceAccessor
-
The following method was renamed:
-
uk.org.ogsadai.activity.ActivityContext.getDataResource
method renamed to
uk.org.ogsadai.activity.ActivityContext.getDataResourceAccessor
-
All classes in package
uk.org.ogsadai.dataresource.factory
relocated to
uk.org.ogsadai.service.resource.factory
-
uk.org.ogsadai.activity.transform.DataStoreActivity
relocated to
uk.org.ogsadai.activity.misc.DataStoreActivity
(this affects existing activity configuration files) and
uk.org.ogsadai.client.toolkit.activity.transform.DataStore
relocated to
uk.org.ogsadai.client.toolkit activity.misc.DataStore
-
uk.org.ogsadai.client.toolkit.activity.delivery.InputStreamActivity
relocated to
uk.org.ogsadai.client.toolkit.activity.delivery.InputStream
and
uk.org.ogsadai.client.toolkit.activity.delivery.OutputStreamActivity
relocated to
uk.org.ogsadai.client.toolkit.activity.delivery.OutputStream
-
Stricter package boundaries:
-
uk.org.ogsadai.common and
uk.org.ogsadai.exception only import from
each other.
-
uk.org.ogsadai.convertors only imports from
uk.org.ogsadai.common and
uk.org.ogsadai.exception.
-
uk.org.ogsadai.client only imports from
uk.org.ogsadai.convertors,
uk.org.ogsadai.common and
uk.org.ogsadai.exception.
-
User documentation has been refactored [1, 7, 8, 10].
-
Changes to arguments expected by command-line installation,
deployment and client tools as a consequence of the bundling of
third-party JARs.
-
schema/ogsadai/xsd/general_types.xsd
has been replaced by two files
schema/ogsadai/xsd/perform.xsd
and
schema/ogsadai/xsd/response.xsd
-
Data service resource creation refactored so that configuration
files are parsed into configuration objects. Data service resource
objects (uk.org.ogsadai.service.resource.DataServiceResource)
are now created using these objects rather than files.
-
All OGSA-DAI exceptions are now derived from OGSA-DAI exception
classes in the uk.org.ogsadai.exception
package.
-
Exceptions throughout the code base have been refactored.
-
Improved support for internationalization both of logging messages
and of exceptions.
-
The client toolkit classes responsible for communications with
services have been refactored:
-
A now-redundant layer of classes has been removed.
-
Setting of connection properties was rationalised [22, 45].
-
MDS registration files should now be placed in the resource's
configuration directory rather than the top level configuration
directory.
-
Registration files are now called mds-registration.xml as
they no longer need to contain the resource name.
-
Installers were refactored and improved to avoid having
Web services container-specific targets.
-
JavaDoc has been improved across the code base.
Bug Fixes
Bug fixes, in addition to those occuring as a side-effect of the above,
are as follows:
-
Client toolkit bugs relating to timeouts not being set or security
properties not being set when using data transport operations have
been fixed.
-
Data transport putFully and
putBlock are handled correctly by the
client toolkit allowing these to be deserialized to integers, floats
and booleans correctly service-side.
-
Relational database schema is now accessed via activities rather
than being exposed as resource properties. This allows database
schema information to be streamed to a client using data transport
operations and addresses the problem of certain databases causing
OutOfMemoryExceptions that arose in
previous versions of OGSA-DAI.
-
The uk.org.ogsadai.examples.client.toolkit.ParameterisedUpdateViaDataTransport
now works due to the refactorings in the client toolkit [22].
-
Saving of resource properties files in the resource deployment tools
now handle Windows paths to ensure that path-related information in the
files appears correctly when the file is reloaded.
Known Problems
Known problems are listed on the
Known Problems page.
Release 2.1
OGSA-DAI WSRF 2.1 is a WSRF-compliant version of OGSA-DAI and
runs upon Globus Toolkit 4.0.1. It is not compatible with Globus
Toolkit 3. The source release should still be compatible with
Globus Toolkit 4.0.
Changes
The main changes between this and the previous release are as follows:
OGSA-DAI WSRF 2.1 is almost identical to OGSA-DAI WSRF 2.0 which
was released just one week earlier. This release was motivated by:
-
A need to allow data resource accessors to be notified whenever a session
is terminated, so that session-related resource properties can be removed.
-
A bug fix to ensure that a single block of data can flow through a pipeline
containing an inputStream activity and an outputStream activity.
If you have OGSA-DAI WSRF 2.0 and were not dependant on or concerned by these
then there is no requirement for you to upgrade.
The additions / changes were as follows:
-
In core/src/java/:
-
Changed
uk.org.ogsadai.activity.ActivityRequest
-
Changed
uk.org.ogsadai.activity.CallThroughExternalPipe
-
Changed
uk.org.ogsadai.activity.CallThroughPipe
-
Changed
uk.org.ogsadai.service.resource.DataServiceResource
-
Changed
uk.org.ogsadai.sessions.SessionManagerFactory
-
Changed
uk.org.ogsadai.sessions.SessionConfigurationLoader
-
Changed
uk.org.ogsadai.sessions.impl.SessionConfiguration
-
Changed
uk.org.ogsadai.sessions.impl.TransientSessionManager
-
Changed
uk.org.ogsadai.sessions.impl.TransientSessionManagerFactory
-
Added
uk.org.ogsadai.dataresource.DataResourceListener
-
Added
uk.org.ogsadai.dataresource.DataResourceEvent
-
Added
uk.org.ogsadai.dataresource.DataResourceEventDispatcher
-
Added
uk.org.ogsadai.dataresource.TestDataResource
-
Added
uk.org.ogsadai.sessions.impl.TransientSessionConfiguration
-
In doc:
-
Changed
tutorials/dataresource/howTo.html
-
Changed
clients/clienttoolkit/ObtainingMetaData.html
-
Changed
misc/HowToUpgrade.html
-
Changed
misc/KnownProblems.html
-
Changed
clients/clienttoolkit/index.html
-
Changed
clients/clienttoolkit/SecureServices.html
Release 2.0
OGSA-DAI WSRF 2.0 is a WSRF-compliant version of OGSA-DAI and
runs upon Globus Toolkit 4.0.1. It is not compatible with Globus
Toolkit 3. The source release should still be compatible with
Globus Toolkit 4.0.
Features
The major features of this release are as follows:
-
OGSA-DAI WSRF 2.0 is compatible with Globus Toolkit 4.0.1 and the
should still work with Globus Toolkit 4.0 (if you have the OGSA-DAI
WSRF 2.0 binary distribution you'll need to get the source
distribution and compile against Globus Toolkit 4.0).
-
Data service resources support concurrent request execution and
queueing of requests.
-
All data service resources exposed by a specific service share the
same settings for the number of concurrent requests that can be
executed and the number that can be queued. These are specified at
service deployment time.
-
Sessions are now supported. Multiple perform documents can be
submitted which operate within the context of the same session. State can be
stored in session attributes. Data transport operations now operate within the
scope of a session.
-
Data service accessors have been provided. These manage access to
a data resource on behalf of a data service resource. They each have
their own specific configuration files.
-
Configurable data services provide an
undeploy operation so that a service can
be instructed to no longer expose a specific data service
resource. This is reflected in the client toolkit.
-
There have been numerous performance improvements most notably in the
refactoring of our java.sql.ResultSet to
WebRowSet converters.
-
Client and server-side now support transport-level security between
clients and services.
-
Client and server-side now support message-level security between
clients and services.
-
Services can be configured to register themselves with a Globus
MDS Index service running in the same container.
-
The OGSA-DAI data browser is now compatible with both OGSA-DAI
WSRF 2.0 and OGSA-DAI WSI 2.0 services.
Known Problems
Known problems are listed on the Known Problems page.
Changes
The main changes between this and the previous release are as follows:
Release 1.0
OGSA-DAI WSRF 1.0 is a WSRF-compliant version of OGSA-DAI and
runs upon Globus Toolkit 4.0. It is not compatible with Globus Toolkit 3.
Features
The major features of OGSA-DAI WSRF 1.0 are as follows:
-
Access to data is provided via an OGSA-DAI
data service. For those already familiar with the OGSI version
of OGSA-DAI this service amalgamates the capabilities of the GDSF and
GDS services (the metadata and configuration roles of the GDSF and the
metadata and perform document processing aspects of the GDS).
-
Allows the exposure of multiple data service resources, where a data
service resource represents a data resource plus a
specification of the activities that can be performed on that
data resource.
-
Allows multiple data service resources to be accessed through a single
service. Data service resource identifiers, available from the data
service's WS-Addressing endpoint reference, allows a client to target
a specific data service resource.
-
A listResources() operation is
provided at a data service to list all the data service resource
identifiers available to that data service.
-
The data service resource identifiers returned by a data service can
subsequently be used by a client to obtain metadata, etc, about the
data service resources corresponding to that identifier.
-
Access to data service resource metadata (such as database schemas,
request status, supported activities etc) is provided by an
implementation of the WS-ResourceProperties
specification. In particular support for using the QueryResourceProperties,
GetResourceProperties,
and GetMultipleResourceProperties
portTypes is provided.
-
Access to version information about the OGSA-DAI Data Service is
available through the getVersion()
operation.
-
A WSRF version of the OGSA-DAI OGSIGridDataTransport portType, termed the
DataTransport portType supports
asynchronous data delivery between data services.
Changes
The following OGSA-DAI WSRF-specific changes have been made for
this release:
The following general OGSA-DAI changes have been made for
this release:
-
Core OGSA-DAI functionality (the engine and data resource connection
classes) has been abstracted out into a service-level independent
module. OGSA-DAI OGSI, WSI and WSRF share exactly the same core
code. Core OGSA-DAI functionality and activities are now
Globus-independent.
-
The namespaces of OGSA-DAI configuration, perform and response
documents have been completely changed:
-
Perform and response documents are now declared within the
http://ogsadai.org.uk/namespaces/2005/10/types
namespace.
-
Data resource and activity configuration documents and roleMap
documents are now declared within the
http://ogsadai.org.uk/namespaces/2005/10/config
namespace.
-
The deliverToStream activity now delivers to a
URL of form http://HOST:PORT/WEBAPP/servlet/DeliverToStreamServlet?url=http://HOST:PORT/WEBAPP/ogsadai/DataService&streamId=NAME
- gsh has been renamed to url.
-
Control flow constraints can now be expressed within perform
documents. This means you can ensure that one activity will not start
until another has completed e.g. ensuring that a new table is not
filled with data until it has been created.
-
Server-side exceptions outwith client control and authorisation
failures have been refactored. The problems are logged in detail
server-side and tagged with a unique ID. This ID, with a request to
contract the service deployer, is returned to the client.
-
All OGSA-DAI data services now provide a getVersion operation which returns the OGSA-DAI
flavour and version number.
-
GUI installation tools now allow required JARs to be selected via a
file browser.
-
GUI installation tools now render yes/no options as check boxes.
Bug Fixes
The following OGSA-DAI WSRF-specific bug fixes have been made for
this release:
The following general OGSA-DAI bug fixes have been made for
this release:
-
Client toolkit now raises an authorisation error if roleMapping fails
server-side.
-
sqlQueryStatement activity can now retrieve
BLOB or IMAGE fields from databases.
-
GridFTP-related delivery activities have had their JavaDoc, and the
associated client toolkit JavaDoc revised to include details about how
security credentials are used.
-
WebRowSet processing code for SQL activities no longer has option to
make results human-readable.
-
Perform document schema property provided by OGSA-DAI service now
includes required import statements.
-
Response documents constructed in-code now meet the response document
XML Schema.
-
User doc front page now includes link to JavaDoc in binary
distributions.
-
Errors in stringTokenizerActivity JavaDoc
have been corrected.
-
Various user doc revisions and corrections have been made.
-
GUI installation tools now no longer occasionally freeze.
-
Installation tools now no longer need to edit the Tomcat server
configuration file so problems with its location or format no longer
arise.
Other Issues
-
OGSA-DAI WSRF 1.0 does not support data service security.