A Heterogeneous Auto-offloading Framework Based on Web Browser

0 downloads 0 Views 299KB Size Report
several plug-in proxies of Firefox by offloading multimedia data and execution logic to surrogate, and merging remote display seamlessly with web browser ...
2009 Fourth International Conference on Internet and Web Applications and Services

A Heterogeneous Auto-Offloading Framework Based on Web Browser for Resource-constrained Devices

Yang Zhang, Xue-tao Guan, Tao Huang, Xu Cheng Microprocessor Research and Development Center School of Electronic Engineering and Computer Science, Peking University Beijing, P.R.China e-mail: {zhangyang, gxt, huangtao, chengxu}@mprc.pku.edu.cn resource-constrained device to surrogate with rich resource [1][2][3][4]. For providing validity or higher performance, heterogeneous offloading becomes more important for exploiting various devices, which could have diverse applications, operating systems, even instruction sets. In this paper, we propose a heterogeneous auto-offloading framework based on web browser, and implement plug-in proxy to offload multimedia processing tasks to heterogeneous surrogate in a universal manner. Firefox web browser is selected to prototype this framework. We perform Flash, PDF, and video plug-in proxies of Firefox by offloading multimedia data and execution logic to surrogate, and merging remote display seamlessly with web browser interface. The experimental results under wired and wireless network connections show that end user experience could be improved, more client resource could be saved, or better performance could be achieved. Web browser could be categorized into desktop browser and mobile browser. In general, desktop browser supports more features and consumes more resource. It could load plug-ins to extend new media types. Mobile browser has minimum functionalities and extension ability. Though the presented framework and plug-in proxy are focus on desktop browser (or its stripped down version), mobile browser could also utilized the idea of utilizing remote display to fetch rendering results from surrogates. Our contributions include: First, we present the heterogeneous auto-offloading framework and describe the functionalities of every components. We implement plug-in proxies according to this framework and utilize remote plugins to handle unrecognized web content. Second, we consider and implement bi-directional interactions between local web browser and remote plug-ins. Third, we integrate service discovery for searching surrogate automatically without user’s distraction. Last, we experiments and analyzes typical plug-ins under three kinds of network environments. This paper is organized as follows. The related work will be presented in Section 2. The system architecture of the heterogeneous auto-offloading framework and plug-in proxy will be presented in Section 3. Then we construct wired and wireless network environments to evaluate the effectiveness of plug-in proxy prototype in Section 4. The results show that the established goals have been achieved. Last we conclude the paper and present future work in Section 5.

Abstract—Web applications are becoming increasingly popular. More and more types of multimedia data have been embedded into web pages for providing abundant information and user interface. However, these complex web pages could not be smoothly presented on devices without adequate functionalities or resource. An alternative approach is shifting tasks from resource-constrained device to surrogate with rich resource. In this paper, we present a heterogeneous autooffloading framework based on web browser, and implement plug-in proxy to offload multimedia processing tasks to heterogeneous surrogate automatically. The plug-in proxy works transparently with existing browser, and does not require modifying, recompiling or relinking. We perform several plug-in proxies of Firefox by offloading multimedia data and execution logic to surrogate, and merging remote display seamlessly with web browser interface. The experimental results show that the proposed framework and plug-in proxies could enrich browser functionalities, reduce resource consumed by client, or improve performance of multimedia tasks. Keywords-heterogeneous auto-offloading framework; web browser; resource-constrained devices; plug-in; proxy

I.

INTRODUCTION

The increasing small devices are weaving our life into the pervasive computing environment. These devices are enabling new forms of computing and communication. Realtime access to web information becomes more important. This is typically done by running a web browser on these small devices to provide access to web applications. During the past several years, most of information could be obtained from the web pages at the level of text and graphics data. Most recently, the computing fields are moving to the multimedia applications. Many types of multimedia data, including Flash, PDF, MPEG, WMV, QuickTime etc, could be embedded in web pages to provide abundant information and user interface. Meanwhile, web browser could load different multimedia plug-ins as extensions to support new media types. However, there are some problems for presenting complex web pages in small devices. First, some plug-ins are not available for many devices because of incompatible platforms. Second, the physical resource requirements of executing plug-ins may exceed the capabilities of the client devices. An alternative approach is offloading tasks from 978-0-7695-3613-2/09 $25.00 © 2009 IEEE DOI 10.1109/ICIW.2009.35

