SlideShare une entreprise Scribd logo
1  sur  110
Télécharger pour lire hors ligne
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
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
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
Contents
Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . . . . . I
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II
Table of Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIII
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX
List of Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . X
1 Introduction 1
1.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Scope of Work . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Organization of the Report . . . . . . . . . . . . . . . . . . . 3
2 Cloud Computing and Related Work 4
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 What is Cloud Computing? . . . . . . . . . . . . . . . . . . . 4
2.2.1 Elasticity and scalability . . . . . . . . . . . . . . . . . 5
2.2.2 Self-service provisioning . . . . . . . . . . . . . . . . . 5
2.2.3 Application programming interfaces (APIs) . . . . . . 5
2.2.4 Billing and metering of services . . . . . . . . . . . . . 5
2.2.5 Performance monitoring and measuring . . . . . . . . 6
2.2.6 Security . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 History of Cloud Computing . . . . . . . . . . . . . . . . . . 6
2.3.1 Cloud Computing and the Web . . . . . . . . . . . . . 7
2.3.2 Evolution of Cloud Computing . . . . . . . . . . . . . 7
2.4 Services Delivered from the Cloud . . . . . . . . . . . . . . . 9
2.4.1 Communication-as-a-Service (CaaS) . . . . . . . . . . 9
2.4.2 Infrastructure-as-a-Service (IaaS) . . . . . . . . . . . . 9
2.4.3 Monitoring-as-a-Service (MaaS) . . . . . . . . . . . . . 10
2.4.4 Platform-as-a-Service (PaaS) . . . . . . . . . . . . . . 10
2.4.5 Software-as-a-Service (SaaS) . . . . . . . . . . . . . . 10
2.5 Deployment models . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5.1 Public Cloud . . . . . . . . . . . . . . . . . . . . . . . 11
2.5.2 Private Cloud . . . . . . . . . . . . . . . . . . . . . . . 11
III
CONTENTS
2.5.3 Community Cloud . . . . . . . . . . . . . . . . . . . . 13
2.5.4 Hybrid Cloud . . . . . . . . . . . . . . . . . . . . . . . 13
2.5.5 Combined cloud . . . . . . . . . . . . . . . . . . . . . 13
2.6 Virtualization . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.6.1 Hardware Virtualization . . . . . . . . . . . . . . . . . 14
2.6.2 Operating System Virtualization . . . . . . . . . . . . 14
2.6.3 Storage Virtualization . . . . . . . . . . . . . . . . . . 14
2.6.4 Lightweight Virtualization . . . . . . . . . . . . . . . . 14
2.7 Remote Desktop Access . . . . . . . . . . . . . . . . . . . . . 15
2.8 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.8.1 Team Viewer . . . . . . . . . . . . . . . . . . . . . . . 16
2.8.2 Chrome OS . . . . . . . . . . . . . . . . . . . . . . . . 17
2.8.3 Spoon . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.8.4 Converting Legacy Desktop Applications into On-Demand
Personalized Software . . . . . . . . . . . . . . . . . . 20
2.8.5 Citrix . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.8.6 Oracle Virtualization . . . . . . . . . . . . . . . . . . . 24
2.8.7 NoMachine NX . . . . . . . . . . . . . . . . . . . . . . 25
2.8.8 OnLive . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.8.9 IBM SoulPad . . . . . . . . . . . . . . . . . . . . . . . 27
2.8.10 Microsoft SoftGrid . . . . . . . . . . . . . . . . . . . . 28
2.9 Need To Extend Related Work . . . . . . . . . . . . . . . . . 29
2.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3 Introduction to GenieApp 32
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 What is GenieApp? . . . . . . . . . . . . . . . . . . . . . . . 32
3.3 GenieApp Features . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4 GenieApp Constraints . . . . . . . . . . . . . . . . . . . . . . 35
3.5 Comparison between GenieApp and Related Work . . . . . . 36
3.5.1 TeamViewer . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5.2 ChromeOS . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5.3 Spoon . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.5.4 OnLive . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5.5 Microsoft SoftGrid . . . . . . . . . . . . . . . . . . . . 41
3.5.6 Citrix XenApp and XenDesktop . . . . . . . . . . . . 42
3.5.7 Oracle VDI, SGD, and Sun Ray . . . . . . . . . . . . 43
3.5.8 NoMachine NX . . . . . . . . . . . . . . . . . . . . . . 44
3.5.9 IBM SoulPad . . . . . . . . . . . . . . . . . . . . . . . 45
3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
IV
CONTENTS
4 GenieApp Architecture and Design 48
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.1 Layers and Modules . . . . . . . . . . . . . . . . . . . 50
4.2.2 Cloud Infrastructure Interface . . . . . . . . . . . . . . 50
4.2.3 GenieApp Management . . . . . . . . . . . . . . . . . 50
4.2.4 Daemons . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2.5 User Interface Management . . . . . . . . . . . . . . . 52
4.3 Statechart Diagrams . . . . . . . . . . . . . . . . . . . . . . . 53
4.3.1 Application Statechart Diagram . . . . . . . . . . . . 53
4.3.2 Image Statechart Diagram . . . . . . . . . . . . . . . . 54
4.4 Activity Diagram . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.5 Abstract Design . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.5.1 Managers . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5 Development Process, Environment and Tools 59
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2 Setting up the Environment . . . . . . . . . . . . . . . . . . . 59
5.3 Software Engineering Processes Followed . . . . . . . . . . . . 60
5.4 Development Process . . . . . . . . . . . . . . . . . . . . . . . 60
5.4.1 Requirements specification . . . . . . . . . . . . . . . 60
5.4.2 Planning . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4.3 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4.4 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4.5 Implementation . . . . . . . . . . . . . . . . . . . . . . 61
5.4.6 Integration . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4.7 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.4.8 Deployment . . . . . . . . . . . . . . . . . . . . . . . . 62
5.5 Tools Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.5.1 Programming language . . . . . . . . . . . . . . . . . 62
5.5.2 Integrated Development Environments IDEs . . . . . . 62
5.5.3 Web Server . . . . . . . . . . . . . . . . . . . . . . . . 62
5.5.4 Remote Access Portocol . . . . . . . . . . . . . . . . . 62
5.5.5 Source Control . . . . . . . . . . . . . . . . . . . . . . 63
5.6 Hardware and Software Environments . . . . . . . . . . . . . 63
5.6.1 Hardware Environments . . . . . . . . . . . . . . . . . 63
5.6.2 Software Environment . . . . . . . . . . . . . . . . . . 63
5.7 Tools Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.7.1 Cloud technology . . . . . . . . . . . . . . . . . . . . . 64
5.7.2 Hypervisor . . . . . . . . . . . . . . . . . . . . . . . . 64
5.7.3 Cloud API . . . . . . . . . . . . . . . . . . . . . . . . 64
5.7.4 GenieApp API . . . . . . . . . . . . . . . . . . . . . . 65
5.8 Tools Comparison . . . . . . . . . . . . . . . . . . . . . . . . 65
V
CONTENTS
5.8.1 Cloud technology . . . . . . . . . . . . . . . . . . . . . 65
5.8.2 Hypervisor . . . . . . . . . . . . . . . . . . . . . . . . 66
5.8.3 Cloud API . . . . . . . . . . . . . . . . . . . . . . . . 68
5.8.4 Remote Access Tools . . . . . . . . . . . . . . . . . . . 68
5.8.5 Monitoring Tools . . . . . . . . . . . . . . . . . . . . . 71
5.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6 Implementation Details 73
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.2 Infrastructure Layer . . . . . . . . . . . . . . . . . . . . . . . 73
6.2.1 Cloud technology . . . . . . . . . . . . . . . . . . . . . 73
6.3 Hypervisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.4 Cloud API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.4.1 Dependencies for using Typica . . . . . . . . . . . . . 76
6.5 GenieApp API . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.6 Web Application . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.6.1 Why it is web application? . . . . . . . . . . . . . . . 77
6.6.2 Why we use database? . . . . . . . . . . . . . . . . . . 77
6.6.3 Web Development Alternatives . . . . . . . . . . . . . 78
6.6.4 Java Frameworks used . . . . . . . . . . . . . . . . . . 78
6.7 Daemons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.7.1 Requirements and Tasks . . . . . . . . . . . . . . . . . 81
6.7.2 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.7.3 How it works . . . . . . . . . . . . . . . . . . . . . . . 82
6.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
7 Conclusion and Future Work 85
7.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
7.2.1 Future work related to performance improvement: . . 86
7.2.2 Future work related to GenieApp features: . . . . . . . 86
References 91
Appendices 92
Appendix A GenieApp Use Cases 93
VI
List of Figures
2.1 private cloud hosted and managed by the enterprise . . . . . 12
2.2 private cloud hosted by enterprise, managed by cloud manager 12
2.3 private cloud hosted and managed by cloud manager . . . . . 13
2.4 Examples Of XenDesktop Users Devices . . . . . . . . . . . . 21
2.5 Application Virtualization Technology . . . . . . . . . . . . . 23
2.6 Session Virtualization Technology . . . . . . . . . . . . . . . . 24
3.1 System Overview . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1 GenieApp Architecture . . . . . . . . . . . . . . . . . . . . . . 49
4.2 Cloud Infrastructure API Layer . . . . . . . . . . . . . . . . . 50
4.3 GenieApp Management Layer . . . . . . . . . . . . . . . . . . 52
4.4 GenieApp Daemons . . . . . . . . . . . . . . . . . . . . . . . 52
4.5 GenieApp User Interface Management Layer . . . . . . . . . 53
4.6 Applications Statechart Diagram . . . . . . . . . . . . . . . . 54
4.7 Images Statechart Diagram . . . . . . . . . . . . . . . . . . . 54
4.8 Activity Diagram . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.9 Abstract Design . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.1 Start Instance Message . . . . . . . . . . . . . . . . . . . . . . 82
6.2 Instance Started Message . . . . . . . . . . . . . . . . . . . . 82
6.3 Instance Resources Message . . . . . . . . . . . . . . . . . . . 83
6.4 Open Application Message . . . . . . . . . . . . . . . . . . . . 83
6.5 Application Started Message . . . . . . . . . . . . . . . . . . 83
6.6 Application Resources Message . . . . . . . . . . . . . . . . . 84
A.1 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
A.2 Registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
A.3 Operating systems mode configuration . . . . . . . . . . . . . 94
A.4 Configuring user plan . . . . . . . . . . . . . . . . . . . . . . 94
A.5 Opening an application . . . . . . . . . . . . . . . . . . . . . 95
A.6 Using file explorer . . . . . . . . . . . . . . . . . . . . . . . . 95
A.7 Adding applications from AppStore . . . . . . . . . . . . . . . 96
A.8 Uploading applications . . . . . . . . . . . . . . . . . . . . . . 96
VII
LIST OF FIGURES
A.9 Billing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
A.10 Application store management . . . . . . . . . . . . . . . . . 97
A.11 System configuration . . . . . . . . . . . . . . . . . . . . . . . 98
A.12 Logout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
VIII
List of Tables
2.1 Related Work Summary . . . . . . . . . . . . . . . . . . . . . 30
3.1 GenieApp vs. TeamViewer . . . . . . . . . . . . . . . . . . . 37
3.2 GenieApp vs. ChromeOS . . . . . . . . . . . . . . . . . . . . 38
3.3 GenieApp vs. Spoon . . . . . . . . . . . . . . . . . . . . . . . 39
3.4 GenieApp vs. OnLive . . . . . . . . . . . . . . . . . . . . . . 40
3.5 GenieApp vs. Microsoft SoftGrid . . . . . . . . . . . . . . . . 41
3.6 GenieApp vs. Citrix XenApp and XenDesktop . . . . . . . . 42
3.7 GenieApp vs. Oracle VDI, SGD, and Sun Ray . . . . . . . . 43
3.8 GenieApp vs. NoMachine NX . . . . . . . . . . . . . . . . . . 44
3.9 GenieApp vs. IBM SoulPad . . . . . . . . . . . . . . . . . . . 45
3.10 Related Work Summary . . . . . . . . . . . . . . . . . . . . . 47
5.1 Hardware Specification for Cluster Controller . . . . . . . . . 63
5.2 Hardware Specification for Node Controller . . . . . . . . . . 63
5.3 Software Environment . . . . . . . . . . . . . . . . . . . . . . 64
5.4 Comparison between IaaS alternatives . . . . . . . . . . . . . 65
5.5 Comparison between hypervisor alternatives . . . . . . . . . . 66
5.7 Comparison between remote access protocols alternatives . . 69
5.6 Comparison between Cloud API Alternatives . . . . . . . . . 70
6.1 KVM Hardware Specifications . . . . . . . . . . . . . . . . . . 76
IX
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
4.2. ARCHITECTURE
Figure 4.1: GenieApp Architecture
49
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments
Report-V1.5_with_comments

