Home | Articles

Introduction to Consumer & Embedded Technologies

Scissors clipping cord 
on wireless phone Computer technology is showing up everywhere in our daily lives in the form of wireless (mobile) and wired (stationary) network-based products for consumer use. Activities such as using a mobile phone to remotely access your home security or audio/visual systems, getting information about the status of your car directly from the manufacturer while driving, using the smart card in your phone for storing personal information or to make secure transactions, or networking your home appliances will soon be as normal as driving a car or making a telephone call.

Sun Microsystems is targeting the consumer marketplace with a suite of Java-based technologies that make it easy for device manufacturers, service providers, and application programmers to deploy consumer and embedded products and services for all kinds of consumer use.

Microprocessor-based consumer products such as alarm clocks, coffee machines, televisions, cars, air conditioners, and phones are referred to as embedded devices because the small computers inside them have a very focused operation. While a personal computer can run a wide-range of applications for various purposes, an embedded device runs a very focused set of applications. For example, a cell phone would run only cell phone applications and a personal organizer would run only calendar and date book applications. However, a personal computer can run calendar, date book, fax, scanning, word processing, and spreadsheet applications—to name only a few.

This article presents an overview of the following Consumer and Embedded technologies under development by Sun Microsystems.

Java 2 Micro Edition (J2ME) Technology

The primary platform targeting the consumer and embedded market is Java 2 Micro Edition (J2ME). J2ME consists of the Java virtual machine specification and API specifications. The API specifications are based on Java 2 Standard Edition (J2SE), but modified to meet the unique requirements of each product. In other words, J2ME defines an appropriate set of class libraries and virtual machine technology for a particular class of product.

The J2ME virtual machine and API specifications for specific device platforms are developed by soliciting input on requirements through the Java Community Process initiative to make certain the specifications meet the unique needs within a given family or category of consumer devices. For example, handheld wireless devices have a much smaller footprint in terms of memory, storage, and user interface capabilities than wired devices, and use different communication protocols.

Once a Java Specification Request (JSR) is accepted through the Community Process initiative, the JSR lead, which can be Sun Microsystems or another company, creates a Java virtual machine and API reference implementation for a particular J2ME platform. Over time, this will result in a number of J2ME Java virtual machine and API implementations with each implementation targeted to a particular device.

Applications written to the reference implementation will run on any device that supports the reference implementation because device manufacturers make sure the products are tested with the compatibility tests for J2ME and the appropriate profile. You can also expect to see JSRs for profiles built for the J2ME platform evolve as new market segments are addressed. A number of J2ME profiles for specific product families or categories are either making their way or have made their way through the community process. Those available at the time of this writing are described under Java-Based Technologies below. For the most up-to-date information, be sure to browse the JSR page for new and accepted JSRs.

You might also want to read the Java 2 Platform Micro Edition (J2ME) Technology for Creating Mobile Devices white paper.

Other Consumer and Embedded Technologies

In addition to J2ME technologies, there are other Java-based technologies that fall under the consumer and embedded moniker, but are not specifically defined under the J2ME specifications because they have their own specifications. Jini Connection technology, Java Card technology, and Java Embedded Server technology fall into this category. They are addressed in this article with the J2ME technologies under Java-Based Technologies below to give you a complete picture of the currently available Consumer and Embedded technologies.

Device Independent

Java-based consumer and embedded technologies let you develop applications on your personal computer or workstation. The application will run on any target device that supports a compatible implementation.

Java-Based Technologies

The following Java-based technologies support consumer and embedded application development. Non-J2ME technologies follow their own specifications, and J2ME technologies are based on configurations and profiles. A configuration defines the minimum set of class libraries available for a range of devices. For example, wireless (mobile) devices use a different configuration from wired (stationary) devices.

A profile defines the set of APIs available for a particular family of devices. Each family of devices has its own profile that represents a particular vertical market within a given configuration. For example, the profile for the cell phone vertical market is separate from the profile for the personal organizer vertical market, but both profiles work with the same mobile device configuration.

Note: At JavaOne 2000 the PersonalJava platform and its associated extensions, Java Phone API and Java TV API, were added to the J2ME technology architecture.

J2ME Connected Limited Device Configuration (CLDC)

The J2ME Connected Limited Device Configuration (CLDC) specification, JSR000030 , is now available as the J2ME CLDC reference implementation from the Sun Community Source Licensing page. The J2ME CLDC reference implementation consists of the K virtual machine, and a core set of class libraries appropriate for use within an industry-defined profile such as the Wireless profile as specified by the Mobile Information Device Profile (MIDP) reference implementation or Personal Digital Assistant specification, which are both described below.

Based on community input, Sun designed the CLDC to be a standard, portable, minimum-footprint configuration for small, resource-constrained mobile devices such as two-way pagers, personal digital assistants (PDAs), organizers, home appliances, and point-of-sale terminals. These devices have simplified user interfaces, minimum memory budgets starting at about 128 kilobytes, and intermittent network connections with lower bandwidth.

K Virtual Machine

The K virtual machine is a runtime implementation of the Java virtual machine. It is an extremely lean runtime for use in devices with a small memory footprint such as cell phones, two-way pagers, and personal digital assistants (PDAs). The K in K virtual machine stands for kilobyte to indicate this virtual machine works with a total memory of a few hundred kilobytes at most and sometimes fewer than 128 kilobytes.

The K virtual machine is the virtual machine used in the J2ME Connected Limited Device Configuration (J2ME CLDC), Version 1.0, reference implementation described above.

J2ME Mobile Information Device Profile