193

II.

in tasks to surrogate, so less affects will be produced even when surrogate is unavailable. Second, universal plug-in omits interactions between web browser and remote plug-ins, while these interactions are increasing quickly in current web pages. In our framework we design and implement the bidirectional interactions between local web browser and remote plug-in. Third, FlashProxy focuses on offloading Flash plug-in. Meanwhile, FlashProxy utilizes proxy-based approach to fetch embedded plug-in URL or content, which is different with ours. Finally, our approach integrates service discovery process, which implies one client could be served by several surrogates if necessary. This is a more flexible model in mobile and wireless environment. There are two kinds of basic approaches for handling multimedia data in resource-constrained devices: proxybased or end-to-end solution [15]. Our framework is the combination of these two approaches. A user-transparent surrogate as proxy is utilized to handle unrecognized contents by client. On the other hand, a plug-in proxy is inserted into web browser to modify the actions of client, so some adaptation mechanisms could be integrated by modifying plug-in proxy and surrogate.

RELATED WORK

Some offloading approaches are transparent for user applications, such as Coign [5] and Gu’s adaptive offloading system based on Java [6], because Coign is based on binary modification and Gu’s work depends on modified JVM. Other offloading systems need consider how to split application and how to merge output from different hosts according to characteristics of the application, such as tacticbased Chroma system [7]. Our heterogeneous autooffloading framework builds on ideas from the use of remote display and the research of improving web browsing by offloading. We introduce these areas in turn. Remote display has been used in many systems to provide location transparency or remote access, such as thin client computing systems Windows Terminal Service, VNC [8], Sun Ray [9], THINC [10]. Many researches are presented to utilize remote display to provide seamless and transparent user interface. Yu reviews the evolution of computing and constructs a mixed computing model [11] by shifting multimedia tasks from server to client without user’s attention. Dimorphic computing [12] switches computing mode between thick client and thin client to adapt to different phase of an application, but provides unified user interface by enhanced VNC. Redar [13] is a distributed virtual personal computing architecture designed to utilize remote resource and integrate display from multi-servers. There are some researches about how to split web browser functionalities to improve web browsing on small device. WebAnywhere [4] is a self-voicing web application that helps blind users to access web information. Speech is retrieved from a remote server, and sounds are played using either Flash or existing embedded sound players. For affording mobile users great trust and security when browsing internet from public terminals, [14] enables web applications to split their client side pages across a pair of browsers: one untrusted browser running on a public PC and one trusted browser running on the user’s personal mobile device. Those researches share similar ideas with our utilizing remote display to improve web browsing. pTHINC [1] explored remote display mechanisms for enabling web browsing on mobile and wireless devices. It uses server side screen scaling to provide high-fidelity display and seamless mobility across different clients and screens sizes. The universal plug-in [2] utilizes remote Internet Explorer to handle multimedia types and merges display update with local Netscape browser interface. FlashProxy [3] helps web browser to access sites that contain Flash programs, if only web browser could support JavaScript. It use binary rewriting of Flash bytecode to interpose on interactions between Flash program and its execution environment, redirecting them through a JavaScript-based RPC layer to user’s browser. There are several notable differences between these similar researches with ours. First, pTHINC offloads all web browser execution logic and data on the server, so user experience will be affected by network connection and server workload greatly. Our approach only puts multimedia plug-

III.

FRAMEWORK DESIGN AND IMPLEMENTATION

In this section, we describe the heterogeneous autooffloading framework based on web browser and implement plug-in proxy to support multimedia offloading. The heterogeneous auto-offloading framework could be illustrated as Fig. 1. Both client and surrogate sides are composed of two layers: application layer and control layer. In every layer there are some interactions between counterparts. Application Layer is response for handling the concrete functionalities which should be offloaded. Web browser in client implements plug-in proxies to simulate offloaded plugins. The plug-in proxy must obey plug-in development specification and web browser cannot distinguish real and plug-in proxies. The plug-in proxy contains an area to show display output from remote plug-in. Meanwhile, it also helps to handle bi-directional interactions between local web browser and remote plug-in. There are container instances in surrogate to invoke remote plug-ins to handle web content as usually. Control Layer implements service discovery, merge local and remote display update seamlessly, and forward user events to surrogate to handle. Service discovery probes one surrogate which could provide corresponding multimedia decoding service. If several surrogates could provide the same service, a surrogate must be selected according to network connection and surrogate workload. Graphics component could receive and draw remote display update in the display area of plug-in proxy. Control component could distinguish different user events and forwards those happened in the area of plug-in proxy to surrogate.

