APHELION TM

Aphelion is a comprehensive software offering for developing and deploying Java applications targeted at many types of devices based on embedded systems, from wireless communication devices and electronic consumer appliances to industrial, telematics, and infotainment devices.

Aphelion is comprised of Java Runtime Environments (JREs) and Java Development Environments (JDEs) based on Java technologies licensed by Apogee from IBM, which are augmented with technologies obtained from providers of open-source Java software or developed by Apogee according to the needs of Apogee's customers.

Aphelion JREs are created for RTOS/processor platforms requested by Apogee's customers (for example, the eLinux/x86 platform comprised of an x86-based processor running one of the "embedded" Linuxes) by porting to each such platform IBM's J2ME-compatible J9 Virtual Machine (J9VM) and commonly used Java class libraries. Then, Apogee customizes each JRE for the specific needs of a given customer by adding to it the RTOS/processor ports of customer-requested optional components, such as the implementations of Java API packages defined by J2ME-specific Java Specification Request (JSRs), client-side "runtimes" for various client-server services, and application-level packages. Finally, Apogee tunes the resulting JRE for high runtime performance and small runtime footprint when running customer's Java applications and thoroughly tests it with relevant J2ME TCK (Technology Compatibility Kit) test suites.

For example, Apogee can include in a given JRE the XML Support & Web Services package defined by JSR-177, the OSGi runtime from Eclipse Equinox OSGi R4 Framework, and the Tomcat servlet container application-level package from Apache.org.

The basic Java technologies used in Aphelion JREs, such as the CDC (Connected Device Configuration) and CLDC (Connected Limited Device Configuration) compatible Java VMs, Java class libraries, and implementations of Java API packages defined by various J2ME-specific JSRs, come from IBM's WebSphere Everyplace Micro Environments (WEMEs) compatible with Sun's J2ME platform. Additional technologies needed for specific JREs come from IBM's WebSphere Everyplace Custom Environments (WECEs), or from providers of open-source Java software. Some technologies (for example, implementation of the Bluetooth API defined by JSR-82) have been created by Apogee.

Features of Aphelion JREs

Aphelion JREs are available in four configurations: Mobile device JREs (MJREs), Foundation JREs (FJREs), Extended JREs (EJREs), and Custom JREs (CJREs).

Each MJRE is comprised of RTOS/processor ports of IBM's J9VM compatible with Sun's J2ME CLDC VM v1.1 defined by JSR-139, and IBM's Mobile Device Class Library (MDCL) compatible with J2ME MIDP2 (Mobile Information Device Profile v2) defined by JSR-118. Each MJRE also includes IBM's RTOS/processor- targeted micro JIT (Just-In-Time) compiler integrated with the port of J9VM, and can include customer requested RTOS/processor ports of IBM's or Apogee's implementations of API packages defined for mobile devices by various JSRs, such as the Bluetooth API defined by JSR-82, Mobile Media API defined by JSR-135, Security and Trust Services API defined by JSR-177, Mobile Location API defined by JSR-179, Wireless Messaging API defined by JSR-205, Mobile Internalization API defined by JSR-238, etc..

Every MJRE is compatible with Sun's J2ME CLDC Platform, which means that it can pass all tests in J2ME TCK (Technology Compatibility Kit) test suites for the CLDC VM, MIDP2, and API packages defined by J2MR CLDC JSRs the ports of which are included in this MJRE.

Each FJRE is comprised of RTOS/processor ports of IBM's J9VM compatible with Sun's J2ME CDC VM v1.1 defined by JSR-218, and IBM's Foundation Class Library (FCL) compatible with Sun's J2ME CDC Foundation Profile v1.1 defined by JSR-219. Each FJRE also includes IBM's RTOS/processor-targeted JIT compiler integrated with the port of J9VM, and can include customer requested RTOS/processor ports of optional API packages defined for CDC Foundation Profile v1.1 by JSR-219, namely: the Java Secure Socket Extension (JSEE), Java Cryptography Extension (JCE), and Java Authentication and Authorization Service (JAAS) packages.

Every FJRE is compatible with Sun's J2ME CDC Platform, which means that it can pass all tests in J2ME TCK test suites for the CDC VM and Foundation Profile.

