Advertisement

Language Support for Connector Abstractions

  • Jonathan Aldrich
  • Vibha Sazawal
  • Craig Chambers
  • David Notkin
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2743)

Abstract

Software connectors are increasingly recognized as an important consideration in the design and implementation of object-oriented software systems. Connectors can be used to communicate across a distributed system, coordinate the activities of several objects, or adapt one object’s interface to the interface of another. Mainstream object-oriented languages, however, do not provide explicit support for connectors. As a result, connection code is intermingled with application code, making it difficult to understand, evolve, and reuse connection mechanisms.

In this paper, we add language support for user-defined connectors to the ArchJava language. Our design enables a wide range of connector abstractions, including caches, events, streams, and remote method calls. Developers can describe both the run-time semantics of connectors and the typechecking semantics. The connector abstraction supported by ArchJava cleanly separates reusable connection code from application logic, making the semantics of connections more explicit and allowing engineers to easily change the connection mechanisms used in a program. We evaluate the expressiveness and the engineering benefits of our design in a case study applying ArchJava to the PlantCare ubiquitous computing application.

Keywords

Design Pattern Software Architecture Ubiquitous Computing Language Support Connector Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [ACN02a]
    Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting Software Architecture to Implementation. In: Proc. International Conference on Software Engineering, Orlando, Florida (May 2002)Google Scholar
  2. [ACN02b]
    Aldrich, J., Chambers, C., Notkin, D.: Architectural Reasoning in ArchJava. In: Proc. European Conference on Object-Oriented Programming, Málaga, Spain (June 2002)Google Scholar
  3. [AG97]
    Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)CrossRefGoogle Scholar
  4. [Arc02]
    ArchJava web site, http://www.archjava.org/
  5. [BA01]
    Bergmans, L., Aksit, M.: Composing Crosscutting Concerns Using Composition Filters. Communications of the ACM 44(10), 51–57 (2001)CrossRefGoogle Scholar
  6. [BCA+01]
    Blair, G.S., Coulson, G., Andersen, A., Blair, L., Clarke, M., Costa, F., Duran-Limon, H., Fitzpatrick, T., Johnston, L., Moreira, R., Parlavantzas, N., Saikoski, K.: The Design and Implementation of Open ORB 2. IEEE Distributed Systems Online Journal 2(6) (2001)Google Scholar
  7. [BCL+87]
    Bershad, B., Ching, D., Lazowska, E., Sanislo, J., Schwartz, M.: A Remote Procedure Call Facility for Interconnecting Heterogeneous Computer Systems. IEEE Trans. Software Engineering 13(8), 880–894 (1987)CrossRefGoogle Scholar
  8. [BOS+98]
    Bracha, G., Odersky, M., Stoutamire, D., Wadler, P.: Making the Future Safe for the Past: Adding Genericity to the Java Programming Language. In: Proc. Object Oriented Programming Systems, Languages, and Applications, Vancouver, British Columbia (October 1998)Google Scholar
  9. [DMT99]
    Dashofy, E.M., Medvidovic, N., Taylor, R.N.: Using Off-the-Shelf Middleware to Implement Connectors in Distributed Software Architectures. In: Proc. International Conference on Software Engineering, Los Angeles, California (May 1999)Google Scholar
  10. [GHJ+94]
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)Google Scholar
  11. [GS93]
    Garlan, D., Shaw, M.: An Introduction to Software Architecture. In: Ambriola, V., Tortora, G. (eds.) Advances in Software Engineering and Knowledge Engineering, vol. I. World Scientific Publishing Company, Singapore (1993)Google Scholar
  12. [Jav97]
    Javasoft Java RMI Team. Java Remote Method Invocation Specification, Sun Microsystems (1997)Google Scholar
  13. [JLH88]
    Jul, E., Levy, H., Hutchinson, N., Black, A.: Fine-Grained Mobility in the Emerald System. ACM Trans. Computer Systems 6(1), 109–133 (1988)CrossRefGoogle Scholar
  14. [KRB91]
    Kiczales, G., des Rivières, J., Bobrow, D.G.: The Art of the Meta-Object Protocol. MIT Press, Cambridge (1991)Google Scholar
  15. [LBK+02]
    LaMarca, A., Brunette, W., Koizumi, D., Lease, M., Sigurdsson, S.B., Sikorski, K., Fox, D., Borriello, G.: PlantCare: An Investigation in Practical Ubiquitous Systems. In: Proc. International Conference on Ubiquitous Computing, Göteborg, Sweden (September 2002)Google Scholar
  16. [LV95]
    Luckham, D.C., Vera, J.: An Event Based Architecture Definition Language. IEEE Trans. Software Engineering 21(9)(September 1995)Google Scholar
  17. [Mic95]
    Microsoft Corporation. The Component Object Model Specification, Version 0.9 (October 1995)Google Scholar
  18. [MK96]
    Magee, J., Kramer, J.: Dynamic Structure in Software Architectures. In: Proc. Foundations of Software Engineering, San Francisco, California (October 1996)Google Scholar
  19. [MMP00]
    Mehta, N.R., Medvidovic, N., Phadke, S.: Towards a Taxonomy of Software Connectors. In: Proc. International Conference on Software Engineering, Limerick, Ireland (June 2000)Google Scholar
  20. [MO02]
    Mezini, M., Ostermann, K.: Integrating Independent Components with On-Demand Remodularization. In: Proc. Object-Oriented Programming Systems, Languages, and Applications, Seattle, Washington (November 2002)Google Scholar
  21. [MOR+96]
    Medvidovic, N., Oreizy, P., Robbins, J.E., Taylor, R.N.: Using Object-Oriented Typing to Support Architectural Design in the C2 Style. In: Proc. Foundations of Software Engineering, San Francisco, California (October 1996)Google Scholar
  22. [MQR95]
    Moriconi, M., Qian, X., Riemenschneider, R.A.: Correct Architecture Refinement. IEEE Trans. Software Engineering 21(4), 356–372 (1995)CrossRefGoogle Scholar
  23. [MT00]
    Medvidovic, N., Taylor, R.N.: A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Trans. Software Engineering 26(1), 70–93 (2000)CrossRefGoogle Scholar
  24. [OMG95]
    Object Management Group. The Common Object Request Broker: Architecture and Specification (CORBA), revision 2.0 (1995)Google Scholar
  25. [PW92]
    Perry, D.E., Wolf, A.L.: Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes 17, 40–52 (1992)CrossRefGoogle Scholar
  26. [SC00]
    Seco, J.C., Caires, L.: A Basic Model of Typed Components. In: Proc. European Conference on Object-Oriented Programming, Cannes, France (June 2000)Google Scholar
  27. [SDK+95]
    Shaw, M., DeLine, R., Klein, D.V., Ross, T.L., Young, D.M., Zelesnik, G.: Abstractions for Software Architecture and Tools to Support Them. IEEE Trans. Software Engineering 21(4), 314–335 (1995)CrossRefGoogle Scholar
  28. [SDZ96]
    Shaw, M., DeLine, R., Zelesnik, G.: Abstractions and Implementations for Architectural Connections. In: Proc. International Conference on Configurable Distributed Systems, Annapolis, Maryland (May 1996)Google Scholar
  29. [SLB02]
    Soares, S., Laureano, E., Borba, P.: Implementing Distribution and Persistance Aspects with AspectJ. In: Proc. Object- Oriented Programming Systems, Languages, and Applications, Seattle, Washington (November 2002)Google Scholar
  30. [Sre02]
    Sreedhar, V.C.: Mixin’ Up Components. In: Proc. International Conference on Software Engineering, Orlando, Florida (May 2002)Google Scholar
  31. [Ubi02]
  32. [WJD03]
    Wohlstadter, E., Jackson, S., Devanbu, P.: DADO: Enhancing Middleware to Support Cross-Cutting Features in Distributed, Heterogeneous Systems. In: Proc. International Conference on Software Engineering, Portland, Oregon (May 2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Jonathan Aldrich
    • 1
  • Vibha Sazawal
    • 1
  • Craig Chambers
    • 1
  • David Notkin
    • 1
  1. 1.Department of Computer Science and EngineeringUniversity of WashingtonSeattleUSA

Personalised recommendations