UNICORE services are accessed via their RESTful APIs, and UNICORE itself provides a number of client applications and client libraries.
UNICORE Commandline Client (UCC)
The UNICORE command line client (UCC) is a very versatile command-line tool that allows users to access all features of the UNICORE service layer in a shell or scripting environment. It allows to run jobs, monitor their status and retrieve generated output, both in single job mode or in a powerful and flexible batch mode for multiple jobs. Additionally, workflows can be submitted and controlled with the UCC. UCC includes several data management functions. Remote storages can be listed and files can be transferred from local to remote as well as from server to server. UCC can be used for administrative purposes as well, for example to list all jobs, or to perform some clean up.
PyUNICORE client library
To simplify using the RESTful APIs, a client library written in Python is available from PyPI
The ‘uftp’ client for data transfer
This specialised client is focussed for transferring data using the UFTP protocol, providing many options and performance features such as multi-threaded downloads.
Using the RESTful APIs, UNICORE makes it straightforward to integrate HPC functionality into web-based applications. A prime example of this is the Jupyter-JSC service at Jülich Supercomputing Centre, which is presented in detail in this case study