Protium, an Infrastructure for Partitioned Applications
01 January 2001
Remote access feels different from local access. The major issues are consistency (machines vary in GUIs, applications and devices) and responsiveness (the user must wait for network and server delays). Protium attacks these by partitioning programs into local viewers that connect to remote services using application-specific protocols. Partitioning allows viewers to be customized to adapt to local features and limitations. Services are responsible for maintaining long-term state. Viewers manage the user interface and use state to reduce communication between viewer and service, reducing latency whenever possible. System infrastructure sits between the viewer and service, supporting replication, consistency, session management, and multiple simultaneous viewers. The prototype system includes an editor, a draw program, a PDF viewer, a map database, a music jukebox, and windowing system support. It runs on servers, workstations, PCs and PDAs under Plan 9, Linux, and Windows; services and viewers have been written in C, Java and Concurrent ML.