


















































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Assignments for Cloud Programming
Typology: Essays (university)
1 / 58
This page cannot be seen from the preview
Don't miss anything!



















































Qualification BTEC Level 5 HND Diploma in Computing
Unit number and title Unit 16: Cloud computing
Submission date 27/5/2023 Date Received 1st submission
Re-submission Date Date Received 2nd submission
Student Name Nguyen Phuoc Loc Student ID GCC
Class GCC1001 Assessor name Le Huynh Quoc Bao
Student declaration
I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand
that making a false declaration is a form of malpractice.
Student’s signature
Grading grid
Grade: Assessor Signature: Date: Internal Verifier’s Comments:
Signature & Date:
popular nowadays(about 2500 words)
appropriateness of the solution for the scenario (about 400 words with images and diagrams)which
might include:
a. Architectural design (architectural diagram and description).
b. Detailed design:
i. Deployment model (discussion on why that model was chosen).
ii. Service model (discussion on why that model was chosen).
iii. Programming language/ webserver/database server chosen.
General guidelines:
● Instead of providing definitions but also provide with examples.
● Provide more own arguments instead of definitions
● Making use of academic references instead of web tutorials
● For a cloud architecture look at the bottom of this document
Learning Outcomes and Assessment Criteria
Pass Merit Distinction
LO1 Demonstrate an understanding of the fundamentals of Cloud Computing
and its architectures
LO1 & 2
D1 Justify the tools chosen to realise
a Cloud Computing solution.
P1 Analyse the evolution and
fundamental concepts of Cloud
Computing.
P2 Design an appropriate
architectural Cloud Computing
framework for a given scenario.
M1 Discuss why an organisation
should migrate to a Cloud Computing
solution.
LO2 Evaluate the deployment models, service models and technological
drivers of Cloud Computing and validate their use
P3 Define an appropriate deployment
model for a given scenario.
P4 Compare the service models for
choosing an adequate model for a
given scenario.
M2 Demonstrate these deployment
models with real world examples.
CHAPTER 1: ANALYZE THE EVOLUTION AND FUNDAMENTAL CONCEPTS OF
CLOUD COMPUTING (P1)
Cloud computing has a rich history that can be traced back to the 1950s. One of the earliest concepts
related to cloud computing was the "theory of time-sharing," introduced by computer scientist John
McCarthy. This concept involved multiple users accessing a central computer system through terminals,
allowing them to rent computational capabilities affordably.
In the 1960s, J.C.R Licklider developed the ARPANET, which laid the groundwork for a global computer
network where users could access programs and data anywhere. During this time, running hosted
applications through terminals became feasible, enabling information exchange between terminals and
the leading service.
The 1970s witnessed the development of virtual machines, allowing multiple operating systems to run
simultaneously on a single physical platform. In the 1990s, telecommunication companies transitioned
from point-to-point data circuits to virtual private network services, providing shared access to a single
physical infrastructure.
In 1997, Professor Ramnath Chellapa defined cloud computing as a paradigm driven by economic rationale
rather than technical limitations. This marked an important milestone in shaping the understanding of
cloud computing.
Significant advancements in cloud computing were made throughout the late 1990s and early 2000s.
Salesforce.com emerged in 1999, offering enterprise-level applications through a simple website. In 2002,
Amazon Web Services (AWS) introduced cloud-based retail services, including data storage and
computation. Then, in 2006, AWS launched Elastic Compute Cloud (EC2), allowing small companies to rent
computers to host and run their applications. Google Docs and Dropbox were also introduced around this
time, enabling end users to utilize cloud computing for document sharing and file storage directly.
Between 2008 and 2009, the focus shifted towards private clouds, where infrastructure is dedicated to a
single organization, while public clouds allow multiple clients to share server resources. Open-source
platforms gained traction during this period, as collaboration among programmers became crucial for
developing high-quality cloud-related software.
productivity, faster and more efficient use of available resources, and security, cloud computing is the
preferred option for individuals and businesses.
(FRANKENFIELD, 2023)
a. Definition:
The client-server model, which divides the workload or tasks among providers of a resource or service,
such as servers and requesters known as clients, is structured like an application architecture. In the client-
server architecture, when the client computer sends a request for data to the server through the internet,
the server accepts the requested process and delivers the data packets requested back to the client. None
of the client's resources are shared.
(syedmodassirali, 2022)
b. How the Client – Server model works?
Client: "Client" refers to a person or organization using a service. Similarly, in the digital world, a client is
a computer (Host), i.e., capable of receiving information or using a particular service from the service
providers (Servers).
Server: Similarly, it means someone or a medium serving something when discussing servers. The server
is a computer situated on the ground that delivers information or access to specific services in this digital
world.
The clients request something, and the server serves them during its current time in the database.
(syedmodassirali, 2022)
Figure 2 How the Client-Server work?
c. How the browser interacts with the servers?
There are a few steps to follow to interact with a client's servers.
requests the DNS (DOMAIN NAME SYSTEM) Server.
help of a DOM (Document Object Model) interpreter, CSS interpreter, and JS Engine collectively known as
the JIT or (Just in Time) Compilers.
from clients, who are most often web browsers. When a client requests, the server will reply to this request
by sending needed web pages, files, or other resources. The Web browser acts as a client and sends the
request to the server associated with this URL when an Internet user enters it. The request is processed
by a server, retrieved from an appropriate website or resource, and forwarded to the client for display.
The efficient distribution of resources, as well as the ability for users to access information and services on
the Internet, is facilitated by this client-server model.
The Peer-to-Peer (P2P) model is a decentralized communications model in which each party has the same
capabilities, and either party can initiate a communication session.
The P2P network model makes it possible for each node to act as both a client and a server, compared
with the Client-Server Model in which clients make requests that are fulfilled by servers.
Autonomous routing of network traffic, sizeable parallel computing environments, distributed storage,
and other functions may be provided by P2P systems. Many P2P programs focus on sharing media, which
is why software piracy and copyright infringement are frequently associated with p2p.
A broad range of operating parameters such as: can be controlled by application P2P applications. The
number of connections to be sought or allowed at one time by a member. Which systems can be
connected to or avoided? Which services are to be offered? The amount of system resources that are
allocated to the network. Only a handful of P2P applications connect to subsets of active nodes on the
network with restricted user control.
(Rosencrance, 2022)
Figure 4 peer-to-peer model
Once a file has been downloaded, it will normally take the following steps: The user opens his web browser
and visits an available website to download it. In this case, the site acts as a server. The user's computer is
an agent that receives data from it. In this process, the downloaded files are transferred from point A, the
website, to point B, the user's computer, as a one-way street.
However, this process will occur differently for users who download the corresponding file utilizing P2P.
P2P software must be installed on the user's computer to create a virtual network of users for this
application. The file will be downloaded in bits from various computers on the network that already have
this file when a user downloads it.
At the same time, data is being sent from a user's computer to other network computers requesting it.
This is the same situation as a two-way street, where files are filled with several pieces of information that
come to users' computers and leave if requested. The file transfer traffic is distributed among different
computers.
(Rosencrance, 2022)
HPC technology uses clusters of powerful processors, working in parallel, to process massive multi-
dimensional datasets (big data) and solve complex problems at extremely high speeds. HPC systems
typically perform over one million times faster than the fastest commodity desktop, laptop, or server
systems.
The supercomputer, a purpose-built computer that contains millions of processors or processor cores, has
been the HPC system paradigm for decades. Supercomputers are still with us; at this writing, the fastest
supercomputer is the US-based Frontier, with a processing speed of 1.102 exaflops, or quintillion floating-
point operations per second (flops). However, HPC solutions are being run by more and more organizations
today in clusters of high-speed computing servers hosted on-premises or via the cloud.
HPC workloads uncover new insights that advance human knowledge and create significant competitive
advantage. For example, high-performance computing is used to sequence DNA, automate stock trading,
and run artificial intelligence algorithms and simulations, like those that allow autonomous cars to drive
themselves, analyze terabytes of data streaming from the Internet of Things sensors, radar, and GPS
systems in real-time, to make split-second decisions.
(Anon., 2021)
Definition : Parallel computing involves using multiple computing resources simultaneously to solve a
computational problem. The problem is divided into smaller parts that can be solved concurrently, with
each part being further broken down into instructions. These instructions are executed simultaneously on
different processors or cores. To ensure coordination, an overall control mechanism is employed.
An example of parallel computing is processing payroll. The computational problem can be divided into
discrete pieces of work, such as calculating salaries for different employees. These pieces of work can be
executed concurrently, allowing for faster processing compared to using a single compute resource.
Figure 5 Parallel computing example of processing payroll
Parallel computers can be single computers with multiple processors/cores or a network of interconnected
computers. Modern computers have multiple functional units, execution units/cores, and hardware
threads, enabling parallel processing. Large parallel computers, known as supercomputers, often consist
of hardware clusters from different vendors connected by networks.
Benefits of parallel computing:
execution time of complex computational tasks. By breaking down the workload into smaller parts
and executing them concurrently on multiple processors, parallel computing can achieve higher
computational performance than a single compute resource.
single resource cannot efficiently handle. By partitioning tasks into smaller pieces and processing
them parallel across multiple processors, parallel computing can effectively handle large and
distributed datasets.
Besides that, distributed computing also has some disadvantages:
vulnerability to security breaches and data leaks. Proper security measures and continuous
monitoring are required to mitigate these risks.
and skilled personnel. This can lead to high initial costs for companies, although the long-term
benefits often outweigh the investment.
can cause overloading, leading to performance degradation and delays in executing commands.
components, requiring expertise in handling communication, security, and maintenance. Ensuring
efficient and reliable operation can be challenging.
network issues. Troubleshooting such errors becomes difficult as data is distributed across multiple
nodes.
communication. Maintaining consistency among processes, functions, and changes can be
challenging, requiring skilled professionals with programming expertise.
(Anon., 2021)
Figure 6 The distributed computing
An example of distributed computing is Ride-sharing services like Uber or Lyft utilize distributed computing
to handle large-scale operations and provide real-time services to users. When a user requests a ride, the
distributed backend system processes the request across multiple servers, finding an available driver,
calculating the optimal route, and providing real-time updates. This distributed computing infrastructure
allows efficient resource utilization, handling concurrent ride requests from different locations and
ensuring system responsiveness and reliability. Ride-sharing services demonstrate how distributed
computing enables handling massive operations, delivering real-time services, and enhancing the overall
user experience.
Definition : Cluster computing is a collection of tightly or loosely connected computers that work together
so that they act as a single entity. The connected computers execute operations all together thus creating
the idea of a single system. The clusters are generally connected through fast local area networks (LANs).
(shubhikagarg, 2021)
Advantages:
computer networks.