1. A computer-implemented method comprising: storing an image of a software server on a cloud computer system; creating an instance of the server on the cloud computer system; generating shared security information; storing the shared security information in a first software component in a local network and in a second software component on the cloud computer system; establishing a connection between a client software system in the local network and the server instance on the cloud computer system, wherein the connection is coupled through the first software component coupled to the client software system on the local network and the second software component coupled to the server instance on the cloud computer system; and sending a message from the client software system to the server instance, wherein the message is sent from the client software system to the first software component, wherein the first software component encodes the message using said shared security information, wherein the encoded message is sent from the first software component to the second software component across a first network, wherein the second software component decodes the encoded message using said shared security information, and wherein the second software component sends the decoded message to the server instance wherein establishing said connection comprises: establishing a connection between the server instance on the cloud computer network and a backend system on the local network through the first and second software components, and if said first software component is shut down, automatically re-establishing the connection between the server instance on the cloud computer network and the backend system on the local network through the third software component on the local network and the second software component, wherein the first and third software components are different instances of the same program on different computers.