Java and BREW
Java-based applications require custom JVMs written for each device to handle system-level functions such as access to the SMS messaging layer. In addition, every network operator defines its own specification for Java implementation, requiring custom builds for each device. BREW helps to abstract all of this because of its standardized interface. Anyone can write a VM on the BREW platform as an extension, and it becomes available on all BREW devices. For example, IBM introduced a single JVM as a BREW extension. Java developers can take advantage of this JVM to write Java applications once and run them on all BREW-enabled devices with a sufficient memory footprint, regardless of the device manufacturer.
When a developer develops and wants to deploy a J2ME-based application on a BREW phone, he or she submits the application in the same way as any other BREW application. A part of the application descriptor defines its dependency on the JVM. The BREW execution environment is smart enough to download the JVM at runtime to configure the J2ME application properly. The BREW platform is standardized, so porting applications from one device to another is simplified. With its inherent application distribution model, BREW makes getting Java applications onto handsets much easier. It also enables upgrading and recalling JVMs over the air.