Skip to content

Documentation, code examples, and tutorials for the SemWES platform

License

Notifications You must be signed in to change notification settings

SemWES/docs-and-training

Repository files navigation

Service and workflow development for the SemWES platform stack in CloudiFacturing

Welcome to the SemWES/CloudiFacturing service-development resources!

This repository is meant to be a center for documentation relevant for everyone who develops services and workflows on the SemWES platform stack in the CloudiFacturing project. Here, you will find everything from high-level descriptions of the concepts behind the platform to step-by-step tutorials for advanced topics in service development.

Contents

Documentation version

Current documentation version: 3.20.0

See the Changelog for versioning details.

Contributing

Everyone is welcome to contribute to this documentation center. Typos, clarifications, interesting code examples, or also just questions – anything is valuable. To contribute, choose one of the following options:

  • Fork the repository, add your changes and create a pull request.
  • Create an issue in the GitHub issue tracker.
  • Write an email with your ideas to Robert (discouraged, rather use one of the options above).

Platform overview

New to the SemWES platform? Read all about its concepts and background here.

  • Getting access: Need access to the SemWES platform in CloudiFacturing? Look here.

  • Demos: If you want to get your hands dirty immediately and try out some demo workflows on the platform, look here.

  • Users, projects, and authentication: Gives a short overview of how user authentication and data-access restriction works on the SemWES platform.

  • Workflows and services in the SemWES cloud – an overview: Gives a compact overview over the concepts behind SemWES and what services and workflows are and how they are executed. Also explains the nomenclature used in this repository.

  • The SemWES service types: Description and requirements of synchronous services, asynchronous services, and applications. Read this if you're wondering what kind of service you need to develop for a certain use case.

  • Accessing cloud storage: Generic Storage Services (GSS): On the SemWES platform, different cloud storages can be accessed in a simple, unified way. Learn about the basic concepts of the SemWES Generic Storage Services and the available storage solutions in CloudiFacturing.

Service implementation: concepts, examples, tutorials

All workflows in the SemWES platform are basically a series of calls to individual web services. This section provides information on how to develop such web services in a way that they can be registered in the SemWES platform.

All documentation here deals with things done "in code" (as opposed to via the graphical tools provided on the portal).

General concepts

  • Available parameters: The workflow manager offers a set of "global" parameters which are available to every service. Here, we take a closer look at these parameters and their main use cases.

SemWES Synchronous services

SemWES Aynchronous services

  • Check out the SemWES service types for a high-level description of asynchronous services and their required interface.
  • Code example (Python): Waiter: An asynchronous service which does nothing but waiting
  • Tutorial: Create a simple asynchronous service: This tutorial guides you through the deployment steps of a simple asynchronous service. Starting from a simply Python script representing a long-running computation, we will wrap an asynchronous web service around it which can be deployed in the SemWES infrastructure stack.

SemWES Applications

Service deployment

SOAP services

  • Testing SOAP services: Explains how deployed SOAP services can be tested without having to go through the workflow manager.

File access

  • If you haven't done so already, it is recommended to read the general principles of accessing cloud storage on the SemWES platform.
  • High-level file access using GSS libraries: While it is perfectly possible to directly interact with the GSS API, it is highly recommended to use the provided GSS client libraries for file access in SemWES. This article gives an overview over existing libraries and their usage.

Using HPC resources

  • HPC access through the SemWES platform: The SemWES platform abstracts access of specific HPC resources with a generic API, making it possible to run computations on different HPC resources without any change to the computation code. This article explains the concepts and technical background of this solution.

  • Packaging software in Singularity images: All software that should be run on the HPC resources accessible through the SemWES platform must be wrapped into Singularity images which are then executed as isolated containers on an HPC cluster. Learn how to create, upload, and register such images in this article.

  • Communicating with a running HPC job: Sometimes, communication with a running HPC job is important, for example to be able to control or abort a simulation if required. This article explains how to set up a Singularity image for this kind of communication.

  • Debugging HPC applications: Debugging HPC applications in SemWES can be difficult due to many layers of abstraction between the running application and the user. This article gives some hints on debugging and loggin.

  • Singularity and MPI applications: Learn how to prepare your Singularity image for parallel execution using MPI.

  • GPU support for Singularity images: Learn how to prepare your Singularity image for access of underlying GPU cores.

Advanced topics

Workflow creation, execution, and monitoring

Once all required web services are developed, they need to be registered and hooked up to make a workflow. This section deals with all things done "graphically" via the tools provided on the portal.

Basic workflow editing

  • Don't forget to have a look at the demo workflows to learn from some pre-defined workflow examples.

  • Tutorial: Overview over the portal GUI: In this tutorial you will get to know the portal GUI, start a workflow and inspect its results.

  • Tutorial: Basic workflow editing: In this tutorial you will load, modify, and save an existing workflow using the graphical workflow editor.

  • Tutorial: Registration of new services: Any newly created service needs to be registered properly to be usable in the SemWES platform. Learn about all details and caveats of service registration here.

  • Upgrading services: Sometimes, an already deployed and registered service needs to be upgraded, possibly with changes to the input and output parameters. Read here what to keep in mind when performing such upgrades.

Using the HPC service

Available utility services

Workflow debugging

  • Parameter debugger: This simple application offers the option to pause a workflow and display any parameters that are currently in use. Great for debugging failing workflows or services. Offered as a code example with complete source code.

Advanced topics

  • Using workflows inside workflows: One of the great strengths of the SemWES workflow concepts is that one can use complete workflows as services inside another workflow. Learn about this workflow nesting here.

  • Branching and looping: Read how you can implement basic branches and loops using only the workflow editor.

Stream data integration

  • Stream data handling: Due to its flexible webservice-based workflow structure, SemWES does natively support the integration of stream data into SemWES workflows. This section features a python based prototype and explanations, and links to demo services and workflows.

emGORA integration

Reference documentation of platform services

If you need information on a specific method of one of the platform services, have a look at our API references:

About

Documentation, code examples, and tutorials for the SemWES platform

Resources

License

Stars

Watchers

Forks

Packages

No packages published