ࡱ> 2FH !"#$%&'()*+,-./0123456789:;<=>?@ABCDEKttl5@ R0bjbj22 XX~$H`2&2&2&$d7P! d7!b,~.["@[V[l[r:Ѭ U$RիT i2&)5nr)) >!>!V[l[uX444)>!V[2&l[U4)U445fi$b2&pl[, j# mDq3ͦT!m)I#rpV&4 04 b>!>!r2&pu^ 4L   d7d7H4(d7d7      Acknowledgements To my mentor and supervisor Professor Peter Clayton, for permanently keeping his door open to me, for always being willing to listen and help out in any way possible. The guidance received from him has been invaluable. But if I were to use only one word to describe my thoughts, it would be trust. It is his trust in me that has made my research go smoothly; given me confidence; and above all it is this quality that makes him a respectable man! To my parents, my dad Jianmin Zhao and my mom Danhua Jia: although we are ten thousand miles apart, my heart has not left you. Without your selfless support, I could not possibly have gotten to this stage in my life. It is your love that gives me a clear mind and helps me to conquer all difficulties; it is your love that makes you irreplaceable! To my girlfriend Tammy for all the happiness and love she brings to me! To my best friend Tim, Raymond and Ellen for all the good time we spent together! To Helen for the proofreading! To all the staff and my colleagues in our department for your constant support! To my country for making me so proud! This work was undertaken in the Distributed Multimedia Centre of Excellence (CoE) at Rhodes University, with financial support from Telkom, Lucent Technologies, Dimension Data, and THRIP. We also acknowledge the bursary support from National Research Foundation (NRF) and Microsoft.  Abstract With the rapid development of wireless technologies, traditional mobile devices, such as pagers and cellular phones, have evolved from a purely communications and messaging-oriented medium to one that supports mobile data communication in general and acts as an application platform. As shown in a recent survey conducted by MDA, easy access to the present-day wireless Internet has resulted in mobile devices gaining more and more attention and popularity. The growth of and demand for mobile Web applications is expected to increase rapidly in the near future, as a range of software companies and mobile device manufacturers release increasingly accessible tools for creating mobile Web application and services. From a variety of possible development environments of this kind, the author has selected and examined two leading contenders, the J2ME and the Microsoft .NET mobile Web application development environments. This document reports the product life cycle of pilot mobile web applications, designed and implemented in each host environment in turn. A feature-by-feature investigation and comparison of the J2ME and .NET environments was carried out, covering the range of issues necessary for a complete mobile Web application development life cycle. The resulting analysis addresses features and efficiencies of the application development environment and the target deployment environment, the degree to which the resultant services are compatible on a variety of platforms, and the ease with which applications can be designed to be extensible. The thesis offers an objective evaluation of the J2ME and the .NET mobile development environments, which highlights their strengths and weaknesses, and suggests guidelines for designing, creating, and deploying high quality mobile Web applications. The research uncovers no clear winner across all categories assessed. J2ME currently favours situations in which bandwidth is limited and client side processing power is relatively sufficient, it exerts the processing power of mobile devices over distributed network environments. .NET requires a less constrained network throughput, but performs adequately on clients with more limited processing power, supports a more diverse target platform range, and offers a more efficient, in terms of development time, development environment. Both technologies are likely to receive significant user support for some time. The White Rabbit put on his spectacles. 'Where shall I begin, please your Majesty?' he asked. 'Begin at the beginning,' the King said gravely, 'and go on till you come to the end: then stop. Lewis Carroll, Alice's Adventure in Wonderland List of Acronyms ADO ActiveX Data Object ARPANet Advanced Research Projects Agency Network ASP Active Server Page AWT Abstract Windows Toolkit CDMA Code Division Multiple Access CDPD Cellular Digital Packet Data CGI Common Gateway Interface CHTML Compact Hyper Text Markup Language CLDC Connected Limited Device Configuration DARPA Defence Advanced Research Projects Agency EJB Enterprise JavaBeans GIS Geographical Information System GPRS General Packet Radio Service GPS Global Positioning System GNU GNU is Not Unix GSM Global System for Mobile Communication HSCSD High Speed Circuit Switched Data HTML Hyper Text Markup Language HTTP Hyper Text Transport Protocol IDE Integrated Development Environment J2EE Java 2 Platform Enterprise Edition J2ME Java 2 Platform Mobile Edition J2SE Java 2 Platform Standard Edition JAD Java Application Descriptor JAR Java Archive JCP Java Community Process JDBC Java Database Connectivity JSP Java Server Page JVM Java Virtual Machine MDA Mobile Data Association MIDP Mobile Information Device Profile MIT Massachusetts Institute of Technology OLE Object Link and Embed PDAP Personal Digital Assistant Profile RAD Rapid Application Development SDK Software Development Kit SMS Short Message Service SMTP Simple Mail Transport Protocol SQL Structured Query Language SSL Security Sockets Layer TDMA Time Division Multiple Access WAE Wireless Application Environment WAP Wireless Access Protocol WAR Web component archive WDP Wireless Datagram Protocol WLAN Wireless Local Area Network WML Wireless Markup Language WSP Wireless Session Protocol WTLS Wireless Transport Layer Security WTP Wireless Transaction Protocol WWAN Wireless Wide Area Network XML eXtensible Markup Language Table of Contents  TOC \o "1-4" \h \z  HYPERLINK \l "_Toc37061182" List of Acronyms  PAGEREF _Toc37061182 \h v  HYPERLINK \l "_Toc37061183" Chapter 1: Introduction  PAGEREF _Toc37061183 \h 1  HYPERLINK \l "_Toc37061184" 1.1 Background introduction  PAGEREF _Toc37061184 \h 1  HYPERLINK \l "_Toc37061185" 1.1.1 The Internet evolution  PAGEREF _Toc37061185 \h 1  HYPERLINK \l "_Toc37061186" 1.1.2 Mobile Internet and the wireless communication  PAGEREF _Toc37061186 \h 2  HYPERLINK \l "_Toc37061187" 1.2 Project introduction  PAGEREF _Toc37061187 \h 2  HYPERLINK \l "_Toc37061188" 1.2.1 Primary goal of the project  PAGEREF _Toc37061188 \h 3  HYPERLINK \l "_Toc37061189" 1.2.2 Experimental approach  PAGEREF _Toc37061189 \h 3  HYPERLINK \l "_Toc37061190" 1.3 Foundation  PAGEREF _Toc37061190 \h 3  HYPERLINK \l "_Toc37061191" 1.4 Chapter review  PAGEREF _Toc37061191 \h 4  HYPERLINK \l "_Toc37061192" Chapter 2: Wireless Communications and Protocols  PAGEREF _Toc37061192 \h 5  HYPERLINK \l "_Toc37061193" 2.1 Categorizing wireless communications  PAGEREF _Toc37061193 \h 5  HYPERLINK \l "_Toc37061194" 2.1.1 Paging communication  PAGEREF _Toc37061194 \h 5  HYPERLINK \l "_Toc37061195" 2.1.2 Cellular communication  PAGEREF _Toc37061195 \h 7  HYPERLINK \l "_Toc37061196" 2.1.3 Mobile data communication  PAGEREF _Toc37061196 \h 9  HYPERLINK \l "_Toc37061197" 2.1.4 Wireless communication comparison and summary  PAGEREF _Toc37061197 \h 11  HYPERLINK \l "_Toc37061198" 2.2 Mobile web protocols  PAGEREF _Toc37061198 \h 12  HYPERLINK \l "_Toc37061199" 2.2.1 Wireless access protocol (WAP)  PAGEREF _Toc37061199 \h 12  HYPERLINK \l "_Toc37061200" 2.2.1.1 WAP protocol architecture  PAGEREF _Toc37061200 \h 12  HYPERLINK \l "_Toc37061201" 2.2.1.2 WAP network communication architecture  PAGEREF _Toc37061201 \h 13  HYPERLINK \l "_Toc37061202" 2.2.1.3 Language for WAP mobile Web application - WML  PAGEREF _Toc37061202 \h 14  HYPERLINK \l "_Toc37061203" 2.2.2 imode  PAGEREF _Toc37061203 \h 15  HYPERLINK \l "_Toc37061204" 2.2.2.1 imode introduction  PAGEREF _Toc37061204 \h 15  HYPERLINK \l "_Toc37061205" 2.2.2.2 imode network communication architecture  PAGEREF _Toc37061205 \h 15  HYPERLINK \l "_Toc37061206" 2.2.2.3 Language for imode mobile Web application cHTML  PAGEREF _Toc37061206 \h 16  HYPERLINK \l "_Toc37061207" 2.2.3 J2ME  PAGEREF _Toc37061207 \h 16  HYPERLINK \l "_Toc37061208" 2.2.3.1 Java technology:  PAGEREF _Toc37061208 \h 16  HYPERLINK \l "_Toc37061209" 2.2.3.2 J2ME:  PAGEREF _Toc37061209 \h 17  HYPERLINK \l "_Toc37061210" 2.2.3.3 J2ME mobile Web application:  PAGEREF _Toc37061210 \h 18  HYPERLINK \l "_Toc37061211" 2.2.3.4 Language for J2ME mobile Web application Java  PAGEREF _Toc37061211 \h 19  HYPERLINK \l "_Toc37061212" 2.2.3.5 J2ME development and future expectation:  PAGEREF _Toc37061212 \h 20  HYPERLINK \l "_Toc37061213" 2.2.4 Microsoft .NET mobile solution  PAGEREF _Toc37061213 \h 20  HYPERLINK \l "_Toc37061214" 2.2.4.1 Microsoft .NET technology:  PAGEREF _Toc37061214 \h 20  HYPERLINK \l "_Toc37061215" 2.2.4.2 .NET mobile:  PAGEREF _Toc37061215 \h 22  HYPERLINK \l "_Toc37061216" 2.2.4.3 Language for .NET mobile Web application ASP.NET mobile  PAGEREF _Toc37061216 \h 22  HYPERLINK \l "_Toc37061217" 2.2.5 Mobile Web solutions comparison and summary  PAGEREF _Toc37061217 \h 23  HYPERLINK \l "_Toc37061218" 2.3 Chapter review  PAGEREF _Toc37061218 \h 24  HYPERLINK \l "_Toc37061219" Chapter 3: Developing J2ME Mobile Web Applications  PAGEREF _Toc37061219 \h 25  HYPERLINK \l "_Toc37061220" 3.1 Development platform and environment Hardware  PAGEREF _Toc37061220 \h 25  HYPERLINK \l "_Toc37061221" 3.2 The Mobile Meal Booking System  PAGEREF _Toc37061221 \h 26  HYPERLINK \l "_Toc37061222" 3.2.1 Software installation and environment configuration  PAGEREF _Toc37061222 \h 26  HYPERLINK \l "_Toc37061223" 3.2.1.1 Installation & configuration  PAGEREF _Toc37061223 \h 26  HYPERLINK \l "_Toc37061224" 3.2.1.2 Investigation & optimisation  PAGEREF _Toc37061224 \h 30  HYPERLINK \l "_Toc37061225" 3.3 Developing the Client-side mobile component  PAGEREF _Toc37061225 \h 31  HYPERLINK \l "_Toc37061226" 3.3.1 MIDlet the Compact Applet on mobile devices  PAGEREF _Toc37061226 \h 31  HYPERLINK \l "_Toc37061227" 3.3.2 MIDlet life cycle  PAGEREF _Toc37061227 \h 31  HYPERLINK \l "_Toc37061228" 3.3.3 MIDlet packages and classes  PAGEREF _Toc37061228 \h 31  HYPERLINK \l "_Toc37061229" 3.3.3.1 CLDC /MIDP packages and classes  PAGEREF _Toc37061229 \h 31  HYPERLINK \l "_Toc37061230" 3.3.3.2 Mobile Meal Booking System classes hierarchy overview  PAGEREF _Toc37061230 \h 35  HYPERLINK \l "_Toc37061231" 3.3.4 MIDlet development life cycle  PAGEREF _Toc37061231 \h 36  HYPERLINK \l "_Toc37061232" 3.3.5 Developing MIDlet for the Mobile Meal Booking System  PAGEREF _Toc37061232 \h 37  HYPERLINK \l "_Toc37061233" 3.3.5.1 STAGE ONE: Design the MealBookingMIDlet  PAGEREF _Toc37061233 \h 37  HYPERLINK \l "_Toc37061234" 3.3.5.2 STAGE TWO: Program the MealBookingMIDlet  PAGEREF _Toc37061234 \h 40  HYPERLINK \l "_Toc37061235" 3.3.5.3 STAGE THREE: Test the MealBookingMIDlet  PAGEREF _Toc37061235 \h 44  HYPERLINK \l "_Toc37061236" 3.3.5.4 STAGE FOUR: Packing and deploying MealBookingMIDlet  PAGEREF _Toc37061236 \h 49  HYPERLINK \l "_Toc37061237" 3.4 Developing the middle tier Web component  PAGEREF _Toc37061237 \h 51  HYPERLINK \l "_Toc37061238" 3.4.1 Servlet the Non-Visual Applet on the server-side  PAGEREF _Toc37061238 \h 51  HYPERLINK \l "_Toc37061239" 3.4.1.1 Java Servlet  PAGEREF _Toc37061239 \h 51  HYPERLINK \l "_Toc37061240" 3.4.1.2 Servlet life cycle  PAGEREF _Toc37061240 \h 52  HYPERLINK \l "_Toc37061241" 3.4.1.3 HttpServlet  PAGEREF _Toc37061241 \h 52  HYPERLINK \l "_Toc37061242" 3.4.2 HTTP requests  PAGEREF _Toc37061242 \h 52  HYPERLINK \l "_Toc37061243" 3.4.2.1 HTTP HEAD request  PAGEREF _Toc37061243 \h 53  HYPERLINK \l "_Toc37061244" 3.4.2.2 HTTP GET request  PAGEREF _Toc37061244 \h 53  HYPERLINK \l "_Toc37061245" 3.4.2.3 HTTP POST request  PAGEREF _Toc37061245 \h 53  HYPERLINK \l "_Toc37061246" 3.4.3 Servlet session  PAGEREF _Toc37061246 \h 53  HYPERLINK \l "_Toc37061247" 3.4.3.1 HTTP session  PAGEREF _Toc37061247 \h 53  HYPERLINK \l "_Toc37061248" 3.4.3.2 HTTP session tracking  PAGEREF _Toc37061248 \h 53  HYPERLINK \l "_Toc37061249" 3.4.4 Servlet database connectivity  PAGEREF _Toc37061249 \h 55  HYPERLINK \l "_Toc37061250" 3.4.4.1 JDBC & JDBC Driver  PAGEREF _Toc37061250 \h 55  HYPERLINK \l "_Toc37061251" 3.4.5 Developing Servlet for the Mobile Meal Booking System  PAGEREF _Toc37061251 \h 57  HYPERLINK \l "_Toc37061252" 3.4.5.1 STAGE ONE: Design the MealBookingServlet  PAGEREF _Toc37061252 \h 57  HYPERLINK \l "_Toc37061253" 3.4.5.2 STAGE TWO: Program the MealBookingServlet  PAGEREF _Toc37061253 \h 59  HYPERLINK \l "_Toc37061254" 3.5 Design the Back-end data component  PAGEREF _Toc37061254 \h 63  HYPERLINK \l "_Toc37061255" 3.5.1 MySQL command  PAGEREF _Toc37061255 \h 63  HYPERLINK \l "_Toc37061256" 3.5.1.1 Under shell prompt:  PAGEREF _Toc37061256 \h 63  HYPERLINK \l "_Toc37061257" 3.5.1.2 Under MySQL prompt:  PAGEREF _Toc37061257 \h 64  HYPERLINK \l "_Toc37061258" 3.5.2 Mealbooking database  PAGEREF _Toc37061258 \h 64  HYPERLINK \l "_Toc37061259" 3.5.2.1 The account table:  PAGEREF _Toc37061259 \h 64  HYPERLINK \l "_Toc37061260" 3.5.2.2 The mealmenu table:  PAGEREF _Toc37061260 \h 65  HYPERLINK \l "_Toc37061261" 3.5.2.3 The bookedmeal table:  PAGEREF _Toc37061261 \h 65  HYPERLINK \l "_Toc37061262" 3.6 Chapter review  PAGEREF _Toc37061262 \h 66  HYPERLINK \l "_Toc37061263" Chapter 4: Developing .NET Mobile Web Applications  PAGEREF _Toc37061263 \h 67  HYPERLINK \l "_Toc37061264" 4.1 Development platform and environment Hardware  PAGEREF _Toc37061264 \h 67  HYPERLINK \l "_Toc37061265" 4.2 Software environment installation and configuration  PAGEREF _Toc37061265 \h 67  HYPERLINK \l "_Toc37061266" 4.2.1 Software packages  PAGEREF _Toc37061266 \h 67  HYPERLINK \l "_Toc37061267" 4.2.1.1 Operating system:  PAGEREF _Toc37061267 \h 67  HYPERLINK \l "_Toc37061268" 4.2.1.2 Application runtime environment:  PAGEREF _Toc37061268 \h 67  HYPERLINK \l "_Toc37061269" 4.2.1.3 Web server:  PAGEREF _Toc37061269 \h 68  HYPERLINK \l "_Toc37061270" 4.2.1.4 Database server:  PAGEREF _Toc37061270 \h 68  HYPERLINK \l "_Toc37061271" 4.2.1.5 IDE and toolkits:  PAGEREF _Toc37061271 \h 68  HYPERLINK \l "_Toc37061272" 4.2.2 Installation & configuration  PAGEREF _Toc37061272 \h 68  HYPERLINK \l "_Toc37061273" 4.2.3 Investigation & optimisation  PAGEREF _Toc37061273 \h 69  HYPERLINK \l "_Toc37061274" 4.3 The Mobile Geographic Information System  PAGEREF _Toc37061274 \h 69  HYPERLINK \l "_Toc37061275" 4.3.1 RU Mobile GIS application overview  PAGEREF _Toc37061275 \h 69  HYPERLINK \l "_Toc37061276" 4.3.1.1 Application architecture overview  PAGEREF _Toc37061276 \h 69  HYPERLINK \l "_Toc37061277" 4.3.1.2 Language choice  PAGEREF _Toc37061277 \h 70  HYPERLINK \l "_Toc37061278" 4.3.1.3 Application class hierarchy overview  PAGEREF _Toc37061278 \h 70  HYPERLINK \l "_Toc37061279" 4.4 Developing the Web component  PAGEREF _Toc37061279 \h 71  HYPERLINK \l "_Toc37061280" 4.4.1 Mobile ASP.NET  PAGEREF _Toc37061280 \h 71  HYPERLINK \l "_Toc37061281" 4.4.1.1 ASP.NET mobile Web control model  PAGEREF _Toc37061281 \h 71  HYPERLINK \l "_Toc37061282" 4.4.1.2 Mobile ASP .NET session management  PAGEREF _Toc37061282 \h 75  HYPERLINK \l "_Toc37061283" 4.4.2 .NET mobile Web application development life cycle  PAGEREF _Toc37061283 \h 76  HYPERLINK \l "_Toc37061284" 4.4.2.1 STAGE ONE: Designing the Mobile Web Page  PAGEREF _Toc37061284 \h 76  HYPERLINK \l "_Toc37061285" 4.4.2.2 STAGE TWO: Programming the RU Mobile GIS  PAGEREF _Toc37061285 \h 81  HYPERLINK \l "_Toc37061286" 4.4.2.3 STAGE THREE: Testing the RU Mobile GIS  PAGEREF _Toc37061286 \h 84  HYPERLINK \l "_Toc37061287" 4.4.2.4 STAGE FOUR: Packing and deploying RU Mobile GIS  PAGEREF _Toc37061287 \h 88  HYPERLINK \l "_Toc37061288" 4.5 Design the backend database component  PAGEREF _Toc37061288 \h 91  HYPERLINK \l "_Toc37061289" 4.5.1 Mobile .NET database Connectivity ADO.NET  PAGEREF _Toc37061289 \h 91  HYPERLINK \l "_Toc37061290" 4.5.1.1 ADO.NET introduction  PAGEREF _Toc37061290 \h 91  HYPERLINK \l "_Toc37061291" 4.5.1.2 ADO.NET data components  PAGEREF _Toc37061291 \h 91  HYPERLINK \l "_Toc37061292" 4.5.1.3 Using ADO.NET  PAGEREF _Toc37061292 \h 92  HYPERLINK \l "_Toc37061293" 4.5.1.4 Using Visual Studio.NET to set up database connection  PAGEREF _Toc37061293 \h 94  HYPERLINK \l "_Toc37061294" 4.5.2 Microsoft SQL Server 2000  PAGEREF _Toc37061294 \h 95  HYPERLINK \l "_Toc37061295" 4.5.3 RhodesGIS database  PAGEREF _Toc37061295 \h 96  HYPERLINK \l "_Toc37061296" 4.5.3.1 The accounts table:  PAGEREF _Toc37061296 \h 96  HYPERLINK \l "_Toc37061297" 4.5.3.2 The mapinfo table:  PAGEREF _Toc37061297 \h 96  HYPERLINK \l "_Toc37061298" 4.5.3.3 The mapPosition table:  PAGEREF _Toc37061298 \h 97  HYPERLINK \l "_Toc37061299" 4.6 Chapter review  PAGEREF _Toc37061299 \h 97  HYPERLINK \l "_Toc37061300" Chapter 5: J2ME vs. .NET Development Approaches  PAGEREF _Toc37061300 \h 98  HYPERLINK \l "_Toc37061301" 5.1 J2ME vs. .NET An overview  PAGEREF _Toc37061301 \h 98  HYPERLINK \l "_Toc37061302" 5.1.1 General comparisons  PAGEREF _Toc37061302 \h 99  HYPERLINK \l "_Toc37061303" 5.1.1.1 Platform dependency  PAGEREF _Toc37061303 \h 99  HYPERLINK \l "_Toc37061304" 5.1.1.2 Language support  PAGEREF _Toc37061304 \h 100  HYPERLINK \l "_Toc37061305" 5.1.1.3 Application type and executing speed  PAGEREF _Toc37061305 \h 101  HYPERLINK \l "_Toc37061306" 5.1.2 Mobile device comparisons  PAGEREF _Toc37061306 \h 104  HYPERLINK \l "_Toc37061307" 5.1.2.1 Runtime requirement  PAGEREF _Toc37061307 \h 104  HYPERLINK \l "_Toc37061308" 5.1.2.2 Local storage  PAGEREF _Toc37061308 \h 104  HYPERLINK \l "_Toc37061309" 5.1.2.3 Client-side data processing ability and event handling  PAGEREF _Toc37061309 \h 105  HYPERLINK \l "_Toc37061310" 5.1.3 Web server comparisons  PAGEREF _Toc37061310 \h 106  HYPERLINK \l "_Toc37061311" 5.1.3.1 Web server  PAGEREF _Toc37061311 \h 106  HYPERLINK \l "_Toc37061312" 5.1.3.2 Server-side technologies support  PAGEREF _Toc37061312 \h 107  HYPERLINK \l "_Toc37061313" 5.1.4 Development tools comparisons  PAGEREF _Toc37061313 \h 108  HYPERLINK \l "_Toc37061314" 5.1.4.1 IDE  PAGEREF _Toc37061314 \h 108  HYPERLINK \l "_Toc37061315" 5.1.4.2 Application SDK and its integration  PAGEREF _Toc37061315 \h 109  HYPERLINK \l "_Toc37061316" 5.1.4.3 GUI design  PAGEREF _Toc37061316 \h 109  HYPERLINK \l "_Toc37061317" 5.1.4.4 Coding  PAGEREF _Toc37061317 \h 110  HYPERLINK \l "_Toc37061318" 5.1.4.5 Help system  PAGEREF _Toc37061318 \h 110  HYPERLINK \l "_Toc37061319" 5.1.5 Industry support comparisons  PAGEREF _Toc37061319 \h 111  HYPERLINK \l "_Toc37061320" 5.1.5.2 Developers and supporters  PAGEREF _Toc37061320 \h 111  HYPERLINK \l "_Toc37061321" 5.2 Mobile devices investigation  PAGEREF _Toc37061321 \h 111  HYPERLINK \l "_Toc37061322" 5.2.1 General limitation of mobile devices  PAGEREF _Toc37061322 \h 112  HYPERLINK \l "_Toc37061323" 5.2.1.1 Mobile devices limitations  PAGEREF _Toc37061323 \h 112  HYPERLINK \l "_Toc37061324" 5.2.1.2 Development guideline How to avoid these limitations?  PAGEREF _Toc37061324 \h 113  HYPERLINK \l "_Toc37061325" 5.2.2 Mobile device diversity  PAGEREF _Toc37061325 \h 114  HYPERLINK \l "_Toc37061326" 5.2.2.1 J2ME approach  PAGEREF _Toc37061326 \h 114  HYPERLINK \l "_Toc37061327" 5.2.2.2 .NET approach  PAGEREF _Toc37061327 \h 114  HYPERLINK \l "_Toc37061328" 5.2.2.3 Development guideline How to handle device diversity?  PAGEREF _Toc37061328 \h 115  HYPERLINK \l "_Toc37061329" 5.3 Mobile application analysis  PAGEREF _Toc37061329 \h 115  HYPERLINK \l "_Toc37061330" 5.3.1 Mobile Web solution data processing model  PAGEREF _Toc37061330 \h 115  HYPERLINK \l "_Toc37061331" 5.3.1.1 J2ME model  PAGEREF _Toc37061331 \h 115  HYPERLINK \l "_Toc37061332" 5.3.1.2 .NET model  PAGEREF _Toc37061332 \h 116  HYPERLINK \l "_Toc37061333" 5.3.1.3 Development guideline Which model to choose?  PAGEREF _Toc37061333 \h 117  HYPERLINK \l "_Toc37061334" 5.3.1.4 Experiences & lessons  PAGEREF _Toc37061334 \h 117  HYPERLINK \l "_Toc37061335" 5.3.2 Mobile Web application portability approach  PAGEREF _Toc37061335 \h 118  HYPERLINK \l "_Toc37061336" 5.3.2.1 J2ME approach:  PAGEREF _Toc37061336 \h 118  HYPERLINK \l "_Toc37061337" 5.3.2.2 .NET approach:  PAGEREF _Toc37061337 \h 118  HYPERLINK \l "_Toc37061338" 5.3.2.3 Development guideline Which approach to choose?  PAGEREF _Toc37061338 \h 119  HYPERLINK \l "_Toc37061339" 5.4 Graphical user interface designing  PAGEREF _Toc37061339 \h 119  HYPERLINK \l "_Toc37061340" 5.4.1 GUI rendering approach  PAGEREF _Toc37061340 \h 119  HYPERLINK \l "_Toc37061341" 5.4.1.1 J2ME approach:  PAGEREF _Toc37061341 \h 119  HYPERLINK \l "_Toc37061342" 5.4.1.2 .NET approach:  PAGEREF _Toc37061342 \h 119  HYPERLINK \l "_Toc37061343" 5.4.1.3 Development guideline How to render GUIs for multiple devices?  PAGEREF _Toc37061343 \h 120  HYPERLINK \l "_Toc37061344" 5.4.2 GUI design approach  PAGEREF _Toc37061344 \h 120  HYPERLINK \l "_Toc37061345" 5.4.2.1 On screen display design  PAGEREF _Toc37061345 \h 120  HYPERLINK \l "_Toc37061346" 5.4.2.2 Development guideline How to design GUIs with high usability  PAGEREF _Toc37061346 \h 121  HYPERLINK \l "_Toc37061347" 5.4.3 GUI navigation design  PAGEREF _Toc37061347 \h 121  HYPERLINK \l "_Toc37061348" 5.4.3.1 Using system built-in buttons for navigation  PAGEREF _Toc37061348 \h 121  HYPERLINK \l "_Toc37061349" 5.4.3.2 Using soft buttons for navigation  PAGEREF _Toc37061349 \h 121  HYPERLINK \l "_Toc37061350" 5.4.3.3 Development guideline How to arrange the navigation?  PAGEREF _Toc37061350 \h 121  HYPERLINK \l "_Toc37061351" 5.5 Development environment and tools  PAGEREF _Toc37061351 \h 122  HYPERLINK \l "_Toc37061352" 5.5.1 J2ME development environment evaluation  PAGEREF _Toc37061352 \h 122  HYPERLINK \l "_Toc37061353" 5.5.2 .NET Mobile development environment evaluation  PAGEREF _Toc37061353 \h 123  HYPERLINK \l "_Toc37061354" 5.5.3 Development guideline What is an ideal environment?  PAGEREF _Toc37061354 \h 124  HYPERLINK \l "_Toc37061355" 5.6 Chapter review  PAGEREF _Toc37061355 \h 126  HYPERLINK \l "_Toc37061356" Chapter 6: Concluding Comments  PAGEREF _Toc37061356 \h 127  HYPERLINK \l "_Toc37061357" 6.1 Review  PAGEREF _Toc37061357 \h 127  HYPERLINK \l "_Toc37061358" 6.2 Related work  PAGEREF _Toc37061358 \h 127  HYPERLINK \l "_Toc37061359" 6.3 Overall achievement  PAGEREF _Toc37061359 \h 129  HYPERLINK \l "_Toc37061360" 6.4. Evaluation of achievement  PAGEREF _Toc37061360 \h 129  HYPERLINK \l "_Toc37061361" 6.4.1 Platform comparison  PAGEREF _Toc37061361 \h 129  HYPERLINK \l "_Toc37061362" 6.4.2 Guideline delivery  PAGEREF _Toc37061362 \h 130  HYPERLINK \l "_Toc37061363" 6.4.3 Limitations of the study  PAGEREF _Toc37061363 \h 130  HYPERLINK \l "_Toc37061364" 6.5 Possible future extensions  PAGEREF _Toc37061364 \h 131  HYPERLINK \l "_Toc37061365" 6.5.1 An investigation into Mobile Web application security  PAGEREF _Toc37061365 \h 131  HYPERLINK \l "_Toc37061366" 6.5.2. Mobile Web application and XML Web Services integration  PAGEREF _Toc37061366 \h 132  HYPERLINK \l "_Toc37061367" 6.6 Overall conclusions  PAGEREF _Toc37061367 \h 132  HYPERLINK \l "_Toc37061368" References  PAGEREF _Toc37061368 \h 133  HYPERLINK \l "_Toc37061369" Appendix  PAGEREF _Toc37061369 \h 137  HYPERLINK \l "_Toc37061370" Appendix A J2ME Emulators SDKs, and IDEs  PAGEREF _Toc37061370 \h 137  HYPERLINK \l "_Toc37061371" Appendix B Mobile Device Emulators For MMIT  PAGEREF _Toc37061371 \h 140  HYPERLINK \l "_Toc37061372" Appendix C J2ME Enabled Mobile Devices  PAGEREF _Toc37061372 \h 141  HYPERLINK \l "_Toc37061373" Appendix D The Accompanying CD-ROM  PAGEREF _Toc37061373 \h 146  List of Tables  TOC \f F \h \z \t "h