194

process of reconstructing skeleton web page is simple and straightforward, without the help of other web proxy. Then the surrogate utilizes container to load the skeleton and remote plug-in would be invoked automatically, because the skeleton has included all necessary information. Surrogate could create several container instances, and each container could load and operate several remote plug-ins. Remote plug-in, running in container, have ability to decode the corresponding multimedia data. Figure 1. The architecture of heterogeneous auto-offloading framework.

B. Bi-directional Interactions An important problem of implementing plug-in proxy is how to maintain bi-directional interactions between local web browser and remote plug-in. Generally web browser uses script language, such as JavaScript, to control plug-in behaviors. We should implement plug-in proxy as scriptable plug-in, so that these script function calls could be intercepted by plug-in proxy. Then these calls should be encoded and transferred to surrogate container, which decodes function name and parameters. Script function will be appended to the skeleton web page and actual calls will be taken. This implies that local web browser and surrogate container should support the same or compatible script language specification. If remote plug-in needs to invoke script function or manipulate web browser, these invocations or operations should be intercepted in surrogate container and forwarded to client browser. Some necessary binary rewriting for multimedia data is possible, just like FlashProxy.

The whole process of utilizing plug-in proxy is described as follows. When a client sends HTTP request to the web server, the server sends back the content of the requested web page. If the client finds that some multimedia contents are embedded into the web page, the plug-in proxy will be invoked. If these contents could not be recognized by the client, or handling these contents will consume much of client resource, multimedia offloading happens. Otherwise the plug-in proxy will switch control to the actual plug-in. The first step of multimedia offloading is to find a suitable surrogate automatically according to multimedia type and version. Then the URL of unrecognized contents will be intercepted and forwarded to the surrogate by the plug-in proxy on the client. The multimedia data will be fetched by the surrogate directly, or forwarded through the client. Once receiving the multimedia contents, the surrogate invokes corresponding remote plug-in to parse the web content. All display update of the remote plug-in will be transcoded into a format which could be recognized by the client and then sent back to the plug-in proxy. Meanwhile, user events in plug-in area will be captured by the plug-in proxy and sent to surrogate for handling. Four key problems must be considered for implementing plug-in proxies: (1) How to offload multimedia tasks by plug-in proxy? (2) How to handle bi-directional interactions between local web browser and remote plug-ins? (3) How to integrate remote display update seamlessly and forward user events? (4) How to implement service discovery process? We will answer these questions in the following.

C. Graphics and Control Client graphics component draws a blank area, captures events of keyboard and mouse, and waits for display update. It receives different outputs and integrates them with web browser interface seamlessly; even display update come from different surrogates. Any events occurred in the plug-in area will be captured by client and transferred to surrogate to handle. It is possible that surrogate plug-ins output multiple types, which should be integrated synchronously, such as screen display and sound. Different virtual device drivers must be implemented to intercept different types of outputs, and intercepted data should be transformed to the formats which could be identified by client. The amount of pixel data for a screen with high resolution is huge. Surrogate doesn’t send the whole screenshot for reducing transferred data, but only the plug-in display update. The bandwidth from surrogate to client is mainly consumed by display update. Display update should be intercepted at suitable layer for leveraging network bandwidth and client performance. We utilize existing remote display protocols to coalesce, clip, and discard updates automatically if network loss or congestion occurs, or the client cannot keep up with the rate of updates.

A. Plug-in Proxy and Container Client web browser could load several plug-in proxies. A plug-in proxy is just like a common plug-in, which obeys plug-in interface standard for handling specific MIME type, but not performs real decoding and display task. Plug-in proxy should intercept and forward necessary offloading information to help remote plug-in to present identical appearance and behavior with the imagination of the web page author. The information includes media data stream or URL, plug-in position and size, other HTML tags, etc. Media data stream or URL could help remote plug-in to fetch multimedia data. Window position and size could guide plug-in proxy to reserve a blank area with corresponding size in suitable position. Other HTML tags could be used to decorate multimedia plug-in for providing perfect consistency. After a surrogate receives above information from a client, a simple skeleton web page is reconstructed. The

