25
APOGEE SOFTWARE INC APOGEE SOFTWARE, INC. APHELION™ APHELION™ J ™ D l t d D l t Java™ Deployment and Development Environments for Devices Based on S Embedded Systems

APOGEE SOFTWARE INCAPOGEE SOFTWARE, INC. - …€¦ ·  · 2009-12-29APOGEE SOFTWARE INCAPOGEE SOFTWARE, INC. APHELION™ J ™ D l t d D l t Java™ Deployment and Development

  • Upload
    ngokhue

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

APOGEE SOFTWARE INCAPOGEE SOFTWARE, INC.

APHELION™APHELION™J ™ D l t d D l t Java™ Deployment and Development Environments for Devices Based on

SEmbedded Systems

Aphelion JREsReliable high performance Java™ Runtime Environments forg p

deploying Java applications on devices based on embedded systems

A h li JDEAphelion JDEComprehensive development environment for creating Java

A li ti t t d t d i i A h li JRE Applications targeted at devices running Aphelion JREs

Features of Aphelion JREseatu es o p e o J s

♦ Aphelion JREs offer the following features not offered in their entirety by JREs f th id i l di S d IBMfrom other providers, including Sun and IBM:

Available in two clearly defined configurations, each of which can be customized for the specific needs of Apogee’s customers:

Mi Editi JRE (ME JRE ) tibl ith S ’ J2ME CDC l tfMicro Edition JREs (ME JREs) compatible with Sun’s J2ME CDC platformStandard Edition JREs (SE JREs) compatible with subsets of Java 5 or (in near future) Java 6 platform requested by Apogee’s customers

Facilitate reliable deployments of Java applications with exceptional runtime Facilitate reliable deployments of Java applications, with exceptional runtime performance, on targeted devices Can be targeted at devices based on x86, PowerPC, ARM, XScale, MIPS, or SH4 embedded processors running various Linuxes or other popular RTOSs / OSsp g p pEach ME or SE JRE is comprised of RTOS/processor ports of:

Base Java technologies licensed by Apogee from IBM, such as the J9 Java Virtual Machine (J9VM), Just-In-Time (JIT) compiler, Foundation Class Library (FCL), etc.Optional customer-requested components

Each ME JRE can be certified as compliant with Sun’s J2ME platform, thus allowing the use of the “steaming coffee cup” logo on devices having the JRE installed on themEach SE JRE accepts the JAR files of Java applications in Java 5 or 6 format and can include the implementations of Java 5 or 6 features relevant to embedded systems

Features of Aphelion JREseatu es o p e o J s

Each ME or SE JRE can be provided in a configuration compliant with the Real-Time Specification for Java (RTSJ) and in near future the Safety Critical Java TechnologySpecification for Java (RTSJ) and, in near future, the Safety Critical Java TechnologyEach ME or SE JRE can be provided in a configuration customized for runtime execution on the multi-core processors:

Its port of J9VM concurrently executes the multiple Java threads of a given Java Its port of J9VM concurrently executes the multiple Java threads of a given Java application on multiple cores of the target processorIts JIT compiler produces native (binary) methods for bytecode methods of multiple Java threads, which are concurrently executed on multiple cores of the target , y p gprocessorThe interpreter loop of the port of J9VM and the code generator of the JIT compiler are adapted to work effectively with the multi-threading support provided by RTOS

Each ME or SE JRE can be provided in a configuration highly suitable for creating, testing, debugging, and performance tuning Java applications by facilitating:

Remote (from a Windows/x86 or Linux/x86 development platform) debugging and profiling of Java applications during runtime execution of their JAR files on the JREprofiling of Java applications during runtime execution of their JAR files on the JRETracing of Java heap allocations, garbage collections, and executions of Java threadsDynamic dumping of Java heap or selected portions of Java heap

Obtained tracing and dumping information can be used to minimize heap allocations and garbage collections, and to reduce the overhead of multi-threading

Features of Aphelion JREseatu es o p e o J s

The port of J9VM in each ME or SE JRE is based on IBM’s J9VM technology enhanced by Apogee in several important areas:enhanced by Apogee in several important areas:

The class loader can more rapidly load the JAR files of large Java applications having many Java classes and/or using many C/C++ written native methodsThe JNI (Java Native Interface) can more rapidly invoke the C/C++ native methods The JNI (Java Native Interface) can more rapidly invoke the C/C++ native methods, and has a “fast path” for rapid passing of arguments to / from such methodsA bytecode verifier can be turned off in each deployment-ready JRE after the JAR files of all Java applications that will be running on the JRE were verified for correctness

The port of JIT compiler in each ME or SE JRE is based on IBM’s JIT compiler technology enhanced by Apogee in several important areas:

The compiler-produced native (binary) methods are in a “direct JNI format”, which allows their rapid invocation and native execution on the underlying target processorallows their rapid invocation and native execution on the underlying target processorThe code generator of each port of JIT compiler is customized to create the most effective native (binary) code for execution on the targeted processor

Each SE JRE can be provided in a “generic” form suitable for deployment on several Each SE JRE can be provided in a generic form suitable for deployment on several types of devices that require distinct subsets of Java 5 or 6 APIs:

The generic JRE includes a port of entire Harmony class library or the largest subset of possibly needed Java APIs from Harmonyp y yThe generic JRE comes with a tool for creating “instantiations” of generic JRE, each of which has a port of a subset of Harmony APIs that is needed for the specific device

Features of Aphelion JREseatu es o p e o J s

Each SE JRE can be provided with implementations of Java 5 or (in near future) Java 6 features relevant to devices based on embedded systems for example:6 features relevant to devices based on embedded systems, for example:

Generics, Concurrent packages, Enhanced “for” loop, Typesafe ENUMS, VarargsAutoboxing/Unboxing, Static import, High-precision timing supportAssertions, Reflection, Serialization, Bit manipulation operations

For deployments requiring small RAM footprints, each ME or SE can be provided in a configuration that can be directly executed from a flash (the XIP execution), as long as:

A given flash has the sufficiently fast access timeA given RTOS supports the XIP execution

Each ME or SE JRE can be provided with IBM’s JLink tool usable for:pAnalyzing the uses of Java classes and methods in JAR file(s) of a given Java application and in JAR files of Java-written components of JRE (the JAR file of FCL, for example)R i h J l h ll d f ll h JAR filRemoving the Java classes that are not actually used from all the JAR filesRemoving the methods that are not actually used from all the remaining classesOptionally, creating a ROMable image that only has the actually used Java classes of th li ti d JRE t d th t i l d th t f J9VM JIT the application and JRE components, and that includes the ports of J9VM, JIT compiler, and all other components of JRE

Technologies and components of Aphelion JREsec o og es a d co po e ts o p e o J s

♦ The base technologies licensed from IBM:Advanced J9 Java Virtual Machine (J9VM) compatible with the latest version of Sun’s J2ME CDC “HotSpot” VMThe state-of-the-art JIT compiler, the best in the industryThe Foundation Class Library (FCL) compatible with the latest version of Sun’s J2ME CDC Foundation Profile (FP)

♦ Each ME or SE JRE has the RTOS/processor ports of the following base ♦ Each ME or SE JRE has the RTOS/processor ports of the following base components:

The J9VM, which also includes, if the JRE is compliant with RTSJ, the implementations of RTSJ features that must be implemented in a Java VMp pThe JIT compiler or, if the JRE is compliant with RTSJ, Apogee’s JAOT (Just-Ahead-Of-Time) compiler based on IBM’s JIT compiler technologyThe RTSJ class library (RTSJCL), if the JRE is compliant with RTSJ e SJ c ass b a y ( SJC ), t e J s co p a t t SJ

♦ Each ME JRE also includes the RTOS/processor port of the entire FCL♦ Each SE JRE also includes the RTOS/processor ports of essential FCL APIs

d d t k th J 5 J 6 tibl t f SE JRE k needed to make the Java 5 or Java 6 compatible components of SE JRE work with the port of J9VM

Technologies and components of Aphelion JREsec o og es a d co po e ts o p e o J s

♦ The optional components the ports of which can be included in each ME JRE:Additional J2ME-compatible Java class libraries (IBM’s Personal Class Library, for example)IBM’s and Apogee’s implementations of Java API packages defined by J2ME Java p g p p g ySpecification Requests (JSRs)Client-side “runtimes” from providers of open-source Java software, IBM, or other Apogee partners, as long as each such runtime only uses the J2ME-compatible APIsApplication-level packages from providers of open-source Java software, IBM, or other Apogee partners, as long as each such package only uses the J2ME-compatible APIs