The J2ME Mobile Information Device Profile (J2ME MIDP) specification, (JSR037), is now available as the J2ME MIDP reference implementation from JDC Early Access. It requires the CLDC reference implementation and provides classes for writing downloadable applications that run on mobile devices such as cell phones and two-way pagers. It also enables the downloading of new services of interest to the consumer such as games, commerce applications, and personalization services.

The MIDP profile provides a standard platform for small, resource-limited, wireless-connected mobile information devices characterized as follows:

J2ME Personal Digital Assistant (PDA) Profile

The J2ME Personal Digital Assistant (PDA) specification JSR000075 is layered on top of the CLDC specification. It provides user interface and data storage APIs for small, resource-limited handheld devices such as personal digital assistants with the following resource constraints:

J2ME Connected Device Configuration

The J2ME Connected Device Configuration (CDC) specification, JSR000036, is based on the classic Java virtual machine specification, which defines a full-featured runtime environment that includes all the functionality of a runtime residing on a desktop system. This configuration is intended for larger fixed devices with at least a few megabytes of available memory that can connect to the Internet or other devices such as set-top boxes, Internet television, Internet-enabled screen phones, high-end communicators, and automobile entertainment/navigation systems with the following characteristics:

J2ME Personal Profile

The J2ME Personal profile proposed specification, JSR00062, repackages the PersonalJava Application Environment to provide the J2ME specification for devices that need a high degree of Internet connectivity and web fidelity with the following characteristics:

The J2ME Personal profile is targeted to be compatible with the PersonalJava Application Environment specification 1.1.x and 1.2.x.

J2ME Foundation Profile

The J2ME Foundation Profile specification, is suitable for devices that need support for a rich network-enabled Java platform, but do not require a GUI. It also provides a base profile for other profiles that need to build on its functionality by adding a GUI or other features. It is for devices with the following characteristics:

J2ME RMI Profile

The J2ME Remote Method Invocation (RMI) profile proposed specification, JSR00066, supports inter-application RMI over TCP/IP connections for applications written to the Foundation profile. The J2ME RMI profile specification is also interoperable with the Java 2 Standard Edition (J2SE) RMI API 1.2.x or higher.

Java Phone API

The Java Phone API is a vertical extension to the PersonalJava platform consisting of two reference profiles targeted at Internet screen phones and wireless smart phones. The API provides access to the functionality unique to client telephony devices such as wireless smart phones and Internet screen phones, and includes such things as:


The Java TV API is a vertical extension to the PersonalJava platform for creating interactive applications for digital television. The API allows the real-time display of relevant, contextual information in parallel with standard programming; electronic commerce transactions initiated from advertising spots, programming, or applications such as home banking; and real-time interactive communications with television personalities and animated characters.

Java Card Technology

A smart card is a credit card sized plastic card with an integrated circuit (IC) inside. The IC contains a microprocessor and memory so the smart card can process and store information. The Java Card platform gives smart card developers the ability to standardize on a common card platform. This means, for example, a Global System for Mobile Communications (GSM) wireless phone operator can easily develop new services that can be selectively downloaded over the air onto the smart card residing on the phone.

Jini Connection Technology

Jini Connection technology allows services to dynamically and simply work with other services. Services in a Jini community have the discovery, lookup, and joining code they need to immediately provide services to other members of the community. You do not have to do things like edit configuration files, shut down or restart servers, configure gateways, or anything else when a new service is made available in the network, and Jini communities support redundant infrastructure to make it less likely services are unavailable due to machine crashes or network problems.

Java Embedded Server Technology

Java Embedded Server (JES) software is installed in a broadband termination device such as DSL/Cable modems or set-top boxes to transform it into a residential gateway. A residential gateway is a box in the home that networks home appliances, and connects them to the outside Internet. Connecting appliances to the Internet gives residents access to services such as telephony on demand, energy control, home security, appliance diagnostics, and more.

While Jini Connection Technology supports spontaneously created, self-healing communities of services, JES is a framework to manage services delivered to it. The JES framework can use Jini technology to locate and receive services from a Jini community. Also, services can be explicitly written for JES, and include such things as web services, HTTP services, security, and gateways such as Home Audio/Video Interoperability (HAVi).

Technologies and Market Segments

The above-described Consumer and Embedded technologies aim to support application and service development in the following high-growth market segments. This section briefly describes those segments and tells you which technologies enable development in each.

The world of wireless includes small battery-operated, handheld devices such as cell phones, two-way pagers, personal organizers, screen phones, point-of-sale (POS) terminals, and smart card readers. These special-purpose, limited-function, and network-based information appliances let you do things like access the Internet for stock quotes or to buy movie tickets, make restaurant reservations, or download calendar, email, and address information.

Related wireless (mobile) technologies include:

Related wired (stationary) technologies include:

Digital Interactive TV enhances the email, programming, and pay-per-view features available through standard digital television by providing interactive capabilities. You will be able to use a standard set-top box to initiate transactions with your bank, hardware store, or video store; interact with TV personalities or cartoon characters; or play a home version of a game show while the game show is airing.

Related digital Interactive TV technologies include:

Today it is possible to use global positioning satellite software in your automobile to help you find your way to a location. Pretty soon you will be able to use satellite communications from automobiles to get Digital Interactive TV programming and Internet access. Internet access from an automobile means you can initiate ecommerce transactions or download entertainment software, service updates, email, address information, and calendar appointments.

Related automotive technologies include:

The .com homes of tomorrow will have a box for networking appliances within the home and connecting them to the Internet. This type of network would enable washing machines to download new washing programs dynamically, electronic toys to download updated game programs, and give you the ability to turn off the oven, iron, or lights after you have left for a trip.

Related home gateway technologies include:

Related Links

These links take you to information related to topics covered in this overview:

© 1994-2005 Sun Microsystems, Inc.