D. Service Discovery Service discovery is a process to help client to find a suitable surrogate for offloading and perform the necessary handshaking. Client decides whether or not to offload some

195

TABLE I.

tasks to surrogates. When an unknown MIME type is captured by a plug-in proxy, the MIME type might be sent to surrogate. Sometimes even a MIME type could be supported by client, offloading request is still sent for resource reservation or performance improvement. If a client wants to offload tasks to a surrogate, it queries nearby surrogates, in which capability matching and performance estimation will be made to judge whether or not to accept the request. Surrogate implements a daemon to receive requests at a known port and sends back quality estimation, according to which the client selects one from several candidate surrogates or decides to handle tasks locally. To calculate the quality estimation, many factors must be considered, including server capability, client capability and network bandwidth, which are monitored by underlying resource monitor periodically. In above description, we imply that the multimedia data handled in surrogate include no privacy information, so we would not worry about the problem of information leak. However, if a user wants to utilize the framework and plugin proxy to view sensitive information, security issues become very important. All communication links should be protected by encrypting, and trustable surrogate and client should be designed and implemented, such as [16]. IV.

Role Web server Surrogate

Notebook client

Network monitor

CONFIGURATION OF EXPERIMENTAL DEVICES Configuration Hardware

AMD Opteron 270 4G Memory 100M Ethernet AMD Opteron 270 4G Memory 100M Ethernet Interl Celeron-M 900M 512M Memory 100M Ethernet Wireless 802.11b/g Intel P4 2.0G 1G Memroy 100M Ethernet

Software

Windows 2003 Server IIS 6.0 Windows 2003 Server Internet Explorer 6.0 Remote plug-in service Xandros Linux Firefox 1.5.0.1 Plug-in proxy Windows 2003 Server Ethereal 0.99.0

Resource-constrained devices could communicate with surrogates by different network connections. Because the framework is based on remote display, the network bandwidth could affect the display performance greatly. We take each experiment on three kinds of network conditions: LAN (100Mbps), 802.11g (54Mbps) and 802.11b (11Mbps). In all scenarios, web browser present identical user interface no matter whether or not to use plug-in proxies. We focus on resource consumption, performance and quality in the following experiments.

EXPERIMENTS

To quantify the effectiveness of the approach, we construct a testbed and design several experimental scenarios. The testbed consists of two clients sharing one surrogate, one web server as benchmark server, and one network monitor to collect network packets. Three machines in the testbed construct two offloading environments: one client connects the surrogate via isolated 100Mbps Ethernet LAN, another client connects the surrogate via 802.11b/g WLAN. Table 1 describes the detailed configurations of these machines. Clients connect with web server directly without network bandwidth simulator. An appropriative network monitor utilizes Ethereal software packet to record timestamps and packet traffics, which are used to capture network packets for later analysis, such as calculating the network bandwidth utilization. Two clients install Xandros Linux and other three servers install Windows 2003 Server. Plug-ins of web browser are embedded or full-page, so we experiment the both cases by accessing a Flash animation embedded in a web page, a full-page PDF document and a video embedded in a web page. The Flash benchmark streams a 98 KB Macromedia Flash animation clip from web server, and the animation is played repeatedly. The animation clip uses vector graphics and contains 315 frames with dimensions of 550x400. The PDF benchmark stimulates the action of viewing a PDF document with 84 pages. After a page loaded, the next page will be loaded at once, and the whole process repeats 6 times. The PDF document is viewed in about 25% original dimension for fitting client screen size. The video benchmark plays a 21 second MPEG-1 encoded video clip with an ideal frame rate of 24fps. Each video frame has dimensions of 320x240 and color depth of 16-bit pixel values.

