FCEditor: Modeling of Function Choreographies (Serverless Workflows) and building them in AFCL (Abstract Function Choreography Language)
FCEditor is a graphical user interface for building, editing, and exporting function choreographies in AFCL. It offers the FC developers several benefits:
- Builds complex workflows including base functions and compound functions (if, switch, parallel, parallelFor)
- Supports many features of AFCL (constraints, properties, data-flow, control-flow)
- No 'real programming skills' needed for modeling
- Optimization of created workflows
The FCEDitor is accessible at http://qe-fceditor.uibk.ac.at:8180/.
- Java (JDK >= 12)
- Maven
- Node v12
Install dependencies
- Add AFCL API to local maven repo:
mvn install:install-file -Dfile=./src/main/resources/afclAPI.jar -DgroupId=com.dps.afcl -DartifactId=afcl-api -Dversion=1.0 -Dpackaging=jar
- Install dependencies:
mvn install
If using an IDE, reimport - e.g if using IntelliJ:
right click on Project -> Maven -> Reimport
Build and run
mvn compile
mvn package
sh target/bin/webapp
If using an IDE, create a build configuration - e.g if using IntelliJ:
Run -> Edit Configurations -> Add a configuration and select launch.Main
as main class.
Frontend
- cd into
src/main/webapp
npm ci
(recommended when package-lock.json present) ornpm i
npm run dev
ornpm run build
Several bachelor theses supervised by Dr. Sashko Ristov contributed to this project:
- "High-Level Modeling and Low-Level Adaptation of Serverless Function Choreographies", Benjamin Walch, SS2020.
- "Function Choreography Scheduling Framework for Multiple FaaS Systems", Tobias Pockstaller, WS2021.
If you need any additional information, please do not hesitate to contact me.