Workflow Engine

Logo

Crossflow is a distributed data processing framework that supports dispensation of work across multiple opinionated and low-commitment workers.

Docker Quick Start

Pull container image from Docker Hub:

docker pull crossminer/crossflow

Startup container:

docker run -it --rm -d --name crossflow -p 80:8080 -p 61616:61616 -p 61614:61614 -p 5672:5672 -p 61613:61613 -p 1883:1883 -p 8161:8161 -p 1099:1099 crossminer/crossflow:latest

Access Crossflow web application: http://localhost/org.eclipse.scava.crossflow.web/

More details on running Crossflow with Docker are available here.

Running from source

To run Crossflow from source you will need Eclipse, Apache Tomcat and Apache Thrift. Brief instructions are provided below.

Eclipse

Tomcat

Thrift

Git

Ivy

We're using Apache Ivy for dependency management (i.e. so that we don't need to store jars in the repo) - Install the Ivy Eclipse plugin: http://www.apache.org/dist/ant/ivyde/updatesite - If Ivy doesn't run automatically, look for any projects that contain an ivy.xml, right-click and select Ivy -> Resolve

Generating stuff

You will need to run the ANT build-files below to generate stuff after you import all the crossflow and restmule projects.

Tests

Web application

Screenshots

Screenshot Figure: Main page listing available workflows and Upload New Workflow button.

Screenshot Figure: Calculator experiment page Advanced tab listing Calculator workflow configuration.

Screenshot Figure: Calculator experiment page Calculations tab listing Calculator workflow input calculations obtained from CSV source.

Screenshot Figure: Calculator experiment page Model tab listing Calculator workflow model.

Screenshot Figure: Calculator experiment page Log tab listing Calculator workflow log after experiment completion.

Screenshot Figure: Word Count experiment page Model tab listing Word Count workflow model before execution.

Screenshot Figure: Word Count experiment page Model tab listing Word Count workflow model during execution visualizing task status and queue size by means of color and rounded number, respectively. Task status (color): STARTED (lightcyan), WAITING (skyblue), INPROGRESS (palegreen), BLOCKED (salmon), and FINISHED (slategrey).

Screenshot Figure: Word Count experiment page Model tab listing Word Count workflow model during execution with mouse hovering over initial queue depicting (queue) size, in-flight count, and subscriber count.

Screenshot Figure: Word Count experiment page Model tab listing Word Count workflow model during execution with mouse click inside empty model area, i.e. not on a particular task or queue, displaying context menu popup to clear the cache of all queues involved in the Word Count workflow.

Screenshot Figure: Word Count experiment page Model tab listing Word Count workflow model during execution with mouse click inside boundaries of WordFrequencies queue displaying context menu popup to clear the cache of all queues involved in the Word Count workflow.

Screenshot Figure: Upload New Workflow page allowing the upload and deployment of new experiments.