Current Research... Murray Woodside

My research is examining the connection between software design and the performance of the product. Its goals are to make it easier (and quicker) to develop fast software, and to understand the principles of well-structured high-performance scalable software.

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.
 

  • Software architecture and performance in distributed systems
  • 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.
     

  • Performance methods for developers
  • 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.
     

  • Layered queueing approximations
  • 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,