Abstract
In modern distributed object systems, reference parameters are passed to a remote method based on their runtime type. We argue that such type-based parameter passing is limiting with respect to expressiveness, readability, and maintainability, and that parameter passing semantics should be decoupled from parameter types. We present declarative parameter passing, an approach that fully decouples parameter passing semantics from parameter types in distributed object systems. In addition, we describe DeXteR, an extensible framework for transforming a type-based remote parameter passing model to a declaration-based model transparently. Our framework leverages aspect-oriented and generative programming techniques to enable adding new remote parameter passing semantics, without requiring detailed understanding of the underlying middleware implementation. Our approach is applicable to both application and library code and incurs negligible performance overhead. We validate the expressive power of our framework by adding several non-trivial remote parameter passing semantics (i.e., copy-restore, lazy, streaming) to Java RMI.
Chapter PDF
Similar content being viewed by others
Keywords
References
Brown, N., Kindel, C.: Distributed Component Object Model Protocol–DCOM/1.0 1998, Redmond, WA (1996)
Dahm, M.: Doorastha—a step towards distribution transparency. In: Proceedings of the Net. Object Days 2000 (2000)
De Lucia, A., Fasolino, A.R., Munro, M.: Understanding function behaviours through program slicing. In: 4th IEEE Workshop on Program Comprehension, pp. 9–18 (1996)
Eberhard, J., Tripathi, A.: Efficient Object Caching for Distributed Java RMI Applications. In: Guerraoui, R. (ed.) Middleware 2001. LNCS, vol. 2218, pp. 15–35. Springer, Heidelberg (2001)
Eichberg, M., Mezini, M.: Alice: Modularization of Middleware using Aspect-Oriented Programming. In: Gschwind, T., Mascolo, C. (eds.) SEM 2004. LNCS, vol. 3437. Springer, Heidelberg (2005)
Eugster, P.: Uniform proxies for Java. In: OOPSLA 2006: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pp. 139–152. ACM Press, New York (2006)
Eugster, P.T.: Lazy Parameter Passing. Technical report, Ecole Polytechnique Fédérale de Lausanne, EPFL (2003)
Fleury, M., Reverbel, F.: The JBoss Extensible Server. In: International Middleware Conference (2003)
Gopal, S.: An extensible framework for annotation-based parameter passing in distributed object systems. Master’s thesis, Virginia Tech. (June 2008)
Object Management Group. Objects by value. document orbos/98-01-18, Framingham, MA (1998)
Object Management Group. The common object request broker: Architecture and specification, Framingham, MA (1998)
Object Management Group. IDL to Java language mapping specification, Framingham, MA (2003)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–355, 110. Springer, Heidelberg (2001)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241. Springer, Heidelberg (1997)
Nishizawa, M., Chiba, S., Tatsubori, M.: Remote pointcut: a language construct for distributed AOP. In: Proceedings of the 3rd international conference on Aspect-oriented software development, pp. 7–15 (2004)
Obermeyer, P., Hawkins, J.: Microsoft .NET Remoting: A Technical Overview. MSDN Library (July 2001)
Pawlak, R., Seinturier, L., Duchien, L., Florin, G., Legond-Aubry, F., Martelli, L.: JAC: an aspect-based distributed dynamic framework. Software Practice and Experience 34(12), 1119–1148 (2004)
Schmidt, D.C., Rohnert, H., Stal, M., Schultz, D.: Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects. John Wiley & Sons, Inc., New York (2000)
Seki, M.: DRuby–A Distributed Object System for Ruby (2007), http://www.ruby-doc.org/stdlib/libdoc/drb/
Souder, T.S., Mancoridis, S.: A Tool for Securely Integrating Legacy Systems into a Distributed Environment. In: Working Conference on Reverse Engineering, pp. 47–55 (1999)
Thomas, D., Hunt, A.: Programming Ruby. Addison-Wesley, Reading (2001)
Tilevich, E., Smaragdakis, Y.: NRMI: Natural and Efficient Middleware. IEEE Transactions on Parallel and Distributed Systems, 174–187 (February 2008)
Tilevich, E., Smaragdakis, Y.: J-Orchestra: Automatic Java Application Partitioning. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374. Springer, Heidelberg (2002)
Wohlstadter, E., Jackson, S., Devanbu, P.: DADO: enhancing middleware to support crosscutting features in distributed, heterogeneous systems. In: Proceedings of the International Conference on Software Engineering, vol. 186 (2003)
Yang, C.C., Chen, C.K., Chang, Y.H., Chung, K.H., Lee, J.K.: Streaming support for Java RMI in distributed environments. In: Proceedings of the 4th international symposium on Principles and practice of programming in Java, pp. 53–61 (2006)
Zhang, C., Jacobsen, H.: Refactoring middleware with aspects. IEEE Transactions on Parallel and Distributed Systems 14(11), 1058–1073 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 IFIP International Federation for Information Processing
About this paper
Cite this paper
Gopal, S., Tansey, W., Kannan, G.C., Tilevich, E. (2008). DeXteR – An Extensible Framework for Declarative Parameter Passing in Distributed Object Systems. In: Issarny, V., Schantz, R. (eds) Middleware 2008. Middleware 2008. Lecture Notes in Computer Science, vol 5346. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-89856-6_8
Download citation
DOI: https://doi.org/10.1007/978-3-540-89856-6_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-89855-9
Online ISBN: 978-3-540-89856-6
eBook Packages: Computer ScienceComputer Science (R0)