A Thin Client Approach to Supporting Adaptive ... - Computing - DIT

10 downloads 117 Views 139KB Size Report
We present a thin client approach to supporting session mobil- ity across a .... the X Window system is better suited to traditional computers such as laptops.
A Thin Client Approach to Supporting Adaptive Session Mobility Dan MacCormac, Mark Deegan, Fred Mtenzi, Brendan O’Shea School of Computing, Dublin Institute of Technology, Kevin St, Dublin 8, Ireland. {dan.maccormac, mark.deegan, fred.mtenzi, brendan.oshea}@comp.dit.ie

Abstract. Recent growth in computing devices from the smartphone to the desktop computer has led to users interacting with multiple computing devices throughout the course of the day. Modern computing sessions are a graphically rich, multi-tasking experience, representing a considerable amount of state. There is seldom the ability to automatically move a session from one device to another; instead users must manually restore applications to their previous state. Without session mobility, the problems of unsynchronised information and communication barriers become apparent. We present a thin client approach to supporting session mobility across a broad range of devices. We use an adaptive approach, thereby supporting a fine granularity of devices. Furthermore, our approach enables rich diverse sessions composed of applications specific to a range of platforms, reducing constraints imposed by mobile devices, and boosting productivity by allowing access to a wider range of applications from a single device.

1

Introduction

Growth in the use of both mobile and stationary computing devices, in addition to increased bandwidth being offered by 3G providers, has led to users interacting with a wider range of devices in day to day life. The task of manually re-instating a computing session when moving from one device to another can be frustrating, time consuming, and sometimes impossible depending on the correlation between the current and previous device. This task is common, for example in academic, medical and corporate environments, where people may work at several terminals at different times throughout the day. Consequently there is a growing demand among users for continuity in interaction when moving between devices. Providing a method of moving a session from one device to another which is called session mobility, helps to significantly increase productivity while eliminating the cumbersome task of attempting to manually restore session state. Consider Alice who benefits from session mobility. In the morning, Alice reads her e-mail on her PDA while travelling to work on the train. When she arrives at the office, her session is transferred to her desktop computer without interrupting the message she is currently composing. Before lunch, Bob in Alaska

initiates an instant messaging session with Alice. Rather than being confined to her desktop computer, she decides to continue the conversation on her smartphone as she leaves for lunch. Later that afternoon, Alice is scheduled to give a brief presentation to her colleagues. As she enters the conference room, her session is seamlessly transferred to a public terminal, allowing effortless delivery of her presentation. On her way home she books tickets for a concert on the same instance of the web browser she opened that morning. Achieving the level of mobility outlined in Alice’s scenario becomes possible when we consider merging appropriate technologies, and adding additional elements such as a knowledge management component to take advantage of user and domain information. Deployment of such a system in a Pervasive computing framework can facilitate inter-device communication and enable seamless hand-off of sessions from one device to another. The remainder of this paper is structured as follows. In section 2 we discuss related work in the area of session mobility. From the problems outlined above, we have identified several key requirements of our system, which we outline in Section 3 as well as presenting the corresponding architecture of the system. In Section 4 we outline the implementation of the system, and in Section 5 we evaluate and discuss the performance and relevance of our approach. Finally, in Section 6 we present our concluding remarks and discuss potential future work.

2

Related Work in the Area

The work outlined in this paper focuses on enabling mobility of legacy applications across heterogeneous devices. We aim to provide seamless integration of the interface of the mobility enabled application into the users current environment, allowing both mobile and stationary applications to work side by side. Moreover, our approach takes into consideration the diverse range and capabilities of various target platforms, providing adaptive methods of session mobility. This reduces footprint when moving sessions to mobile devices with constrained capabilities. We use a thin client approach to providing session mobility. Existing thin client solutions which display an entire desktop environment confine users to particular Operating Systems. This prevents users from merging the power of applications which are specific to a variety of platforms. The problem of providing web interface mobility has been discussed in [1]. The system supports applications built using a multi-modal approach, and is capable of choosing the most appropriate mode for the current device. However, to take full advantage of the capabilities of the system, applications must be built using a specialised toolkit. Similarly, in [2], the authors present a “multibrowsing” system which allows the movement of web interfaces across multiple displays. This work supports the movement of existing web applications, broadening its usage scope. Both of the above approaches focus specifically on mobility of web applications. As the interaction with mobile devices becomes more complex in response to their growing capabilities, the need to support mobility of a wider range of applications becomes apparent. ROAM, a system to sup-

