Sun Java Solaris Communities My SDN Account
 
Article

Introduction to Wireless Technologies

 


WirelessComputer technology is showing up everywhere in our daily lives in the form of wireless 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 wireless 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 technologies that make it easy for device manufacturers, service providers, and application programmers to deploy network-connected wireless products and services for all kinds of consumer use.

Wireless Embedded Devices for Consumers

Microprocessor-based consumer products such as alarm clocks, coffee machines, televisions, 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.

Consumer and embedded devices that are not wired to the wall, but instead use a wireless technology to communicate are wireless. Wireless devices can be so small you can carry them around in your hand, pocket, or purse, or considerably larger so they operate from one location in your home, office, or automobile.

This article presents an overview of Java technologies under development by Sun Microsystems that device manufacturers can port to wireless devices. Applications developers can use the APIs that are part of these technologies to develop wireless applications on their personal computer or workstation. The application runs on any target device that supports a compatible implementation. However, you might be interested to read The World of Mobile and Stationary Devices, if you want to understand at a very high level how wireless technologies work from the hardware perspective.

iPlanet Technologies

Businesses and service providers such as wireless carriers or cable providers that allow consumers to download new services might also be interested in the iPlanet products. In the wireless space, the iPlanet Wireless Server lets consumers access email, calendar, and address book information from virtually any device they choose to use. This means the consumer can access these services from home using their personal computer or workstation, and later in the day, access these same services and information from their digital wireless device. The information is consistent and reliable because it comes from the same place: a single email, calendar, and address book storage location. You can get information on this and other iPlanet products in the products section of the iPlanet web site.

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 abilityto 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.

Java 2 Micro Edition (J2ME) Technology

The primary platform targeting the wireless market is Java 2 Micro Edition (J2ME). J2ME consists of the Java virtual machine1 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, hand-held wireless devices have a much smaller footprint in terms of memory, storage, and user interface capabilities than larger non-mobile wireless devices.

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.

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.

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. For the most up-to-date information on new JSRs, browse the JSR page.

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

J2ME Configurations and Profiles

This section provides a brief description of the J2ME configurations and profiles currently available or under development.

J2ME Connected Limited Device Configuration (CLDC)

The J2ME Connected Limited Device Configuration (CLDC) specification, JSR30, 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 1. 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, (JSR37), 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:

  • 512K total memory (ROM + RAM) available for Java runtime and libraries.
  • Limited power, and typically battery operated.
  • Connectivity to some type of wireless network with possibly limited bandwidth.
  • User interfaces with varying degrees of sophistication.

J2ME Personal Digital Assistant (PDA) Profile

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

  • No less than 512K total memory (ROM + RAM) available for Java runtime and libraries, and no more than 16 MB.
  • Limited power, and typically battery operated.
  • User interfaces of varying degrees of sophistication, but having displays with a total resolution of at least 20,000 pixels, a pointing device, and character input.

J2ME Connected Device Configuration

The J2ME Connected Device Configuration (CDC) specification, JSR36, is based on the classic Java virtual machine 1 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 wireless orwired 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:

  • 512K minimum ROM available.
  • 256K minimum RAM available.
  • Connectivity to some type of network.
  • Support for a complete implementation of the Java virtual machine 1 as defined in the Java Virtual Machine Specification, 2nd Edition.
  • User interfaces with varying degrees of sophistication including no user interface at all.

J2ME Personal Profile

The J2ME Personal profile proposed specification, JSR62, 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:

  • 2.5 M minimum ROM available.
  • 1 M minimum RAM available.
  • Robust connectivity to some type of network.
  • Graphical user interface (GUI) with a high degree of web fidelity and the ability to run applets.

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

J2ME Foundation Profile

The J2ME Foundation Profile specification, JSR46, 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:

  • 1024k minimum ROM available (application memory requirements are additional).
  • 512k minimum RAM available (application memory requirements are additional).
  • Connectivity to some type of network.
  • No GUI, unless the GUI functionality is provided by an additional profile.

J2ME RMI Profile

The J2ME Remote Method Invocation (RMI) profile proposed specification, JSR66, 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.

Other Wireless Technologies

Two other wireless technologies not currently part of the J2ME specification are the PersonalJava application environment and the Java Phone API. Currently, the the J2ME Personal profile is being designed to be compatible with the PersonalJava Application Environment specification 1.1.x and 1.2.x.

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:

  • Direct telephony control
  • Datagram messaging
  • Address book and calendar information
  • User profile access
  • Power monitoring
  • Application installation


1 As used in this document, the terms "Java virtual machine" or "JVM" mean a virtual machine for the Java platform.


Reader Feedback
Excellent   Good   Fair   Poor  

If you have other comments or ideas for future technical tips, please type them here:

Comments:
If you would like a reply to your comment, please submit your email address:
Note: We may not respond to all submitted comments.

Have a question about Java programming? Use Java Online Support.



Back To Top

Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.