[ABBL95]
D. Amyot, F. Bordeleau, R.J.A. Buhr, and L. Logrippo. Formal support for design techniques: A Timethreads-LOTOS approach. In Proc. of 8th Intl. Conf. on Formal Description Techniques for Distributed Sustems and Communications Protocols (FORTE95), pages 40-56, October 1995.

[BC95]
R.J.A. Buhr and R.S. Casselman. High-Level Design of Object-Oriented and Real-Time Systems: A Unified Approach with Use Case Maps. Prentice Hall, 1995.

[BFH+94]
M.A. Bauer, P.J. Finnigan, J.W. Hong, J.A. Rolia, T.J. Teorey, and G.A. Winters. Reference architecture for distributed systems management. IBM Systems Journal, 33(3):426-444, 1994.

[BKHW89]
R.J.A. Buhr, G.M. Karam, C.J. Hayes, and C.M. Woodside. Software CAD: A revolutionary approach. Trans. on Software Engineering, 15(3):235-249, March 1989.

[BL94]
F. Bordeleau and M. Locas. Timethread-centered design process, a study on transformation techniques and a telephone system case study. Report SCE-94-18, Dept. of Systems and Computer Engineering, Carleton University, July 1994.

[Buh90]
R.J.A. Buhr. Practical Visual Techniques in System Design. Prentice Hall, 1990.

[FHM+95]
Greg Franks, Alex Hubbard, Shikharesh Majumdar, Dorina Petriu, Jerome Rolia, and Murray Woodside. A toolset for performance engineering and software design of client-server systems. Performance Evaluation, 24(1-2):117-135, November 1995. Also as technical report SCE-94-14, June 1994. (PostScript)

[Hri94]
C.E. Hrischuk. The automatic generation of software performance models from a prototype. Master's thesis, Carleton University, Ottawa, Canada K1S 5B6, December 1994. (PostScript)
Early performance estimates for a new software system aid the design process by providing feedback when design decisions can be easily revised. Unfortunately, constructing a performance model of a distributed and concurrent software system can require significant effort. An automated performance model generation technique is described that reduces the model building effort by providing: easy specification of performance experiments, empirical estimates for model parameters, automated model generation, and support for different types of models. A prototype is used to describe a software system, from which causal traces (angio traces) are recorded during execution. These traces are then processed into sequences of resource demands (workthreads), aggregated into system execution descriptions (workthread classes), and combined to generate a performance model. The technique can also be applied at other stages of the development process, including the redesign of existing software.

[HRS95]
G. Hills, J.A. Rolia, and G. Serazzi. Performance engineering of distributed software process architectures. In Proc. of the Performance Tools/MMB 1995, Germany, September 1995.

