Difference between revisions of "Jaba Batches"

From JVMLangSummit
Jump to navigationJump to search
(Created page with "Batch services are a new approach to distributed computation in which clients send batches of operations to a server and receive hierarchical results sets in response. This archi...")
 
Line 1: Line 1:
 
Batch services are a new approach to distributed computation in which clients send batches of operations to a server and receive hierarchical results sets in response. This architecture is modeled on the successful SQL execution model, but it is generalized so that the scripts are not quoted strings, but are instead extracted from normal client code. The key to making this work seamlessly is that the operations are normal method calls, loops and conditionals expressed in the native client language, but these operations are lifted out of the client program and encoded as cross-platform batch scripts for execution on the server. This raises important questions for language designers, in finding the best way to map client language features (types, loops, variables, lambdas) onto the batch script language. The benefit of doing so is that batch scripts allow high-performance cross-platform access to services, and also have a clean mapping to SQL, where a batch always generates a constant number of SQL queries, no matter how many nested loops are used. Batch blocks in effect create Data Transfer Objects and Remote Facades on the fly. I will demonstrate an extension of javac for batches and also discuss ongoing work on batches for Python and JavaScript.
 
Batch services are a new approach to distributed computation in which clients send batches of operations to a server and receive hierarchical results sets in response. This architecture is modeled on the successful SQL execution model, but it is generalized so that the scripts are not quoted strings, but are instead extracted from normal client code. The key to making this work seamlessly is that the operations are normal method calls, loops and conditionals expressed in the native client language, but these operations are lifted out of the client program and encoded as cross-platform batch scripts for execution on the server. This raises important questions for language designers, in finding the best way to map client language features (types, loops, variables, lambdas) onto the batch script language. The benefit of doing so is that batch scripts allow high-performance cross-platform access to services, and also have a clean mapping to SQL, where a batch always generates a constant number of SQL queries, no matter how many nested loops are used. Batch blocks in effect create Data Transfer Objects and Remote Facades on the fly. I will demonstrate an extension of javac for batches and also discuss ongoing work on batches for Python and JavaScript.
 
For more information, see http://www.cs.utexas.edu/~wcook/projects/batches
 
For more information, see http://www.cs.utexas.edu/~wcook/projects/batches
 +
 +
Here are the slides from the talk: http://www.cs.utexas.edu/~wcook/Drafts/2012/2012-07-JVM-Summit-Batches.pdf

Revision as of 10:06, 31 July 2012

Batch services are a new approach to distributed computation in which clients send batches of operations to a server and receive hierarchical results sets in response. This architecture is modeled on the successful SQL execution model, but it is generalized so that the scripts are not quoted strings, but are instead extracted from normal client code. The key to making this work seamlessly is that the operations are normal method calls, loops and conditionals expressed in the native client language, but these operations are lifted out of the client program and encoded as cross-platform batch scripts for execution on the server. This raises important questions for language designers, in finding the best way to map client language features (types, loops, variables, lambdas) onto the batch script language. The benefit of doing so is that batch scripts allow high-performance cross-platform access to services, and also have a clean mapping to SQL, where a batch always generates a constant number of SQL queries, no matter how many nested loops are used. Batch blocks in effect create Data Transfer Objects and Remote Facades on the fly. I will demonstrate an extension of javac for batches and also discuss ongoing work on batches for Python and JavaScript. For more information, see http://www.cs.utexas.edu/~wcook/projects/batches

Here are the slides from the talk: http://www.cs.utexas.edu/~wcook/Drafts/2012/2012-07-JVM-Summit-Batches.pdf