Contenu connexe

Tendances

Ibm tivoli monitoring v5.1.1 implementation certification study guide sg246780
Ibm tivoli monitoring v5.1.1 implementation certification study guide sg246780Ibm tivoli monitoring v5.1.1 implementation certification study guide sg246780
Ibm tivoli monitoring v5.1.1 implementation certification study guide sg246780Banking at Ho Chi Minh city
 
Team Omni L2 Requirements Revised
Team Omni L2 Requirements RevisedTeam Omni L2 Requirements Revised
Team Omni L2 Requirements RevisedAndrew Daws
 
Design and implementation of a Virtual Reality application for Computational ...
Design and implementation of a Virtual Reality application for Computational ...Design and implementation of a Virtual Reality application for Computational ...
Design and implementation of a Virtual Reality application for Computational ...Lorenzo D'Eri
 
MetaFabric™ Architecture Virtualized Data Center: Design and Implementation G...
MetaFabric™ Architecture Virtualized Data Center: Design and Implementation G...MetaFabric™ Architecture Virtualized Data Center: Design and Implementation G...
MetaFabric™ Architecture Virtualized Data Center: Design and Implementation G...Juniper Networks
 
Open edX Building and Running a Course
Open edX Building and Running a CourseOpen edX Building and Running a Course
Open edX Building and Running a CourseAmish Gandhi
 
