D6.2:RepositoryArchitecture
Contents
Documents of D6.2 namespace
- D6.2Repository
- D6.2:Analysis
- D6.2:Prototype Implementation
- D6.2:Release
- Related topics:
- D6.2:AnalysisDocumentation
- D6.2:StorageStrategy
- D6.2:ContributionToPhysiology
- D6.2:Virtual Folder and West-Life Portal integration
- D6.2:Virtual Folder and Partner Portal integration
- D6.2:Virtual Folder and PDB Components integration
- D6.2:Virtual Folder and Cloud integration
- D6.2:Virtual Folder and Access to Dataset
- D6.2:Meeting and conferences notes
Detailed architecture
The system is deployed on
- staff workstation as web application in common browser connecting to http://[repositorydomain]/staff
- scientist workstation (common browser connecting to http://[repositorydomain]/repository).
- external repositories are integrated via Virtual Folder D6.1
- backend server
ARIA Integration
ARIA provides community supported proposals system and finding/scheduling visit to perform experiment in facilities within Instruct network, covering different methods (NMR, CryoEM, X-Ray, ...). Visit proposals can be imported into repository on user request.
Entity relationship
Data stored in database (MySQL) contains entity and realationships, datasets are stored in filesystem of a node storage. There is a link between dataset entity and file/folder of the dataset. Metadata are not yet implemented in DB. There might be a link between metadata of dataset/datasets and dataset/file. Metadata DB could be either in the same (MySQL) instance or in NoSQL e.g. virtuoso installation at /cvmfs/west-life.egi.eu/software/virtuoso/latest
Frontend
- /index.html - returns the default frontend. Not aurelia.
- /repository/* - returns Aurelia application and is protected by West-life SSO, apache configuration redirects to West-Life login page if not authenticated. Mellon module in Apache ensures that requests are internally filtered and X-NAME and X-EPPN headers are added to identify logged in user.
- /repositorytest/* - returns Aurelia application with demo user.
- /admin/* - redirects to JSP pages implemented in spring framework - to define local staff user accounts etc.
Backend API
- /api/ - redirect REST api of Spring framework.
- /api/project - return projects asociated to the logged in user, e.g.:
[{id:1, date:"06/09/2017",summary:"spectrum of strychnine process with v_noesy_pro.mac (NUTS-Pro) or v_noesy.mac (NUTS-2D)", info:"1.6 Mb"}, {id:2,date:"07/09/2017",summary:" spectrum of sucrose (1.3 Mbytes); process with v_ghsqc_pro.mac (NUTS-Pro) or v_ghsqc.mac (NUTS-2D)", info:"1.3 Mb"}, {id:3,date:"08/09/2017",summary:"spectrum of strychnine (2.1 Mbytes); process with v_hsqc_pro.mac (NUTS-Pro) or v_hsqc.mac (NUTS-2D).", info:"2.1 Mb"}, ]
- /api/project/1 - returns detail of asociated project
{id:1, date:"06/09/2017",summary:"spectrum of strychnine process with v_noesy_pro.mac (NUTS-Pro) or v_noesy.mac (NUTS-2D)", info:"1.6 Mb", ... }
- /api/project/1/dataset - returns list of datasets associated with project e.g.:
[{name:"v_ghspc.mac",size:"1312412312"},{name:"v_ghspc.def",size:"16"]}
- /api/users - GET, if the request comes from staff user (not visiting scientist) returns list of users (from West-Life SSO) authorized to access repository - e.g. sorted by approval date.
if the request comes from visiting scientist - then only his account is returned
[{username:"content of X-NAME header",eppn:"content of X-EPPN header"}]
- /api/ - (optional) to be RESTful - autogenerated list of available api request
[{url:"project",info:"..."},{url:"users",info:"..."}]
- /api/dataset - returns list of filelist(dataset) - available for user - who owns it or who is involving in a project related to the dataset (or all for DBA/admins?)
- /api/dataset/{id} - returns detail of dataset -> only in case he has access to it as from previous /api/dataset call