skip to main content
10.1145/1029894.1029918acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Implementing protocols via declarative event patterns

Published:31 October 2004Publication History

ABSTRACT

This paper introduces declarative event patterns (DEPs) as a means to implement protocols while improving their traceability, comprehensibility, and maintainability. DEPs are descriptions of sequences of events in the execution of a system that include the ability to recognize properly nested event structures. DEPs allow a developer to describe a protocol at a high-level, without the need to express extraneous details. A developer can indicate that specific actions be taken when a given pattern occurs. DEPs are automatically translated into the appropriate instrumentation and automaton for recognizing a given pattern. Support for DEPs has been implemented in a proof-of-concept extension to the AspectJ language that is based on advanced compiler technology. A case study is described that compares the use of DEPs in the implementation of a protocol (FTP user authentication) to the use of a set of other approaches, both object-oriented and aspect-oriented.

References

  1. R. Åberg et al. On the automatic evolution of an OS kernel using temporal logic and AOP. In Int'l Conf. Automated Softw. Eng., 2003.]]Google ScholarGoogle Scholar
  2. A. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. Aycock and N. Horspool. Schrodinger's token. Software---Practice & Experience, 31(8), 2001.]]Google ScholarGoogle Scholar
  4. J. Aycock, N. Horspool, J. Janouek, and B. Melichar. Even faster generalized LR parsing. Acta Informatica, 37(9), 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. W. Bartussek and D. Parnas. Using assertions about traces to write abstract specifications for software modules. In Information Systems Methodology, 1978. LNCS 65.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Bradfield and C. Stirling. Modal logics and mu-calculi. In Handbook of Process Algebra. Elsevier, 2001.]]Google ScholarGoogle ScholarCross RefCross Ref
  7. S. Butkevich, M. Renedo, G. Baumgartner, and M. Young. Compiler and tool support for debugging object protocols. In Int'l Symp. Foundations Softw. Eng., 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. T. Colcombet and P. Fradet. Enforcing trace properties by program transformation. In Symp. Princ. Progr. Lang., 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Cs3 Inc. TriggerWare: Infrastructure for Event Reasoning Applications, Version 1.0, 2004. http://www.cs3-inc.com/www.cs3-inc.com.]]Google ScholarGoogle Scholar
  10. W. De Pauw, D. Lorenz, J. Vlissides, and M. Wegman. Execution patterns in object-oriented visualization. In USENIX Conf. Object-Oriented Tech. and Sys., 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. Douence, P. Fradet, and M. Südholt. A framework for the detection and resolution of aspect interactions. In Int'l Conf. Generic Prog. and Component Eng., 2002. LNCS 2487.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. R. Douence, O. Motelet, and M. Südholt. A formal definition of crosscuts. In Metalevel Architectures and Separation of Crosscutting Concerns, 2001. LNCS 2192.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. R. Douence and M. Südholt. A model and a tool for event-based aspect-oriented programming (EAOP). TR 02/11/INFO, Ecole des Mines de Nantes, 2002.]]Google ScholarGoogle Scholar
  14. M. Feather. Reuse in the context of a transformation-based methodology. In T. Biggerstaff and A. Perlis, editors, Software Reusability, volume 1. Addison--Wesley, 1989.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. Fickas and M. Feather. Requirements monitoring in dynamic environments. In IEEE Symp. Requirements Eng., 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Filman and K. Havelund. Source-code instrumentation and quantification of events. In Wkshp. Foundations Aspect-Oriented Lang. at AOSD, 2002.]]Google ScholarGoogle Scholar
  17. D. Hoffman and P. Strooper. State abstraction and modular software development. In Int'l Symp. Foundations Softw. Eng., 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. JAsCo tool. http://ssel.vub.ac.be/jascossel.vub.ac.be/jasco, 2004.]]Google ScholarGoogle Scholar
  19. G. Kiczales et al. An overview of AspectJ. In Proc. European Conf. Object-Oriented Progr., 2001. LNCS 2072.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. D. Knuth. On the translation of languages from left to right. Information and Control, 8(6), 1965.]]Google ScholarGoogle Scholar
  21. E. Ochmanski. Recognizable trace languages. In The Book of Traces. World Scientific, 1995.]]Google ScholarGoogle ScholarCross RefCross Ref
  22. J. Postel and J. Reynolds. File Transfer Protocol (FTP). Request for Comments 959, Network Working Group, 1985.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. Reiss and M. Renieris. Encoding program executions. In Int'l Conf. Softw. Eng., 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. D. Sereni and O. de Moor. Static analysis of aspects. In Int'l Conf. Aspect-Oriented Softw. Dev., 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. The AspectJ Team. The AspectJ Programming Guide. Palo Alto Research Center, Inc., 2003.]]Google ScholarGoogle Scholar
  26. K. Viggers and R. Walker. An implementation of declarative event patterns. TR 2004-745-10, Univ. of Calgary, 2004.]]Google ScholarGoogle Scholar
  27. D. Wagner and D. Dean. Intrusion detection via static analysis. In IEEE Symp. Security and Privacy, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. R. Walker. IConJ 0.1: A proof-of-concept tool for the application of the implicit context model to Java software. TR 2004-757-22, Univ. of Calgary, 2004.]]Google ScholarGoogle Scholar
  29. R. Walker and G. Murphy. Implicit context: Easing software evolution and reuse. In Int'l Symp. Foundations Softw. Eng., 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. D. Yellin and R. Strom. Protocol specifications and component adaptors. ACM Trans. Progr. Lang. Sys., 19(2), 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Implementing protocols via declarative event patterns

              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

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader