Software-splitting is a technique for protecting software from piracy by removing code fragments from an application and placing them on a remote trusted server. The server provides the missing functionality but never the missing code. As long as the missing functionality is hard to reverse-engineer, the application cannot run without validating itself to the server. Current software-splitting techniques scale poorly to the Internet because interactions with the remote server are synchronous: the application must frequently block waiting for a response from the server. Perceptible delays due to network latency are unacceptable for many kinds of highly-reactive applications, such as games or graphics applications. This paper introduces virtual leashing, the first non-blocking software-splitting technique. Virtual leashing ensures that the application and the server communicate asynchronously, so the application's performance is independent (within reason) of large or variable network latencies. Experiments show that virtual leashing makes only modest demands on communication bandwidth, space, and computation.
|Number of pages||10|
|State||Published - 2005|
|Event||25th IEEE International Conference on Distributed Computing Systems - Columbus, OH, United States|
Duration: 6 Jun 2005 → 10 Jun 2005
|Conference||25th IEEE International Conference on Distributed Computing Systems|
|Period||6/06/05 → 10/06/05|