Categorization of Software for mobile work

Reviews
Categorization of Software for mobile work[center]
Rated 7 out of 10

March 07, 2008 (1 years 8 ago)
Helpful for mobile software developer.

Shared by: user002
Categories
Tags
Stats
views:
703
rating:
7(1)
reviews:
1
posted:
2/5/2008
language:
English
pages:
0
MOWAHS Categorization of Software for mobile work A project report in TDT4735 Software Engineering Written by John Christian Hveding With Alf Inge Wang Advisor Department of Computer and Information Science Norwegian University of Science and Technology MOWAHS Categorization of Software for Mobile Work Abstract This report provides an overview of the four main software platforms for mobile devices. The different architectural solutions behind the platforms are presented along with a quick review of the devices they are implemented on and the outlooks for the respective platforms. A set of relevant parameters for mobile software are identified and used in creating categorization of software for mobile work. A small set of applications are then categorized. TDT4735 2 John Christian Hveding MOWAHS Categorization of Software for Mobile Work Preface This project is completed as a part of the course TDT4735 Software Engineering, in the ninth semester of the MSc in Software Engineering education, at the Norwegian University of Science and Technology (NTNU). The stipulated work load is 24 hours per week for 12 weeks. The report is written by John Christian Hveding, with Alf Inge Wang as advisor. Acknowledgements I would like to thank Alf Inge Wang and Carl Fredrik Sørensen for valuable input, and providing me with devices for testing the mobile applications. I extend my gratitude to everyone working in the industry that replied to my emails or answered my questions by telephone. Erling Andreas Fagerlie and Tom Helge Hamnes deserve credit for helping to provide a productive study environment. Finally I would like to thank Cathrine Williamsen for support, proof reading and inspiration. _________________________ John Christian Hveding 26. November, 2004 TDT4735 3 John Christian Hveding MOWAHS Categorization of Software for Mobile Work Contents Abstract ...................................................................................................................... 2 Preface ....................................................................................................................... 3 Contents ..................................................................................................................... 4 1 Introduction.......................................................................................................... 5 1.1 Motivation..................................................................................................... 5 1.2 Project Context............................................................................................. 5 1.3 Problem definition......................................................................................... 6 2 Research method and problem elaboration......................................................... 7 2.1 Goals............................................................................................................ 7 2.2 Process ........................................................................................................ 7 2.3 Terms and definitions ................................................................................... 7 3 State-of-the-art .................................................................................................... 9 3.1 .NET Compact Framework and Windows Mobile ......................................... 9 3.2 Java 2 Micro Edition ................................................................................... 11 3.3 Palm ........................................................................................................... 13 3.4 Symbian OS ............................................................................................... 15 3.5 Other Platforms .......................................................................................... 17 4 Categorization of software for mobile work........................................................ 19 4.1 Identifying parameters suitable for categorization ...................................... 19 4.2 Simplifying the categories .......................................................................... 24 4.3 The Categorization ..................................................................................... 25 4.4 The Categorization in use .......................................................................... 25 5 Evaluation of results .......................................................................................... 26 5.1 Generalization of the work.......................................................................... 26 5.2 Experiences collecting data........................................................................ 26 6 Conclusion and further work.............................................................................. 27 6.1 Summary.................................................................................................... 27 6.2 Future Work ............................................................................................... 27 Appendix A: Reference............................................................................................. 28 List of Figures Figure 3-1: The .NET Compact Framework architecture ............................................ 9 Figure 3-2: The J2ME architecture ........................................................................... 12 Figure 3-3: The Palm OS 6 Cobalt Architecture ....................................................... 14 Figure 3-4: The Symbian OS 8.0 Architecture .......................................................... 16 List of Tables Table 4-1: Potential Parameters for categorization................................................... 19 Table 4-2: Open Parameters and examples of instances ......................................... 23 Table 4-3: Quantifiable Parameters and their categories ......................................... 23 Table 4-4: The final quantifiable parameters ............................................................ 25 Table 4-5: A categorization of four commercial systems for mobile work ................. 25 Table 6-1: Summary of Platforms ............................................................................. 27 TDT4735 4 John Christian Hveding MOWAHS Categorization of Software for Mobile Work 1 Introduction This chapter presents some the purpose of this project along with some background information to contextualize the project. 1.1 Motivation The number of handheld devices in use is steadily increasing in the world today. In 2003 the number of PDAs sold worldwide was 11.5 million [21]. Gartner group estimates 520 million mobile phones sold worldwide in 2003 of which 235 million were java enabled [1]. There is no doubt that handheld devices are becoming ubiquitous. Although handheld devices have been around for some time, the software market for such devices is immature compared to the desktop market. There is a variety of software platforms, each with its strengths and weaknesses as discussed in chapter 3. There exist a lot of applications for mobile devices and many places that distribute them, as described in [22]. To help the user navigate this market we wish to develop a categorization scheme to help users evaluate the applications. 1.2 Project Context This project thesis is a part of the MOWAHS (MObile Work Across Heterogeneous Systems) project. The MOWAHS website [2] describes the MOWAHS project like this: “MOWAHS is a basic research project supported by the Norwegian Research Council in its IKT-2010 program. The project is carried out jointly by the IDI's groups for software engineering (prof. Reidar Conradi, coordinator) and database technology (prof. Mads Nygård). The project will, respectively, have two parts: process support for mobile users using heterogeneous devices (PC, PDA, mobile phones) and support for cooperating transactions/workspaces holding work documents.” The goals and approach of the MOWAHS project is further described in [2]: “Goals: The MOWAHS goals are threefold: • Helping to understand and to continuously assess and improve workprocesses in virtual organizations. • Providing a flexible, common work environment to execute and share real workprocesses and their artifacts, applicable on a variety of electronic devices (from big servers to small PDAs). • Disseminating the results to colleagues, students, companies, and the community at large. Approach: to iteratively: • Define a flexible work environment for virtual organizations using heterogeneous devices, with support for processes and their artifacts and transactions. TDT4735 5 John Christian Hveding MOWAHS • • Categorization of Software for Mobile Work Implement a testbed for process support for virtual organizations, using XMLbased and mobile agents. Use real scenarios to evaluate the environment, e.g., for software development and remote education. 25% of the work will be spent on formulating requirements and success criteria, and to perform empirical studies. In all this, own MSc students will be actively used for implementation and evaluation. “ As a part of the MOWAHS project this project will provide empirical studies of the state of the software market for mobile work. 1.3 Problem definition The object of the project is to look at available software for mobile devices, in order to create a categorization. The evaluation should be from the user’s perspective, and the categorization should be relevant to the user. Since this project is attached to the MOWAHS project, the applications will be evaluated in the context of mobile work. TDT4735 6 John Christian Hveding MOWAHS Categorization of Software for Mobile Work 2 Research method and problem elaboration A description of the ambition of this project is presented in section 2.1. The work process and how the research will be conducted are described in section 2.2. Section 2.3 contains some definitions and terms that are in use in the report. 2.1 Goals The main goal of this project is to create a categorization of software for mobile work. To get a feel of the mobile software development environment and the mobile software marketplace, we should start by giving a state-of-the-art presentation of the main software platforms for mobile applications. We need to identify and analyze a set of parameters of mobile software, before we create a categorization of software for mobile work, from the perspective of the user. We then wish to present some application for mobile work in use today and categorize these. 2.2 Process I started by evaluating the most important software platforms for mobile applications. I searched for and found articles describing their respective architectures. I looked at the developers’ forums and got a feeling for the different developer communities. I collected data on each platform’s latest sales statistics and commented these. I downloaded a number of freeware and shareware mobile applications, installed and tested these on mobile devices. Through my evaluation of these applications I identified a number of parameters and analysed them to find the ones most relevant to mobile work. I then used these characteristics to create a categorization of mobile software. Finally I gathered some data on a few commercial mobile systems and fit them into my categorization. 2.3 Terms and definitions I base my definition of mobile software on the definition found in [3]: “Mobile work: Work processes performed in a mobile environment dependent of context information extracted from the physical environment. That is, mobility is necessary to accomplish the process goals.” Back-end is the part of the mobile applications that does not reside on the mobile device when we consider the whole system. The backend must however be part of the software package: A mail-server is not the back-end of an e-mail client. Platform refers to a framework on which applications may be run. This could be an operating system, as Symbian OS, or a framework for applications across different operating systems, like J2ME. A Licensee is a company, usually a device vendor, that license an operating system from an operating system developer to use on the devices it produces. TDT4735 7 John Christian Hveding MOWAHS Categorization of Software for Mobile Work Midlet or MIDlet is an application written for the J2ME platform, specifically for the Mobile Information Device Profile (MIDP). Personal digital assistants (PDAs) are handheld devices that were originally designed as personal organizers, but became much more versatile over the years [23]. A smartphone is generally considered any handheld device that integrates personal information management and mobile phone capabilities in the same device. Often, this includes adding phone functions to already capable PDAs or putting "smart" capabilities, such as PDA functions, into a mobile phone [23]. Codec is a portmanteau of "coder/decoder", which describes a device or program capable of performing transformations on a data stream or signal. Codecs can both put the stream or signal into an encoded form (often for transmission, storage or encryption) and retrieve, or decode that form for viewing or manipulation in a format more appropriate for these operations [23]. Digital Rights Management or Digital Restrictions Management (DRM) is an umbrella term for any of several arrangements which allows a vendor of content in electronic form to control the material and restrict its usage in various ways that can be specified by the vendor. Typically the content is a copyrighted digital work to which vendor holds rights [23]. Byte-code is a sort of intermediate code that is more abstract than machine code. It is often treated as a binary file containing an executable program much like an object module [23]. OpenGL (Open Graphics Library) is a specification defining a cross-language crossplatform API for writing applications that produce 3D computer graphics [23]. OpenGL® ES is a low-level, lightweight API for advanced embedded graphics using well-defined subset profiles of OpenGL. It provides a low-level applications programming interface (API) between software applications and hardware or software graphics engines [24]. PIM, or a Personal Information Manager, is a software application keeps track of personal information and is the basis functionality of the PDA. PIM Functionality includes e-mail, to-do-list, calendar and contact list, among other things [23]. The Footprint of a system is the amount of disc and memory it consumes in ordinary operation. In the case of pervasive platforms it is the amount of RAM and ROM it requires to run programs, excluding the programs themselves. The Acorn RISC Machine (or ARM) is a RISC processor architecture that is widely used in a number of applications. It is a very "pure" RISC implementation, and is considered one of the most elegant modern processors [23]. TDT4735 8 John Christian Hveding MOWAHS Categorization of Software for Mobile Work 3 State-of-the-art The four main platforms for mobile applications are introduced in this chapter. The two first strive to become pervasive platforms across multiple operating systems, while the following two are pure operating systems for mobile devices. The Technology behind each of them is presented along with a small mention of the devices they are created for and the developer community before I discuss the outlook for the future for the respective platforms. A brief description of the minor platforms that exist, are given in section 3.5. 3.1 .NET Compact Framework and Windows Mobile Windows mobile for Smartphone and Pocket PC is a variation of Windows CE, which is an operating system for minimalistic computers. In contrast to Microsoft’s policies regarding their operating systems, parts of the Windows CE source code has been presented to vendors for better integration with devices. The .NET Compact Framework (CF) is a development platform for mobile devices. It is a subset of Microsoft’s .NET Framework. The architecture depicted in Figure 3-1, copied from [4], shows that the Platform Adaptation Layer acts as an interface between the underlying operating system and the .NET CF. This makes the process of porting the .NET CF to other operating systems possible. However, no such implementations currently exist. Figure 3-1: The .NET Compact Framework architecture On top of the Platform Adaptation Layer is the Common Language Runtime (CLR). The CLR support Microsoft Intermediate Language (MSIL), which performs a task similar to the Java Bytecode. It is independent of the underlying hardware. Any program written for the .NET CF is first compiled to MSIL and then compiled to native TDT4735 9 John Christian Hveding MOWAHS Categorization of Software for Mobile Work on the device in a just-in-time fashion. The just-in-time compile strategy means that the code is not compiled until it is executed. Compiled code is cached to prevent recurring compilation of the same code. On top of the CLR are the Base class libraries, the basic building blocks of the .NET CF. These libraries provide basic functionality like I/O, networking and XML handling among other things. In addition to the base class libraries, support for some higher level functionality is also included. This includes support for use of XML Web services and ADO.NET libraries for data access. Devices The Devices based on Windows Mobile can loosely be divided into two groups: • Pocket PC is a Microsoft defined hardware platform for general PDA use. Several major companies support the Pocket PC, including HP, Toshiba, ViewSonic and Dell. The requirement for calling a device a Pocket PC is: o Run a version of Microsoft Windows CE o Include a ROM of certain software o Have a touchscreen and a directional pad o Be based on a StrongARM compatible CPU • The Microsoft Smartphone is mobile phone with PDA functionality running a version of Windows CE. Microsoft Smartphone vendors include among others Motorola, Samsung and Qtec. Developer Community The Microsoft .NET community counts some 4 million developers according to Microsoft [5], and the difference between developing for .NET and .NET Compact are small. Although a significant number of these only dabble in the more simplistic Visual Basic, their skills are largely usable in developing for .NET Compact Framework. Currently .NET Compact Framework supports C# and Visual Basic as developer languages, and support for other languages is in development. Microsoft provides tools for development for free and documentation is easy to come by both online and in book form. There is a large set of tutorials and start-up guides as well as documentation for the more experienced developer. Future Although Microsoft entered the mobile market late, the company’s dominating position on the consumer desktop will assure it playing an important role in the mobile operating system market. Windows Mobile has recently surpassed Palm OS as the biggest operating system for PDAs. The Pocket PC is under pressure from the Smartphone on one side and devices running a full version of Windows getting ever smaller, on the other side. But regardless of what hardware platform that prevails; Microsoft Windows Mobile and the .NET Compact Framework will continue to exist as a software platform. Advantages and drawbacks The developer community is quite large and people with competence developing applications for .NET are numerous. This ensures a steady flow of applications, albeit with a varying degree of quality. 10 TDT4735 John Christian Hveding MOWAHS Categorization of Software for Mobile Work .NET systems can more easily speak to other .NET based systems. So system integration between them becomes easier. The core of the .NET CF is larger than J2ME’s, therefore the minimum requirements of the implementing device are higher. On the other hand, a larger core also results in more included functionality, which simplifies development. .NET CF’s goal of becoming a pervasive development platform is not achieved yet as the only implementation currently in existence is for Windows Mobile. 3.2 Java 2 Micro Edition The Java 2 Micro Edition was released by Sun Microsystems in 1999 with the aim of making Java the default framework for devices of limited resource capability. It was part of a process to promote Java Technology to three different market segments: Enterprise edition, Standard edition and Micro edition. Sun proposed JCP, the Java Community Process [11], as a way for device manufacturers, software vendors and service providers to develop additional APIs in a fashion that would lead to widespread implementation. The JCP has been a success and most stake-holders in the industry are supporting it. Technology The J2ME Architecture is illustrated in figure 3-2, which is from [6]. J2ME contains two Configurations called Connected Limited Device Configuration (CLDC) and Connected Device Configuration (CDC). The CDC is aimed at devices with little resource constraints, such as TV set-top boxes. The CLDC is designed for devices with non-continuous network connection, slow processors and limited memory, like mobile phones and PDAs. For this report, focus will be on the CLDC. The basis of all Java Technology is the Java Virtual Machine, whose task it is to interface with the underlying layer by converting the Java bytecode to native code and provide memory control. The Virtual Machine for the CLDC is The Kilobyte Virtual Machine (KVM). The KVM is significantly smaller than the standard edition. The footprint has a size of 50-100 Kilobytes, depending on the target device, and also has very low demands for dynamic memory for the execution stack. To achieve this Sun had to cut some of the functionality present in J2SE. On top of the KVM comes, the Connected Limited Device Configuration. The original specification [8] called for a “standard platform for small, resource limited, connected devices characterized as follows: • 128K to 512K total memory available with <= 256K ROM/Flash and <= 256K RAM. In most cases devices will have more ROM than RAM or Flash memory. • Limited power, often battery operation. • Connectivity to some type of network, although with possibly limited (9600/bps or less) bandwidth. • User interfaces with varying degrees of sophistication down to and including none. “ The CLDC contains basic Java functionality and I/O. Version 1.0 of CLDC was released in May 2000 and the revised version 1.1 was released in March 2003. TDT4735 11 John Christian Hveding MOWAHS Categorization of Software for Mobile Work Figure 3-2: The J2ME architecture On top of the CLDC come the Profiles for the different classes of devices. The Mobile Information Device Profile was developed for mobile phones and low-end PDAs. The current version as of the time of writing is version 2.0. It provides API for GUI, local data storage, certain gaming specific classes and sound support among other things. The MIDP also has a set of minimum requirements which includes requirements for screen size, memory, networking and sound. Together with the CLDC this is a complete java runtime environment that is very resource conservative. There was also a process going on to create a PDA profile (JSR-75). The profile was abandoned due to lack of interest, but some of the work was kept and released as optional packages. The result of this is that MIDP 2.0 is the leading profile for both mobile phones and PDAs. Optional packages are APIs proposed by the Java Community Process that do not fall under a specific profile. Mobile vendors can choose whether to implement them or not. There are several available: Bluetooth API (JSR-82), Mobile Media (JSR-135) and the Wireless Messaging API (JSR-120) to name a few. This creates the problem of not knowing whether a device implements a specific API. It is entirely up to the manufacturer. Certain APIs are also only partially implemented. The Wireless Messaging API is often implemented with support for SMS only; while the Bluetooth API is know to be implemented without support for OBEX (Object Exchange). Devices Java is supported on most new mobile phones. Java virtual machines exist for all other platforms for mobile software. J2ME is the de facto standard for small mobile applications. TDT4735 12 John Christian Hveding MOWAHS Categorization of Software for Mobile Work Developer Community The core challenges related to J2ME development are the problems caused by the system’s cross-platform nature. The heterogeneity of the devices makes developing for a large range of devices quite a challenge. The number of Java developers was estimated to 3 million in 2003. The number of developers specifically working with J2ME is not accurately known, but it is a subset of the total number of Java developers. Sun and many others provide free development tools for the J2ME developer, and documentation is easily accessible. There is a plethora of books, both for the beginner and the more experienced developer. Future Java is becoming standard on mobile phones and is followed up on all major Mobile OSes. Symbian and Palm both actively support Java. Windows Mobile does not actively support Java, although several virtual machines are available through third parties. The main bulk of Java devices are mobile phones, More than 250 million units sold [13] in total. Advantages and drawbacks J2ME programs are extremely portable. They can potentially run on any device. This has two consequences: The advantage is that MIDlets can run on many more devices than is the case for software written for any other platform. A disadvantageous consequence of this is that the enormous number of the devices that can run Java programs creates a huge gap between the best and the worst device. It is very difficult to optimize an application both for a device with a 600 Mhz processor and 640x400 screen and a device with 128 KB memory and a 32x32 monochrome display. In addition to the variation in performance, each native platform requires a different implementation of the J2ME runtime environment. This implementation is often done by the device vendor, which again occasionally leads to some unwanted variation between devices. This has lead to developers of J2ME application making one implementation for each major device they want to support. The optional packages also create a problem for the developer because the vendor can choose whether or not to implement them. The small core lets java MIDlets run on devices with very limited resources, but the core’s limited functionality forces developers to solve the same problems over and over. 3.3 Palm Palm was founded in 1992 and rapidly became one of the leading companies in the PDA market. In 2003 Palm was split into two companies: PalmSource Inc. that would maintain and develop Palm OS and PalmOne Inc. that would focus on device design and evolution. The Palm OS is now available for other devices than “Palms” through licensing. TDT4735 13 John Christian Hveding MOWAHS Categorization of Software for Mobile Work Technology The newest version of the Palm OS is Palm OS 6, named Cobalt. It is native to the ARM family of processors. It includes for the first time in Palm OSes multitasking and multithreading capability. The architecture of Palm OS Cobalt is presented in figure 3-3 which is from [14]. Figure 3-3: The Palm OS 6 Cobalt Architecture Palm OS Cobalt has a high degree of modularity which allows licensees to adjust the OS more to their needs. It also allows for a more rapid incorporation of any new technology that surfaces which can be implemented in the relevant module without a rewrite of the entire system. The Microkernel is the base of the system which interacts with all other parts and executes code. The System module contains five subsystems that supply these functionalities: • The Display and User Interface subsystem, which gathers user input and displays output graphically. • The Multimedia subsystem contains audio and video codecs. • The HotSync subsystem controls synchronization issues. • The Exchange subsystem is a secondary communication system. • The security subsystem supplies cryptographic functions, methods for authenticating code and users, and methods for secure communication. The Data Manager provides support for protected memory, which prevents an application from reading or writing memory not belonging to it. The Data manager also provides a database like interface for applications. PACE (Palm OS Application Compatibility Environment) is a software emulator that allows applications written for earlier Palm OSes to work seamlessly on Palm OS Cobalt. All applications that are “well-behaved”, that is, applications that comply with the recommended API usage, should have no problem running in PACE. However, applications that do not follow recommended practice may not run. TDT4735 14 John Christian Hveding MOWAHS Categorization of Software for Mobile Work The I/O subsystem provides networking services, telephone services and virtual filesystem services, in addition to holding all the hardware device drivers which control the hardware. Devices Palm OS is licensed by PalmOne, Samsung, Garmin, QTech and Sony among others. The devices include PDAs, Smartphones and GPS devices. Developer Community Palm OS provides tools and documentation for development and there are books available for the developer. In 2001 there were 150.000 registered Palm developers and the community is growing. Future PalmOne sold 4.1 million PDAs in 2003 [21] and have sold a total of 36 million devices since 1996. However, they used to have more than 50% of the market and have now become equal in size to Windows Mobile. Their low-end product range has taken a hit by the inclusion of PIM functionality on most high-end mobile phones as most people do not see the benefit of having a dedicated device to do what your mobile phone can do. Advantages and Drawbacks Unlike J2ME and .NET Compact Framework, applications for Palm are compiled to native ARM-code. This gives potentially better performance than systems based on bytecode, at the cost of lower portability. Programs written for Palm OS only work on Palm OS and cannot easily be ported to other platforms. 3.4 Symbian OS The Symbian Operating System was derived from the EPOC32 operating system for Psion PDAs. Symbian was spun off as separate company in 1998 and has since strived to make the Symbian OS the standard for portable devices, with focus on mobile phones. Symbian is owned by Ericsson, Panasonic, Nokia, Samsung, Siemens and Sony Ericsson. Technology From [16]: The general architecture of the Symbian Operating System version 8.0 is pictured in Figure 3-4. The base of the system contains the kernel and the basic user library, which gives user-processes secure access to the kernel and the device drivers which interfaces with the underlying hardware. The kernel does memory management in addition providing program control. It allows fine-grained power management. Finally it has a Hardware Abstraction Layer for consistent interfacing with the different ARM architectures supported. TDT4735 15 John Christian Hveding MOWAHS Categorization of Software for Mobile Work Figure 3-4: The Symbian OS 8.0 Architecture In addition there are two low level modules that provide services to the above layers. The Telephony module controls the telephone functions and offers networking services. It also provides functions for interfacing with the phonebook both on the phone and the SIM card. The Security module manages certificates and authenticates installations in addition to providing basic cryptographic functions. It also provides all the foundations for licensees to implement a Digital Rights Management System. On top of these modules comes the five modules that provide higher levels services. The Communication infrastructure module provides higher level networking services like TCP, UDP, HTTP, FTP and WAP. The Multimedia Framework contains codecs and provides camera support and OpenGL ES support. The Application Framework provides GUI services and various types of application support functions like undo text input. The Personal Area Network module provides Bluetooth, USB and Infrared support. The CLDC 1.1 module is Symbian’s implementation of the latest version of J2ME CLDC and provides basic Java support. On top of the aforementioned modules come the application level modules. Messaging contains the e-mail, SMS, EMS and MMS messaging applications. The Application engine contains the calendar, to-do-list, contacts and the SyncML clients. The MIDP module is the top level of the Java Runtime Environment supported by Symbian. Devices From [18]: “Symbian devices can be divided into four broad categories: TDT4735 16 John Christian Hveding MOWAHS • • • Categorization of Software for Mobile Work • Series 60 is a UI for mobile phones that are single-handed operated. In addition to voice communication, multimedia messaging, content browsing and application downloading are the design cornerstones of the platform. Series 80 is a UI for devices with larger horizontal screens. It is used in clamshell devices with a keyboard. UIQ is a customizable pen-based user interface platform for media-rich mobile phones based on Symbian OS. UIQ is owned by UIQ technology which is part of Symbian. The UIQ UI is licensed to various phone manufacturers including Sony Ericsson, Motorola, Arima and BenQ. Other, are the phones that do not fall into any of the above categories. It is possible that we will see more phones in this category in the future. Currently the phones made by Fujitsu for the FOMA network are categorised here. “ The Symbian OS is mainly in use on high-end mobile phones. Developer Community The main developer languages for Symbian are C++ and Java. Symbian actively supports Java and markets this as an advantage to users and developers. In addition to these two there are tools to convert other languages to native Symbian. The Symbian C++ variant is often considered a little difficult to use, as the execution is event based, it requires the programmer to use “active objects”; a technique for minimizing the CPU usage. An application written inappropriately might drain the battery needlessly. In addition, special techniques must be employed for preventing memory leaks. Rewriting of code is required for every UI platform, but this problem is currently being worked on. The advantage of native Symbian applications have over MIDlets is better performance. There is a lack of tools and books for the Symbian native developer. This, combined with the steep learning curve of C++ in general, and the specifics of Symbian’s flavour of C++, makes the community slow growing. Data on the exact number of developers of native Symbian OS applications is hard to come by. But due to the excellent Java support, there are nonetheless plenty of applications for Symbian. Future From [17]: “During 2003, 6.7 million phones using Symbian OS shipped worldwide, and more than 1 million phones shipped in December 2003 alone.“ The numbers from 2003 saw Symbian OS beating Windows Mobile and Palm OS by a thin margin in the combined PDA and Smartphone market. Newer numbers show Symbian increasing this margin to near 50% [19]. 3.5 Other Platforms RIM blackberry Research In Motion is a Canadian company that make their own devices and have their own proprietary operating system. They started by making devices for the Mobitex Wireless Network, which was a packet-switched data-only network, developed by Ericsson. The newer versions of the Blackberry use mobile phone infrastructure. RIM actively supports Java and their models provide MIDP support. TDT4735 17 John Christian Hveding MOWAHS Categorization of Software for Mobile Work Embedded Linux Several projects aim to make use of Linux as operating system for mobile devices. Not many have met the market yet. The largest endeavour yet seems to be the software platform developed jointly by NEC and Panasonic, presented recently [20], based on MontaVista Linux. Other companies that have experimented with Linux devices include Motorola, Samsung and Ericsson. Unfortunately none of them have been overly successful in the market. TDT4735 18 John Christian Hveding MOWAHS Categorization of Software for Mobile Work 4 Categorization of software for mobile work This is an attempt to make a categorization of software for mobile work. The parameters of the categorization are discussed in 4.1 and simplified in 4.2, before the actual categories are presented in 4.3. 4.1 Identifying parameters suitable for categorization The first step of making a categorization is to identify a number of quantifiable parameters of mobile applications that can potentially be used for categorization. A list of parameters is presented in table 4-1. Function Target Users Platform Requirements Communication direction Synchronization Connection type User interaction Data Flow Distribution type Scalability Back-end The basic function the application should accomplish. The target customers of the application. The software platform the application is developed for. The minimal requirements of the applications or any special requirements the application might have. The direction of data flow between the device and server. The frequency of synchronization. The type of network that provides connectivity. The complexity of the user interaction. The way data flows between the user and the device. The way the application is distributed and the way the application will generate income for its developer. The application’s capacity for multiple users. The application’s back-end is the part of the system not residing on the mobile device. Table 4-1: Potential Parameters for categorization To identify the relevant parameters, we look at each one of them and consider whether it is quantifiable and how it will affect the user’s experience of the application. If a parameter is both quantifiable and affect the user’s experience, it will be considered as a candidate for our categorization. The quantification is accomplished by defining a set of categories for each parameter that the application can fit into. The different categories should be so coarse-grained that there can be little doubt which category an application belongs to. Parameters that cannot be categorized acceptably we call open, as we assume that new categories can be added. 4.1.1 Function “Function” is a general description the application’s higher level functions. This is an attempt to capture the problem the application is trying to solve in one word or sentence. It is theoretically possible to create a set of function categories that will capture most of today’s applications. The problem is however that these categories TDT4735 19 John Christian Hveding MOWAHS Categorization of Software for Mobile Work would have to be so coarse-grained or so numerous that it would not be practical to do it and that new applications would not necessarily fit. Some applications also fulfils so many functions that they would be hard to describe. The application’s function obviously affects the user’s experience. Function is an open parameter where new categories can be added if an application does not fit the existing. 4.1.2 Target user When considering software for mobile work the individual programs are usually only relevant to one profession. The target user is the worker that will use the application in his everyday work. Some applications have very broad appeal and others again are very narrow. As it is impossible to imagine every target user set, target user is an open parameter. 4.1.3 Platform The software development platform the application is developed for is an important parameter. Today, most applications would fall into one of the four main software platforms described in chapter 3. But since new platforms surely will be developed, platform is an open parameter. 4.1.4 Device requirements Any application has minimum requirements of memory, CPU speed, screen size or likewise. The requirements affect the user through the cost of the required device and reduced functionality if the requirements are not fulfilled. An application can have any number and combination of requirements. It is therefore an open parameter. 4.1.5 Connectivity A very important parameter of any mobile application is communication. Communication affects the user greatly. Different types of communication may necessitate certain behaviour from the user. Certain behaviour of the user may necessitate some form of communication. Quantification of connectivity can be approached in several different ways. Communication with an external agent can be achieved in many ways. First we consider the data flow. If the data mainly flow from the server to the handheld device, we have a Server-to-Client data flow. If the device is collecting data to send to the server, we have a Client-to-Server data flow. If the amount of information going either way is equal we have a Both Way data flow. If the program does not communicate with any external unit it is an Offline program. If the unit connects to other handheld devices in an ad-hoc way, we have Peer-to-Peer communication. The second aspect is the frequency of the communication, here referred to as synchronization. If an application requires a connection to the server in order to function we have Continuous Synchronization. There are many types of regular periodic synchronization; Daily, Weekly or Hourly to name a few, and some which synchronize on an irregular schedule. This is called Occasional Synchronization. TDT4735 20 John Christian Hveding MOWAHS Categorization of Software for Mobile Work The third aspect of connectivity is the network type. In addition to no network, there are three types of networks. There are Personal Area Networks (PANs) which includes protocols like Bluetooth and Infrared. For simplicity we can also include cable, serial and USB, in this category since PANs require that you are very close to the connecting device. There are Wireless Local Area Networks (W-LANs), which for the larger part would be IEEE 802.11b/g/n/a networks. They are not ubiquitous, but the size could be a building or a campus. Finally there are pervasive networks, where the mobile phone infrastructure is the most important example. 4.1.6 User Interaction An important difference between a handheld device and a computer in a desktop situation is the input devices. For many users this remains the main obstacle to using mobile devices. Point and click interfaces are both similar to the normal desktop environment and could even be more intuitive when using a touch screen device. However, to input text you have the choice of using a complex process, handwriting recognition, or a laborious process, choosing letters from a keyboard using a stylus or using a limited keyboard like on a mobile phone. These factors make user interaction an important criterion for categorization of mobile software. The most basic level of user interaction is Read Only. In such applications (if they indeed qualify as that) the only interaction from the user is scrolling up and down a predefined text or multimedia presentation. GUI Input is when the application does not require text input in normal operation. The user can make all his choices through menus and buttons. There are many levels of text input but for simplicity we only consider two: GUI with Light Text Input, when the user has to fill out a number of textfields, but no verbose reports. A text field is a field for input of only one line of text, usually only one word. GUI with Heavy Text Input, when one is to fill out a full text of several sentences. The often cumbersome nature of the input devices on mobile devices makes the amount of text to be keyed in important for the user. The motivation for choosing these four levels and not putting any emphasis on the input technology is that they are easily observable through use of the application and do not depend on the platform in use. For instance; all programs running on a Pocket PC with a touch screen will have the ability to use the built in handwriting recognition. Similarly on mobile phones, users can use the built in dictionary for text input, where present. In addition, there are currently many new input methods in development: voice recognition, light keyboards, cameras that interpret gesticulation etc.. As new input methods are developed they will become part of the platforms and every program will benefit from them without change. Input technology is therefore largely irrelevant when evaluating applications for mobile devices. 4.1.7 Data Flow The data flow between the user and the device reflects an important parameter of the application. It reflects how the user employs the device so it is definitely relates to the user’s experience of the application. There are three ways data can flow between the user and the device. It can flow mainly from user to device. The user fills out forms or input data in other ways and the device stores or relays the information. In the opposite situation information flows mainly from the device to user: The user mainly TDT4735 21 John Christian Hveding MOWAHS Categorization of Software for Mobile Work uses the device to look up information on the device. If a combination of the two user scenarios occur say that the information flow both ways. The description of data flow is copied “as is” from chapter 3.1.5.2 in [22]. As data flow is both important to the user’s experience and quantifiable we conclude that data flow is a relevant parameter. 4.1.8 Distribution type The method of distribution for the software is often indicative of the resources that are spent developing the application. This affects the user through availability and cost of the application. The easiest way of distribution is Freeware: Making the application available for download without any terms of use, or specifying that the software is free to use for everyone. Freeware programs are usually client-only software. Freeware is often developed by independent developers, and therefore carries a certain risk. The risks include less confidence in the accuracy of the application, less support, less updates etc. Shareware is often used as a way of distributing software for individuals or organizations that do not have a natural distribution system, but still want to make money off their work. Anybody can usually freely distribute the application, but the program is often limited either in functionality, number of uses or the amount of time the program can be used. This limitation can be “unlocked” by buying the software. Shareware holds some of the risks of freeware but when having paid for the product one has more rights. Commercial software is software developed by a company to be sold for profit. Commercial software includes standard packages sold off-the-shelf on media; applications sold over the internet and customized software developed by consultants for a specific customer. Commercial software sometimes also includes the right to newer versions of the software when it comes out. 4.1.9 Scalability Scalability is the software’s ability to handle multiple users. We consider the application in relation to the back-end, so this only applies to systems with a backend. It is a parameter that is not directly observable and the parameters depend on a number of factors; architecture of the system, protocols in use etc. It does not affect the user directly in his experience of using the device, but indirectly through the number of simultaneous users. Finally, the scale of the system is an open parameter. 4.1.10 Back-end The goal of implementing a mobile system is for most organization to save time and money. In order to achieve this, it is important that any new systems introduced can interface with the existing software in use by the organization. It is simply impossible to harvest any significant gain from using mobile devices in a work environment without taking the existing software into consideration. TDT4735 22 John Christian Hveding MOWAHS Categorization of Software for Mobile Work Because of this, systems for mobile work cannot be fully utilized without having a back-end. Information gathered has to be shared with someone and information displayed has to come from somewhere. As a consequence, mobile applications cannot be evaluated alone; the back-end has to come into consideration. The first category of back-ends is Offline applications. They have no backend. They communicate with no external agents. The second category contains applications that communicate with a server that is not considered to be a part of the system itself. For instance an e-mail client that communicates with a mail server. Applications that include their own backend are the third category of applications. The software package comes with a service for running on the desktop or a server. Applications that are integrated with existing software system the user already runs. 4.1.11 Summary After analyzing the parameters we have two sets: Open parameters and quantifiable parameters. Open parameters are for practical purposes not quantifiable. They are to be considered a part of the qualitative description of the application, and be used as such. They are presented in table 4-2. Quantifiable parameters will be discussed further in section 4.2 and are listed in table 4-3. Function Manual Data collection Entertainment Games Organizer … Target user Platform Requirements Educators J2ME Colour display Health Care .NET Compact Mobile Phone Nurses Symbian OS 400Mhz CPU Unspecified Palm OS 16MB RAM Students Linux 64kbit network … … … Table 4-2: Open Parameters and examples of instances Communication Type Offline PAN W-LAN Mobile Network Scalability Single user Unlimited users N/A Max 10 users N users … Communication Direction Offline Server to Client Client to Server Both Ways Peer to Peer Synchronization Offline Occasional Synchronization Continuous Synchronization User Interaction Read Only GUI Input Light Text Input Heavy Text Input Data flow User to Device Device to User Both Ways Distribution type Freeware Shareware Commercial Back-end Offline Online, no Back-end Included Back-end Integrated System Table 4-3: Quantifiable Parameters and their categories TDT4735 23 John Christian Hveding MOWAHS Categorization of Software for Mobile Work 4.2 Simplifying the categories We have identified a number of relevant quantifiable parameters. To simplify and improve the categorization, we try to see if some of the parameters can be grouped together. The data flow categories can be seen as a subset of the communication direction categories. Since data flow across the network is only an extension of the data flow between the device and the user they will always have the same direction. By eliminating the three categories “server-to-client”, “client-to-server” and “both ways” from the parameter communication direction, we are left with only two. We chose to eliminate them from the communication direction category rather than data flow category to cover also the offline applications. The two “lost” categories can be integrated with the categories of synchronization in a joint connectivity class. User interaction and data flow reflects two aspects of the user interface, while some of the information they hold overlap. By changing the two parameters to application input level and output level, we convey the same information in a more nuanced way while making the categories easer to determine from observing the application. The new categories are then for the former: trivial input, GUI input, light text input and heavy text input. And for the latter: trivial output, text, and multimedia. The direction of the data flow between the user and the device is reflected implicitly. Defining the new input categories: • Trivial input: Only trivial input to the device of the single button type: start app, next page etc. • GUI Input: The user lets his wishes be made through menu choices and hierarchies of buttons. No textual input. • Light text input. The application requires textfields to be filled during regular operation. This does not include setup and other one time inputs. • Heavy Text Input. The user is required to fill out verbose reports during normal operation of the device. Text input is an important part of the applications function. Defining the new output categories: • Trivial output: No information retrieval from the device. Any output there is, only prompt the user for input. • Text: The application retrieves information for the user relevant to his work and presents this in textual form. • Multimedia: The application retrieves information for the user relevant to his work and presents this in multimedia form. There are some dependencies between a few of the parameters. It is nevertheless impossible to do a direct mapping and any further grouping of parameters would lead to an unpractical number of categories. TDT4735 24 John Christian Hveding MOWAHS Categorization of Software for Mobile Work 4.3 The Categorization Combining the open categories from table 4-2 with the simplified categories from chapter 4.2, yields the categorization presented in table 4-4. Name Developer Function Target user Platform Requirements Scalability Connectivity Comm. Type Input Output Distribution Back-end Qualitative description of the application Offline Offline Trivial Input Trivial Output Freeware Occasional Continuous PAN W-LAN GUI Input Light Text Input Text Multimedia Shareware Commercial Online, no BackIncluded BackOffline end end Table 4-4: The final quantifiable parameters Peer-to-peer Mobile Network Heavy Text Input Included Backend 4.4 The Categorization in use The categorization is used to categorize a set of applications for mobile work. SmartPark is an application developed by PSI Systems, for parking attendants. More info is available at [25]. Handyman is thoroughly discussed in [22]. HaldaConcept is a system for taximeters which integrates with the booking central of a taxi company, described more closely in [28]. The eBudbok was originally developed by SINTEF Tele og Data, but is now managed by Distribution Innovation, see [26] and [27] for details. Name Developer Function Target user Platform Requirements Scalability Connectivity Smartpark PSI Systems Printing and storing parking tickets Parking attendants Pocket PC Printer Unknown Occasional Handyman ePocket Registers work hours, materials and assignments Electricians Pocket PC HaldaConcept Halda Relaying taxi assignments Taxi drivers Special Hardware Special Hardware and GPS >100 Continuous eBudbok Distribution Innovation Relaying route information to paperboys Newspaper delivery personnel Pocket PC Internet Explorer Unknown >100 Occasional Occasional PAN and Mobile Mobile Network Mobile Network PAN Comm. Type Network Light Text Input Heavy Text Input Trivial Input GUI Input Trivial output Text Text Text Output Commercial Commercial Commercial Commercial Distribution Integrated Included Integrated Included Back-end Table 4-5: A categorization of four commercial systems for mobile work TDT4735 25 John Christian Hveding MOWAHS Categorization of Software for Mobile Work 5 Evaluation of results 5.1 Generalization of the work The categorization is aimed at applications for mobile work, but throughout the report the parameters are held general. Therefore it is assumed that the categorization can be used with success to categorise any mobile application. 5.2 Experiences collecting data Due to the customized nature of most of the commercial systems for mobile work, data collection is a challenge. Some companies maintain one version of the application and customize this to fit the needs of each customer. This creates several implementations of the same application, which may have different characteristics. Some consulting companies do not wish to share details about their work. Users often lack detailed knowledge of the systems they use and can sometimes give the wrong impression about a system. TDT4735 26 John Christian Hveding MOWAHS Categorization of Software for Mobile Work 6 Summary and future work This chapter summarize the rapport and presents future challenges some can extend the work done in this project. 6.1 Summary Chapter 3 contains a state-of-the art review of the main development platforms for mobile applications. Four platforms are treated. J2ME is the only pervasive platform. J2ME applications can be run on almost any mobile device, but its success is hampered by the large variation of devices. If we consider the PDA and Smartphone market combined, the three portable operating systems covered (Windows Mobile, Palm OS and Symbian OS) were about equal in number of units sold in 2003. Symbian OS only cater to the Smartphone market. Windows Mobile and Palm OS dominate the PDA market higher and lower end of the PDA market respectively. Table 6-1 contains a summary of chapter 3. Windows Mobile 4.6 million (PDAs) 4 million (.NET) Easier to Integrate Resource Hungry J2ME >100 million 3 million Superior Portability Heterogeneity of devices Palm OS 4.2 million (PDAs) 200.000 (estimation) Established Brand Low Portability Symbian OS 6.7 million (Smartphones) Unknown Robust OS, Market leader Difficult native development Other 2.6 million - Sales 2003 Developer Community Advantages Drawbacks Table 6-1: Summary of Platforms Chapter 4 analyse a set of parameters of mobile applications and group these into two. The open parameters are a part of the qualitative description of an application and the quantifiable parameters are used to categorise the application. 6.2 Future Work There are certain dependencies between the parameters presented. These dependencies could be identified and mapped. A database of applications for mobile work using the categorization for this project, could be made, together a searchable website to present the applications to the public. The dependencies of the parameters could be enforced in the database. TDT4735 27 John Christian Hveding MOWAHS Categorization of Software for Mobile Work Appendix A: Reference [1] Gartner Says Worldwide Mobile Phone Sales Increased 21 Percent in 2003: http://www3.gartner.com/5_about/press_releases/asset_62091_11.jsp [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] The MOWAHS website: www.mowahs.com Sørensen, Wang and Conradi: “Support of Smart Work Processes in Context Rich Environments”, IDI, NTNU, 2003. Craig Neable: “The .NET Compact Framework”, IEEE Pervasive Computing Magazine October-December 2002. “Technology overview of the .NET Compact Edition”: http://msdn.microsoft.com/mobility/netcf/overview/: Sumi Helal, “Pervasive Java”, IEEE Pervasive Computing Magazine, January-March 2002. Sumi Helal, “Pervasive Java, Part II”, IEEE Pervasive Computing Magazine, April-June 2002. The CLDC 1.1 specification, JCP, 2003 Java 2 Platform Micro edition Datasheet, Sun Microsystems, 2002 The K virtual Machine: http://java.sun.com/j2me/reference/whitepapers/ Java Community Process: www.jcp.org Sun seeks to grow Java developer base to 10 million: http://www.infoworld.com/article/03/05/21/HNsunjavaone_1.html JAVA TECHNOLOGY IS EVERYWHERE: http://www.sun.com/smi/Press/sunflash/200402/sunflash.20040219.1.html [14] [15] [16] Palm OS Cobalt, http://www.palmos.com/dev/tech/oses/cobalt60.html Palm OS 6 Cobalt Overview: The Palm OS Future, http://www.palminfocenter.com/view_story.asp?ID=6568 Sander Siezen, Product Manager: Symbian OS Version 8.0 Product description, Symbian Ltd, February 2004: http://www.symbian.com/technology/SymbianOSv8_funcdesc_2.1.pdf [17] About Symbian Ltd, http://www.symbian.com/about/about.html TDT4735 28 John Christian Hveding MOWAHS [18] [19] [20] [21] Categorization of Software for Mobile Work All About Symbian Devices: http://www.allaboutsymbian.com/devices/ Global smart phone sales soar: http://www.theregister.co.uk/2004/10/27/pda_market_q3_04/ NEC, Panasonic spin Linux mobile phone software: http://linuxdevices.com/news/NS5533689493.html Gartner Says Worldwide PDA Industry Suffers 5 Percent Shipment Decline in 2003: http://www3.gartner.com/5_about/press_releases/pr30jan2004.jsp [22] [23] [24] [25] [26] [27] Eldrid Schei, Thale Christina Fritzner: ”MOWAHS - En studie av programvare for mobilt arbeid”, IDI, NTNU, 2002. Wikipedia: http://www.wikipedia.org OpenGL ES Overview: http://www.khronos.org/opengles/#about PSI Systems Homepage: http://www.psisystems.no/losninger/smartpark.htm Distribution Innovation Homepage: http://www.di.no/ Telenor Mobil Referanseløsninger: http://telenormobil.no/bedrift/tjenester/referanseloesninger/vestfolddistri busjonlesmer [28] Halda homepage: http://www.trancometer.se/eng/concept/overwiev.asp TDT4735 29 John Christian Hveding

Related docs
premium docs
Other docs by user002
meeting the digital challenge
Views: 935  |  Downloads: 79
Introduction to Data Mining
Views: 1868  |  Downloads: 310
Information Management Framework
Views: 1474  |  Downloads: 278
Information Management Framework metadata
Views: 821  |  Downloads: 99
Information Management Framework Data Quality
Views: 1050  |  Downloads: 183
Information Management Classification Guideline
Views: 907  |  Downloads: 112
Information Architecture
Views: 717  |  Downloads: 57
How to measure success
Views: 815  |  Downloads: 29
HelloPartner Data Model
Views: 593  |  Downloads: 19
Emotional Intelligence
Views: 636  |  Downloads: 30
Developing Strategies for Managing Your Files
Views: 381  |  Downloads: 16
Data Quality Framework
Views: 502  |  Downloads: 69
Data quality assessment guidelines
Views: 670  |  Downloads: 103
Competitive Intelligence
Views: 446  |  Downloads: 39