We are starting to have a few projects that have a design where a web server needs access to services/devices (think database connections and specialized hardware) that are on a local network. Instead of having users open up ports to the public internet, we are using a small program that establishes a connection from inside their network to connect to those devices and then establish a persistent connection that the server can use to request information from that program.
EDIT: Diagram
I've thought of a few terms, but I wasn't sure if there is a generally accepted term for such a program
- Agent: This one seems kind of intuitive, but it seems like it means something else.
- Proxy: Maybe, I typically think of a client connecting to a proxy, not the other way around.
- Service: This indicates it's a long running process that does something in the background, but nothing specific about communication.