To date we have seen the first of many commercially available wireless devices using Java technology and this contributes to sixty percent of new mobile phones being sold to the consumer market. The worldwide adoption and high volume deployments of Java enabled handsets by wireless operators has generated tremendous interest in the developer and content community. As of today, research has it that developers have already downloaded over 150,000 copies of the Java 2 Platform, Micro Edition (J2ME) Reference Implementation.
Why all the interest? While wireless technology is taking off at rocket speed, today’s implementations lack the capabilities that experts say will ultimately be required for the widespread use of secure and compelling applications or services. Are there too great a number of challenging reasons when developing for this new type of mobile application and what more on the Java platform?
Figure out where to start
With all the attention on wireless, there are loads of “Coolness” driven pressures that take organizations on the wireless track immediately. Lets take a look at three different approaches being undertaken in organizations today:
- Building a new wireless application from scratch – To buy or build a new application could provide the cleanest approach since you can design the complete solution from the ground up for wireless. This can actually result in the fastest time-to-market.
- Extend an existing enterprise application – This approach can also provide good time to market and tends to be lower in cost. Typically you are leveraging fundamental components of existing systems, so integration isn’t so much an issue. Data and business requirements tend to be better known so deployment and user acceptance are greatly facilitated. Since this approach capitalizes on existing large-scale investments, the ROI on these projects is maximized with rapid payback.
- Enterprise-wide dedication to wireless – This strategy is one for highly risk-tolerant organizations. It is a way for your organization to anticipate the trends, commit to wireless as an imperative business strategy, invest early, and focus the entire organization on rapidly reviewing, understanding and addressing all aspects of the wireless organization.
Developing for mobile applications are challenging for several reasons:
- Many operating systems co-exist – The mobile operating system market is fragmented, and will remain in this state in the mid to longer term. The contenders in this market are several, i.e. Pocket PC, PalmOS, Symbian, Embedded Linux as well as Java Phone operating systems. A company wanting to seize a substantial user base for a mobile service might thus need to support more than one mobile operating system. Adapting the software for various platforms can be very expensive and time consuming, unless you have the right Middleware infrastructure in place.
- Many wireless standards co-exist – There are so many incompatible wireless network standards. Rolling out a mobile service worldwide or in a single country requires your software to support multiple networks. Again, without the right Middleware Infrastructure, such an endeavor is going to be expensive.
- Wireless issues – Do you synchronize your PDA over the mobile phone or have you tried to surf the Web on the train? As a matter of fact, wireless networks have some very user-unfriendly characteristics: Shadows in the network coverage, variations of the available bandwidth, sudden disconnections or intermittent communication links between your mobile device and a server. Again a rock solid Middleware Infrastructure will help your mobile services cope with these problems and will give the user the impression that the network is very fast and “always there”!
- User expectations – Users have been disappointed by the promise of WAP and are expecting from a communicator the same “quality of service” they get from a PC connected to the internet via cable. This would mean that applications on a communicator should not throw error windows at the user’s face when the network coverage is lost and the application should always be responsive to the user’s input. Mobile commerce transactions should neither be lost nor duplicated if they are submitted while the device is out of coverage. Therefore be preparation for high expectations from users and for calls to your support lines when your mobile application doesn’t work as reliably as the user expects.
- Vendor independence – Mobile applications should not tie you to a single hardware manufacturer, software vendor or network operator.
- Time to market – Communicators and smart phones have started to appear months ago. GPRS is a reality in many countries already. Your competitor has started to develop tools for mobilizing his work force. Setting up a mobile application platform on which your company can host mobile services takes time for training, systems integration, software development, testing and deployment. So you might have to start now if you want to roll out your first application with in the next 12 months.
Wireless providers and manufacturers cite five factors driving the move to Java technology on wireless devices:
- Dynamic delivery of applications and services – Unlike most devices today, next-generation phones and PDA’s will be able to download applications safely, in real time. If you’re stuck at the airport? You can download a game and play it on your phone. If you’re lost in a new city? Download a guidebook and find suitable hotels and restaurants.
- Cross-platform compatibility – Because applications written to the Java Technology Mobile Information Device Profile (MIDP) will run on multiple devices, you could run identical services on a variety of compliant devices. As long as it is written to the CLDC and MIDP profile specifications, you could download the same application on a Motorola phone, Nokia phone or a RIM handheld and they will run exactly the same. You won't have to recompile your application even though all those devices run different operating systems, use different microprocessors, and in some cases run different network protocols. This cross-platform compatibility is extremely important to wireless carriers, device manufacturers, and content providers.
- Enhanced user experience – Developers can write richer and more useful applications using Java technology than with the browser-based environments (e.g., WAP or i-mode) being used today. Java technology-based applications have richer graphics, with faster interaction. Existing working examples include downloadable city maps, games, and even interactive bidding on concert. The typical mobile applications we see people developing reflect the things that people already do on a daily basis: Email, News, Stock Trading, Calendaring, Games, and most importantly applications that enable access to your Enterprise applications and Data securely. While these applications will take advantage of upcoming generations in the wireless infrastructure (e.g., GPRS, W-CDMA, etc.), they can be deployed today on existing wireless data networks.
A variety of APIs are provided to enable developers to quickly create working components such as stock tickers. As long as your application is developed using the MIDP API’s, they are completely portable across devices.
- Disconnected access – Java technology phone applications can run even when a phone is disconnected or out of the coverage area. Applications that run on a WAP-enabled handset today, requires a connection all the time. If you're out of coverage, you're out of luck. But with Java technology-based applications, you are still going to be able to run most of your applications on the phones, and later on be able to synchronize with the backend infrastructure.
- Security – Next-generation phones will work over TCP/IP, and because it's easy to write portable Java technology applications that work over TCP/IP, the new generation of Java technology phones will introduce a new level of security to the wireless world. Mobile commerce is starting today with iMode and WAP, but it will really take off when there is TCP/IP and security end to end. Today's WAP phones retrieve and display data via a micro browser. Both models rely on gateways to do protocol conversions between Internet-oriented protocols (TCP/IP, SSL, etc.) and the wireless network. Because you have this gateway that does protocol conversion between the mobile phone and the back-end server, you have the potential for a security breach. You might have SSL between your Web server and gateway, but the moment in time you strip out SSL and put the data in another security format, such as WAP's WTLS, your data is potentially exposed on the carrier's network.
Meeting the Challenges
With the J2ME and J2EE platforms, you have everything you need to enable your enterprise for mobile access. In using Java technology to implement your entire end-to-end solution, you fully leverage the ease of the Java programming language, as well as its scalability and portability. On the server side, you can develop your J2EE applications and have them deployed on any J2EE-branded application. The J2EE standards ensure that your business gets a choice of servers appropriate to the strategic purpose of your application. On the client side, you can develop your MIDP application using the J2ME specifications and provision it onto any MIDP-compliant device, whether it’s a mobile phone, PDA or two-way pager. This allows you to serve a wider range of clients, making your enterprise even more accessible.
Only a sound Middleware Infrastructure allows you to develop mobile services by addressing the problems we outlined under “Deployment Challenges” and reap the benefits of increased programmer productivity, better strategic use of computing resources and a greater ROI on an organization’s investments.
Java Developer Community Initiative
To fuel this worldwide momentum, there are a number of Java Wireless Developer Initiatives that will provide a centralized support channel for the rapid growing number of developers worldwide. The objectives for these initiatives are two fold – 1: To ensure the ease of adoption and harnessing the power of Java Technology for wireless development; 2: To simplify the process of getting wireless solutions to market with operators and device manufacturers.
Ultimately, the Developer initiative will encompass a wide range of application development support that includes development tools, white papers, technical materials etc. These resources enable developers to learn, develop, test and deploy wireless applications and services easily.
In the 1990s we saw the arrival of sophisticated Customer Relationship Management applications as a prime target for mobilization. Towards the end of the decade, handheld devices began the transformation from personal organizers into centrally managed extensions of the existing IT environment. Likewise, we’ve seen the types of back end integration points for mobile computing grow from just relational database servers to also include Email, file and intranet servers as well.
Seen this way, wireless represents a new option within one layer of the very dynamic and fast growing space of enterprise mobile computing. What is driving this change? Increased mobility, the ever increasing pace of business, and rapid advances in technologies. All these factors combine to make mobile computing ever more promising and increasingly a basic requirement to competing successfully. Wireless is the latest advancement and it merits cautious investigation and investment.
In many cases, the unique benefits wireless can bring make it worth dealing with the challenges. Your organization may find innovative ways to wirelessly enable existing business applications. You might find value in formally embracing handhelds and speeding deployment with or without wireless. It all comes back to the business process being supported, and how that translates into the overall solution.
Keep in mind that next generation wireless networks will mitigate these challenges sooner or later, and that wireless will emerge a truly strategic enabling technology. As such, we believe that IT organizations are well served to cut their teeth on wireless today in order to begin building core competencies for the future.
Gavin Tay is the product specialist at Borland (Singapore).