skip to main content
10.1145/337180.337201acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article
Free access

Towards a taxonomy of software connectors

Published: 01 June 2000 Publication History

Abstract

Software systems of today are frequently composed from prefabricated, heterogeneous components that provide complex functionality and engage in complex interactions. Existing research on component-based development has mostly focused on component structure, interfaces, and functionality. Recently, software architecture has emerged as an area that also places significant importance on component interactions, embodied in the notion of software connectors. However, the current level of understanding and support for connectors has been insufficient. This has resulted in their inconsistent treatment and a notable lack of understanding of what the fundamental building blocks of software interaction are and how they can be composed into more complex interactions. This paper attempts to address this problem. It presents a comprehensive classification framework and taxonomy of software connectors. The taxonomy is obtained through an extensive analysis of existing component interactions. The taxonomy is used both to understand existing software connectors and to suggest new, unprecedented connectors. We demonstrate the use of the taxonomy on the architecture of a large, existing system.

References

[1]
R. Allen and D. Garlan. A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology, July 1997.
[2]
B. N. Bershad, T. E. Anderson, E. D. Lazowska and H. M. Levy. Lightweight Remote Procedure Call. ACM Transactions on Computer Systems, 8(1), 1990.
[3]
A. D. Birrell and B. J. Nelson. Implementing Remote Procedure Calls. ACM Transactions on Computer Systems, 2(1), February 1984.
[4]
I. T. Bowman, R. C. Holt, and N. V. Brewster. Linux as a Case Study: Its Extracted Software Architecture. In Proceedings of the 21st International Conference on Software Engineering, Los Angeles, CA, May 1999.
[5]
G. Colouris, J. Dollimore and T. Kindberg. Distributed Systems: Concepts and Design. 2nd ed. Addison-Wesley, US, 1994.
[6]
J. E. Cook and J. A. Dage. Highly Reliable Upgrading of Components. In Proceedings of the 21st International Conference on Software Engineering, Los Angeles, CA, May 1999.
[7]
C. Cugola, E. Di Nitto, and A. Fuggetta. Exploiting an Event- Based Infrastructure to Develop Complex Distributed Systems. In Proceedings of the 20th International Conference on Software Engineering, Kyoto, Japan, April 1998.
[8]
E. M. Dashofy, N. Medvidovic, and R. N. Taylor. Using Offthe-Shelf Middleware to Implement Connectors in Distributed Software Architectures. In Proceedings of the 21st International Conference on Software Engineering, Los Angeles, CA, May 1999.
[9]
T. R. Dean and J. R. Cordy. A Syntactic Theory of Software Architecture. IEEE Transactions on Software Engineering, 21(4), April 1995.
[10]
R. DeLine. Avoiding Packaging Mismatch with Flexible Packaging. In Proceedings of the 21st International Conference on Software Engineering, Los Angeles, CA, May 1999.
[11]
F. DeRemer and H. H. Kron. Programming-in-the-Large versus Programming-in-the-Small. IEEE Transactions on Software Engineering, June 1976.
[12]
E. Di Nitto and D. S. Rosenblum. Exploiting ADLs to Specify Architectural Styles Induced by Middleware Infrastructures. In Proceedings of the 21st International Conference on Software Engineering, Los Angeles, CA, May 1999.
[13]
K. Driesen, U. Holzle and J. Vitek. Message Dispatch on Pipelined Processors. ECOOP '95, Lecture Notes in Computer Sci-ences, volume 952. Springer Verlag, 1995.
[14]
D. Garlan, R. Allen, and J. Ockerbloom. Architectural Mismatch, or, Why It's Hard to Build Systems out of Existing Parts. In Proceedings of the 17th International Conference on Software Engineering, Seattle, WA, April 1995.
[15]
G. T. Heineman. Adaptation and Software Architecture. In Proceedings of the Third International Workshop on Software Architectures, Orlando, FL, November 1998.
[16]
D. Hirsch, S. Uchitel and D. Yankelevich. Towards a Periodic Table of Connectors. In Proceedings of Simposio en Tecnolog~a de Software (SOST'99), Buenos Aires, Argentina, September 1999.
[17]
R. Kazman, P. Clements, L. Bass and G. Abowd. Classifying Architectural Elements as a Foundation for Mechanism Matching. In Proceedings of COMPSAC 97, Washington, D. C., August 1997.
[18]
L. Lamport. Time, Clocks and the Ordering of Events in a Distributed System. Communications of the ACM, 21(7), July 1978.
[19]
D. C. Luckham and J. Vera. An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering, September 1995.
[20]
N. Medvidovic and R. N. Taylor. A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on Software Engineering, January 2000.
[21]
P. Mockapetris, and K. J. Dunlap Development of the Domain Name System. In Proceedings of the Symposium on Communications Architectures and Protocols, 1988.
[22]
B. C. Neumann. Scale in Distributed Systems. In Readings in Distributed Computing Systems, IEEE Computer Society Press, 1994.
[23]
Object Management Group. XML Metadata Interchange (XMI). Proposal to the OMG OA & DTF RFP 3: Stream-based Model Interchange Format (SMIF). OMG Document ad/98/10-05. October 1998.
[24]
P. Oreizy, N. Medvidovic, and R. N. Taylor. Architecture- Based Runtime Software Evolution. In Proceedings of the 20th International Conference on Software Engineering, Kyoto, Japan, April 1998.
[25]
R. Orfali, D. Harkey, and J. Edwards. The Essential Distributed Objects Survival Guide. John Wiley & Sons, Inc., NY, 1996.
[26]
D. E. Perry. Software Interconnection Models. Proceedings of the 9th International Conference on Software Engineering, Monterey, CA, May 1987.
[27]
D. E. Perry. Software Architecture and its Relevance to Software Engineering, Invited Talk. Second International Conference on Coordination Models and Languages, Berlin, Germany, September 1997.
[28]
D. E. Perry and A. L. Wolf. Foundations for the Study of Software Architectures. ACM SIGSOFT Software Engineering Notes, October 1992.
[29]
R. Prieto-Diaz and J. M. Neighbors. Module Interconnection Languages. The Journal of Systems and Software, 6(1), November 1986.
[30]
S. P. Reiss. Connecting Tools Using Message Passing in the Field Environment. IEEE Software, 7(4), July 1990.
[31]
J. E. Robbins, N. Medvidovic, D. F. Redmiles, and D. S. Rosenblum. Integrating Architecture Description Languages with a Standard Design Method. In Proceedings of the 20th International Conference on Software Engineering, April 1998, Kyoto, Japan.
[32]
N. Roodyn and W. Emmerich. An Architectural Style for Multiple Real-Time Data Feeds. In Proceedings of the 21st Interna-tional Conference on Software Engineering, Los Angeles, CA, May 1999.
[33]
D. S. Rosenblum and A. L. Wolf, A Design Framework for Internet-Scale Event Observation and Notification. In Proceedings of the Sixth European Software Engineering Conference, Zurich, Switzerland, September 1997.
[34]
R. Sessions. COM and DCOM: Microsoft's Vision for Distributed Objects. John Wiley & Sons, Inc., NY, 1997.
[35]
M. Shaw. Procedure Calls are the Assembly Language of Software Interconnections: Connectors Deserve First-Class Status. Workshop on Studies of Software Design, 1993.
[36]
M. Shaw, R. DeLine, D. V. Klein, T. L. Ross, D. M. Young and G. Zelesnik. Abstractions for Software Architecture and Tools to Support Them. IEEE Transactions on Software Engineering, April 1995.
[37]
M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, 1996.
[38]
Sun Microsystems, Inc. Java 2 Enterprise Edition Specification v1.2. http://java.sun.com/j2ee
[39]
R. N. Taylor, N. Medvidovic, K. M. Anderson, E. J. Whitehead, J. E. Robbins, K. A. Nies, P. Oreizy and D. L. Dubrow. A Component- and Message-Based Architectural Style for GUI Software. IEEE Transaction on Software Engineering, 22(6), 1996.
[40]
D. M. Yellin and R. E. Strom. Interfaces, Protocols, and the Semi-Automatic Construction of Software Adaptors. In Proceedings of OOPSLA'94, Portland, OR, USA, October 1994.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '00: Proceedings of the 22nd international conference on Software engineering
June 2000
843 pages
ISBN:1581132069
DOI:10.1145/337180
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 June 2000

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. classification
  2. software architecture
  3. software connector
  4. taxonomy

Qualifiers

  • Article

Conference

ICSE00
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)134
  • Downloads (Last 6 weeks)13
Reflects downloads up to 03 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media