port the movement of Java based applications between heterogeneous devices is presented in [3]. This work also requires developers to build applications using a specific approach thereby limiting the applicability of this work. In [4], the authors present TAPAS (Telecommunication Architecture for Plug And Play Systems), an approach to supporting user and session mobility. This approach allows for a broad range of applications and allows access to personalised applications within foreign domains. However, as with the previous examples, this work requires applications to be built using a specialised toolkit. Guyot et al. [5] investigate smart card performance as a token for session mobility between Windows and Linux. This work supports mobility of a wide range of applications, and is also capable of remotely fetching and installing necessary applications which were available on the previous terminal but not on the present terminal. The approach taken in this work involves the restoration of a session based on a session state file. Our approach involves the dynamic movement of an application from one device to another. Furthermore, this work does not address the use of mobile devices, which is central to our work.

3

Design Goals and System Architecture

In this section we outline the design goals of our approach and present the system architecture. A brief discussion on the relationship between the design goals and the resulting system architecture follows. 3.1

Design Goals

When designing our approach to session mobility we established the following objectives. Enable the mobility of legacy applications Avoid modification to existing applications and Operating Systems Support heterogeneous client platforms Support seamless integration of mobility enabled applications where possible Enable sharing of workspaces with multiple users for presentations and collaborative work – Support efficient management of network resources

– – – – –

3.2

System Architecture

We present the system using a multi-layered architecture, as illustrated in Fig. 1. At the lowest level – the Protocol layer – sits the chosen protocols which are X11 as used by the X Window System and RFB which is used by VNC. VNC is suitable for displaying sessions on mobile devices with limited resources, while the X Window system is better suited to traditional computers such as laptops and desktops. On top of the Protocol layer, we have added an Extension layer to support the mobility of legacy applications, as well as the multiplexing of applications for collaborative work. The VNC system inherently supports mobility

of application interfaces. Supporting application mobility at the X Window level is possible through the use of an X11 pseudo-server [6] which enables dynamic movement of X11 clients. On top of the Protocol and Extension layers, is the Management layer. The Management layer is the nucleus of our approach, controlling the lower layers and enabling efficient management of resources. It is composed of two core modules – the Service and Database modules. The Service module facilitates communication between the higher and lower layers of the system. The Database modules complement the Service modules by storing and managing network resource information such as network status, available terminals and device information. Finally, at the highest level is the Application layer. This layer provides an interface to the lower layers of the system, enabling people and devices to interact with the system using a uniform interface. Application layer I/O is achieved using TCP clients and a central server. Protocol messages are encapsulated in an XML based communication language which was created specifically for this system and other pervasive computing applications which are under active development such as Location Based Services.

Fig. 1. Layered system architecture showing supported platforms and applications

Extending existing thin client technologies has allowed us to meet our objective of enabling the mobility of legacy applications in a seamless manner. By using more than one thin client protocol, we enable adaptive session mobility and hence support of heterogeneous devices. By combining Database and Service modules we have added a knowledge management component to our approach, enabling efficient management of network resources.

4

Implementing an Adaptive Approach to Session Mobility

The session mobility server was implemented in a Linux environment. Additionally, we created light-weight client applications for several test systems such as Windows, Linux and BSD. Using these client side applications, requests can be

