Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Overview of Java Micro Edition Introduction ● ● ● ● Brief history of the Java platform. In many ways, today's Java Platform, Micro Edition (JME) is a return to the technology's origins. The JME defines a set of APIs and runtime environments targeted at embedded and consumer devices, such as wireless handhelds, PDAs, TV set-top boxes, and other devices that lack the resources to support a full JSE implementation. The JME platform does not define a new language; it adapts existing Java technology for handheld and embedded devices. JME maintains compatibility with JSE wherever feasible. In fact, JME is as much about removing unnecessary parts of JSE (or JEE) as it is about defining new classes to address the stricter limitations of small devices. JME, JSE, JEE The three editions of the Java platform Java Micro Edition ● ● The JME platform specifically addresses the rapidly growing space of consumer electronic. The devices can be divided into two groups: – personal, mobile, connected, information devices, such as cellular phones, pagers, and organizers; – shared, fixed, connected, information devices, such as set-top boxes, Internet TVs, and car entertainment and navigation systems. The JME platform defines a set of tools that can be used with these devices: – a Java Virtual Machine (KVM, CVM, etc); – API libraries for consumer device application programming; – deployment and device configuration tools. JME Organization ● Rather than a single, monolithic platform with a large footprint, JME is a multilayered organization of software bundles of three types: configurations, profiles, and optional packages. – A configuration provides fundamental services for a broad category of devices. – A profile supports higher-level services common to a more specific class of devices. – An optional package adds specialized services that are useful on devices of many kinds, but not necessary on all of them. JME Configurations ● ● ● ● ● A configuration defines the basic (lowest common denominator) JME runtime environment. This includes the virtual machine and a set of core classes derived primarily from JSE. Each configuration is geared for a family of devices with similar capabilities. Up to now, two configurations have been defined: – the Connected, Limited Device Configuration (CLDC); – the Connected Device Configuration (CDC). At the heart of the CLDC implementation is the KVM, a truly minimal and almost complete Java Virtual Machine, small enough to fit in tens of kilobytes. The CDC reference implementation uses the Compact VM (CVM), a JVM with full JSE 1.3 VM support that is more portable, more efficient, and smaller than the standard JSE VM. As a full-featured JVM, the CVM supports almost all of the advanced features of a JSE VM, including lowlevel debugging and native programming interfaces. Connected, Limited Device Configuration (CLDC) Connected Device Configuration (CDC) Description Typically targeted at low-end, resourceconstrained devices with limited connectivity. At the heart of this configuration is a VM like the KVM, with some JSE capabilities removed. Typically targeted at less restrictive high-end connected devices. At the heart of this configuration is a VM like the CVM, with full JSE capabilities. Device CDC and CLDC Devices with 16-bit or 32-bit processors, at least 160KB of non-volatile (persistent) memory, and at least 32KB of volatile memory (a total of 192KB of memory) and some type of network connectivity, such as cellphones, two-way pagers and lowend PDAs. Devices with 32-bit processors, at least 2MB of total memory, and some type of network connectivity, such as high-end PDAs or sophisticated embedded devices. CLDC ● ● ● The Connected, Limited Device Configuration is a minimal JME configuration that contains a small subset of the standard (JSE) core Java language packages and classes tailored for the constrained devices. In addition, the CLDC introduced the new Generic Connection Framework (GCF) package, javax.microedition.io. Java packages included in the CLDC – java.io – java.lang – java.lang.ref (CLDC 1.1 only) CDLC subset in support of weak references – java.util CDLC subset of J2SE Java utilities classes – javax.microedition.io network support based on the Generic Connection Framework CDLC subset of core Java programming language classes The Generic Connection Framework – ● CDLC subset of system input and output through data streams The Generic Connection Framework (javax.microedition.io) was introduced to support I/O in devices that lack the memory to use the larger java.net and java.io packages. The GCF is a straightforward hierarchy of interfaces and classes to create connections (such as HTTP, datagram, or streams) and to perform I/O. Enhancements in CLDC 1.1 include introduction of float and double data types, support for weak references, and other improvements. CDC ● The CDC is a superset of the CLDC, it includes all the classes defined by the CLDC, including any new ones not included in JSE, such as the Generic Connection Framework. ● CDC Java packages – java.io CDC subset of system input and output through data streams, serialization, and the file system – java.lang CDC subset of the core Java programming language – java.lang.ref – java.lang.reflect For obtaining reflective information about classes and objects – java.math CDC subset of classes for performing arbitrary-precision integer arithmetic – java.net – java.security – java.security.cert – java.text For handling text, dates, numbers, and messages in a manner independent of native languages – java.util CDC subset of collections, date and time facilities, and internationalization – java.util.jar For reading JAR (Java archive) file format, – java.util.zip CDC subset of classes for reading the standard ZIP file format – javax.microedition.io Supports a limited degree of interaction with the garbage collector CDC subset of classes for implementing networking applications CDC subset of classes and interfaces for the security framework CDC subset of classes and interfaces for parsing and managing certificates Network support based on the Generic Connection Framework Profiles ● ● ● A profile extends a configuration, adding domain-specific classes to the core set of classes provided by the configuration. Profiles provide classes that are geared towards specific uses of devices and provide functionality missing from the base configuration - application life-cycle, user interface, network connections, persistence mechanisms, security features, and so on. CLDC-based profiles include the Mobile Information Device Profile (MIDP) and the Information Module Device Profile (IMP). – ● ● The CLDC in itself is very limited. It provides no classes for driving the user interface, or for maintaining information locally in the device, or for accessing the network. That type of functionality is provided by the profiles, or by optional packages. CDC-based profiles include the Foundation Profile (FP), the Personal Basis Profile (PBP), and the Personal Profile (PP). Multiple profiles can exist within the same configuration. MIDP ● The Mobile Information Device Profile (MIDP) is the first and most mature JME profile. MIDP is based on the CLDC and is currently supported by major device manufacturers such as Motorola, Nokia, SonyEricsson, and RIM, and by carriers like SprintPCS, Nextel, and NTT DoCoMo. Many independent software vendors also support MIDP. ● ● Device requirements for MIDP – Display screen-size: 96x54; display depth: 1- bit; pixel shape (aspect ratio): approximately 1:1; – Input one or more of the following user-input mechanisms: one-handed keyboard, two-handed keyboard, or touch screen; – Memory 256 kilobytes of non-volatile memory for the MIDP implementation, beyond what's required for CLDC; 8 kilobytes of non-volatile memory for application-created persistent data; 128 kilobytes of volatile memory for the Java runtime; – Networking two-way, wireless, possibly intermittent, with limited bandwidth; – Power limited power, typically battery-operated. IMP: similar to MIDP but without support for graphical user interfaces. To be used with vending machines and similar. MIDP 1.0 and 2.0 ● ● ● MIDP 2.0 enhanced version 1.0 quite a bit. Even though the MIDP specification indicates the use of CLDC 1.0, nothing would preclude MIDP 2.0 (or 1.0) using CLDC 1.1 as its base. In addition to the MIDP 1.0 APIs for networking, user interfaces, local persistence, and MIDlet life-cycle, MIDP 2.0 adds APIs for: – networking, including socket (TCP) streams, UDP datagrams, serial, push-initiated, and secure connections, – a security API and policy; – APIs for sound and gaming. MIDP 2.0 also formally includes in the profile specification an update of the MIDP 1.0 Over the Air (OTA) User Initiated Provisioning recommendation, which describes how applications are to be discovered and downloaded over wireless networks. MIDP Mobile Information Device Profile Java packages: – java.io MIDP subset of system input and output through data streams; – java.lang MIDP subset of the core Java programming language; – java.util a small subset of utility classes; – javax.microedition.io Networking support using the Generic Connection Framework; MIDP 2.0 includes new socket, UDP, serial, and secure connection types, and push functionality; – javax.microedition.lcdui MIDP user interface classes; – javax.microedition.lcdui.game gaming classes such as sprites, game canvas, and layer manager (2.0 only); – javax.microedition.media the interfaces for controlling (Control) and rendering (Player) audio - sound classes compatible with the Mobile Media API specification (2.0 only); – javax.microedition.media.control – javax.microedition.midlet the application (MIDlet) interface, its life-cycle classes and its interactions with the runtime environment, and the application manager; – javax.microedition.pki public key class for certificates used to authenticate information for secure connections; – javax.microedition.rms persistence classes for storage and retrieval of data. sound-control classes (ToneControl and VolumeControl) compatible with the Mobile Media API specification (2.0 only); Device Description CDC-based Core Profiles Foundation Profile Personal Basis Profile Personal Profile Extends the CDC, adding to it more JSE classes. This profile provides APIs for applications running on small devices that have some type of network connection but no user interface capabilities. It provides extra security classes. It acts as a foundation for building other profiles. Extends the CDC and is built on top of the Foundation Profile. This profile provides a lightweight subset of the AWT user-interface classes. It is a subset of (or upward compatible with) the Personal Profile Redefines the PersonalJava application environment as a JME profile. The Personal Profile extends the Foundation Profile and is a superset of the Personal Basis Profile, providing a more complete set of the AWT, including its heavyweight APIs. Devices with no user interface requirements but with secure network connectivity needs such as "headless" dedicated, connected, embedded devices. Devices that require a simple user interface (graphics, images, widgets) and secure network connectivity such as automotive devices, consumer devices, or simple appliances. Devices that require advanced user interface and secure network connectivity, such as high-end PDAs, set-top boxes, and other highend appliances. Optional packages ● ● Optional packages are profile extensions: each adds specific functionality to one or more profiles. When a new API is created to extend a profile, it first is defined as an optional package. If over time an optional package earns widespread adoption, it may become part of one or more profiles. Most important optional packages: – the Java APIs for Bluetooth; – the Wireless Messaging API; – the Mobile Media API; – the RMI Optional Package; – the JDBC Optional Package for CDC/Foundation Profile; – Web Services for JME; – Location API. Problems ● ● ● Fragmentation is a major issue – ideally, a Java ME application should run on any device; – in practice, there are various problems. Different types of fragmentation: – device-level fragmentation (screen sizes, etc.); – standards fragmentation; – implementation fragmentation; Efforts to reduce fragmentation. Java Technology for the Wireless Industry ● ● Java Technology for the Wireless Industry (JTWI) specification defines a common architecture and programming interface for wireless handsets. JTWI then enforces the following: – Minimum Configuration: CLDC 1.0 – Mandatory Specifications: MIDP 2.0, WMA 1.1 – Conditionally Required Specification: MMAPI 1.1 Mobile Service Architecture ● Umbrella specification that combines number of existing JSRs and provide clarifications to JSRs – ● to replace JTWI, reduce fragmentation Devices started to ship in 2007 – lots of devices from major vendors like SonyEricsson, Nokia, etc. Examples of applications (CLDC+MIDP) ● J2MEMap is a small interface to GoogleMap that allows you to do the following things: – – – – – Browse the entire GoogleMap database (satellite or map view) Switch from GoogleMap/Satellite, MSN Virtual Earth Maps, etc. Zoom in/zoom out Save your favorite locations Use an embeeded GPS if present, to be automatically located Examples of applications (CLDC+MIDP) ● ● QuickIM is an instant messenger software compatible with MSN Messenger for J2ME MIDP 2.0 phones. Gmail mobile Email client access the Gmail services. to Examples of applications (CLDC+MIDP) ● ● Games Remote Desktop for Mobiles allows you to access remotely your desktop or laptop computer from Java powered phone Examples of applications (CDC) ● Applications for TV set-top-boxes (digital terrestrial TV, Blu-Ray) Number and competitors ● ● Numbers: – 2.5 Billion Java-Enabled Phones – 3.5 Billion Java Card – 20 Million Java Set-top Boxes Competitors (in the mobile phone market): – iPhone – Android – Symbian OS – Windows Phone