SoftArch/MTE: Generating Distributed System Test-Beds from High-Level Software Architecture Descriptions

Most distributed system specifications have performance benchmark requirements, for example the number of particular kinds of transactions per second required to be supported by the system. However, determining the likely eventual performance of complex distributed system architectures during their development is very challenging. We describe SoftArch/MTE, a software tool that allows software architects to sketch an outline of their proposed system architecture at a high level of abstraction. These descriptions include client requests, servers, server objects and object services, database servers and tables, and particular choices of middleware and database technologies. A fully-working implementation of this system is then automatically generated from this high-level architectural description. This implementation is deployed on multiple client and server machines and performance tests are then automatically run for this generated code. Performance test results are recorded, sent back to the SoftArch/MTE environment and are then displayed to the architect using graphs or by annotating the original high-level architectural diagrams. Architects may change performance parameters and architecture characteristics, comparing multiple test run results to determine the most suitable abstractions to refine to detailed designs for actual system implementation. Further tests may be run on refined architecture descriptions at any stage during system development. We demonstrate the utility of our approach and prototype tool, and the accuracy of our generated performance test-beds, for validating architectural choices during early system development.

[1]  Rick Kazman Tool support for architecture analysis and design , 1996, ISAW '96.

[2]  M.P.J. Stevens,et al.  Specification and analysis , 1996 .

[3]  Anna Liu,et al.  Directions in Engineering Non-Functional Requirement Compliant Middleware Applications , 2000 .

[4]  John C. Grundytand,et al.  ViTABaL: A Visual Language Supporting Design by Tool Abstraction , 1995 .

[5]  Lei Hu,et al.  A performance prototyping approach to designing concurrent software architectures , 1997, Proceedings of PDSE '97: 2nd International Workshop on Software Engineering for Parallel and Distributed Systems.

[6]  Alexander L. Wolf,et al.  Software architecture , 2001 .

[7]  Jason E. Robbins,et al.  Extending Design Environments to Software Architecture Design , 2004, Automated Software Engineering.

[8]  Benjamin J. Shannon,et al.  Java 2 platform enterprise edition specification , 2001 .

[9]  Vaidy S. Sunderam,et al.  PVaniM: a tool for visualization in network computing environments , 1998, Concurr. Pract. Exp..

[10]  Matjaz B. Juric,et al.  Java 2 distributed object middleware performance analysis and optimization , 2000, SIGP.

[11]  David Jackson,et al.  Visualising complex control flow , 1998, Proceedings. 1998 IEEE Symposium on Visual Languages (Cat. No.98TB100254).

[12]  John C. Grundy,et al.  Generation of distributed system test-beds from high-level software architecture descriptions , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[13]  John C. Grundy,et al.  Architecture for a Component-Based, Plug-In Micro-payment System , 2003, APWeb.

[14]  Philippe Kruchten,et al.  Rose/Architect: a tool to visualize architecture , 1999, Proceedings of the 32nd Annual Hawaii International Conference on Systems Sciences. 1999. HICSS-32. Abstracts and CD-ROM of Full Papers.

[15]  Yong Rae Kwon,et al.  Framework for third party testing of component software , 2001, Proceedings Eighth Asia-Pacific Software Engineering Conference.

[16]  Douglas Niehaus,et al.  Performance Patterns: Automated Scenario-Based ORB Performance Evaluation , 1999, COOTS.

[17]  Flavio Oquendo,et al.  Software Architecture , 2004, Lecture Notes in Computer Science.

[18]  James Noble,et al.  Visualizing Implicit Structure in Java Object Graphs , 1999 .

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

[20]  C. Murray Woodside,et al.  Software resource architecture and performance evaluation of software architectures , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

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

[22]  Peyman Oreizy,et al.  xADL: enabling architecture-centric tool integration with XML , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

[23]  Carlos Juiz,et al.  Performance modelling of pools in soft real-time design architectures , 2002, Simul. Pract. Theory.

[24]  Julie A. McCann,et al.  Tool to evaluate performance in distributed heterogeneous processing , 1998, Proceedings of the Sixth Euromicro Workshop on Parallel and Distributed Processing - PDP '98 -.

[25]  John C. Grundy,et al.  High-level static and dynamic visualisation of software architectures , 2000, Proceeding 2000 IEEE International Symposium on Visual Languages.

[26]  John C. Grundy,et al.  Constructing component-based software engineering environments: issues and experiences , 2000, Inf. Softw. Technol..

[27]  Mei-Hwa Chen,et al.  Software architecture analysis-a case study , 1999, Proceedings. Twenty-Third Annual International Computer Software and Applications Conference (Cat. No.99CB37032).

[28]  Shikharesh Majumdar,et al.  Using analytic models predicting middleware performance , 2000, WOSP '00.

[29]  Simonetta Balsamo,et al.  Combining stochastic process algebras and queueing networks for software architecture analysis , 2002, WOSP '02.

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

[31]  A. Liu Dynamic distributed software architecture design with PARSE-DAT , 2000, Proceedings International Conference on Software Methods and Tools. SMT 2000.

[32]  A. Jefferson Offutt,et al.  Generating test cases for XML-based Web component interactions using mutation analysis , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[33]  Ian Gorton,et al.  Evaluating Enterprise Java Bean Technology , 2000 .