Envoy is a standalone, middleware application that allows a third-party application to use a simple, standardized rest-based interface over HTTP and web sockets to send data to and receive data from a PMS without having to know all the details of the PMS protocol. On the other side, Envoy connects to the PMS using a TCP socket and can manage the details of the PMS protocol, including low-level activity such as checksum validation, ACK/NAK responses and keep-alive messages that do not need to be passed to the remote client.