Each EJRE is comprised of RTOS/processor ports of IBM's J9VM compatible with Sun's J2ME CDC VM and integrated with the RTOS/processor-targeted JIT compiler, and IBM's FCL compatible with Sun's J2ME CDC Foundation Profile v1. In addition, each EJRE can include the ports of any of the following components requested by a given customer:

  • IBM's Personal Class Library (PCL) compatible with the J2ME CDC Personal Profile v1.1 defined by JSR-216. If the Java applications targeted at a given EJRE use the Java AWT graphics, then the port of PCL comes with a port of IBM's UGL (Universal Graphics Library), or a port of SWT (Software Widget Toolkit) from the Eclipse Open Platform, each of which provides a transition layer between the graphical APIs of java.awt package of PCL and graphical functions of a low-level graphics library (LLGL) that comes with a given RTOS. The selection of the port of UGL or SWT depends on LLGL. For example, the ports of UGL are used with the GTK2 LLGL that comes with "embedded" Linuxes, or GDI LLGL that comes with Windows Mobile and Windows CE. The ports of SWT are used with the WinML LLGL that comes with Wind River's VxWorks.
  • IBM's implementations of Java API packages defined for the J2ME CDC platform by various JSRs, such as the RMI Package defined by JSR-66, the JDBC Package defined by JSR-169, the XML Support & Web Services Package defined by JSR-172, etc..
  • IBM's implementations of Java APIs for various utility functions that are not defined by J2ME CDC JSRs, but are compatible with the J2ME CDC platform because they only use the Java APIs defined by CDC-compatible class libraries and API packages. For example: the JXComm package compatible with Sun's Java Communications API, which supports various protocols for serial and parallel communications; or the JINI package compatible with Sun's JINI Network Technology, which facilitates dynamic networking of devices used by Java applications running on EJREs.
  • Client-side runtime supports ("runtimes") for various server-client services, as long as each such runtime only uses the Java APIs from the class libraries and API packages included in a given EJRE. For example: the OSGi runtime from Eclipse Equinox OSGi R4 Framework; RFID runtime from IBM's RFID Data Capture and Delivery product offering; ORBexpress CORBA runtime from Objective Interface Systems; log4j runtime from Apache.org; etc..
  • Application-level packages from IBM or providers of open-source Java software, as long as each such package only uses the Java APIs from the class libraries and API packages included in a given EJRE. For example: JMS (Java Message Server) from IBM's Micro Environment Toolkit for WebSphere Studio (METWS); Java Server Pages (JSP) package from Sun's open-source "Glassfish" webtier; Xerces XML parser from Apache.org; DOM.Xpath package from W3.org; etc..
Each EJRE can also include the ports of JSSE, JCE, and JAAS optional packages defined for the J2ME Foundation Profile by JSR-219.

Every EJRE is compatible with Sun's J2ME CDC Platform, which means that it can pass all tests in J2ME TCK test suites for the CDC VM, Foundation Profile, other relevant API profiles, and packages defined by J2ME CDC JSRs the ports of which are included in this EJRE.

Each CJRE is comprised of RTOS/processor ports of: (i) IBM's J9VM compatible with Sun's J2ME CDC VM and integrated with the RTOS/processor-targeted JIT compiler; (ii) IBM's FCL compatible with Sun's J2ME CDC Foundation Profile v1.1; and (iii) either the entire GNU Classpath library of Java API packages compatible with Sun's J2SE Platform, or a customer-requested subset of Classpath, if not all the API packages of Classpath are needed by customer's Java applications and/or by other components of CJRE (by client-side runtimes, for example). Each CJRE can also include the RTOS/processor ports of the following components:

  • Client-side runtimes, including those that need the Java APIs compatible with the J2SE platform. For example, the runtimes facilitating access to/from certain databases need J2SE-compatible java.beans, java.sql, and javax.sql packages. All such needed J2SE-compatible packages are provided by the port of Classpath or a subset of Classpath that comes with a given CJRE.
  • Application-level packages from IBM or providers of open-source, including those that need the Java APIs compatible with the J2SE platform. For example, the Tomcat Servlet Container from Apache.org needs J2SE-compatible java.beans, java.nio, javax.naming, javax.net, and other packages. All such needed J2SE-compatible packages are provided by the port of Classpath or a subset of Classpath that comes with a given CJRE.
Every CJRE is compatible with the J2SE platform or a subset of J2SE platform to the same extend to which the port of Classpath or a subset of Classpath included in the JRE is compatible with the J2SE platform or a corresponding subset of J2SE platform. This is assured by making each CJRE pass all tests in Mauve test suite or its relevant subset. Note that Mauve is a very extensive test suite (with over 50,000 tests and sub-tests) used for testing the compatibility of Classpath with the J2SE platform.

For those customers that need JREs with a high degree of deterministic behavior, such as JREs that can predictably execute multi-threaded Java applications and significantly reduce or eliminate unpredictable effects of garbage collection, Apogee can create a configuration of a given FJRE, EJRE, or CJRE that is compliant with the Real-Time Specification for Java (RTSJ) defined by JSR-1 and JSR-282. Apogee is the only provider of Java runtime environments for embedded systems that offers JREs certified by JSR-1 and JSR-282 expert groups and by JCP (Java Community Process) office as compliant with RTSJ and J2ME CDCPlatform.