sent to the application server to move a session from one device to another, specifying either an IP address or Zone name as a destination. Zones represents groups of computing devices which are managed by the Database modules. If a zone name is specified, the system will choose an appropriate vacant device in the given zone. This is useful in environments composed of a large number of public workstations such as University laboratories where users simply want to use the closest vacant device. The Application Layer was implemented using a C based TCP server and and a custom built request parser driven by Expat, an open source XML parser. At the Management layer, both the Service and Database modules were implemented using shell scripting, as well as employing a variety of open source Linux tools. In the first prototype of the system the databases are structured using XML based entries, allowing for an extremely light-weight database architecture. The Extension layer, which enables session mobility and multiplexing is driven by three open-source tools; xmove [6], VNC [7], and xtv [8]. X11 mobility is supported by xmove, a pseudo-server for X11 client movement. The pseudo-server is an intermediary, which is positioned between the client and server, allowing interception of X protocol messages. This intercepted information can then be used as a basis for window movement. It acts in a similar manner to a standard X server, and as a result legacy applications do not distinguish between a real or pseudo server. Therefore any application started on the pseudo-server will be capable of having its output redirected to another X server; real or pseudo. As we mentioned, VNC inherently provides session mobility. Moving sessions to light-weight device can be achieved by attaching all applications to a virtual VNC desktop on the server which is then accessible from any terminal device using appropriate client software. Multiplexing is achieved via xtv which allows remote users to view the contents of an X session within a client window. xtv clients cannot provide any input, instead a view-only session is provided. VNC can be used to provide a collaborative shared workspaces. All tools run at the application level, requiring no change to the underlying windowing system, which was one of our initial design objectives.

5

Evaluating the Performance of our Approach

To evaluate the performance of the system, we set up a small testbed consisting of a Linux server running our session mobility software and several client machines representing user workstations. We performed a series of tests to establish the time taken to move a session for one device to another using our approach. Our test sessions consisted of five common applications, including a text editor, web browser, and a terminal window, each running on machines with equivalent specifications. Tests demonstrated that the average time taken to move a session from one device to another using the X11 pseudo-server approach was just over 4 seconds. In the case of mobile devices, we must also leverage the capabilities of VNC which increases session mobility cost. Test results showed that VNC takes an average of 3 seconds to display a session, increasing mobility cost by

75% in the case of our test session. However, we can eliminate this overhead by executing both tasks concurrently, hence mobility cost can be attributed to the last task to complete – most likely X11 movement. We present our results in comparison to other common approaches to session mobility, as shown in Fig. 2. The first method, which we have observed students in Computer Science courses to use, involves storing a virtual machine on a portable flash drive, and carrying it from one machine to the next. The time taken to suspend and resume this virtual machine is significant and depends largely on the level of state change within the virtual machine. Furthermore, allocating larger memory to the virtual machine and running more applications simultaneously increases suspend/resume time experienced. The second approach to providing session mobility which we have compared our implementation to is that of Microsoft’s Terminal Services. Suspending a Terminal Services session merely involves closing the client window and thus there is virtually no time associated with suspending the session. Restoring a Terminal Services session takes approx 2 - 3 seconds, which is very close to the time taken by our system. Moreover, the resume time indicated by our approach is identical to the time required for direct movement of a session from one client to another, since a resume operation is achieved in the same manner as moving a session. As a result, the difference between time taken by Terminal Services and our implementation is marginal: just over 1 second; at least in case of relatively light sessions.

Time (ms) 60,000 54,000 48,000 42,000 36,000 30,000 24,000 18,000 12,000 6,000 0 Parallels Desktop

VMWare

Suspend

Our Approach

Terminal Services

Resume

Fig. 2. Comparison of test results

We also considered the overhead added by interposing a pseudo-server between X client and server. In [6], tcpdump (a tool which captures network packets

and assigns a time-stamp) is used to establish the latency added by xmove as opposed to using a standard X server. Test results showed that xmove is virtually unnoticeable when communication between client and server is asynchronous; for example in the case of a colour page redraw, a delay time of 4% is added. In a scenario where communication is synchronous, meaning the client must wait for acknowledgement from the server between each message, the overhead becomes noticeable. The tests showed that for communication which involved a series of synchronous messages sent between client and server, xmove added an overhead of approx. 2 ms, bringing the roundtrip time from 3 ms to over 5 ms. This is significant, since it accumulates overtime. However, clients do not regularly communicate in this fashion; when they do it is often during start-up procedures or at other times when the user is expecting a delay, rather than time critical periods. Finally, we evaluated the overhead added by the Management and Application layers of the system. Test results showed that these layers add an average overhead of 1.8 ms which we feel is negligible. We also observed that the mobility cost grows in parallel with the number of active applications in a users session. This is due to the processing performed by the pseudo-server at the Extension layer, whereas the adjacent layers exhibit similar time patterns despite the number of applications within the session. In addition to this, all applications do not move immediately, but rather sequentially. The results are based on the time elapsed between the initial request and the time at which the final application moves, meaning other applications may move substantially faster. Aside from the competitive session movement times demonstrated, our implementation offers the advantage of a rich heterogeneous environment in comparison to the alternative methods outlined. While users can run individual systems in parallel using VMWare’s tabbed environment, these parallel environments lack consolidation and the task of switching between tabs quickly becomes cumbersome. The approach of running several entire operating systems uses considerable system resources, and furthermore resuming a virtual machine on a processor architecture which differs from the previous architecture is known to be problematic.

