Migrating to netcool precision for ip networks --best practices for migrating...
Report-V1.5_with_comments
1. Computer and Systems Engineering
Department
Faculty of Engineering
Alexandria University
Graduation Project submitted in partial
fulfillment of the B. Sc. Degree
July 2011
GenieApp
Authors:
Ahmed Elmorsy
Ayman Adel
Mohamed Abd
El-Salam
Mohamed Magdy
Mohamed Brary
Mohamed Yasser
Moustafa Samir
Supervisors:
Prof. Dr. Mohamed S. Abougabal
Dr. Mustafa Y. ElNainay
2. Acknowledgement
First, we would like to thank Allah for helping us to complete this project
successfully.
We are heartily thankful to Prof. Dr. Mohamed S. Abougabal, and
Dr. Mustafa Y. ElNainay who not only served as our supervisors, but also
guided, encouraged and challenged us throughout the project, and guided
us with great dedication, never accepting less than our best efforts, and
allowing for the completion and success of this project.
We also owe our deepest gratitude to our families for their great support,
which without, our work would not have been as successful.
I
3. Abstract
Fast progress of computer technologies and software needs for resources to
accomplish more complicated tasks lead the need for users to maintain al-
ways their software and acquire new hardware. The process of upgrading
software and acquiring new hardware is time consuming for users. Also
buying a license for a program which is not used much is costly. In this
project, we introduce cloud computing and its solutions for these problems
by centralizing resources and software to be easily maintained and upgraded.
Also pay-as-you-go payment model is introduced to help users to just pay
for their time and resources consumption. This approach is applied in Ge-
nieApp which supports centralized software and resources that make the
user away of maintenance burdens.
II
11. List of Acronyms
AIP Adaptive Internet Protocol
API Application Programming Interface
AWS Amazon Web Services
CaaS Communication-as-a-Service
CDN Content Delivery Network
CPU Central Processing Unit
CTP Community Technology Preview
DBMS Database Management System
DoK Desktop on Keychain
EC2 Elastic Compute Cloud
GAE Google App Engine
GPU Graphics Processing Unit
HTML Hyper-Text Markup Language
IaaS Infrastructure-as-a-Service
IDE Integrated Development Environment
IM Instant Messaging
IP Internet Protocol
IT Information Technology
KVM Kernel-based Virtual Machine
LAN Local Area Network
MaaS Monitoring-as-a-Service
mbps Mega Bits Per Second
OS Operating System
PaaS Platform-as-a-Service
RDP Remote Desktop Protocol
S3 Simple Storage Service
SaaS Software-as-a-Service
SAN Storage Area Network
SGD Secure Global Desktop
SME Small and Medium Enterprises
SOAP Simple Object Access Protocol
SPI Software Process Improvement
SRSS Sun Ray Server Software
X
12. List of Acronyms
VDI Virtual Desktop Infrastructure
VM Virtual Machine
VNC Virtual Network Computing
VoIP Voice over IP
VPN Virtual Private Network
WAN Wide Area Network
WMI Windows Management Instrumentation
XI
13. Chapter 1
Introduction
1.1 General
Cloud Computing is a hot topic in computer industry. Its importance stems
from the need to manage distributed computer resources and make best uti-
lization of them. It became a main component in each application to support
data access and functionality from anywhere and anytime with elastic re-
sources according to needs.
Computer applications and operating systems are the main interfaces to
end-user. They are getting faster, fancier beside their ability to perform
very complex tasks. This progress in software requires new and updated
hardware. Acquiring and deploying new hardware are one of the most costly
and time consuming tasks.
Users need to work simultaneously on many applications running on
different platforms and users need access to their data regardless of the
device and platform they are working on. Also user may need an application
for less than a day or a week, however they need to buy full license of it, so
user need to rent an application and pay only for his usage. Also as mobile
devices are widely spread, user may need to work through his mobile. But
due to limited resources, mobile devices can not satisfy user’s demands.
Current solutions do not provide users with these features.
1.2 Motivation
Cloud computing and virtualization techniques are considered a revolution-
ary trend in computer science. Leading companies started to invest in
cloud researches, while majority of software companies consider depending
on cloud infrastructure. This made developing and carrying out in-depth
performance analysis for cloud applications a challenging and urging need
1
14. 1.3. SCOPE OF WORK
for software industry and research. Acquiring such skills and hands-on ex-
perience is a main motivation for the project. Deploying a private cloud
and building an application on top of it, that provides large users base with
features made applicable only with cloud technologies, is another motivation
for this project.
Providing a solution for both; normal users and enterprises, is a chal-
lenging motivation. As most of the time, the normal users’ needs are ignored
due to lack of interactions between software engineer’s world, and the non-
technical user’s world. Making an application that exploits cloud technolo-
gies to offer a company with private cloud infrastructure, and in the same
time, allowing small companies and individuals to rent virtual computers
and applications that they cannot afford to buy, is the biggest motivation.
1.3 Scope of Work
Cloud computing applications offer users access to scalable, reliable, auto-
maintained resources and applications, with a pay-as-you-go payment model.
GenieApp is a cloud application that provides a solution to the problems
mentioned in the previous two sections. GenieApp is built to run on private
and public clouds, to serve both enterprises and individuals. As a proof
of concept, GenieApp allows users to request Windows and Linux operat-
ing systems, this requires running, handling and maintaining Windows and
Linux virtual machines on the cloud and providing a secure way to stream
the operating systems back to the user through a web application using a
remote access protocol.
In order to deploy a private cloud, Euclyptus [1] an Infrastructure-as-a-
service (IaaS) tool with Kernel-based Virtual Machine (KVM) [2] hypervisor
to handle virtual machines, are used. Also Remote Desktop Protocol (RDP)
[3] and Virtual Network Computing (VNC) [4] protocols are required for
streaming the operating systems and applications. A web application is
built as the top layer to handle user’s session and to provide him with web
access to GenieApp services. Spring framework [5] and Hibernate [6] (object
relational mapping library) are used to build the Java web application.
The Software Process Improvement (SPI) model for Small and Medium
Enterprises (SME) was followed throughout the work. The work presented
will conform to the software development, peer reviewing and change man-
agement processes of this model.
2
15. 1.4. ORGANIZATION OF THE REPORT
1.4 Organization of the Report
The report is organized into 7 chapters. In chapter 2, a background about
Cloud Computing and technologies used with it will be discussed; related
work which tried to solve the problem will be presented in section 1.2 will
also be presented. In chapter 3, the proposed solution and its main features
and comparing it with the related work will be introduced. In chapter 4,
the Architecture of GenieApp and the design principles will be illustrated.
In chapter 5, a survey for the development tools that can be used in the
implementation, and development process followed will be presented. In
chapter 6, implementation details of GenieApp will be discussed. In chapter
7 our work and future work will be presented.
3
16. Chapter 2
Cloud Computing and
Related Work
2.1 Introduction
In chapter 1, a general description of the problem was presented, the
motivation to develop GenieApp, and the scope of work were introduced.
In this chapter, a background about cloud computing is introduced in
section 2.2. In section 2.3, history of cloud computing is presented. Cloud
services are discussed in section 2.4. In section 2.5, Cloud types are pre-
sented. In section 2.6 and section 2.7, a background about the enabling
technologies for Cloud Computing is introduced. In section 2.8, related
work to GenieApp is presented with features of each. Then, the need to
extend related work is explained in section 2.9.
2.2 What is Cloud Computing?
Cloud computing is the next stage of the Internet. Cloud computing
is an access to resources remotely via Internet or network. Users of cloud
request amount of resource from a set of web services that manage a pool
of computing resource. When user obtained the resources, it cannot be
obtained by other user till who release it. It is called the cloud because the
user does not feel with relocation or migration of resources such as the user
cannot know the location of physical resources . A cloud is a set of machines
and web service that implement cloud computing [7].
Cloud services enable the companies to share the same resources so they
get the benefits of cloud computing. The cloud can eliminate many of the
complex constraints from the traditional computing environment, including
4
17. 2.2. WHAT IS CLOUD COMPUTING?
space, time, power, and cost. Overall, the cloud embodies the following four
basic characteristics [8]:
1. elasticity and the ability to scale up and down;
2. self-service provisioning and automatic deprovisioning;
3. Application Programming Interfaces (APIs);
4. billing and metering of service usage in a pay-as-you-go model.
2.2.1 Elasticity and scalability
The customer may use the service at any time. One customer might
use the service three times a year whereas another customer might use it as
a primary development platform for all of its applications. Therefore, the
service needs to be available all the time and it designed to scale for upward
for high periods of demand and downward for lighter ones.
Scalability also means that an application can scale when additional
users are added and when the application requirements change. This ability
to scale is achieved by providing elasticity.
2.2.2 Self-service provisioning
Customers can use the cloud and get the service easily by demand
amount of computing, storage, software, process or other resources from the
service provider. The department sends a request to the datacenter with
the required hardware, software or other resources, in datacenter the avail-
ability of existing resources will be evaluated versus the need to purchase
new hardware. After new hardware is purchased, the datacenter staff has
to configure the datacenter for new application. This internal procurement
process will take a long time depending on company policies.
2.2.3 Application programming interfaces (APIs)
Cloud services need to have standardized APIs. These interfaces provide
the instructions on how two applications or data sources can communicate
with each other. A standardized interface lets the customer more easily link
a cloud service, such as a customer relationship management system with a
financial accounts management system, without having to resort to custom
programming.
2.2.4 Billing and metering of services
A cloud environment needs a built-in service that bills customers. And,
of course, to calculate that bill, usage has to be metered (tracked). Even free
5
18. 2.3. HISTORY OF CLOUD COMPUTING
cloud services (such as Google’s Gmail or Zoho’s Internet-based office appli-
cations) are metered. In addition to these characteristics, cloud computing
must have two overarching requirements to be effective:
1. comprehensive approach to service management;
2. well-defined process for security management.
2.2.5 Performance monitoring and measuring
A cloud service provider must include a service management environ-
ment. A service management environment is an integrated approach for
managing physical environments and Information Technology (IT) systems.
This environment must be able to maintain the required service level for
that organization. In other words, service management has to monitor and
optimise the service or sets of services. Service management has to consider
key issues, such as performance of the overall system, including security and
performance. For example, an organization using an internal or external
email cloud service would require 99.999 percent up time with maximum
security. The organization would expect the cloud provider to prove that it
has met its obligations. Many cloud service providers give customers a dash-
board a visualization of key service metrics so they can monitor the level of
service they are getting from their provider. Also, many customers use their
own monitoring tools to determine whether their service level requirements
are being met.
2.2.6 Security
Many customers must take a leap of faith to trust that the cloud service
is safe. Turning over critical data or application infrastructure to a cloud-
based service provider requires making sure that the information cannot
be accidentally accessed by another company (or maliciously accessed by a
hacker). Many companies have compliance requirements for securing both
internal and external information. Without the right level of security, you
might not be able to use provider’s offerings.
2.3 History of Cloud Computing
The world now became instrumented, interconnected and intelligent.
The world also is getting smarter as everything else. World needs smart
infrastructure. Cloud computing is a prototype for this smart infrastructure
and also a business model; it converts computing to services. It is the start
of a new science called Service science which means that buying services will
replace buying a computer or a software license. Cloud Computing is a new
term for a long-held dream of computing as a utility, which has recently
6
19. 2.3. HISTORY OF CLOUD COMPUTING
emerged as a commercial reality. Cloud Computing is likely to have the
same impact on software that foundries have had on the hardware industry
[9].
2.3.1 Cloud Computing and the Web
Cloud Computing depends on the Web as it will be used to support
services through. First, Web was known as the Internet. People used to
interact with the Internet to browse news and articles. Web was evolved
to support e-business later and users interacted with the web to purchase
and order products. Later and because of the increase of people’s needs to
computation power, Grid Computing [10] appeared as the next update of
the Web. It helped the users to use the huge computing power of rented
servers to satisfy their needs. Cloud Computing appeared to benefit from
virtualization technologies in addition to grid computing to make the best
use of resources. Computers evolved from Centralized Computers in 1960s to
Client/Server model in 1980s till finally the cloud model where computers
are centralized and virtualized to make better utilization. Cloud brings
massive scalability to Client-Server Model. In the upcoming future there
will be 1 trillion devices that will be connected to the Internet and have
their own IPs, so IPs will not be counted for just humans [11].
2.3.2 Evolution of Cloud Computing
Salesforce.com (1999)
One of the first movers in cloud computing was Salesforce.com, which
in 1999 introduced the concept of delivering enterprise applications via a
simple web site.
Amazon (2002)
Amazon launched Amazon Web Service in July 2002. Amazon played
a key role in the development of cloud computing by modernizing their
datacenters, which, like most computer networks, were using as little as 10
percent of their capacity at any one time. Having found that the new cloud
architecture resulted in significant internal efficiency improvements whereby
small, fast-moving could add new features faster and more easily, Amazon
launched Amazon Elastic Compute Cloud (EC2) [12] on a utility computing
basis in 2006. They supported the first compute and storage services as
follows:
1. Simple Storage Service (S3) [13];
2. Elastic Compute Cloud (EC2) [12].
7
20. 2.3. HISTORY OF CLOUD COMPUTING
Amazon web services enable users to create virtual machine instances
containing wide-range of software. In 2007, Amazon’s users reached 240,000
users with 5 billion stored objects, and in the first quarter of 2009 number
of users reached 540,000 users with 50 billion stored objects. In 2008, Ama-
zon Elastic Computing Cloud provided SLA with 99.95 percent availability.
Later, Amazon also introduced other services:
1. Cloud Front: a Content Delivery Network (CDN) [14];
2. Simple DB: a distributed database [15].
Amazon EC2 was used by different enterprises to benefit from computa-
tion and pay-as-you-go business model. Autodesk used it for backend data
processing tasks. Capgemini [16] used it to help enterprise customers in-
tegrate cloud computing into their IT and business strategies [17]. Vertica
Systems [18] used it to support Database Management System (DBMS) [19].
Google (2007-2008)
In 2007, an industry-wide collaboration between Google, IBM and a
number of universities across the United States happened to evolve on the
cloud. In April 2008, Google introduced Google App Engine (GAE) which is
a platform for developing and hosting web applications in Google-managed
datacenters. It virtualizes applications across multiple servers. App Engine
differs from services like Amazon Web Services (AWS), though, in that AWS
is Infrastructure as a Service while App Engine is Platform as a Service.
Eucalyptus (2008)
In 2008, Eucalyptus was introduced as the first open source AWS API
compatible platform for deploying private clouds, followed by OpenNebula,
the first open source software for deploying private and hybrid clouds.
Others
1. In October 2008, Microsoft announced the Windows Azure Platform
and first Community Technology Preview (CTP) of Windows Azure.
In March 2009, Microsoft announced SQL Azure Relational Database;
2. IBM made Rational AppScan available on Demand for software test-
ing;
3. Facebook supports APIs that give access to users data to be mined.
8
21. 2.4. SERVICES DELIVERED FROM THE CLOUD
2.4 Services Delivered from the Cloud
Services can be delivered from the cloud in many different ways. The
following sections will discuss these different ways [20].
2.4.1 Communication-as-a-Service (CaaS)
CaaS provides management of hardware and software required for de-
livering Voice over IP (VoIP) services, Instant Messaging (IM), and video
conferencing capabilities to their customers.
CaaS providers offer flexibility and scalability and are usually prepared
to handle peak loads for their customers by providing services, also CaaS
requires little management from customers, as it eliminates the cost which
customers spend in maintenance and operations overhead of infrastructure.
2.4.2 Infrastructure-as-a-Service (IaaS)
Wikipedia defines IaaS as the delivery of computer infrastructure (typi-
cally a platform virtualization environment) as a service. IaaS includes the
management of the transition, infrastructure and hosting of cloud applica-
tions, so that rather than purchasing datacenter space, servers, software,
network equipment, etc., IaaS customers essentially rent resources as a fully
outsourced service. Usually, the service is billed on a monthly basis, just
like a utility company bills customers which introduced a new concept called
Utility Computing. The customer is charged only for resources consumed.
IaaS implementations typically include the following layered compo-
nents:
1. computer hardware (typically set up as a grid for massive horizontal
scalability);
2. computer network (including routers, firewalls, load balancing, etc.);
3. Internet connectivity;
4. platform virtualization environment for running client-specified virtual
machines;
5. service-level agreements;
6. utility computing billing.
9
22. 2.4. SERVICES DELIVERED FROM THE CLOUD
2.4.3 Monitoring-as-a-Service (MaaS)
Many industry regulations require organizations to monitor their secu-
rity environment, server logs, and other information assets to ensure the
integrity of these systems. However, performing effective security moni-
toring imposes some performance and time constraints because it requires
advanced technology, skilled security experts, and scalable processes.
Monitoring-as-a-Service (MaaS) is the outsourced provisioning of secu-
rity. MaaS security monitoring services offer real-time, 24/7 monitoring.
MaaS security monitoring involves protecting an enterprise or govern-
ment client from cyber threats and plays a crucial role in securing and
maintaining the confidentiality, integrity, and availability of IT assets.
2.4.4 Platform-as-a-Service (PaaS)
PaaS providers often include services for concurrency management, scal-
ability, fail-over and security. Another characteristic is the integration with
web services and databases. Support for Simple Object Access Protocol
(SOAP) and other interfaces allows PaaS offerings to create combinations
of web services as well as having the ability to access databases and reuse
services maintained inside private networks. The ability to form and share
code with ad-hoc, predefined, or distributed teams greatly enhances the
productivity of PaaS offerings.
Main characteristics of PaaS include services to develop, test, deploy,
host, and manage applications to support the application development life
cycle and to provide web-based user interface creation tools to simplify the
creation of user interfaces. PaaS providers often include services for concur-
rency management, scalability, fail-over and security. Another characteristic
is the integration with web services and databases. Support for Simple Ob-
ject Access Protocol (SOAP) and other interfaces allows PaaS offerings to
create combinations of web services as well as having the ability to access
databases and reuse services maintained inside private networks. The abil-
ity to form and share code with ad-hoc, predefined, or distributed teams
greatly enhances the productivity of PaaS offerings.
2.4.5 Software-as-a-Service (SaaS)
Software-as-a-Service is a software distribution model in which applica-
tions are hosted by a vendor or service provider and made available to cus-
tomers over a network, typically the Internet. SaaS is also often associated
with a pay-as-you-go subscription licensing model. Meanwhile, broadband
10
23. 2.5. DEPLOYMENT MODELS
service has become increasingly available to support user access from more
areas around the world.
The distinction between SaaS and earlier applications delivered over the
Internet is that SaaS solutions were developed specifically to work within
a web browser. The architecture of SaaS-based applications is specifically
designed to support many concurrent users at once. This is a big differ-
ence from the traditional client/server or application service provider base
solutions that cater to a contained audience. SaaS providers, on the other
hand, leverage enormous economies of scale in the deployment, management,
support, and maintenance of their offerings.
2.5 Deployment models
2.5.1 Public Cloud
Public cloud or external cloud describes cloud computing in the tradi-
tional mainstream sense, whereby resources are dynamically provisioned on
a fine-grained, self-service basis over the Internet, via web applications/web
services, from an off-site third-party provider who bills on a fine-grained
utility computing basis [8].
2.5.2 Private Cloud
Private cloud is highly virtualized cloud datacenter located inside and
protected by company’s firewall. It may also be a private space dedicated
to company within a cloud vendor datacenter designed to handle company’s
workloads [8].
The characteristics of the private cloud are as follows:
1. allow IT to provision services and compute capability to internal users
in a self-service manner;
2. automate management tasks and let you bill business units for the
services they consume;
3. provide a well-managed environment;
4. optimise the use of computing resources such as servers;
5. supports specific workloads;
6. provide self-service based provisioning of hardware and software re-
sources.
11
24. 2.5. DEPLOYMENT MODELS
The major difference between public and private cloud is control over the
environment. In a private cloud, company or a trusted partner control the
service management.
Private clouds can be divided to:
1. private cloud owned, hosted and managed by the enterprise;
Figure 2.1: private cloud hosted and managed by the enterprise
2. private cloud owned and hosted by the enterprise, but a manager is
hired to manage the cloud;
Figure 2.2: private cloud hosted by enterprise, managed by cloud manager
3. private cloud owned by the enterprise but a manager is hired to manage
and host the cloud.
12
25. 2.6. VIRTUALIZATION
Figure 2.3: private cloud hosted and managed by cloud manager
2.5.3 Community Cloud
A community cloud may be established where several organizations have
similar requirements and seek to share infrastructure so as to realize some
of the benefits of cloud computing. The costs are spread over fewer users
than a public cloud (but more than a single tenant). This option may offer a
higher level of privacy, security and/or policy compliance. In addition it can
be economically attractive as the resources (storage, workstations) utilized
and shared in the community are already exploited and have reached their
return of investment. Examples of community clouds include Google’s “Gov
Cloud”.
2.5.4 Hybrid Cloud
A hybrid cloud uses a combination of public and private clouds.
2.5.5 Combined cloud
Two clouds that have been joined together are more correctly called a
“combined cloud”.
2.6 Virtualization
Virtualization is the creation of a virtual (rather than actual) version
of something, such as an operating system, a server, a storage device or
network resources. If a hard drive is divided into different partitions, a
partition is the logical division of a hard disk drive to create, in effect, two
13
26. 2.6. VIRTUALIZATION
separate hard drives. This may be called Virtualization. There are many
types of virtualization described in the following subsections.
2.6.1 Hardware Virtualization
Hardware virtualizations when the virtual machine manager is embedded
in the circuits of a hardware component instead of being called up from a
third-party software application. The virtual machine manager is called a
hypervisor. There are three types of hardware virtualization:
1. Full virtualization: almost complete simulation of the actual hardware
to allow software, which typically consists of a guest operating system,
to run unmodified;
2. Partial virtualization: some but not the entire target environment is
simulated. Some guest programs, therefore, may need modifications
to run in this virtual environment;
3. Paravirtualization: a hardware environment is not simulated; however,
the guest programs are executed in their own isolated domains, as if
they are running on a separate system. Guest programs need to be
specifically modified to run in this environment.
2.6.2 Operating System Virtualization
Operating system virtualization refers to the use of software to allow
system hardware to run multiple instances of different operating systems
concurrently, allowing you to run different applications requiring different
operating systems on one computer system. The operating systems do not
interfere with each other or the various applications. Not to be confused with
operating system level virtualization, which is a type of server virtualization.
2.6.3 Storage Virtualization
Storage virtualization is the combination of multiple network storage de-
vices and shows them to user as a single storage unit. Storage virtualization
is often used in Storage Area Network (SAN), a high-speed sub-network of
shared storage devices, and performs tasks such as archiving, back-up, and
recovery easier and faster.
2.6.4 Lightweight Virtualization
Lightweight virtualization is kind of virtualization which commonly used
in this project. In this kind of virtualization, you have a single instance
of operating system , but several isolated user environments, so you get
isolation of communication channels, and usually also some administrative
14
27. 2.7. REMOTE DESKTOP ACCESS
independence (at varying degrees). Lightweight virtualization is a concept
of all applications to use the same copy of the underlying operating system.
2.7 Remote Desktop Access
Remote Desktop refers to software or an operating system feature allow-
ing applications, often including graphical applications, to be run remotely
on a server, while being displayed locally. The concept started as a way of
remote administration for servers. When it works the controlling computer
displays a copy of the image received from the controlled computer’s display
screen. The copy is updated on a timed interval, or when a change on screen
is noticed by the remote control software. The software on the controlling
computer transmits its own keyboard and mouse activity to the controlled
computer, where the remote control software implements these actions. The
controlled computer then behaves as if the actions were performed directly
at that computer. In many cases the local display and input devices can
be disabled so that the remote session cannot be viewed or interfered with.
The quality, speed and functions of any remote desktop protocol depend on
the system layer where the graphical desktop is redirected.
Software such as PC Anywhere [21], VNC [4] and others use the top soft-
ware layer to extract and compress the graphic interface images for trans-
mission which gives somehow bad performance on low bandwidth networks.
Other products such as Microsoft RDP, Graphon GO-Global [22] and others
use a kernel driver level to construct the remote desktop for transmission
which gives better performance. Since the advent of cloud computing remote
desktop software can be housed on USB hardware devices, allowing users to
connect the device to any PC connected to their network or the Internet and
recreate their desktop via a connection to the cloud. This model avoids one
problem with remote desktop software, which requires the local computer
to be switched on at the time when the user wishes to access it remotely.
Remote Desktop is implemented in many protocols. The following are main
examples of these protocols:
1. Virtual Network Computing (VNC): a cross-platform protocol that
uses the top software layer to extract and compress the graphic inter-
face images for transmission;
2. Remote Desktop Protocol (RDP) [3]: a Windows-specific protocol fea-
turing audio and remote printing which uses a kernel driver level to
construct the remote desktop for transmission which gives better per-
formance than VNC;
3. NX technology [23]: a newer cross-platform protocol featuring audio
15
28. 2.8. RELATED WORK
and remote printing that uses the X-Protocol and compress the trans-
ferred data using the DXPC - Differential X Protocol.
In Cloud Computing, Remote Desktop is used for Desktop Virtualization
or Virtual desktop infrastructure (VDI). It separates a personal computer
desktop environment from a physical machine using the client-server model
of computing. Desktop virtualization involves encapsulating and delivering
either access to an entire information system environment or the environ-
ment itself to a remote client device. The client device may use an entirely
different hardware architecture from that used by the projected desktop
environment, and may also be based upon an entirely different operating
system.
2.8 Related Work
A survey was conducted to inspect related systems to GenieApp that
tries to solve the problem introduced in Chapter 1. In this chapter, defi-
nition, features and system components of these related systems are intro-
duced.
2.8.1 Team Viewer
TeamViewer is a desktop sharing software, where user can establish a
connection to any computer via the Internet and control it remotely or sim-
ply present its desktop, it can be used in remote maintenance, presentations
and access to remote servers [24].
Features
1. Compatible with Windows, Mac OS X, Linux, iPhone and iPad.
2. Can be used over LAN connection or over the web.
3. Multi-monitor support which enables users to transmit or display the
monitor of their choice.
4. recording of remote sessions as video for verification purposes.
5. Provide presentations features including sharing presentations and train-
ing sessions in the browser, whiteboard for drawing, file manager for
transferring files to and from remote computers.
6. Facilitate communication between users sharing the same desktop us-
ing VoIP, web cam, conference call or Chat.
16
29. 2.8. RELATED WORK
7. Provide two ways of transmission, either full desktop session or specific
application.
8. Adapt transmission protocol according to the quality needed and the
available network bandwidth.
Systems Components [25]
1. Customer software: can be executed without installation including
visual designer of customer module to create the module that matches
user’s corporate design.
2. Web Connector: to control remote computers via web browser using
pure Hyper-Text Markup Language (HTML) and Flash.
3. TeamViewer Manager: enables users to view usage data and offers
options for partner management and session logging also it can be
used for billing management.
4. MSI packet: allows central configuration of TeamViewer.
2.8.2 Chrome OS
Google Chrome OS is a Linux-based operating system designed by
Google to work exclusively with web applications [26]. It was announced
on July 2009 and made it an open source project, called Chromium OS [27],
in November on the same year.
Chrome OS is based on Chrome browser, so computer running Chrome
OS will run no local applications, as applications will be based on HTML 5,
Flash and JavaScript, user’s documents and other data will be maintained
via Web-based cloud storage and it will depend on third-party applications
to handle non-Web file types.
Google’s Native Client technology would also be available on the plat-
form. Native Client is an ActiveX-like technology that provides plug-in
capabilities to interact with local system resources.
Features
1. Chrome OS will have an additional advantage over browsers running
on traditional operating systems, because it will be tightly integrated
with the underlying hardware. That means Web applications run-
ning on Chrome OS will be able to take advantage of such features as
multiprocessing and Graphics Processing Unit (GPU) acceleration.
17
30. 2.8. RELATED WORK
2. The most important goal of Chrome OS was to create devices that are
fast, easy, and enjoyable for the average person to use and as soon as
user pushes the On button, it immediately comes on, and you’re on
the Web as quickly as possible.
3. Google Chrome OS comes pre-installed on new netbook devices [28],
which have a screen, a touch pad, and a full-size keyboard but they also
won’t have hard drives, only solid-state drives are supported as they
helps in reducing power consumption and give faster startup times.
4. Users will not need to install or maintain any software because Chrome
OS applications will be Web-based. The system will boot and appli-
cations will launch more quickly.
5. Provide presentations features including sharing presentations and train-
ing sessions in the browser, whiteboard for drawing, file manager for
transferring files to and from remote computers.
6. Chrome OS will be inherently more secure than traditional operat-
ing systems because the latest software updates and security patches
would be installed automatically over the Web.
7. Unlike traditional operating systems, Chrome OS doesn’t trust the
applications user runs. Each application is contained within a security
sandbox [29] making it harder for malware and viruses to infect your
computer. Every time user restarts his computer the operating system
verifies the integrity of its code. If your system has been compromised,
it is designed to fix itself with a reboot.
8. Allows users to move from device to device, or even to share devices,
while still preserving their individual experiences [30] because user
store data in the cloud.
9. Chromoting feature [31]: it is a new in the upcoming Chrome OS, its
name is mash-up of “Chrome” and “remoting”. It will provide Chrome
OS with the ability to access legacy PC applications right within the
browser besides running web applications.
2.8.3 Spoon
Spoon offers application virtualization using cloud computing technolo-
gies. It enables users to launch desktop applications from the web with no
installation, so they can test and use applications instantly [32]. Spoon vir-
tualization runs applications using a simple web browser plug-in in isolated
environment from running system to avoid conflicts between the applica-
tion running and already running applications, this technique allows virtual
applications to interact with a virtualized file system, registry, and process
18
31. 2.8. RELATED WORK
environment contained in the kernel, rather than directly with the host de-
vice operating system.
Features
1. Virtual applications provided by Spoon have the same performance
characteristics as installed applications, but without any changes to
system infrastructure.
2. Small and lightweight kernel providing implementation of core operat-
ing system APIs, including file system, registry, process, and threading
subsystems.
3. It can be distributed on public and private clouds.
4. Applications launch on client device after less than 10 percent of the
application has been transferred unlike hardware virtualization solu-
tions which require an entire copy of the application to be transferred.
5. Predictive streaming technology allows virtual applications to launch
5 to 20 times faster than traditional downloaded applications as it
predicts which part of the application code is likely to be executed
first.
6. Sandbox synchronization where application settings and other state
synchronize into the cloud in personal user account so as to migrate
with them from desktop to desktop easily [33].
7. Folder synchronization to provide the user with the documents, music,
photos, videos, desktop files, and other content the user wants to access
from applications.
8. Applications can be registered to the local device so as to make it
available for offline usage.
9. Provide organizations with a single access point to their applications
list instead of going desktop to desktop to upgrade or install every
relevant piece of software for the organization.
10. No installation or administrative privileges are required to run appli-
cations from Spoon.
11. Run multiple versions of applications side-by-side without conflicts or
dependencies.
12. Spoon Server is compatible with Windows Server 2003, Windows Vista,
Windows Server 2008 and Windows 7. Users can access Spoon Server
from Microsoft XP, Windows 2003, Windows Vista and Windows 7
19
32. 2.8. RELATED WORK
platforms using Internet Explorer, Firefox, Safari, Chrome, Opera or
any all other browser built using the Gecko API.
13. Spoon Server supports both the x86 (32-bit) and x64 (64-bit) processor
architectures.
System Components
1. Spoon Client: web clients with a browser plug-in which enables users
to run applications on their local desktops.
2. Spoon Studio: allows users to convert existing applications into virtual
applications compatible to be distributed by Spoon and run on user’s
devices without installation.
3. Spoon Server [34]: allows users to launch applications instantly from
web sites, portals, and client desktops, saving time and costs. Appli-
cations streamed from Spoon Server do not require download, instal-
lation, rebooting, administrative privileges, or separate setup steps in
order to run.
2.8.4 Converting Legacy Desktop Applications into On-Demand
Personalized Software
This solution is based on lightweight virtualization technologies, which
can convert the existing desktop software into on-demand software across
the Internet without any modification of source code and enables a user to
access his / her personalized software on demand across the Internet on any
compatible host [35].
In this approach, the user’s data and applications and configurations are
made portable; each personalized application runs in an OS-level virtual-
ization environment layered on top of the local machine’s OS. This envi-
ronment intercepts some resource-accessing APIs, including those accessing
the system registry, files, directories, and environment variables, from these
applications, and redirects them to the actual storage position(s) (like the
Internet and/or portable storage devices) rather than the local host. Then,
in the user’s view, he / she can access his / her personalized applications
and data conveniently, although they do not exist on local disks.
Two implementations of the proposed system are also introduced. In the
first case, personal users can put their customized applications on a portable
storage device (such as a USB stick) so that no network access is needed.
The second case is designed for the enterprise scenario: a centralized file
server is employed to deploy software for each employer rather than install
software on all PCs.
20
33. 2.8. RELATED WORK
2.8.5 Citrix
XenDesktop
Citrix XenDesktop is a desktop virtualization system that centralizes
and delivers Microsoft Windows XP, 7 or Vista virtual desktops to users
anywhere providing equivalent user experience to that of a local Windows
desktop [36].
Figure 2.4: Examples Of XenDesktop Users Devices
1. Features [37]
(a) Use a single image to deliver personalized desktops to users and
virtual desktops are dynamically assembled on demand to prevent
performance degradation while keeping user’s data and settings.
(b) XenDesktop depends on high speed delivery protocol which adapt
with networks having different bandwidths and types.
(c) Centralized control policy to authorize users and allow only screen
21
34. 2.8. RELATED WORK
updates, mouse clicks, and keystrokes to be transferred over the
network.
(d) Users can pause desktop sessions and resume working from dif-
ferent locations.
(e) Users can easily request support and the help desk can view the
user’s screen and take control of the desktop to resolve issues
quickly.
(f) Performance monitoring tools to allow administrators to manage
services.
(g) USB support by allowing users to insert their USB devices lo-
cally and access them from the their virtual desktops and ap-
plications. Supported USB devices include: flash drives, smart
phones, PDAs, printers, scanners, MP3 players, tablets, Web-
cams, microphones, speakers and headsets.
(h) Integration with Citrix XenServer, Windows Server 2008 Hyper-
V, and VMware vSphere.
(i) Provides a help desk to help users in solving problems, it takes
control of user’s desktop and try to solve the issues.
XenApp
Citrix XenApp enables delivering any Windows application to users any-
where on any device. Applications are managed from one central location
which reduces costs and increases efficiency as application can be configured
and updated in one location rather than using manual processes to install
applications on every Personal Computer (PC) [38].
1. Features
(a) XenApp delivers applications to users anywhere, from any de-
vice running any of over 30 operating systems. Applications are
isolated from host operating system and from other applications.
(b) Provides application virtualization, session virtualization and Cit-
rix HDX technology which adapts virtual application delivery and
access based on each user device, network, and location.
(c) Applications are transferred directly to Windows PCs for offline
use or run on high-powered servers in the datacenter for online
use on any device or operating system.
(d) Provides security using encrypted connectivity and advanced ac-
cess control.
(e) Printers, drivers, peripherals and the clipboard work the same
way as installed applications.
22
35. 2.8. RELATED WORK
2. How system works [39] Application virtualization technology: the ap-
plication files, configuration, and settings are streamed from central
server to the client. When user starts the application, it operates in
virtualized environment as if it was interfacing directly with the un-
derlying operating system.
Figure 2.5: Application Virtualization Technology
Session virtualization technology: it uses application streaming to de-
liver applications to servers. When the user wants to start the ap-
plication, he connects to the server which hosts the application and
the application run on the server and the screen updates are trans-
ferred to the user, mouse clicks and keystrokes are sent to the hosting
server. Session virtualization supports clients operating on Windows,
Mac, Linux, UNIX, thin clients, iPhone, Windows Mobile devices,
Symbian- and Java-enabled devices.
23
36. 2.8. RELATED WORK
Figure 2.6: Session Virtualization Technology
2.8.6 Oracle Virtualization
Oracle Virtual Desktop Infrastructure (VDI)
Oracle VDI [40] provides a complete solution for managing, hosting,
and providing access to virtualized desktop operating systems hosted in the
datacenter. With Oracle Virtual Desktop Infrastructure, you can reduce the
overhead associated with managing individual desktop operating systems
and standardize on virtual desktop images that can be used across your
organization from nearly any client device. Users can access these virtual
machines through any RDP [3] client, or through the web via Oracle Secure
Global Desktop (SGD).
1. Features
(a) Integration of Sun Ray Server Software for VDI access through
Sun Ray thin clients. No additional Sun Ray Server Software
(SRSS) license is needed.
(b) Integration of Oracle SGD for remote access through a web in-
terface.
(c) Choice of virtualization backend: VMware vSphere, Microsoft
Hyper-V and Oracle VM VirtualBox are supported.
(d) Built-in RDP support in VirtualBox can be used to remotely
access operating systems that lack a built-in RDP server, such as
Linux, or Windows 2000).
24
37. 2.8. RELATED WORK
(e) Oracle VM VirtualBox backend offers high performance through
tight integration with Oracle’s Unified Storage products.
Oracle Secure Global Desktop (SGD)
Oracle SGD [41] provides secure access to centralized, server-hosted Win-
dows, UNIX, mainframe, and midrange applications from a wide variety of
popular client devices, including Windows PCs, Mac OS X systems, Ora-
cle Solaris workstations, Linux PCs, thin clients, and more. Additionally,
Oracle Secure Global Desktop provides access to full-screen desktop envi-
ronments, allowing administrators the freedom to use a single solution to
provide access to both server-based applications and server-hosted desktop
environments such as Microsoft Remote Desktop Services.
A comprehensive set of administration tools enables the deployment of
individual applications or full-screen desktop sessions to thousands of user-
squickly and easily. In addition, the system’s highly scalable architecture
allows for future expansion, while streamlining system administration tasks
for less-demanding implementations.
Sun Ray
Sun Ray [42] Software is a secure and cost-effective solution that delivers a
rich virtual desktop experience for Sun Ray Clients, PCs, and laptops. It
provides access to virtual desktop environments from nearly any location
and dramatically reduces the complexity and operational costs incurred by
traditional PC deployments. By centralizing management, data, and appli-
cations in the datacenter, desktop maintenance requirements and client se-
curity vulnerabilities are virtually eliminated. Rich multimedia capabilities
provide users with a seamless end-user experience and a simpler migration
path, which makes moving to a virtualized desktop solution easier for both
administrators and end-users.
2.8.7 NoMachine NX
NoMachine NX [43] is an enterprise-class solution for secure remote
access, desktop virtualization, and hosted desktop deployment built around
the self-designed and self-developed NX suite of components. It benefits
from outstanding compression and resource management and its integration
with the powerful audio, printing and resource sharing capabilities of the
UNIX world, NX makes it possible to run any graphical application on any
operating system across any network connection. Via NX accessing remote
desktops, servers and applications, whatever their location, is just as fast,
easy and secure as if you were sitting in front of them. Together with easy-to-
use management, deployment, and monitoring tools, NoMachine NX makes
25
38. 2.8. RELATED WORK
it possible to transform any traditional desktop computing environment into
a centrally managed, globally accessible, virtual desktop infrastructure.
NoMachine NX current official release 3.5 requires any Linux-based Op-
erating System. In the upcoming version 4.0 it will be supporting a web
client. NoMachine NX makes use of NX Protocol in remote access for vir-
tualized desktops which is famous for its differential compression which fits
low bandwidth.
No Machine NX is supported in many versions as the following:
1. NX Free Edition.
2. NX Enterprise Desktop.
3. NX Small Business Server.
4. NX Enterprise Server.
5. NX Advanced Server.
They differ in number of users supported, number of concurrent connec-
tions to the system. The later four versions are not free of charge. They
requires subscription which begins from $744.50 for the NX Small Busi-
ness Server which supports 10 users and 10 concurrent connections to about
$3494.50 for the NX Advanced Server which supports unlimited number of
users and unlimited number of concurrent connections [44].
2.8.8 OnLive
OnLive is an on-demand cloud based gaming service, where the game
runs on the cloud and all computation and rendering are performed remotely.
In Onlive, user’s controller inputs are uploaded to the server which takes
inputs and plays the game, then a video stream of the output is sent back
to user’s computer [45], but it requires capable Internet connection and a
computer.
Features
1. The service works on any Windows or Mac machine as a small browser
plug-in.
2. OnLive MicroConsole [46] is a small device allowing user to hook di-
rectly into his TV via HDMI; the device is almost the same size as
a PSP game box and maybe twice the height. It features two USB
26
39. 2.8. RELATED WORK
inputs, a mini-USB port for power, optical audio output and HDMI
video output. There’s also Bluetooth support for voice or wireless
joysticks, keyboards and mice.
3. Game starts immediately and there is no need to download anything
to start the game.
4. Allow users to play using an appropriate input device, like controller,
mouse and keyboard.
5. User efficient video compression algorithm to transfer videos as quick
as possible, it introduces only one millisecond of lag to encode the
video, which is completely unnoticeable to user.
6. Depend on fast Internet connection at least 1.5 mbps connection is
required for standard-definition video (480p), while a 5.0 mbps con-
nection is required for HD (720p).
7. Games run at slightly less than 60fps, but they’re still smooth and until
now everything tried was completely playable and quite responsive.
8. Each user has friends list where he can see saved games and settings
and Brag Clips which are 10-second videos of his favourite gaming
moments.
9. Users can pay for a game and own it indefinitely, or they can rent it
for a specified amount of time, this will reduce game piracy as games
will be available for trials and rentals for small period of time.
10. Several publishers signed on to launch their games on the service,
including EA, Take-Two, Ubisoft, Epic, Atari, Codemasters, Warner
Bros., THQ and Eidos.
2.8.9 IBM SoulPad
SoulPad is a new approach based on carrying an auto-configuring oper-
ating system along with a suspended virtual machine on a small portable
device. With this approach, the computer boots from the device and resumes
the virtual machine, thus giving the user access to his personal environment,
including previously running computations.
SoulPad contains the software stack shown above. User can suspend his
computing environment on one PC and resume it on a host PC. The host
PC boots an auto-configuring operating system from the SoulPad, starts a
virtual machine monitor, and resumes a suspended virtual machine, which
includes the user’s files, user’s operating system, installed applications, desk-
top configuration as well as all running applications and open windows.
27
40. 2.8. RELATED WORK
SoulPad has minimal dependencies on PCs that can be used to resume
a user session as host PC is not required to be network connected, or to
have any installed software or a specific software stack on the PC. The only
requirement is the support of a high speed local connection to a SoulPad
device for an acceptable suspend and resume times and acceptable runtime
performance.
SoulPad can be installed and configured to work with USB 2.0 interfaces
which do not need power sources and it provides fast connection enough to
provide acceptable performance. Also many BIOSes support the ability to
boot directly from USB disks simplifying the resume operation to one of
connecting the SoulPad over USB 2.0 and instructing the PC BIOS to boot
from USB. As the SoulPad device carries personal computing environment
of the user and his personal data and configurations, sensitive data on the
SoulPad is encrypted.
2.8.10 Microsoft SoftGrid
Microsoft SoftGrid converts applications into virtual services that are
managed and hosted centrally but these applications can be deployed wher-
ever they are needed, and run locally on demand on Windows-based com-
puters whether desktops, portable computers, or Terminal Services/Citrix
servers connected to intranet (LAN, WAN, VPN), Internet, or wireless net-
works.
Application virtualization in SoftGrid reduces the complexity and IT
labor involved in deploying, updating, and managing applications in addition
to reducing the application footprint on the operating system thus reducing
application and operating system conflicts. Also it saves the cost and time
for regression testing during OS migration, such as upgrades from windows
version to another version as it preserves application compatibility issues.
Features
1. Administrator assigns end users access to an application.
2. Delivering and managing applications centrally while allowing client
computers to run the applications locally
3. Improving server utilization and management.
4. Tracking application usage.
5. Consolidating and standardizing operating system images.
28
41. 2.9. NEED TO EXTEND RELATED WORK
6. Solving many of the pain points that today exist in the application
management life cycle, such as the need to perform regression testing
and implementing techniques to eliminate application conflicts.
7. Making it easier for companies to add and remove software assets from
their portfolio.
2.9 Need To Extend Related Work
In section 2.7 which is summarized in table 2.1, related work was in-
troduced that tries to solve the problem, but most of them targets only
enterprises which will not be the case in GenieApp. GenieApp will target
normal users in addition to enterprises. Also, most of the related systems
need special hardware to be acquired, such as Sun Ray, to enable users to
work with the cloud system. GenieApp will provide service to users any-
where and with only need to a web browser. GenieApp subscription will not
be for a year of usage of hardware and the service packaged, but GenieApp
will support pay-as-you-go payment model.
29
42. 2.9.NEEDTOEXTENDRELATEDWORK
Table 2.1: Related Work Summary
Related
Work
Win Linux Win
Apps
Linux
Apps
Shared
Desk-
top
Shared
Apps
pay-
as-
you-
go
special HW
required
thin
client
Web
Apps
Enter-
prises
only
run in
browser
Team
Viewer
No No No No Yes Yes No No Yes No No Yes
Chrome OS No No No No No No Yes No No Yes No Yes
Spoon No No Yes No No No No No No No No No
Citrix Xen-
Desktop
Yes No No No Yes Yes No Yes No Yes No Yes
Citrix
XenApp
No No Yes Yes
(in
Xe-
nApp
UNIX)
Yes Yes No Yes Yes No Yes Yes
Oracle Vir-
tualization
Yes Yes No No No No No Yes No No Yes Yes
No Machine
NX
Yes Yes Yes Yes Yes No No No Yes No Yes Yes
OnLive No No Yes No No No Yes No Yes No No Yes
IBM Soul-
Pad
Yes Yes Yes Yes No No No Yes No No No No
Microsoft
SoftGrid
Yes Yes Yes Yes No No No Yes No No Yes No
30
43. 2.10. CONCLUSION
2.10 Conclusion
In this chapter, Cloud Computing was explained and many related tech-
nologies were discussed. Also related systems to GenieApp were introduced.
In the next chapter, GenieApp will be introduced with its features, con-
straints comparing it with the related work discussed in this chapter.
31
44. Chapter 3
Introduction to GenieApp
3.1 Introduction
In the previous chapter, a background about cloud computing was pre-
sented. Also, technologies that are related to Cloud Computing were intro-
duced, such as virtualization and remote access. Some related systems that
are similar to GenieApp with their features were discussed.
In this chapter, GenieApp, as a solution to the problem proposed in
Chapter 1, is introduced in section 3.2. Features of GenieApp are listed and
explained in section 3.3. In section 3.4, GenieApp constraints are declared.
In section 3.5, a comparison between GenieApp and the other related sys-
tems that were discussed in Chapter 2, is presented.
3.2 What is GenieApp?
GenieApp is a cloud-based system that allows users to run applications
and operating systems remotely from their web-browser, without the need
to install, upgrade or maintain the operating system or the application. Ge-
nieApp introduces pay-as-you-go billing system, as users will pay only for
their time and resources usage and will not need to buy license for the soft-
ware. Using GenieApp, users with limited hardware capabilities or mobile
devices will be able to run high performance applications and enjoy the
power of computing in the browser. Also they will have access to private
storage that is shared and accessible by any application or operating system
they use on GenieApp.
32
45. 3.3. GENIEAPP FEATURES
Figure 3.1: System Overview
As shown in Figure 3.1, GenieApp has three layers: interface layer, man-
agement layer and infrastructure layer. GenieApp will use an interface layer
to deal with users; they can view, run and interact with their files, folders,
application and operating system from this layer. User’s interactions will
be delivered to the correct operating system and application instance using
GenieApp management layer, which will also be responsible for managing
all applications and operating systems running on the cloud. Administrator
can control applications and operating systems through the management
layer; he can update user’s privileges and manage resources consumption
from the tools provided in this layer.
3.3 GenieApp Features
GenieApp provides several features for users. User can choose certain
operating system or application to open, user management and administra-
tion subsystem should be provided and privacy must be kept. Currently
the most important features is discussed. More detailed description of each
features including use-cases will be provided in Appendix A. The features
supported by GenieApp are the following:
1. opening an Application
The system will enable the user to open an application, the applica-
tion will run on the cloud and the system will transfer the interface to
user’s browser. As the application will run on the cloud, then it runs
independent of the user’s platform, software and hardware capabili-
ties which guarantees no conflict with applications already installed,
only a browser and reliable Internet connection are required. System
enables the user to search for applications by name, category or cost
also he can browse the list of all available applications, each user will
have a favourite list and most used applications. Initially, this system
33
46. 3.3. GENIEAPP FEATURES
provides users with limited set of Windows and Linux applications
as a proof of concept, but later it will enable almost all applications
including desktop and mobile operating systems.
2. opening an operating system
The system enables the user to search for and select an operating
system to open, the operating system will run on the cloud and the
system will transfer the interface to user’s browser. As the operat-
ing systems will run on the cloud, they are independent from user’s
platform, software and hardware capabilities. GenieApp provides a
list of all operating systems supported, for each operating system the
user can choose hardware requirements including the number of cores,
memory and disk space needed, also he will able to attach any disks
created before to the operating system he opens. Also the system
provides some packages including the operating system, the hardware
requirements and some installed applications. Initially, this system
provides users with Windows and Linux operating systems as a proof
of concept, but later it will enable almost all operating systems includ-
ing desktop and mobile systems.
3. save operating system session
After the user finishes using the operating system, he will be asked to
save his session, if he agrees the operating system and all attached disk
volumes will be saved for him, the next time the user chooses to open
a certain system, he will be asked if he wants to open saved instance
or a new one. When the user chooses to open a saved instance, he will
find all his applications on it and disk volumes that were mounted the
same as before closing it last time, if he wants to load another disk he
can select it from the list providing all his disk volumes. The system
should provide privacy to user’s saved operating systems, other users
will not be able to open saved instances of others.
4. billing administration
GenieApp provides pay-as-you-go billing mechanism; the users will
pay for the time, resources and license of the operating systems and
applications he uses. For operating systems, the user pays for license,
billing mechanism will calculate license cost based on the time the user
used the system, also the users pay for the hardware used and also a
license of all applications that were installed initially on the operating
system. For applications, the user will pay for the license of the ap-
plication and the underlying operating system in case it needs license,
and the hardware resources he used while the application was running.
Additional cost will be paid if the user chooses to save instances; the
cost will be calculated based on the amount of disk space reserved for
this instance.
34
47. 3.4. GENIEAPP CONSTRAINTS
5. user manager
GenieApp provides user management system, when the user starts
dealing with the system he will be asked to create a new account,
and then he will be required to enter his account information before
opening any application or operating system. User’s account info will
contain his payment method, he can use his credit card, bank account
or cash transfer to pay for his usage, the system will automatically
withdraw from user’s account after finishing his session, by closing the
application or operating system. User management also provides user
statistics, average amount of resources and when he consumes them,
this will allows the system to rank and categorize the user and predict
his usage to manage system workload.
6. system administration
GenieApp provides management and control subsystem, it allows sys-
tem administrators to upload and remove applications and operating
systems, modify billing policy, change user’s privileges and other ad-
ministrative tasks.
7. system monitor
GenieApp provides monitoring subsystem which monitors user’s usage
periodically, while the user is using the operating system or application
a small monitor will appear that tells the user how much resources he
consumed and how much he will pay for these resources, this gives
the user insight about his session and its expected cost. Also system
can warn the user if a predefined cost limit is about to be reached.
Also the system records some statistics and graphs of user’s resources
and amount paid for them, so he can check when he consumed these
resources.
8. storage management
The system allows users to create disk volumes, these volumes can
be accessed by the operating systems or applications used. Later the
system will provide an interface for the user to manage folders and up-
load, download, create or delete files. Disk volumes will be mounted
to user’s operating system on demand and saved with it when the user
chooses to save the operating system currently running. Billing man-
ager will be responsible for handling storage based on space reserved
and the period he reserved it.
3.4 GenieApp Constraints
GenieApp as a system faces many challenges to ensure delivering the
best service to the users. GenieApp should consider the following to ensure
delivering the power of computing to the users seamlessly:
35
48. 3.5. COMPARISON BETWEEN GENIEAPP AND RELATED WORK
1. supporting real time operating systems and applications on the cloud;
2. pay-as-you-go payment model and handle cost calculations for each
user depending on its resources and time usage;
3. delivering the required hardware and software with minimum delay to
support enterprises to deploy new solutions fast;
4. acceptance of software development parties to use their software using
pay-as-you-go payment model;
5. availability and reliability of the system.
On the other hand, GenieApp introduces the minimum constraints on
the system users. The main goal of GenieApp is to deliver the power of com-
puting to users with minimum hardware and software requirements and with
cost relative to their need to that power. GenieApp requires the following
from the user:
1. reliable Internet connection;
2. Javascript enabled web-browser to be able to access GenieApp;
3. once a disk volume is created, user can not modify its space, instead
user can delete it or create more than one volume.
3.5 Comparison between GenieApp and Related
Work
In the previous sections, GenieApp was introduced with its features. In
this section, A comparison between GenieApp and the related work discussed
in chapter 2 will be presented.
3.5.1 TeamViewer
GenieApp can be described as full virtualization system which runs appli-
cations on cloud and transfer the interface to user, while TeamViewer is a
program which uses transmission protocols to transfer the desktop or appli-
cation interface from one computer to others, so we can consider TeamViewer
as the subsystem of GenieApp which is responsible for transmission. Listed
in table 3.1 a full comparison between GenieApp and TeamViewer.
36
49. 3.5. COMPARISON BETWEEN GENIEAPP AND RELATED WORK
Table 3.1: GenieApp vs. TeamViewer
GenieApp TeamViewer
Responsible for running application
or operating system on cloud and
transfer interface to user
Responsible for transmission of in-
terface from one computer to others
Does not need to provide mech-
anism for communication between
users, only users can view the com-
ments and ranking of operating sys-
tems and applications provided by
GenieApp
Provides mechanism for communi-
cation between several users using
VOIP, web cam, integrated confer-
ence call, chat or drawings on the
screen, also users can record videos
for actions performed to be used
later
Use open source and free protocols
such as VNC, RDP and NX
Use proprietary protocol
Provides pay-as-you-go billing man-
agement mechanism in which users
pay for their usage of operating sys-
tems and applications
Provides billing management sys-
tem for users, they can set a specific
set of users to have access and how
much they will pay for accessing re-
mote computer
User pays for license, hardware re-
sources consumed and saved oper-
ating system instances
User pays for accessing remote com-
puter and no consideration for li-
cense
Provides access to several operat-
ing systems and applications at the
same time to the same user
Provides access to only one operat-
ing system at anytime to the user
GenieApp uses cloud computing
technology so system is scalable and
new hardware can be installed and
put into service easily
Resources are limited to remote
computer hardware
Available for browser based usage
only
Available for desktop or browser
based usage
Depends on underlying transmission
system to handle security issues
Implements security features of
transmission protocol
Currently, it provides Windows and
Linux application for any browser-
enabled device
Available for Windows, Mac, Linux
and mobile devices
3.5.2 ChromeOS
ChromeOS is browser based operating system which is capable of running
web applications, it is built on a Linux kernel and it cannot run desktop
37
50. 3.5. COMPARISON BETWEEN GENIEAPP AND RELATED WORK
applications, unlike GenieApp which is web application capable of providing
user with operating systems and applications instances. Table 3.2 illustrates
complete comparison between GenieApp and ChromeOS.
Table 3.2: GenieApp vs. ChromeOS
GenieApp ChromeOS
Support running desktop applica-
tions and operating systems
Support running web applications
Accessing remote applications and
operating systems is currently pro-
vided and embedded into GenieApp
without the need to third-party
Access to remote desktop will be
provided via chromoting technology
and some third party application
like Citrix receiver provide web ap-
plication to run desktop applica-
tions remotely
GenieApp is just an application, it
does not access user’s hardware di-
rectly but it deals with the underly-
ing operating system
ChromeOS is full operating system
mainly provided with Chrome de-
vice but it can be installed and ran
on several hardware computers
Backend works on Cloud infrastruc-
ture and front end is web browser,
so no need to build or modify a ker-
nel, also it is more flexible to work
on mobile devices and resource lim-
ited devices
Built on Linux kernel after introduc-
ing some modifications
Billing for hardware resources con-
sumed, applications’ licenses and
service provided by GenieApp
Billing for chrome web store appli-
cations licenses that the user buys
No hardware access Chrome OS make benefit from un-
derlying hardware like Graphics
Processing Unit (GPU) and multi-
processing
Support wide range set of applica-
tions and operating systems without
the need to third-party
Support limited set of applications
provided by web store and third-
party
No need to introduce more security
techniques as it depends on cloud in-
frastructure and transmission proto-
cols security methods
Introduce security using sandbox to
protect user’s hardware from unau-
thorized and harmful access
Provide cloud storage that can be
accessed from any browser and any
running application or operating
system
Provide web storage that can be ac-
cessed from any web-browser
38
51. 3.5. COMPARISON BETWEEN GENIEAPP AND RELATED WORK
Table 3.2 – (Continued)
GenieApp ChromeOS
User can access saved operating sys-
tems or applications from any other
devices which provides more flexibil-
ity
User’s preferences and data are
saved online so that they can be ac-
cessed from any other devices
3.5.3 Spoon
It is an application virtualization system which transfers applications to
user’s local device then run the application locally, but GenieApp runs the
application on cloud and transfer only the interface of the application to the
user’s browser, Table 3.3 illustrates the difference between GenieApp and
Spoon.
Table 3.3: GenieApp vs. Spoon
GenieApp Spoon
Run application remotely in the
cloud and transfer interface to user
Run applications locally on user’s
device
Short startup time as application al-
ready exist on the running instance
on the cloud so only the time to
start the application is needed
Long startup time as user needs to
wait until part of application code
is transferred to his local device and
then starts to run
Can work online only, no offline
mode
Can work offline or online
Reliable Internet connection is
needed all the time while the
user is running the application or
operating system
Reliable Internet connection is
needed only to stream the appli-
cation, but once the application is
downloaded to user’s device, stable
and reliable Internet connection
is no more needed provided that
application already installed do not
need this reliable connection
It can be used in public only It can be used in public or private
Provides support for both operating
systems and applications
No operating system support is pro-
vided
39
52. 3.5. COMPARISON BETWEEN GENIEAPP AND RELATED WORK
Table 3.3 – (Continued)
GenieApp Spoon
Cloud computing infrastructure is
used to run applications and oper-
ating systems, and user can access
them from any browser enabled de-
vice
Server compatible with Windows
and client can be accessed through
Internet Explorer, Firefox, Safari,
Chrome, Opera or any all other
browser built using the Gecko API
running on Windows operating sys-
tem
Users pay for licenses and hardware
resources consumed using pay-as-
you-go mechanism
Users pay for applications licenses
Once the user saves his session, the
running operating system will save
all running applications and user’s
preferences
Provides facility to synchronize
user’s applications and settings from
one desktop to another, but it takes
time to upload and migrate these
applications
Provide cloud storage to save user’s
data and his saved operating sys-
tems
Provides cloud storage for user’s
files to be accessed from any appli-
cation
All applications are supported once
their operating systems are sup-
ported without modification
Need to modify the application to
host it on Spoon
3.5.4 OnLive
OnLive is an on demand gaming system in which the user can select
the game he wants to play, then his controls are transmitted to the cloud
where the actions are performed and results are streamed back to user, but
GenieApp is on demand system providing access to operating systems and
applications regardless of the type of application or the operating system,
so we may consider OnLive as an example of application streaming, but it
gives better performance for streaming games, table 3.4 below shows the
main differences between OnLive and GenieApp.
Table 3.4: GenieApp vs. OnLive
GenieApp OnLive
Provide applications and operating
systems on demand
Provide games on demand
40
53. 3.5. COMPARISON BETWEEN GENIEAPP AND RELATED WORK
Table 3.4 – (Continued)
GenieApp OnLive
Service is compatible with any
browser enabled machine
Service can be provided on Windows
or Mac machine or a special device
called OnLive MicroConsole
No special compression and stream-
ing algorithms are implemented
only rely on existing streaming al-
gorithms
More complex compression and
streaming algorithms are imple-
mented to facilitate transmitting
high performance games
Less restrictions are imposed ac-
cording to the type of application or
operating system running
Restrictions are imposed to provide
acceptable performance like being in
the USA and having stable Internet
connection with bandwidth at least
1.5 Mbps
Provide private storage to save
user’s data and to save running in-
stances of operating systems to re-
store them later
Save user’s profile and list of all
friends to share game results with
them
Provide pricing for license of appli-
cation or operating system and the
resources consumed by it
Provide pricing for hardware re-
sources consumed and license of the
game, he may choose to buy the
game and play it indefinitely or to
rent it for some time
3.5.5 Microsoft SoftGrid
These systems runs applications in virtualized environment isolated from
underlying Windows operating systems, their goal is to intercept calls to
Windows kernel and handle calls from virtualized applications, but Ge-
nieApp runs the applications and operating systems on server and trans-
fer interface, so they are considered as two different approaches. Table 3.5
illustrates in details the differences between the two systems.
Table 3.5: GenieApp vs. Microsoft SoftGrid
GenieApp Microsoft SoftGrid
Runs applications and operating
systems remotely on the cloud
Runs applications locally in virtual-
ized environment to resolve depen-
dency
Provides applications and operating
systems to users
Provides only applications to users
41
54. 3.5. COMPARISON BETWEEN GENIEAPP AND RELATED WORK
Table 3.5 – (Continued)
GenieApp Microsoft SoftGrid
Currently it does not support up-
loading and running personal appli-
cations
Supports any Windows application
Only fast and stable Internet con-
nection is needed regardless of the
user hardware and software capabil-
ities
Running an application depends on
software and hardware capabilities
of host device
3.5.6 Citrix XenApp and XenDesktop
XenDesktop provides the user with Windows desktop on demand, and
XenApp provides the user with applications in two ways, one of them is
to transfer the application to user’s machine and execute it in an isolated
environment, the other, is to execute the application on server and only
transfer the interface to user, so compared to GenieApp it is the most similar
system but there are minor differences as described in the table 3.6
Table 3.6: GenieApp vs. Citrix XenApp and XenDesktop
GenieApp XenApp and XenDesktop
Currently provides Windows and
Linux applications and operating
systems all in one system
Provides Windows applications and
instances in XenDesktop and Linux
applications and instances using Xe-
nApp for UNIX
Supports public usage over the web
for any type of users
Supports private usage only in orga-
nizations and enterprises
Uses open source and free protocols
like VNC and RDP to transfer in-
terface to users
Depends on proprietary protocol to
transfer interface to users
Provides the user with only one
virtualization technique which de-
pends on transferring the interface
to user’s machine
Provides the user with two virtu-
alization techniques either run the
application locally in virtualized en-
vironment or run it remotely and
transfer the interface
Billing for applications and operat-
ing systems licenses, hardware re-
sources consumed and service pro-
vided obtains the least part
The largest price is paid for obtain-
ing the service license
42
55. 3.5. COMPARISON BETWEEN GENIEAPP AND RELATED WORK
Table 3.6 – (Continued)
GenieApp XenApp and XenDesktop
No need for any additional hardware
resources for user, only browser en-
abled device
Need infrastructure at organization
Can operate over web only Can operate over LAN or web
Runs applications online only so,
fast and stable Internet connection
is needed
Supports running application online
or offline
3.5.7 Oracle VDI, SGD, and Sun Ray
Oracle Virtual Desktop Infrastructure provides a complete solution for
managing, hosting and providing access to virtualized desktop operating
systems hosted in the datacenter, but it restricts the customer from having
Oracle infrastructure and support each employee with a Sun Ray device
which is not the case in GenieApp which needs a thin clients to access
operating systems and applications hosted and maintained in the cloud.
Table 3.7: GenieApp vs. Oracle VDI, SGD, and Sun Ray
GenieApp Oracle VDI, SGD, and Sun Ray
Provides desktop virtualization and
application virtualization to deliver
computing power to personal com-
puters with operating systems and
applications hosted in the cloud
Provides desktop virtualization to
replace personal computers with vir-
tual machines (VMs) on a server
Accessed using any protocol like
RDP, VNC or NX
Supports remote access using any
RDP client, or via the web using
SGD which is used with a native
client or a Java web applet using
Adaptive Internet Protocol (AIP)
Back-end depends on the KVM vir-
tualization which supports full vir-
tualization and paravirtualization.
Paravirtualization speeds up many
operations, and it is the preferred
way of virtualization in the Linux
kernel
Works with multiple virtualiza-
tion back-ends such as VMware,
vSphere, Microsoft Hyper-V and
Oracle VM VirtualBox
As the user accesses machines run-
ning remotely it uses their storage
fast as if it is native
Utilizes Oracle Solaris ZFS to op-
timise storage in the cloned virtual
machines
43
56. 3.5. COMPARISON BETWEEN GENIEAPP AND RELATED WORK
Table 3.7 – (Continued)
GenieApp Oracle VDI, SGD, and Sun Ray
GenieApp uses VNC protocol im-
proved by ThinVNC to adapt the
data rate with the available band-
width
Oracle SGD optimises for Available
bandwidth and adapts the data sent
to the client device
Hotdesking by saving sessions and
starting it anytime and from any-
where
Hotdesking from device to device
through smart cards
3.5.8 NoMachine NX
NoMachine NX is an enterprise-class solution for secure remote access,
desktop virtualization, and hosted desktop deployment built around the
self-designed and self-developed NX suite of components. NoMachine NX
targets enterprises. On the other hand GenieApp targets normal users. Any
user can use GenieApp, requests any application or any operating system.
NoMachine NX needs infrastructure to be established at the enterprise to
serve the employees. Table 3.8 shows a comparison between NoMachine NX
and GenieApp.
Table 3.8: GenieApp vs. NoMachine NX
GenieApp NoMachine NX
Targets users Targets enterprises
Uses VNC protocol Uses NX protocol
Administrator only has the right to
manage and monitor applications,
users just use applications and oper-
ating systems available in the App-
Store
Easy-to-use management, deploy-
ment, and monitoring tools
Can support Windows, Linux Supports for Linux machines only
Pay-as-you-go model is used to help
users to pay just depending on their
time and resource consumption only
Subscription starts from $744 for
10 users in the system can con-
nect concurrently (NX Small Busi-
ness Server) or $794 for unlimited
number of users in the system with
just 2 users allowed to connect con-
currently (NX Enterprise Desktop)
Supports hotdesking by saving ses-
sions
Supports hotdesking by saving ses-
sions
44
57. 3.5. COMPARISON BETWEEN GENIEAPP AND RELATED WORK
3.5.9 IBM SoulPad
SoulPad is based on carrying an auto-configuring operating system along
with a suspended virtual machine on a small portable device. With this
approach, the computer boots from the device and resumes the virtual ma-
chine, thus giving the user access to his personal environment, including
previously running computations. It does not deliver personal environment
through the browser and also it depends on having a portable device with
the user which is not the case in GenieApp. Table 3.9 shows a comparison
between IBM SoulPad and GenieApp.
Table 3.9: GenieApp vs. IBM SoulPad
GenieApp IBM SoulPad
User can access his sessions through
any web browser anywhere
Requires the user to have a small
portable device
Virtual machines are hosted on the
cloud
Virtual machines are hosted on the
auto-configuring OS on the portable
device
Runs through the browser SoulPad uses the local machine op-
erating system
Sensitive user’s data is secured and
user is authenticated on the cloud
Sensitive data is encrypted on the
portable device
45
58. 3.6. CONCLUSION
3.6 Conclusion
In this chapter the main idea of GenieApp system was introduced, fol-
lowed by description of its main features and operating constraints for sys-
tem deployment and on system users. At the end of the chapter, a compar-
ison between GenieApp and related work was discussed and summarized in
table 3.10. In next chapter, system architecture, the main components and
their functionality will be discussed.
46
59. 3.6.CONCLUSION
Table 3.10: Related Work Summary
Related
Work
Win Linux Win
Apps
Linux
Apps
Shared
Desk-
top
Shared
Apps
pay-
as-
you-
go
special HW
required
thin
client
Web
Apps
Enter-
prises
only
run in
browser
Team
Viewer
No No No No Yes Yes No No Yes No No Yes
Chrome OS No No No No No No Yes No No Yes No Yes
Spoon No No Yes No No No No No No No No No
Citrix Xen-
Desktop
Yes No No No Yes Yes No Yes No Yes No Yes
Citrix
XenApp
No No Yes Yes
(in
Xe-
nApp
UNIX)
Yes Yes No Yes Yes No Yes Yes
Oracle Vir-
tualization
Yes Yes No No No No No Yes No No Yes Yes
No Machine
NX
Yes Yes Yes Yes Yes No No No Yes No Yes Yes
OnLive No No Yes No No No Yes No Yes No No Yes
IBM Soul-
Pad
Yes Yes Yes Yes No No No Yes No No No No
Microsoft
SoftGrid
Yes Yes Yes Yes No No No Yes No No Yes No
GenieApp Yes Yes Yes Yes No No Yes No Yes No No Yes
47
60. Chapter 4
GenieApp Architecture and
Design
4.1 Introduction
In Chapter 3, GenieApp was introduced as well as its features and con-
straints. At the end of the chapter, a comparison between GenieApp and
related work was conducted.
In this chapter, system architecture, main components and their func-
tionalities, and how different components of the system communicate and
interact to serve user’s requests, are to be discussed in section 4.2 . In
section 4.3, statechart diagrams are used to analyse the important objects’
states and the main events that trigger them. In section 4.4, an activity
diagram is used to provide an abstract flow of the system. In section 4.5,
an abstract class diagram used to provide an abstract view of the system.
4.2 Architecture
As shown in figure 4.1, GenieApp follows layered architecture where:
1. each layer has specific tasks and does not interfere with other layers’
tasks;
2. interactions between layers are via interfaces only;
3. modifications in any layer will not affect the other layers;
4. high modularity and low coupling between different components.
48