Skip to main content

Aspect-Oriented Development of Crosscutting Features in Distributed, Heterogeneous Systems

  • Conference paper
Transactions on Aspect-Oriented Software Development II

Part of the book series: Lecture Notes in Computer Science ((TAOSD,volume 4242))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. 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)

    Chapter  Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    Article  Google Scholar 

  7. Amsler, T., Walters, R.: (Open RCT home), http://davinci.cs.ucdavis.edu/

  8. Dean, D., Stubblefield, A.: Using Client Puzzles to Protect TLS. In: Proc. of USENIX Security Symposium (2001)

    Google Scholar 

  9. Balzer, B.: Transformational implementation: An example. IEEE Transactions on Software Engineering 7(1) (1981)

    Google Scholar 

  10. des Rivieres, J., Smith, B.: The implementation of procedurally reflective languages. Technical Report ISL-4, Xerox PARC (1984)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. Chiba, S.: A metaobject protocol for C++. In: Object Oriented Programming, Systems, Languages, and Applications (OOPSLA) (1995)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Chiba, S.: Load-Time Structural Reflection in Java. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 313–336. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  15. Smaragdakis, Y., Batory, D.: Implementing Layered Designs with Mixin Layers. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, p. 550. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  16. Walker, R.J., Murphy, G.C.: Implicit context: easing software evolution and reuse. In: Foundations of Software Engineering (2000)

    Google Scholar 

  17. Liang, S., Hudak, P., Jones, M.: Monad transformers and modular interpreters. In: Symposium on Principles of Programming Languages (1995)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. Narasimhan, P., Moser, L., Mellior-Smith, P.: Using interceptors to enhance CORBA. IEEE Computer (1999)

    Google Scholar 

  20. 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)

    Chapter  Google Scholar 

  21. 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)

    Chapter  Google Scholar 

  22. Fraser, T., Badger, L., Feldman, M.: Hardening COTS software with generic software wrappers. In: IEEE Symposium on Security and Privacy (1999)

    Google Scholar 

  23. Souder, T.S., Mancoridis, S.: A tool for securely integrating legacy systems into a distributed environment. In: Working Conference on Reverse Engineering (1999)

    Google Scholar 

  24. Roman, E., Ambler, S., Jewell, T.: Mastering Enterprise JavaBeans. Wiley, Chichester (2001)

    Google Scholar 

  25. http://www.jboss.org JBoss (4.0 edn.)

  26. 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)

    Chapter  Google Scholar 

  27. http://aspectwerkz.codehaus.org/ AspectWerkz (2 edn.)

  28. http://www.springframework.org Spring Framework (1.2.3 edn.)

  29. 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)

    Chapter  Google Scholar 

  30. Zhang, C., Gao, D., Jacobsen, H.A.: Towards just-in-time middleware architectures. In: International Conference on Aspect-Oriented Software Development (2005)

    Google Scholar 

  31. 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)

    Google Scholar 

  32. Schmidt, D.: Using design patterns to develop reusable object-oriented communication software. Communications of the ACM 38(10), 65–74 (1995)

    Article  Google Scholar 

  33. Object Management Group: CORBA 3.0 Specification (3.0 edn.)

    Google Scholar 

  34. 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)

    Google Scholar 

  35. Blair, G., Campbell, R. (eds.): Reflective Middleware (2000)

    Google Scholar 

  36. 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)

    Google Scholar 

  37. Gamma, E., Helm, R., Johnson, R., Viissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)

    Google Scholar 

  38. 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)

    Google Scholar 

  39. Wohlstadter, E.: Aspect-Oriented Development of Distributed Object Applications. PhD thesis, University of California at Davis (2005)

    Google Scholar 

  40. Popovici, A., Alonso, G., Gross, T.: Spontaneous container services. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)

    Google Scholar 

  41. 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)

    Google Scholar 

  42. 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)

    Google Scholar 

  43. 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)

    Google Scholar 

  44. Chen, W.K., Hiltunen, M., Schlichting, R.: Constructing adaptive software in distributed systems. In: International Conference on Distributed Computing Systems (2001)

    Google Scholar 

  45. 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)

    Chapter  Google Scholar 

  46. 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)

    Google Scholar 

  47. Mehta, N.R., Medvidovic, N., Phadke, S.: Towards a taxonomy of software connectors. In: International Conference on Software engineering (2000)

    Google Scholar 

  48. Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes 17(4) (1992)

    Google Scholar 

  49. Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Transactions on Software Engineering and Methodology 6(3) (1997)

    Google Scholar 

  50. Ducasse, S., Richner, T.: Executable connectors: towards reusable design elements. In: Foundation of Software Engineering (1997)

    Google Scholar 

  51. 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)

    Google Scholar 

  52. 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)

    Google Scholar 

  53. Spitznagel, B., Garlan, D.: A compositional approach to constructing connectors. In: Working IEEE/IFIP Conference on Software Architecture (WISCA) (2001)

    Google Scholar 

  54. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics