Gap Analysis between Ubiquitous Computing
Requirements and Features of an Open Source
Operating System (Openmoko) for
Hand Held Devices
Shahid Siddiq
National University of Computer & Emerging Sciences, Lahore Campus
Aasim Ali
Punjab University College of Information Technology (PUCIT)University of The Punjab,Lahore, Pakistan
Kamran Malik
Institute of Business & IT, University of Punjab, Lahore, PK [email protected]
Abstract-- Ubiquitous Computing (UC) is an emerging
technology of sharing the information by using large collection of computing devices. Sharing of information is in terms of availability of information at every time, every where and in invisible form. In Ubiquitous computing power of desktop paradigm is distributed to every day electronic devices in an invisible mode. Rather saying that we are living in the age of computers, using ubiquitous computing services, we can say that the computer is living in human beings. The implementation of requirements of ubiquitous computing is a real issue to address. It is considered that hand held devices’ operating systems are the best candidates to achieve implementation of Ubiquitous computing.
In this paper, we present our analysis of gap present between the requirements of a virtual operating system of ubiquitous computing and a currently present open source operating system of hand held devices.
Index Term-- Ubiquitous Computing, Context Awareness,
Security, Distributed Operating Systems, Pervasive Computing, Interface Heterogeneity
I. INTRODUCTION
When we distribute processing of information to every day objects and devices, the paradigm is known as ubiquitous computing. In ubiquitous computing, users engage many computational devices simultaneously instead of a single device (as in desktop paradigm) and are unaware of these devices. [9]. This concept of ubiquitous computing is similar to the distributed computing so, we can say that ubiquitous computing is similar to distributed computing but it also focuses on the other issues beyond the distributed computing.
Ubiquitous Computing is the attempt to shift computational from tradition computing environment to an environment where every device participate in computation and surrounds user at every place so that user is not required to interact with whole environment instead a controlling device. Rather forcing the user to search out and find computer's interface, ubiquitous computing suggests that the interface itself can take
on the responsibility of locating and serving the user on the basis a controlling device [10]. It is observed that mobile phones and devices are best candidate of controlling devices to the environmental computing objects (such as situated displays, vending machines and home appliances). The ubiquity of mobile phones gives them great potential to be the default physical interface for ubiquitous computing applications [11]. In figure 2, major trends in computing can be viewed.
The purpose of this study is to examine the gap between Ubiquitous Computing virtual Operating Systems and open source Operating System of any hand held device.
The paper covers:
History of Ubiquitous computing
Requirements for virtual operating system of ubiquitous computing
Introduction to the selected open source operating system of hand held devices i.e. Openmoko
Feature list of Openmoko
Gap Analysis of Ubiquitous Computing and Openmoko
II. HISTORY OF UBIQUITOUS COMPUTING Mark Weiser has used the phrase "Ubiquitous Computing" during his research at the XEROX labs when he was working as chief technologist there. He is also called father of Ubiquitous Computing. He has also written some early papers on this new emerging concept [9].
103905-0404 IJECS-IJENS © October 2010 IJENS
A number of other educational institutes which have contributed in the research of this field are MIT, Georgia Tech College of Computing, NYU's Interactive Telecommunication program and Microsoft Intel Research [9].
“One of the earliest examples of the ubiquitous computing was "Live Wire" also known as "Dangling String" developed by Natalie and installed in the XEROX labs in the time of the Mark Weiser. This piece of the string was attached to the stepper motor and controlled by the LAN connection, network activity cause the string to jerk which indicates the flow of traffic on the network [9].”
Automated capture, access and integration are another research theme of ubiquitous computing. Under this theme, different experimental applications were developed at different research institutions, for example, Classroom 2000 application at Georgia Tech institute. This application was aimed to facilitate students in terms of recording of lectures and access of the lectures later on so that they would be able to concentrate on lectures instead of taking notes. This concept was implemented by providing the electronic board to the teacher to capture and record the audio of the lecture effectively and efficiently [10].
“Smart Coffee Cup” is another example of ubiquitous system also called “media cup”. This cup has integrated sensors, processors and networking elements that communicate two state of cup to the owner (one is empty and the other is full). The cup also stores information of its owner. [12].
The future era focuses on mobility of user instead of stationary computing environment. Ubiquitous computing is an attempt to provide free mobility with maximal benefit. Now a day, PDA’s are the devices which can be candidate devices for ubiquitous computing because these devices have all the facilities which a mobile user needs. With the movement of a person from one place to another requires environmental devices to plug in with the controlling device of the user. Another application "Cyber Guide" and "iRoom [13]" (an automated meeting room) are example of ubiquitous environment.
Another project of ubiquitous computing was developed to help the tourist in taking decision about his mobility at new places. The aim of the project named “Cyber Guide” was to provide simulation of mobility and position aware tour guide [10].
III. REQUIREMENTS OF UBIQUITOUS COMPUTING
With the evolution of Ubiquitous Computing, the need for a virtual operating system for Ubiquitous Computing is increasing day by day [1]. To fulfill requirements of such an operating system, identification of requirements is a necessary step which is under study now a day. The requirements of Ubiquitous computing (also know as pervasive computing) varies researcher to researcher.
As Ubiquitous Computing environments are extremely dynamic and with ever changing requirements and constantly refined specifications, it is difficult to broaden the perception for common requirements [1]. So, this section is a little effort to grasp the requirements of ubiquitous computing. The common requirements are listed in this section to elaborate pervasive computing concept along all of its benefits and issues.
The requirements of ubiquitous computing are divided into three main key specifications each of which further divided into multiple requirements. Following are three key specifications of ubiquitous computing.
1) Requirements to manage mobility
2) Secure discovery of environment and services of other devices and applications
3) Requirements of distributed computing
Break Down of Key Specifications:
1) Mobility:
Mobility, most of the time implies wireless communications which requires following requirements to implement for proper compliance of mobility [2].
Context Awareness is an important feature of mobility to implement. Context Awareness is the adaptation of behavior of an application or device with the change in its environment. Context aware applications or devices can sense the environment and the events occur in that environment. In Ubiquitous Computing change of location and orientation of a device can not be fixed, so in pervasive computing physical device can be personal belonging, identified and long term personalized to its user or shared among several users and personalized solely for the duration of session [2]. The system support infrastructure must be flexible enough to accommodate all the devices to detect, aggregate and manage resources that belong to the same logical computing environment. The resources of a same logical computing environment make boundaries of a computing environment to differentiate it from other computing environment [1].
Security is an important aspect of computing either conventional or ubiquitous. Secure transactions will be necessary while devices are on move from one place to another and require contacting with other devices with the change of environment [3]. A secure environment must have capability to prevent malicious attacks intruding into the environment. Such a malicious attacks were done by using the security holes in the softwares and applications. Secure environment provides guarantee to cater malicious attack in a decent way, so that no information leak would be committed.
Human screening is another aspect must be kept in mind while developing a virtualized operating system compliant of ubiquitous features. It is a measure to stop the denial of services attack (Any attack that attempts to shut down or prevents access to a computing resource). Denial-of-service (DoS) attacks can cause:
An application, Device or the operating system to stop functioning
The CPU to engage in long, pointless calculations
System memory to be consumed so that the functioning of applications and the operating system is impaired
Network bandwidth reductionSuch an attack can cause an irreparable loss to the whole computing environment of Ubiquitous Computing. So, Human Screening is an important requirement of ubiquitous computing because due to mobility purpose the power of computing of each device in the ubiquitous environment will not be comparable to the desktop computing.
Fig. 2. Major Trends in Computing
Heterogeneity management is another important requirement of ubiquitous computing. As there are many devices (up to 40 devices on an average) involve in the same logical environment of ubiquitous computing with different manufacturers and different operating systems and applications, the interaction among all such different devices with different interfaces is very difficult. To implement such a requirement there is a need of common interface of communications among devices. For this purpose a middle ware is needed which will support every type of interface and
devices with heterogeneous systems to interact with each other.
Interaction with the ubiquitous computing environment includes using devices and applications. Example of devices are desktops, laptops, PDAs, smart watches, and touch screens; examples of applications are music and video players, slide show presenter, location, PDF viewer, ticker tape, HTML browser, speech engine, meeting and seminar attendance, user identification and authentication based fingerprint identification devices, iris scanners, and RF badges [1].
Services Availability is very important in context of mobility. When a user moves from one location to another with her personalized devices, there is a need of availability of services required by the personalized devices on the behalf of her. If services are not available she might be stuck while requesting some information retrieval from a particular service.
Services mostly include transaction management, information sharing, and resource sharing and sometimes power (computing power) sharing.
Management from chaos must be the part of ubiquitous operating system requirement [1] because during mobility a personalized device can face multiple devices of different kind and intensity and if proper management of services of all the devices is not available properly then there would be a chaos in obtaining different services from different devices. So, one service at a time from any service provider environment is recommended. One-to-many interaction can not be avoided that is why proper chaos management module must be the part of virtualized operating system for ubiquitous computing.
103905-0404 IJECS-IJENS © October 2010 IJENS
Stability is a necessary thing which is needed to support time sensitive information. Time sensitive applications have their timing requirements and require certain amounts of CPU times in certain frames to be allocated to them [3]. It does not mean that other non-time applications allow instability. Stability is an issue of every type of application and devices.
2) Secure Service Discovery:
Secure discovery is the second category to be considered as requirements of Ubiquitous Computing. Secure Service Discovery protocols are a key technology of Ubiquitous Computing. They give to distributed components the capability of discover and attachment by using secure environment on a network. There are leading service discovery technologies: Service Discovery Protocols (SDP) of Bluetooth, Jini, Salutation, Service Location Protocol (SLP) and Upnp. [2]. We further breakdown the Secure Service Discovery into requirements necessary for service discovery. Availability of services is a requirement of Ubiquitous Computing. Device failure is common in conventional desktop environment where fewer devices are present and interacting to each other. In Ubiquitous Computing the quantity of devices and applications is not limited. Recovery from failure algorithms is necessary to implement for providing the service availability requirement of the ubiquitous computing.
Service Access is another issue comes under the secure service discovery. To establish an association with a server process and a client process from machine to machine on the internet or local network IP addresses are required along with the ports where servers are ready to listen and the client will attach there to get services. The client needs to learn and run such a protocol which connects them to the servers or services. Services are mostly registered using human readable names. Service names need to be mapped to machine names and port numbers on which the services are offered [2]. In Ubiquitous Computing, there is a transparent excessive communication between devices. Human Computer Interaction will not be often as device to device interaction will be. Consider a scenario in which a device detects the movement of a person towards the exit door of the room and intimate the door to open for human and then digital doors intimates the car, lawn, and digital chair for human movement toward them. If human does opt to drive a car and move towards car the doors of the car immediately will be opened as she gets closer to the car. In such a scenario, there is no interaction between devices and human being but the interaction is only between devices mostly.
Service Location Registration is another requirement comes under Ubiquitous Computing. There must be a service location management either through a directory services or through domain name services. The service registration process is of the “yellow pages” type, that is, services can be discovered by types name and characteristics [2]. Registration of a service is another important aspect of discovery. Ubiquitous computing needs a directory services for the registration of the services of
a particular ubiquitous computing logical environment (see figure 2).
Network and communication transparency is a major requirement of the ubiquitous computing. Mark Weiser as a founder of the term ubiquitous computing introduces the ubiquitous computing as Calm technology which means services exchange must be transparent from the user and she may not know how services are shared but the only knowledge provided is what is shared. It is “How verses What” philosophy. The user needs no worries about the way of execution of interaction but only about what is in a common interaction. As discussed a scenario previously in service access where every device interact with each other without annoying the user. Annoying obsession of alert messages is not the part of ubiquitous computing.
3) Requirements of Distributing Computing:
The features which were additional to the ubiquitous computing are discussed previously. The ubiquitous computing uses the requirements of distributing computing because ubiquitous computing environment is a collection of distributed components or agents.
The list of supporting services or requirements is listed below [1]:
Distributed component management
Distributed component presence detection based soft state.
Distributed component database with information about distributed components present in the ubiquitous computing environment.
Notification service to disseminate information about the state of the ubiquitous computing environment. This service is based on events and event channels that decouple the information senders from information receivers.
Data management support that is capable of dynamically aggregating and removing data stored in multiple devices while providing a unified file hierarchy for the ubiquitous computing environment. It uses context to customize the global data view, hiding irrelevant data dynamically. Furthermore, it supports data trans-coding to overcome device heterogeneity issues.
Authentication service that supports different mechanisms and assigns different trust levels to entities based on the strength of the authentication method use.
Power management as all the devices are slim and needs power.IV. INTRODUCTION TO THE SELECTED OS “OpenMoko is a Linux platform for smart phone that makes mobile systems as open as the PC. The OpenMoko framework includes the latest Linux software, from kernel 2.6 with suitable drivers, over graphical front ends, to application and package management. It comes with some 3,000 applications [4]”.
The OpenMoko community does not call their products phones or handset applications. OpenMoko’s vision is open communication devices and there would be many of them in the product line. OpenMoko is FOSS (Free and Open Source) mobilized. It means that it follows the Open source philosophy but also tries to incorporate many practical suggestions from the most successful open source projects. [5].
“The vision behind OpenMoko describes a completely different world. It is a world where there is a common standard platform for mobile phones which is open and therefore friendly to developers. It is a world where once you buy your phone you can install or remove software from it as you wish, customizing the phone and its capabilities in much the similar manner you can customize your PC. It is a world which is, thanks to the visionaries and enthusiasts behind the OpenMoko project, near. This is the real mobile communications revolution we should be expecting. It is not merely about creating a technologically superior mobile phone that looks good. It is about creating an open common environment which welcomes innovators of all kinds to converge and create technological superiority not dependable on one vendor. It is the mirror of the Free Software ecosystem that produced things like GNU/Linux, Mozilla Firefox, Apache, PHP, Drupal and other impressive software technologies [6]”.
The openmoko Linux distribution is built with OpenEmbedded. Open in openmoko for open mobile environment and moko is short for Mobile Kommunikations [7].
V. FEATURES OF OPENMOKO
Features of OpenMoko are quite impressive regarding ubiquitous computing. It provides Ubiquitous Internet, Brilliant Graphical User Interface, Location Awareness, Dynamic application install, remove and update facility, a common platform to reduce heterogeneity of interfaces of different devices and applications [5].
Operating System core functionalities are provided by Openmoko and described below devided into two main divisions that are; Kernel Space and User Space [8].
Support of services in Kernel Space is:
OpenMoko provides support for USG host/ client support for Linux, OS X, and Windows. It Support the features like Mass storage, Host Networks, Linux USB gadget (The standard method for having the device act as a slave).
Bluetooth support is provided on the Linux standard called BlueZ (headset for wireless headsets, OBEX for file transfer, HID for blue tooth and Network Emulation for blue tooth based network).
Power management unit is interfaced with the standard kernel 12C interface. The actual power states transitions are TBD.
Accellerometer is a stub to develop sensor based applications to connect with this stub.
Support for User Space OpenMoko Core services is:
sshd enables a remote shell login via network.
udev is responsible for managing the device nodes in the /dev pseudo file systems
bluez is the Linux Bluetooth subsystem.
dbus is an interprocess communication subsystem
GSM handles the communication with GSM module. Gsmd is responsible for the management of GSM backend, libgsmd communicates with gsmd and export an API for application.
GPS handles the communication with the GPS module, gpsd is the daemon for management of GPS backend. It exports standard Gpsd interface.
Matchbox is light weight window manager
Kdrive-fbdev is a lightweight X11 server that runs directly on a Linux FrameBuffer.
OpenMoko Application Framework is another feature supported by the OPenMoko
Fingure based applications and Stylus based applications are found.
The features OpenMoko supports or will provide supports are:
A flexible answering machine that can record incoming calls.
Bluetooth powered Multi-SIM support
OpenMoko OSvS support is hoped to deliver an opensource solution to implement a secure voice application that can operate over the GSM Data Channels.
Integration of Bluetooth mic, speakers, pointing devices and joysticks, Network File servers (SAMBA based), Web server (LAMP), a network printer and a USB hard drive support.
Swiss Army Knife is a protocol analyzer, Wireless network interference viewer and a motion capture using accelerometers.
USB Support for hooking with wired network
Voice mail box support
103905-0404 IJECS-IJENS © October 2010 IJENS
Human Screening
VI. GAP ANALYSIS
Table I shows gap analysis in a better way. In table I Support of OpenMoko for ubiquitous computing is divided into three levels: First is complete support means OpenMoko provides complete support for this requirement of Ubiquitous computing; Second is Partial Support means it provides
support for this feature to some extent but not completely. Not at All means OpenMoko does not support these functionalities.
Table I
Gap Analysis between Ubiquitous Computing and OpenMoko
Ubiquitous Computing Requirements
Extent to which OpenMoko Supports Ubiquitous Computing Requirements
Completely Partially Not At All Comments
Context Awareness Yes [5] [8] -- --
Swiss Army Knife is a protocol analyzer, Wireless network interference viewer and a motion capture using accelerometers.
Personalization of devices and
applications -- Yes --
Accellerometer is stub to develop
sensor based devices and
applications to the device
Security Management Yes [8]
OpenMoko OSvS support is hoped to deliver an open source solution to implement a secure voice application that can operate over the GSM Data Channels.
Heterogeneous System
Collaboration Yes [8] -- --
Integration of Bluetooth mic, speakers, pointing devices and joysticks, Network File servers (SAMBA based), Web server (LAMP), A network printer and a USB hard drive support
Secure Services Discovery Yes[8] -- --
Swiss Army Knife is a protocol analyzer, Wireless network interference viewer and a motion capture using accelerometers.
Secure Services Availability Yes [8] -- -- See Security Management
Secure Services Access Yes [8] -- -- See Security Management
Chaos Management -- -- Yes
Service Location Registration -- Yes [8] -- See Context Awareness
Network and Communication
Transparency Yes
Distributed Component
Management -- Yes [8] --
Power Management Yes [8] -- --
Power management unit is interfaced with the standard kernel 12C interface. The actual power states transitions are TBD.
Distributed Component Database -- -- Yes [8]
Notification Service Yes [8] -- -- See Secure Services Discovery
Data Management Support -- Yes [8] -- OpenMoko provides support for
Ubiquitous Computing Requirements
Extent to which OpenMoko Supports Ubiquitous Computing Requirements
Completely Partially Not At All Comments
OS X, and Windows. It Support the features like Mass storage, Host Networks, Linux USB gadget (The standard method for having the device act as a slave).
Light Weight Directory Services -- -- Yes [8]
Authentication Services Yes [8] -- -- See Security Management
Load Balancing -- -- Yes [8]
Soft Real Requirements Yes [8] -- --
OpenMoko Application
Framework is another feature supported by the OPenMoko
Human Screening Yes [8] -- --
Short Distance Wireless
Connections Yes [5] [8] -- --
Bluetooth support is provided on the Linux standard called BlueZ (headset for wireless headsets, OBEX for file transfer, HID for blue tooth and Network Emulation for blue tooth based network).
Recovery from Failure -- Yes [8] --
Access Control and Isolation -- Yes [8] --
Mobility Management Modules -- Yes [8] --
Transaction Management -- -- Yes [8]
VII. FUTURE STUDY
The focus of this study was only to identify gap between ubiquitous computing requirements and open source hand held device operating systems and particularly OpenMoko which is based on Embedded Linux. This study would be enhanced suggest solutions to cover the gap between ubiquitous computing and OpenMoko, and the implementation of such a solution.
REFERENCES
[1] Pierre L’ Ecuyer, Aaldert Compagner and Jean-francois Cordeau, “Entropy Tests for Random Number Generators”, ACM TOMACS, March 12, 1997.
[2] Richard P. Brent, “Fast and Reliable Random Number Generators for Scientific Computing”,
[3] Intel Platform Security Devision, “Intel® Random Number Generators”, Intel Corporation, 1999.
[4] Pierre L’ Ecuyer, “Random Number Generators: Selection Criteria and Testing”,
[5] Pierre L’ Ecuyer, “Random Numbers”, International Encyc. Social and Behavioral Sciences, January 4, 2001.
[6] Pierre L’ Ecuyer, “Random Number Generators and Empirical Tests”,
[7] Wolfhard Janke, “Pseudo Random Numbers: Generation and Quality Checks”, published in Quantum Simulation of Complex Many-Body Systems: From Theory of Algorithms, Lecture Notes, J. Grotendorst, D. Marx, A. Muramatsu (Eds.), John Von Neuman Institute for Computing, Julich, NIC Series, Vol. 10, ISBN 3-00-009057-6, pp. 447-458, 2002.
[8] Pierre L’ Ecuyer, “Uniform Random Number Generators: A Review”, Proceedings of the 1997 Winter Simulation Conference
ed. S. Andradottir, K.J. Healy, D. H. Withers, and B. l. Nelson, 1997.
[9] From Wikipedia, (Cited on October 1, 2008)
http://en.wikipedia.org/wiki/Ubiquitous_computing
[10] Gregory D. Abowd, Ubiquitous Computing:
Research themes and open issues from an applications perspective, GVU Centre & College of Computing Georgia Institute of Technology, USA.
[11] Rafael Ballagas, Michael Rohs, Jennifer G.
Sheridan, The Smart Phone: A Ubiquitous Input Device. [12] Tim Kindberg, Armando Fox, System software for
ubiquitous computing, IEEE, 2002.
[13] Brad Johanson, Armando Fox, Tarry Winograd, The