All the flavours of Larva

Basic Larva

LARVA logo

hammer metaphor

This is your most basic hammer... if you have a standard nail for standard wood, this is the hammer to choose!
LARVA is a runtime verification platform for runtime verification of critical systems. A language was specifically designed to allow a user to specify the security properties of a JAVA software system. Once these are specified in a text file, the compiler generates the necessary code in JAVA and AspectJ which verifies that the properties in the script are being adhered to during the execution of the system. The advantage of taking this approach is that the monitoring is done without changing any code in the system being monitored.



larvaBIG/asyncLarva

LARVA logo LARVA logo

hammer metaphor

This is a sturdy hammer... if you have big nails or hard wood, this is the hammer to choose!
Larva monitoring relies heavily on main memory. For large systems Larva is a non-starter. For industrial systems we have larvaBIG which extracts system events using aspect-oriented programming as in Larva but stores monitors in database tables. Its sister tool is asyncLarva which interfaces with a log database to obtain system events rather than aspect-oriented programming. AsyncLarva is thus particularly useful for non-intrusive monitoring.



LarvaSTAT

LARVA logo

hammer metaphor

This is a hammer whose handle intended for your comfort... for nailing a lot of nails, this is the hammer to choose!
LarvaStat is an extension to the LARVA runtime verification tool and logic with statistical capabilities. The logic is concise and intuitive, yet sufficiently expressive to express a wide variety of statistics including those with real-time aspects. Examples of typical statistics which one can gather with LarvaSTAT are "How many logins occurred in the last 24 hours", "How many downloads took place from login till logout", "How many mouse clicks take place on average during the first minute of visiting a webpage".



ELarva

LARVA logo LARVA logo

hammer metaphor

This is also a basic hammer... but it simply has a different style!
The Larva monitoring tool has been successfully applied to a number of industrial Java systems, providing extra assurance of behaviour correctness. Given the increased interest in concurrent programming, we propose Elarva, an adaptation of Larva for monitoring programs written in Erlang, an established industry-strength concurrent language. Object-oriented Larva constructs have been translated to process-oriented setting, and the synchronous Larva monitoring semantics was altered to an asynchronous interpretation.



cLarva

LARVA logo

hammer metaphor

This is a sturdy hammer which allows you not only to hammer nails but also to pull them out... if you have some tough work ahead, this is the hammer to choose!
cLarva is a monitoring architecture which monitors systems asynchronously but allows a degree of synchrony. In cLarva, control is continually under the jurisdiction of the system - never of the monitor. Thus the system does not wait for the monitor verdict on each step and by the time a problem is detected it is usually to late to take corrective actions. However, the system exposes two interfaces to the monitor: (i) an interface for the monitor to communicate the fact that a problem has been detected and the system should stop; and (ii) an interface for the monitor to indicate which actions should be compensated, i.e. undone. Using compensations, the system can be reversed to the point when the monitor-detected problem occurred.



Contact details
Gordon J. Pace
Department of Computer Science,
Faculty of ICT,
University of Malta,
Msida MSD2080,
MALTA

Tel: (+356) 2340 2504
Fax: (+356) 2132 0539
E-mail: Gordon.Pace@um.edu.mt
Christian Colombo
Department of Computer Science,
Faculty of ICT,
University of Malta,
Msida MSD2080,
MALTA

Tel: (+356) 2340 2640
E-mail: christian.colombo@um.edu.mt