Mirror of Apache Taverna Engine (incubating)

Clone this repo:
  1. 7318b43 https for archive.apache.org by Stian Soiland-Reyes · 6 months ago master
  2. 5b180d5 Taverna retired from Apache Incubator by Stian Soiland-Reyes · 6 months ago
  3. a4c46e1 http -> https by Stian Soiland-Reyes · 1 year, 4 months ago apache-retire-2020-03-12
  4. bc7e63c newer taverna-maven-parent by Stian Soiland-Reyes · 1 year, 6 months ago
  5. 98536c6 newer spring by Stian Soiland-Reyes · 1 year, 8 months ago

Taverna Project Retired

tl;dr: The Taverna code base is no longer maintained and is provided here for archival purposes.

From 2014 till 2020 this code base was maintained by the Apache Incubator project Apache Taverna (incubating) (see web archive and podling status).

In 2020 the Taverna community voted to retire Taverna as a project and withdraw the code base from the Apache Software Foundation.

This code base remains available under the Apache License 2.0 (see License below), but is now simply called Taverna rather than Apache Taverna (incubating).

While the code base is no longer actively maintained, Pull Requests are welcome to the GitHub organization taverna, which may infrequently be considered by remaining volunteer caretakers.

Previous releases

Releases 2015-2018 during incubation at Apache Software Foundation are available from the ASF Download Archive https://archive.apache.org/dist/incubator/taverna/

Releases 2014 from the University of Manchester are on BitBucket https://bitbucket.org/taverna/

Releases 2009-2013 from myGrid are on LaunchPad https://launchpad.net/taverna/

Releases 2003-2009 are on SourceForge https://sourceforge.net/projects/taverna/files/taverna/

Binary JARs for Taverna are available from Maven Central https://repo.maven.apache.org/maven2/org/apache/taverna/ or the myGrid Maven repository https://repository.mygrid.org.uk/

Taverna Engine

Workflow engine for Taverna.

The engine executes a Taverna workflow, defined using Taverna Language.

Note that the engine does not include the activity implementations that actually perform work (e.g. calling a REST service). To use the engine, use the Taverna Command Line or Taverna Server.

All Taverna Engine modules are also valid OSGi bundles, providing OSGi Spring services.

License

  • (c) 2007-2014 University of Manchester
  • (c) 2014-2018 Apache Software Foundation

This product includes software developed at The Apache Software Foundation.

Licensed under the Apache License 2.0, see the LICENSE file for details.

The NOTICE file contains any additional attributions as well as details about embedded third-party libraries and source code.

Contribute

Any contributions received are assumed to be covered by the Apache License 2.0.

Prerequisites

  • Java 1.8 or newer (tested with OpenJDK 1.8)
  • Apache Maven 3.2.5 or newer (older versions probably also work)

This code relies on other Taverna modules, which Maven shuold automatically download from Apache's Maven repository; however you might want to compile these yourself in the below order:

Please see the <properties> of this pom.xml to find the correct versions to build.

Building

To build, use

mvn clean install

This will build each module and run their tests.

Building on Windows

If you are building on Windows, ensure you unpack this source code to a folder with a short path name lenght, e.g. C:\src - as Windows has a limitation on the total path length which might otherwise prevent this code from building successfully.

Skipping tests

To skip the tests (these can be time-consuming), use:

mvn clean install -DskipTests

If you are modifying this source code independent of the Taverna project, you may not want to run the Rat Maven plugin that enforces Apache headers in every source file - to disable it, try:

mvn clean install -Drat.skip=true

Modules

The Taverna Engine modules are generally split into -api and -impl. The -api modules contain Java interfaces, abstract classes, and minimal dependencies while -impl modules contain the corresponding implementation(s).

Thus, the taverna-common-activities should only need to depend on the -api modules, while the -impl are added by the packaging of the taverna-commandline-product.

These modules include utilities used by the above, or for test purposes:

These modules include structural workflow activities:

See the separate release of taverna-common-activities for activities that invoke Beanshell, WSDL, REST and command line tool services.

These modules are experimental:

These modules are not yet fully updated to Taverna 3 (contributions welcome!):

See the taverna-engine JavaDoc for more details.

Which module does what?

This section shows how different Taverna Engine module are involved when running a Taverna workflow, e.g. from the Taverna Command Line.

There are two layers of Taverna Engine:

  • Taverna Platform provides an outer API for creating and managing workflow runs, potentially remotely.
  • Taverna Core (aka workflowmodel, formerly t2.core) is the orchestrating part of the Taverna Engine. Its Activity is implemented by multiple plugins depending on the activity type.

Preparations

  • (Optional) Choose a Workflow to bind workflows (usually the main workflow).
  • (Optional) Choose a Profile to bind workflow implementations. (There is normally only one profile.)

Running a workflow

Spring services

The OSGi services should be discoverable as Spring services, e.g., by adding the following code to your META-INF/spring/update-context-osgi.xml:


<beans:beans xmlns="http://www.springframework.org/schema/osgi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd"> <reference id="executionService" interface="org.apache.taverna.platform.execution.api.ExecutionService"/> <reference id="runService" interface="org.apache.taverna.platform.run.api.RunService"/> <reference id="credentialManager" interface="org.apache.taverna.security.credentialmanager.CredentialManager" /> <reference id="databaseConfiguration" interface="org.apache.taverna.configuration.database.DatabaseConfiguration" /> <reference id="databaseManager" interface="org.apache.taverna.configuration.database.DatabaseManager" /> </beans:beans>

You might want to combine these with the Taverna OSGi services.

Export restrictions

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

The following provides more details on the included cryptographic software: