umnet.com, mobile your fun!

J2ME, Java : Java Platform Micro Edition (Java ME) Platform Intro

  

Java ME technology was originally created in order to deal with the constraints associated with building applications for small devices. For this purpose Sun defined the basics for Java ME technology to fit such a limited environment and make it possible to create Java applications running on small devices with limited memory, display and power capacity.

Java ME platform is a collection of technologies and specifications that can be combined to construct a complete Java runtime environment specifically to fit the requirements of a particular device or market. This offers a flexibility and co-existence for all the players in the eco-system to seamlessly cooperate to offer the most appealing experience for the end-user.

The Java ME technology is based on three elements;

  • a configuration provides the most basic set of libraries and virtual machine capabilities for a broad range of devices,
  • a profile is a set of APIs that support a narrower range of devices, and
  • an optional package is a set of technology-specific APIs.

Over time the Java ME platform has been divided into two base configurations, one to fit small mobile devices and one to be targeted towards more capable mobile devices like smart-phones and set top boxes. The configuration for small devices is called the Connected Limited Device Configuration (CLDC) and the more capable configuration is called the Connected Device Profile (CDC). 

The configuration targeting resource-constraint devices like mobile phones is called the Connected Limited Device Configuration (CLDC). It is specifically designed to meet the needs for a Java platform to run on devices with limited memory, processing power and graphical capabilities. On top of the different configurations Java ME platform also specifies a number of profiles defining a set of higher-level APIs that further define the application. A widely adopted example is to combine the CLDC with the Mobile Information Device Profile (MIDP) to provide a complete Java application environment for mobile phones and other devices with similar capabilities.

With the configuration and profiles the actual application then resides, using the different available APIs in the profile. For a CLDC and MIDP environment, which is typically what most mobile devices today are implemented with, a MIDlet is then created. A MIDlet is the application created by a Java ME software developer, such as a game, a business application or other mobile features. These MIDlets can be written once and run on every available device conforming with the specifications for Java ME technology. The MIDlet can reside on a repository somewhere in the ecosystem and the end user can search for a specific type of application and having it downloaded over the air to his/her device. 

Mobile Information Device Profile (MIDP);

The Mobile Information Device Profile (MIDP) is a key element of the Java 2 Platform, Mobile Edition (J2ME). When combined with the Connected Limited Device Configuration (CLDC), MIDP provides a standard Java runtime environment for today's most popular mobile information devices, such as cell phones and mainstream personal digital assistants (PDAs). The MIDP specification was defined through the Java Community Process (JCP) by an expert group of more than 50 companies, including leading device manufacturers, wireless carriers, and vendors of mobile software. It defines a platform for dynamically and securely deploying optimized, graphical, networked applications.
CLDC and MIDP provide the core application functionality required by mobile applications, in the form of a standardized Java runtime environment and a rich set of Java APIs. Developers using MIDP can write applications once, then deploy them quickly to a wide variety of mobile information devices. MIDP has been widely adopted as the platform of choice for mobile applications. It is deployed globally on millions of phones and PDAs, and is supported by leading integrated development environments (IDEs). Companies around the world have already taken advantage of MIDP to write a broad range of consumer and enterprise mobile applications.
  • MIDP 2.0 (JSR 118) is a revised version of the MIDP 1.0 specification. New features include an enhanced user interface, multimedia and game functionality, more extensive connectivity, over-the-air provisioning (OTA), and end-to-end security. MIDP 2.0 is backward-compatible with MIDP 1.0, and continues to target mobile information devices like mobile phones and PDAs.

  • MIDP 1.0 (JSR 37) is the original specification, which provides core application functionality required by mobile applications, including basic user interface and network security.

  • Java ME Technology-related JSRs

    In the Java ME technology family there are a number of JSRs defining different parts of the platform and it's components.

     (click to enlarge)

    • JSR 30: Connected Limited Device Configuration 1.0 (CLDC)

    The Connected Limited Device Configuration (CLDC) defines the base set of application programming interfaces and a virtual machine for resource-constrained devices like mobile phones, pagers, and mainstream personal digital assistants. When coupled with a profile such as the Mobile Information Device Profile (MIDP), it provides a solid Java platform for developing applications to run on devices with limited memory, processing power, and graphical capabilities.

    • JSR 36: Connected Device Configuration 1.0
    • JSR 37: Mobile Information Device Profile 1.0 (MIDP)

    The Mobile Information Device Profile (MIDP), when combined with the Connected Limited Device Configuration (CLDC), is the Java runtime environment for today's most popular compact mobile information devices, such as cell phones and mainstream PDAs.

    • JSR 46: Foundation Profile
    • JSR 62: Personal Profile Specification
    • JSR 75: PDA Optional Packages for J2ME

    - Add Remove phone contacts
    - Calandar events and recurring events
    - Alarms
    - File access, Secure Digital card, Memory Stick card
    - Ringtone location is platform dependent – but maybe accessible
    - No write access to system filesystem areas

    • JSR 82: Java APIs for Bluetooth

    - Search for Bluetooth devices
    - Query device profiles and capabilities
    - Open stream connection to device

    • JSR 118: Mobile Information Device Profile 2.0 (MIDP)

    Adds the following to MIDP1.0:
    - UDP/Sockets/Secure Sockets/Server Sockets and access to serial ports
    - Additional image formats (GIF / JPG / WMB)
    - PCM (Pulse Code Modulation) wave format and/or additional sampled/synthetic sound formats
    - Copy protection of MIDlet suites
    - Discovery/Installation of MIDlets via other mechanisms (InfraRed/Bluetooth/etc)
    - Custom 'built-from-scratch' UIs

    - Includes support for Short Message Service (SMS), Unstructured Supplementary Service Data (USSD) and Cell Broadcast Service (CBS)
    - Push capabilities (launching a MIDlet on message receipt)

    • JSR 129: Personal Basis Profile 1.0

    - Provides the Xlet application lifecycle as well as traditional Java Application lifecycle
    - Provides a GUI framework for lightweight component toolkits
    - Provides the full API from the Foundation Profile – less constraints than MIDP
    - Considered as functionally equivalent to Java 1.1.8 with a more modern JVM

    • JSR 135: Mobile Media API (MMAPI)

    - MMAPI provides support for accessing and controlling time-based media such as audio and video
    - MMAPI is a superset of MIDP 2.0 multimedia capabilities, adding support for playback and capture of image and video

    • JSR 139: Connected Limited Device Configuration 1.1 (CLDC)

    Add the following to CLDC 1.0:
    - Floating point maths support
    - Weak references support

    • JSR 172: J2ME Web Services Specification

    The purpose of this specification is to define an optional package that provides standard access from J2ME to web services.

    • JSR 177: Security and Trust Services APIs

    - Provides support for the management of user certificates
    - Provides support for user authentication using certificates
    - Allows for J2ME applications to communicate with SmartCard-based applications and also to general purpose encryption functionalities
    - Provides security through the addition of a Security Element usable in operations

    An Optional Package that enables developers to write mobile location-based applications for resource-limited devices. The API works on the J2ME CLDC v1.1 and CDC configurations.

    SIP API for J2ME defines a multipurpose SIP API for J2ME clients. It enables SIP applications to be executed in memory limited terminals, especially targeting to mobile phones.

    • JSR 184: Mobile 3D Graphics API for J2ME

    - Provide an efficient 3D Graphics API suitable for the J2ME platform (focused on CLDC/MIDP)
    - Supports scene graph API (high-level) and immediate API (low-level, subset of OpenGL)
    - Provides importer functions for textures, meshes, animations, and scene hierarchies
    - Includes tight integration with MIDP

    • JSR 185: Java Technology for the Wireless Industry (JTWI)

    This JSR provides an overall architectural description as well as an integrated TCK and RI to coordinate selected JCP efforts for the wireless industry.

    • JSR 195: Information Module Profile (IMP)
    • JSR 205: Wireless Messaging API

    - Extends JSR120 with support for Multimedia Message Service (MMS), MIME attachments and multipart messages
    - Allows for MMS content to be protected using Digital Rights Management (DRM)

    Enabling J2ME applications to handle multi-media and web content can give developers and users a seamless and integrated user environment on mobile phones and wireless devices.

    • JSR 216: Personal Profile 1.1
    • JSR 217: Personal Basis Profile 1.1
    • JSR 218: Connected Device Configuration 1.1.2
    • JSR 219: Foundation Profile
    • JSR 226: Scalable 2D Vector graphics API for J2ME

    This specification defines an optional package API for rendering scalable 2D vector graphics, including image files in W3C Scalable Vector Graphics (SVG) format.

    This specification defines an optional package for advanced multimedia functionality which is targeted to run as an supplement in connection with MMAPI (JSR-135) in J2ME/CLDC environment.

    • JSR 238: Mobile Internationalization API

    This JSR defines an API that provides culturally correct data formatting, sorting of text strings and application resource processing for J2ME MIDlets running in MIDP over CLDC.

    • JSR 239: Java Binding for the Open GL ES API
    • JSR 248: Mobile Service Architecture (MSA)

    MSA aims to reduce fragmentation for the Java community in two ways: MSA defines a clear set of component JSRs that must be supported (mandatory JSRs) on next-generation mobile phones. MSA gives less room for interpretation in the implementation of the JSRs by clarifying the conditions for interaction between them and for optional JSRs. The mandatory APIs supported through MSA include 3D graphics, personal information management, Bluetooth™, Scalable Vector Graphics (SVG), web services, location services and payment services for Java ME (Micro Edition). Sony Ericsson has supported several of these APIs in its earlier Java Platform versions but with MSA there is finally industry alignment and a clear set of expectations on the implementation of these JSRs. With MSA, the mass-market mobile phone becomes an increasingly capable platform for enterprise development and it will be possible to ensure secure data storage and communication and create new innovative applications. MSA reduces variations in the platform environment and creates a predictable environment for application developers, reducing porting issues when creating new applications and games for mass-market feature-rich phones.

    In addition to the above there are also a number of JSRs in process but yet not released. These are:

    • JSR 209: Optional Pckage for the J2ME Platform

    - Slimming operation of the Swing GUI toolkit from J2SE
    - Java 2D graphics engine preserved
    - Imaging API and Image load/save framework preserved
    - Input Method framework preserved
    - Pluggable Look And Feel dropped

    • JSR 230: Data Syncronization API
    • JSR 232: Mobile Operational Management
    • JSR 242: Digital Set Top Box Profile - "On Ramp to OCAP"
    • JSR 246: Device Management API
    • JSR 249: Mobile Service Architecture (MSA) Advanced
    • JSR 253: Mobile Telephony API
    • JSR 256: Mobile Sensor API

    The API provides general Sensor API that extends the usability and choice of sensors for J2ME applications. It defines generic sensor functionality optimized for the resource-constrained devices like mobile devices.

    • JSR 257: Contactless Communication API

    This specification defines J2ME Optional Packages for contactless communication, one package for bi-directional communication and the other for accessing read-only information. As currently proposed, JSR 257 would set the stage for both one-way and bi-directional data capture and data integration from RFID, barcode and other existing and standard approaches.

    • JSR 258: Mobile User Interface Customization API
    • JSR 259: Ad Hoc Networking API
    • JSR 266: Unified Message Box Access API (UMBA-API)
    • JSR 271: Mobile Information Device Profile (MIDP) 3.0

    Adds the following to MIDP2.0:
    - No information at the moment

    • JSR 278: Resource Management API for Java ME
    • JSR 279: Service Connection API for Java ME
    • JSR 280: General Purpose XML API for Java ME
    • JSR 281: IMS Services API
    • JSR 287: Scalable Vector Graphics API 2.0
    • JSR 290: Compound Document Format
    • JSR 293: Location API 2.0

    From: http://java.sun.com

    -- 11/14/2008 6:48:07 PM: post edited by justin.

    Posted: Sunday, June 29, 20089:08:54 PM      Add to watching list  |  Quote  |  Reply 
      

    Copyright 2010 © WINON       About Advertise Terms & privacy Links Contacts umnet