A system for executing a software application comprising a plurality of
hardware independent bytecodes is provided comprising a computing system
that generates bytecodes, a virtual machine, remote to the computing
system, that receives a plurality of bytecodes from said computing system,
and executes said plurality of bytecodes, a system for testing said
bytecodes against a set of predetermined criteria in which the testing is
securely distributed between said virtual machine and said computing
system so that the bytecode verification completed by the computing system
is authenticated by the virtual machine prior to the execution of the
bytecodes by said virtual machine. A method for distributed bytecode
verification is also provided.