CA2936074C

On-premises agent for mobile cloud service

Abstract

?Systems, devices, and methods are disclosed for an agent device within a company's network firewall to initiate an HTTP connection with a cloud-based gateway and then upgrade the connection to a WebSockets protocol in order to have an interactive session. Over this interactive session, a mobile device, which connects to the cloud-based intermediary, can request data from servers inside the company's firewalls. Because the firewall is traversed using HTTP protocols (with WebSockets), it can be as safe as letting employees browse the web from inside the company's network.

CA2936074C, drawing sheet 1
Sheet 1 of 11

Term

8 yearsleft in the term

Expires 10 September 2034.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

34 claims: 16 independent, 18 dependent

  1. 1
    WHAT IS CLAIMED IS:1. A method of facilitating offsite access to data on a server in an enterprise computer network, the method comprising: initiating, from an agent executing on a computer behind a firewall on the enterprise computer network, a hypertext transport protocol (HTTP) connection with a cloud-based gateway outside of the firewall;upgrading the HTTP connection to a WebSocket protocol connection;receiving, at the cloud-based gateway, a first request from a mobile device for the data;reformatting, at the cloud-based gateway, the first request from the mobile device into a second request for the data over the WebSocket protocol;sending, from the cloud-based gateway to the agent, the second request for the data;receiving, at the agent over the WebSocket protocol connection, the second request for the data from the cloud-based gateway;reformatting, at the agent, the second request into an HTTP request;sending, from the agent, the HTTP request to the server;receiving, at the agent, a response to the HTTP request from the server, the response comprising the data;creating, at the agent, a WebSocket response comprising the data based on the response from the server;sending, from the agent over the WebSocket protocol connection to the cloud-based gateway, the WebSocket response;receiving, at the cloud-based gateway, the WebSocket response from the agent;creating, at the cloud-based gateway, from the WebSocket response, a cloud-enabled response comprising the data;and sending the cloud-enabled response to the mobile device.
  2. 4
    The method of any one of claims 1 or 2 further comprising:packaging, by the agent, the response from the server into a binary object of the WebSocket response before sending the WebSocket response.
  3. 5
    The method of any one of claims 1 or 2 further comprising:packaging, by the agent, the response from the server into an ArrayBuffer of the WebSocket response before sending the WebSocket response.
  4. 6
    The method of any one of claims 1 to 5 wherein the server is a local web server.
  5. 7
    The method of any one of claims 1 to 6 wherein the server is running an enterprise application.
  6. 8
    The method of any one of claims 1 to 7 wherein the WebSocket protocol connection is a secure WebSocket protocol connection.
  7. 9
    The method of any one of claims 1 to 8 further comprising:checking, by the agent with the cloud-based gateway, for an update of agent software;downloading, to the agent, a software update;and installing, at the agent, the downloaded software update.
  8. 13
    The method of any one of claims 10 to 12 wherein performing the installing comprises performing the installing based on the determined time window.
  9. 14
    The method of any one of claims 9 to 13 further comprising:rolling back the downloaded software update to a previous version of the agent software.
  10. 15
    At least one machine-readable medium storing information indicative of instructions that, when executed by one or more machines, cause the one or more machines to perform operations comprising:initiating, from an agent executing on a computer behind a firewall on an enterprise network, a hypertext transport protocol (HTTP) connection with a cloud-based gateway outside of the firewall;upgrading the HTT P connection to a WebSocket protocol connection;receiving, at the cloud-based gateway, a first request from a mobile device for data on a server in the enterprise network;reformatting, at the cloud-based gateway, the first request from the mobile device into a second request for the data over the WebSocket protocol;sending, from the cloud-based gateway to the agent, the second request for the data;receiving, at the agent over the WebSocket protocol connection, the second request for the data from the cloud-based gateway;reformatting, at the agent, the second request into an HTTP request;sending, from the agent, the HTTP request to the server;receiving, at the agent, a response to the HTTP request from the server, the response comprising the data;creating, at the agent, a WebSocket response comprising the data based on the response from the server;sending, from the agent over the WebSocket protocol connection to the cloud-based gateway, the WebSocket response;receiving, at the cloud-based gateway, the WebSocket response from the agent;Date Reçue/Date Received 2020-05-12 creating, at the cloud-based gateway, from the WebSocket response, a cloud-enabled response comprising the data;and sending the cloud-enabled response to the mobile device.
  11. 16
    At least one machine-readable medium storing information indicative of instructions that, when executed by one or more machines, cause the one or more machines to perform the method of any one of claims 1 to 14.
  12. 17
    A system for facilitating offsite access to data on a server in an enterprise computer network, the system comprising:at least one processor;and a memory operatively coupled with the at least one processor, the at least one processor executing instructions from the memory for: initiating, from an agent executing on a computer behind a firewall on the enterprise computer network, a hypertext transport protocol (HTTP) connection with a cloud-based gateway outside of the firewall;upgrading the HTTP connection to a WebSocket protocol connection;receiving, at the cloud-based gateway, a first request from a mobile device for the data;reformatting, at the cloud-based gateway, the first request from the mobile device into a second request for the data over the WebSocket protocol;sending, from the cloud-based gateway to the agent, the second request for the data;receiving, at the agent over the WebSocket protocol connection, the second request for the data from the cloud-based gateway;reformatting, at the agent, the second request into an HTTP request;sending, from the agent, the HTTP request to the server;receiving, at the agent, a response to the HTTP request from the server, the response comprising the data;creating, at the agent, a WebSocket response comprising the data based on the response from the server;Date Reçue/Date Received 2020-05-12 sending, from the agent over the WebSocket protocol connection to the cloudbased gateway, the WebSocket response;receiving, at the cloud-based gateway, the WebSocket response from the agent;creating, at the cloud-based gateway, from the WebSocket response, a cloudenabled response comprising the data;and sending the cloud-enabled response to the mobile device.
  13. 20
    The system of any one of claims 17 to 18 wherein the server is running an enterprise application.
  14. 21
    A method comprising:receiving, by an application executing on a computer system connected to a network behind a firewall, from a first server computer executing outside the firewall over a connection according to a WebSocket protocol, a first request for data stored on a second server computer behind the firewall on the network, the first request comprising a request uniform resource locator (URL), a request header, and a request body, wherein the first request has a first format compliant for the connection according to the WebSocket protocol;translating, by the application, the first request received from the first server computer into a second request having a second format according to a hypertext transport protocol (HTTP) for communication with the second server computer on the network, wherein: translating comprises converting the first format of the fust request to the second format of the second request for communication with the second server computer, converting the first format comprises converting the request URL into a converted request URL, and Date Reçue/Date Received 2020-10-22 the second request comprises the request header, the request body, and the converted request URL;sending, by the application, the second request to the second server computer;receiving, by the application, from the second server computer, a first response to the second request sent by the application to the second server computer, wherein the first response has the second format;based on converting the first response from the second format to the first format, creating, by the application, a second response having the first format;and sending, by the application, the second response over the connection to the first server computer.
  15. 26
    A system comprising:one or more processors;and a memory accessible to the one or more processors, the memory storing instructions which, upon execution by the one or more processors, cause the one or more processors to: receive, by an application executing on the system connected to a network behind a firewall, from a first server computer executing outside the firewall over a connection according to a WebSocket protocol, a first request for data stored on a second server computer behind the firewall on the network, the first request comprising a request uniform resource locator (URL), a request header, and a request body, wherein the first request has a first format compliant for the connection according to the WebSocket protocol;translate, by the application, the first request received from the first server computer into a second request having a second format according to a hypertext transport protocol (HTTP) for communication with the second server computer on the network, wherein: translating comprises converting the first format of the first request to the second format of the second request for communication with the second server computer, converting the first format comprises converting the request URL into a converted request URL, and the second request comprises the request header, the request body, and the converted request URL;send, by the application, the second request to the second server computer;receive, by the application, from the second server computer, a first response to the second request sent by the application to the second server computer, wherein the first response has the second format;based on converting the first response from the second format to the first format create, by the application, a second response having the first format;and Date Reçue/Date Received 2020-11-18 send, by the application, the second response over the connection to the first server computer.
  16. 31
    A non-transitoiy machine readable medium storing instructions that are executable by one or more processors to cause the one or more processors to:Date Reçue/Date Received 2020-11-18 receive, by an application executing on a computer system connected to a network behind a firewall, from a first server computer executing outside the firewall over a connection according to a WebSocket protocol, a first request for data stored on a second server computer behind the firewall on the network, the first request comprising a request uniform resource locator (URL), a request header, and a request body, wherein the first request has a first fonnat compliant for the connection according to the WebSocket protocol;translate, by the application, the first request received from the first server computer into a second request having a second format according to a hypertext transport protocol (HTTP) for communication with the second server computer on the network, wherein: translating comprises converting the first format of the first request to the second format of the second request for communication with the second server computer, converting the first format comprises converting the request URL into a converted request URL, and the second request comprises the request header, the request body, and the converted request URL;send, by the application, the second request to the second server computer;receive, by the application, from the second server computer, a first response to the second request sent by the application to the second server computer, wherein the first response has the second format;based on converting the first response from the second format to the first format create, by the application, a second response having the first format;and send, by the application, the second response over the connection to the first server computer.