alcheMo is composed of two key components: The alcheMo Java to target language translator and the alcheMo run-time library. To cover the diverse target platforms supported by alcheMo product family, Innaworks has multiple alcheMo translators each engineered to generate a different target language.
Note: The above diagram illustrates the alcheMo for BREW workflow. Other target platforms are equivalent.
The alcheMo translator algorithmically converts the Java ME application source code to application source code in the language of the target platform. After the application is translated from Java ME to the target platform language, it can be compiled and debugged using the standard native platform tool chain. When the compiled object files are linked with the alcheMo run-time library, a native executable (for handsets or emulators) is produced. This automatic translation process is instantaneous, repeatable, and available 24/7 without requiring any native platform specific experience.
The alcheMo patent pending translator is based on compiler and translator technologies researched and developed at Innaworks. The alcheMo translator is not a pre-processor. Instead it first creates a full model of the application and then generates equivalent but highly optimized target source code through applying advanced whole program optimizations. alcheMo translator takes care of the syntactic and semantic differences between the Java and a target language, including Java language features that are often unavailable in a target language, such as multi-threading, automatic memory management, nested classes and interfaces. No further manual adjustments to the translated source code are required.
The alcheMo run-time library is a highly optimized library providing equivalent functionality to those associated with Java ME, including support for multi-threading and CLDC 1.1 and MIDP 2.0, and extension JSRs subsets. On target platforms without a native garbage collector, alcheMo run-time library incorporates a garbage collector optimized for the target platform.
alcheMo is provided as a software-as-a-service (SaaS). The primary interface is a command-line Java-based remote access client designed to integrate easily with ant, make, or any scripting language. The remote access client is compatible with any Java SE 6 or above environment.
alcheMo is specifically designed to integrate transparently with most Java ME porting solutions to leverage their abilities to produce customized versions for different device capabilities. With alcheMo a BREW, Android, iPhone, Windows Mobile or Flash device can be treated mostly like just another Java device. It is typically a simple matter of configuring a device profile for the Java ME porting solution to recognize the BREW, iPhone or Windows Mobile device.