An open API service indexing awesome lists of open source software.

https://github.com/workflowfm/pew

A persistent execution engine for pi-calculus workflows
https://github.com/workflowfm/pew

business-process-management process-algebra process-algebra-engine workflow-engine workflow-management workflows

Last synced: about 1 month ago
JSON representation

A persistent execution engine for pi-calculus workflows

Awesome Lists containing this project

README

          

#+TITLE: PEW: Persistent Execution of Workflows
#+AUTHOR: Petros Papapanagiotou

#+ATTR_ORG: :width 100
[[https://raw.githubusercontent.com/workflowfm/pew/master/docs/static/images/PEW.png]]

[[../../releases/latest][https://img.shields.io/badge/version-1.6.1-brightgreen.svg]]
[[https://opensource.org/licenses/Apache-2.0][https://img.shields.io/badge/license-Apache%202.0-yellowgreen.svg]]

A library for the execution of [[https://en.wikipedia.org/wiki/%CE%A0-calculus][\pi-calculus]] workflows, particularly those constructed by the WorkflowFM Reasoner using persistent (serializable) state.

| Created by [[https://github.com/PetrosPapapa][Petros Papapanagiotou]] |
| [[https://aiml.inf.ed.ac.uk/][Artificial Intelligence Modelling Lab]] |
| [[https://web.inf.ed.ac.uk/aiai][Artificial Intelligence and its Applications Institute]] |
| [[https://www.ed.ac.uk/informatics/][School of Informatics, University of Edinburgh]] |

This is part of the [[https://github.com/workflowfm/][WorkflowFM]] framework for correct-by-construction process and resource workflows.

[[http://docs.workflowfm.com/pew][More info and documentation can be found in the main webpage.]]

* Modules

In addition to the core \pi-calculus model and execution engine, a list of additoinal modules are provided:

- *pew-mongo*: Additional executor that stores the state in a [[https://www.mongodb.com/][MongoDB]] database.
- *pew-kafka*: Additional executor that stores the state and open process calls in [[https://kafka.apache.org/][Kafka]] topics, yielding a fully persistent/completely stateless execution.
- *pew-simulator*: Integration with [[https://github.com/workflowfm/proter][Proter]], an expressive, asynchronous process simulator.
- *skiexample*: Deployment of an example ski purchasing workflow documented in [[https://arxiv.org/abs/1108.2348][this paper]].

* Install

Requirements:
- Java 8, Scala 2.12.12
- [[https://www.scala-sbt.org/][sbt]] v1.4.5 or higher

You can then add Proter as [[https://search.maven.org/artifact/com.workflowfm/pew_2.12][a dependency from Maven]].

e.g. in sbt:
#+BEGIN_SRC scala
libraryDependencies += "com.workflowfm" %% "pew" % "1.6.1"
#+END_SRC

* Authors
:PROPERTIES:
:CUSTOM_ID: authors
:END:

** Maintainer

[[https://github.com/PetrosPapapa][Petros Papapanagiotou]] - pe.p@ed.ac.uk - [[https://twitter.com/petrospapapa][@PetrosPapapa]]

** Contributors

A big thank you to the following contributors in order of appearance:

- [[https://github.com/JeVaughan][James Vaughan]]
- [[https://github.com/pilif0][Filip Smola]]

* License

Distributed under the Apache 2.0 license. See [[LICENSE]] for more information.

Copyright \copy 2012-2021 [[https://www.ed.ac.uk/][The University of Edinburgh]] and [[#authors][contributors]]