Using annotated interface definitions to optimize RPC
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Principled design of the modern Web architecture
Proceedings of the 22nd international conference on Software engineering
Implementing remote procedure calls
ACM Transactions on Computer Systems (TOCS)
Types and programming languages
Types and programming languages
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Using Interceptors to Enhance CORBA
Computer
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
J-Orchestra: Automatic Java Application Partitioning
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Efficient Object Caching for Distributed Java RMI Applications
Middleware '01 Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg
DADO: enhancing middleware to support crosscutting features in distributed, heterogeneous systems
Proceedings of the 25th International Conference on Software Engineering
A Tool for Securely Integrating Legacy Systems into a Distributed Environment
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Understanding Function Behaviors through Program Slicing
WPC '96 Proceedings of the 4th International Workshop on Program Comprehension (WPC '96)
Packaging Quality of Service Control Behaviors for Reuse
ISORC '02 Proceedings of the Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing
Remote pointcut: a language construct for distributed AOP
Proceedings of the 3rd international conference on Aspect-oriented software development
JAC: an aspect-based distributed dynamic framework
Software—Practice & Experience
Spoon: annotation-driven program transformation --- the AOP case
AOMD '05 Proceedings of the 1st workshop on Aspect oriented middleware development
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Streaming support for Java RMI in distributed environments
PPPJ '06 Proceedings of the 4th international symposium on Principles and practice of programming in Java
NRMI: Natural and Efficient Middleware
IEEE Transactions on Parallel and Distributed Systems
Lazy argument passing in Java RMI
Proceedings of the 6th international symposium on Principles and practice of programming in Java
DeXteR: an extensible framework for declarative parameter passing in distributed object systems
Proceedings of the 9th ACM/IFIP/USENIX International Conference on Middleware
Proceedings of the ACM/IFIP/USENIX 2003 International Conference on Middleware
Alice: modularization of middleware using aspect-oriented programming
SEM'04 Proceedings of the 4th international conference on Software Engineering and Middleware
Refactoring middleware with aspects
IEEE Transactions on Parallel and Distributed Systems
Hi-index | 0.00 |
In modern distributed object systems, reference parameters to a remote method are passed according to their runtime type. This design choice limits the expressiveness, readability, and maintainability of distributed applications. Further, to extend the built-in set of parameter passing semantics of a distributed object system, the programmer has to understand and modify the underlying middleware implementation. To address these design shortcomings, this article presents (i) a declarative and extensible approach to remote parameter passing that decouples parameter passing semantics from parameter types, and (ii) a plugin-based framework, DeXteR, which enables the programmer to extend the built-in set of remote parameter passing semantics, without having to understand or modify the underlying middleware implementation. DeXteR treats remote parameter passing as a distributed cross-cutting concern and uses aspect-oriented and generative techniques. DeXteR enables the implementation of different parameter passing semantics as reusable application-level plugins, applicable to application, system, and third-party library classes. The expressiveness, flexibility, and extensibility of the approach is validated by adding several nontrivial remote parameter passing semantics (i.e., copy-restore, lazy, streaming) to Java Remote Method Invocation (RMI) as DeXteR plugins.