Backend app on base of clients events
Hi,
add-in backend application conception (considered for web client and HTML Web Client):- in zenon Supervisor we have one workspace, main global project, main project and its subprojects (a lot).
- it works as one app. Something like apps with static void main(){}, or I would say like backend app. It deploys only once, and only once it imported to the main project in zenon.
- this app monitorise all connected web clients, from each of running projects. And on the basis of client action (events), app react on it. Runs or stops services/wizards, or change some UI for client.
- app is like entry point for all clients.
- app have something like events classification.
- all clients exhibits his events, and that events may be similar. And reaction on that events may be similar too.
- app detects, that clientNr1 have eventNr1, so app knows, that it must run for clientNr1, methodNr1 (service or wizard or whatever) and that method handles eventsTypeNr1.
- methodNr1 works like multifuction, and many clients may run it in parallel.
- visual it something like "returntType methodNr1(numberOfClientPC, typeOfEvent, additionalParrameters...)"
- that method may be overloaded.
- method may return value, and in base of it, app knows if it need to run others methods. It depends from event.
- app works normally in main thread.
- each client or methods have it owns thread. If that point is reasonable.
- clients may run that developed methods in parallel. And no collisions effected.
- with help of zenon-API, server monitorise the events, and app reacts on that.
- if client disconnects, or runtime is closing, app need to correctly end all threads (tasks). It depends on event type.
- each client accumulate their own logs. In case of error it is logged.
- some unit, deploy and production tests are in deal. (Have seen one project on github)
- app and methods using entity Framework, if it will be possible.
- app using JavaScript if it will be possible to enhance ergonomic for operator. Or for adding elements, affects, what we can't do with standard functionality in zenon Supervisor.
- app may use google fonts.
- in developing app we may use CI/CD, if it possible.
- app and projects using git for VC.
- operator interacts vs client like with standard web page (it must be familiar for user from the box).
Does web client acts like normal browser (interpreter)? May I use JavaScript inside of it?
Is each of above points can take place in zenon? Are that conception of app may be realisable in zenon?
This is a migrated post! Originally posted on 21.10.2021 by user Oleksandr. Please be aware that information can be outdated.