Modern age is the age of cell phones. Nowadays most new mobile phones are able to run downloaded external applications. These applications can be developed by using some programming languages. The most common are WAP/WML and I-mode/CHTML. At the moment these protocols are more widely used than J2ME, but J2ME has some advantage over the other two.
Java 2 Micro Edition (J2ME) is reduced version of the Java API and Java Virtual Machine. A key benefit of using J2ME is that J2ME is compatible with all Java-enable devices. A Java-enable device is any computer that runs the Java Virtual Machine. Motorola, Nokia, Panasonic and RIM all have Java enabled devices.
Now we discuss about the J2ME structure. J2ME architecture doesn’t replace the operating system of a small computing device. It’s architecture consists of layers located above the native operating system, collectively referred to as the CLDC (Connected Limited Service Configuration) which is installed on top of the operating system forms the run time environment for small computing device.
To ensure portability across the different devices a layer has been built that handles issues such as screen layout and button mapping. This layer has been called MIDP. MIDP is a set of J2ME APIs that define how software applications interface with cellular phones and two way pagers. Using this APIs a developer creates a program, called a MIDIet that can be developed on any of the supported devices (PDA’s, Cell Phones etc).
The main advantage is that it runs anywhere, any time, over any device (Java enable). Portability of the code is another advent.
The main disadvantages as compared to WAP and I-mode include: Limited GUI components and component placement. Installation overhead: before one can use an application it needs to be installed on the device. WAP pages can be called without installation procedures.