Software Results
LEXIS project software available at GitHub. The following submodules create the LEXIS Platform.
LEXIS Platform
LEXIS Frontend Services: General
This repository contains Lexis portal GUI components for managing workflows, datasets, users and organizations.
LEXIS Frontend: Portal Backend Services
This repository contains backend services for the LEXIS portal.
LEXIS Backend Services: UserOrg Service
The UserOrg service behind the LEXIS PORTAL manages the creation, deletion, listing, and update of the following data related to LEXIS: users, organisations, projects, and HPC resources.
LEXIS Backend Services: API
This repository contains a middleware service for the LEXIS PORTAL, which is back-end to the front-end, and front-end to user-org-service, dataset-management-interface, etc.
LEXIS Backend Services: Interface Datasets
This repository contains the interface to display datasets from the LEXIS DDI in the LEXIS Portal.
Monitoring System Tests
This repository contains a list of LEXIS testcases (collected from the individual LEXIS modules), and scripts to execute the tests specified in the list of testcases. Testcases are documented in the directory docs
. Some testcases are implemented in scripts using Robot framework in directory ddi-test
.
Orchestration Service
Tosca Templates
Repository of TOSCA components and Application Templates for the LEXIS Platform.
Yorc HEAppE plugin
The Yorc HEAppE plugin implements a Yorc (Ystia orchestrator) plugin as described in Yorc documentation, allowing the orchestrator to use the HEappE (High-End Application Execution) API to manage jobs executions on HPC infrastructures.
Yorc Dynamic Orchestration Plugin
The Yorc Dynamic Orchestration plugin implements a Yorc (Ystia orchestrator) plugin as described in Yorc documentation, allowing the orchestrator to dynamically change the location of infrastructure resources to create in a workflow.
Yorc DDI plugin
The Yorc DDI plugin implements a Yorc (Ystia orchestrator) plugin as described in Yorc documentation, allowing the orchestrator to use LEXIS DDI (Distributed Data Infrastructure) API to manage asynchronous data transfers requests.
Dynamic Allocation Module
This submodule repository contains the LEXIS dynamic allocation module (DAM), a LEXIS infrastructure component used to dynamically manage the tasks of a running workflow. Each task is dynamically allocated to the best machine in the LEXIS resource pool, considering various performance criteria (load on the machines, number of used cores, etc.). The allocation policy is based on a greedy strategy for ranking and selecting the best machine(s) at a given point in time. The allocator is embedded in a web-based backend service developed around the Flask framework.
Distributed Data Infrastructure (DDI)
DDI Service APIs
LEXIS DDI APIs, e.g. for data staging between iRODS and different computing systems. The LEXIS DDI APIs are implemented in Python Django, separated to five standalone Django applications. Ansible roles are included in the ansible directory in the repo.
iRODS
iRODS zone deployment for LEXIS centres: this repository contains components for the 1st (lowest) level of the DDI.