[HRW95]
C. Hrischuk, J.A. Rolia, and C.M. Woodside. Automatic generation of a software performance model using an object-oriented prototype. In Proc. of Third Int. Workshop on Modeling, Analysis and Simulation of Computer and Telecommunication Systems (MASCOTS '95), pages 399-409, Durham, NC, January 1995. (PostScript)
Early performance estimates for a new software system aid the design process by providing feedback when design decisions can be easily revised. Unfortunately, constructing a performance model of a distributed and concurrent software system can require significant effort. We propose an approach that reduces the model building effort by providing easy specification of performance test cases, empirical estimates for model parameters, automated model generation, and support for different types of models. A prototype is used to describe an object- based system, for which causal traces (angio traces) are recorded during execution. The traces are then processed into sequences of resource demands (workthreads), aggregated into system execution descriptions (workthread classes), and combined to generate performance models. The technique can also be applied at other stages of the development process, including the redesign of existing software.

[HW96]
C. E. Hrischuk and C.M. Woodside. Proper time: Causal and temporal relations of a distributed system. Technical Report SCE-96-04, Systems and Computer Engineering, Carleton University, March 1996. Submitted to IEEE Transactions on Parallel and Distributed Systems. (PostScript)
This paper introduces a new logical clock approach for distributed systems that is called proper time. In proper time events are ordered causally using two reasonable assumptions as axioms. The axioms lead to a causal relation between events we term a visibility relation. Informally, the visibility relation identifies if one event was necessary for another event to occur. The visibility relation includes the well-known `happened before' temporal relation. Proper time has two logical clocks to characterize causality: (i) a local logical clock (called a task execution graph) for each concurrent software component and (ii) a system level logical clock (called a distributed response graph or DReG). The DReG is a linear time, non-interleaving model of the execution of concurrent software components. The DReG also includes semantic information about how the software components interact or communicate. The causal information of proper time has been used for automatically constructing predictive performance models of a distributed system.

[HWS95]
A. Hubbard, C.M. Woodside, and C. Schramm. DECALS: Distributed experiment control and logging system. In Proc. of CASCON'95, Meeting of Minds, Toronto, Canada, November 1995. (PostScript)
In developing distributed applications and services, such as DCE, X.500, CORBA, ANSA, or SUN/ONC, there is a need to be able to set up and run tests on certain processes. The tests might be to obtain performance data, to test the processes' behaviour, or to evaluate a management strategy. Common requirements are:
  • to load and run special versions of at least some of the software, often on mulitple nodes of a network,
  • to initialize the software in a well-controlled way, so the tests may be repeatable,
  • to monitor execution and collect results for analysis.

DECALS is a system of a half a dozen or so processes which support the testing of distributed applications consisting of many processes on a network. There may be any number of experiments; in each experiment a set of processes is loaded on specified workstations, and each process is initialized with data for the particular experiment using command line arguments. The configuration of the experiment, and the data state of the processes, can thus be controlled down to any level of detail, as desired. The nerve center of DECALS is an ``experiment controller'' process which communicates with each application process (or ``process under test'', POT) either directly or through an agent which it creates on each workstation.

DECALS provides global control over the running of the experiment and the collection of data. The data is collected both from probes installed in the application's source code, and from instrumented operating system primitives. The present system collects data in the form of a separate list of events for each workstation. Events are timestamped by clock values local to the workstation on which the list was made. The lists of events are adjusted for time, and merged, in a postprocessing step. A mechanism is provided for handling the often troublesome problem of tracking the time differences between workstation clocks.

As an example of the usefulness of DECALS, we will describe a how it can be used to create a synthetic workload of processes on a network, which can simulate a system for experiments on network management.

[JBMW95]
P.P. Jogalekar, G. Boersma, R. MacGillivray, and C.M. Woodside. TINA Architectures and Performance: A Telepresence Case Study. In Proceedings of TINA '95, pages 415-430, Melbourne, Australia, February 1995.
TINA is a distributed computing framework based on Open Distributed Processing which is targeted partly towards management of telecommunications services. This paper is partly a TINA case study and partly an examination of how performance can be addressed during design of a TINA system. The case study part examines a recently developed software suite which manages a telepresence system with video connections, video services and sources, and conference management services. The software was designed without using TINA, but here it is re-interpreted within TINA definitions and concepts. Then a performance assessment framework is described, with the results of performance tests, a model, and an analysis of system scale-up properties based on the model. From the example some lessons are drawn about how performance assessment should be done. Our long-term goal is a method for assessment of performance problems at an early stage in development of distributed software.

[Kar94]
G.M. Karam. Visualization using timelines. In International Symposium on Software Testing and Analysis (ISSTA), Seattle, WA, August 1994.

[Liu95]
Jennifer Liu. Performance analysis of concurrent object-oriented systems. Master's thesis, Carleton University, Ottawa, Canada K1S 5B6, January 1995.

[LM94]
Y.M. Leung and S. Majumdar. The effect of inter-process communication on scheduling in multiprogrammed distributed memory systems. In Parallel Processing -- Proc. of First Int. Workshop on Parallel Processing, pages 474-481, Bangalore, India, December 1994.

[LW95]
Y. Li and C. M. Woodside. Complete decomposition of stochastic Petri Nets representing generalized service networks. In IEEE Trans. on Computers, March 1995.

[ML94]
S. Majumdar and Y.M. Leung. Characterizing applications with i/o for processor scheduling in multiprogrammed parallel systems. In Proc. Sixth IEEE Symposium on Parallel and Distributed Processing, pages 298-307, Dallas, TX, October 1994.

[MR94]
S. Majumdar and R. Ramadoss. Interval-based performance analysis of computing systems. Report SCE-94-22, Dept. of Systems and Computer Engineering, Carleton University, July 1994.

[MR95]
S. Majumdar and R. Ramadoss. Interval-based performance analysis of computing systems. In Proc. of the Third Int. Workshop on Modeling, Analysis and Simulation of Computer and Telecommunication Systems (MASCOTS'95), pages 345-351, Durham, N.C., January 1995.

[MW94]
S. Majumdar and C.M. Woodside. Robust bounds and throughput guarantees for general closed multiclass queueing networks. Report SCE-94-05, Dept. of Systems and Computer Engineering, Carleton University, January 1994.

[PC94]
D.C. Petriu and Songtao Chen. Approximate mva for client-server systems with nonpreemptive priority. Technical Report SCE-94-20, Carleton University, July 1994.

[PC95]
D.C. Petriu and S. Chen. Approximate MVA for client-server systems with nonpreemptive priority. In Proc. of Int. Workshop on Modeling, Analysis and Simulation of Computer and Telecommunication Systems (MASCOTS '95), pages 155-162, January 1995.

[Pet94]
D. C. Petriu. Approximate mean value analysis of client-server systems with multi-class requests. In Proc. of ACM SIGMETRICS'94, Performance Evaluation Review, Vol.22, No.1, pages 77-86, May 1994.

[Ram94]
Revathy Ramadoss. Interval-based performance analysis of computing systems. Master's thesis, Carleton University, Ottawa, Canada K1S 5B6, December 1994.

[RL94]
J.A. Rolia and B. Lin. Consistency issues in distributed application performance metrics. In Proc. of CASCON'94, Toronto, Canada, October 1994.

[Rol88]
J.A. Rolia. Performance estimates for systems with software servers: The lazy boss method. Proceedings VIII SCCC International Conference on Computer Science, pages 25-43, July 1988.

[RS95]
J.A. Rolia and K.C. Sevcik. The method of layers. IEEE Trans. on Software Engineering, 21(8):689-700, August 1995.

[SW94]
C. Schramm and C.M. Woodside. Complex performance measurements with NICE (Notation for Interval Combinations and Events). Software Practice and Experience, 24(12):1121-1144, December 1994. (PostScript)
This paper presents a notation for extracting complex performance measurements of parallel software from an event log. NICE defines a ``complex interval'' as a sequence of events in the event log which match a rather general template using an Interval Monitor Process (IMP). The IMP process model combines an extended FSM with parameterized event descriptors to provide a generalized description of a sequence of subintervals each one of which may be measured for duration An interval matching algorithm provides a strategy for distributing the events in the log to multiple concurrent IMPS, thereby handling interval occurrences which overlap and/or share the same event. Practical issues of implementing and using NICE are addressed in a discussion of our performance monitoring tool called Finale.

[TW94]
Y.H. Thia and C.M. Woodside. A reduced operation protocol engine (ROPE) for a multiple-layer bypass architecture. In Proc. 4th IFIP Workshop on Protocols for High Speed Networks, pages 203-218, August 1994.

[WNHM86]
C.M. Woodside, E. Neron, E.D.S. Ho, and B. Mondoux. An ``active-server'' model for the performance of parallel programs written using rendezvous. J. Systems and Software, pages 125-131, 1986.

[WNPM95]
C.M. Woodside, J.E. Neilson, D.C. Petriu, and S. Majumdar. The stochastic rendezvous network model for performance of synchronous client-server-like distributed software. IEEE Transactions on Computer, 44(1):20-34, January 1995.
Distributed or parallel software with synchronous communication via rendezvous is found in client-server systems and in proposed Open Distributed Systems, in implementation environments such as Ada, V, Remote Procedure Call systems, in Transputer systems, and in specification techniques such as CSP, CCS and LOTOS.

The delays induced by rendezvous can cause serious performance problems, which are not easy to estimate using conventional models which focus on hardware contention, or on a restricted view of the parallelism which ignores implementation constraints. Stochastic Rendezvous Networks are queueing networks of a new type which have been proposed as a modelling framework for these systems. They incorporate the two key phenomena of included service and a second phase of service. This paper extends the model to also incorporate different services or entries associated with each task. Approximations to arrival-instant probabilities are employed with a Mean-Value Analysis framework, to give approximate performance estimates.

The method has been applied to moderately large industrial software systems.