Skip to main content

Shakeins: Nonintrusive Aspects for Middleware Frameworks

  • Conference paper
Transactions on Aspect-Oriented Software Development II

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

  • 299 Accesses

Abstract

Shakeins are a novel programming construct which, like mixins and generic classes, generates new classes from existing ones in a universal, uniform, and automatic manner: From a given class, a shakein generates a new class which has the same type as the original, but with different data and code implementation. We argue that shakeins are restricted, yet less chaotic, aspects. We further claim that shakeins are well suited for the introduction of aspect-oriented programming (AOP) into existing middleware applications. We introduce the AspectJ2EE language which, with the help of shakeins and a new deploy-time weaving mechanism, brings the blessings of AOP to the J2EE framework. A unique advantage of AspectJ2EE, which is less general (and hence less complicated) than AspectJ, is that it can be smoothly integrated into J2EE implementations without breaking their architecture.

Part of the contents of this paper was presented in the European Conference on Object Oriented Programming [1] and in a recently submitted paper [2].

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. 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. 219–243. Springer, Heidelberg (2004)

    Google Scholar 

  2. Cohen, T., Gil, J.: Distinguishing class from type with factories and shakeins (submitted, 2006)

    Google Scholar 

  3. Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  4. Soares, S., Laureano, E., Borba, P.: Implementing distribution and persistence aspects with AspectJ. In: Proc. of the Seventeenth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2002), pp. 174–190 (2002)

    Google Scholar 

  5. Hao, R., Boloni, L., Jun, K., Marinescu, D.C.: An aspect-oriented approach to distributed object security. In: Proc. of the Fourth IEEE Symp. on Computers and Communications

    Google Scholar 

  6. Kim, H., Clarke, S.: The relevance of AOP to an applications programmer in an EJB environment. In: Proc. of the First International Conference on Aspect-Oriented Software Development (AOSD) Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS) (2002)

    Google Scholar 

  7. Choi, J.P.: Aspect-oriented programming with Enterprise JavaBeans. In: Proc. of the Fourth International Enterprise Distributed Object Computing Conference (EDOC 2000), pp. 252–261 (2000)

    Google Scholar 

  8. Laddad, R.: AspectJ in Action: Practical Aspect-Oriented Programming. Manning, Greenwich (2003)

    Google Scholar 

  9. 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. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  10. Bracha, G., Cook, W.R.: Mixin-based inheritance. In: Meyrowitz, N.K. (ed.) Proc. of the Fifth Object-Oriented Programming Systems, Languages, and Applications / European Conference on Object-Oriented Programming OOPSLA/ECOOP 1990, pp. 303–311 (1990)

    Google Scholar 

  11. Parnas, D.L.: Information distribution aspects of design methodology. In: Freiman, C.V., Griffith, J.E., Rosenfeld, J.L. (eds.) Proc. of the IFIP Congress, pp. 339–344

    Google Scholar 

  12. Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: Roman, G.-C., Griswold, W.G., Nuseibeh, B. (eds.) Proc. of the Twenty Seventh International Conference on Software Engineering (ICSE 2005), pp. 49–58 (2005)

    Google Scholar 

  13. Gradecki, J.D., Lesiecki, N.: Mastering AspectJ: Aspect-Oriented Programming in Java. Wiley, Chichester (2003)

    Google Scholar 

  14. Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.P.: Traits: Composable units of behavior. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 248–274. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  15. Cardelli, L., Wegner, P.: On understanding types, data abstractions, and polymorphism. ACM Computing Surveys 17, 471–522 (1985)

    Article  Google Scholar 

  16. Bracha, G.: The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. PhD thesis, Department of Computer Science, University of Utah (1992)

    Google Scholar 

  17. Allen, E., Bannet, J., Cartwright, R.: A first-class approach to genericity. In: [36], pp. 96–114

    Google Scholar 

  18. Ancona, D., Lagorio, G., Zucca, E.: Jam — a smooth extension of Java with mixins. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 154–178. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  19. McDirmid, S., Flatt, M., Hsieh, W.C.: Jiazzi: New-age components for old-fashioned Java. In: Proc. of the Sixteenth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2001), pp. 211–222 (2001)

    Google Scholar 

  20. McDirmid, S., Hsieh, W.C.: Aspect-oriented programming with Jiazzi. In: [37], pp. 70–79

    Google Scholar 

  21. Gamma, E., Helm, R., Johnson, R.E., Vlissides, J.M.: Design Patterns: Elements of Reusable Object-Oriented Software. Professional Computing series. Addison-Wesley Publishing Company, Reading (1995)

    Google Scholar 

  22. Pichler, R., Ostermann, K., Mezini, M.: On aspectualizing component models. Software - Practice and Experience 33, 957–974 (2003)

    Article  Google Scholar 

  23. Bodoff, S., Green, D., Haase, K., Jendrock, E., Pawlan, M., Stearns, B.: The J2EE Tutorial. Addison-Wesley Publishing Company, Reading (2002)

    Google Scholar 

  24. Duclos, F., Estublier, J., Morat, P.: Describing and using non functional aspects in component based applications. In: Proc. of the First International Conference on Aspect-Oriented Software Development (AOSD 2002), pp. 22–26 (2002)

    Google Scholar 

  25. Mezini, M., Ostermann, K.: Conquering aspects with Caesar. In: [37], pp. 90–100

    Google Scholar 

  26. Pawlak, R., Seinturier, L., Duchien, L., Florin, G., Legond-Aubry, F., Martelli, L.: JAC: an aspect-based distributed dynamic framework. Soft. - Pract. and Exper. 34, 1119–1148 (2004)

    Article  Google Scholar 

  27. Truyen, E., Vanhaute, B., Joosen, W., Verbaeten, P., Jørgensen, B.N.: Dynamic and selective combination of extensions in component-based applications. In: Proc. of the Twenty Third International Conference on Software Engineering (ICSE 2001), pp. 233–242 (2001)

    Google Scholar 

  28. Popovici, A., Gross, T.R., Alonso, G.: Dynamic weaving for aspect-oriented programming. In: Proc. of the First International Conference on Aspect-Oriented Software Development (AOSD 2002), pp. 141–147 (2002)

    Google Scholar 

  29. Suvée, D., Vanderperren, W., Jonckers, V.: JAsCo: an aspect-oriented approach tailored for component based software development. In: [37], pp. 21–29

    Google Scholar 

  30. Walker, R.J., Baniassad, E.L.A., Murphy, G.C.: An initial assessment of aspect-oriented programming. In: Proc. of the Twenty First International Conference on Software Engineering (ICSE 1999), pp. 120–130 (1999)

    Google Scholar 

  31. Constantinides, C.A., Elrad, T., Fayad, M.E.: Extending the object model to provide explicit support for crosscutting concerns. Software - Practice and Experience 32, 703–734 (2002)

    Article  MATH  Google Scholar 

  32. Gosling, J., Joy, B., Steele, G.L.J., Bracha, G.: The Java Language Specification, 3rd edn. Addison-Wesley Publishing Company, Reading (2005)

    Google Scholar 

  33. Nishizawa, M., Chiba, S., Tatsubori, M.: Remote pointcut: a language construct for distributed AOP. In: Proc. of the Third international conference on Aspect-Oriented Software Development (AOSD 2004), pp. 7–15 (2004)

    Google Scholar 

  34. Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)

    MATH  Google Scholar 

  35. Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: OOPSLA 2000 Workshop on Advanced Separation of Concerns. ACM, Minneapolis (2000)

    Google Scholar 

  36. Crocker, R., Steele Jr., G.L. (eds.): Proc. of the Eighteenth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2003), Anaheim, California, USA. ACM SIGPLAN Notices 38(11) (2003)

    Google Scholar 

  37. Proc. of the Second International Conference on Aspect-Oriented Software Development (AOSD 2003), Boston, Massachusetts, USA. ACM Press, New York (2003)

    Google Scholar 

  38. Fähndrich, M., Leino, K.R.M.: Declaring and checking non-null types in an object-oriented language. In: [36], pp. 302–312

    Google Scholar 

  39. Grand, M.: Patterns in Java, vol. 1. John Wiley & Sons, USA (1998)

    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

Cohen, T., Gil, J.(. (2006). Shakeins: Nonintrusive Aspects for Middleware Frameworks. 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_5

Download citation

  • DOI: https://doi.org/10.1007/11922827_5

  • 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