Extending J2EE for Mobile Application Development
The mobile environment possesses a unique set of peculiarities not characteristic for anything else. From wireless networks to constantly growing variety of mobile handsets, the mobile environment creates many new challenges to development of software applications. The effect of these challenges on development of server-side software requires a regular at the software infrastructure level. Without this resolution, software engineers will have to produce point solutions, custom code, and patches.
Server side technology J2EE is primarily designed to cover the challenges of Web-based application development. Though it was designed to be flexible and scalable to meet the new technology requirements, no augmentation of the J2EE standard has yet occurred to address the challenges of developing mobile applications. The market conditions and the desire to make mobile applications an enterprise workforce made point solutions and custom coding the widespread practices. J2EE technology is till the instrument to extend support to and standardize mobile application development.
We will explore the basic architecture of J2EE, its flexibility, extensibility which will enhance mobile application development.
Understanding Mobile Application Development Challenges
More and more new mobile devices flood global markets and each of them offers various configurations. Some devices, like personal digital assistants and Pocket PCs, possess sufficient memory, color screens, and sound capabilities, whereas the rest provide black-and-white displays and limited memory. Some handsets are shipped with integrated browsers, whereas the rest concentrates on client-side applications. Sometimes even the same devices with the same configuration and browsers that support the same markup language may may often interpret the markup language differently.
Lots of mobile handsets are able to support Java via a micro version of the Java Virtual Machine called Kilo Virtual Machine. KVM runs not only Java applications built for mobile handsets – better known as J2ME applications – but also supports an excellent user interface and off-line functionality.
Anyway, the main distinctive feature of these applications is server-side interaction. Such applications rely on server-side logic to retrieve appropriate data and communicate via Internet standard protocols. In this case server undertakes the bulk of coordination burden; the server-side application must support the range of comprehensive devices and at the same time enable for full-featured utilization of a device. In the event of browser-based applications (WML, c-HTML), much depends on the type of content – it must be properly formatted to be displayed on the screen and browser. A significant amount of server-side logic is required even in the case of J2ME applications.
The development of applications is also affected by wireless networks. Limited bandwidth, high latency, etc. often plague wireless networks.
The trend of total mobility also creates a new application paradigm which involves multi-modal device access, when user is able to swap devices and access methods such as voice and data in the middle of an application. Such applications may require non-HTTP messaging models for notifications, services bound to location, and in some cases even a new security model.