♦ The optional components the ports of which can be included in each SE JRE:p p pThe Java 5 or (in near future) Java 6 compatible API packages from Apache Harmony class libraryClient-side runtimes from providers of open-source Java software IBM or other Client-side runtimes from providers of open-source Java software, IBM, or other Apogee’s partners, each of which can use any J2SE-compatible APIs available in HarmonyApplication-level packages from providers of open-source Java software, IBM, or other pp p g p p , ,Apogee’s partners, each of which can use any J2SE-compatible APIs available in Harmony

Devices targeted by Aphelion JREsg y p

♦ Aphelion JREs are highly suitable for deploying Java applications on many t f d i b d b dd d ttypes of devices based on embedded systems:

Wireless communication devices (cell phones and other “hand-helds”, telemetric devices, navigational and global positioning systems, etc.)Electronic consumer appliances (smart phones, PDAs, set-top boxes, residential gateways, etc.)Internet devices (routers, residential hubs, distributed servers, etc.)RFID readers, “edge” servers, and premises serversIndustrial devices (sensors, monitors, controllers, gateways, robots , etc.)Devices used in distributed enterprise management systemsDevices used in distributed enterprise management systemsPoint-of-sale terminals and premises controllers of such terminalsTelematics and infotainment devicesSafety and missions critical devices (Apogee’s top RTSJ expert is a member of JSR-302 expert group defining the Safety Critical Java Technology)

After Apogee licensed IBM Java technologies in 2003 it created at least one After Apogee licensed IBM Java technologies in 2003, it created at least one JRE for each of the above types of devices (over 50 JREs in total)

Java applications that can run on Aphelion JREspp p

♦ Aphelion JREs are highly suitable for deploying many kinds of Java li ti i l diapplications, including:Large and/or complex applications for sophisticated devices, such as the set-top boxes, residential gateways, Internet routers, Telematics devices, etc. Applications that use extensively graphics, including the J2SE Java2d and Java3d graphics and the graphics created with Sun’s Swing widget toolkitApplications that use extensively C/C++ programs, which are rapidly invoked for native execution on the target processor using Apogee’s “fast path” JNI added to IBM’s J9VMexecution on the target processor using Apogee s fast path JNI added to IBM s J9VMApplications that need fast access to the InternetApplications that come in form of dynamically loadable OSGi R3 or R4 bundlesApplications that come in form of CORBA objectsApplications that use client-side runtimes and/or application-level packages from Apogee’s extensive collection of such runtimes and packagesApplications compatible with the Java 5 or 6 platformApplications that use the Java 5 or 6 features relevant to embedded systems (generics and concurrent processing, for example)p g, p )Real-time Java applications and, in near future, safety-critical Java applications

Supported RTOSs, OSs, processor architecturesSuppo ted OSs, OSs, p ocesso a c tectu es

♦ Supported RTOSs:Commercially offered “embedded” Linuxes (Wind River’s Commercial Grade Linux, MontaVista Linux, BlueCat Linux, TimeSys Linux, etc.)Linuxes from the open-source providers (Debian Linux, Deng Linux, OpenWRT, etc.)“In house” implementations of recent Linux kernels (2.4.x and higher)Windows Mobile 5.x and 6.x; Windows CE 4.x, 5.x, and 6.xVxWorks 5.x and 6.xLynxOS 4.x and 5.x; QNX Neutrino 6.x; Integrity 4.x and 5.x

♦ Supported OSs:Enterprise Linuxes (RedHat Linux RedHat MRG Linux SUSE Linux etc )Enterprise Linuxes (RedHat Linux, RedHat MRG Linux, SUSE Linux, etc.)Popular UNIX OSs (BSD Unix, for example)

♦ Supported processor architecturesx86, PowerPC, ARM, XScale, MIPS, and SH4 processors running any Linuxx86, ARM, and XScale processors running Windows Mobile or Windows CEx86, PowerPC, ARM, XScale, and MIPS processors running VxWorks86, o e C, , Sca e, a d S p ocesso s u g o sX86 and PowerPC processors running LynxOS or QNX Neutrino or Integrity

Optional Java API packages for ME JREsOpt o a Ja a pac ages o J s