Automatic Detection of Performance Design and Deployment Antipatterns in Comp...
Automatic Detection of Performance Design and Deployment Antipatterns in Comp...Automatic Detection of Performance Design and Deployment Antipatterns in Comp...
Automatic Detection of Performance Design and Deployment Antipatterns in Comp...Trevor Parsons
 
Enabling mobile apps with ibm worklight application center red
Enabling mobile apps with ibm worklight application center redEnabling mobile apps with ibm worklight application center red
Enabling mobile apps with ibm worklight application center redbupbechanhgmail
 
Thesis - Nora Szepes - Design and Implementation of an Educational Support Sy...
Thesis - Nora Szepes - Design and Implementation of an Educational Support Sy...Thesis - Nora Szepes - Design and Implementation of an Educational Support Sy...
Thesis - Nora Szepes - Design and Implementation of an Educational Support Sy...Nóra Szepes
 
Nvidia CUDA Programming Guide 1.0
Nvidia CUDA Programming Guide 1.0Nvidia CUDA Programming Guide 1.0
Nvidia CUDA Programming Guide 1.0Muhaza Liebenlito
 
BOOK - IBM Implementing ibm system directory 6.1
BOOK - IBM Implementing ibm system directory 6.1BOOK - IBM Implementing ibm system directory 6.1
BOOK - IBM Implementing ibm system directory 6.1Satya Harish
 