In summary, each JRE effectively facilitates and supports the following activities involved in deploying Java applications on the RTOS/processor platform targeted by this JRE:

  • Running executable forms of Java applications during their development, testing, debugging, and performance-tuning with Aphelion JDE or other JDE (Eclipse JDE, for example).
  • Deployment of executable forms (JAR files) of production-ready Java applications developed with Aphelion JDE.
  • Deployment of executable forms of Java applications created with other JDEs (for example, the Eclipse JDE), as long as each such application only uses the Java APIs included in agiven JRE.
Features of Aphelion JDEs

Aphelion JDEs are derived from IBM's Workplace Client Technology Micro Edition (WCTME) product family, the relevant components of which, such as the WebSphere Studio Device Developer (WSDD) and the Micro Environment Toolkit for WebSphere Studio (METWS) are included, fully or partially, in each JDE according to the needs of a given customer. For example, every JDE includes the GUI, file system, project manager, and various development tools (editors, browsers, Java-to-bytecode compiler, JAR builder, bytecode debugger, "smart" linker/runtime footprint optimizer, runtime execution analyzer/profiler, etc.) from WSDD. The target-dependent tools of each JDE (for example, the execution profiler/analyzer) are retargeted by Apogee at the RTOS/processor platform supported by this JDE.

Each JDE is "remotely" integrated with a corresponding (targeted at the same RTOS/processor platform) JRE through a special plug-in interface, which allows the use of JDE GUI to remotely start and control the execution of the JRE on the RTOS/processor target platform connected to the host platform of JDE and remotely debug each Java application running on the JRE. This means that each JDE and the corresponding JRE comprise a complete cross-development environment suitable for:

  • Productive and cost effective development of Java applications targeted at customer's devices having the JRE installed on them.
  • Construction of executable forms (bytecode JAR files) of such applications.
  • Remote graphical debugging of executable forms while running on the JRE.
  • Testing of executable forms and analyzing their runtime behaviour and performance.
  • Tuning the executable forms for fast runtime execution and small runtime footprint.
  • Compilation of C/C++ parts of each Java application into the JNI-compliant native methods and integration of resulting binary files with the JAR files of the application into a complete executable image.
Apogee can also integrate with each JDE additional customer-provided tools, or commonly used tools and utilities (for example, the C/C++ compiler, assembler, archiver, etc.) from a toolkit of RTOS vendor. This integration is accomplished with plug-in interfaces that allow the use of JDE GUI to invoke and control each such tool or utility.

Aphelion JREs and JDEs - a Complete Software Solution

Each JRE and the corresponding JDE comprise a complete software solution for all your Java needs, a solution that you can productively use for developing and deploying all types of Java applications targeted at embedded systems used in a wide range of devices:

  • Advanced wireless communication devices (GPS and telemetric systems, for example).
  • Electronic consumer appliances (PDAs, smart phones, pocket PCs, set-top boxes, home gateways, etc.).
  • Industrial devices (monitors, controllers, gateways, etc.).
  • Devices used in factory floor automation (robots, sensors, etc.).
  • Client devices used in enterprise management and monitoring system.
  • RFID readers and "Edge" servers.
  • Point-of-sale terminals and other devices used in retailing.
  • Telematics and infotainment devices.
Each JRE and the corresponding JDE also bring to you the benefits that made Java highly successful on desktop and enterprise systems:
  • Creation of Java applications in fewer and shorter development cycles compared with creation of functionally equivalent applications written in other languages.
  • Simpler and more reliable runtime deployments of Java applications compared with deployments of applications written in other languages.
  • Less costly technical support and maintenance of deployed applications, especially in case of applications with long life-spans.
  • Distribution of applications in form of target-independent bytecode JAR files (rather than in form of source code files). Each distributed JAR file can be obfuscated to prevent its reverse compilation into Java source code.
  • Easy migration of developed applications to other target platforms.
The following picture shows a CJRE and the corresponding JDE that Apogee can provide for the RTOS/process platform of your choice:


In "Blue" Aphelion JDE, in "RED" Aphelion CJRE.

Please contact Apogee by phone or email for more information about Aphelion JREs and JDEs. We will also be pleased to discuss with you:

  • The most effective and least costly strategy on creating the JDE and/or JRE for each of your RTOS/processor target platforms.
  • Customization of each created JRE for your specific needs, for example providing the ports of additional Java API packages (including the J2SE-compatible packages), client-side runtimes, and application-level packages.
  • The most effective use of each created JRE for deploying your Java applications.
  • Licensing of created JDEs and/or JREs for internal use by your organization and/or for distribution to your customers and other third parties.

Home | Corporate Info | Products | Download | Order | News | Resellers






Google
www.apogee.com Web