System and mechanism to perform Just-In-Time Cloud based compilation of applications for a particular device identified by a device hardware profile.
Publication Date: 2015-Sep-30
The IP.com Prior Art Database
Page 01 of 4
System and mechanism to perform Just -In-Time Cloud based compilation of applications for a particular device identified by a device hardware profile .
Computing devices in general and mobile devices in particular are regularly running all sorts of script engines, interpreted programs and just-in-time compiled programs. These programs usually come as a bundle of binaries, media, scripts, markup and/or intermediate level machine agnostic computer instructions (usually referred to regular code in case of languages like C/C++, as byte-code for Java or intermediate language for .NET or simple scrip such as python, perl, php, ruby, java script or likes there off) these programs then run through a final compilation phase on the device that outputs binary code that is machine executable on the hardware or run inside a VM on the underlying hardware.
These compilers/interpreters/script engines are usually baked in to the platform such as Windows, Android and iOS, Linux and Mac. Usually they are updated far less frequently than the programs themselves. Programs are updated through a direct action from the App Store, where as these platform components usually get updated only after a firmware upgrade from the OEM.
This article intends to remove the Script Engine/JIT Compilers/Interpreters out of the device and into a cloud where each device is identified based on its unique hardware configuration. The device acquires a small piece of software that ships bits of the script/Byte code/partially compiled code lined up for execution to the cloud where it gets compiled into binary for that particular device profile using latest libs and updates to compiler features. The final binary tuned for the device is then downloaded on the device and executed.
The binary is also mapped to the section of Script/Byte Code/Partially compiled code in the application itself until the next time it needs to be executed and an an update is not required from the cloud or if the device is offline. Even software that is distributed as machine dependant binary could greatly benefit form this is by moving to a compressed signed and encrypted code distribution mechanism, so that applications built form C/C++ could also be distributed as compressed, encrypted and signed C/C++ code. This code could then be sent to the cloud for JIT compilation and the binary downloaded and run. updates to the C/C++ compiler, and could be immediately realised through this mechanism.
This tries to solve 2 problems:
1. Since the Interpreters/Script Engines/(JIT) Compilers are updated less frequently they pose a security risk, a bad interpretation or a compiler bug could potentially expose the user of the device to a threat until the OEM puts out a patch for the device and then until the user applies the patch. The proposed mechanism provides an update almost as soon as the fix is available.
2. This mechanism will also save space on durable storage since the Interpreters/Script Engines/(JIT) co...