Open erp openobject-developer
Open erp openobject-developerOpen erp openobject-developer
Open erp openobject-developeropenerpwiki
 
Guia de usuario arena
Guia de usuario arenaGuia de usuario arena
Guia de usuario arenaSadamii Rap
 
Certification guide series ibm tivoli provisioning manager v5.1 sg247262
Certification guide series ibm tivoli provisioning manager v5.1 sg247262Certification guide series ibm tivoli provisioning manager v5.1 sg247262
Certification guide series ibm tivoli provisioning manager v5.1 sg247262Banking at Ho Chi Minh city
 
276.14 nvidia-control-panel-quick-start-guide
276.14 nvidia-control-panel-quick-start-guide276.14 nvidia-control-panel-quick-start-guide
276.14 nvidia-control-panel-quick-start-guideMassimo Rubboli
 
Maven definitive guide
Maven definitive guideMaven definitive guide
Maven definitive guidevirusworm
 
ZebraNet Bridge Enterprise - Manual do Software
ZebraNet Bridge Enterprise - Manual do SoftwareZebraNet Bridge Enterprise - Manual do Software
ZebraNet Bridge Enterprise - Manual do SoftwareUseZ
 

Tendances (20)

Ibm tivoli monitoring v5.1.1 implementation certification study guide sg246780
Ibm tivoli monitoring v5.1.1 implementation certification study guide sg246780Ibm tivoli monitoring v5.1.1 implementation certification study guide sg246780
Ibm tivoli monitoring v5.1.1 implementation certification study guide sg246780
 
BA1_Breitenfellner_RC4
BA1_Breitenfellner_RC4BA1_Breitenfellner_RC4
BA1_Breitenfellner_RC4
 
Team Omni L2 Requirements Revised
Team Omni L2 Requirements RevisedTeam Omni L2 Requirements Revised
Team Omni L2 Requirements Revised
 
document
documentdocument
document
 
Design and implementation of a Virtual Reality application for Computational ...
Design and implementation of a Virtual Reality application for Computational ...Design and implementation of a Virtual Reality application for Computational ...
Design and implementation of a Virtual Reality application for Computational ...
 
MetaFabric™ Architecture Virtualized Data Center: Design and Implementation G...
MetaFabric™ Architecture Virtualized Data Center: Design and Implementation G...MetaFabric™ Architecture Virtualized Data Center: Design and Implementation G...
MetaFabric™ Architecture Virtualized Data Center: Design and Implementation G...
 
Open edX Building and Running a Course
Open edX Building and Running a CourseOpen edX Building and Running a Course
Open edX Building and Running a Course
 
Automatic Detection of Performance Design and Deployment Antipatterns in Comp...
Automatic Detection of Performance Design and Deployment Antipatterns in Comp...Automatic Detection of Performance Design and Deployment Antipatterns in Comp...
Automatic Detection of Performance Design and Deployment Antipatterns in Comp...
 
Enabling mobile apps with ibm worklight application center red
Enabling mobile apps with ibm worklight application center redEnabling mobile apps with ibm worklight application center red
Enabling mobile apps with ibm worklight application center red
 
Thesis - Nora Szepes - Design and Implementation of an Educational Support Sy...
Thesis - Nora Szepes - Design and Implementation of an Educational Support Sy...Thesis - Nora Szepes - Design and Implementation of an Educational Support Sy...
Thesis - Nora Szepes - Design and Implementation of an Educational Support Sy...
 
Nvidia CUDA Programming Guide 1.0
Nvidia CUDA Programming Guide 1.0Nvidia CUDA Programming Guide 1.0
Nvidia CUDA Programming Guide 1.0
 
Fraser_William
Fraser_WilliamFraser_William
Fraser_William
 
BOOK - IBM Implementing ibm system directory 6.1
BOOK - IBM Implementing ibm system directory 6.1BOOK - IBM Implementing ibm system directory 6.1
BOOK - IBM Implementing ibm system directory 6.1
 
Open erp openobject-developer
Open erp openobject-developerOpen erp openobject-developer
Open erp openobject-developer
 
Guia de usuario arena
Guia de usuario arenaGuia de usuario arena
Guia de usuario arena
 
Certification guide series ibm tivoli provisioning manager v5.1 sg247262
Certification guide series ibm tivoli provisioning manager v5.1 sg247262Certification guide series ibm tivoli provisioning manager v5.1 sg247262
Certification guide series ibm tivoli provisioning manager v5.1 sg247262
 
