Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNISA,volume 4803))

Abstract

Software patterns have evolved into a commonly used means to design and implement software systems. Programming patterns, architecture and design patterns have been quite successful in the context of sequential as well as (massively) parallel applications but much less so in the context of distributed applications over irregular communication topologies and heterogeneous synchronization requirements.

In this paper, we propose a solution for one of the main issues in this context: the need to complement distributed patterns with access to execution state on which it depends but that is frequently not directly available at the sites where the patterns are to be applied. To this end we introduce invasive patterns that couple well-known computation and communication patterns like pipelining and farming out computations with facilities to access non-local state. We present the following contributions: (i) a motivation for such invasive patterns in the context of a real-world application: the JBoss Cache framework for transactional replicated caching, (ii) a proposal of language support for such invasive patterns, (iii) a prototypical implementation of this pattern language using AWED, an aspect language for distributed programming, and (iv) an evaluation of our proposal for refactoring of JBoss Cache.

Work partially supported by AOSD-Europe, the European Network of Excellence in AOSD (www.aosd-europe.net)

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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. Akşit, M., Clarke, S., Elrad, T., Filman, R.E. (eds.): Aspect-Oriented Software Development. Addison-Wesley Professional, Reading (2004)

    Google Scholar 

  2. Alur, D., Malks, D., Crupi, J., Booch, G., Fowler, M.: Core J2EE Patterns (Core Design Series): Best Practices and Design Strategies. Sun Microsystems Inc., Mountain View, CA (2003)

    Google Scholar 

  3. AOSD 2006. Proceedings of the 5th ACM Int. Conf. on Aspect-Oriented Software Development ACM Press (March 2006)

    Google Scholar 

  4. AspectJ home page, http://www.eclipse.org/aspectj

  5. Awed home page, http://www.emn.fr/x-info/awed

  6. Navarro, L.D.B., Südholt, M., et al.: Explicitly distributed AOP using AWED. In: AOSD 2006 (2006)

    Google Scholar 

  7. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns. John Wiley and Sons Ltd., Chichester (1996)

    Google Scholar 

  8. Open Management Group (OMG). CORBA components, version 3

    Google Scholar 

  9. Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, Cambridge (1989)

    MATH  Google Scholar 

  10. IBM Corp. IBM Patterns for e-business Resources, http://www-128.ibm.com/developerworks/patterns/library

  11. Cunha, C.A., Sobral, J.L., Monteiro, M.P.: Reusable aspect-oriented implementations of concurrency patterns and mechanisms. In: AOSD06 AOSD (2006)

    Google Scholar 

  12. Douence, R., Le Botlan, D., Noyé, J., Südholt, M.: Concurrent aspects. In: Proc. of GPCE 2006, ACM Press, New York (2006)

    Google Scholar 

  13. Douence, R., Fradet, P., Südholt, M.: A framework for the detection and resolution of aspect interactions. In: Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487, pp. 173–188. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  14. Easton, J., et al.: Patterns: Emerging Patterns for Enterprise Grids. IBM Redbooks (June 2006), http://publib-b.boulder.ibm.com/abstracts/sg246682.html

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

    Google Scholar 

  16. Hannemann, J., Kiczales, G.: Design pattern implementation in java and aspectj. In: Proceedings of OOPSLA 2002, pp. 161–173. ACM Press, New York (2002)

    Chapter  Google Scholar 

  17. JBoss Cache home page, http://labs.jboss.com/jbosscache

  18. Kiczales, G.: Aspect oriented programming. In: Cointe, P. (ed.) ECOOP 1996. LNCS, vol. 1098, Springer, Heidelberg (1996)

    Google Scholar 

  19. Kiczales, G., Hilsdale, E., et al.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  20. Schmidt, D.C., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects. John Wiley and Sons Ltd., Chichester (2000)

    Google Scholar 

  21. Siu, S., De Simone, M., Goswami, D., Singh, A.: Design patterns for parallel programming. In: Proc. of PDPTA 1996, vol. I, pp. 230–240. C.S.R.E.A. Press, University of Waterloo, Canada (1996)

    Google Scholar 

  22. Soares, S., Laureano, E., Borba, P.: Implementing distribution and persistence aspects with AspectJ. In: Norris, C., Fenwick Jr, J.B. (eds.) Proceedings of OOPSLA 2002, ACM SIGPLAN Notices, vol. 37(11), pp. 174–190. ACM Press, New York (2002)

    Google Scholar 

  23. Südholt, M.: Towards expressive, well-founded and correct Aspect-Oriented Programming. Habilitation thesis, University of Nantes (July 2007), http://www.emn.fr/sudholt/hdr/thesis.pdf

  24. Tan, K., Szafron, D., et al.: Using generative design patterns to generate parallel code for a distributed memory environment. In: Proc. of PPOPP 2003 (June 2003)

    Google Scholar 

  25. Tanter, É., Toledo, R.: A versatile kernel for distributed AOP. In: Eliassen, F., Montresor, A. (eds.) DAIS 2006. LNCS, vol. 4025, Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  26. Wong, G.T., Hiltunen, M.A., Schlichting, R.D.: A configurable and extensible transport protocol. In: INFOCOM 2001. Proceedings of the 20th Annual Conference of IEEE Communications and Computer Societies, pp. 319–328. IEEE, Los Alamitos (2001)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Robert Meersman Zahir Tari

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Benavides Navarro, L.D., Südholt, M., Douence, R., Menaud, JM. (2007). Invasive Patterns for Distributed Programs. In: Meersman, R., Tari, Z. (eds) On the Move to Meaningful Internet Systems 2007: CoopIS, DOA, ODBASE, GADA, and IS. OTM 2007. Lecture Notes in Computer Science, vol 4803. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-76848-7_51

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-76848-7_51

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-76846-3

  • Online ISBN: 978-3-540-76848-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics