JIRA Issue - https://issues.apache.org/jira/projects/AIRAVATA/issues/AIRAVATA-3595?filter=allopenissues
The Science and Engineering Application Grid (SEAGrid) makes it simple for researchers to use scientific programs that are distributed over a variety of supercomputers, campus clusters, and the cloud. Seagrid application is developed for interested science communities to work with. The goal of this project is to create a SeaGrid desktop client for science communities to use in order to conduct experiments and analyze the results.
The SeaGrid web portal is created for interested science communities for conducting experiments but there is no desktop application of seagrid. The desktop applications have better performance for complex computations than web application. There is seagrid desktop application built using JavaFX but, the application is not maintainable. The proposed solution will be built with electronJS. The seagrid desktop application uses Apache Airavata API as a middleware for accessing resources and performing experiments provided by users. Apache Airavata is a middleware that makes computation and data analysis easier in a variety of computing environments.
Detailed Overview of application
User Login/ Account Creation
The user has to create an account to use the system. User can create account using email verification and CILogon.
Input File Creation
User can create input file for experiment by giving inputs for molecule and other details to make the input file. Also an user can upload an already existing input file and edit using molecule editor. This file will be used as an input for experiment creation.
Job Submission
The user will initially create a project to store all the experiments. Experiment will be created and submitted using this module. The experiment creation includes uploading input file and requesting resources needed for performing the experiment.
Experiment Summary
In the experiment summary, status of experiment is presented along with other information such as CPU count, Job Name, Job ID, and Creation Time.
Data Catalog
Once the experiment runs successfully the metadata sent from apache Airavata API is stored in gateway data storage. Data parser is used to extract the data from metadata and then output is displayed.
This component-based design detailed in the below diagram are created from the various key functionalities identified from the codebase (from SeaGrid repo). As the majority of the component’s functionality is written in the “controllers”, the component diagram emphasizes on this more than the UI elements and intricacies of implementation.
As we can infer from the above diagram, the components have been derived, distinguished, and defined primarily by their functionality or the respective set of actions responsible for each controller. In brief, one simple interpretation of this diagram is that the application lifecycle starts with the login. Once the user is authenticated, the user is navigated to HomeScreen, where the user has the capacity to create new projects and run experiments on the projects that already exists. The component ExperimentController is responsible for creating the experiments (by taking the input file taken from the StorageController) and requesting computing resources accessed via the Apache Airavata API. Each experiment’s status is then passed on to the experiment summary.
Implementation for all modules.
Test cases and results of test cases conducted.
Documentation for all components.
Task | Timeline | Deliverables |
Study SeaGrid Web Portal based architecture | May 27, 2022 | 1. Study SeaGrid architecture. 2. Setup apache airavata API. 3. Install ElectronJS dependencies. |
Develop desktop client for components such as Login, HomePage, Input File Creation | Jun 25,2022 | 1.Design the application frontend. 2. Build the components of application |
Develop other components and integrate with all components | July 20 ,2022 | 1.Build remaining components and test code for functionality. 2. Integrate all components |
Testing and Validations | Aug 15,2022 | 1. Prepare Test Plan and disaster management plan. 2. Test application end-end. 3. Execute tests and analyze results |
Documentation and Report | Aug 30,2022 | 1. Project report which will contain observations of results and documentation for all modules. |