276.14 nvidia-control-panel-quick-start-guide
276.14 nvidia-control-panel-quick-start-guide276.14 nvidia-control-panel-quick-start-guide
276.14 nvidia-control-panel-quick-start-guide
 
Maven definitive guide
Maven definitive guideMaven definitive guide
Maven definitive guide
 
Book hudson
Book hudsonBook hudson
Book hudson
 
ZebraNet Bridge Enterprise - Manual do Software
ZebraNet Bridge Enterprise - Manual do SoftwareZebraNet Bridge Enterprise - Manual do Software
ZebraNet Bridge Enterprise - Manual do Software
 

Similaire à Report-V1.5_with_comments

Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)Priyanka Kapoor
 
Work Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel BelaskerWork Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel BelaskerAdel Belasker
 
eclipse.pdf
eclipse.pdfeclipse.pdf
eclipse.pdfPerPerso
 
Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Banking at Ho Chi Minh city
 
Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Banking at Ho Chi Minh city
 
Ibm system z in a mobile world providing secure and timely mobile access to...
Ibm system z in a mobile world   providing secure and timely mobile access to...Ibm system z in a mobile world   providing secure and timely mobile access to...
Ibm system z in a mobile world providing secure and timely mobile access to...bupbechanhgmail
 
Distributed Mobile Graphics
Distributed Mobile GraphicsDistributed Mobile Graphics
Distributed Mobile GraphicsJiri Danihelka
 
Deployment guide series ibm total storage productivity center for data sg247140
Deployment guide series ibm total storage productivity center for data sg247140Deployment guide series ibm total storage productivity center for data sg247140
Deployment guide series ibm total storage productivity center for data sg247140Banking at Ho Chi Minh city
 
DBMS_Lab_Manual_&_Solution
DBMS_Lab_Manual_&_SolutionDBMS_Lab_Manual_&_Solution
DBMS_Lab_Manual_&_SolutionSyed Zaid Irshad
 
Solution deployment guide for ibm tivoli composite application manager for we...
Solution deployment guide for ibm tivoli composite application manager for we...Solution deployment guide for ibm tivoli composite application manager for we...
Solution deployment guide for ibm tivoli composite application manager for we...Banking at Ho Chi Minh city
 
Certification guide series ibm tivoli usage and accounting manager v7.1 imple...
Certification guide series ibm tivoli usage and accounting manager v7.1 imple...Certification guide series ibm tivoli usage and accounting manager v7.1 imple...
Certification guide series ibm tivoli usage and accounting manager v7.1 imple...Banking at Ho Chi Minh city
 
Aidan_O_Mahony_Project_Report
Aidan_O_Mahony_Project_ReportAidan_O_Mahony_Project_Report
Aidan_O_Mahony_Project_ReportAidan O Mahony
 
Ibm mobile first strategy software approach
Ibm mobile first strategy software approachIbm mobile first strategy software approach
Ibm mobile first strategy software approachbupbechanhgmail
 
Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...
Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...
Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...Banking at Ho Chi Minh city
 
Introducing tivoli personalized services manager 1.1 sg246031
Introducing tivoli personalized services manager 1.1 sg246031Introducing tivoli personalized services manager 1.1 sg246031
Introducing tivoli personalized services manager 1.1 sg246031Banking at Ho Chi Minh city
 
AUGUMENTED REALITY FOR SPACE.pdf
AUGUMENTED REALITY FOR SPACE.pdfAUGUMENTED REALITY FOR SPACE.pdf
AUGUMENTED REALITY FOR SPACE.pdfjeevanbasnyat1
 
Migrating to netcool precision for ip networks --best practices for migrating...
Migrating to netcool precision for ip networks --best practices for migrating...Migrating to netcool precision for ip networks --best practices for migrating...
Migrating to netcool precision for ip networks --best practices for migrating...Banking at Ho Chi Minh city
 

Similaire à Report-V1.5_with_comments (20)

Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)
 
Work Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel BelaskerWork Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel Belasker
 
eclipse.pdf
eclipse.pdfeclipse.pdf
eclipse.pdf
 
Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...
 
Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...
 
Thesis_Report
Thesis_ReportThesis_Report
Thesis_Report
 
Ibm system z in a mobile world providing secure and timely mobile access to...
Ibm system z in a mobile world   providing secure and timely mobile access to...Ibm system z in a mobile world   providing secure and timely mobile access to...
Ibm system z in a mobile world providing secure and timely mobile access to...
 
Distributed Mobile Graphics
Distributed Mobile GraphicsDistributed Mobile Graphics
Distributed Mobile Graphics
 
Deployment guide series ibm total storage productivity center for data sg247140
Deployment guide series ibm total storage productivity center for data sg247140Deployment guide series ibm total storage productivity center for data sg247140
Deployment guide series ibm total storage productivity center for data sg247140
 
DBMS_Lab_Manual_&_Solution
DBMS_Lab_Manual_&_SolutionDBMS_Lab_Manual_&_Solution
DBMS_Lab_Manual_&_Solution
 
