PRODUCT SUPPORT ANNOUNCEMENT
Some videos and Web Editions may be returning errors on launch. Learn more.
Industrial-strength J2ME™ for enterprise developers, architects, and decision-makers
J2ME offers an extraordinarily flexible and robust platform for developing mobile applications with enterprise-class performance, reliability, and value. Now, leading mobile developer Michael Yuan covers every aspect of building industrial-strength applications with J2ME: design, architecture, tools, processes, business issues, and more.
Yuan introduces innovations that make the platform even more powerful, ranging from new J2ME profiles and wireless messaging APIs to mobile databases and web services tools. These innovations allow existing Java™ developers (especially J2EE™ developers) to leverage their skills and add mobility to enterprise applications. Yuan also presents more than a dozen complete sample applications—including the application that earned him the grand prize in Nextel, Sun, and Motorola’s nationwide wireless developer contest. Coverage includes:
Download the complete source code and build instructions for the example applications related to this title.
To facilitate your work with the resources mentioned in the text, below please find links to Web-based references mentioned at the end of the chapters.
Download the Sample
Chapter related to this title.
About the Book.
I. INTRODUCTION.1. Mobile Commerce: Visions, Realities, and Opportunities.
Mobile Commerce Value Propositions. Mobile Technology Adoption. The Search for Killer Mobile Applications. Mobile Commerce Landscape. Summary. Resources.2. J2M 2ME: Is Mobile Java Ready for Enterprise?
Why Java? The Java Community Process. Java Everywhere. Java 2 Micro Edition Explained. Competing Technologies. Summary. Resources.
II. END-TO-END ENTERPRISE APPLICATIONS.3. The Smart Client Paradigm: iFeedBack.
Benefits of Smart Clients. Introducing iFeedBack. iFeedBack Usage Scenarios. Implementation Walk Through. Summary. Resources.4. Managed Smart Clients.
Container-Managed Applications. OSGi Containers. A Simple Echo Service Example. Smart Client with HTTP Front End. Mobile Gateways. Summary. Resources.5. Mobile Design Patterns: The Smart Ticket Blueprint.
Getting Started. Smart Ticket in Action. Important Architectural Patterns. Implementation Techniques. Summary. Resources.6. Advanced HTTP Techniques.
The Decorator Approach. The Process-Chain Approach. Session Tracking via HTTP Cookies. HTTP Basic Authentication. HTTP Digest Authentication. Secure HTTP. Summary. Resources.7. End-to-End Best Practices.
Limited Device Hardware. Slow, Unreliable Networks. Pervasive Devices. Ubiquitous Integration. The Impatient User. Summary. Resources.
III. MOBILE MESSAGING APPLICATIONS.8. Email and PIM.
Basics of Email. Introducing Mail4ME. The JavaPhone API. The PDA Optional Package. Commercial Email and PIM Suites. Corporate Portal Servers. Summary. Resources.9. Converged Mobile P2P 2P Messaging.
Introducing the Wireless Messaging API. WMA in Action. WMA Reference Implementation. SMS from the Backend. Beyond SMS: The IM Convergence. SIP-Based IM Applications. Summary. Resources.10. Enterprise Messaging.
Mobile Enterprise Messaging. Introducing the JMS. Mobile JMS from iBus//Mobile. The IBM WebSphere MQ Everyplace. Summary. Resources.
IV. MOBILE DATABASES AND SYNCHRONIZATION ENGINES.11. Mobile Database for CDC Devices.
Database on the Go. Introducing JDBC. Portable and Efficient Code Using PreparedStatement. Access Stored Procedures Using CallableStatement. The JDBC Optional Package for the CDC. HSQL Database Engine. iAnywhere Solutions SQL Anywhere Studio. IBM DB2 Everyplace. Oracle9i Lite. PointBase Micro Edition. Example Application: Contact Manager. Summary. Resources.12. Mobile Databases for MIDP DP devices.
PointBase Micro Edition. The Oracle J2ME SODA SDK. The IBM DB2e FastRecordStore. Summary. Resources.13. Database Synchronization.
Synchronization and Mobility. PointBase UniSync. IBM DB2 Everyplace. iAnywhere Solutions MobiLink. Oracle9i Mobile Server. The Synchronized Contact Manager. Summary. Resources.14. Access Backend Databases.
Direct Access to Remote Databases. The Oracle J2ME SQL SDK. Legacy Applications. Using Simplicity for Legacy Databases. Summary. Resources.
V. XML AND MOBILE WEB SERVICES.15. XML for Small Devices.
What Is XML? Challenges for Small Devices. XML Parsing Models. Introducing Amazon XML Services. Amazon Services via XmlPull. Amazon Services via kDOM. A Mobile RSS Client. Summary. Resources.16. SOAP Web Services on Smart Clients.
What Is SOAP Web Services? Introducing kSOAP. kSOAP Explained. Advanced kSOAP. More kSOAP Examples. What's in kSOAP v2.0? Summary. Resources.17. The J2M 2ME Web Services Optional Package.
A Little History. The XML Processing API. The JAX-RPC API. The SPI for Implementers. Compare with kXML and kSOAP. Summary. Resources.18. Case Study: Mobile Clients for Location on-Based Services.
Location-Based Service. Microsoft MapPoint Web Services. MapPoint J2ME Clients. Enhancing the Driving Directions Application. Summary. Resources.
VI. ADVANCED MOBILE SECURITY.19. Mobile Security for Enterprise.
What Is Advanced Mobile Security? Lightweight Mobile Cryptography Toolkits. Bouncy Castle Lightweight API. The IAIK ME JCE. Phaos Technology Micro Foundation Toolkit. NTRU jNeo for Java Toolkit. B3 Security. Device-Specific APIs. Standardization of J2ME Security APIs. Summary. Resources.20. The J2M 2ME Crypto Recipes.
Overview of Recipes. Symmetric Encryption. Password-Based Encryption. Public Key Encryption. Digital Signature. Summary. Resources.A: Basics of J2M 2ME Application on Development.
Life Cycle Methods. UI Model. Remote and Local Data. Code Walkthrough. Packaging and Building. Deployment. Summary.B: Tools and J2M 2ME Runtimes for PDAs.
Overview of the WebSphere Studio Device Developer. Installing MIDP on PocketPC Devices. Installing Personal Profile on PocketPC Devices. Run Java Applications on the PocketPC Device. Summary.Index.
This book targets all mobile software developers and business decision makers. It focuses on end-to-end architectural patterns, best practices, key innovations, and real-world design approaches. For different readers, this book offers different benefits:
To fully understand the technical content in this book, the readers should be familiar with the basic Java 2 Micro Edition, Mobile Information Device Profile (J2ME/MIDP) APIs and development tools. A quick MIDP programming guide is provided in Appendix A.
To run the end-to-end sample applications, you will need to deploy the serverside components to your own Java application server and run the clientside components on the desktop emulator or real devices. Please refer to the product manuals of your tools for step-by-step instructions.
Although serverside Java is not the focus of this book, familiarity with basic Java 2 Enterprise Edition (J2EE) concepts such as servlets, Java DataBase Connectivity (JDBC), Java Messaging Service (JMS), Java XML processing, and Enterprise JavaBean (EJB), will help you understand various topics in this book.
This book is divided into six parts:
This book uses complete example applications to demonstrate design patterns, best practices, and important API usages. Since this book discusses a wide range of technologies, innovations, and application scenarios, it is impractical to cover everything within a monolithic example. Instead, I decided to develop several small to midsize samples, each focusing on a particular topic. This approach allows the readers to partition the learning task and read one part of this book at a time.
The source code is presented in easy-to-digest segments that are relevant to the discussion text. Nonessential parts of the code (e.g., exception handling, importing packages) are often deliberately omitted from the listings for clarity. Hence, the printed listings are suffcient for understanding the ideas but are not directly runnable code.
This book covers and compares more than 30 toolkits and libraries from more than a dozen third-party vendors. The descriptions and API usage examples of those products are intended to give the readers a solid technical ground to make informed comparisons and decisions. They also serve as realworld examples for API and tool designs. However, they do not substitute for the formal product documentation from the vendor. I strongly encourage interested readers to obtain the latest evaluation package and documentation from the vendor to investigate further.
Some of the materials used in this book are loosely based on articles I published previously on several online magazines.
This book is produced by the Latex typesetting system on a 1GHz Apple PowerBook running Mac OS X—the best consumer operating system ever produced. Microsoft Word is used for collaborative editing and reviewing. The figures are made with Microsoft Visio, OmniGra2e, GIMP, and the ImageMagick utilities.
The example applications are developed using a variety of development tools, including VI, JEdit, IntelliJ IDEA, and the WebSphere Studio Device Developer IDE. Apache Ant is used to build the applications. Mobile clients are tested on many vendor SDKs, including those from Sun Microsystems (the J2ME Wireless ToolKit), IBM (the WebSphere Micro Environment), Nokia, and Motorola. Real device testing was conducted on Motorola i95cl, Nokia 7210, Nokia 6800, and PocketPC Phone devices.
Download the Index
file related to this title.