A. Resource Consumption Fig. 2 demonstrates CPU average utilization of local and remote plug-ins. When Flash animation is played locally, browser consumes about 40% client CPU resource. After adopting remote plug-in, client CPU average utilization is reduced dramatically (15.4% in LAN, 4.6% in 802.11g, 4.5% in 802.11b), meanwhile server workload is acceptable (1.6% in LAN, 7.9% in 802.11g, 8.2% in 802.11b). PDF benchmark behaves just like Flash benchmark. The results mean that Flash and PDF plug-ins are resource intensive tasks in client, but the server could parse them and send back rendering results at little cost. In Fig. 2, we omit the result of video benchmark because of its particularity. When MPEG video is played locally, client CPU utilization is very low because of hardware acceleration. However, when MPEG video is played by remote plug-in, about 20.4% and 28.2% CPU will be consumed on client and server respectively. Almost all types of video will consume identical client CPU resource when using remote plug-in, so our approach is more suitable those video types which could not be decoded or accelerated by hardware. CPU utilization of client is mainly resulted by the amount of display update received and parsed. Under LAN network environment, more display update is transferred to client, so CPU utilization is the highest in these three cases. CPU utilization of server is a little complex. In general, higher bandwidth means that more display update could be transferred in time, so more CPU resource will be spent. Meanwhile, higher bandwidth means that less update could be coalesced, clipped or discarded, which reduces CPU resource consumption.

196

80 70 60 50 40 30 20 10 0

TABLE II.

Client

%

Plug-in Type

Local

802.11g

Local

12.17

11.50

Remote

4.00

6.33

TABLE III.

PDF

LAN

%

802.11b

11.83 8.67

802.11g

802.11b

Plug-in Type

Server

THE AMOUNT OF REMOTE DISPLAY UPDATE Network Environment 100M Ethernet

802.11g

802.11b

Flash

41.9

41.0

37.7

25

PDF

36.5

42.3

32.6

20

Video

75.2

17.7

30

15

8.6 Unit: megabyte (MB)

10

Fig. 3 demonstrates working set size of local and remote plug-ins. From the perspective of client, plug-in proxies consume about 40 MB memories, and the working set size is not affected by multimedia type basically. On the contrary, three kinds of local plug-ins consume 32.3MB, 150.0MB and 37.4MB memories respectively. We could see most of PDF plug-in memory consumption is switched to server, so that 73.4% client memories are reserved. Fig. 4 demonstrates average network bandwidth when using remote plug-ins. The network bandwidth of Flash benchmark is similar under three network connections. The average network bandwidth of Flash benchmark is 3.1Mbps, 3.2Mbps and 2.9Mbps respectively under LAN, 802.11g and 802.11b. The other two benchmarks consume obviously different network bandwidth under different network environment. PDF benchmark consumes 10.2Mbps, 5.7Mbps and 4.4Mbps respectively under LAN, 802.11g and 802.11b. Video benchmark consumes 19.6Mbps, 4.6Mbps and 2.2Mbps respectively under LAN, 802.11g and 802.11b. Resource evaluation proves that some types of plug-ins could consume local CPU and memory resource heavily, so offloading is an effective method to reduce resource utilization. Meanwhile acceptable server resource consumption proves the effectiveness of remote plug-ins. Network bandwidth experiments show that our approach consumes much of network bandwidth for providing multimedia offloading service. In the future, we would take some strategies to reduce the amount of display update, especially for video plug-ins.

5 0 Flash

PDF

LAN

802.11g

802.11b

Figure 2. CPU average utilization of local and remote plug-ins. MB

140 120 100 80 60 40 20 0 Flash

PDF

Local Client

Remote Client

Video

Remote Server

Figure 3. Working set size of local and remote plug-ins.

25000

Network Environment 100M Ethernet

Unit: second (s)

Flash

160

AVERAGE TIME OF VIEWING PDF DOCUMENT

Kbps

20000 15000 10000

B. Performance and Quality Static and dynamic media concentrate on different performance metrics. Generally interaction latency is the key attribute of a static document, similar to slow-motion [17]. If a user event is generated, we hope that response time is little enough for good subjective performance. The quality of a dynamic media could be evaluated according to frame rate and the amount of display update [18]. The three benchmarks could be classified into two categories. PDF

5000 0 Flash LAN

PDF 802.11g

Video 802.11b

Figure 4. Average network bandwidth of remote plug-ins.

197

