alan-turing-institute / DTBase

A starting point from which digital twins can be developed.
MIT License
11 stars 4 forks source link

Models/services infrastructure planning #181

Open mhauru opened 7 months ago

mhauru commented 7 months ago

We had a chat on 2024-01-11 about what the user experience would be like for configuring models. It also seemed like running ingress, and maybe some other things as well, would benefit from similar user actions being available, so we are more broadly calling these things services, as Pat suggested already months ago.

The simplest version we would go and implement would look like this:

In general, a service is a URL to which the backend sends a request to do a thing, together with arguments. The service then either returns something useful over HTTP, or in turn calls some backend end points to e.g. insert data.

In the first instance all our services will probably be Azure functions, and the scheduling mechanism can start out being bespoke for them.

In the future we might also directly display the output of a service run on the service page. In the first version you'll have to navigate elsewhere on the site to see the outcome, e.g. new data or model results. We might also later add a prettier version to set service arguments, prettier than a pure JSON block.

For the backend side of this, I think each service would need to have in the database at least

I'm a bit unclear still on how the backend will make sure that the services actually get run on time. Do we run something like cron internally? For now might be good enough to set some parameters on Azure function apps.

EdwinB12 commented 7 months ago

184 - This issue has a more detailed discussion of what the backend does to allow these features.

mhauru commented 4 months ago

The minimal version of this now exists: On the front end you can create a service, give it a JSON payload, and click "Run". One can also see a history of runs and the responses to their HTTP queries.

Missing are: