Abstract
Some “non-” or “extra-functional” features, such as reliability, security, and tracing, defy modularization mechanisms in programming languages. This makes such features hard to design, implement, and maintain. Implementing such features within a single platform, using a single language, is hard enough. With distributed, heterogeneous systems, these features induce complex implementations which crosscut different languages, OSs, and hardware platforms, while still needing to share data and events. Worse still, the precise requirements for such features are often locality-dependent and discovered late (e.g., security policies). This paper describes an interface description language, Dado, to help program crosscutting features in CORBA based middleware software through an aspect-oriented programming. A Dado specification comprises pairs of adaptlets which are explicitly modeled in an extended version of CORBA IDL. Dado supports flexible and type-checked interactions (using generated stubs and skeletons) between adaptlets and between objects and adaptlets. Dado also supports co-ordinated, run-time binding of adaptlet-based features to applications in a distributed setting.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Tarr, P.L., Ossher, H., Harrison, W.H., Sutton Jr., S.M.: N degrees of separation: Multi-dimensional separation of concerns. In: International Conference on Software Engineering (1999)
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, p. 327. Springer, Heidelberg (2001)
Murphy, G.C., Lai, A., Walker, R.J., Robillard, M.P.: Separating features in source code: An exploratory study. In: International Conference on Software Engineering (2001)
Coady, Y., Brodsky, A., Brodsky, D., Pomkoski, J., Gudmundson, S., Ong, J.S., Kiczales, G.: Can AOP support extensibility in client-server architectures? In: Proceedings, ECOOP Aspect-Oriented Programming Workshop (2001)
Wohlstadter, E., Jackson, S., Devanbu, P.: DADO: Enhancing Middleware to Support Crosscutting Features in Distributed Heterogeneous Systems. In: Proc. of the International Conference on Software Engineering (2003)
Smaragdakis, Y., Batory, D.: Mixin layers: An object-oriented implementation technique for refinements and collaboration-based designs. Software Engineering and Methodology 11(2), 215–255 (2002)
Amsler, T., Walters, R.: (Open RCT home), http://davinci.cs.ucdavis.edu/
Dean, D., Stubblefield, A.: Using Client Puzzles to Protect TLS. In: Proc. of USENIX Security Symposium (2001)
Balzer, B.: Transformational implementation: An example. IEEE Transactions on Software Engineering 7(1) (1981)
des Rivieres, J., Smith, B.: The implementation of procedurally reflective languages. Technical Report ISL-4, Xerox PARC (1984)
Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting Object Interactions Using Composition Filters. In: Proceedings of the ECOOP 1993 Workshop on Object-Based Distributed Programming (1993)
Chiba, S.: A metaobject protocol for C++. In: Object Oriented Programming, Systems, Languages, and Applications (OOPSLA) (1995)
Tatsubori, M., Chiba, S., Itano, K., Killijian, M.O.: Openjava: A class-based macro system for java. In: OOPSLA Workshop on Reflection and Software Engineering (1999)
Chiba, S.: Load-Time Structural Reflection in Java. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 313–336. Springer, Heidelberg (2000)
Smaragdakis, Y., Batory, D.: Implementing Layered Designs with Mixin Layers. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, p. 550. Springer, Heidelberg (1998)
Walker, R.J., Murphy, G.C.: Implicit context: easing software evolution and reuse. In: Foundations of Software Engineering (2000)
Liang, S., Hudak, P., Jones, M.: Monad transformers and modular interpreters. In: Symposium on Principles of Programming Languages (1995)
Wang, N., Parameswaran, K., Schmidt, D.: The design and performance of meta-programming mechanisms for object request broker middleware. In: Conference on Object-Oriented Technologies and Systems (COOTS) (2000)
Narasimhan, P., Moser, L., Mellior-Smith, P.: Using interceptors to enhance CORBA. IEEE Computer (1999)
Kon, F., Román, M., Liu, P., Mao, J., Yamane, T., Magalhães, L.C., Campbell, R.H.: Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB. In: Coulson, G., Sventek, J. (eds.) Middleware 2000. LNCS, vol. 1795, p. 121. Springer, Heidelberg (2000)
Clarke, M., Blair, G., Coulson, G., Parlavantzas, N.: An efficient component model for the construction of adaptive middleware. In: Guerraoui, R. (ed.) Middleware 2001. LNCS, vol. 2218, p. 160. Springer, Heidelberg (2001)
Fraser, T., Badger, L., Feldman, M.: Hardening COTS software with generic software wrappers. In: IEEE Symposium on Security and Privacy (1999)
Souder, T.S., Mancoridis, S.: A tool for securely integrating legacy systems into a distributed environment. In: Working Conference on Reverse Engineering (1999)
Roman, E., Ambler, S., Jewell, T.: Mastering Enterprise JavaBeans. Wiley, Chichester (2001)
http://www.jboss.org JBoss (4.0 edn.)
Cohen, T., Gil, J.: AspectJ2EE = AOP + J2EE: Towards an aspect based, programmable and extensible middleware framework. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 221–245. Springer, Heidelberg (2004)
http://aspectwerkz.codehaus.org/ AspectWerkz (2 edn.)
http://www.springframework.org Spring Framework (1.2.3 edn.)
Pawlak, R., Seinturier, L., Duchien, L., Florin, G.: JAC: A Flexible Solution for Aspect-Oriented Programming in Java. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, p. 1. Springer, Heidelberg (2001)
Zhang, C., Gao, D., Jacobsen, H.A.: Towards just-in-time middleware architectures. In: International Conference on Aspect-Oriented Software Development (2005)
Brose, G.: JacORB: Implementation and design of a Java ORB. In: Proc. of the International Working Conference on Distributed Applications and Interoperable Systems, pp. 143–154 (1997)
Schmidt, D.: Using design patterns to develop reusable object-oriented communication software. Communications of the ACM 38(10), 65–74 (1995)
Object Management Group: CORBA 3.0 Specification (3.0 edn.)
Romer, T., Lee, G.V.D., Wolman, A., Wong, W., Levy, H., Bershad, B.N., Chen, J.B.: Instrumentation and optimization of Win32/Intel executables using etch. In: Usenix Windows NT Workshop (1997)
Blair, G., Campbell, R. (eds.): Reflective Middleware (2000)
Duclos, F., Estublier, J., Morat, P.: Describing and using non functional aspects in component based applications. In: International Conference on Aspect-Oriented Software Development (2002)
Gamma, E., Helm, R., Johnson, R., Viissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)
Truyen, E., Vanhaute, B., Joosen, W., Verbaeten, P., Jorgensen, B.N.: Dynamic and selective combination of extensions in component-based applications. In: International Conference on Software Engineering (2001)
Wohlstadter, E.: Aspect-Oriented Development of Distributed Object Applications. PhD thesis, University of California at Davis (2005)
Popovici, A., Alonso, G., Gross, T.: Spontaneous container services. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)
Loyall, J., Bakken, D., Schantz, R., Zinky, J., Karr, D., Vanegas, R., Anderson, K.: QuO Aspect languages and their runtime integration. In: Proceedings of the Fourth Workshop on Languages, Compilers and Runtime Systems for Scalable Components (1998)
Vanegas, R., Zinky, J., Loyall, J., Karr, D., Schantz, R., Bakken, D.: Quo’s runtime support for quality of service in distributed objects. In: International Conference on Distributed Systems Platforms and Open Distributed Processing (Middleware) (1998)
Hauck, F., Becker, U., Geier, M., Meier, E., Rastofer, U., Steckermeier, M.: Aspectix: a quality-aware, object-based middleware architecture. In: Proc. of the 3rd IFIP Int. Conf. on Distrib. Appl. and Interoperable Sys. (2001)
Chen, W.K., Hiltunen, M., Schlichting, R.: Constructing adaptive software in distributed systems. In: International Conference on Distributed Computing Systems (2001)
He, J., Hiltunen, M.A., Rajagopalan, M., Schlichting, R.D.: Providing qoS customization in distributed object systems. In: Guerraoui, R. (ed.) Middleware 2001. LNCS, vol. 2218, p. 351. Springer, Heidelberg (2001)
Nishizawa, M., Chiba, S., Tatsubori, M.: Remote pointcut - a language construct for distributed aop. In: Proc. of the International Conference on Aspect-Oriented Programming (2004)
Mehta, N.R., Medvidovic, N., Phadke, S.: Towards a taxonomy of software connectors. In: International Conference on Software engineering (2000)
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes 17(4) (1992)
Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Transactions on Software Engineering and Methodology 6(3) (1997)
Ducasse, S., Richner, T.: Executable connectors: towards reusable design elements. In: Foundation of Software Engineering (1997)
Shaw, M., DeLine, R., Klein, D.V., Ross, T.L., Young, D.M., Zelesnik, G.: Abstractions for software architecture and tools to support them. Software Engineering 21(4) (1995)
Dashofy, E.M., Medvidovic, N., Taylor, R.N.: Using off-the-shelf middleware to implement connectors in distributed architectures. In: International Conference on Software Engineering (1999)
Spitznagel, B., Garlan, D.: A compositional approach to constructing connectors. In: Working IEEE/IFIP Conference on Software Architecture (WISCA) (2001)
Wohlstadter, E., Tai, S., Mikalsen, T., Rouvellou, I., Devanbu, P.: GlueQoS: Middleware to Sweeten Quality-of-Service Policy Conflicts. In: Proc. of the International Conference on Software Engineering (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Wohlstadter, E., Devanbu, P. (2006). Aspect-Oriented Development of Crosscutting Features in Distributed, Heterogeneous Systems. In: Rashid, A., Aksit, M. (eds) Transactions on Aspect-Oriented Software Development II. Lecture Notes in Computer Science, vol 4242. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11922827_4
Download citation
DOI: https://doi.org/10.1007/11922827_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-48890-3
Online ISBN: 978-3-540-48891-0
eBook Packages: Computer ScienceComputer Science (R0)