Solution deployment guide for ibm tivoli composite application manager for we...
Solution deployment guide for ibm tivoli composite application manager for we...Solution deployment guide for ibm tivoli composite application manager for we...
Solution deployment guide for ibm tivoli composite application manager for we...
 
Certification guide series ibm tivoli usage and accounting manager v7.1 imple...
Certification guide series ibm tivoli usage and accounting manager v7.1 imple...Certification guide series ibm tivoli usage and accounting manager v7.1 imple...
Certification guide series ibm tivoli usage and accounting manager v7.1 imple...
 
Srs
SrsSrs
Srs
 
Aidan_O_Mahony_Project_Report
Aidan_O_Mahony_Project_ReportAidan_O_Mahony_Project_Report
Aidan_O_Mahony_Project_Report
 
Ibm mobile first strategy software approach
Ibm mobile first strategy software approachIbm mobile first strategy software approach
Ibm mobile first strategy software approach
 
My PhD Thesis
My PhD Thesis My PhD Thesis
My PhD Thesis
 
Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...
Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...
Ibm tivoli intelligent think dynamic orchestrator pre proof of-concept cookbo...
 
Introducing tivoli personalized services manager 1.1 sg246031
Introducing tivoli personalized services manager 1.1 sg246031Introducing tivoli personalized services manager 1.1 sg246031
Introducing tivoli personalized services manager 1.1 sg246031
 
AUGUMENTED REALITY FOR SPACE.pdf
AUGUMENTED REALITY FOR SPACE.pdfAUGUMENTED REALITY FOR SPACE.pdf
AUGUMENTED REALITY FOR SPACE.pdf
 
