130 likes | 149 Views
Learn how to leverage CDC AMS for robust and scalable Java applications. Explore CDC ASM, PBP Presentation Mode, and launching multi-applications concurrently. Enhance compatibility and security with 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