portable runtime verification with smartphones and optical codes
DESCRIPTION
We describe a prototype architecture for the runtime monitoring of Java programs using a smartphone. An online tool can produce an AspectJ file which, when woven with the program to be monitored and executed, instantiates a GUI window where XML events from the program's execution are output in the form of QR codes. A smartphone application, using the device's embedded camera, captures these codes and converts them back into events that are then fed to an onboard runtime monitor. We illustrate the feasibility of this approach by monitoring runtime properties on the execution of a video game by pointing a handheld Android phone at the game's screen and obtaining realtime feedback.TRANSCRIPT
Kim Lavoie, Corentin Leplongeon, Simon Varvaressos, Sébastien Gaboury, Sylvain Hallé
Portable Runtime Verification with Smartphones and Optical Codes
Fonds de recherchesur la natureet les technologies
CRSNGNSERC
instruction;instruction;instruction;
instruction;instruction;
Program
Monitor
instruction;instruction;instruction;
instruction;instruction;
Program
Monitor
instruction;instruction;instruction;
instruction;instruction;
Program
Monitor
X
instruction;instruction;instruction;
instruction;instruction;
Program
Monitor
X
instruction;instruction;instruction;
instruction;instruction;
Program
Monitor
X
vs.
instruction;instruction;instruction;
instruction;instruction;
Program Monitor
instruction;instruction;instruction;
instruction;instruction;
Program Monitor
instruction;instruction;instruction;
instruction;instruction;
Program Monitor
?
instruction;instruction;instruction;
instruction;instruction;
Program Monitor
Nintendo's R.O.B.
PROTOTYPESvoid Mario.jump(int height);
<event> <method>jump</method> <x> {this.getX();} </x> <y> {this.getY();} </y> <height> {height} </height></event>
<event> <method> jump </method> <x>3</x> <y>109</y> <height> 221 </height></event>
<event> <method> haveShell </method></event>
<event> <method> crouch </method> <x>201</x> <y>56</y></event>
. . .
. . .
Code size (bytes)
Deco
din
g r
ate
Decoding time
0.1 sec./frameMonitoring time
0.005 sec./event