130 likes | 139 Views
Java phoneME CDC AMS. July, 15, 2008. by Wooram Noh. Outline. CDC ASM Java phoneme CDC build tutorial Application Management System PBP Presentation Mode (Personal Basis Profile only). CDC ASM. CDC AMS – Concurrently launch and manage multiple application The Goal of CDC AMS
E N D
Java phoneME CDC AMS July, 15, 2008 by Wooram Noh
Outline • CDC ASM • Java phoneme CDC build tutorial • Application Management System • PBP Presentation Mode (Personal Basis Profile only)
CDC ASM • CDC AMS – Concurrently launch and manage multiple application • The Goal of CDC AMS • Robustness • Scalability • AMS system should provide quick luanching • AMS be minimized • Full native integration • Full compatibility with existing applications • Transparency
CDC ASM • Early time uses Monolithic main()-based application • After java runtime environment to launch, run, and manage several application at once • CDC include xlet-managed application model • Thread-based concurrency and namespace-based isolation can still • interfere with each other in subtle ways • Not fully isolated • Namespace-based isolation provides security without rubustness • New Requirments • Classloader-based isolation works for well behind applications • Cannot provide robustness • Robustness needed different vendors and built for different purposes.
Build Tutorial • CDC Build system set of Makefiles, scripts, tools • CDC VM 1.1.1 • Foundation Profile 1.1 (JSR 219) • Personal Basis Profile 1.1 (JSR 217) • Personal Profile 1.1 (JSR 216 ) • CDC AMS (Application Management System) • Available X-NIX build tools to compile java, C, asm codes • Generate an executable image for a specific target platform • Install Linux build tool packages for PBP, PP
About phoneME Advanced MR1 • Q: What is phoneME Advanced MR1 software? • A: Build around JavaME CDC and incorporates implementations of a variety of key wireless industry standard. • Q: What more does phoneME advanced software offer? • A: CDC architecture is well suited to high-level OS features. Providing enhanced compatibility • Q: What are the supported hardware platform? • A: Supports deployment on ARM, MIPS and x86-linux devices
Install Guide • Simple Example Building • at /user/phoneme-advanced-mr1/build/linux-x86-generic/ • make • Test the Executable • bin/cvm –cp testclasses.zip HelloWorld • Building Personal Basis Profile • Before start need Qt3 • Makefile option • J2ME_CLASSLIB=basis • QT_TARGET_DIR=/usr/local/qt/lib • X11_LIB_DIR=/usr/X11R6/lib • J2ME_PLATFORM=appmanager • Do! Make
Install Guide • Install Guide Qt3 • Unzip source file to /usr/local/qt • Setting .bash_profile • QTDIR=/root/qt/qtx-3.3.5PATH=$QTDIR/bin:$PATHMANPATH=$QTDIR/doc/man:$MANPATHLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHexport QTDIR PATH MANPATH LD_LIBRARY_PATH • ./configure when ask for license type “yes” • Make • When Errors • g++ doesn't exist • Install g++ • About Freetype.h error • #ln –s /usr/include/freetype2/freetype /usr/include/freetype
Launching CDC AMS • 3 stage procedure • 1st Stage: mtask server JVM instance through conventional JVM launch mechanism loading and excuting from cvm ROM emage • Mtask server JVM instance remain in memory • Wating for mtask commands • 2nd Stage: cvmc driver util send an mtask command to clone itself the server jvm instance into a client JVM instance • Server JVM instance – respond to mtask command • Client JVM instance – encapsulates the AMS implementation mtask server JVM instance cvm ROM image mtask server JVM instance mtask client JVM instance cvmc Driver utility clone
Launching CDC AMS • 3rd Stage: CDC AMS can create more mtask JVM instance for encapsulating individual applications • AMS sends an mtask command to the server JVM instance clone it self. • AMS also send an mtask command to a client JVM instance to kill its process and end application’s lifecyle. AppManager JVM instance mtask server JVM instance Application JVM instance
Launching CDC AMS • Executing Shell script (Cobalt Qube) • # launch the mtask server $CDCAMS/bin/cvm \ -Xbootclasspath/a:$AMSCLIENTJAR \ -Xserver:port=7788,initClasses=$CLASSLIST,precompileMethods=$METHODLIST \ > $SERVERLOG 2>&1 & • # wait for the mtask server to finish launching before cloning it sleep 5 • # use the cvmc driver utility to launch the CDC AMS implementation in a client JVM instance $CDCAMS/bin/cvmc \ -host 127.0.0.1 \ -port 7788 \ -command JDETACH \ -Xbootclasspath/a:$AMSMANAGERJAR:$PMODEJAR \ -Dcdcams.presentation=$PMODECLASS \ $AMSCLASS \ -port 7788 \ -server 127.0.0.1 > $MANAGERLOG 2>&1
Launching CDC AMS • PBP Presentation Mode • Simple button base user interface • Purpose of CDC AMS is to allow multiple application to run concurrently • These application share memory and CPU resource • But, only single can be in the foreground and control GUI panel • If you want to interact with another, you must switch the foreground application Launching CDC AMS
Future Plan…. • Class structure • Scour code • Demo program