Information Technology Reference
In-Depth Information
The programs in Program 4.1 for JavaMop and polyLarva, show simplified ex-
cerpts of the specification scripts used to generate runtime monitors for JavaMop and
polyLarva. The most relevant feature of these scripts is the definition of noteworthy
system events, such as
, which one must necessarily hook onto, to monitor
the required property. Our previous explanation of the SMock specification language
has highlighted how these system events are created through the definition of named
actions. Both RV tools use AspectJ 4 technology to convert the event specifications to
aspect code that can identify the occurrence of these events on the system. The resul-
tant code is woven into the mock system's code to provide runtime monitoring of its
execution.
and
Program 4.1 JavaMop and polyLarva specifications
JavaMOP:
SavedDoc(Document d) {
event open after(Document d):call(* Document.open(..)) && target(d) {}
...
ere: (open save* edit edit* close)
}
polyLarva:
upon { newDocument(doc) } {
events {
open(doc) = {doc.open();}
... }
rules { ... }
}
The aim of this case study was not to carry out comparison between the runtime
monitoring tools; but rather its purpose is that of highlighting the type of analysis that
can be carried out using a mock system generated by SMock. In particular we wanted
to note the e
ect of runtime monitoring on the system's performance when it is under
considerable load. Changes to the specification a
ff
ff
ecting the choice settings result in
di
ering loads. We generated systems where only
10% of the users are carrying out document editing tasks and then increased this to
50% and 100% for the following executions. Since the property triggers only when a
document is manipulated, this a
ff
erent executions which model di
ff
ects the overheads induced by the runtime monitors.
The analysis uses the profiling information from the runs of the generated document
management system. For each configuration, the mock system was executed multiple
times in the following setups: ( i ) without any code instrumentation; ( ii ) using JavaMop;
and ( iii ) using polyLarva. Replaying was used to ensure comparison between identical
executions.
The table below compares performance of the system execution and demonstrates
how profiling data extracted by SMock can give a good indication of the e
ff
ff
ect that
di
ff
ering system loads can have on the overall system performance and execution time.
4 http://www.eclipse.org/aspectj/
 
Search WWH ::




Custom Search