A new Architecture for OGSA-DAI

advertisement
A new Architecture for OGSA-DAI
Atkinson, M.1, Karasavvas, K.1, Antonioletti, M.2, Baxter, R.2, Borley, A.3, Chue Hong, N.2, Hume, A.2, Jackson, M.2,
Krause, A.2, Laws, S.3, Paton, N.4, Schopf, J. M.5, Sudgen, T.2, Tourlas, K.1 and Watson, P.6
1
National e-Science Centre, 15 South College Street, Edinburgh EH8 9AA, UK
EPCC, University of Edinburgh, James Clerk Maxwell Building, Edinburgh EH9 3JZ, UK
3
IBM United Kingdom Ltd, Hursley Park, Winchester S021 2JN, UK
4
School of Computer Science, University of Manchester, Oxford Road, Manchester M13 9PL, UK
5
Mathematics and Computer Science Division, Argonne National Laboratory, Argonne, IL 60439, USA
6
School of Computer Science, University of Newcastle upon Tyne, Newcastle upon Tyne NE1 7RU, UK
2
Abstract
OGSA-DAI is a widely used middleware infrastructure, aligned with the Global Grid Forum’s (GGF)
OGSA vision, to facilitate uniform access to data resources using a service-oriented architecture (SOA).
It is intended to provide a reference implementation of WS-DAI. Initially OGSA-DAI was based on
the OGSI infrastructure but recent releases support WS-I, WS-I+, and WSRF. The change to these new
specifications raised new issues and requirements. It has been taken as an opportunity to review all
aspects of OGSA-DAI. This paper describes the new architecture for future releases and its rationale.
1
Introduction
The Open Grid Services Architecture – Data
Access and Integration (OGSA-DAI) project [1]
was established to provide a uniform way to
access data resources in alignment with OGSA
[2]. It enables client applications to submit
request documents in order to perform a set of
tasks on a remote data resource. The initial
versions of OGSA-DAI were built using the
OGSI infrastructure [3] provided by GT3 [4].
More recently OGSA-DAI has been released on
Axis [5], based on WS-I [6], the OMII_1
infrastructure [7], based on WS-I+ [8] and on
GT4 [9] based on WSRF [10]. OGSA-DAI
provides activities to access relational, XML
databases, and indexed files. It also provides
data translation and third-party delivery
activities. This activity framework provides
extensibility so that application developers can
add their own activities. OGSA-DAI will
provide a reference implementation of WS-DAI
[11]. This paper describes the architectural
requirements for future releases, the new
architecture’s functionality and components and
presents its rationale.
1.1
OGSA-DAI relied on the factory pattern to
create independent grid services with a one-toone relationship with the data they were
handling. This meant that grid service handles
provided a data naming system, failures were
localised to a particular session and that
persistence was only required for the accessed
and handled data.
1.2
New Requirements
The change from OGSI to WS-I+ and WSRF
demands a change in the architecture as web
services must now be considered long-running.
For example, the SIMDAT [13] project believes
its requests will run for several hours and
requires concurrent requests [14]. This change
has been taken as an opportunity to review all
aspects of the OGSA-DAI, taking into account
performance and operational issues uncovered
through extensive use. The following
architectural requirements were considered:
•
•
Experience
OGSA-DAI has over 1100 registered users [12]
including projects which require continuously
available data access and integration services.
The architecture of the early versions of OGSADAI was based on the assumption that web
services were light-weight. For example, it
assumed that new web services could be
launched to handle each session between a data
resource and a client. Similarly, it assumed that
a new service could be produced to handle each
data transfer to a data consumer. As a result
All of the existing activities and
facilities should continue to be
supported.
Each data service must support zero or
more data resources (DRs) – dynamic
configuration may add and remove
DRs.
•
This exposes complex naming
requirements to name DRs and to use
name systems provided by DRs.
•
Each data service should be resilient to
failures within activities and the data
resources they access.
•
Each data service should be
configurable on installation and
reconfigurable during operation.
•
Each data service should be
manageable and persistent, i.e. they
should recover after site, platform and
internal failures.
•
The
same
architecture
should
accommodate rapid requests for small
tasks (execution of an activity) and
tasks involving large volumes of or
continuous streams of data.
•
The data services should support
concurrent sessions and transactions.
•
The power of request documents
should be extended – to support a
broader set of data sources and
operations.
•
The data services should be able to
accommodate standard interfaces such
as transaction coordination services.
•
The data resources should be an
additional OGSA-DAI extensibility
point to allow the dynamic exposure of
new virtual data resources, e.g. to
support an OGSA-DQP [15] federation.
•
The extensibility framework based on
activities should be stabilised to protect
application developer investment –
taking into
requirements.
account
the
above
This architecture must be amenable to
implementation over a number of platforms
(WS-I/Axis, WS-I+/OMII, WSRF/GT4 and
other systems of interconnecting services) and
must be achieved incrementally without undue
disruption of the development process. The
further development of data integration
activities must also continue.
The new architecture should protect application
development investment. A client-side API
already hides variations in the web service
infrastructure so that investment in client
applications is protected from change and the
clients can be used unchanged on all new
versions of OGSA-DAI. A new context will be
defined for activities. In this case, OGSA-DAI
provides a container for the activities developed
by application programmers. It is intended that
the APIs in this context will remain stable and
will protect the activities from web service
infrastructure variations.
2
Overview of Architecture
The primary components of
architecture are shown in Figure 1.
Figure 1: New OGSA-DAI Architecture
the
new
The architecture looks forward to multiple data
services administered through a consistent
regime. In the figure we can see three data
services: one serves OGSA-DAI, one serves the
WS-DAI standard [11] perhaps as a
configuration of OGSA-DAI and one serves
Mobius [16].
2.1
Data Resources
By data resource (DR) we mean any entity that
can act as a source and/or sink of data together
with its associated management framework.
Currently, OGSA-DAI works with six relational
DBMS, two native XML DBMS, file systems,
and indexed files. Its scope however is more
general.
OGSA-DAI provides an extensible framework
that allows flexible representation of a data
resource. The latter need not be a single
physical resource, e.g. RDBMS, but they could
also represent complex virtual data resources.
For example, a federation of many physical data
resources can be represented as a single virtual
data resource. This allows for new data
resources to be easily added to OGSA-DAI, like
streamed data [17], or indeed any kind of entity
that can act as a data source and/or sink.
2.2
2.3
Activities and Tasks
Because of the large and extending variety of
data resources, it is necessary to devise an openended scheme for attaching data resources and
introducing the languages and operations they
support. We do this by providing activities, each
of which may address a different resource in an
appropriate language. They all fit in a consistent
framework.
In OGSA-DAI, an activity represents the basic
unit of work. A task is the execution of an
activity on some specified data with specified
parameters. Activities can provide any kind of
functionality but they can roughly be
categorised into three main functional groups:
(a) statement activities that provide access to
DRs (e.g. sqlQueryStatement, xPathStatement),
(b) translation activities that perform
transformation on the data (e.g. xslTransform,
zipArchive), and (c) delivery activities that
deliver or collect data to/from third-parties (e.g.
deliverToURL, deliverFromGFTP).
We differentiate between three types of
activities:
1.
Core activities: simple activities that
deal
with
internal
OGSA-DAI
functionality. These activities cannot
be overridden. For example, activities
that initiate an OGSA-DAI session or
transaction (see later sections).
2.
Supplied activities: current activities
provided in OGSA-DAI releases –
these may be overridden, e.g. when
testing a new version.
3.
Extension activities: written by
community developers for specific
purposes, e.g. for a new data resource
or an application-dependent data
transformation.
Potentially,
these
activities could override the supplied
activities.
Data Services
A data service (DS) provides the entry point for
clients who want to access data resources. It can
be discovered using a registry or from a DRAM
(see section 2.10). A data service could expose
zero – in case it only provides data translation
and/or delivery functionality – to many data
resources. A DS can be dynamically configured.
For example, new data resources can be added
dynamically or the authorisation settings to
access the DR(s) could be changed.
As we mentioned in the introduction, OGSADAI is built to support many different
platforms/specifications. For each one the client
would need to make the appropriate (SOAP)
requests depending on the DS. However,
OGSA-DAI provides a client-side library – the
client toolkit (CTK), which offers a
programming abstraction and provides a
common interface to all these platforms, i.e. the
same code can be used whether accessing an
OGSA-DAI WS-I or WS-RF data service.
Developers need only learn the application
programming interface (API) provided by the
client toolkit to access any OGSA-DAI data
service.
OGSA-DAI provides an extensible activity
framework. Developers can easily add their own
(extension) activities according to their needs.
This has proved to be a particularly flexible and
valuable extension point. In the new
architecture, it is enhanced to support additional
functionality, for example, permitting extension
activities to use session information, engage in
transactions and write diagnostic or audit
information to logs. The new architecture also
requires notifications be produced by activities
to permit monitoring, accounting and failure
detection.
Request for the execution of a number of
activities can be grouped together into a
document and sent to a data service into a single
message.
2.4
TADD, Requests and Results
A Task And Data Document (TADD) permits a
number of tasks to be specified, together with
their parameters, inputs, outputs, data flow
between them and control flow. This composite
format can be used to submit simple requests, to
avoid unnecessary round-trip latencies, to report
status and results, and to delegate or cascade
work. Its ability to contain data (e.g. for a bulkload activity) further reduces communication
that would be needed, for example, to collect
the data to bulk-load. A TADD can be used as
both a request and a result document, hence the
change of name from Request Document in the
previous architecture.
Control flow allows a client to specify the order
of task execution and which tasks can be run in
parallel. Data flow allows the connection
between activities to create pipelines for
efficient data processing, using streamed
interconnections between activities.
Each activity can support one or more
languages that define the request. For example,
SQL statement activity will accommodate any
dialect or version of SQL that the targeted data
resource will process. The XSLT transformation
activity takes XSLT and so on. This permits
clients to exploit any special properties of a data
resource or data transforming activity. It has the
downside that clients are not protected from the
variations that are common among relational
databases. In most current use the clients choose
data sources and are aware of the dialect used.
We are investigating the use of SwisSQL [18]
for code which requires independence from
target data resource.
It is worth noting that the client developers are
not expected to craft TADD documents by hand.
Instead, the client toolkit is used, which
provides an API to hide the details of a
request’s (TADD) format from developers – for
example they need not know or write any XML
to formulate requests. In addition, the client
toolkit shields developers’ code from future
changes to the TADD’s format and structure.
2.5
•
to accommodate external decisions, e.g.
intermediate results are stored in the
session and the client can decide how
the process continues,
•
retain results awaiting delivery or
collection (see later section on DIDs),
•
retain transactional information, and
•
retain security information, localised
identifiers, connection information
caches, and similar data.
Sessions are OGSA-DAI internal entities. For a
request to join a session the TADD will contain
the appropriate information, e.g. the session
identifier (SID). SIDs can be one of three types.
First, implicit SIDs, when the request contains
no information about sessions. This provides
backwards compatibility and simplicity for
single request sessions. In this case, a session
will be created only for this request. A request
containing an explicit OGSA-DAI session
identifier will join that session and it will be
able to access (and store) state to it. Finally, the
request can contain information for a new SID
(session) to be created. Such a request can also
contain session configuration parameters
(lifetime,
authorisation,
etc.).
Session
functionality will also be managed by the
appropriate core activities (e.g. createSession).
2.6
Transactions
Transactions are fundamental for many
techniques to ensure the integrity of a resource.
Two main applications are dealing with
potential
inconsistencies
introduced
by
concurrent access and recovery from failures in
case the system crashes or an error occurs while
executing a transaction. A transaction groups a
number of activities into one unit of execution
(e.g. for atomicity). Moreover, a single activity
might contain multiple lower-level operations.
These, also have to be transactional.
Transactional state is stored in a session.
OGSA-DAI will provide a consistent
transactional framework and facilities to allow
developers to add transactional behaviour to
their activities. This includes:
•
a backward-compatible and uniform
way to describe transactional metadata
and behaviour for each activity and for
each exposed data resource that
supports transactions,
•
the logical rules for combining the
behaviour of transactional activities
Sessions
A session allows sharing and management of
state (context) between several TADDs. Sharing
state enables us to:
and activities that access transactional
DRs, and
•
a set of core activities to manage
transactional behaviour (e.g. a
commitTransactionActivity).
The progress of a transaction will be recorded to
a transactional log that will be later used by the
recovery component to restore the DS and its
underlying resources to a consistent state.
A transaction coordinator component in the DS
will enable distributed transactions within that
DS, i.e. when a DS exposes multiple resources
and the TADD contains a transactional request
involving more than one resource. In addition,
we can have a distributed transaction involving
multiple DSs. In such a scenario there usually
are external coordinators to orchestrate
interactions between the participants (DSs).
Activities performed as a session or as the result
of an individual request document may be part
of some distributed transaction coordinated by a
standard coordination protocol. It is therefore
necessary to support the interfaces, functionality
and protocols required by a standard distributed
transaction coordinator, such as WSAtomicTransaction (WS-AT) [19] (also see
section 2.9).
2.7
DIDs
Data Identifiers (DIDs) are used to describe the
handling of intermediary and externally
available results. Data identified by DIDs can
contain the data provenance information, the
format the data is in, as well as the data itself.
DIDs are stored in a session, so that other tasks
in a request or subsequent requests that join the
session can access them. Although, DIDs
lifetime is that of the session, a set of core
activities will allow the client to further manage
them. For example, the client would be able to
discard a DID or make it externally visible by
creating a universally unique DID (UUDID)
that may outlive the session and be accessed by
an incremental data access protocol, such as
ByteIO [20] or by other sessions.
2.8
ODE
Data Services (DS) have at their core the
OGSA-DAI Engine (ODE) that provides a
framework for activity and task management.
The ODE is being revised to support dynamic
configuration, sessions, transactions, recovery
and concurrency.
The model of execution can be seen in more
detail in Figure 2. The response to a request is
generated by the ODE within a session, which is
either created of joined as we assume in the
diagram. The ODE analyses incoming TADDs
conducts authentication and constructs an
internal representation of the request (e.g. a
directed acyclic graph (DAG)). The Task Form
encapsulates data about authorisation, external
relationships, e.g. client identity, and so on, so
these may be used abstractly by tasks. The tasks
specified in the DAG are then checked for
authorisation over the authenticated user’s
privileges.
Figure 2: OGSA-DAI Engine Execution
Model
Further analysis and optimisation of the task
DAG would create an optimised execution plan
that would then be evaluated. Evaluation is
overseen by an internal monitoring system to
detect excess resource consumption and provide
resilience. The following figure illustrates the
internals of an execution coordination thread.
Figure 3: Execution Coordination Thread
A request can be part of a transaction, in which
case, appropriate measures can be taken. Then,
the result TADD (could be more than one) is
created so that it can be later populated and
potential third-party collections are initiated as
soon as possible. The optimised execution plan
is then evaluated by spawning activity threads
(according to the TADD’s control and data flow
description) which use pipes and a Transfer
Assembler pattern [21] to handle arbitrary scale
intermediates and results respectively. Thirdparty deliveries could be started as soon as data
are available and on activities completion the
result TADD(s) are populated with each
activity’s data and execution statuses as
appropriate. Finally, cleaning up takes place,
discarding state in terminating sessions,
informing the monitoring system of completion,
etc. and the result TADD is sent back to the
requester. Hibernation retains transaction and
session state in non-terminating cases. Lifetime
management is required over hibernated state to
avoid permanent resources loss when clients fail.
We are considering pooling mechanisms to
reduce initialisation overheads.
2.9
Special Interfaces
An important requirement is a DS’s ability to
accommodate standard web service interfaces,
particularly WS-DAI, or interfaces that require
specific message protocols, such as distributed
transactions coordination protocols (e.g. WSAtomicTransaction [19]). These special
interfaces will be implemented by binding their
ports to code that constructs an equivalent
execution graph. The results produced as a
TADD by the transfer assembler will be
translated to the expected result format. As a
matter of principle such functions should also
be available through a standard activity in a
TADD. Conversely, activities that workflow
enactments may require should also appear via
“standard” WSDL-defined ports. In this way,
functions required by one community via a
special
interface,
e.g.
WSRF
getResourceProperties, will also be available as
a task in a request document.
2.10 DRAM: Configuration and
Monitoring
The Data Resource Access Manager (DRAM)
is a persistent service that provides
administrator and management interfaces for a
set of data services. It provides the ability to
initiate and configure a DS as well as
monitoring and controlling it. For example, a
DRAM would know if the DSs that it manages
are still running and it will also be able to
reconfigure them to support an additional data
resource (DR). A DRAM will monitor a DS’s
status digest produced by its internal monitor. If
this shows potential problems it may
reconfigure or restart the DS from its last
checkpoint.
A DRAM can be discovered via a registry and it
constitutes a gateway to a set of DRs. It could
contain explicit DR names or use further
registries to get available resources. A DRAM
will have access to processing resources – like
single or multi-processor (SMP) machines,
processing farms, etc. – and can initiate and
configure a DS, on its available computational
resources, to access one or more of its supported
data resources. Data services supported by a
DRAM would be OGSA-DAI, Mobius, other
federation and integration services or indeed
any other service that exposes data resources.
The initial configuration of a data service is
described in the Data Service Description
Language (DSDL). Most aspects of a DS will
be described by this XML file, which should be
built as much as possible from existing
standards, such as Management of Web
Services (MOWS) [22]. Elements of DSDL will
include the type – and potentially configuration
– of a data service (e.g. OGSA-DAI), the DS’s
longevity, the name or description of a data
resource, and quality of service and security
requirements.
2.11 Naming
A name is used to identify an entity. The OGSA
work on naming [23] distinguishes between
three layers for names; human names (easily
generated and read by humans), which are
mapped to abstract names (persistent and
globally unique names), which are in turn
mapped to addresses (the physical locations of
the identified entities). Entities that need to be
named in OGSA-DAI include: registries, DSs,
DRs, DRAMs, sessions, transactions, result sets
(DIDs, UUDIDs), TADDs, activities and tasks.
There are many challenges involved in naming
data. Not only is there a large number of data
collections, but there are also many individual
naming systems - per technology provider (OS
and DBMS), per project, organisation or
community and those invented by individuals.
Moreover, there are many data values, such as
data sets awaiting delivery, which maybe
needed to be named, e.g. publicly as a UUDID
or privately for logs, audit trails and diagnostics,
where a UUID may suffice. The relationships
between names are complex, for example with
synonyms, names of copies and names of a
subset of some larger, possibly mutable, data set.
Architecturally, OGSA-DAI must accommodate
the naming schemes in use in the context in
which it is being applied and must meet
standard requirements, as well as application
requirements. This is more significant in the
new architecture as multiple data resources are
accommodated within on data service (for
efficiency and management reasons). This then
requires TADDs to contain tasks that operate on
a specified DR. This will be achieved by
including a name in the task specification. To
achieve backwards compatibility and to
accommodate standard protocols not equipped
with names, it is necessary to set a default DR.
This can be done at configuration time or within
a session or request using a core activity.
The current evaluation plan is to experiment
with handle.net [24] and then to accommodate
the OGSA naming standards. We anticipate that
the generality of handle.net is sufficient to meet
all of these requirements.
The cost of name resolution, possibly through
intermediate names could be high. However, the
DS can have a local resolver for all of its local
DRs and incrementally populate this by
interrogating data sources (such as file stores
and DBMS) as names are introduced in the
sequences of TADD messages. Caching can
reduce the mapping costs of external names, for
example those used in third-party transfers.
It is sensible to allow clients to reduce name
resolution costs by requiring that the language
design principle of substitutability is adhered to
in the syntax of TADDs. That is, wherever a
name is permitted, it should be possible to
substitute an address (represented as WSAddress) and in most cases, where the
resolution mapper can be reliably inferred, the
inverse is also true.
3
Status and Future Work
In the upcoming OGSA-DAI release 7, data
services
are
(re)configurable,
provide
concurrency, and support sessions and
transactions (first implementation stage of a
well-defined phased implementation plan). In
addition, all existing activities and functionality
are still supported, while a new extensibility
point, that of adding data resources dynamically,
has been added. A detailed status report
including benchmarks can be found in [12].
The next few releases of OGSA-DAI will
complete the engineering of this architecture
and exploit it with new data activities and data
resources. New activities will include interfaces
to other data stores, distributed query, resilient
multi-source unions, schema and data
integration, standard tools for extracting data
from files, and standard computations, such as
statistical analyses.
We expect to invest significant effort in
engineering good performance. This will
include improving parallelisation of data flow
and investigation of improved structured data
transfer formats, e.g. based on SOAP Message
Transmission
Optimization
Mechanism
(MTOM) [25] and Data Format Description
Language (DFDL) [26]. There are difficult
trade-offs between translation costs, transfer
costs and simple APIs for activity developers.
High-performance systems will need to be
closely coupled to data management and storage
systems. Integration with widely used
authorisation systems, e.g. Shibboleth [27],
accounting systems, portals, e.g. GridSphere
[28] or WebSphere [29], and diagnostic tools is
called for. It remains to be seen whether the
planned architecture will meet all of those needs
as we hope.
The activity framework is a powerful
mechanism for extension and for managing
complexity. It also provides a framework in
which to manage contributed extensions to
OGSA-DAI. In the longer-term we anticipate
dynamically installing extension activities
delivered via requests from clients planning to
use them. This will support incremental
development of continuously operating data
services and performance gains from moving
relatively small volumes of code to relatively
large volumes of data. However, this will
depend on the activity framework providing a
robust container and safety net.
4
Conclusions
In this paper we presented the OGSA-DAI’s
architecture evolution as it progresses to comply
with new specifications and service-oriented
architecture requirements in an open and highly
dynamic environment. First, we discussed the
rational for the change and a set of required
functionalities. Then, we presented an overview
of the architectural components and described
each one, the functionality it provides, and its
purpose within the overall design. Finally, we
concluded with a brief status report and future
directions.
Acknowledgements: This work is supported by
the UK e-Science Core Programme and in part
by the Mathematical, Information, and
Computational Sciences Division subprogram
of the Office of Advanced Scientific Computing
Research, Office of Science, U.S. Department
of Energy, under Contract W-31-109-ENG-38.
We also gratefully acknowledge the input of our
past and present partners and contributors to the
OGSA-DAI project including: IBM Corp. and
Oracle UK.
IBM and DB2 are trademarks of International
Business Machines Corporation in the United
States, other countries, or both. Java and all
Java-based trademarks are trademarks of Sun
Microsystems, Inc. in the United States and
other countries. Other company, product, or
service names may be trademarks or service
marks of others.
© Copyright International Business Machines
Corporation, 2005. © Copyright The University of
Edinburgh, 2005. © Copyright University of
Manchester, 2005. © Copyright University of
Newcastle upon Tyne, 2005.
5
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
References
Antonioletti, M., Atkinson, M, Baxter, R.,
Borley, A., Chue Hong, N., Collins, B.,
Hardman, N., Hume, A., Knox, A., Jackson,
M., Krause, A., Laws, S., Magowan, J.,
Paton, N., Pearson, D., Sugden, T., Watson,
P. and Westhead, M., The design and
implementation of Grid database services
in OGSA-DAI. Concurrency and
Computation: Practice and Experience,
2005. 17(2): p. 357-376.
Foster, I., Kishimoto, H., Savva, A., Berry,
D., Djaoui, A., Grimshaw, A., Horn, B.,
Maciel, F., Siebenlist, F., Subramaniam, R.,
Treadwell, J. and Von Reich, J., The Open
Grid Services Architecture, Version 1.0.
2005.
Tuecke, S., Czajkowski, K., Foster, I., Frey,
J., Graham, S., Kesselman, C., Maquire, T.,
Sandholm, T., Snelling, D. and Vanderpilt,
P., Open Grid Services Infrastructure,
Version 1.0. 2004.
Globus, Globus Toolkit 3.2.1. 2004.
Apache, Axis. 2005.
WS-I, Web Services Interoperability, Basic
Profile 1.0. 2004.
OMII, OMII_1. 2005.
Atkinson, M., DeRoure, D., Dunlop, A.,
Fox, G., Henderson, P., Hey, T., Paton, N.,
Newhouse, S., Parastratidis, S., Trefethen,
A., Watson, P. and Webber, J., Web Service
Grids: an evolutionary approach.
Concurrency and Computation: Practice
and Experience, 2005. 17(2): p. 377-390.
Globus, Status and Plans for the Globus
Toolkit 4.0 (GT4) as of May 1 2005. 2005.
OASIS, WS-ResourceFramework. 2005.
Antonioletti, M., Atkinson, M., Laws, S.,
Malaika, S., Paton, N., Pearson, D. and
Riccardi, G. Web Services Data Access and
Integration (WS-DAI). in 13th Global Grid
Forum. 2005. Seoul, Korea.
Antonioletti, M., Atkinson, M., Baxter, R.,
Borley, A., Chue Hong, N., Dantressangle,
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
P., Hume, A., Jackson, M., Karasavvas, K.,
Krause, A., Laws, S., Parsons, M., Paton,
N., Schopf, J., Sugden, T., Tourlas, K.,
Watson, P. and Vyvyan, D. OGSA-DAI
Status and Benchmarks. in UK e-Science
All Hands Meeting (to appear). 2005.
Nottingham, England.
SIMDAT, Consolidated Requirements
Report, Roadmap and SIMDAT
Infrastructure Design. 2005.
Borley, A., Personal Communication
(SIMDAT). 2005.
Alpdemir, N., Mukherjee, A., Gounaris, A.,
Paton, N. W., Watson, P., Fernandes, A. A.
A. and Fitzgerald, D. J. OGSA-DQP: A
Grid Service for Distributed Querying on
the Grid. in Ninth International Conference
on Extending Database Technology
(EDBT). 2004.
Hastings, S., Langella, S., Oster, S. and
Saltz, J. Distributed Data Management and
Integration Framework: The Mobius
Project. in GGF11 Semantic Grid
Applications Workshop. 2004. Berlin,
Germany.
Plale, B., Framework for Bringing Data
Streams to the Grid. Scientific
Programming, 2004. 12(4).
AdventNet, SwisSQL. 2005.
WS-AT, Web Services Atomic Transaction.
2004.
GGF, Byte-IO Working Group. 2005.
Gamma, E., Helm, R., Johnson, R. and
Vlissides, J., Design Patterns. 1995:
Addison-Wesley Professional.
OASIS, Web Services Distributed
Management: Management of Web
Services (MOWS). 2005.
Grimshaw, A., Naming in Distributed
Systems (OGSA Naming Design Team
working note OGSA-Naming-02). 2004.
Sun, S., Lannom, L. and Boesch, B.,
Handle System Overview, in Request for
Comments 3650. 2003, Internet
Engineeting Task Force (IETF).
W3C, SOAP Message Transmission
Optimization Mechanism. 2005.
GGF, Data Format Description Language
Working Group. 2005.
Internet2, Shibboleth Technical Overview.
2005.
Novotny, J., Russell, M. and Wehrens, O.
GridSphere: A portal framework for
building collaborations. in The First
International Workshop on Middleware for
Grid Computing. 2003.
IBM, WebSphere. 2005.
Download