Function inheritance and message handling across remote gateways

Hello all,

I am currently working on laying out a system architecture and exploring how to make some functionality work and was looking for feedback from anyone who has worked on something similar.

Briefly, the system will be composed of multiple local gateways for different equipment, and then one gateway existing at a higher "enterprise" level. The enterprise gateway is the only gateway that will have access to some of the software and systems the company uses, which we would like to integrate into the local gateway displays and functions. So, the enterprise gateway is going to contain all of the functions/queries to access these systems and databases, and the local gateways will have trigger the enterprise gateway projects to run these functions in order to send/receive data.

I am going down the path of setting up a system where each company subsystem has its own project on the enterprise gateway with various functions and queries, as well as a message handler to receive incoming messages and run the proper function or query. Along with these projects, there is another project on the enterprise gateway which is inheritable, and will be inherited by the local gateways. This parent project will contain scripts for each function in a subsystem which will contain a hard-coded system.util.sendRequest() call pre-populated with everything except the parameters that need to be passed. Seems straightforward but could end up being cumbersome at a certain size.

Was hoping to get some feedback on this type of setup, maybe there is something I am missing that can make this easier or more efficient.

I have done something similar to this.

It doesn't take much size before the maintenance of this becomes a headache. The biggest problem is that, as far as I know, projects can not be inherited across gateways. So you have to keep a copy of the "Parent Project" at each gateway. This become easier to manage, I believe with EAM, as then you can keep a copy of the Parent Project on the Enterprise gateway and push changes to the (Leaf?) Parent Projects on the local Gateway's over the GAN.

Basically, anytime you add/delete/modify any of the "API" in the Parent Project you then have to somehow push those changes to the Parent Projects on the Local Gateway's, either with EAM or manually. For what I was doing, it was small enough that EAM wasn't cost justifiable, but for what you're showing here (assuming this is just a simplified diagram of the larger system), I wouldn't do it this way without EAM.

I didn't add that part in but yes we are using EAM and that would be pushed to the children projects every time it is updated.

How about a webdev API instead ?