♦ Each ME JRE can include the RTOS/processor ports of implementations of the f ll i API k d fi d b J2ME JSRfollowing API packages defined by J2ME JSRs:

IBM’s implementations of API pkgs targeted at the J2ME CDC platform, for example:JSSE (Java Secure Socket Extension, JCE (Java Cryptography Extension), and JAAS (Java Authentication and Authorization Service) optional pkgs of the Foundation ProfileJSR-66 RMI packageJSR-169 JDBC package that optionally comes with IBM’s Database Enabler packagePKI, CRYPTO, and APDU pkgs from JSR-177 Security & Trust Services API (SATSA)JSR-172 XML Support & Web Services package

Apogee’s implementations of API packages targeted at the J2ME CDC platform:JSR-82 Bluetooth API augmented with a fast native interface for implementing Bluetooth APIs "on top" of low level Bluetooth stacks that come with targeted devicesJCRMI package from SATSA

IBM's implementations of JSR packages targeted at the J2ME CLDC platform, adapted by Apogee for use with the ME JREs:

JSR-120 and JSR-205 Wireless Messaging APIsJSR 135 M bil M di APIJSR-135 Mobile Media APIJSR-179 Mobile Location and JSR-238 Mobile Internalization APIs

Optional client-side runtimes for ME and SE JREsOpt o a c e t s de u t es o a d S J s

♦ Each ME or SE JRE can include the RTOS/processor ports of the following li t id ticlient-side runtimes:

The Equinox OSGi R4 runtime from Eclipse eRCP (embedded Rich Client Platform), or mBedded OSGi R4 runtime from Apogee’s partner ProSyst SoftwareOther runtimes from eRCP, such as:

Configuration Admin ServiceExtension Point FrameworkeSWT (embedded Software Widget Toolkit)

The OpenFusion CORBA runtime from PrismTechJakarta commons-lang and commons-logging runtimes from Apache.orgg gg g p gThe RFID runtime from IBM's RFID Data Capture and Delivery product offeringIBM’s Javax.Comm runtime (facilitates serial and parallel communications from/to JRE)The IPv6 (Internet Protocol Version 6) runtime from IBM's WebSphere MQThe IPv6 (Internet Protocol Version 6) runtime from IBM s WebSphere MQRuntimes for various services from IBM's Micro Environment Toolkit for WebSphere Studio (Java Message Server, Servlets, SyncML DS&DM protocols, etc.)MQTT (MQ Telemetry Transport) runtime from IBM's WebSphere MQMQTT (MQ Telemetry Transport) runtime from IBM s WebSphere MQMessage MicroBroker runtime from IBM’s Lotus Expeditor DE (Desktop Edition)

Optional application-level pkgs for ME and SE JREsp pp p g

♦ Each ME or SE JRE can include the RTOS/processor ports of the following li ti l l kapplication-level packages:Xerces XML validating parser from Apache.orgJakarta xml-commons-external runtime, Log4j package, and Jakarta-regexp i l t ti f l i f A himplementation of regular expressions from Apache.orgPicollo, a small and fast XML parser from piccolo.sourceforge.netJaxen event-based X-path parser from jaxen.codehaus.orgDom4j, an effective and compact XML framework from dom4j.orgRistretto, a low level Java Mail package from columbamail.orgXsdlib, a multi-scheme XML validator from Sun's open-source msv.dev.java.net, p jJMS (Java Message Server) from IBM

♦ Each SE JRE can also include the RTOS/processor ports of the following application-level packages:application level packages:

Tomcat Servlet Container from Apache.orgJetty web server from Mortbay.comDOM Xpath packages from W3 orgDOM.Xpath packages from W3.orgJSP (Java Server Pages) package from Sun's open-source Glassfish webtier

Summary of ME and SE JREsSu a y o a d S J s

♦ Each ME JRE is compliant with Sun’s J2ME CDC platform and comprised of RTOS/ t f th f ll i tRTOS/processor ports of the following components:

J9VM with the integrated JIT or, if the ME JE is compliant with RTSJ, JAOT compiler FCL and, if the ME JRE is compliant with RTSJ, the RTSJ class library (RTSJCL)Any of the following optional components:

Personal Class Library (PCL)Implementations of API packages defined by J2ME JSRsp p g yClient-side runtimes and/or application-level packages that only use the Java APIs in the ports of FCL, PCL, and JSR-defined API packages included in the SE JRE

♦ Each SE JRE is compatible with a customer-requested subset of Java 5 or 6 p qplatform and comprised of RTOS/processor ports of the following components:

J9VM, JIT or JAOT compiler, and, if the SE JRE is compliant with RTSJ, the RTSJCLA set of essential APIs from FCL needed to make the Java 5 or 6 compatible A set of essential APIs from FCL needed to make the Java 5 or 6 compatible components of SE JRE work with the port of J9VMAny client-side runtimes and application-level packages, including those that use the Java 5 or 6 APIsThe entire Harmony, or its subset needed by included ports of runtimes, application-level packages, customer’s Java applications; or because of the way the JRE is used

RTSJ-compliant ME and SE JREsSJ co p a t a d S J s

♦ Each ME or SE JRE can be provided in a configuration compliant with the R l Ti S ifi ti f J d tifi d h b RTSJ t Real-Time Specification for Java and certified as such by RTSJ expert group

The port of J9VM of each RTSJ-compliant JRE includes:Apogee’s performance-tuned implementations of RTSJ features that must be p g p pimplemented in a Java VM (for example, handling of scoped memories)Apogee’s real-time garbage collector (provided in addition to IBM’s generational GC), which is more effective then the real-time Metronome GC available from IBM

Each RTSJ-compliant JRE includesA port of Apogee’s RTSJ class library providing the implementations of RTSJ features that do not have to be implemented in a Java VMA ’ JAOT il b d IBM’ JIT il t h l h d ith Apogee’s JAOT compiler based on IBM’s JIT compiler technology, enhanced with a “fuzzy” logic for finding bytecode methods of Java applications that should be compiled into native methodsThe JAOT compiler is, essentially, a JIT compiler invoked during the J9VM start-up p , y, p g ptime. It is used instead of the JIT compiler, which is too non-deterministic for RTSJ.

The ports of all other JRE components are enhanced for RTSJ compliance♦ Apogee’s RTSJ compliant JREs are the only ones targeted at devices based ♦ Apogee s RTSJ-compliant JREs are the only ones targeted at devices based

on embedded systems certified by RTSJ expert group as compliant with RTSJ

ME and SE JREs for multi-core target platformsa d S J s o u t co e ta get p at o s

♦ Each ME or SE JRE can be upgraded to effectively execute the multi-threaded J li ti lti l f i t t Java applications on multiple cores of a given target processor

♦ Specifically:The port of J9VM of each such JRE concurrently executes parallel Java threads of a The port of J9VM of each such JRE concurrently executes parallel Java threads of a given application on available cores of the target processorThe JIT compiler of each such JRE produces binary forms of suitable Java methods in parallel Java threads of a given application which are executed concurrently on parallel Java threads of a given application, which are executed concurrently on available cores of the target processorThe interpreter loop of the port of J9VM of each such JRE is enhanced for:

Minimizing the overhead of starting and terminating the Java threads and Minimizing the overhead of starting and terminating the Java threads, and communicating among the threads during their executionMinimizing the garbage collection overhead by “pre-collecting” garbage on the processor cores when they are not fully utilized by running parallel threadsp y y y g pWorking effectively with the underlying multi-threading support of a given RTOSMinimizing the overhead of switching among the multiple processor cores

Th d t f th JIT il i h d f d i ti d th t The code generator of the JIT compiler is enhanced for producing native code that works effectively with the underlying multi-threading support of a given RTOS

ME and SE JREs for RFID devicesa d S J s o de ces

♦ Each ME or SE JRE can be upgraded to provide various functions needed by RFID d i ( d “ d ” i )RFID devices (readers, “edge” servers, premises servers)

♦ For example, a “typical” RFID-specific ME JRE includes the RTOS/processor ports of the following components:ports of the following components:

J9VM with the integrated JIT compilerFoundation Class LibraryImplementations of JSSE, JCE, and JAAS API packages

RFID runtime from IBM’s RFID Data Capture and Delivery product offering, which facilitates various RFID functions on the devices it is running onfacilitates various RFID functions on the devices it is running onApogee’s LLRP(*) adaptor facilitating the use of Java applications conforming to LLRP

(*) LLRP - Low Level Reader Protocol defined for RFID devices by EPC Global JXComm package with APIs supporting serial and parallel communications, including IPv6Equinox OSGi R4 runtime from Eclipse eRCPConfiguration Admin Service from Eclipse eRCPJSR-172 XML Support & Web Services package

Support for graphics by ME and SE JREsSuppo t o g ap cs by a d S J s

♦ Each graphics-supporting ME or SE JRE includes the ports of:The java.awt APIs from IBM’s PCL in case of the ME JRE, or the java.awt and Java2D APIs from Harmony class library in case of the SE JREThe SE JRE used for Java applications the graphics of which were created with Sun’s pp g pSwing also includes the ports of javax.swing and java.nio packages from HarmonyIBM’s Universal Graphics Library (UGL) or, in case of the RTOS that is not yet supported by UGL, the eSWT (embedded Software Widget Toolkit) from Eclipse eRCP

Either UGL or eSWT provides a transition layer between the java.awt APIs and a low-level graphics library (LLGL), such as GTK2, GDI, OpenGL, which comes with the RTOSUGL is more suitable than eSWT for retargeting at various LLGLs, and each of its ports is optimized to work effectively with the low level graphical functions of LLGLports is optimized to work effectively with the low-level graphical functions of LLGLPorts of eSWT include Apogee’s fast mapping from eSWT widgets to the graphical functions of LLGL (as obtained from eRCP, eSWT is somewhat slow in this respect)

Th lti “AWT UFL LLGL” “AWT SWT LLGL” hi l “ t k” i t d fThe resulting “AWT UFL LLGL” or “AWT eSWT LLGL” graphical “stack” is tuned forthe highest possible performance on graphical portions of customer’s Java applications

♦ Alternatively, Apogee can provide a high performance “AWT DirectFB” stack ith H j t J 2D d j i API h d t di tl d with Harmony java.awt, Java2D, and javax.swing APIs enhanced to directly and

effectively work a customer-provided DirectFB runtime library

Example of a graphics-supporting ME JREp g p pp g

bytecode JAR files of customer’s Java applications

RTOS/TP ports of customer-requested J2ME-compatible application-levelpackages (Java Message Server from IBM for example)

bytecode JAR files of customer s Java applications(Can be in form OSGi bundles)

packages (Java Message Server from IBM, for example)RTOS/TP ports of customer-requested J2ME-compatible client-side runtimes(J2ME-compatible Equinox OSGi R4 runtime from Eclipse eRCP, for example)

RTOS/TP ports of: PCL compatible with Sun’s J2ME CDC PP; UGL;

RTOS/TP ports of customer-requested Java API packages defined by J2ME JSRs (Web Services & XML Support package, for example)

RTOS/TP ports of: J9VM compatible with Sun’s J2ME CDC VM; J9VM corenative methods; native methods of PCL, UGL, and FCL; JIT compiler

RTOS/TP ports of: PCL compatible with Sun s J2ME CDC PP; UGL;FCL Compatible with Sun’s J2ME CDC FP; JSSE, JCA, and JAAS APIs

RTOS, run time libraries (including LLGL), driversBoard Support Package

; , , ; p

TP (target processor)

Example of a high performancegraphics-supporting SE JREgraphics-supporting SE JRE

bytecode JAR files of customer’s Java applications(C b i f OSGi b dl h hi t d ith S ’ S i )

RTOS/TP ports of customer-requested application-level pkgs, each of which canuse the Java 5/6 APIs (Tomcat servlet container from Apache.org, for example)

(Can be in form OSGi bundles, can have graphics created with Sun’s Swing)

RTOS/TP ports of customer-requested client-side runtimes, each of which canuse the Java 5/6 APIs (J2SE-compatible Equinox OSGi R4 runtime, for example)RTOS/TP ports of Harmony API pkgs needed by customer’s Java applications

RTOS/TP ports of basic FCL APIs needed to make the ports of Harmony API

RTOS/TP ports of Harmony API pkgs needed by customer s Java applicationsand/or other components of JRE, including the ports of java.awt, Java2D, and

javax.swing enhanced to work directly and effectively with customer’s DirectFB

RTOS/TP ports of: J9VM compatible with Sun’s J2ME CDC VM; J9VM corenative methods; native methods for supporting Harmony APIs; JIT compiler

RTOS/TP ports of basic FCL APIs needed to make the ports of Harmony APIpackages and other relevant JRE components work with the port of J9VM

RTOS, run time libraries including the DirectFB RTL, driversBoard Support Package

native methods; native methods for supporting Harmony APIs; JIT compiler

TP (target processor)

Aphelion JDEp e o J

♦ Provided in a configuration targeted at and seamlessly working with the di (t t d t th RTOS/ ) JREcorresponding (targeted at the same RTOS/processor) JRE

♦ Comprised of the following main componentsIBM’s WebSphere Studio Device Developer (WSDD) with the target-dependent IBM s WebSphere Studio Device Developer (WSDD) with the target-dependent components re-targeted by Apogee at the RTOS/processor platform supported by this JDE configurationPlug-in interface for the corresponding JRE, which allows the remote use and control Plug in interface for the corresponding JRE, which allows the remote use and control of the JRE using the JDE GUISymbolic debugger that allows effective remote (from the host machine of JDE) debugging of Java applications running on the corresponding JREgg g pp g p gExecution profiler that allows effective remote analysis of runtime behavior of Java applications running on the corresponding JRE Plug in interfaces for the tools in RTOS vendor toolkit needed for creating the C/C++Plug-in interfaces for the tools in RTOS vendor toolkit needed for creating the C/C++-written native methods and their JNI-compliant executables; each interface allows a remote use and control of a given tool using the JDE GUI Optionally server-side packages for server-client services supported by the Optionally, server side packages for server client services supported by the corresponding JRE (for example, OSGi R4 pkg from IBM’s Lotus Expeditor)

Benefits of Aphelion JDEe e ts o p e o J

♦ Brings to developers of Java software for embedded systems the benefits that d J f l d kt d t i tmade Java successful on desktop and enterprise systems:

Creation of Java applications in fewer and shorter development cycles than it takes to create applications written in other languagesc eate app cat o s tte ot e a guages

Simpler and more reliable runtime deployments of Java applications than deployments of applications written in other languages

Less costly technical support and maintenance of deployed applications, especially for applications with long life spans

E i ti f J li ti t th t t l tfEasy migration of Java applications to other target platforms

Distribution of Java applications in target-independent bytecode JAR files that can be obfuscated to prevent reverse-compilationp p

♦ Can be integrated with an Eclipse-based IDE targeted at the same RTOS/processor platform

WSDD Components of Aphelion JDES Co po e ts o p e o J

♦ Each JDE configuration includes the following WSDD components:g g pGUI, file system, project manager, team development environment

Editors, browsers, ANT, Java-to-bytecode compiler, JAR builder

Interfaces for version control tools and hardware emulators

Symbolic graphical debugger, runtime execution analyzer / profiler

SmartLinker (Ahead-of-Time optimizer of runtime footprint)

Customer-requested components (JSP, JMS, etc.) from IBM’s METWS (Micro Environment Toolkit for WebSphere Studio)Environment Toolkit for WebSphere Studio)

