"Java everywhere" is for world domination

Why the latest wireless buzz matters to all developers

1 2 Page 2
Page 2 of 2

Several projects have already started to help integration between the J2EE back end and J2ME front end. They include the previously mentioned Project Relator from Sun, the J2ME Web Services API, and IBM's WebSphere Studio Device Developer IDE.

Now let's look at exactly where J2EE developers fit in building smart client-based enterprise solutions.

Skill transfer

In a smart client solution, the client-side developer takes the driver's seat. The smart client controls the application's complete flow and data logic. The back end is just an RPC (remote procedure call) end-point, a remote peer, or a message recipient buried in the application to delegate some heavy tasks from the mobile device.

Designing and implementing such sophisticated applications requires considerable skills. Enterprise Java developers are trained for complex design patterns and coding best practices. Transferring their skills to a new arena is easy. Here are just some examples on how you can apply your J2EE skills in a mobile application:

  • The Sun wireless blueprint application, Java Smart Ticket, is a good example for end-to-end MVC designs. The entire J2EE back end is behind a façade inside the model layer.
  • The IBM Service Management Framework is an implementation of OSGi (Open Services Gateway Initiative) containers. It allows us to run Java servlets right on a PDA device. The PDA's native HTML browser accesses the servlet on a local host. The servlet can then retrieve data from backend services. It acts as a smart client from the backend point of view. The OSGi framework handles application provisioning, life cycle management, and common application services (e.g., logging). Developers can apply familiar J2EE design patterns and best practices to the J2ME application.
  • Several relational database engines are already available on J2ME devices including the smallest MIDP phones. Those mobile databases synchronize with backend enterprise databases to support low bandwidth or occasionally connected mobile applications. Common JDBC (Java Database Connectivity) and data persistence best practices are directly applicable here. For more information on J2ME mobile databases, please refer to one of my previous Wireless Java columns, "High-Availability Mobile Applications" (June 2003).

More discussions on mobile application design patterns and best practices can be found in my upcoming book Enterprise J2ME.

Client-side Java revolution begins

The central message from this year's JavaOne is that the long overdue Java client-side revolution has finally arrived in the form of "Java everywhere." To paraphrase JavaOne keynote speaker Guy Laurence from Vodafone: the Java mobility train has already left the station, you are either on board or not. Every time you pick up your Java-enabled cell phone, think about the opportunities you might have missed.

Michael Yuan is a PhD candidate at the University of Texas, where he is a research associate at the Center for Research in Electronic Commerce and an open source Java developer.

Learn more about this topic

This story, ""Java everywhere" is for world domination" was originally published by JavaWorld.

Copyright © 2003 IDG Communications, Inc.

1 2 Page 2
Page 2 of 2