Requirements and Issues of V**s for Mobile Terminals Workshop on the Future of Virtual Execution Environments Armonk, NY, USA 15-17.09.2004 Kari Systä Nokia Research Center 1 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
A short background; what and why Topics About our requirements Role of standards and specifications Role of VEE Execution speed (is more needed?) Memory footprint issues More hardware abstractions User interface issues Security Resource management 2 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
Background At the moment we mostly use Java as VEE Preferred choice for third-party applications if Portability Security are important. Nokia has been active in JCP standardization process A smaller research effort on Phyton for Series60-based smart phones 3 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
Status today Almost all of our phones have MIDP Java in Nokia Next communicator (9500) implements Personal Profile Multimedia Home Platform (MHP) is used some digital TV receivers [ and like in most companies used as programming language for all kind of desktop and server programming] The platform is developing More API s been added Especially for multimedia and graphics Interest to bigger (based on CDC ) is increasing 4 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
Server MIDP Technology Overview J2EE Desktop J2SE Set-top boxes... profiles CDC PDAs... profiles CLDC Mobile phones... MIDP Smart cards J2ME JavaCard Configuration: JVM spec + basic APIsCDC: Connected Device Configuration Profile: extra APIs for vertical segmentcldc: Connected, Limited Device Configurat MIDP: Mobile Information Device Profile 5 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
What next? KVM-based MIDP was developed because it did fit to the target devices Devices are resource constrained especially in available memory Desktop UI APIs are not suitable for small devices In the future devices will have more resources => increased interest to full virtual machine (CDC) More interest in making the development environment more similar to desktop Java The amount of new APIs is increasing rapidly => how to keep existing devices up to date => problems in version management => cannot install all libraries just in case somebody uses We need mechanisms for handling dependencies and managing of the VXE in the device. JSR232 and OSGi MEG are addressing this issue 6 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
7 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials About the requirements
The problems in adding new feature (we all know this, but) Few users Many users Few developers Few tools Many developers Many tools But including a new run-time feature is a big investment Standardization The players of the industry are used to (formal) standards. Devices are different portability should not be based on implementation 8 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
About the role of Java Java is mainly for Portability between devices Portability between manufactures Portability between Java is isolated from rest of the device Makes development easier Improves security It is important to have a virtual execution environment 9 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
Execution speed is more needed? Introduction: fast response is assumed hour-glass is for PC users Slowness of Java is a common pre-assumption, but developers of current applications do really complain about bytecode execution speed. At the moment the issues are rather in Start-up times Graphics speed GC pauses But, I trust that in the future the speed requirements will increase HW or SW (JIT) acceleration? There are different opinions 10 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
Memory footprint issues Although the footprint is expanding, the issues do not fade a way Because of computer inheritance very few technologies are optimized for minimal memory footprint Two different factors Storage & flash usage RAM usage during execution Examples Java classes contain a lot of metadata (only 20% bytecode) Standard Java application packaging contain multiple copies of same data For dynamic compilers it is not only important to find hot-spots but also recognize cooling down 11 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
How virtual - about hardware abstraction Hardware abstraction is not just about instruction set of the CPU Support for different dedicated accelerators is needed A little-bit different issue that support for multi-core cpu s Many people believe on several and specialized execution units What kind of VEE provides a single, simple and efficient virtual execution environment 12 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
Embedded devices are not PCs User interface issues Mobile devices differ in Physical characteristics Users Use context Variations in Screen size and shape Input devices How much we can assume the developer to consider the device diversity What is the virtual UI API? 13 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
Security is an obvious concern Security Always a compromise between security and functionality&flexibility It is good to see progress in technology, but I would also like to see developments on how trust is presented to the users. The questions are asked from the user, but does she/he understand? 14 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
Resource management Today Java is a second-class citizen Most devices run only one Java application at a time The only issue is the allocation of persistence storage (RMS in MIDP) But things will change in the future: If Java applications can do more, they need to coordinate resources with native SW Java applications should be protected from each other 15 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials
16 NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials Questions?