6

Conclusion and Future Work

There is seldom the ability for users to move their session from one device to another. Existing implementations of such systems tend to focus on one Operating System. By merging existing thin client technologies and adding Extension, Management and Application layers, it becomes possible to move sessions across a broad range of devices in a seamless manner. This alleviates the need for users to manually re-instate sessions, which can take several minutes; the aggregate cost of which is significant when interacting with numerous devices. The ability to share this mobile session with multiple users provides a useful tool for presentations as well as collaborative work. Manually managing all of these technologies

to provide such services is difficult, time consuming and sometimes impossible. In the past, such barriers have been a deterrent to the use of these technologies. There are several areas of this work which have yet to be explored in further detail. The need for load balancing between multiple servers is a fundamental issue; master and slave servers supporting non-residual process migration is one possible approach. There are also several security enhancements which could be added to our work, for example mandatory use of SSH tunnelling for all sessions. Other challenges include preventing dropped sessions due to broken network connections and adding support for local resource redirection such as printers and USB devices. In addition to addressing limitations of the current system, the next phase of research involves the exploration of the use of sensory identification tokens such as Bluetooth and RFID tagged objects as a trigger for the movement of sessions. Sensory tokens could also be used to store session state information, adding a further level of flexibility to system. As we enhance our work to date, in addition to evaluating other Ubiquitous computing concepts, the unification of these individual approaches into a single diverse infrastructure will help to validate our vision of an intelligent pervasive computing environment. Acknowledgements Dan MacCormac gratefully acknowledges the contribution of the Irish Research Council for Science, Engineering and Technology: funded by the National Development Plan. The authors also wish to thank to Dr. Kudakwashe Dube for his discussion of this work.

References 1. Bandelloni, R., Paterno, F.: Flexible interface migration. In: IUI ’04: Proceedings of the 9th international conference on Intelligent user interfaces, New York, NY, USA, ACM Press (2004) 148–155 2. Johanson, B.: Multibrowsing: Moving web content across multiple displays. In: UBICOMP 2001. LNCS 2201, Springer Verlag (2001) 346–353 3. Chu, H., Song, H., Wong, C., Kurakake, S., Katagiri, M.: Roam, a seamless application framework. Systems and Software 69 (2004) 209–226 4. Shiaa, M.M., Liljeback, L.E.: User and session mobility in a plug-and-play network architecture. IFIP WG6.7 Workshop and EUNICE Summer School, Trondheim, Norway, (2002) 5. Guyot, V., Boukhatem, N., Pujolle, G.: Smart card performances to handle session mobility. Internet, 2005.The First IEEE and IFIP International Conference in Central Asia on 1 (2005) 5 6. Solomita, E., Kempf, J., Duchamp, D.: XMOVE: A pseudoserver for X window movement. The X Resource 11 (1994) 143–170 7. Richardson, T., Stafford-Fraser, Q., Wood, K., Hopper, A.: Virtual network computing. Internet Computing, IEEE 2 (1998) 33 – 38 8. Adbel-Wahab, H.M., Feit., M.A.: Xtv: A framework for sharing x window clients in remote synchronous collaboration. In: In Proceedings, IEEE Tricomm ’91: Communications for Distributed Applications and Systems. (1991)

Suggest Documents