A "persistent connection" model for mobile and distributed systems

This paper describes a mechanism, called "persistent connection" to preserve stream connections after the communicating peer exits and till it restarts. Such connections have many applications: to survive failures that crash one party, network partitions that cut off the two parties, and temporary disconnection in a mobile computing environment. They can also facilitate suspension of process execution in a limited resource environment and maintain connectivity when one party migrates from one machine to another. Persistent connection uses logical endpoints to hide disconnection from applications and to achieve location independence. It can be constructed from the normal "transient" connection that goes down with processes. Prototypes have been developed on Unix to provide persistent connections in both the TCP-socket level and the DCE RPC level. Many existing programs can benefit from this software to achieve transparence to disconnection and relocation. We conclude that persistent connection is a convenient communication abstraction for reliable, adaptable, and reconfigurable applications.