Billions ServedBy David A. Kelly
Organizations count on Java ME in devices that save lives and connect people.
We live in a world where just about every device, machine, or product is connected—or soon will be—to the internet. And as more and more devices become part of our technology fabric, there’s a good chance that they’ll be Java enabled. That’s why Oracle sees a big future for the smallest Java platform—Java Platform, Micro Edition (Java ME) —which is tailored for mobile and embedded applications.
“Oracle is committed to investing in Java and Java ME,” says Florian Tournier, senior manager of product management at Oracle. “From continued enhancements to the performance and capabilities of the Java engine that executes mobile applications to the introduction of developer-enabling technologies such as the Lightweight UI Toolkit [LWUIT], we’re making Java and Java ME easier to develop on and more robust than ever before.”
Java is the most broadly deployed platform in the mobile and embedded arena, with literally billions of devices on the market, from mobile phones and TV set-top boxes to Blu-ray Disc players and printers. Perhaps that’s one reason why Java remains a big draw for developers.
“We recently did a developer survey and found that Java is a really important cross-platform environment for mobile devices,” says Adam Leach, principal analyst at London, England–based consulting firm Ovum. “If you’re a developer and you’re looking to broaden your reach by supporting a wide range of mobile or embedded devices, Java is an obvious choice. It’s the same if you want to run cross-platform and not have to maintain multiple versions of your code. Java is the obvious choice to start with.”
In fact, many devices outside the datacenter use custom applications to communicate and do business. These mobile devices and machines with embedded applications must deliver extreme reliability and compatibility when communicating with other devices, and many of them use Java ME to accomplish that.
Java ME is a combination of technologies and specifications designed to create a platform for devices ranging from mobile phones to consumer products to embedded devices. By using Java ME, organizations can create a complete Java runtime environment that’s designed to fit the needs of a specific device or market.
From a technology perspective, Java ME includes flexible user interfaces, robust security, over-the-air provisioning, and support for network and offline applications. Working with the Java ME platform, developers can leverage hardware device capabilities while still maintaining cross-platform and cross-device opportunities.
“There are thousands of mobile and embedded devices that are different from each other,” says Oracle’s Tournier. “That’s why Java ME is a perfect solution. It lets you write an application for one device and run it on many others.”
The Java ME stack is composed of three layers of software: a configuration, which provides the Java Virtual Machine and basic libraries; a profile, which provides APIs to support specific devices; and optional packages that provide technology-specific APIs. Java ME’s two popularly used configuration types are the Connected Device Configuration (CDC, for higher-end embedded devices) and the Connected Limited Device Configuration (CLDC, for resource-constrained mobile devices).
Leading organizations are leveraging the different Java ME configurations and options to create a range of mobile and embedded solutions that solve real-world problems.
Although most technologists know that there might be Java running in a mobile phone or a TV set-top box, you might be surprised to find doctors prescribing Java ME.
“Wirelessly connected Java-based telemonitoring systems can really help reduce hospitalization rates, improve patients’ quality of life, and perhaps even prevent life-threatening conditions,” says Manfred Kube, director of business development for mHealth at CINTERION Wireless Modules GmbH, in Munich, Germany. “For example, through regular remote monitoring, a doctor might be able to detect that a cardiac patient’s condition is getting worse and possibly prevent a potentially deadly heart attack or other health problem.”
CINTERION is the global leader in cellular machine-to-machine (M2M) communication modules for M2M applications. Its modules are finding their way into more and more applications, including mobile healthcare solutions such as the Philips Respironics Sleep Therapy system. The system is a medical telemetry application that uses a combination of Java ME, CINTERION’s M2M module, and Global System for Mobile Communications (GSM) networks to create a link between patients and doctors for the monitoring of potentially deadly sleep apnea.
Java and embedded or mobile applications are nothing new for CINTERION. In fact, CINTERION unveiled its first Java-embedded GSM module in 2002. CINTERION has since implemented Java ME applications for a wide range of vertical markets, including fleet management, smart meter reading, and industrial automation. A key component of its success has been Java ME.
“Our Java-based M2M modules are solid proof of Java’s ‘write once, run anywhere’ ability to deliver applications that are both backward compatible and independent of hardware,” says Kube.
For CINTERION, a big benefit of Java ME is its portability—not just across hardware devices but across time. Many of the applications developed for CINTERION’s original GSM module are still being deployed nine years later, on the company’s fourth-generation hardware. And CINTERION continues to develop new embedded applications based on Java. For example, its latest module, the EGS5, is the world’s smallest Java-enabled wireless module.
CINTERION’s customers can use NetBeans for Java development and also take advantage of Java’s Over the Air Provisioning (OTAP), which allows installing, updating, and deleting Java applications over a wireless communication network.
“Java ME is ideal for our cellular M2M platforms because of its security and the sandbox model,” says Kube. “We can ensure that no application is interfering with the basic cellular functionality.” In addition, Java’s security and application isolation ensure that applications or modules don’t interfere with regulatory approval processes.
Kube also acknowledges the value of standards when it comes to development. “Java is a proven standard. It’s a well-known programming language with a huge community worldwide. Every IT student learns Java these days. There’s a great developer community out there,” says Kube. “It’s also important that Java is an open standard, and therefore the solution is future-proof as well.”
Navigating Seamlessly Across Platforms
As mobile devices continue to permeate our lives, we’re becoming more dependent on mobile services that often connect to, and update information on, those devices. Take the case of location-based services. These days, even low-end-feature phones support GPS-like capabilities, such as displaying highly detailed maps or providing routing from one location to another. That’s where Java ME and companies such as Telmap enter the picture.
Based in Herzlia, Israel, Telmap is a leading provider of server-based mobile location-based services to companies such as Vodafone, O2 Telefonica, France Telecom, and more. The company has an installed base of more than 3 million users, running on all major mobile phone platforms. However, 60 percent (more than 1.8 million) of its users are running on Java-based platforms.
Unlike GPS devices, which store map data on the device, server-based navigation requires a tight linkage between a mobile phone or a similar device and back-end systems. It also requires agile display technologies to provide a rich graphical user interface (GUI) for navigation. That’s where Java’s LWUIT comes in.
LWUIT is a UI library designed for mass-market mobile devices. It provides advanced UI capabilities so that Java ME developers don’t have to write device-specific code for different devices or screen sizes. Telmap uses LWUIT to provide a full GUI on Java devices.
“Our LWUIT-based Active Interface is designed to be cross platform as well as to perform well on resource-constrained devices, while still providing a very rich, compelling, and interesting user interface,” says Adi Avram, director for new technologies at Telmap.
To achieve that flexibility, Telmap has designed a modular system that can be reconfigured depending on what resources are available on a specific device. For example, on a device that’s not GPS enabled, Telmap can deploy a version that does not provide full navigation features but instead provides the ability for local search and manual navigation, which simply provides a route to a user’s destination.
“We chose LWUIT because of the platform’s ability to support cross-platform and cross-device deployment. We’ve found that LWUIT is written in such a way that it’s also very easy to adapt to other devices,” says Avram.
In addition, LWUIT’s features and capabilities go beyond simply enabling cross-platform and cross-device deployment.
“Some of the advantages of LWUIT include being able to maintain a consistent and graphically rich user interface or look and feel across different mobile phone platforms. It also allows you to maintain the conventions of each platform, while still maintaining consistency across different platforms,” says Avram. “It also enables us to implement things like rich graphics, clear textural rendering for devices of different screen resolutions, and different resource profiles.”
That’s understandably important for Telmap’s operator partners who are deploying their applications across a wide variety of devices. They need applications to be recognizable and look the same for all of their subscribers, regardless of the hardware handset.
“By tuning LWUIT, we’re able to run our applications on very low-level and midlevel phones,” says Avram. “With LWUIT we’re able to bring a smartphone look and feel to much more basic phones.”
A Java-enabled Future
The world is quickly moving to a connected device model, where just about everything we touch, use, or purchase may be connected to other devices or the internet in some way. And Java ME is one of the key components enabling organizations of all sizes to create reliable cross-platform applications that can be deployed on an ever-changing range of mobile and embedded hardware devices.