View/Open - Channel Islands

bolivialodgeInternet και Εφαρμογές Web

14 Δεκ 2013 (πριν από 3 χρόνια και 8 μήνες)

882 εμφανίσεις

Cloud Suite
Ad Hoc Laboratories Using Cloud Resources
A Thesis Presented to
The Faculty of the Computer Science Program
California State University Channel Islands
In (Partial) Fulfillment
of the Requirements for the Degree
Masters of Science in Computer Science
by
Drew Alex Clinkenbeard
March 2013
2
copyright 2012, 2013
Drew Alex Clinkenbeard
ALL RIGHTS RESERVED
All images and code generated by author unless otherwise indicated
3
APPROVED FOR THE COMPUTER SCIENCE PROGRAM
Advisor: Doctor Andrzej Bieszczad
Date 4/29/2013
Doctor Peter Smith
Date 4/29/2013
Doctor Michael Berman
Date 4/29/2013
APPROVED FOR THE UNIVERSITY
Doctor Gary A. Berg
Date 4/29/2013
Non hyphen Exclusive Distribution License
In order for California State University Channel Islands (C S U C I) to reproduce, translate and
distribute your submission worldwide through the C S U C I Institutional Repository, your agreement to
the following terms is necessary. The aut hors retain any copyright currently on the item as well as
the ability to submit the item to publishers or other repositories.
By signing and submitting this license, you (the author(s) or copyright owner) grants to C S U C I the
nonexclusive right to reproduce, translate (as defined below), and forward slash or distribute your submission
(including the abstract) worldwide in print and electronic format and in any medium, including but not
limited to audio or video.
You agree that C S U C I may, without changing the content, translate the submission to any medium
or format for the purpose of preservation.
You also agree that C S U C I may keep more than one copy of this submission for purposes of
security, backup and preservation.
You represent that the submission is your original work, and that you have the right to grant the
rights contained in this license. You also represent that your submission does not, to the best of
your knowledge, infringe upon anyone single quote s copyright. You also represent and warrant that the
submission contains no libelous or other unlawful matter and makes no improper invasion of the
privacy of any other person.
If the submission contains material for which you do not hold copyright, you represent that you have
obtained the unrestricted permission of the copyright owner to grant C S U C I the rights required by
this license, and that such third party owned material is clearly identified and acknowledged within
the text or content of the submission. You take full responsibility to obtain permission to use any
material that is not your own. This permission must be granted to you before you sign this form.
IF THE SUBMISSION IS BASED UPON WORK THAT HAS BEEN SPONSORED OR SUPPORTED
BY AN AGENCY OR ORGANIZATION OTHER THAN C S U C I, YOU REPRESENT THAT YOU
HAVE FULFILLED ANY RIGHT OF REVIEW OR OTHER OBLIGATIONS REQUIRED BY SUCH
CONTRACT OR AGREEMENT.
The C S U C I Institutional Repository will clearly identify your names as the aut hors or owners of
the submission, and will not make any alteration, other than as allowed by this license, to your
submission.
Title of Item: Cloud Suite, Ad Hoc Laboratories Using Cloud Resources
3 t o 5 keywor ds or p h r a s e s t o des cr i be t he item: Masters Thesis, Cloud Computing, Virtualization, Scientific Computing
Authors Name (Print): Drew A. Clinkenbeard
Authors Signature
Dat e April 30, 2013
This is a permitted, modified version of the Non hyphen exclusive Distribution
License from M I T Libraries and the University of Kansas.
4
Cloud Suite : Ad Hoc Laboratories Using Cloud Resources
by
Drew Alex Clinkenbeard
Computer Science Program
California State University Channel Islands
Abstract
Cloud Suite presents a proof of concept for cloud based ad hoc virtual laboratories.
Using Amazon Web Services and a persistent web server, Cloud Suite allows students and
instructors to explore ideas in computer science. Cloud Suite provides a web based
interface to configure labs consisting of advanced algorithms and, using an Amazon
Elastic Cloud Compute instance, execute those labs. The results of the execution are then
made available for analysis. This thesis discusses the technology necessary for
implementing this system as well as providing the code necessary to demonstrate the
feasibility of such a system. Finally this thesis also presents a roadmap for future
development of Cloud Suite.
5
Acknowledgements
I would like to thank Doctor Andrzej Bieszczad for his patience, guidance, and
encouragement on the long journey towards the completion of this project. My meetings
with Doctor Bieszczad helped keep me sane and on task.
I would not have been able to complete this project without the support of my wife.
The hard work she put in on her own thesis inspired me to keep working, her
encouragement kept me writing, and her proof reading made it all presentable. Thank you
Jenny!
I would also like to thank my family, my in hyphen laws, and my single quote Camarillo family single quote whose
support, encouragement, and home cooked meals sustained me throughout.
Finally I have to thank Shure, Thomas Leeb, and Daft Punk. Without headphones
and music this never would have happened.
6
TABLE OF CONTENT
1.
INTRODUCTION
9
USE CASES
9
UNDERGRADUATE STUDENTS
9
UPPER DIVISION OR GRADUATE STUDENTS
10
PROFESSORS
10
FUNCTIONAL REQUIREMENTS
10
CREATING LABS
10
SAVING LABS
10
LOADING LABS
11
DISTRIBUTING LABS
11
MODIFYING LABS
11
CONFIGURING MODULES
12
RUNNING A LAB
12
REMAINING CHAPTERS
13
KEY TERMS
14
2.
FIELD OVERVIEW
16
WHAT IS CLOUD COMPUTING
16
HISTORY OF CLOUD COMPUTING
17
VIRTUALIZATION
18
HYPERVISORS
18
PARAVIRTUALIZATION
19
AMAZON DOT COM ELASTIC COMPUTE CLOUD
20
OTHER CLOUD BASED SERVICES
21
HEROKU
21
GOOGLE APP ENGINE
22
EUCALYPTUS AND APP SCALE
22
LANGUAGES
22
CODE FRAMEWORKS, LIBRARIES AND API S
23
P H P SLIM
23
BOTO
23
ELEMENT TREE
23
J QUERY
23
BACKBONE. J S
24
UNDERSCORE.J S
24
TEMPLATING SYSTEMS
25
HIGHCHARTS
25
ONLINE EDUCATION
25
OTHER VIRTUAL LABS
25
KHAN ACADEMY
26
UNIVERSITY OF HAWAII VIRTUAL LAB
26
NAVY VIRTUAL LAB
26
GRIDS AND CLUSTERS
26
3.
IMPLEMENTATION
28
WEB SERVER
29
P H P FRAMEWORK
29
USER
30
GROUP
30
MODULE
31
LAB
34
COLLECTION
36
X M L MODELS
36
VIEW LAYER
36
AMAZON MACHINE INSTANCE
37
7
4.
ANALYSIS OF CLOUD SUITE
38
STANDARD USER
38
LOGGING IN
38
CREATING A LAB
39
ADDING MODULES TO A LAB
40
REMOVING MODULES FROM A LAB
42
EDITING MODULES
42
SAVING A LAB
42
LOADING A LAB
43
QUEUEING LABS
44
DELETING LABS
44
RESULTS FROM A LAB
44
SUPERUSERS
45
DISTRIBUTING LABS
45
STARTING FORWARD SLASH STOPPING THE SERVER
46
5.
CLOUD SUITE OUTPUT
47
LAB RESULTS
47
EXAMPLE EXPERIMENT
51
6.
THESIS RESULTS
53
USE CASES
53
UNDERGRADUATE STUDENTS
53
UPPER DIVISION OR GRADUATE STUDENTS
53
PROFESSORS
54
FUNCTIONAL REQUIREMENTS
54
CREATING LABS
54
SAVING LABS
54
LOADING LABS
55
DISTRIBUTING LABS
55
MODIFYING LABS
55
CONFIGURING MODULES
55
RUNNING A LAB
55
ACCESSING STUDENT DATA
56
7.
FUTURE WORK
57
USER MANAGEMENT
57
SECURITY
58
SESSIONS
58
LAB MANAGEMENT AND DISTRIBUTION
59
EDITING MODULES
59
COLLECTIONS
59
VIEW LAYER
60
DATA IMPORT AND USE
60
A M I FORWARD SLASH DATA PROCESSING
60
MODULE UPLOADING FORWARD SLASH PACKAGE MANAGER
61
A P I
61
8.
CONCLUSION
62
Appendix
67
A.
P H P CLASSES
67
B.
SERVER M O D U L E S 1
04
C.
VIRTUAL HOST FILE
105
D.
A P I REFERENCE
106
E.
X M L SCHEMAS
109
F.
PYTHON WRAPPERS
119
8
TABLE OF FI GURES
Figure 1. Preliminary design of the Cloud Suite lab interface
11
Figure 2. Preliminary design for adjusting modules
12
Figure 3. Model View Controller diagram square bracket 2 square bracket
15
Figure 4. The two most common types of hyoervisor square bracket 20 square bracket
19
Figure 5. Control flow diagram of Cloud Suite
28
Figure 6. Control and data flow in Cloud Suite
30
Figure 7. Module used for encrypting and decrypting files
31
Figure 8. X M L representation of a lan showing a configured module
32
Figure 9. Partial example of an X M L representation of the R S A module
33
Figure 10. Partial example of an X M L schema that defines a lab
35
Figure 11. Login button
38
Figure 12. Username and password fields
38
Figure 13. Failed login alert
38
Figure 14. The username is displayed after successful login
39
Figure 15. Logout options
39
Figure 16. The task bar showing the current user options
39
Figure 17. New lab dialog
39
Figure 18. Warning when trying to use whitespace in a lab name
40
Figure 19. Lab name and description displayed in the main lab area
40
Figure 20. Modules displayed in Cloud Suite
41
Figure 21. Configuration options for the module single quote neuro single quote
41
Figure 22. Modules displayed in a lab
42
Figure 23. Confirmation upon removing a module
42
Figure 24. Lab saved success alert
43
Figure 25. Display of labs available to load
43
Figure 26. Queued lab alert
44
Figure 27. Confirm delete lab dialog
44
Figure 28. Listing of users data modules
45
Figure 29. Data dialog
45
Figure 30. Example lab distribution page
46
Figure 31. Example server status dialog when a server is running
46
Figure 32. The single quote graph single quote module Configured with existing data
47
Figure 33. Results from running the single quote graph single quote module
48
Figure 34. The data used to generate Figure 33
48
Figure 35. A configured single quote ga single quote module
49
Figure 36. A C S V file showing the minimum and maximum gene values from the single quote ga single quote module
.50
Figure 37. The configured genetic algorithm lab
51
Figure 38. The configured single quote result graphs single quote lab
51
Figure 39. Graph showing single point crossover
52
Figure 40. Graph showing two point crossover
52
9
Chapter 1:Introduction
T h i s t h e s i s p r e s e n t s a p r o o f o f c o n c e p t f o r C l o u d S u i t e, A d h o c c l o u d b a s e d
l a b o r a t o r i e s. C l o u d S u i t e p r o v i d e s a c l o u d b a s e d f r a m e w o r k t o c r e a t e v i r t u a l l a b s f o r t h e
d e m o n s t r a t i o n o f s c i e n t i f i c c o m p u t i n g t e c h n i q u e s. T h e f r a m e w o r k a l l o w s i n s t r u c t o r s a n d
s t u d e n t s t o c r e a t e a n d s h a r e l a b o r a t o r i e s t o d e m o n s t r a t e c o m p u t e r b a s e d s i m u l a t i o n s a n d
p r o c e s s e s. C l o u d S u i t e i s i n t e n d e d t o b e a s p l a t f o r m a g n o s t i c a s p o s s i b l e. A s s u c h t h e
f r a m e w o r k f o r C l o u d S u i t e w a s d e v e l o p e d u s i n g P H P a n d J a v a S c r i p t. T h i s a l l o w s
C l o u d S u i t e t o r u n i n a l l m o d e r n w e b b r o w s e r s, a l l o w i n g t h e l a r g e s t p o s s i b l e u s e r b a s e.
A f t e r r e v i e w i n g t h e a v a i l a b l e l i t e r a t u r e, a n d t h e a v a i l a b l e c l o u d r e s o u r c e s, w e
c o n c l u d e d t h a t a c l o u d b a s e d m e t h o d f o r c r e a t i n g a n d r u n n i n g v i r t u a l l a b s i s a n e c e s s a r y
c o m p o n e n t o f h i g h e r e d u c a t i o n. A l t h o u g h t h e r e a r e s e v e r a l c l o u d b a s e d s o l u t i o n s f o r
r u n n i n g a r b i t r a r y s o f t w a r e i n t h e c l o u d, o u r r e s e a r c h d i d n o t f i n d a n y e x a m p l e s t h a t w e r e
t a i l o r e d f o r t h e d e m o n s t r a t i o n o f s c i e n t i f i c c o m p u t a t i o n. S e r v i c e s l i k e H e r o k u
square bracket 3 3 square bracket ,G o o g l e A p p E n g i n e square bracket 4 1 square bracket , a n d o t h e r quotation mark p l a t f o r m hyphen a s hyphen a hyphen s e r v i c e quotation mark
p r o v i d e r s d o n o t o f f e r a f r o n t e n d t h a t a d d r e s s e s t h e m a n y u s e c a s e s t h a t a r i s e w h e n d e m o n s t r a t i n g t e c h n i q u e s i n
s c i e n t i f i c c o m p u t a t i o n. I n t h i s t h e s i s w e p r e s e n t a c l o u d b a s e d f r a m e w o r k f o r t h i s e x p r e s s
p u r p o s e.
One. Use Cases
We developed several use cases by visualizing how Cloud Suite could be used in an
academic setting. The actors identified for these use cases are undergraduate students,
upper division or graduate students, and professors. The primary concern for
undergraduate students is running labs that have been created by their professors and
configuring new labs for their own use. Graduate students will also create and run labs,
but the primary focus for graduate students is on creating and configuring software for
use in Cloud Suite. Professors use Cloud Suite to create and distribute labs, view the
results from labs which have been run by others, and create new processes to run in
Cloud Suite. In the following section we explore the needs of each concerned party and
how Cloud Suite addresses those needs.
a. Undergraduate Students
Undergraduate students primarily use Cloud Suite to experiment with preconfigured
labs. Students must also be able to create and modify their own labs. Undergraduate
students are limited in that they are not able to distribute labs to other users.
Undergraduates are also only capable of viewing or modifying labs that have been shared
with them or that they have created. An undergraduate student would receive a lab from a
professor, modify the parameters contained within the lab, save the lab, then queue the
lab for execution. Once the lab has run to completion, the student would analyze the
results of the lab e. g., examine the generations created in a genetic algorithm, download
an image produced by a graphing algorithm, or attempt to view the contents of an
encrypted file.
10
b. Upper Division or Graduate Students
In addition to creating and modifying labs, graduate students will be expected to use
Cloud Suite in a more technical way than undergraduates. Graduate students will be given
assignments to create processes and data sets for use in Cloud Suite labs.
c. Professors
Professors require all of the abilities available to students: creating labs, modifying
labs, creating new data, and new processes to operate on data. Professors must also be
able to distribute labs to students either singly or in groups. Finally professors will use
Cloud Suite to view and edit student labs. This will allow professors to assist students
with homework as well as allowing the professor to evaluate the results of a student lab.
Two. Functional Requirements
Visualizing a typical classroom setting led us to develop several scenarios that define
Cloud Suite. The initial metaphor we addressed was that of an in hyphen class lab assignment. We
visualized all the tasks that are necessary to demonstrate an algorithm or teach a new
technique. We concluded that creating, saving, loading, distributing, modifying, and
running a lab in Cloud Suite are necessary for Cloud Suite to be functional. We expand on
this set of criteria in the following sections.
a. Creating Labs
Labs will be created using a simple point and click interface. Each lab will possess a
unique name to identify it to the user that created the lab. Creating a lab writes a unique
file to a persistent server. The lab file will adhere to predefined criteria that will ensure
new labs are compatible. Each lab will consist of zero or more objects that represent
either data or operations upon data.
b. Saving Labs
A lab will be saved by clicking on a dedicated save button. Saving a lab will write a
unique file to a persistent server for later retrieval or modification. The user will be
notified with the status of the save, either success or fail. Saving a lab will not overwrite
the labs of other users. A user may have an unlimited number of labs though it will be
possible to limit the number of labs available to each user.
11
Fi gur e 1. Preliminary design of the Cloud Suite lab interface.
c. L o a d i n g L a b s
L o a d i n g a l a b i s a c c o mp l i s h e d b y s e l e c t i n g t h e n a me o f t h e l a b f r o m a l i s t o f l a b s t o
wh i c h t h e u s e r h a s a c c e s s. Ad d i t i o n a l l y, w h e n a u s e r f i r s t a c c e s s C l o u d Su i t e, t h e y wi l l b e
p r e s e n t e d wi t h a l i s t o f l a b s t h a t m a y b e l o a d e d. On l y t h o s e l a b s b e l o n g i n g t o t h e u s e r, o r
t h a t h a v e b e e n d i s t r i b u t e d t o t h e u s e r, wi l l b e a v a i l a b l e t o l o a d.
d. D i s t r i b u t i n g L a b s
R u n n i n g a l a b a s a n i n hyphen c l a s s o r h o m e w o r k a s s i g n me n t i s o n e o f t h e p r i ma r y g o a l s o f
C l o u d S u i t e. T o e n a b l e t h i s f u n c t i o n a l i t y a p r o f e s s o r mu s t b e a b l e t o m a k e c o n f i g u r e d l a b s
a v a i l a b l e t o s t u d e n t s. T h i s i s a c c o mp l i s h e d b y s e l e c t i n g a u s e r, o r g r o u p o f u s e r s, t h a t wi l l
g a i n a c c e s s t o t h e l a b. T h i s wi l l t h e n m a k e t h e l a b s e l e c t a b l e f o r t h o s e u s e r s. Wh e n a u s e r
l o a d s a l a b t h a t h a s b e e n ma d e a v a i l a b l e i n t h i s w a y t h e a s s o c i a t e d f i l e r e p r e s e n t i n g t h a t
l a b i s c o p i e d t o t h e u s e r s l a b d i r e c t o r y. O n c e a l a b h a s b e e n d i s t r i b u t e d t o a u s e r, t h a t u s e r
m a y mo d i f y t h e l a b wi t h o u t c h a n g i n g t h e o r i g i n a l l a b f i l e. Di s t r i b u t i n g a l a b, b y n e c e s s i t y,
d i s t r i b u t e s al l o f c o mp o n e n t s a s s o c i a t e d wi t h t h a t l a b. C o mp o n e n t s t h a t a r e d i s t r i b u t e d
wi t h a l a b m a y a l s o b e u s e d i n t h e c r e a t i o n o f n e w l a bs, o r t h e mo d i f i c a t i o n o f e x i s t i n g
l a bs.
e. M o d i f y i n g L a b s
I n C l o u d Su i t e a l a b i s c o mp o s e d o f single quote mo d u l e s single quote t h a t r e p r e s e n t e i t h e r d a t a o r o p e r a t i o n s
u p o n d a t a. Ad d i t i o n a l l y i f a mo d u l e i s t o p r o d u c e d a t a t h e n t h a t d a t a wi l l i mme d i a t e l y b e
o p e r a b l e b y o t h e r mo d u l e s. Mo d u l e s t h a t o p e r a t e u p o n d a t a wi l l b e i d e mp o t e n t, w h e n
d a t a i s o p e r a t e d u p o n a c o p y o f t h a t d a t a i s p r o d u c e d, t h e o r i g i n a l d a t a i s n o t mo d i f i e d.
E a c h C l o u d Su i t e mo d u l e r e p r e s e n t s a s p e c i f i c d a t a s e t o r o p e r a t i o n. Us e r s wi l l o n l y h a v e
a c c e s s t o mo d i f y t h e i r o w n l a b s u n l e s s t h e y a r e o f h i g h e n o u g h p r i v i l e g e t o e d i t t h e l a b s
o f o t h e r s.
12
f. Configuring Modules
Modules are added to the lab through a simple point and click interface. Upon adding
a module to the lab the user is presented with the configuration options for that module.
A module may posses multiple configuration options that are dependent upon the module
e. g., a graphing module may have options for the type of graph to be created, which data
should be used to create the graph, or what to label the axes of the graph. Modules may
be added or removed from a lab without affecting the operation of the other modules. If a
module produces data that will be operated upon by one or more other modules,
removing the module that produces the data will prompt the user regarding the missing
module.
Fi gur e 2. Preliminary concept for adjusting modules
g. Running A Lab
L a b p r o c e s s i n g i s h a n d l e d b y A m a z o n We b S e r v i c e s a n d a s s u c h r e q u i r e s a n a c t i v e
A m a z o n Ma c h i n e I n s t a n c e ( A M I ). Ac t i v a t i n g a n A M I t o p r o c e s s C l o u d Su i t e l a b s mu s t b e
l i mi t e d t o u s e r s wi t h h i g h l e v e l o f a c c e s s, s u c h a s p r o f e s s o r s o r a d mi n i s t r a t o r s, o r t o u s e r s
t h a t a r e r e s p o n s i b l e f o r t h e i r o w n A m a z o n We b S e r v i c e s ( A W S) a c c o u n t. Ad mi n i s t r a t i v e
u s e r s s u p p l y t h e A W S c r e d e n t i a l s t h a t wi l l b e u s e d w h e n p r o c e s s i n g l a b s. T h i s
a d mi n i s t r a t i v e u s e r i s a l s o r e s p o n s i b l e f o r a c t i v a t i n g a n d d e a c t i v a t i n g t h e A M I. Wh e n a
l a b i s s e l e c t e d t o b e r u n i t i s a d d e d t o a single quote f i r s t hyphen i n hyphen f i r s t hyphen o u t single quote q u e u e t h a t i s p r o c e s s e d w h e n t h e
A M I i s a c t i v a t e d. Ad mi n i s t r a t i v e u s e r s m a y d e c i d e t o a l l o w c e r t a i n u s e r s t o s u p p l y t h e i r
o w n A W S c r e d e n t i a l s. I f t h i s o p t i o n h a s b e e n e x e r c i s e d t h e n a n y u s e r t h a t s u p p l i e s t h e i r
o w n c r e d e n t i a l s wi l l b e a b l e t o p r o c e s s t h e i r o w n l a b s wh e n e v e r t h e y wi s h. Us e r s
s u p p l y i n g t h e i r o w n A W S c r e d e n t i a l s wi l l n o t b e a b l e t o r u n l a b s f o r o t h e r u s e r s.
13
Three. Remaining Chapters
In the second chapter we discuss our research into the popular platforms,
infrastructure, and software as a service providers available today. We also discuss code
frameworks and libraries, virtual lab solutions, and other relevant technology.
In the third chapter we discuss the implementation process for Cloud Suite. We cover
the setup of the necessary web server and the associated software as well as discuss the
data objects that were created for Cloud Suite. Finally we review the use of Amazon Web
Services to process Cloud Suite requests.
The fourth chapter analyzes the results of the use cases established in chapter one.
We compare our results with the expected outcome. In the fifth chapter we examine the
output from Cloud Suite and in the sixth chapter we addresses how well our expectations
established in chapter one relate to our final outcome.
In the seventh chapter we discuss the future of Cloud Suite. We will cover how the
user interface might be improved, user experience enhanced, and new functionality that
might be added to Cloud Suite.
In the eighth chapter we draw our final conclusions and reflect on how Cloud Suite
might advance the field of computer science. We also discuss the potential of Cloud Suite
as an educational tool.
14
Four. K e y T e r m s
A m a z o n M a c h i n e I n s t a n c e ( A M I ) hyphen T h e s e a r e s n a p s h o t s o f c o m p u t e r s y s t e m s u s e d
b y A m a z o n E C 2. A n A M I m a y b e o n e o f t h e m a n y p u b l i c o f f e r i n g s o r t h e e n d u s e r m a y
c u s t o m i z e a n A M I t o s u i t t h e i r o w n n e e d s.
A s y n c h r o n o u s J a v a S c r i p t a n d X M L ( A J A X ) hyphen A g r o u p o f t e c h n i q u e s a n d
t e c h n o l o g i e s u s i n g c l i e n t hyphen s i d e r e s o u r c e s t o c r e a t e i n t e r a c t i v e w e b a p p l i c a t i o n s.
A p p l i c a t i o n P r o g r a m m i n g I n t e r f a c e ( A P I ) hyphen A c o l l e c t i o n o f f u n c t i o n s, c l a s s e s, a n d
o b j e c t s w h i c h a l l o w s o f t w a r e c o m p o n e n t s t o c o m m u n i c a t e.
E l a s t i c C o m p u t e C l o u d ( E C 2 ) hyphen A m a z o n E l a s t i c C o m p u t e C l o u d i s a n
i n f r a s t r u c t u r e a s a s e r v i c e o f f e r i n g f r o m A m a z o n.c o m t h a t a l l o w s t h e e n d u s e r t o l a u n c h
v i r t u a l m a c h i n e i n s t a n c e s quotation mark o n t h e f l y quotation mark .
C l u s t e r hyphen A c l u s t e r i s a c o l l e c t i o n o f l o o s e l y c o u p l e d c o m p u t i n g r e s o u r c e s. T y p i c a l l y
i t i s u s e d t o m e a n a c o l l e c t i o n o f c o m m e r c i a l l y a v a i l a b l e h a r d w a r e a s s e m b l e d t o w o r k a s
a s i n g l e c o h e s i v e u n i t.
C o d e L i b r a r y hyphen A c o l l e c t i o n o f c o d e f o r p e r f o r m i n g s i m i l a r t a s k s.
D o c u m e n t O b j e c t M o d e l ( D O M ) hyphen a p l a t f o r m hyphen a n d l a n g u a g e hyphen n e u t r a l i n t e r f a c e t h a t
w i l l a l l o w p r o g r a m s a n d s c r i p t s t o d y n a m i c a l l y a c c e s s a n d u p d a t e t h e c o n t e n t, s t r u c t u r e
a n d s t y l e o f d o c u m e n t s square bracket 7 4 square bracket .
D u m b T e r m i n a l hyphen A d u m b t e r m i n a l i s a c o m p u t e r s y s t e m w i t h l i t t l e, o r n o,
c a p a b i l i t y f o r i n d e p e n d e n t c o m p u t a t i o n. D u m b t e r m i n a l s f u n c t i o n b y c o n n e c t i n g t o a
m a i n f r a m e s y s t e m.
F r a m e w o r k hyphen A s o f t w a r e f r a m e w o r k p r o v i d e s a g e n e r i c p l a t f o r m t h a t m a y b e
c u s t o m i z e d b y t h e e n d u s e r t o p e r f o r m s p e c i f i c t a s k s.
G r i d C o m p u t i n g hyphen S i m i l a r t o c l u s t e r s, G r i d C o m p u t i n g i s t h e t e r m a p p l i e d w h e n
g e o g r a p h i c a l l y d i s t a n t s y s t e m s w o r k t o g e t h e r t o s o l v e a s i n g l e p r o b l e m. O f t e n t h i s
i n v o l v e s b r e a k i n g t h e p r o b l e m i n t o d i s c r e t e s e g m e n t s f o r e a c h n o d e o f t h e g r i d t o p r o c e s s.
H y p e r v i s o r hyphen A l s o k n o w n a s a V i r t u a l M a c h i n e M a n a g e r, a h y p e r v i s o r i s u s e d t o
c o n t r o l v i r t u a l c o m p u t i n g i n s t a n c e s o n a h o s t s y s t e m.
I n f r a s t r u c t u r e a s a S e r v i c e ( I a a S ) hyphen A b u s i n e s s m o d e l w h e r e i n a n o r g a n i z a t i o n
p r o v i d e s e q u i p m e n t t o s u p p o r t a n o t h e r b u s i n e s s e s o p e r a t i o n, s u c h a s w e b s e r v e r s, f i l e
h o s t i n g, a n d n e t w o r k i n g c o m p o n e n t s. T h e r e s o u r c e p r o v i d e r i s r e s p o n s i b l e f o r t h e c a r e
a n d m a i n t e n a n c e o f t h e h a r d w a r e.
I n s t r u c t i o n s e t a r c h i t e c t u r e ( I S A ) hyphen T h i s r e f e r s t o t h e n a t i v e d a t a t y p e s, p r o c e s s e s,
a n d I forward slash O o p e r a t i o n s i m p l e m e n t e d b y a p a r t i c u l a r p r o c e s s o r.
M o d e l V i e w C o n t r o l l e r ( M V C ) hyphen A s o f t w a r e d e s i g n p a t t e r n t h a t s e e k s t o a b s t r a c t
t h e u s e r s i n t e r a c t i o n w i t h i n f o r m a t i o n. T h e c o n t r o l l e r c h a n g e s t h e m o d e l, w h i c h u p d a t e s,
t h e v i e w, w h i c h i s s e e n b y t h e u s e r.
15
F i g u r e 3. M o d e l V i e w C o n t r o l l e r d i a g r a m square bracket 2 square bracket
Packet Switching hyphen A networking method that seeks to group all data into similarly
sized blocks.
Platform as a Service (P a a S) hyphen A business model that allows the end user to deploy
software applications to the public.
Representational State Transfer (REST) hyphen is a style of software architecture for
distributed systems such as the World Wide Web. REST has emerged as a predominant
web A P I design model square bracket 71 square bracket .
Scientific Computing hyphen The science of constructing simulations and performing
quantitative analysis using computer based resources.
Software Development Kit (S D K) hyphen A set of tools used in the creation of software
for a specified platform.
Software as a Service (S a a S) hyphen A business model concerned with creating, hosting,
and maintaing software for third part clients.
Thick Client hyphen A computer system that provides self contained processing power
and resources. Most modern workstations are, in essence, thick clients, in that they may
operate independent of a central server. Also known as a fat, heavy, or rich client,
Thin Client hyphen A hardware or software system that is dependent upon a remote
system for data processing and forward slash or data persistence. Also known as a lean or slim client.
Universal Resource Identifier (U R I) hyphen Characters used to identify a name or
resource on the internet.
Vi r t ual Pr i vat e Ser ver s (V P S) hyphen Physi cal hardware that has been
compartmentalized to offer multiple clients discrete web servers. Many web hosts offer a
service wherein the end user has complete access to their own, and only their own, V P S
instance.
Virtualization hyphen Typically a software technique by which one piece of hardware
imitates one, or more, different types of hardware.
16
Chapter 2:Field Overview
Creating a cloud based ad hoc laboratory system, such as Cloud Suite, requires a
variety of different technologies. The primary technology that is necessary for Cloud Suite
is hardware virtualization. Fortunately there are numerous examples available to us. We
will perform an examination of hardware virtualization services in general and a specific
exploration of the services offered by Amazon dot com. In addition to virtualization we will
also explore: existing virtual lab environments, templating systems, remote storage
solutions, and finally, A P Is and Frame Works.
One. What is Cloud Computing
T h e Na t i o n a l I n s t i t u t e o f S t a n d a r d s a n d T e c h n o l o g y d e f i n e s c l o u d c o mp u t i n g a s :
square bracket ... square bracket a m o d e l f o r e n a b l i n g u b i q u i t o u s, c o n v e n i e n t, o n hyphen d e m a n d n e t w o r k
a c c e s s t o a s h a r e d p o o l o f c o n f i g u r a b l e c o mp u t i n g r e s o u r c e s ( e.g., n e t wo r k s,
s e r v e r s, s t o r a g e, a p p l i c a t i o n s, a n d s e r v i c e s ) t h a t c a n b e r a p i d l y p r o v i s i o n e d a n d
r e l e a s e d wi t h mi n i ma l ma n a g e me n t e f f o r t o r s e r v i c e p r o v i d e r i n t e r a c t i o n square bracket 3 square bracket .
T y p e s o f c l o u d r e s o u r c e s a r e b r o k e n i n t o t h r e e mo d e l s : I n f r a s t r u c t u r e a s a Se r v i c e,
P l a t f o r m a s a S e r v i c e a n d, S o f t wa r e a s a Se r v i c e.
I n f r a s t r u c t u r e a s a Se r v i c e, o r I a a S, i s o n e o f t h e mo r e c o m m o n c l o u d o f f e r i n g s.
Al t h o u g h ma n y p r o v i d e r s o f f e r a v a r i e t y o f s e r v i c e s, t h i s i s mo s t o f t e n t h o u g h t o f a s
we b s i t e h o s t i n g. T w o e x a mp l e s o f t y p i c a l I a a S p r o v i d e r s a r e R a c k S p a c e dot c o m a n d
D r e a m Ho s t dot c o m. A s t a n d a r d I a a S s e r v i c e a l l o ws t h e u s e r t o i ns t a l l a n d ma i n t a i n a s u i t e o f
s o f t wa r e o n a r e mo t e s e r ve r. T h e s e s e r v e r s c a n e i t h e r b e d i s c r e t e h a r d wa r e or, mo r e
c o mmo n l y, a v i r t u a l o r s h a r e d e n v i r o n me n t. T h i s a l l o ws a c o n s u me r t o e s t a b l i s h a w e b
p r e s e n c e wi t h o u t p u r c h a s i n g, s e t t i n g u p, o r ma i n t a i n i n g p h y s i c a l h a r d wa r e. Ad d i t i o n a l l y
ma n y I a a S p r o v i d e r s h a v e P l a t f o r m a s a S e r v i c e f u n c t i o n a l i t y a v a i l a b l e a s we l l.
P l a t f o r m a s a Se r v i c e, o r P a a S, i s s i mi l a r t o I a a S e x c e p t t h e e n d u s e r i s n o t
r e s p o n s i b l e f o r i n s t a l l i n g o r ma i n t a i n i n g s o f t wa r e. P a a S a l l o ws a u s e r t o d e p l o y t h e i r o w n
s o f t wa r e t o a n e x t e r n a l s e r ve r. T w o e x a mp l e s o f P a a S a r e H e r o k u a n d Go o g l e A p p
E n g i n e. P l a t f o r m a s a S e r v i c e a l l o ws a u s e r t o c r e a t e a n d d e p l o y s o f t wa r e wi t h o u t
ma i n t a i n i n g t h e i r o w n s e r v e r s. T h e e n d u s e r i s t h e n a b l e t o a c c e s s t h e f u n c t i o n a l i t y o f t h e
s o f t wa r e a s l o n g a s t h e r e i s a n a c t i v e i n t e r n e t c o n n e c t i o n. Wi t h t h e p r e v a l e n c e o f s ma r t
p h o n e s, t a b l e t s, a n d o t h e r mo b i l e c o mp u t i n g p l a t f o r ms, P a a S i s q u i c k l y b e c o mi n g a
p o p u l a r c h o i c e f o r n e w a p p d e v e l o p e r s.
T h e t h i r d a p p l i c a t i o n o f c l o u d c o mp u t i n g i s t h e quotation mark S o f t wa r e a s a S e r v i c e quotation mark , o r S a a S
mo d e l. Un l i k e t r a d i t i o n a l e n t e r p r i s e s o f t wa r e S a a S d o e s n o t i ns t a l l o n t h e c o n s u me r single quote s
l o c a l h a r d wa r e. I n s t e a d t h e c o n s u me r a c c e s s e s t h e s o f t wa r e t h r o u g h a s o c a l l e d single quote t h i n
c l i e n t single quote o r w e b b r o ws e r. T h e ma i n t e n a n c e o f t h e s o f t wa r e i s l e f t u p t o t h e S a a S p r o v i d e r.
Wh e r e a s t y p i c a l e n t e r p r i s e s o f t wa r e r e q u i r e s t h e e n d u s e r t o p e r i o d i c a l l y b u y n e w
l i c e n s e s, a S a a S mo d e l r e l i e s u p o n u s e r s u b s c r i p t i o n s. Ty p i c a l a d v a n t a g e s o f S a a S o v e r
t r a d i t i o n a l e n t e r p r i s e s o f t wa r e i n c l u d e: c u s t o mi z a t i o n s u c h t h a t t h e e n d u s e r i s a b l e t o
c h a n g e t h e l o o k a n d f e e l o f t h e s o f t wa r e t o c r e a t e a s e a ml e s s i n t e r f a c e f o r t h e i r c l i e n t s semicolon
17
r a p i d f e a t u r e d e l i v e r y, s i n c e t h e s o f t w a r e i s c e n t r a l l y l o c a t e d i t i s e a s i e r f o r t h e d e v e l o p e r
t o i m p l e m e n t a n d r e l e a s e n e w f e a t u r e s semicolon a n d p r i c i n g, a s S a a S t y p i c a l l y h a s a l o w e r i n i t i a l
p r i c e p o i n t c o m p a r e d t o s i m i l a r e n t e r p r i s e s o f t w a r e o f f e r i n g s. E x a m p l e s o f S o f t w a r e a s a
S e r v i c e i n c l u d e B l a c k b o a r d square bracket 4 square bracket , O m n i U p d a t e square bracket 5 square bracket , a n d C l o u d 9 A n a l y t i c s square bracket 6 square bracket .
Two. History of Cloud Computing
C l o u d c o m p u t i n g c a n b e d e s c r i b e d a s t h e c u l m i n a t i o n o f f o u r t e c h n o l o g i e s:
d i s t r i b u t e d s y s t e m s, s o m e f o r m o f v i r t u a l i z a t i o n, t h i n c l i e n t s, a n d u b i q u i t o u s h i g h s p e e d
i n t e r n e t a c c e s s. E v e n t h o u g h t h e m a j o r i t y o f t h e s e t e c h n o l o g i e s w e r e d e v e l o p e d i n t h e
1 9 6 0 s, i t w a s n o t u n t i l h i g h s p e e d c o n n e c t i v i t y b e c a m e c o m m o n p l a c e t h a t t h e single quote c l o u d single quote a s
w e k n o w i t w a s p o s s i b l e.
T r a d i t i o n a l d i s t r i b u t e d s y s t e m s i n c l u d e c l u s t e r, g r i d, a n d d i s t r i b u t e d c o m p u t i n g. A l l
o f t h e s e r e f e r t o a c o l l e c t i o n o f d i s c r e t e h a r d w a r e n o d e s c o m b i n e d t o p e r f o r m a c o m m o n
t a s k. T h e h a r d w a r e m a y b e c o m b i n e d i n d i f f e r e n t w a y s o r l o c a t i o n s semicolon h o w e v e r, t h e e n d
r e s u l t s a r e a l w a y s s i m i l a r: p r o c e s s i n g m o r e i n s t r u c t i o n s p e r c y c l e t h e n w o u l d o t h e r w i s e
b e p o s s i b l e. O n e a s p e c t t h a t m a k e s c l o u d c o m p u t i n g d i f f e r e n t f r o m t r a d i t i o n a l d i s t r i b u t e d
s y s t e m s i s t h a t, i n c l o u d c o m p u t i n g, d i s t r i b u t e d r e s o u r c e s a r e f r e q u e n t l y m a d e a v a i l a b l e
t o m u l t i p l e e n d u s e r s t h r o u g h v i r t u a l i z e d p a r a l l e l c o m p u t i n g.
V i r t u a l i z a t i o n h a s b e e n p u r s u e d b y c o m p u t e r s c i e n t i s t s s i n c e t h e e a r l y 1 9 6 0 s square bracket 7 square bracket .
V i r t u a l i z a t i o n i s u s e d t o quotation mark square bracket s u b d i v i d e t h e square bracket a m p l e r e s o u r c e s o f a m o d e r n c o m p u t e r quotation mark square bracket 1 2 square bracket .
P r i m a r y e x a m p l e s o f n e t w o r k v i r t u a l i z a t i o n i s t h e A p a c h e H T T P s e r v e r. T h e A p a c h e w e b
s e r v e r i s u s e d t o m a k e o n e r e s o u r c e, a d i s t i n c t h a r d w a r e s e r v e r, a p p e a r t o b e m u l t i p l e
s e r v e r s. T h i s p r o c e s s i s s i m i l a r t o o t h e r t y p e s o f v i r t u a l i z a t i o n p r o v i d e d b y s o f t w a r e s u c h
a s V M W a r e ® square bracket 1 3 square bracket , X e n ® square bracket 1 4 square bracket , a n d V i r t u a l B o x square bracket 1 5 square bracket . V i r t u a l i z a t i o n o f t h i s t y p e a l l o w s a
s i n g l e r e s o u r c e, e i t h e r d i s c r e t e o r c o m p o s i t e, t o b e s u b d i v i d e d i n t o a p p r o p r i a t e l y s i z e d
s l i c e s. T h i s a l l o w s t h e e n d u s e r t o a c c e s s a m u c h m o r e p o w e r f u l s y s t e m w h e n t h e y n e e d i t
a n d o n l y p a y f o r t h e s e r v i c e s t h e y r e q u i r e.
A c c e s s i n g a s y s t e m w i t h m o r e c o m p u t a t i o n a l p o w e r t h a n t h e l o c a l m a c h i n e w a s a
c o m m o n p a r a d i g m i n e a r l y c o m p u t i n g. S u c h a s y s t e m i s r e f e r r e d t o a s a quotation mark d u m b t e r m i n a l quotation mark .
T h e s e s o c a l l e d quotation mark d u m b t e r m i n a l s quotation mark f o r m e d t h e b a c k b o n e o f e a r l y d a t a e n t r y a n d
p r o c e s s i n g. M o d e r n s y s t e m s a r e p o w e r f u l a n d i n e x p e n s i v e e n o u g h t h a t t h i s m o d e l i s n o
l o n g e r w i d e l y u s e d. H o w e v e r, w h e n a m o d e r n s y s t e m a c c e s s e s d i s t r i b u t e d r e s o u r c e s t o
p e r f o r m c o m p l e x o r p r o c e s s i n t e n s i v e c a l c u l a t i o n s i t single quote s a c t i o n s a r e n e a r l y i d e n t i c a l t o t h e
quotation mark d u m b t e r m i n a l quotation mark m o d e l. T h e s y s t e m s t h a t a r e a v a i l a b l e t o e n d u s e r s a r e p o w e r f u l e n o u g h
t h a t i t w o u l d b e m o r e a c c u r a t e t o c a l l t h e m single quote s m a r t t e r m i n a l s single quote o r single quote t h i c k c l i e n t s single quote . T h o u g h
t h e t e r m i n a l s a c c e s s i n g t h e r e s o u r c e s m a y b e s i g n i f i c a n t l y m o r e p o w e r f u l t h a n t h e i r
a n c e s t o r s, t h e b a s i c u s a g e i s t h e s a m e: a t e r m i n a l s u b m i t s d a t a t o a r e m o t e l o c a t i o n t o b e
p r o c e s s e d a n d r e c e i v e s t h e r e s u l t s f r o m t h e c o m p u t a t i o n. T h i s k i n d o f r e m o t e a r c h i t e c t u r e
w o u l d n o t b e p o s s i b l e w i t h t o d a y s l a r g e d a t a s e t s i f i t w e r e n o t f o r t h e a d v e n t o f h i g h -
s p e e d i n t e r n e t a c c e s s.
T h e m o d e r n i n t e r n e t s t a r t e d l i f e a s t h e f i r s t p a c k e t s w i t c h e d n e t w o r k k n o w n a s
single quote A R P A N E T single quote . D e s p i t e c o m m o n l y h e l d b e l i e f s, t h e o r i g i n a l g o a l o f A R P A N E T w a s n o t t o
b u i l d a c o m m u n i c a t i o n s s y s t e m t h a t w a s r e s i s t a n t t o n u c l e a r a t t a c k, b u t r a t h e r t o m a k e
18
computational resources more readily available. The internet has now become a nearly
ubiquitous tool that is known the world over, capable of transmitting more data per
second than the original systems that created it could store. This universal access allows
universities, laboratories, and companies to share their computational resources
worldwide.
Cloud Computing, as we know it today, is the culmination of these resources into a
widely available system, that allows the end user access to levels of computing that
would otherwise be impossible. Accessing these resources allows the end user to perform
tasks and provides services that are a driving force in technology today. This thesis
leverages these resources to provide a platform for the development of academic
programs that demonstrate the scientific computing techniques to better understand and
develop future technology.
Three. Virtualization
T h o u g h t h i s t h e s i s d o e s n o t w o r k d i r e c t l y wi t h v i r t u a l i z a t i o n, C l o u d Su i t e r e l i e s
h e a v i l y o n v i r t u a l i z e d h a r d wa r e. B e c a u s e o f t hi s, w e c a r e f u l l y r e v i e we d e x i s t i n g v i r t u a l
h a r d wa r e s e r v i c e s i n o r d e r t o b o t h u n d e r s t a n d h o w t h e p r o c e s s wo r k s a n d t o f i n d t h e
s e r v i c e t h a t i s b e s t s u i t e d t o C l o u d Sui t e.
Vi r t u a l i z a t i o n i s, i n ma n y wa y s, t h e ma i n f o c u s o f c o mp u t e r s c i e n c e. E a c h s t e p a wa y
f r o m t h e p h y s i c a l wi r e s a n d t r a n s i s t o r s t h a t m a k e u p a c o mp u t e r i s a n a b s t r a c t i o n f r o m
w h a t i s r e a l l y h a p p e n i n g. To q u o t e J. S t a n l e y Wa r f o r d quotation mark O n c e d e s i g n e d, h a r d wa r e i s
d i f f i c u l t a n d e x p e n s i v e t o c h a n g e quotation mark square bracket 1 6 square bracket . S o f t wa r e, o n t h e o t h e r h a n d, c a n b e c h a n g e d wi t h
r e l a t i v e e a s e. Th i s i s w h a t ma k e s h a r d wa r e v i r t u a l i z a t i o n s u c h a d e s i r a b l e g o a l.
Vi r t u a l i z a t i o n i s o n e o f t h e o l d e s t a r e a s o f i n t e r e s t i n c o mp u t e r s c i e n c e. O n e o f t h e
mo s t s u c c e s s f u l e x a mp l e s o f v i r t u a l i z a t i o n i s t h e J a v a Vi r t u a l Ma c h i n e ( J V M ) square bracket 1 7 square bracket . Us i n g
t h e J V M a l l o ws t h e J a v a p r o g r a mi n g l a n g u a g e t o p r o d u c e i d e n t i c a l r e s u l t s r e g a r d l e s s o f
t h e i n s t r u c t i o n s e t a r c h i t e c t u r e ( I S A), t h a t i s u s e d b y t h e h a r d wa r e p l a t f o r m. Th i s i s
b e c a u s e, f o r al l i n t e n t s a n d p u r p o s e s, t h e c o mp i l e d J a v a c o d e i s r u n n i n g o n t h e s a me
ma c h i n e hyphen a l b e i t i n a v i r t u a l s e t t i ng. A s l o n g a s a s y s t e m h a s a J V M i n s t a l l e d t h a t c a n
t r a n s l a t e J a v a b y t e c o d e i n t o t h e a p p r o p r i a t e I S A, t h e n t h e r e s u l t s wi l l b e i d e n t i c a l.
T h e J a v a v i r t u a l ma c h i n e a l l o ws o n e p i e c e o f v i r t u a l h a r d wa r e t o b e p r e s e n t o n
mu l t i p l e d i s c r e t e s y s t e ms. S o f t wa r e l i k e V M Wa r e a l l o ws mu l t i p l e v i r t u a l h a r d wa r e
s y s t e ms t o b e p r e s e n t o n a s i n g l e p i e c e o f p h y s i c a l h a r d wa r e. Cr e a t i n g mu l t i p l e
v i r t u a l i z e d h a r d wa r e i ma g e s o n a s i n g l e p i e c e o f p h y s i c a l h a r d wa r e i s o n e o f t h e
c o r n e r s t o n e s o f c l o u d c o mp u t i n g. T h e s e c o n c u r r e n t v i r t u a l i ma g e s a r e m a d e p o s s i b l e b y a
h y p e r v i s o r.
Four. Hypervisors
A hypervisor translates the instruction set architecture used by the guest system to
the ISA used by the host system. Hypervisors are also commonly known as virtual
machine managers (V M Ms) because they are used to manage the resources allocated to
the virtual machine guest instances being run on the physical host. Hypervisors are also
19
f r e q u e n t l y u s e d i n l o a d b a l a n c i n g a n d, a s B r e s s o u d d i s c u s s e s, c a n e v e n p r o v i d e f a u l t
t o l e r a n c e square bracket 1 8 square bracket . H y p e r v i s o r s a r e t y p i c a l l y c l a s s i f i e d i n t o o n e o f t w o t y p e s square bracket 1 9 square bracket : T y p e 1, a l s o
k n o w n a s n a t i v e o r b a r e m e t a l, a n d T y p e 2, h o s t e d h y p e r v i s o r s square bracket 2 0 square bracket square bracket 2 1 square bracket .
T y p e 1 h y p e r v i s o r s r u n d i r e c t l y o n t h e h a r d w a r e. T h e y a r e n o t c o n t a i n e d i n a n
o p e r a t i n g s y s t e m. T h i s t y p e o f h y p e r v i s o r i s a d i r e c t d e s c e n d a n t o f t h e f i r s t e x p e r i m e n t s
w i t h v i r t u a l i z a t i o n. A s s e e n i n F i g u r e 4 a T y p e 1 h y p e r v i s o r i s t h e l o w e s t l e v e l o f s o f t w a r e
o n t h e s y s t e m. T h e g u e s t o p e r a t i n g s y s t e m s r u n o n t o p o f t h e h y p e r v i s o r a n d a p p e a r t o b e
c o m p l e t e l y i n d e p e n d e n t m a c h i n e s. M o d e r n e x a m p l e s o f t h i s a r e O r a c l e V M S e r v e r f o r
S P A R C, t h e C i t r i x X e n S e r v e r, K V M, V M w a r e E S X forward slash E S X i, a n d M i c r o s o f t H y p e r hyphen V
h y p e r v i s o r square bracket 2 0 square bracket . T h i s t y p e o f h y p e r v i s o r i s w h a t m a k e s I a a S p o s s i b l e.
T y p e 2 h y p e r v i s o r s, a g a i n s e e n i n F i g u r e 4, a r e h o s t e d b y a n u n d e r l y i n g o p e r a t i n g
s y s t e m. T h i s a l l o w s f o r m u l t i p l e o p e r a t i n g s y s t e m s t o b e t e s t e d a n d u s e d w i t h i n t h e
c o n f i n e s o f a p a r e n t o p e r a t i n g s y s t e m. T h i s t y p e o f v i r t u a l i z a t i o n i s e s p e c i a l l y h e l p f u l
w h e n t e s t i n g c r o s s p l a t f o r m c o m p a t i b i l i t y a s w e l l a s h e t e r o g e n e o u s n e t w o r k c o n n e c t i v i t y.
E x a m p l e s o f T y p e 2 h y p e r v i s o r s i n c l u d e: B H y V e, V M w a r e W o r k s t a t i o n a n d V i r t u a l B o x
square bracket 2 0 square bracket .
F i g u r e 4. D i a g r a m i l l u s t r a t i n g t h e t w o m o s t c o m m o n t y p e s o f h y p e r v i s o r square bracket 2 0 square bracket .
H y p e r v i s o r s o r i g i n a t e d w i t h s o m e o f t h e e a r l i e s t m a i n f r a m e s y s t e m s. M o s t n o t a b l e
w e r e S I M M O N square bracket 2 2 square bracket a n d I B M single quote s C P hyphen 4 0 square bracket 1 1 square bracket square bracket 2 3 square bracket . T h e s e t w o s y s t e m s a r e
c i t e d a s t h e f i r s t s y s t e m s p r o v i d i n g f u l l v i r t u a l i z a t i o n. T h a t i s t o s a y t h e s e s y s t e m s w e r e t h e f i r s t t o m a k e
t h e e n t i r e t y o f t h e u n d e r l y i n g s y s t e m a v a i l a b l e t o t h e g u e s t s y s t e m. A n a d d i t i o n a l a r e a o f
i n t e r e s t i s t h e c o n c e p t o f p a r a v i r t u a l i z a t i o n, w h i c h w i l l b e d i s c u s s e d i n t h e n e x t s e c t i o n.
IV. Paravirtualization
P a r a v i r t u a l i z a t i o n r e f e r s t o t h e a b i l i t y o f a h o s t e d o p e r a t i n g s y s t e m t o m a k e c a l l s
d i r e c t l y t o t h e u n d e r l y i n g h y p e r v i s o r. T h i s f e a t u r e h a s b e e n p r e s e n t a s f a r b a c k a s 1 9 7 2
square bracket 2 4 square bracket , i n I B M single quote s V M s y s t e m s. C a l l s t o t h e u n d e r l y i n g h y p e r v i s o r w e r e n o t c a l l e d
single quote p a r a v i r t u a l i z a t i o n single quote semicolon r a t h e r, t h e s e c a l l s w e r e r e f e r r e d t o a s quotation mark D I A G N O S E c o d e quotation mark . M o d e r n
i n s t a n c e s o f p a r a v i r t u a l i z a t i o n r e q u i r e t h e g u e s t O S t o b e s p e c i f i c a l l y t a i l o r e d f o r u s e i n a
v i r t u a l i z e d e n v i r o n m e n t. T h e s e c u s t o m O S a r e d e s i g n e d t o r u n i n a d i f f e r e n t p r i v i l e g e
l e v e l a n d m a k e c a l l s d i r e c t l y t o t h e h y p e r v i s o r, r a t h e r t h a n i n t h e n a t i v e O S, w h e n s u c h
c a l l s w o u l d b e d i f f i c u l t o r c o s t l y i n a v i r t u a l i z e d e n v i r o n m e n t. I t i s p o s s i b l e t o d o t h i s b y
20
c h a n g i n g t h e p r i v i l e g e l e v e l at wh i c h t h e v i r t u a l i z e d O S r u n s. Ac c o r d i n g t o S mi t h a n d
Na i r square bracket 2 5 square bracket , t h i s l e a d s t o a v i r t u a l s y s t e m t h a t p e r f o r ms a t 9 0 plus percent e f f i c i e n c y c o mp a r e d t o a
n a t i v e L i n u x i ns t a l l. O n e o f t h e mo s t we l l k n o w n e x a mp l e s o f p a r a v i r t u a l i z a t i o n i s t h e
X e n h y p e r v i s o r square bracket 2 1 square bracket . X e n i s o n e o f t h e l e a d i n g v i r t u a l i z a t i o n s o l u t i o n s c u r r e n t l y i n u s e
t o d a y, a n d i s t h e p r i ma r y h y p e r v i s o r u s e d b y A m a z o n dot c o m.
Five. Amazon dot com Elastic Compute Cloud
O n A u g u s t 2 5, 2 0 0 6, J e f f B e z o s a n n o u n c e d t h e l i m i t e d b e t a o f A m a z o n E l a s t i c
C o m p u t e C l o u d square bracket 2 6 square bracket , r e f e r r e d t o a s A m a z o n E C 2. A m a z o n E C 2 i s a s e r v i c e t h a t a l l o w s
u s e r s t o, e s s e n t i a l l y, r e n t c o m p u t a t i o n a l r e s o u r c e s o n a n a s n e e d e d b a s i s square bracket 2 7 square bracket . T h i s t y p e o f
s e r v i c e i s m a d e p o s s i b l e b y u s i n g t h e X e n h y p e r v i s o r a s d i s c u s s e d i n t h e p r e v i o u s s e c t i o n,
X e n a l l o w s A m a z o n E C 2 t o c r e a t e V i r t u a l P r i v a t e S e r v e r s a s d e m a n d r e q u i r e s. T h e s e
v i r t u a l s e r v e r s m a k e u s e o f o p e r a t i n g s y s t e m s t h a t h a v e b e e n o p t i m i z e d f o r
p a r a v i r t u a l i z a t i o n. O n c e t h e e n d u s e r h a s c u s t o m i z e d t h e v i r t u a l m a c h i n e t o t h e i r l i k i n g
t h e y a r e t h e n a b l e t o s a v e i t a s a n A m a z o n M a c h i n e I m a g e, o r A M I.
A n A M I i s a s y s t e m i m a g e t h a t h a s b e e n c r e a t e d t o b e u s e d w i t h E C 2. U s e r s m a y
c u s t o m i z e t h e s e A M I s w i t h t h e i r o w n s o f t w a r e p a c k a g e s a l l o w i n g a n A M I t o b e t a i l o r e d
f o r a n y t a s k. O n c e a n A M I h a s b e e n c o n f i g u r e d i t c a n b e s a v e d a n d r e hyphen d e p l o y e d a t w i l l.
T h i s a l l o w s t h e e n d u s e r t h e a b i l i t y t o q u i c k l y a n d e a s i l y s e t u p a m a c h i n e t h a t i s
c o n f i g u r e d e x a c t l y a s n e e d e d, w h e n i t i s n e e d e d. U s i n g a n A M I, i t i s p o s s i b l e t o c o n f i g u r e
a p o w e r f u l c o m p u t i n g m a c h i n e, u s e i t t o r u n a s i m u l a t i o n, a n d t h e n d e a c t i v a t e i t. I f t h e
m a c h i n e i s n e e d e d a g a i n, i t i s a s i m p l e m a t t e r t o r e s t a r t t h e m a c h i n e a n d r e hyphen r u n t h e
s i m u l a t i o n. T h i s a l l o w s t h e e n d u s e r t o o n l y p a y f o r t h e c o m p u t a t i o n a l r e s o u r c e s t h e y
n e e d w h e n t h e y n e e d t h e m. I t a l s o a l l o w s t h e u s e r t o d i s t r i b u t e t h e i r A M I t o a l l o w o t h e r s
t o r e p r o d u c e o r e x p a n d u p o n t h e i r e x p e r i m e n t s.
T h e A m a z o n S i m p l e S t o r a g e S e r v i c e ( S 3 ) square bracket 2 8 square bracket i s u s e d e x t e n s i v e l y i n t h e c o d e w r i t t e n
f o r C l o u d S u i t e. S 3 a l l o w s a u s e r t o u p l o a d a n d d o w n l o a d f i l e s u s i n g H T T P r e q u e s t s.
A m a z o n S i m p l e S t o r a g e S e r v i c e, l i k e t h e r e s t o f A m a z o n W e b S e r v i c e s, i s n o t f r e e semicolon
h o w e v e r a t t h e t i m e o f w r i t i n g, A m a z o n o f f e r s a f r e e t i e r o f s e r v i c e a v a i l a b l e f o r t h e o n e
y e a r square bracket 2 8 square bracket .
A m a z o n, a n d v a r i o u s 3 r d p a r t i e s, p r o v i d e S D K s t h a t a l l o w d e v e l o p e r s t o i n t e r a c t
w i t h A m a z o n W e b S e r v i c e s. T h e f r a m e w o r k f o r C l o u d S u i t e i s w r i t t e n u s i n g S D K s f o r
P H P, P y t h o n ( B o t o ) square bracket 2 9 square bracket , a n d U n i x forward slash L i n u x c o m m a n d l i n e square bracket 3 0 square bracket . H o w e v e r S D K s e x i s t s f o r
m u l t i p l e p l a t f o r m s a n d l a n g u a g e s square bracket 3 1 square bracket . T h e p r o v i d e d S D K s g r e a t l y e a s e i n t e r a c t i o n w i t h
t h e c l o u d s e r v i c e s p r o v i d e d b y A m a z o n.
T h e P l a t f o r m a s a S e r v i c e m o d e l ( P a a S ) h a s b e c o m e m o r e p r e v a l e n t d u e i n p a r t t o
A m a z o n E C 2 a s w e l l a s o t h e r I a a S p r o v i d e r s. T h e P a a S m o d e l a l l o w s a n e n d u s e r t o
quotation mark r e n t quotation mark t i m e o n a f u l l y r e a l i z e d h i g h p o w e r s y s t e m, r e g a r d l e s s o f t h e i r o w n h a r d w a r e.
A m a z o n E C 2 a l l o w s t h i r d p a r t i e s a c c e s s t o t h e c o m p u t a t i o n a l r e s o u r c e s o f A m a z o n dot c o m single quote s
d a t a c e n t e r s. S e r v i c e s s u c h a s H e r o k u m a k e u s e o f t h i s s p a c e b y p r o v i d i n g a p l a t f o r m t o
e x e c u t e e n d u s e r c o d e. M a n y P a a S p r o v i d e r s m a k e u s e o f A m a z o n E C 2, o r s i m i l a r,
s e r v i c e s.
21
A m a z o n i s f a r f r o m t h e o n l y a v a i l a b l e o p t i o n f o r c l o u d s e r v i c e s. G o o g l e r e c e n t l y
a n n o u n c e d single quote G o o g l e C o m p u t e E n g i n e single quote square bracket 3 2 square bracket , a s e r v i c e s i m i l a r t o A m a z o n E C 2, i n a d d i t i o n
t o t h e l o n g s t a n d i n g G o o g l e A p p E n g i n e. I n t h e n e x t s e c t i o n w e w i l l t a k e a c l o s e r l o o k a t
c l o u d s e r v i c e s o f f e r e d b y p r o v i d e r s o t h e r t h a n A m a z o n.c o m.
Six. Other Cloud Based Services
T h e P a a S b u s i n e s s m o d e l i s, a t f i r s t g l a n c e, v e r y s i m i l a r t o t h e p r e v i o u s l y m e n t i o n e d
I n f r a s t r u c t u r e a s a S e r v i c e. W h e r e t h e s e s e r v i c e s d i f f e r i s t h a t P a a S d o e s n o t r e q u i r e t h e
e n d u s e r t o s e t u p r e a l o r v i r t u a l h a r d w a r e. O n e o f t h e b e t t e r k n o w n P a a S p r o v i d e r s t h a t
w e w i l l e x a m i n e i s H e r o k u square bracket 3 3 square bracket .
I n a d d i t i o n t o P l a t f o r m a s a S e r v i c e o f f e r i n g s t h e r e a r e a l s o m a n y o f t h e m o r e
t r a d i t i o n a l p e r s i s t e n t w e b h o s t i n g s e r v i c e s, l i k e R a c k s p a c e square bracket 3 4 square bracket o r D r e a m h o s t square bracket 3 5 square bracket . T h e s e
s e r v i c e s a r e t y p i c a l l y l i m i t e d t o a p r e hyphen c o n f i g u r e d s e r v e r t o w h i c h t h e e n d u s e r w i l l u p l o a d
w e b c o n t e n t. M a n y o f t h e s e t r a d i t i o n a l w e b h o s t s a l s o o f f e r V i r t u a l P r i v a t e S e r v e r s t h a t
a l l o w t h e e n d u s e r c o m p l e t e c o n t r o l o v e r t h e s o f t w a r e t h a t i s u s e d i n t h e i r w e b h o s t i n g
s o l u t i o n. O f t e n, c a s e s c o m b i n g a t r a d i t i o n a l w e b h o s t w i t h a P l a t f o r m a s a S e r v i c e
p r o v i d e r a l l o w s a d e v e l o p e r t o p r e s e n t a f u l l y r e a l i z e d p r o d u c t w i t h v e r y l i t t l e i n v e s t m e n t
i n t e r m s o f h a r d w a r e. T o i l l u s t r a t e t h i s p o i n t w e w i l l n o w e x a m i n e t h e P a a S p r o v i d e r
H e r o k u.
a. H e r o k u
H e r o k u square bracket 3 6 square bracket d e s e r v e r s s p e c i a l c o n s i d e r a t i o n b e c a u s e i t i s o n e o f t h e b e s t e x a m p l e s o f
a p l a t f o r m f o r e x e c u t i n g a r b i t r a r y p r o g r a m s i n t h e c l o u d. H e r o k u a l l o w s t h e e n d u s e r t o
d e v e l o p a n a p p l i c a t i o n a n d l e a v e t h e r u n n i n g o f t h a t a p p l i c a t i o n u p t o H e r o k u. T h e
d e v e l o p e r p u s h e s c o d e t o H e r o k u u s i n g t h e G i t square bracket 3 7 square bracket v e r s i o n c o n t r o l s y s t e m. O n c e t h e
c o d e i s p r e s e n t, H e r o k u r e l i e s u p o n H T T P r e q u e s t s t o i n t e r f a c e w i t h t h e c l i e n t
a p p l i c a t i o n.
H e r o k u c a n b e b r o k e n d o w n i n t o t h r e e m a i n c o m p o n e n t s: d y n o s, r a i l g u n s e r v e r s, a n d
s l u g s. A d y n o i s a U n i x b a s e d quotation mark c o n t a i n e r quotation mark t h a t i s u s e d t o p r o c e s s r e q u e s t s square bracket 3 8 square bracket . E a c h
a p p l i c a t i o n c a n h a v e a n u m b e r o f d y n o s a s s i g n e d t o h a n d l e r e q u e s t s. T h e s e r e q u e s t s a r e
p r o c e s s e d b y t h e r a i l g u n s e r v e r s. E a c h r a i l g u n s e r v e r i s a n A m a z o n E C 2 i n s t a n c e
c o n f i g u r e d s p e c i f i c a l l y b y H e r o k u t o p r o c e s s e s t h e s e r e q u e s t s. O n c e t h e d e v e l o p e r p u s h e s
t h e i r c o d e t o H e r o k u, i t i s c o m p i l e d i n t o a single quote s l u g single quote square bracket 3 9 square bracket . A s l u g i s a p r e hyphen c o m p i l e d p a c k a g e
c o n t a i n i n g t h e d e v e l o p e r single quote s c o d e. E a c h p a c k a g e i s d e s i g n e d t o b e a s f a s t a s p o s s i b l e. T h e s e
s o c a l l e d s l u g s a r e t h e n c a l l e d b y t h e r a i l g u n s e r v e r w h e n t h e d y n o s r e c e i v e a r e q u e s t. T h e
e n t i r e p r o c e s s i s e n c a p s u l a t e d t o e n s u r e e a c h s l u g t h a t i s r u n i s p r o c e s s e d i n s u c h a w a y a s
t o p r e v e n t u s e r s f r o m c o n t a m i n a t i n g t h e c o d e o f o t h e r s.
H e r o k u w a s p u t t o g r e a t u s e i n t h e C o u r s e r a square bracket 4 0 square bracket c o u r s e single quote S o f t w a r e E n g i n e e r i n g f o r
S a a S single quote . I n t h i s c o u r s e t h e s t u d e n t s w e r e a s k e d t o c r e a t e s o f t w a r e t h a t w a s a u t o m a t i c a l l y
d e p l o y e d a n d m a d e a v a i l a b l e o n t h e i n t e r n e t w i t h l i t t l e t o n o w a i t t i m e. S i m i l a r s e r v i c e s
a r e c u r r e n t l y o f f e r e d b y G o o g l e A p p E n g i n e, E n g i n e Y a r d, a n d M i c r o s o f t A z u r e S e r v i c e s
P l a t f o r m.
22
b. Google App Engine
G o o g l e A p p E n g i n e ( G A E ) square bracket 4 1 square bracket i s a n o t h e r s e r v i c e s i m i l a r t o H e r o k u semicolon h o w e v e r,
G o o g l e A p p E n g i n e p l a c e s a n u m b e r o f r e s t r i c t i o n s o n w h a t c o d e d e v e l o p e r s m a y u s e.
U n l i k e a n I n f r a s t r u c t u r e a s a S e r v i c e p r o v i d e r, G A E p l a c e s l i m i t s o n w h a t c o d e m a y b e
e x e c u t e d a s w e l l a s o n l y a l l o w i n g t h e p r o p r i e t a r y G o o g l e Q u e r y L a n g u a g e a s a d a t a s t o r e.
c. E u c a l y p t u s a n d A p p S c a l e
E x t e n s i v e r e s e a r c h o n c l o u d t e c h n o l o g y h a s b e e n p e r f o r m e d a t U n i v e r s i t y o f
C a l i f o r n i a, S a n t a B a r b a r a ( U C S B ). T w o o f t h e m o s t w e l l k n o w n p r o d u c t s o f t h a t r e s e a r c h
a r e E u c a l y p t u s square bracket 7 8 square bracket a n d A p p S c a l e square bracket 4 3 square bracket .
E u c a l y p t u s i s a n o p e n s o u r c e e m u l a t o r f o r A m a z o n E C 2 t h a t c a n b e r u n o n l o c a l
c l u s t e r s square bracket 4 2 square bracket . S i n c e t h e i n i t i a l r e l e a s e o f E u c a l y p t u s, i t h a s g r o w n t o b e c o m e a
c o m m e r c i a l s u c c e s s, a n d i s i n c l u d e d i n t h e U b u n t u o p e r a t i n g s y s t e m square bracket 6 9 square bracket .
A p p S c a l e i s a n o p e n s o u r c e i m p l e m e n t a t i o n o f s e v e r a l c l o u d A P I s, i n c l u d i n g G o o g l e
A p p E n g i n e. A p p S c a l e c a n b e d e p l o y e d o v e r A m a z o n E C 2, E u c a l y p t u s, o r a n U b u n t u
i m a g e. A p p S c a l e u s e s v i r t u a l i z a t i o n t o p r o v i d e a u n i f o r m e x p e r i e n c e a c r o s s m u l t i p l e
c l o u d p l a t f o r m s.
O n e f a c t o r t h a t s e p a r a t e s c l o u d s e r v i c e s a r e t h e l a n g u a g e s t h a t m a y b e u s e d t o
d e v e l o p a p p l i c a t i o n s f o r t h e v a r i o u s p l a t f o r m s. S o m e s e r v i c e s, l i k e G A E a n d H e r o k u,
l i m i t t h e l a n g u a g e s t h a t m a y b e u s e d f o r d e v e l o p m e n t b y o n l y a l l o w i n g c e r t a i n t y p e s o f
c o d e t o r u n o n t h e i r p l a t f o r m. B y g r a n t i n g f u l l a c c e s s t o a n o p e r a t i n g s y s t e m, E C 2, a n d
o t h e r I a a S s e r v i c e s, a l l o w m u c h g r e a t e r f r e e d o m w h e n d e v e l o p i n g s o f t w a r e.
Seven. Languages
T h e d e v e l o p m e n t o f C l o u d S u i t e r e q u i r e d t h e u s e o f m u l t i p l e c o m p u t e r l a n g u a g e s.
T h e i n i t i a l d e v e l o p m e n t i n v o l v e d w r i t i n g t h e m o d e l forward slash c o n t r o l l e r l a y e r i n P H P, w h i c h s t a n d s
f o r P H P : H y p e r t e x t P r e p r o c e s s o r. P H P single quote i s a n H T M L hyphen e m b e d d e d s c r i p t i n g l a n g u a g e single quote square bracket 4 4 square bracket
a n d i s w e l l s u i t e d f o r t h e p r o c e s s i n g n e e d s o f C l o u d S u i t e b e c a u s e i t p r o v i d e s n u m e r o u s
f u n c t i o n s a n d l i b r a r i e s f o r X M L m a n i p u l a t i o n. A d d i t i o n a l l y t h e r e i s a w e l l d o c u m e n t e d
A P I f o r a c c e s s i n g A m a z o n C o m p u t e C l o u d w e b s e r v i c e s.
T h e v i e w forward slash c o n t r o l l e r l a y e r f o r C l o u d S u i t e i s w r i t t e n p r i m a r i l y i n H T M L, C S S, a n d
J a v a S c r i p t. J a v a S c r i p t w a s a n o b v i o u s c h o i c e f o r t h e v i e w forward slash c o n t r o l l a y e r b e c a u s e o f t h e
n u m e r o u s l i b r a r i e s a v a i l a b l e t o a s s i s t i n t h e c r e a t i o n o f w e b a p p l i c a t i o n s. U s i n g m o d e r n
c o d e f r a m e w o r k s a n d d e s i g n p a t t e r n s a l l o w s t h e f r o n t e n d t o p r e s e n t a n a c c e s s i b l e a n d
m o d e r n l o o k a n d f e e l. W h e n p o s s i b l e H T M L 5 a n d C S S 3 w e r e u s e d t o i n c r e a s e t h e
f l e x i b i l i t y o f t h e f r o n t e n d d i s p l a y.
T h e p r o c e s s i n g o f C l o u d S u i t e l a b s m a k e s u s e o f P y t h o n a n d C. P y t h o n 2.7 i s u s e d f o r
a c c e s s i n g t h e X M L f i l e s s t o r e d i n A m a z o n S 3 b u c k e t s a n d f o r c a l l i n g c o m p i l e d c o d e
s t o r e d o n t h e A M I. P y t h o n w a s c h o s e n b e c a u s e o f t h e l i b r a r i e s a v a i l a b l e f o r a c c e s s i n g
A m a z o n C l o u d r e s o u r c e s a n d t h e e a s e o f a c c e s s i n g s y s t e m l e v e l c o m m a n d s. C i s u s e d f o r
a c u s t o m d a e m o n t h a t p r o c e s s e s C l o u d S u i t e l a b s. S e v e r a l C l o u d S u i t e m o d u l e s a l s o c a l l
23
s o f t w a r e t h a t h a s b e e n w r i t t e n i n C. C w a s t h e o b v i o u s c h o i c e f o r t h e s p e e d a n d e f f i c i e n c y
i t o f f e r s w h e n a c c e s s i n g s y s t e m l e v e l c o m m a n d s a n d p r o c e s s e s.
F i n a l l y X M L i s u s e d t o t r a n s f e r a n d s t o r e d a t a a b o u t C l o u d S u i t e. T h e a b i l i t y t o
d e f i n e a n d v a l i d a t e c u s t o m d a t a s t r u c t u r e s m a k e s X M L a g o o d f i t f o r t h e c r e a t i o n o f a
d a t a p e r s i s t e n c e l a y e r. T h i s c o u p l e d w i t h t h e P H P s u p p o r t l i b r a r i e s, m a k e s u s i n g X M L a n
e x c e l l e n t c h o i c e.
Eight. Code Frameworks, Libraries and A P Is
F r a m e w o r k s, l i b r a r i e s, a n d A P I s a l l o w s o f t w a r e d e v e l o p e r s t o u s e p r e hyphen w r i t t e n c o d e
f o r t h e i r o w n d e v e l o p m e n t w o r k. T h i s a l l o w s d e v e l o p e r s t o q u i c k l y a n d e a s i l y c r e a t e n e w
s o f t w a r e o f f e r i n g s w i t h l i t t l e i n i t i a l s e t u p. T h i s s e c t i o n w i l l e x a m i n e s o m e o f t h e l i b r a r i e s
t h a t a r e a v a i l a b l e a n d h o w t h e y r e l a t e t o C l o u d S u i t e. M a n y o f t h e c o d e f r a m e w o r k s
d i s c u s s e d h e r e s e r v e d a s a n i n s p i r a t i o n f o r t h e d e s i g n o f C l o u d S u i t e a n d w o u l d b e u s e f u l
i n c r e a t i n g a s u c c e s s f u l p r o d u c t. F o r t h i s t h e s i s w e e v a l u a t e a n d d i s c u s s t h e m o s t r e l e v a n t
o f t h o s e p r o d u c t s.
a. P H P S l i m
P H P S l i m square bracket 4 5 square bracket i s a s m a l l f o o t p r i n t f r a m e w o r k w h i c h p r o v i d e s R E S T f u l, square bracket 7 0 square bracket square bracket 7 1 square bracket ,
u t i l i t i e s i n a s i m p l e t o u s e p a c k a g e. P H P S l i m m a k e s u s e o f a n o n y m o u s f u n c t i o n s t o a l l o w
t h e u s e r t o s p e c i f y a c t i o n s w h e n a r e q u e s t i s m a d e t o a s p e c i f i c U R I square bracket 7 2 square bracket . A d d i t i o n a l l y
P H P s l i m f i l t e r s t h e s e r e q u e s t s b a s e d u p o n t h e H T T P r e q u e s t m e t h o d u s e d t o a c c e s s t h e
U R I. T h i s f r a m e w o r k a c t s a s a c o m m u n i c a t i o n l a y e r b e t w e e n t h e M o d e l, V i e w, a n d
C o n t r o l l a y e r s o f a w e b a p p l i c a t i o n.
b. B o t o
B o t o square bracket 2 9 square bracket i s a P y t h o n A P I f o r a c c e s s i n g A m a z o n c l o u d r e s o u r c e s. I t a l l o w s t h e u s e r
t o, a m o n g o t h e r t h i n g s, c r e a t e a n d a c c e s s S 3 b u c k e t s a n d i n s t a n t i a t e a n d c o n t r o l E C 2
i n s t a n c e s. W e m a k e u s e o f B o t o i n o u r A M I u s e d f o r p r o c e s s i n g C l o u d S u i t e l a b s.
c. E l e m e n t T r e e
E l e m e n t T r e e square bracket 4 6 square bracket i s a P y t h o n l i b r a r y f o r w o r k i n g w i t h X M L d a t a. E l e m e n t T r e e
a l l o w s t h e u s e r t o l o a d X M L d a t a a n d a c c e s s i t s i m i l a r l y t o a P y t h o n l i s t o r d i c t i o n a r y. W e
m a k e u s e o f E l e m e n t T r e e w h e n p a r s i n g C l o u d S u i t e l a b s.
d. j Q u e r y
j Q u e r y i s a p o p u l a r j a v a s c r i p t l i b r a r y t h a t w a s i n i t i a l l y c r e a t e d b y J o h n R e s i g i n 2 0 0 6
a s a w a y t o b i n d C S S s e l e c t o r s t o J a v a S c r i p t f u n c t i o n s square bracket 4 7 square bracket . A c c o r d i n g t o b u i l t w i t h.c o m
square bracket 7 3 square bracket , j Q u e r y h a s b e c o m e o n e o f t h e m o s t u s e d J a v a S c r i p t l i b r a r i e s i n u s e t o d a y a s w e l l a s
o n e o f t h e m o s t f o r k e d r e p o s i t o r i e s o n p o p u l a r c o d i n g s i t e g i t h u b square bracket 4 8 square bracket . A d d i t i o n a l l y
j Q u e r y a l s o b o a s t s a n u m b e r o f l a r g e t e c h n o l o g y c o m p a n i e s a m o n g i t single quote s u s e r s i n c l u d i n g:
G o o g l e, I B M, a n d A m a z o n square bracket 4 9 square bracket .
24
j Qu e r y i s f r e e, o p e n s o u r c e s o f t wa r e, d u a l hyphen l i c e n s e d u n d e r t h e M I T L i c e n s e o r
t h e G N U Ge n e r a l P u b l i c Li c e n s e, Ve r s i o n 2. j Qu e r y single quote s s y n t a x i s d e s i g n e d t o m a k e
i t e a s i e r t o n a v i g a t e a d o c u me n t, s e l e c t D O M e l e me n t s, c r e a t e a n i ma t i o n s, h a n d l e
e v e n t s, a n d d e v e l o p A j a x a p p l i c a t i o n s square bracket 5 0 square bracket .
j Qu e r y s i mp l i f i e s ma n y o f t h e c o m m o n t a s k s u s e d i n c r e a t i n g a mo d e r n we b s i t e. I t
p r o v i d e s t o o l s a n d s h o r t c u t s t o a d d r e s s D O M e l e me n t s a n d s e n d A J A X r e q u e s t s. j Qu e r y
a l l o ws t h e d e v e l o p e r t o c r e a t e s i mp l e c a l l s t o D O M o b j e c t s u s i n g C S S i d e n t i f i e r s. T h e s e
c a l l s a r e m a d e u s i n g t h e j Qu e r y m n e m o n i c single quote dollar sign single quote . A g o o d i l l u s t r a t i o n o f h o w t h i s i s h e l p f u l
i s t h e s i mp l e a c t o f c h a n g i n g t h e c o n t e n t s o f a n H T M L D I V t a g. P r i o r t o j Qu e r y t h e c o d e
n e c e s s a r y t o c h a n g e t h e c o n t e n t s o f a k n o w n d i v w o u l d b e:
d o c u me n t dot g e t El e me n t By I d parenthesis single quote Node I D single quote p a r e n t h e s i s.i n n e r H T M L equal sign single
quote new Va l u e single quote semicolon j Qu e r y a l l o ws t h e s a me o p e r a t i o n t o b e p e r f o r me d wi t h t h i s s i mp l e c o mma n d:
dollar sign parenthesis quotation mark number sign Node I D quotation mark s dot h t m l parenthesis single quote new Va l u e
single quote parenthesis semicolon
I n a d d i t i o n t o s i mp l i f y i n g c o d e, j Qu e r y a l s o a l l o ws t h e u s e r t o a c c e s s D O M e l e me n t s
b y u s i n g C S S s e l e c t o r s wh i c h ma k e s t h e c r e a t i o n o f d y n a mi c w e b s i t e s m u c h s i mp l e r. I n
a d d i t i o n t o p r o v i d i n g t o o l s t o a c c e s s r e n d e r e d D O M o b j e c t s, j Qu e r y a l s o s i mp l i f i e s
a c c e s s i n g D O M e l e me n t s t h a t a r e c r e a t e d d y n a mi c a l l y t h r o u g h A J A X c a l l s. B y p r o v i d i n g
t h e t o o l s n e c e s s a r y t o s i mp l i f y q u e r y i n g D O M e l e me n t s a n d ma k i n g A J A X c a l l s j Qu e r y h a s b e c o me a s t a n d a r d f o r w e b d e v e l o p me n t.
e. B a c k b o n e dot j s
B a c k b o n e dot j s i s a n o t h e r p o p u l a r J a v a Sc r i p t l i b r a r y t h a t a l l o ws a w e b b a s e d a p p l i c a t i o n
t o c r e a t e a c u s t o m mo d e l s t o r e p r e s e n t da t a. T h e s e mo d e l s c a n t h e n b e g r o u p e d i n t o
c o l l e c t i o n s a n d o p e r a t e d o n e i t h e r s i n g l y o r a s a c o l l e c t i v e g r o u p. Ad d i t i o n a l l y, B a c k b o n e
c a n b e u s e d t o t r i g g e r e v e n t s w h e n d a t a i s ma n i p u l a t e d.
B y c o n n e c t i n g w e b e v e n t s t o t h e d i r e c t ma n i p u l a t i o n o f d a t a, B a c k b o n e c r e a t e s a
me c h a n i s m t o k e e p d a t a s y n c h r o n i z e d wh i l e mi n i mi z i n g t h e i mp a c t u p o n a d a t a b a s e
s e r v e r, a s we l l a s d e c o u p l i n g d a t a f r o m t h e D O M.
B a c k b o n e a l l o ws d a t a t o b e c o l l e c t e d i n a me a n i n g f u l w a y wh i l e mi n i mi z i n g t h e
a mo u n t o f J a v a Sc r i p t t h a t i s n e c e s s a r y t o t r a c k a n d ma n i p u l a t e t h a t da t a. S e p a r a t i n g t h e
a p p l i c a t i o n s d a t a f r o m t h e H T M L D O M o b j e c t a l s o a l l o ws f o r d a t a p e r s i s t e n c e b e y o n d
w h a t t h e D O M c a n o f f e r. B a c k b o n e r e l i e s u p o n t h e Un d e r s c o r e dot j s l i b r a r y t o ma n i p u l a t e
a n d i t e r a t e o v e r t h e c o l l e c t e d d a t a.
i. U n d e r s c o r e dot j s
T h e Un d e r s c o r e dot j s l i b r a r y o f f e r s s e v e r a l f e a t u r e s t h a t a r e n o t n a t i v e l y a v a i l a b l e i n t h e
J a v a Sc r i p t l a n g u a g e. Un d e r s c o r e p r o v i d e s me t h o d s t h a t a l l o w a s p e c t s o f f u n c t i o n a l
p r o g r a mi n g t o b e u s e d w h e n d e a l i n g wi t h w e b b a s e d da t a. T h e ma j o r i t y o f t h e me t h o d s
i n c l u d e d i n Un d e r s c o r e d e a l wi t h c r e a t i o n a n d ma n i p u l a t i o n o f l i s t s. Un d e r s c o r e dot j s a l s o
o f f e r s a mi n i ma l i s t t e mp l a t i n g s y s t e m ( t h o u g h t h e r e a r e ma n y o t h e r s a v a i l a b l e ).
25
j. Templating Systems
T e m p l a t i n g s y s t e m s i n J a v a S c r i p t a l l o w t h e d e v e l o p e r t o c r e a t e a n H T M L b a s e d
t e m p l a t e f o r d i s p l a y i n g J S O N o b j e c t s i n a p r e d i c t a b l e w a y. T h i s g i v e s t h e d e v e l o p e r f u l l
c o n t r o l o v e r t h e d i s p l a y o f d y n a m i c c o n t e n t.
J a v a S c r i p t t e m p l a t i n g s y s t e m s a r e e i t h e r s t a n d a r d o r l o g i c hyphen l e s s. S t a n d a r d t e m p l a t e s
a l l o w a r b i t r a r y c o d e t o b e m i x e d i n w i t h t h e t e m p l a t e. T h i s c a n l e a d t o l a r g e t e m p l a t e s
t h a t c a n b e d i f f i c u l t t o f o l l o w. S t a n d a r d t e m p l a t e s a l l o w t h e d e v e l o p e r t o c o n t r o l t h e d a t a
a s i t i s p r e s e n t e d t o t h e t e m p l a t e, r e s u l t i n g i n g r e a t e r f l e x i b i l i t y w i t h i n t h e t e m p l a t e s.
S t a n d a r d t e m p l a t i n g l i b r a r i e s i n c l u d e : U n d e r s c o r e dot j s, J a d e, E J S.
L o g i c hyphen l e s s t e m p l a t e s d o n o t a l l o w a r b i t r a r y c o d e t o b e p r e s e n t w i t h i n t h e t e m p l a t e
i t s e l f. L o g i c hyphen l e s s t e m p l a t e s f o r c e s a n y d a t a m a n i p u l a t i o n t o b e p e r f o r m e d p r i o r t o t h e d a t a
b e i n g p r e s e n t e d t o t h e t e m p l a t e. T h e s e t e m p l a t e s a r e d e s i g n e d w i t h c o m m o n u s e c a s e s i n
m i n d a n d a s s u c h d o n o t o f f e r t h e s a m e l e v e l o f f l e x i b i l i t y a s a s t a n d a r d t e m p l a t e. L o g i c hyphen
l e s s t e m p l a t e s a r e t y p i c a l l y l e s s c o m p l i c a t e d a n d e a s i e r t o f o l l o w. S o m e p o p u l a r l o g i c hyphen l e s s
t e m p l a t i n g s y s t e m s i n c l u d e: M u s t a c h e dot j s, H a n d l e b a r s dot j s, d u s t dot j s a n d T r a n s p a r e n c y.
k. Highcharts
H i g h c h a r t s J S square bracket 7 5 square bracket i s a c h a r t i n g l i b r a r y w r i t t e n i n J a v a S c r i p t. I t a l l o w s t h e u s e r t o
c r e a t e i n t e r a c t i v e w e b b a s e d c h a r t s a n d g r a p h s. T h e l i b r a r y o f f e r s t h e f u n c t i o n a l i t y a n d
f l e x i b i l i t y t o g e n e r a t e c h a r t s d y n a m i c a l l y f r o m n u m e r o u s d a t a s o u r c e s. W e u s e t h e
H i g h c h a r t s l i b r a r y t o c r e a t e v i s u a l r e p r e s e n t a t i o n s o f d a t a w i t h i n C l o u d S u i t e. U s i n g a
J a v a S c r i p t b a s e d l a n g u a g e m a x i m i z e s t h e c o m p u t a b i l i t y o f t h e s e v i s u l a t i z a t i o n s.
Nine. Online Education
W i t h t h e g r o w t h o f h i g h s p e e d i n t e r n e t a c c e s s t o d i s t a n c e l e a r n i n g h a s b e c o m e
i n c r e a s i n g l y m o r e a c c e s s i b l e. I n a d d i t i o n t o u n i v e r s i t i e s s u p p l e m e n t i n g t h e i r c o u r s e s w i t h
o n l i n e o f f e r i n g s, m a n y u n i v e r s i t i e s a r e a l s o m a k i n g c l a s s e s a v a i l a b l e o n l i n e f o r f r e e.
C o u r s e r a i s a c e n t r a l l o c a t i o n w h e r e t h o s e s e e k i n g t o i m p r o v e t h e i r e d u c a t i o n m a y
p a r t i c i p a t e i n f r e e o n l i n e c l a s s e s f r o m s i x t e e n u n i v e r s i t i e s i n c l u d i n g: C a l t e c h, S t a n f o r d,
a n d P r i n c e t o n square bracket 4 0 square bracket . A d d i t i o n a l l y m a n y u n i v e r s i t i e s h a v e b e g u n o f f e r i n g f r e e c l a s s e s
o n l i n e f o r n o c r e d i t. O n e s u c h o f f e r i n g f r o m U n i v e r s i t y o f C a l i f o r n i a, B e r k l e y m a d e u s e
o f H e r o k u t o a l l o w s t u d e n t s t o p u b l i s h a w e b b a s e d a p p l i c a t i o n a n d s e e r e s u l t s i n r e a l
t i m e. T h e M a s s a c h u s e t t s I n s t i t u t e o f T e c h n o l o g y a l s o o f f e r s f r e e o n l i n e c o u r s e s. I t i s
i m p o r t a n t t o n o t e t h a t t h e s e o n l i n e c o u r s e s t y p i c a l l y d o n o t c o n f e r a n y s o r t o f d e g r e e o r
c e r t i f i c a t e, C o u r s e r a b e i n g n o t a b l e i n t h a t s o m e o f i t single quote s c o u r s e s d o o f f e r a n e l e c t r o n i c
c e r t i f i c a t e o f c o m p l e t i o n square bracket 5 1 square bracket . C o u r s e s o f f e r e d o n l i n e c o u l d m a k e g r e a t u s e o f a s e r v i c e
l i k e C l o u d S u i t e t o p r o v i d e t h e i r s t u d e n t s w i t h a n i n t e r a c t i v e l a b c o m p o n e n t.
Ten. Other virtual labs
T h e i d e a o f v i r t u a l l a b o r a t o r i e s i s f a r f r o m n e w. J u s t a s v i r t u a l i z a t i o n i s o n e o f t h e
o l d e s t a r e a s i n c o m p u t e r s c i e n c e, v i r t u a l l a b s h a v e b e e n p u r s u e d b y e d u c a t o r s f o r m a n y
y e a r s. I n t h i s s e c t i o n w e e x a m i n e s o m e o f t h e m o r e p r o m i n e n t v i r t u a l l a b o f f e r i n g s.
26
a. Khan Academy
K h a n A c a d e m y i s a n o t f o r p r o f i t o n l i n e e d u c a t i o n a l r e s o u r c e. K h a n A c a d e m y o f f e r s
v i d e o s e x p l a i n i n g a v a r i e t y o f t o p i c s. I n a d d i t i o n t o v i d e o s K h a n A c a d e m y a l s o o f f e r s a
w e b b a s e d s e t o f t o o l s f o r d e v e l o p i n g m a t h e m a t i c a l p r o f i c i e n c y. I n l a t e 2 0 1 2 K h a n
A c a d e m y i n t r o d u c e d C o m p u t e r S c i e n c e c u r r i c u l u m t h a t o f f e r s p r o g r a m m i n g i n s t r u c t i o n
a n d d e m o n s t r a t i o n. T h e p r o g r a m i n g c u r r i c u l u m i s b a s e d o n t h e J a v a S c r i p t l a n g u a g e a n d
i s o v e r s e e n b y J o h n R e s i g square bracket 5 2 square bracket . T h e p r o g r a m i s d e s i g n e d t o d e m o n s t r a t e t h e f u n d a m e n t a l s
o f c o m p u t e r s c i e n c e t o s o m e o n e w i t h l i t t l e t o n o e x p e r i e n c e.
b. University of Hawaii Virtual Lab
I n 2 0 0 7 t h e D e p a r t m e n t o f E d u c a t i o n a l T e c h n o l o g y a t t h e U n i v e r s i t y o f H a w a i i a t
M a n o square bracket 5 3 square bracket p u b l i s h e d a p a p e r d e t a i l i n g a n e x p e r i m e n t w h e r e a n o n l i n e b i o l o g y c l a s s m a d e
u s e o f a a C D hyphen R O M b a s e d v i r t u a l w e t l a b. T h e s t u d y c o m p a r e d t h e u s e o f a v i r t u a l l a b t o
w h a t t h e s t u d y r e f e r r e d t o a s a single quote f a c e t o f a c e single quote l a b. T h e d a t a a n a l y s i s s h o w e d t h a t, w h i l e
s t u d e n t s f o u n d t h e v i r t u a l l a b s t o b e u s e f u l, f a c e hyphen t o hyphen f a c e l a b t i m e w a s m o r e v a l u a b l e t o t h e
o v e r a l l l e a r n i n g e x p e r i e n c e t h a n a p u r e l y c o m p u t e r hyphen b a s e d l a b. T h e s t u d y w a s p r i m a r i l y
f o c u s e d o n t h e e f f e c t i v e n e s s o f t h e v i r t u a l l a b a n d d i d n o t g i v e g r e a t d e t a i l o n t h e
t e c h n o l o g y square bracket 5 4 square bracket .
c. Navy Virtual Lab
T h e N a v a l P o s t g r a d u a t e S c h o o l ( N P S ) square bracket 5 5 square bracket square bracket 5 6 square bracket h a s d e v e l o p e d a d i s t a n c e l e a r n i n g
s o l u t i o n t h a t a l l o w s n o n hyphen r e s i d e n t s t u d e n t s t o p e r f o r m s i g n a l p r o c e s s i n g l a b o r a t o r y
a s s i g n m e n t s. T h e E l e c t r i c a l a n d C o m p u t e r E n g i n e e r i n g d e p a r t m e n t h a s d e v e l o p e d a n
i n n o v a t i v e m i x o f h a r d w a r e a n d s o f t w a r e t o a l l o w s t u d e n t s t o a c c e s s l a b e q u i p m e n t
r e g a r d l e s s o f t h e i r l o c a t i o n. T h e c o l l e c t i o n o f s i g n a l g e n e r a t o r s a n d f i e l d p r o g r a m a b l e
g a t e a r r a y s a l l o w s t u d e n t s t o p e r f o r m e x p e r i m e n t s i n r e a l t i m e.
Eleven. Grids and Clusters
N o d i s c u s s i o n o f c l o u d c o m p u t i n g i s c o m p l e t e w i t h o u t m e n t i o n i n g g r i d s a n d c l u s t e r s.
G r i d a n d c l u s t e r c o m p u t i n g s h a r e a p r o b l e m d o m a i n a n d s i m i l a r p u r p o s e w i t h c l o u d
c o m p u t i n g semicolon h o w e v e r, e a c h d i f f e r s i n n u a n c e. G r i d c o m p u t i n g t y p i c a l l y c o n s i s t s o f a
l o o s e l y c o u p l e d c o l l e c t i o n o f c o m p u t e r s w o r k i n g t o g e t h e r t o a c h i e v e a c o m m o n g o a l square bracket 5 7 square bracket .
O n e o f t h e m o s t w i d e l y k n o w n e x a m p l e s o f g r i d c o m p u t i n g i s t h e S E T I at h o m e p r o j e c t
f r o m t h e U n i v e r s i t y o f C a l i f o r n i a, B e r k e l e y square bracket 5 8 square bracket .
T h e S E T I at h o m e, o r t h e S e a r c h f o r E x t r a T e r r e s t r i a l I n t e l l i g e n c e a t h o m e, p r o j e c t
w a s d e s i g n e d t o u s e t h e r e s o u r c e s o f i d l e c o m p u t e r s t o p r o c e s s l a r g e a m o u n t s o f s i g n a l
d a t a f r o m r a d i o t e l e s c o p e s. T h e p r o j e c t h a s s i n c e b e e n e x p a n d e d i n t o t h e single quote B e r k e l e y O p e n
I n f r a s t r u c t u r e f o r N e t w o r k C o m p u t i n g single quote , k n o w n a s B O I N C square bracket 5 9 square bracket , a n d a l l o w s u s e r s t o
p a r t i c i p a t e i n m u l t i p l e d i s t r i b u t e d c o m p u t i n g p r o j e c t s.
O t h e r e x a m p l e s o f g r i d c o m p u t i n g i n c l u d e t h e W o r l d w i d e L H C C o m p u t i n g G r i d
( W L C G ) square bracket 6 0 square bracket u s e d t o p r o c e s s e s t h e d a t a c o l l e c t e d f r o m t h e C e r n L a r g e H a d r o n C o l l i d e r
a n d t h e E u r o p e a n G r i d I n f r a s t r u c t u r e ( E G I ). E G I i s, p e r h a p s, t h e m o r e i n t e r e s t i n g o f t h e
27
t w o a s t h e mi s s i o n o f E G I single quote i s t o a l l o w r e s e a r c h e r s o f al l f i e l d s t o m a k e t h e mo s t o u t o f t h e
l a t e s t c o mp u t i n g t e c h n o l o g i e s f o r t h e b e n e f i t o f t h e i r r e s e a r c h single quote square bracket 6 1 square bracket . E G I ma i n t a i n s a l i s t
o f g r i d b a s e d t o o l s t h a t r e g i s t e r e d u s e r ma y u s e f o r t h e i r o w n e x p e r i me n t s. E G I w a s o f
p a r t i c u l a r i n t e r e s t t o t h i s t h e s i s a s i t ma k e s v i r t u a l t o o l s a v a i l a b l e t o n u me r o u s u s e r s.
C o mp u t e r c l u s t e r s d i f f e r f r o m g r i d s i n t ha t, t y p i c a l l y, c l u s t e r s a r e o f t e n u s e d f o r
c o mp l e x s i mu l a t i o n s a n d ma y b e mo r e t i g h t l y c o u p l e d t h a n a g r i d s y s t e m. Us u a l l y a
c l u s t e r wi l l b e t r e a t e d a s i n g l e c o mp u t a t i o n a l r e s o u r c e wh e r e a s g r i d s y s t e ms f r e q u e n t l y
h a v e mu l t i p l e u s e r s f o c u s i n g o n ma n y p r o b l e ms.
A we l l k n o w n e x a mp l e o f a h i g h p o we r e d c o mp u t e r c l u s t e r i s t h e I B M B l u e G e n e
s y s t e m. A s o f J u n e 2 0 1 2 t h e B l u e G e n e backslash Q s y s t e m w a s l i s t e d a s t h e h i g h e s t p e r f o r mi n g
c o mp u t i n g i n t h e wo r l d square bracket 6 2 square bracket . T h e B l u e G e n e backslash Q s y s t e m i s c o mp o s e d o f mu l t i p l e p r o c e s s o r
n o d e s c o n t r o l l e d b y a c e n t r a l l i n u x b a s e d s y s t e m.
28
Chapter 3: Implementation
C l o u d S u i t e i s c o m p o s e d o f t h r e e d i s t i n c t p a r t s: a l i g h t w e i g h t b a c k e n d, a w e b b a s e d
f r o n t e n d, a n d a s e t o f t o o l s b a s e d o n A m a z o n W e b S e r v i c e s. T h e b a c k e n d u s e s P H P 5
a n d a n U b u n t u b a s e d w e b s e r v e r. T h e w e b s i t e i s w r i t t e n i n H T M L a n d J a v a S c r i p t a n d
m a k e s u s e o f s e v e r a l J a v a S c r i p t l i b r a r i e s. T h e t h i r d p a r t c o n s i s t s o f A m a z o n S 3 a n d E C 2
c o m p o n e n t s, P y t h o n s c r i p t s, a n d c o d e w r i t t e n i n C. T h i s l a y e r p r o v i d e s t h e d a t a
p e r s i s t e n c e a n d d a t a p r o c e s s i n g f o r C l o u d S u i t e. W e c h o s e t h e s e t o o l s b a s e d o n a n a l y s i s o f
a v a i l a b l e o p t i o n s, s e e c h a p t e r t w o, a n d o u r e x p e r i e n c e w i t h t h e t e c h n o l o g i e s i n v o l v e d.
T h e s t r u c t u r e o f C l o u d S u i t e i s i n s p i r e d b y t h e m o d e l hyphen v i e w hyphen c o n t r o l l e r ( M V C ) s t y l e
a r c h i t e c t u r e. T h e m o d e l l a y e r i s p r i m a r i l y c o m p o s e d o f X M L. T h e v i e w l a y e r i s h a n d l e d
b y t h e w e b s e r v e r a n d t h e H T M L f r o n t e n d. T h e c o n t r o l l e r i s m a d e u p o f t h e P H P
b a c k e n d, A W S t o o l s, a n d P y t h o n c o d e u s e d f o r p r o c e s s i n g. C o d e e x a m p l e s a r e i n c l u d e d
i n a p p e n d i c e s A, E, a n d F.
Fi gur e 5. Control flow diagram of Cloud Suite.