Web service wrapper for the Common Workflow Language API. The service provides two endpoints: - serialize: Converts a workflow plan in JSON format to CWL. - run: Executes a CWL workflow plan with a pre-assigned flow identifier.
This microservice forms part of the SWIM model orchestration pool, for more information view:
https://water.cybershare.utep.edu/resources/docs/en2/backend/swim-broker/
Environment Requirements: Docker and Docker Compose
The public image of the Workflow Composer can be pulled from the Dockerhub repo:
lagarnicachavira/workflow-cwl-public
https://hub.docker.com/r/lagarnicachavira/workflow-cwl-public
You can directly run the application using the docker-compose.yml in this repo.
- Modify the file docker-compose.yml if necesary.
- Run the container: > docker-compose up (linux) | docker compose up (windows)
- Once running, the OpenAPI documentation will be locally available at http://localhost:5004/workflow-cwl/docs/
Environment Requirements: Docker
The Workflow Composer can be deployed as a docker container using Docker Build or Compose.
- Download this repository into a folder on your machine.
- Install Docker and Docker composer on your target machine.
- Setup your docker account at: https://www.docker.com/get-started
- Using a command line or terminal navigate to the base path of the project.
- Build the image: > docker build -t workflow-cwl-public:latest.
- Run the container: > docker run -p 5004:5004 workflow-cwl-public:latest .
- Once running, the API documentation will be locally available at http://localhost:5004/workflow-cwl/docs/
Environment Requirements: Python 3+, pip, python virtual env
- Install Python > 3
- Setup a python virtual environment and activate
- Comment the uWSGI package on requirements.txt if running on windows
- pip install -r requirements.txt
CLI Run Commands:
localhost run server (development mode): > py manage.py run (windows)
API documentation will be locally available at http://localhost:5004/workflow-cwl/docs/
The tests folder in this repository contains input and output files used as an abstract test case and the SWIM (http://purl.org/swim) case study.
You may use the abstract sample files for quick demo purposes, the abstract input can be serialized, but not executed. The generated serialization is saved in the root of the container, the response is just an acknowledgement of the serialization process.
Raul Alejandro Vargas Acosta
Luis Garnica Chavira
Natalia Villanueva-Rosales
Deana D. Pennington
If you create products such as publications using SWIM products, it would be great if you add the following acknowledgement:
"This work used the Sustainable Water for Integrated Modeling (SWIM) 2.0, which was supported by the National Science Foundation under Grant No. 1835897."
Please use the following citation for this product:
Automating Multivariable Workflow Composition for Model-to-Model Integration
Vargas Acosta R. A., Garnica Chavira L., Villanueva-Rosales N., Pennington D.
2022 IEEE 18th International Conference on e-Science, Salt Lake City, USA. October 11-14, 2022.
DOI 10.1109/eScience55777.2022.00030
This material is based upon work supported by the National Science Foundation (NSF) under Grant No. 1835897. This work used resources from Cyber-ShARE Center of Excellence, which is supported by NSF Grant number HRD-1242122.
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the NSF.
This software code is licensed under the GNU GENERAL PUBLIC LICENSE v3.0 and uses third party libraries that are distributed under their own terms (see LICENSE-3RD-PARTY.md).
© 2019-2023 - University of Texas at El Paso (SWIM Project).
[1] P. Amstutz et al., “Common Workflow Language, v1.0,” 2016, doi: https://doi.org/10.6084/m9.figshare.3115156.v2.