benchmark stands for static media, while Flash and video benchmarks stand for dynamic media with soft real time limitation. Table 2 demonstrates the time when viewing PDF document. Time is the key attribute for comparing static media performance. After utilizing remote plug-ins, the performance of PDF benchmark is improved greatly. The average viewing document time is 12.17, 11.50 and 11.83 seconds when using local plug-in. However, remote PDF plug-in only spends 4.00s in LAN, 6.33s in 802.11g and 8.67s in 802.11b. PDF document requires that all display update should be sent to client, so the performance of PDF benchmark is decided by network bandwidth. To measure the quality of dynamic media, we monitored the packet traffics delivered to the client at the same playback rate and compared the total data transferred to the reference data size. The dynamic media quality could be quantified by the ratio of data transfer rate at the full frame rate to the transfer rate at the slow-motion playback rate (such as 1 fps) expressed in percent. For instance, 100% quality means that all frames were played at real-time speed. On the other hand, 50% quality could mean that half the video data was dropped, or that the clip took twice as long to play even though all of the video data was displayed. Table 3 demonstrates the amount of display update under different network environments. Flash benchmark transfers 41.9MB, 41.0MB and 37.7MB display update respectively under LAN, 802.11g and 802.11b. Video benchmark transfers 75.2MB, 17.7MB and 8.6MB display update respectively under LAN, 802.11g and 802.11b. Remote display protocol guarantees that the playback time is equivalent by coalescing, clipping, and discarding update. Flash benchmark transfers similar amount of display update in the same transfer time, so similar network bandwidth is consumed and the quality of Flash could be satisfied. In video benchmark, when isolating the individual video frames by reducing the video playback rate, the total data transferred is 102.7MB. Hence the quality of video is calculated as 73.2%, 17.2%, and 8.4% respectively. This is the same as user’s reception: user could accept the quality of video in LAN environment, but could feel various sluggish in wireless environment when watching video. Our framework takes advantages of the speed difference of client and surrogate. Surrogate will spend little time and resource to decode the multimedia content. At the same time, small plug-in display results in little display update, so userperceived performance will be better. V.

The plug-in proxy works transparently with existing Firefox browser, and does not require modifying, recompiling or relinking. Because formats media files are defined according to the specification, any application obeying the specification could parse and present corresponding media types. Many modern web browsers could utilize this framework, such as Firefox, Konqueror, and Internet Explorer. In the future, we will improve the framework from several aspects. First, manifold adaptation mechanisms will be explored to provide better user experience, including switching surrogate and multi-fidelity algorithms [19]. Network condition such as bandwidth and latency is fluctuating in wireless network, so if we want to use the framework widely in wireless and mobile environment, how the framework adapt to network is necessary. Second, surrogate capacity will be considered carefully for supporting more clients. Session sharing will be developed, so that several remote plug-ins could share the same session for saving server resource. Third, some wireless network research [20] and thin client compression algorithms [21] will be borrowed for better network performance. ACKNOWLEDGMENT We would like to thank the anonymous referees for their considerate comments. REFERENCES [1]

[2]

[3]

[4]

[5]

CONCLUSION AND FUTURE WORK

[6]

For shifting multimedia tasks to heterogeneous surrogate automatically and transparently, we present a heterogeneous auto-offloading framework based on web browser. We describe the framework and introduce the considerations and difficulties of implementing every component. A real experimental testbed is deployed to evaluate the effectiveness of the framework. The results show that our solution could enrich browser functionalities, reduce resource consumed by client, or improve performance of multimedia tasks.

[7]

[8]

[9]

198