Migrating to netcool precision for ip networks --best practices for migrating...
Migrating to netcool precision for ip networks --best practices for migrating...Migrating to netcool precision for ip networks --best practices for migrating...
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
  • 4. Contents Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . . . . . I Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II Table of Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIII List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX List of Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . X 1 Introduction 1 1.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 Scope of Work . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Organization of the Report . . . . . . . . . . . . . . . . . . . 3 2 Cloud Computing and Related Work 4 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 What is Cloud Computing? . . . . . . . . . . . . . . . . . . . 4 2.2.1 Elasticity and scalability . . . . . . . . . . . . . . . . . 5 2.2.2 Self-service provisioning . . . . . . . . . . . . . . . . . 5 2.2.3 Application programming interfaces (APIs) . . . . . . 5 2.2.4 Billing and metering of services . . . . . . . . . . . . . 5 2.2.5 Performance monitoring and measuring . . . . . . . . 6 2.2.6 Security . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 History of Cloud Computing . . . . . . . . . . . . . . . . . . 6 2.3.1 Cloud Computing and the Web . . . . . . . . . . . . . 7 2.3.2 Evolution of Cloud Computing . . . . . . . . . . . . . 7 2.4 Services Delivered from the Cloud . . . . . . . . . . . . . . . 9 2.4.1 Communication-as-a-Service (CaaS) . . . . . . . . . . 9 2.4.2 Infrastructure-as-a-Service (IaaS) . . . . . . . . . . . . 9 2.4.3 Monitoring-as-a-Service (MaaS) . . . . . . . . . . . . . 10 2.4.4 Platform-as-a-Service (PaaS) . . . . . . . . . . . . . . 10 2.4.5 Software-as-a-Service (SaaS) . . . . . . . . . . . . . . 10 2.5 Deployment models . . . . . . . . . . . . . . . . . . . . . . . . 11 2.5.1 Public Cloud . . . . . . . . . . . . . . . . . . . . . . . 11 2.5.2 Private Cloud . . . . . . . . . . . . . . . . . . . . . . . 11 III
  • 5. CONTENTS 2.5.3 Community Cloud . . . . . . . . . . . . . . . . . . . . 13 2.5.4 Hybrid Cloud . . . . . . . . . . . . . . . . . . . . . . . 13 2.5.5 Combined cloud . . . . . . . . . . . . . . . . . . . . . 13 2.6 Virtualization . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.6.1 Hardware Virtualization . . . . . . . . . . . . . . . . . 14 2.6.2 Operating System Virtualization . . . . . . . . . . . . 14 2.6.3 Storage Virtualization . . . . . . . . . . . . . . . . . . 14 2.6.4 Lightweight Virtualization . . . . . . . . . . . . . . . . 14 2.7 Remote Desktop Access . . . . . . . . . . . . . . . . . . . . . 15 2.8 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.8.1 Team Viewer . . . . . . . . . . . . . . . . . . . . . . . 16 2.8.2 Chrome OS . . . . . . . . . . . . . . . . . . . . . . . . 17 2.8.3 Spoon . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.8.4 Converting Legacy Desktop Applications into On-Demand Personalized Software . . . . . . . . . . . . . . . . . . 20 2.8.5 Citrix . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.8.6 Oracle Virtualization . . . . . . . . . . . . . . . . . . . 24 2.8.7 NoMachine NX . . . . . . . . . . . . . . . . . . . . . . 25 2.8.8 OnLive . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.8.9 IBM SoulPad . . . . . . . . . . . . . . . . . . . . . . . 27 2.8.10 Microsoft SoftGrid . . . . . . . . . . . . . . . . . . . . 28 2.9 Need To Extend Related Work . . . . . . . . . . . . . . . . . 29 2.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3 Introduction to GenieApp 32 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.2 What is GenieApp? . . . . . . . . . . . . . . . . . . . . . . . 32 3.3 GenieApp Features . . . . . . . . . . . . . . . . . . . . . . . . 33 3.4 GenieApp Constraints . . . . . . . . . . . . . . . . . . . . . . 35 3.5 Comparison between GenieApp and Related Work . . . . . . 36 3.5.1 TeamViewer . . . . . . . . . . . . . . . . . . . . . . . . 36 3.5.2 ChromeOS . . . . . . . . . . . . . . . . . . . . . . . . 37 3.5.3 Spoon . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.5.4 OnLive . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.5.5 Microsoft SoftGrid . . . . . . . . . . . . . . . . . . . . 41 3.5.6 Citrix XenApp and XenDesktop . . . . . . . . . . . . 42 3.5.7 Oracle VDI, SGD, and Sun Ray . . . . . . . . . . . . 43 3.5.8 NoMachine NX . . . . . . . . . . . . . . . . . . . . . . 44 3.5.9 IBM SoulPad . . . . . . . . . . . . . . . . . . . . . . . 45 3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 IV
  • 6. CONTENTS 4 GenieApp Architecture and Design 48 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.2.1 Layers and Modules . . . . . . . . . . . . . . . . . . . 50 4.2.2 Cloud Infrastructure Interface . . . . . . . . . . . . . . 50 4.2.3 GenieApp Management . . . . . . . . . . . . . . . . . 50 4.2.4 Daemons . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.2.5 User Interface Management . . . . . . . . . . . . . . . 52 4.3 Statechart Diagrams . . . . . . . . . . . . . . . . . . . . . . . 53 4.3.1 Application Statechart Diagram . . . . . . . . . . . . 53 4.3.2 Image Statechart Diagram . . . . . . . . . . . . . . . . 54 4.4 Activity Diagram . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.5 Abstract Design . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.5.1 Managers . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5 Development Process, Environment and Tools 59 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.2 Setting up the Environment . . . . . . . . . . . . . . . . . . . 59 5.3 Software Engineering Processes Followed . . . . . . . . . . . . 60 5.4 Development Process . . . . . . . . . . . . . . . . . . . . . . . 60 5.4.1 Requirements specification . . . . . . . . . . . . . . . 60 5.4.2 Planning . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.4.3 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.4.4 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.4.5 Implementation . . . . . . . . . . . . . . . . . . . . . . 61 5.4.6 Integration . . . . . . . . . . . . . . . . . . . . . . . . 61 5.4.7 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.4.8 Deployment . . . . . . . . . . . . . . . . . . . . . . . . 62 5.5 Tools Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.5.1 Programming language . . . . . . . . . . . . . . . . . 62 5.5.2 Integrated Development Environments IDEs . . . . . . 62 5.5.3 Web Server . . . . . . . . . . . . . . . . . . . . . . . . 62 5.5.4 Remote Access Portocol . . . . . . . . . . . . . . . . . 62 5.5.5 Source Control . . . . . . . . . . . . . . . . . . . . . . 63 5.6 Hardware and Software Environments . . . . . . . . . . . . . 63 5.6.1 Hardware Environments . . . . . . . . . . . . . . . . . 63 5.6.2 Software Environment . . . . . . . . . . . . . . . . . . 63 5.7 Tools Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.7.1 Cloud technology . . . . . . . . . . . . . . . . . . . . . 64 5.7.2 Hypervisor . . . . . . . . . . . . . . . . . . . . . . . . 64 5.7.3 Cloud API . . . . . . . . . . . . . . . . . . . . . . . . 64 5.7.4 GenieApp API . . . . . . . . . . . . . . . . . . . . . . 65 5.8 Tools Comparison . . . . . . . . . . . . . . . . . . . . . . . . 65 V
  • 7. CONTENTS 5.8.1 Cloud technology . . . . . . . . . . . . . . . . . . . . . 65 5.8.2 Hypervisor . . . . . . . . . . . . . . . . . . . . . . . . 66 5.8.3 Cloud API . . . . . . . . . . . . . . . . . . . . . . . . 68 5.8.4 Remote Access Tools . . . . . . . . . . . . . . . . . . . 68 5.8.5 Monitoring Tools . . . . . . . . . . . . . . . . . . . . . 71 5.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6 Implementation Details 73 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 6.2 Infrastructure Layer . . . . . . . . . . . . . . . . . . . . . . . 73 6.2.1 Cloud technology . . . . . . . . . . . . . . . . . . . . . 73 6.3 Hypervisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.4 Cloud API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.4.1 Dependencies for using Typica . . . . . . . . . . . . . 76 6.5 GenieApp API . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.6 Web Application . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.6.1 Why it is web application? . . . . . . . . . . . . . . . 77 6.6.2 Why we use database? . . . . . . . . . . . . . . . . . . 77 6.6.3 Web Development Alternatives . . . . . . . . . . . . . 78 6.6.4 Java Frameworks used . . . . . . . . . . . . . . . . . . 78 6.7 Daemons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.7.1 Requirements and Tasks . . . . . . . . . . . . . . . . . 81 6.7.2 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.7.3 How it works . . . . . . . . . . . . . . . . . . . . . . . 82 6.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 7 Conclusion and Future Work 85 7.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 7.2.1 Future work related to performance improvement: . . 86 7.2.2 Future work related to GenieApp features: . . . . . . . 86 References 91 Appendices 92 Appendix A GenieApp Use Cases 93 VI
  • 8. List of Figures 2.1 private cloud hosted and managed by the enterprise . . . . . 12 2.2 private cloud hosted by enterprise, managed by cloud manager 12 2.3 private cloud hosted and managed by cloud manager . . . . . 13 2.4 Examples Of XenDesktop Users Devices . . . . . . . . . . . . 21 2.5 Application Virtualization Technology . . . . . . . . . . . . . 23 2.6 Session Virtualization Technology . . . . . . . . . . . . . . . . 24 3.1 System Overview . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1 GenieApp Architecture . . . . . . . . . . . . . . . . . . . . . . 49 4.2 Cloud Infrastructure API Layer . . . . . . . . . . . . . . . . . 50 4.3 GenieApp Management Layer . . . . . . . . . . . . . . . . . . 52 4.4 GenieApp Daemons . . . . . . . . . . . . . . . . . . . . . . . 52 4.5 GenieApp User Interface Management Layer . . . . . . . . . 53 4.6 Applications Statechart Diagram . . . . . . . . . . . . . . . . 54 4.7 Images Statechart Diagram . . . . . . . . . . . . . . . . . . . 54 4.8 Activity Diagram . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.9 Abstract Design . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.1 Start Instance Message . . . . . . . . . . . . . . . . . . . . . . 82 6.2 Instance Started Message . . . . . . . . . . . . . . . . . . . . 82 6.3 Instance Resources Message . . . . . . . . . . . . . . . . . . . 83 6.4 Open Application Message . . . . . . . . . . . . . . . . . . . . 83 6.5 Application Started Message . . . . . . . . . . . . . . . . . . 83 6.6 Application Resources Message . . . . . . . . . . . . . . . . . 84 A.1 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 A.2 Registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 A.3 Operating systems mode configuration . . . . . . . . . . . . . 94 A.4 Configuring user plan . . . . . . . . . . . . . . . . . . . . . . 94 A.5 Opening an application . . . . . . . . . . . . . . . . . . . . . 95 A.6 Using file explorer . . . . . . . . . . . . . . . . . . . . . . . . 95 A.7 Adding applications from AppStore . . . . . . . . . . . . . . . 96 A.8 Uploading applications . . . . . . . . . . . . . . . . . . . . . . 96 VII
  • 9. LIST OF FIGURES A.9 Billing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 A.10 Application store management . . . . . . . . . . . . . . . . . 97 A.11 System configuration . . . . . . . . . . . . . . . . . . . . . . . 98 A.12 Logout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 VIII
  • 10. List of Tables 2.1 Related Work Summary . . . . . . . . . . . . . . . . . . . . . 30 3.1 GenieApp vs. TeamViewer . . . . . . . . . . . . . . . . . . . 37 3.2 GenieApp vs. ChromeOS . . . . . . . . . . . . . . . . . . . . 38 3.3 GenieApp vs. Spoon . . . . . . . . . . . . . . . . . . . . . . . 39 3.4 GenieApp vs. OnLive . . . . . . . . . . . . . . . . . . . . . . 40 3.5 GenieApp vs. Microsoft SoftGrid . . . . . . . . . . . . . . . . 41 3.6 GenieApp vs. Citrix XenApp and XenDesktop . . . . . . . . 42 3.7 GenieApp vs. Oracle VDI, SGD, and Sun Ray . . . . . . . . 43 3.8 GenieApp vs. NoMachine NX . . . . . . . . . . . . . . . . . . 44 3.9 GenieApp vs. IBM SoulPad . . . . . . . . . . . . . . . . . . . 45 3.10 Related Work Summary . . . . . . . . . . . . . . . . . . . . . 47 5.1 Hardware Specification for Cluster Controller . . . . . . . . . 63 5.2 Hardware Specification for Node Controller . . . . . . . . . . 63 5.3 Software Environment . . . . . . . . . . . . . . . . . . . . . . 64 5.4 Comparison between IaaS alternatives . . . . . . . . . . . . . 65 5.5 Comparison between hypervisor alternatives . . . . . . . . . . 66 5.7 Comparison between remote access protocols alternatives . . 69 5.6 Comparison between Cloud API Alternatives . . . . . . . . . 70 6.1 KVM Hardware Specifications . . . . . . . . . . . . . . . . . . 76 IX
  • 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
  • 61. 4.2. ARCHITECTURE Figure 4.1: GenieApp Architecture 49