skip to main content
10.1145/1052898.1052901acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
Article

An expressive aspect language for system applications with Arachne

Published:14 March 2005Publication History

ABSTRACT

C applications, in particular those using operating system level services, frequently comprise multiple crosscutting concerns: network protocols and security are typical examples of such concerns. While these concerns can partially be addressed during design and implementation of an application, they frequently become an issue at runtime, e.g., to avoid server downtime. A deployed network protocol might not be efficient enough and may thus need to be replaced. Buffer overflows might be discovered that imply critical breaches in the security model of an application. A prefetching strategy may be required to enhance performance.While aspect-oriented programming seems attractive in this context, none of the current aspect systems is expressive and efficient enough to address such concerns. This paper presents a new aspect system to provide a solution to this problem. While efficiency considerations have played an important part in the design of the aspect language, the language allows aspects to be expressed more concisely than previous approaches. In particular, it allows aspect programmers to quantify over sequences of execution points as well as over accesses through variable aliases. We show how the former can be used to modularize the replacement of network protocols and the latter to prevent buffer overflows. We also present an implementation of the language as an extension of Arachne, a dynamic weaver for C applications. Finally, we present performance evaluations supporting that Arachne is fast enough to extend high performance applications, such as the Squid web cache.

References

  1. R. A. Åberg, J. L. Lawall, M. Südholt, G. Muller, and A.-F. L. Meur. On the automatic evolution of an os kernel using temporal logic and AOP. In Proceedings of Automated Software Engineering (ASE'03), pages 196--204. IEEE, 2003.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. American National Standards Institute. ANSI/ISO/IEC 9899-1999: Programming Languages --- C. American National Standards Institute, 1430 Broadway, New York, NY 10018, USA, 1999.]]Google ScholarGoogle Scholar
  3. J. H. Andrews. Process-algebraic foundations of aspect-oriented programming. In Proceedings of the 3rd International Conference on Metalevel Architectures and Separation of Crosscutting Concerns, volume 2192 of LNCS. Springer Verlag, Sept. 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Arlitt and T. Jin. A workload characterization study of the 1998 world cup web site. IEEE Network, 14(3):30-37, May 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. U. Aßmann and A. Ludwig. Aspect weaving by graph rewriting. In U. W. Eisenecker and K. Czarnecki, editors, Generative Component-based Software Engineering (GCSE), Erfurt, Oct. 1999.]]Google ScholarGoogle Scholar
  6. CERT - Carnegie Mellon University. Vulnerability note vu#613459, Feb. 2002. published on line: http://www.kb.cert.org/vuls/id/613459.]]Google ScholarGoogle Scholar
  7. H. Chen and P. Mohapatra. Catp: A context-aware transportation protocol for http. In International Workshop on New Advances in Web Servers and Proxy Technologies Held with ICDCS, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. S. Chiba and K. Nakagawa. Josh: An open AspectJ-like language. In Proceedings of the third international conference on Aspect-oriented software development, pages 102-111. ACM Press, Mar. 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. K.-I. Chinen and S. Yamaguchi. An interactive prefetching proxy server for improvement of WWW latency. In Seventh Annual Conference of the Internet Society (INET'97), Kuala Lumpur, June 1997.]]Google ScholarGoogle Scholar
  10. I. Cidon, A. Gupta, R. Rom, and C. Schuba. Hybrid tcp-udp transport for web traffic. In Proceedings of the 18th IEEE International Performance, Computing, and Communications Conference (IPCCC'99), pages 177--184, Feb. 1990.]]Google ScholarGoogle Scholar
  11. S. Clowes. Injectso: Modifying and spying on running processes under linux. In Black hat briefings, 2001.]]Google ScholarGoogle Scholar
  12. Y. Coady, G. Kiczales, M. Feeley, and G. Smolyn. Using AspectC to improve the modularity of Path-Specific customization in operating system code. In V. Gruhn, editor, Proc. of the Joint 8th European Software Engeneering Conference and 9th ACM SIGSOFT Symposium on the Foundation of Software Engeneering (ESEC/FSE-01), volume 26, 5 of SOFTWARE ENGINEERING NOTES, pages 88--98, New York, Sept. 10-14 2001. ACM Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. K. de Volder. Aspect-oriented logic meta programming. In P. Cointe, editor, Meta-Level Architectures and Reflection, 2nd International Conference on Reflection, volume 1616 of LNCS, pages 250--272. Springer Verlag, 1999.]] Google ScholarGoogle Scholar
  14. R. Douence, P. Fradet, and M. Südholt. A framework for the detection and resolution of aspect interactions. In Proceedings of the ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (GPCE'02), volume 2487 of LLNCS, pages 173--188. Springer-Verlag, Oct. 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. R. Douence, O. Motelet, and M. Südholt. A formal definition of crosscuts. In Proceedings of the 3rd International Conference on Metalevel Architectures and Separation of Crosscutting Concerns, volume 2192 of LNCS, pages 170--186. Springer Verlag, Sept. 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. E. Hilsdale and J. Hugunin. Advice weaving in aspectj. In Proceedings of the 3rd international conference on Aspect-oriented software development, pages 26--35. ACM Press, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. K. Hollingsworth, B. P. Miller, M. J. R. Goncalves, O. Naim, Z. Xu, and L. Zheng. MDL: A language and compiler for dynamic program instrumentation. In IEEE Conference on Parallel Architectures and Compilation Techniques (PACT), pages 201--213, Nov. 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Intel Corporation. IA-32 Intel Architecture Software Developer's Manual. Intel Corporation, 2001.]]Google ScholarGoogle Scholar
  19. V. Issarny, M. Banâtre, B. Charpiot, and J.-M. Menaud. Quality of service and electronic newspaper: The Etel solution. Lecture Notes in Computer Science, 1752:472--496, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. J. Jaffar, S. Michaylov, P. J. Stuckey, and R. H. C. Yap. The clp(r) language and system. ACM Trans. Program. Lang. Syst., 14(3):339--395, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. JasCo home page. http://ssel.vub.ac.be/jasco/.]]Google ScholarGoogle Scholar
  22. R. Jones and P. Kelly. Backwards-compatible bounds checking for arrays and pointers in c programs. In M. Kamkar, editor, Proceedings of the Third International Workshop on Automatic Debugging, volume 2, pages 13--26, May 1997.]]Google ScholarGoogle Scholar
  23. A. D. Keromytis. "Patch on Demand" Saves Even More Time? IEEE Computer, 37(8):94--96, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Akşit and S. Matsuoka, editors, Proceedings European Conference on Object-Oriented Programming, volume 1241, pages 220--242. Jyväskylä, Finland, June 1997.]]Google ScholarGoogle Scholar
  25. K. J. Lieberherr, J. Palm, and R. Sundaram. Expressiveness and complexity of crosscut languages. Technical Report NU-CCIS-04-10, Northeastern University, Sept. 2004.]]Google ScholarGoogle Scholar
  26. H. Masuhara and K. Kawauchi. Dataflow pointcut in aspect-oriented programming. In First Asian Symposium on Programming Languages and Systems (APLAS'03), 2003.]]Google ScholarGoogle ScholarCross RefCross Ref
  27. R. J. Moore. Dynamic probes and generalised kernel hooks interface for Linux. In USENIX, editor, Proceedings of the 4th Annual Linux Showcase and Conference, Atlanta, October 10-14, 2000, Atlanta, Georgia, USA, Berkeley, CA, USA, 2000. USENIX.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. A. Popovici, G. Alonso, and T. Gross. Just-in-time aspects: efficient dynamic weaving for Java. In Proceedings of the 2nd international conference on Aspect-oriented software development, pages 100--109, Boston, Massachusetts, Mar. 2003. ACM Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. Rabinovich and H. Wang. DHTTP: An efficient and cache-friendly transfer protocol for web traffic. In INFOCOM, pages 1597--1606, 2001.]]Google ScholarGoogle ScholarCross RefCross Ref
  30. A. Rousskov and D. Wessels. High-performance benchmarking with Web Polygraph. Software Practice and Experience, 34(2):187--211, Feb. 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. O. Ruwase and M. S. Lam. A practical dynamic buffer overflow detector. In Proceedings of the 11th Annual Network and Distributed System Security Symposium. Internet Society, Feb. 2004.]]Google ScholarGoogle Scholar
  32. M. Ségura-Devillechaise, J.-M. Menaud, G. Muller, and J. Lawall. Web cache prefetching as an aspect: Towards a dynamic-weaving based solution. In Proceedings of the 2nd international conference on Aspect-oriented software development, pages 110--119, Boston, MA, USA, Mar. 2003. ACM Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. O. Spinczyk, A. Gal, and W. Schroeder-Preikschat. AspectC++: an aspect-oriented extension to the C++ programming language. In Proceedings of the Fortieth International Conference on Tools Pacific, pages 53--60. Australian Computer Society, Inc., 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. A. Srivastava and A. Edwards. Vulcan: Binary transformation in a distributed environment. Microsoft Research Tech. Rpt. MSR-TR-2001-50, 2001.]]Google ScholarGoogle Scholar
  35. U. S. L. System Unix. System V Application Binary Interface Intel 386 Architecture Processor Supplement. Prentice Hall Trade, 1994.]]Google ScholarGoogle Scholar
  36. D. Wessels. Squid: The Definitive Guide. O'Reilly and Associates, Jan. 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. J. Wilander and M. Kamkar. A comparison of publicly available tools for dynamic buffer overflow prevention. In Proceedings of the 10th Network and Distributed System Security Symposium, pages 149-162, San Diego, California, February 2003.]]Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Other conferences
    AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development
    March 2005
    210 pages
    ISBN:1595930426
    DOI:10.1145/1052898
    • General Chair:
    • Mira Mezini,
    • Program Chair:
    • Peri Tarr

    Copyright © 2005 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 14 March 2005

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    Overall Acceptance Rate41of139submissions,29%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader