The PMO is a NetSpec test daemon designed to support CORBA based performance experiments. The PMO enables a NetSpec script to specify the creation of CORBA objects, their execution time behavior, and the relations that hold among the objects. The PMO control layer parses the instructions from the NetSpec controller specifying its role within an experiment. These objects can exhibit a variety of behaviors, and are capable of exchanging a wide range of CORBA data with each other.
The PMO provides all the basic abilities required to conduct CORBA based evaluation experiments, but experience has shown that it is not always the best way. The reason for this is that NetSpec's method of ensuring user extendibility and portability also ensures that NetSpec scripts are very long. The best analogy is to consider the NetSpec scripting language an architecture independent assembly language. It is thus possible to describe any desired experiment, but sometimes tedious. The PMO level is appropriate for describing basic CORBA component tests, but can be unwieldy when used for application level object interaction scenarios. The PPL addresses this problem, and is discussed in Section 3.4
The PMO NetSpec script language describes an experiment in terms of sets of daemons. Each daemon specification provides a complete list of parameter-value pairs describing that daemons role in the experiment. Groups of daemons are created and executed by the NetSpec controller either in serial or in parallel. These simple constructs make it possible to describe a wide range of sophisticated application level behaviors. Additional constructs make it possible to have sets of distributed subordinate controller daemons for large scale distributed experiments. The details of the NetSpec syntax are described elsewhere [12,16], but the examples described in Section 4 should provide a clear idea of how the system works.