Tools for creating the Java applications that can consume various Web services

Refactoring toolsRefactoring tools

A tool for fast deployment on flash memories

Language translation APIs (most of European languages, Japanese, Chinese, Language translation APIs (most of European languages, Japanese, Chinese, Korean, etc.)

Apogee’s Product Roadmappogee s oduct oad ap

♦ ME and SE JREs for additional RTOSs and processor architectures:Enhanced Linuxes (Redhat MRG, Wind River’s PCDLE, SUSE Linux Enterprise Realtime, etc.)Next generations of UNIX-based “hacker resistant” OSs (BSD Unix, for example)New advanced processors; for example Freescale’s iMX51

♦ SE JREs capable of effectively executing the Java applications that use:Sophisticated graphics including graphics created with Swing and 3D graphicsSophisticated graphics, including graphics created with Swing, and 3D graphicsAdvanced Java 6 featuresAdvanced Internet services

♦ Adopting new client-side runtimes and application-level packages being produces by providers of open-source Java software and Apogee’s partners and making their ports work with SE and/or ME JREs

♦ ME and SE JREs that will be fully compatible with the Java 6 platform and follow-up (Java 7, etc.) platforms RTSJ compliant ME and SE JREs for Avionics and similar devices requiring ♦ RTSJ-compliant ME and SE JREs for Avionics and similar devices requiring the compliance with DO-178B guidelines for safety critical avionics software