WG211/M7Cook
Slice, Partition, and Reforest for Data Access and Distribution
William R. Cook
One of the problems with Remote Procedure Calls (RPC) is that they are latency additive, meaning that two calls F(G(x)) take twice as long as a single call to a combined procedure FG(x). We introduce a new batch statement used by clients to compose remote calls into a single batch for remote execution, with support for sequential composition, conditionals and loops. More interestingly, batches allow client and remote computations to be mixed together. The remote computations in a batch are separated from the location computations and executed in a single remote service call. The partition is computed using a binding location analysis similar to binding time analysis. Finally, the primitive data transfered to and from the remote server is sent in bulk as an intermediate tree structure defined by reforestation, a new concept that is the inverse of deforestation. For traditional distributed object systems (RMI and CORBA), batches obviate the need for proxies and allow Data Transfer Objects and Server Facades to be created on the fly for fine-grained server interfaces. Batches are also equivalent to document-oriented Web Services, but provide a simpler and more flexible programming model. Finally, we suggest that batches may be an ideal interface to databases. In conclusion, the batch statement is a general-purpose programming construct for program partitioning and reforestation with many applications.
- 2009-Batches-WG211.pdf : Slides