Skip to main content

Language Support for Connector Abstractions

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((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.

This is a preview of subscription content, log in via an institution.

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 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. Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)

    Article  Google Scholar 

  4. ArchJava web site, http://www.archjava.org/

  5. Bergmans, L., Aksit, M.: Composing Crosscutting Concerns Using Composition Filters. Communications of the ACM 44(10), 51–57 (2001)

    Article  Google Scholar 

  6. 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. 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)

    Article  Google Scholar 

  8. 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. 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. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)

    Google Scholar 

  11. 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. Javasoft Java RMI Team. Java Remote Method Invocation Specification, Sun Microsystems (1997)

    Google Scholar 

  13. Jul, E., Levy, H., Hutchinson, N., Black, A.: Fine-Grained Mobility in the Emerald System. ACM Trans. Computer Systems 6(1), 109–133 (1988)

    Article  Google Scholar 

  14. Kiczales, G., des Rivières, J., Bobrow, D.G.: The Art of the Meta-Object Protocol. MIT Press, Cambridge (1991)

    Google Scholar 

  15. 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. Luckham, D.C., Vera, J.: An Event Based Architecture Definition Language. IEEE Trans. Software Engineering 21(9)(September 1995)

    Google Scholar 

  17. Microsoft Corporation. The Component Object Model Specification, Version 0.9 (October 1995)

    Google Scholar 

  18. Magee, J., Kramer, J.: Dynamic Structure in Software Architectures. In: Proc. Foundations of Software Engineering, San Francisco, California (October 1996)

    Google Scholar 

  19. 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. 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. 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. Moriconi, M., Qian, X., Riemenschneider, R.A.: Correct Architecture Refinement. IEEE Trans. Software Engineering 21(4), 356–372 (1995)

    Article  Google Scholar 

  23. Medvidovic, N., Taylor, R.N.: A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Trans. Software Engineering 26(1), 70–93 (2000)

    Article  Google Scholar 

  24. Object Management Group. The Common Object Request Broker: Architecture and Specification (CORBA), revision 2.0 (1995)

    Google Scholar 

  25. Perry, D.E., Wolf, A.L.: Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes 17, 40–52 (1992)

    Article  Google Scholar 

  26. 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. 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)

    Article  Google Scholar 

  28. 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. 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. Sreedhar, V.C.: Mixin’ Up Components. In: Proc. International Conference on Software Engineering, Orlando, Florida (May 2002)

    Google Scholar 

  31. UbiCore LLC. Universally Interoperable Core, Description at http://www.ubi-core.com/Documentation/Universally_Interoperable_Core/universally_interoperable_core.html

  32. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Aldrich, J., Sazawal, V., Chambers, C., Notkin, D. (2003). Language Support for Connector Abstractions. In: Cardelli, L. (eds) ECOOP 2003 – Object-Oriented Programming. ECOOP 2003. Lecture Notes in Computer Science, vol 2743. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45070-2_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-45070-2_5

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-45070-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics