/
RDMP Interface Revamp Proposal

RDMP Interface Revamp Proposal

Problem

RDMP has traditionally been a Windows desktop app with an additional command line interface.

The user interface is built using winforms and shims that provide fake windows services from ~2003.

There has been requests for the RDMP GUI to work on Linux environments - this is not possible with the current desktop application.

Additionally, RDMP requests a very specific set of conditions to run out the box, unless you provide specific additional configuration via cli flags.

The above problems have made RDMP largely impossible to install and use in environments that are not within HIC. With the increased interest for an RDMP like solution from external customers we should investigate how to make RDMP more deployable and usable.

 

Solution Requirements

  • Both UI and CLI should be usable in Windows/Linux/Mac environments

  • Ideally Dockerizable

 

James F Proposed Solution

It is worth noting that RDMP current has a Core project that handles all the underlying logic with CLI and UI projects for handling the interfacing with this Core.

I propose that we replace the current RDMP.UI with an API and a new RDMP.UI that interfaces with RDMP.Core via this API

This will allow us to dockerize RDMP and have both an API and a UI available as services

Additionally, this API will allow for future development of federated RDMPs ( with the addition of some authentication on the API, likely LDAP).

This setup does require the UI to be written in a technology that is suitable for the web. It should be noted that a desktop version should be created, likely an Electron app or similar.

 

Suggested Technologies

Project

Technology

Notes

Project

Technology

Notes

RDMP.Core

No Change

 

RDMP.Cli

No Change

 

RDMP.API

.Net Server with Swagger

Demo Available

RDMP.UI

To be Discussed

React Demo available

While the API is fairly straightforward, RDMP.UI should be discussed as it has a number of requirements:

  • Is usable in the browser and in a desktop format (likely Electron, but open for discussion)

  • Is a single page app(SPA) as desktop apps typically require this

  • Is runnable in non-windows environments

My initial proposal is a React based UI, but this is purely because it does SPA very well and I have a number of years experience with it.

Why This solution

Building a solution that is dockerizable allows RDMP to be easily deployed in existing environments.

It also allows us to construct training images that are pre-canned with data and scenarios for training purposes.

The API provides RDMP greater extensibility with other tools, so that the API can be used rather than specific integrations for each external tool ( A problem we have within Edris currently).

Providing the RDMP via both the desktop and browser again improves the usability for however the user wishes to install & use RDMP.

Risks

It’s a large undertaking, and will likely take most of 2024 to get to a usable state (note not 100% feature complete)

Questions

  • Is there a better alternative?

  • If we do use this approach, is there a more appropriate UI toolset?

 

Related content

RDMP Development
RDMP Development
More like this
RDMP-Documentation
RDMP-Documentation
More like this
EPCC Requirements
EPCC Requirements
More like this
Breaking RDMP into its component parts
Breaking RDMP into its component parts
More like this
RDMP-168 RDMP Export to AWS Automation
RDMP-168 RDMP Export to AWS Automation
More like this
RDMP-1 Jira Integration
RDMP-1 Jira Integration
More like this