myGrid Module Builds and Dependencies
This topic lists all the current modules in myGrid's
CVS repository
and identifies any build-time dependencies between them.
Building myGrid modules
Most modules are Java-based components and built using
Apache Ant. However, in most cases the
"usual"
build.xml file must be generated using
AntMerge (the
antmerge module).
AntMerge constructs
build.xml from a module's
AntMerge template, an
Ant fragment usually named
*-in.xml that identifies zero or more
parent templates and any project-specific overrides and extensions.
After generating
build.xml (simply via the command
antmerge), the
developer must collect any necessary third-party libraries and myGrid
module libraries via the command
ant gather.
Thereafter, the default Ant target should construct a usable component
(e.g. a JAR or WAR file).
Other useful targets:
publish, to make any JAR files available to
dependent modules;
dist, to produce source and binary downloads, in
.zip and
.tgz flavours.
Active Modules
$CVSROOT
|
+-- mygrid
| |
| +-- KAVE
| |
| +-- KAVE-Taverna-Plug-in
| |
| +-- MIR
| |
| +-- MIR-Taverna-Plug-in
| |
| +-- MIRBrowser
| |
| +-- antmerge
| |
| +-- build
| |
| +-- fetaClient
| |
| +-- fetaEngine
| |
| +-- lsid-authority
| |
| +-- lsid-dataservice
| |
| +-- lsid-metadata
| |
| +-- mir-init
| |
| +-- notification
| |
| +-- packaging
| |
| +-- portal
| |
| +-- userdocs
| |
| +-- xdepend
| |
| +-- packaging
| |
| +-- rdf-serialize
|
+-- mygrid-external-dependencies
Deliverable Modules
All Java-based deliverable modules (i.e. all except
userdocs) have build-time dependencies on
antmerge and
mygrid-external-dependencies.
Purpose:
An RDF-based metadata repository.
To build:
This is a standard
antmerge-based project,
building a WAR file for deployment in Tomcat.
Purpose:
A Taverna plug-in that supplies a workflow event observer that gathers
user-defined workflow provenance annotationd and records them in
KAVE.
To build:
This is a standard
antmerge-based project,
building a plug-in for deployment in Taverna.
Depends on:
KAVE
Purpose:
A repository for storing life sciences documents, workflows, workflow
results and the linking workflow provenance information.
To build:
This is a standard
antmerge-based project,
building a WAR file for deployment in Tomcat.
Purpose:
A Taverna plug-in that supplies a workflow event observer that gathers
standard workflow "audit trail" provenance and records it in
MIR.
To build:
This is a standard
antmerge-based project,
building a plug-in for deployment in Taverna.
Depends on: MIR
Purpose:
A Tavern plug-in that supplies a graphical user interface for, er,
browsing the [#MIR][MIR]].
And updating it, and most importantly, setting the context for gathering
provenance information via
KAVE-Taverna-Plug-in and
[#MIR-Taverna-Plug-in][MIR-Taverna-Plug-in]].
To build:
This is a standard
antmerge-based project,
building a plug-in for deployment in Taverna.
Depends on:
MIR
Purpose:
A Taverna plug-in that supplies graphical user interfaces for
(a) discovering services according to their semantic descriptions and
(b) annotating services registered in a third-party registry with
semantic descriptions.
To build:
This is a standard
antmerge-based project,
building a plug-in for deployment in Taverna.
Depends on:
fetaEngine
Purpose:
A Web Service that maintains semantic descriptions for services
described in an underlying, possibly third-party, registry (such as
UDDI).
To build:
This is a standard
antmerge-based project,
building a WAR file for deployment in Tomcat.
Purpose:
A Web Service that supports the
[[http://www.omg.org/technology/documents/domain_spec_catalog.htm#LS_Idents]LSID]]
authority and assigning services, giving access to data held in the
MIR.
To build:
This is a standard
antmerge-based project,
building a WAR file for deployment in Tomcat.
Purpose:
A Web Service that supports the
getData operations of the
[[http://www.omg.org/technology/documents/domain_spec_catalog.htm#LS_Idents]LSID]]
data retrieval service, giving access to data held in the
MIR.
To build:
This is a standard
antmerge-based project,
building a WAR file for deployment in Tomcat.
Purpose:
A Web Service that supports the
getMetadata operations of the
[[http://www.omg.org/technology/documents/domain_spec_catalog.htm#LS_Idents]LSID]]
data retrieval service, giving access to metadata (including workflow
provenance metadata) held in
KAVE and the
[[#MIR">MIR.
To build:
This is a standard
antmerge-based project,
building a WAR file for deployment in Tomcat.
Depends on:
KAVE
MIR
rdf-serialize
Purpose:
A command-line utility that allows users to "prime" the MIR with initial
data (principally users and organizations, but including any valid MIR
entity type) from a hand-crafted XML document based on the MIR's schema.
To build:
This is a standard
antmerge-based project,
building a command-line application.
To run the application, use either the Microsoft batch file or Bourne
shell script in
mir-init/bin.
See the user documentation for further details.
Purpose:
A publish-subscribe event notification system
To build: to be supplied
Purpose:
A web portal based on
GridServe? that allows its users to deploy, enact,
and manage the results of, Scufl workflows. The portal provides
simpler, zero-install, access to a project's "interesting" workflows
than the Taverna-based workbench, but does not support workflow
development or
ad hoc exploration of the MIR.
To build:
to be supplied
Purpose:
to be supplied
To build:
This is a standard
antmerge-based project,
building a JAR library for use by other myGrid modules.
Purpose:
Documentation (in Microsoft Word format) that describes how to install
and use myGrid.
To build:
Building will not usually be necessary.
The supplied Ant build file
buidl.xml assembles all the source
documents into a
.zip archive.
Development-Support Modules
Purpose:
AntMerge is a utility for generating
Apache Ant build files from project-specific
fragments and some parent templates.
AntMerge simplifies the construction of build files that are reasonably
complete and conform to cross-project standards for target names, file
locations etc.
AntMerge contains a number of templates that conform to myGrid's build
conventions and deal with different module types (e.g. Web Application,
Taverna plug-in) and build aspects (e.g. compilation, testing).
To build:
To build from source, first "bootstrap" the build with the provided Ant
build file:
ant -f bootbuild.xml.
Thereafter, treat the module as a standard
antmerge-based project, building a command-line
application.
To run the application, use either the Microsoft batch file or Bourne
shell script in
mir-init/bin.
See the
AntMerge for more details.
Depends on:
mygrid-external-dependencies
Purpose:
Some Ant files used to drive
AntHill automated nightly builds.
Not needed for ordinary development
To build:
No build usually required: the module's
build.xml is only used from
AntHill to make other files in this module avaiable for
AntHill builds
of other modules.
Purpose:
To assemble specific versions of deliverable modules into downloadable
binary packages.
There are currently four such packages, comprising the myGrid services,
the myGrid workbench (Taverna plus plug-ins), the MIR initialization
tool and the user documentation.
To build:
Update
packaging/modules.properties to identify the required
components and their versions, and run
ant (default target).
Purpose:
A utility to determine myGrid's use of third-party libraries in
mygrid-external-dependencies,
indexed by library and by myGrid module.
To build:
This is a standard
antmerge-based project,
building a command-line application.
To run the application, use
ant run.
The application trawls all the myGrid componentns, extracts dependencies
from their
build.xml files and produces an HTML output report.
Depends on:
antmerge
mygrid-external-dependencies
Purpose:
All third-party libraries used by myGrid modules.
(Note: with respect to the modules described here, Taverna and Freefluo
are classed as "third-party" since theirs source reposistories and
builds are managed elsewhere.)
To build:
No build is necessary for this module: dependent modules use
ant gather to obtain any necessary libraries from the "source tree"
prior to their own builds.
--
NickSharman - 07 Apr 2005