I do this work with colleagues and students in the Real-time And Distributed Systems Lab (RADS Lab).
My research is based on combining three views of a computer system:
paths (or scenarios), maps (or the plan of the structure
of the software and hardware) and resources (engines that make the
system go or make it wait, including processors, disks, networks, process
threads, locks, mutexes...). This is described in the 93 paper in IEEE
TSE.
Architecture, and particularly the organization and interactions of concurrent processes, affects performance and scalability of applications. It is the resource architecture, underlying the software architecture, which is important. There are recurring patterns in resource architectures, which can be studied to give insight into the performance and scalability of wide families of systems.
I use layered queueing models to analyze these patterns. LQNs combine map and resource views, and show the system architecture with the resource architecture embedded in it. The models have been generalized well beyond the original ideas of strictly layered servers, to encompass most software systems.
I use activity graphs as a path model (Petri Nets and Stochastic Process
Algebras are other possibilities), and I also use Use Case Maps as a path+map
model to show how scenario responsibilities are mapped into components.
Developers are not usually at home with methods for building or solving models. The goal of this research is to recast the model-building process.
One achievement has been to build models from traces executed by CASE tool representations of a new design.
A current concern is with developing performance budgets for components
of a system, from the requirements and architecture.
A large ensemble of approximations for layered systems with blocking and non-blocking communications between servers, with parallel paths in some servers, and with other features common in modern software, has been assembled in the "Layered Queueing Network Solver", LQNS, which is available to researchers to try out on Solaris, HP, and Linux platforms. An NT version is planned soon. Download.
Other interests include the reliability modelling of layered systems,