J. Kim, R. A. Baratto, and J. Nieh, “pTHINC: A Thin-Client Architecture for Mobile Wireless Web”, Proceedings of the 15th International Conference on World Wide Web (WWW), pp. 143-152, 2006. C. Kuo, P. Ting, M. Chen, and J. Chen, “Design and Implementation of a Network Application Architecture for Thin Clients”, Proceedings of the 26th Annual International Computer Software and Applications Conference, pp. 193-198, 2002. A. Moshchuk, S. D. Gribble, and H. M. Levy, “Flash-Proxy: Transparently Enabling Rich Web Content via Remote Execution”, Proceedings of the 6th International Conference on Mobile Systems, Applications, and Services (MobiSys), pp. 81-93, 2008. J. P. Bigham, C. M. Prince, and R. E. Ladner, “Addressing Performance and Security in a Screen Reading Web Application that Enables Accessibility Anywhere”, Proceedings of the 8th International Conference on Web Engineering (ICWE), pp. 273-284, Jul 2008. G. C. Hunt and M. L. Scott, “The Coign Automatic Distributed Partitioning System”, Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (OSDI), pp. 187-200, 1999. X. Gu, K. Nahrstedt, A. Messer, I. Greenberg, and D. Milojicic, “Adaptive Offloading for Pervasive Computing”, IEEE Pervasive Computing, 3(3): pp. 66-73, 2004. R. K. Balan, M. Satyanarayananf, S. Park, and T. Okoshi, “TacticsBased Remote Execution for Mobile Computing”, Proceedings of the 1st International Conference on Mobile Systems, Applications, and Services (MobiSys), pp. 273-286, 2003. T. Richardson, Q. Stafford-Fraser, K. R. Wood, and H. Andy, “Virtual Network Computing”, IEEE Internet Computing, 2(1): pp. 33-38, 1998. B. K. Schmidt, M. S. Lam, and J. D. Northcutt, “The Interactive Performance of SLIM: A Stateless, Thin-Client Architecture”,

[10]

[11]

[12]

[13]

[14]

[15]

Proceedings of the 17th ACM Symposium on Operating Systems Principles (SOSP), pp. 32-47, 1999. R. A. Baratto, L. N. Kim, and J. Nieh, “THINC: A Virtual Display Architecture for Thin-Client Computing”, Proceedings of the 20th ACM Symposium on Operating Systems Principles (SOSP), pp. 277290, 2005. H. L. Yu, W. M. Zhen, and M. M. Shen, “Extending the Power of Server Based Computing”, Proceedings of 2004 International Conference on Computational Science (ICCS), pp. 242-249, 2004. M. Satyanarayanan, B. Gilbert, M. Toups, N. Tolia, D. R. O'Hallaron, S. Ajay et al., “Pervasive Personal Computing in an Internet Suspend/Resume System”, IEEE Internet Computing, 11(2): pp. 1625, Mar 2007. Y. Zhang, Z. Song, D. Zhu, Z. Chen, and Y. Sun, “Redar: A Remote Desktop Architecture for the Distributed Virtual Personal Computing”, Proceedings of the 5th International Conference on Grid and Cooperative Computing (GCC), pp. 1-8, 2006. R. Sharp, A. Madhavapeddy, R. Want, and T. Pering, “Enhancing Web Browsing Security on Public Terminals Using Mobile Composition”, Proceedings of the 6th International Conference on Mobile Systems, Applications, and Services (MobiSys), pp. 94-105, 2008. C. E. Perkins, “Handling Multimedia Data for Mobile Computers”, Proceedings of the 20th International Computer Software and Applications Conference (COMPSAC), pp. 147-148, 1996.

[16] D. L. Cook, R. Baratto, and A. D. Keromytis, “Remotely Keyed Cryptographics Secure Remote Display Access Using (Mostly) Untrusted Hardware”, Proceedings of the 7th International Conference on Information and Communictions Security (ICICS), pp. 363-375, 2005. [17] J. Nieh, S. J. Yang, and N. Novik, “Measuring Thin-Client Performance Using Slow-Motion Benchmarking”, ACM Transactions on Computer Systems (TOCS), 21(1): pp. 87-115, 2003. [18] J. Nieh and S. J. Yang, “Measuring the Multimedia Performance of Server-Based Computing”, Proceedings of the 10th International Workshop on Network and Operating System Support for Digital Audio and Video (NOSSDAV), pp. 55-64, 2000. [19] M. Satyanarayanan and D. Narayanan, “Multi-fidelity Algorithms for Interactive Mobile Applications”, Wireless Networks, 7(6): pp. 601607, Nov 2001. [20] G. A. Ramanujan, A. Thawani, V. Sridhar, and K. Gopinath, “Optimizing Multimedia Experience in a Thin Client Environment for a Resource Constrained Processor”, Proceedings of the 2007 International Conference on Wireless Communications and Mobile Computing, pp. 659-664, 2007. [21] C. Yang, Y. Niu, Y. Xia, and X. Cheng, “A Fast and Efficient Codec for Multimedia Applications in Wireless Thin-Client Computing”, IEEE International Symposium on a World of Wireless, Mobile and Multimedia Networks (WoWMoM), 2007.

199

Suggest Documents