r1 - 07 Apr 2005 - 12:52:00 - NickSharmanYou are here: myGrid wiki >  Mygrid Web  > ModuleBuildsAndDependencies

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.

KAVE

Purpose: An RDF-based metadata repository.

To build: This is a standard antmerge-based project, building a WAR file for deployment in Tomcat.

KAVE-Taverna-Plug-in

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

MIR

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.

MIR-Taverna-Plug-in

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

MIRBrowser

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

fetaClient

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

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.

lsid-authority

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.

lsid-dataservice

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.

lsid-metadata

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

mir-init

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.

notification

Purpose: A publish-subscribe event notification system

To build: to be supplied

portal

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

rdf-serialize

Purpose: to be supplied

To build: This is a standard antmerge-based project, building a JAR library for use by other myGrid modules.

userdocs

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

antmerge

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

build

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.

packaging

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).

xdepend

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

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

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
 
Powered by myGrid wiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding myGrid wiki? Send feedback