Release Notes
This document contains the release notes for OGSA-DAI WSI.
Release 2.2
OGSA-DAI WSI 2.2 is a pure Web services version of OGSA-DAI. There
are four distributions:
-
OGSA-DAI WSI + Apache Axis 1.2.1 source and binary distributions:
-
Source and binary distributions are bundled with Apache Axis
1.2.1 JARs and other third party JARs.
-
Binary distributions are compiled under Apache Axis 1.2.1.
-
These are compatible with Apache Axis 1.2.1 on Tomcat.
-
OGSA-DAI WSI + Apache Axis 1.2RC3 source and binary distributions:
-
Source and binary distributions are bundled with Apache Axis
1.2RC3 JARs and other third party JARs.
-
Binary distributions are compiled under Apache Axis 1.2RC3.
-
These are compatible with Apache Axis 1.2RC3 on Tomcat or OMII
2.1.
There is no difference between the source code, WSDL or XML Schema
across the versions - it is purely the Apache Axis JARs that vary.
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.
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).
Third-party JARs are now bundled with OGSA-DAI.
-
This includes all but two JARs required to compile an OGSA-DAI WSI
binary distribution from an OGSA-DAI WSI source distribution.
-
It also allows users of OGSA-DAI WSI binary distributions to use
OGSA-DAI clients without the need to have
their own Axis/Tomcat deployment.
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.
-
The following exceptions have been relocated:
-
uk.org.ogsadai.client.toolkit.exception.DAIException has been relocated uk.org.ogsadai.exception.DAIexception.
-
uk.org.ogsadai.exception.DAIDirectoryNotDirectoryException has been relocated to uk.org.ogsadai.common.files.DAIDirectoryNotDirectoryException
- uk.org.ogsadai.exception.DAIDirectoryNotFoundException has been relocated to uk.org.ogsadai.common.files.DAIDirectoryNotFoundException
-
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]
-
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.
-
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.
-
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.
-
Bugs in OGSA-DAI WSI WSDL have been fixed so that
Apache Axis WSDL2Java can now
be used to generate client-side stubs.
-
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 WSI 2.1 is a pure Web services version of OGSA-DAI. The
OGSA-DAI WSI 2.1 source distribution is compatible with Apache Axis
1.2.1 or OMII 2.1 or 2.1 on Apache Axis 1.2RC3. The OGSA-DAI WSI 2.1 binary
distribution comes in two flavours - one compatible with Apache Axis
1.2.1 and one compatible with OMII 2.0 or 2.1 on Apache Axis 1.2RC3.
Changes
The main changes between this and the previous release are as follows:
OGSA-DAI WSI 2.1 is almost identical to OGSA-DAI WSI 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 WSI 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
Known Problems
There are two current issues that can arise with the use of OGSA-DAI WSI
2.1 under OMII. The OGSA-DAI team is currently working on resolving
these and updated information will appear on the OGSA-DAI WWW site in
due course.
-
Information on deployed services is lost when the container is
restarted. This means that you need to:
-
Deploy your data service resources before you start your container.
-
Then, EITHER deploy a configurable data service and then instruct it to
expose the resources using our end-to-end client (as described in our
pages on exposing data service
resources via data services).
-
OR deploy a data service and instruct it to expose the resources using our
ANT exposeResource target (as described
in our pages on exposing data service resources via data services). So
long as you do not invoke
any operations on the service all resources you request be exposed
will be exposed when you first communicate with the service.
-
Non-secure service-to-service data transport will work only if you
remove the file
webapps/axis/WEB-INF/classes/client-config.wsdd
from your container.
Other known problems are listed on the Known Problems page.
Release 2.0
OGSA-DAI WSI 2.0 is a pure Web services version of OGSA-DAI. The
OGSA-DAI WSI 2.0 source distribution is compatible with Apache Axis
1.2.1 or OMII 2.0 or 2.1 on Apache Axis 1.2RC3. The OGSA-DAI WSI 2.0 binary
distribution comes in two flavours - one compatible with Apache Axis
1.2.1 and one compatible with OMII 2.0 or 2.1 on Apache Axis 1.2RC3.
Features
The major features of this release are as follows:
-
OGSA-DAI WSI 2.0 is compatible with both Apache Axis 1.2.1 and OMII
2.0 or 2.1 on Apache Axis 1.2RC3. It should still work with Apache Axis 1.2RC3
also (if you have the OGSA-DAI WSI 2.0 binary distribution for Apache
Axis 1.2.1 you'll need to get the source distribution and compile
against Apache Axis 1.2RC3).
-
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. 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 efficiency improvements most notably in the
refactoring of our java.sql.ResultSet to
WebRowSet converters.
-
Client and server-side now support message-level security between
clients and services for services deployed under OMII 2.0 or 2.1.
-
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 WSI 1.0 is a pure Web services version of OGSA-DAI. Unlike
OGSA-DAI WSRF, OGSA-DAI WSI can run on an Axis/Tomcat deployment -
there are no Globus Toolkit dependencies.
Features
The major features of OGSA-DAI WSI 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, provided in the query,
allow 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
GetResourceProperties,
and GetMultipleResourceProperties
portTypes is provided.
-
Access to version information about the OGSA-DAI data service is
available through the getVersion()
operation. For instance invoking this will return the string
"OGSA-DAI WSI 1.0", allowing you
to determine what version of OGSA-DAI WSI is running at the
server end.
Changes
The following OGSA-DAI WSI-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 WSI-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 WSI does not currently support data service security.
-
OGSA-DAI WSI does not currently support third-party delivery
via push and pull operations (the
DataTransport portType).
-
OGSA-DAI WSI does not currently deploy upon OMII releases. This
situation has arisen due to a divergence in Axis dependencies between
OGSA-DAI WSI and the current OMII release, OMII 1.2. For more
information please consult the OGSA-DAI WSI
Installation Guide