Reducing cross domain call overhead using batched futures
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
A survey of remote procedure calls
ACM SIGOPS Operating Systems Review
Patterns of Enterprise Application Architecture
Patterns of Enterprise Application Architecture
A Bytecode Translator for Distributed Execution of ``Legacy'' Java Software
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Core J2EE Patterns (Core Design Series): Best Practices and Design Strategies
Core J2EE Patterns (Core Design Series): Best Practices and Design Strategies
Communication Primitives for Ubiquitous Systems or RPC Considered Harmful
ICDCSW '01 Proceedings of the 21st International Conference on Distributed Computing Systems
Ambassadors: Structured Object Mobility in Worldwide Distributed Systems
ICDCS '99 Proceedings of the 19th IEEE International Conference on Distributed Computing Systems
A Note on Distributed Computing
A Note on Distributed Computing
Linguistic Support for Distributed Programming Abstractions
ICDCS '04 Proceedings of the 24th International Conference on Distributed Computing Systems (ICDCS'04)
Communications of the ACM - Voting systems
Web Services Are Not Distributed Objects
IEEE Internet Computing
Service-Oriented Architecture: Concepts, Technology, and Design
Service-Oriented Architecture: Concepts, Technology, and Design
Adapting Java RMI for grid computing
Future Generation Computer Systems - Special issue: Parallel computing technologies
IEEE Internet Computing
Formalising Java RMI with explicit code mobility
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Enterprise SOA: Service-Oriented Architecture Best Practices (The Coad Series)
Enterprise SOA: Service-Oriented Architecture Best Practices (The Coad Series)
Web Services versus Distributed Objects: A Case Study of Performance and Interface Design
ICWS '06 Proceedings of the IEEE International Conference on Web Services
The development of the Emerald programming language
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Secure web applications via automatic partitioning
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
The jastadd extensible java compiler
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Practical experiences with Java software transactional memory
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Interprocedural query extraction for transparent persistence
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Optimising Java RMI programs by communication restructuring
Proceedings of the ACM/IFIP/USENIX 2003 International Conference on Middleware
J-Orchestra: Enhancing Java programs with distribution capabilities
ACM Transactions on Software Engineering and Methodology (TOSEM)
Automated selective caching for reference attribute grammars
SLE'10 Proceedings of the Third international conference on Software language engineering
Which middleware platform should you choose for your next remote service?
Service Oriented Computing and Applications
Sprint: speculative prefetching of remote data
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Efficient session type guided distributed interaction
COORDINATION'10 Proceedings of the 12th international conference on Coordination Models and Languages
Extensibility for the masses: practical extensibility with object algebras
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Science of Computer Programming
Hi-index | 0.00 |
Because Remote Procedure Calls do not compose efficiently, designers of distributed object systems use Data Transfer and Remote Façade patterns to create large-granularity interfaces, hard-coded for particular client use cases. As an alternative to RPC-based distributed objects, this paper presents Remote Batch Invocation (RBI), language support for explicit client-defined batches. A Remote Batch statement combines remote and local execution: all the remote code is executed in a single round-trip to the server, where all data sent to the server and results from the batch are communicated in bulk. RBI supports remote blocks, iteration and conditionals, and local handling of remote exceptions. RBI is efficient even for fine-grained interfaces, eliminating the need for hand-optimized server interfaces. We demonstrate RBI with an extension to Java, using RMI internally as the transport layer. RBI supports large-granularity, stateless server interactions, characteristic of service-oriented computing.