Design and performance modeling of component interconnection patterns for distributed software architectures

The ability to estimate the future performance of a large and complex distributed software system at design time, and iteratively refine these estimates at development time, can significantly reduce overall software cost and risk. This paper investigates component interconnection in client/server systems, in particular the design and performance modeling of component interconnection patterns, which define and encapsulate the way client and server components communicate with each other. We start with UML design models of the component interconnection patterns. These designs are performance annotated using an XML-type notation. The performance-annotated UML design model is mapped to a performance model, which allows us to analyze the performance of the software architecture executing on various system configurations.

[1]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[2]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[3]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[4]  Daniel A. Menascé,et al.  A Method for Design and Performance Modeling of Client/Server Systems , 2000, IEEE Trans. Software Eng..

[5]  Virgílio A. F. Almeida,et al.  Performance of Client/Server Systems , 2000, Performance Evaluation.

[6]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[7]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[8]  Virgílio A. F. Almeida,et al.  Two-Level Performance Models of Client/Server Systems , 1994, Int. CMG Conference.

[9]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[10]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[11]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

[12]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[13]  Mark Klein,et al.  Experience with performing architecture tradeoff analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[14]  Nenad Medvidovic,et al.  Integrating architecture description languages with a standard design method , 1998, Proceedings of the 20th International Conference on Software Engineering.

[15]  Hassan Gomaa,et al.  Use cases for distributed real-time software architectures , 1997, Proceedings of 5th International Workshop on Parallel and Distributed Real-Time Systems and 3rd Workshop on Object-Oriented Real-Time Systems.

[16]  Naranker Dulay,et al.  A constructive development environment for parallel and distributed programs , 1994, Proceedings of 2nd International Workshop on Configurable Distributed Systems.

[17]  Gregory D. Abowd,et al.  Using style to understand descriptions of software architecture , 1993, SIGSOFT '93.

[18]  Naranker Dulay,et al.  Regis: a constructive development environment for distributed programs , 1994, Distributed Syst. Eng..

[19]  Bran Selic,et al.  Real-time object-oriented modeling , 1994, Wiley professional computing.

[20]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[21]  Richard N. Taylor,et al.  Using off-the-shelf middleware to implement connectors in distributed software architectures , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[22]  Dan Harkey,et al.  The Essential Distributed Objects Survival Guide , 1995 .

[23]  Dan Harkey,et al.  Essential client/server survival guide , 1994 .

[24]  강문설 [서평]「The Unified Modeling Language User Guide」 , 1999 .

[25]  Daniel A. Menascé,et al.  On a language based method for software performance engineering of client/server systems , 1998, WOSP '98.

[26]  Jeff Magee,et al.  Concurrency - state models and Java programs , 2006 .

[27]  Larry Kerschberg,et al.  A performance oriented design methodology for large-scale distributed data intensive information systems , 1995, Proceedings of First IEEE International Conference on Engineering of Complex Computer Systems. ICECCS'95.

[28]  Dan Harkey,et al.  The Essential Client/Server Survival Guide, 2nd Edition , 1996 .

[29]  Paul Clements,et al.  Software Architecture in Practice: Addison-Wesley , 1998 .

[30]  Larry Kerschberg,et al.  A software architectural design method for large-scale distributed information systems , 1996, Distributed Syst. Eng..

[31]  Daniel A. Menascé,et al.  A Framework for Software Performance Engineering of Client/Server Systems , 1997, Int. CMG Conference.

[32]  Virgílio A. F. Almeida,et al.  Capacity Planning and Performance Modeling: From Mainframes to Client-Server Systems , 1994 .