2012 International Conference on Software and Computer Applications (ICSCA 2012) IPCSIT vol. 41 (2012) © (2012) IACSIT Press, Singapore Sharing of Generic Single-user Application without Interference in a Cluster Chen Guo, Cenzhe Zhu and Teng Tiow Tay Electrical and Computer Engineering Department, National University of Singapore Abstract. With increasing performance of general purpose computer and high speed communication, cluster computing is becoming a promising research area. The trend in current computer technology also points towards decreasing hardware and connection cost whereas software cost remains high and is now a larger fraction of the overall computing budget. Application sharing is becoming a promising solution to effectively reduce the overall cost of today’s computing. In this paper, we propose a novel application sharing architecture for generic application sharing in a standard local area network. A middleware on top of the operating system implements multiple-user management and resource management and provides a single client view for the server. We provide a technique to extend single user software license for multiple user usage and resolve the problem of working on proprietary operating systems. An App Share tool has been implemented based on Microsoft Windows operating system. Performance has been evaluated on CPU loading with multiple concurrent sessions. Our cluster application sharing system supports generic applications, demonstrates good scalability and features true application sharing. Keywords: application sharing, cluster computing, peer-to-peer, remote access, Windows operating system 1. Introduction Cluster computing is emerging as a result of availability of powerful computers and high-performance networks. It is becoming a promising research area in computer science and technology [1]. Cluster creates a single system image of resources on different personal computers in a local area network, and offers high system availability and reliability through the redundancy of resources. Surveys show that the utilization of CPU cycles of desktop workstations is generally less than 10% [2], and thus a computer is in general able to provide services and resources for other users without adversely affecting its owner [8]. Moreover, the current computer technology trend is that hardware and connection cost decrease whereas the cost of the software remains high and is becoming a larger fraction of the overall computing budget [2]. The diverging cost for software and hardware and the low usage of network and computer resources are the motivations of software/application sharing. Furthermore, as software tends to be priced on the basis of the number of copies installed, and thus if the software is rarely used, the organization can decide to purchase only a single copy, have it installed on a given computer and then allows anyone who wants to use that application to access it from where they are, instead of having to use the application only from the computer in which the application is installed. The main goal of our research is to design and implement a generic application sharing architecture as a standard communication interface for application sharing in a clustering system. We provide a technique to extend a single user software resource for multiple user usage. And our research aims to provide true application sharing with good usability and scalability. A middleware on top of operating system is in charge of the multiple-user management and resource management. It connects to the application server via only one connection channel and behaves as an agent to coordinate multiple users’ assessments. A peer-to-peer application sharing tool called App Share is implemented based on Microsoft Windows operating system. 101 Performancce evaluationn has been im mplemented and analyseed on CPU loading l whenn a host shaares multiplee concurrent sessions. s This paaper is organnized as folllows. In Seection 2, wee describe thhe system deesign of an applicationss sharing cluster. In Secttion 3, we present p the methodology m y and implem mentation off the App Sh hare tool onn Windows operating o sysstem to support concurreent applicatio on sharing seessions. In S Section 4, wee discuss thee performance of App Shaare tool. In thhe last Sectioon, we provide concludinng remarks. 2. System m Overviiew 2.1. Appp Share Cluustering System Fig. 1 Cluster sysstem As show wn in Fig.1, each node with w App Shaare in the clu uster is calleed a peer. It ccan act as an n applicationn provider or//and as an appplication coonsumer. Alll these comp puters are connnected via a high speed d Local Areaa Network. Computers C wiith App Sharre installed foorm a clusterr within the LAN L to facillitate all the handshaking h g, message excchanging andd remote connnections thaat are exclusiive for App Share S users. 2.2. Appp Share Toool Fig. 2 "Aggent" in betweeen clients and d server operatting system As illusstrated in Figg. 2, our Appp Share tool is i on top of application a s server OS annd as an “ageent” betweenn the client and a server. Only one master m sessioon logs in to t the appliccation server and accesses the hostt Windows OS O via termiinal service. All the taskks are carriees out by thhe “agent” fo for multiple clients from m remote and local compuuters. It handdles tasks froom multiple clients and passes p them to the serverr. Therefore,, the server sees s only onee remote dessktop sessionn and does work w for the “agent” onlyy. And the “agent” takess over the reesponsibility of negotiattion with rem mote clientss, forwards the input evvents to serrver OS andd redirects thee display datta back to thee respective clients. Therrefore, it cann share singlee-user application amongg multiple clieents withoutt violating anny licensing terms. t Fig.3 shows the syystem archittecture desiggn model of App Sharre tool. Sharring Permission Settingg component allows the user u to configgure which applications a to t be offeredd for sharing via the Appllication Pooll 102 Managemennt. Query Seending is cappable of creaating a query y for applicaation. Requesst Listening has an openn port listeninng to the requuests broadcasted in the cluster. c Requ uest Listeninng periodicallly processes the requestss in the list by b verifying whether all the relevantt conditions are met. When W all condditions are met, m the Appp Share Cliennt will launchh a remote session. s In thhe initializatiion phase, App A Share cliient establish hes a remotee connection session withh session maanager in Appp Share Serv ver. User sesssion is an abbstract venuee on an Appp u Once thhe user session moves to an establisshed state, user u interactss Share Serveer that is asssigned to a user. with the serrver and appllications from m within thiss venue. Figg. 3 System arrchitecture mo odel of App Shhare In the communicatio c on phase, keeyboard and mouse m input events are sent s from thee App Share Client to thee remote enddpoint on the App Sharre Server whhile graphic update data are receivved from an n establishedd graphics chhannel and iss sent to the display adappter of the App A Share Client. [7] In App Share Server, S Dataa stream conntroller is inn charge of multiplexinng and de-m multiplexing the clients' and serverr's traffic. Itt maintains thhe smooth exxecution of multiple m remoote user sessions of App Share system m. 3. Impleementatioon of a Deemonstratting Systeem App Shhare tool is the t applicatioon to realizee the proposed peer-to-ppeer applicatiion sharing system. It iss implementeed on Windoows XP 32-bbit operating system [5] in i a LAN ennvironment. W We have im mplemented a clustering syystem using multicast appproach. After a new user session is creaated, a new client is added to data streeam controlller for startin ng additionall application.. There are thhree major prrogramming modules insside data streeam controlleer, namely th he scheduler,, MUX and DEMUX. D Annd there are two importaant control signals: Allocated Client IID and Focu used Win ID.. Each client has at most one focusedd window. Data D stream controller c keeeps track off the focused d window ID D for each cllient. Accordding to the allocated cliient informaation determ mined by thee scheduler, data stream m controller seends over thee focus winddow informattion to Serveer then follow wed by the cllient's input events. e Fig. 4 Data D stream co ontroller 103 As shown in Fig. 4 above, data stream controller is in charge of multiplexing and de-multiplexing the clients' and server's traffic. It maintains smooth executions of multiple remote user sessions of App Share system. Allocated client is the control signal for the steam multiplexer and de-multiplexer. At a time only one client is enabled to transmit its input events and to receive the graphic updates from server. The allocated client is determined by a scheduler. Clients' input events in the global channel including mainly the keyboard and mouse inputs are buffered in an event queue of each client respectively. Currently our implementation of the scheduler uses a round-robin scheduling algorithm which assigns time slices to each client in equal portions and in circular order and handles all clients' events without priority. Each client may have one or more applications running from the same sever, but at a time there is only one window focused by the client. A focused window is the window the client is operating on currently. Focused window information is extracted from the network packet flow of the virtual channel in RDP [3]. The channel ID is determined by the negotiation between client and server during the RDP connection sequence. Focused window information is carried in the virtualChannelData field with the format "focus, win ID, flags". [4] The channel data is directed by the terminal service in Windows OS to the Server endpoint for further process. If it comes to a client's turn by the scheduler, its "focus, Win ID" will be send to Server via virtual channel by App Share Server. And subsequently, the input events of the client will be forwarded to operating system by App Share Server. 4. Results and Discussion The single user licensing problem [6] of application sharing is solved in our current approach App Share by establishing only one RDP connection accessed by a master login of App Share Server. The App Share Server sits in between the App Share client and Server OS as a broker. So, when a client want to launch a remote application from the Server, the application will be open under the same user account which is the one established by App Share Server. Therefore, with our application sharing tool, as long as there is one user license for the software, it can be shared among multiple clients without violating any licensing terms. The user interface of App Share and the screen shot of configuration of share/un-share an application are shown in Fig. 5 below. Fig. 5 Screen shots of the demonstrated App Share Our test bed is set up in a LAN consisting of ten computers with App Share system and identical system environment configurations. All PCs are Pentium 4 3.0GHz machines with 512MB physical memory running Windows XP professional SP3. The performance evaluation is mainly focused on describing the impact of increasing the number of remote application sessions on the memory consumption of a host computer running App Share. In the experiment we test on a single host machine running multiple remote application sessions of WordPad.exe. This analysis helps us to evaluate the memory performance of the computer and determine the maximum concurrent session to be accepted on the machine. This testing is conducted using a host computer with App Share tool deployed. The performance data is obtained through the performance analysis tool implemented in Windows Task Manager. We have use a control session as a reference whereby the data is 104 captured whhen no remotte session is taking placee. The data iss being recorrded every tiime an additiional remotee session is laaunched from m a client com mputer and the t result is shown s below w. The loaad analysis off App Share tool (Fig. 6)) shows that additional reemote desktoop connection n results in a linear increase of the coommit chargge on host coomputer. Thee increment of o commit charge is very y small withh increasing number n of concurrent c reemote sessioons. In addittion, the avaailable physiical memory y of the hostt computer iss almost nott affected byy the multiple remote seessions. Thiss is because there is only one RDP P connection established and maintainned by App Share Serveer. Then eacch additionall application launched att host compuuter is invokeed by Server in the same way as using g cmd.exe att host compuuter. As a result, startingg a new application sesssion, the opperating systtem only alllocates the necessary m memory reso ource to thee application process runnning within the t same user. The operating system does d not neeed to reserve the memoryy for multiplee RDP sessioons which connsumes mucch more mem mory than witthin one RDP P connection n session. Load perrformance e analysis Memory (KB) 400000 300000 200000 Availaable physical memo ory Total kernel memory 100000 Paged d kernel memo ory Total commit chargge 0 0 2 4 6 8 No. of Re emote Sessions on Host Co omputer 10 F 6 Memoryy performancee analysis on App Fig. A Share too ol with multiplle concurrent rremote sessions 5. Concllusion We havve designed and implem mented a noovel generic application sharing arcchitecture ass a standardd communicaation interfacce for applicaation sharingg in a clusterring system. We providee a techniquee to extend a single user licensed sooftware resouurce for muultiple user usage u withouut modifyingg the operatting system.. w inteerfering with h each otherr Furthermoree, applicatioons are acceessed remoteely by multiiple clients without including thhe owner application. a O cluster application sharing sysstem supporrts generic applications, Our a , demonstratees good scalaability and feeatures true application a sh haring. 6. Referrences [1] Buyya, R. (2000). A Proposal for Creating C a Coomputing Reseearch Repositoory (CoRR, htttp://www.arX Xiv.org/) on Cluster Computing. Monash M Univeersity, Melbouurne, Australia. N d Cluster Com mputing. Retrieved on 10 Feeb 2012, from m University off Southern [2] Hwang,, K. (2000). Network-Based Californnia: http://ww ww-classes.uscc.edu/engr/ee-s/657h/clusterrbasic.pdf [3] Window ws Terminal Service. S Retrieeved on 10 Feeb, 2012, from m www.m microsoft.com//windowsservver2003/technoologies/termin nalservices/deefault.mspx [4] SeamlessRDP. Retrieeved on 10 Feeb, 2012, from m Cendio Thin nLinc: http://w www.cendio.coom/seamlessrd dp/ S 2003 Terminal T Serviices, Microsofft Corporationn. Retrieved on 10 Feb, [5] Techniccal Overview of Windows Server 2012, frrom http://ww ww.microsoft.ccom/windowssserver2003/teechinfo/overviiew/termserv.mspx [6] Licensee Terms. Retriieved on 10 Feeb, 2012, from m Microsoft: www.m microsoft.com//About/Legal//EN/US/IntelllectualProperty y/UseTerms/D Default.aspx [7] MSDN. MS-RDPBC CGR. Retrieved on 10 Feb, 2012, 2 from Reemote Desktop Protocol: Basic Connectivity and Graphiccs Remoting Specification: S http://msdn.m microsoft.com m/en-us/libraryy/cc240445(v= =prot.10).aspx x [8] Omer, B., B & Henningg, S. (2008). BASS B Applicaation Sharing System. 10th IEEE Internattional Symposium on Multim media. 105