Professional Documents
Culture Documents
Nivedita Tiwari
Cloud computing has its roots as far back in 1950s when mainframe computers
came into existence. At that time, several users accessed the central computer via
dummy terminals. The only task these dummy terminals could perform was to
enable users access the mainframe computer. The prohibitive costs of this
mainframe devices did not make them economically feasible for organizations to
buy them. That was the time when the idea of provision of shared access to a single
computer occurred to the companies to save costs.
In 1970s, IBM came out with an operating system (OS) named VM. This allowed
for simultaneous operation of more than one OS. Guest Operating Systems could
be run on every VM, with their own memory and other infrastructure, making it
possible to share these resources. This caused the concept of virtualization in
computing to gain popularity.
1|P ag e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
The 1990s witnessed telecom operators begin offering virtualized private network
connections, whose quality of service was as good as those of point-to-point
(dedicated) services at a lesser cost. This paved way for telecom companies' to
offer many users shared access to a single physical infrastructure.
The other catalysts were grid computing, which allowed major issues to be
addressed via parallel computing; utility computing facilitated computing resources
to be offered as a metered service and SaaS allowed subscriptions, which were
network-based, to applications. Cloud computing, therefore, owes its emergence
to all these factors.
The three prominent types of cloud computing for businesses are Software-as-a-
Service (SaaS), which requires a company to subscribe to it and access services
over the Internet; Infrastructure-as-a-Service (IaaS) is a solution where large
cloud computing companies deliver virtual infrastructure; and Platform-as-a-
Service (PaaS) gives the company the freedom to make its own custom applications
that will be used by all its entire workforce.
Clouds are of four types: public, private, community, and hybrid. Through public
cloud, a provider can offer services, including storage and application, to anybody
via the Internet. They can be provided freely or charged on a pay-per-usage
method.
Public cloud services are easier to install and less expensive, as costs for
application, hardware and bandwidth are borne by the provider. They are scalable,
and the users avail only those services that they use.
A private cloud is referred to as also internal cloud or corporate cloud, and it called
so as it offers a proprietary computing architecture through which hosted services
can be provided to a restricted number of users protected by a firewall. A private
cloud is used by businesses that want to wield more control over their data.
A combination of two or more clouds is a hybrid cloud. Here, the clouds used are a
combination of private, public, or community.
Cloud computing is now being adopted by mobile phone users too, although there
are limitations, such as storage capacity, life of battery and restricted processing
2|P ag e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
power.
Some of the most popular cloud applications globally are Amazon Web Services
(AWS), Google Compute Engine, Rackspace, Salesforce.com, IBM Cloud Managed
Services, among others. Cloud services have made it possible for small and medium
businesses (SMBs) to be on par with large companies.
The main benefits of using cloud computing by companies are that they need not
buy any infrastructure, thus lowering their maintenance costs. They can do away
with the services used when their business demands have been met. It also gives
firms comfort that they have huge resources at beck and call if they suddenly
acquire a major project.
On the other hand, transferring their data to cloud makes businesses share their
data security responsibility with the provider of cloud services. This means that the
consumer of cloud services reposes lot of trust on the provider of those services.
Cloud consumers control on the services used is lesser than on on-premise IT
resources.
3|P ag e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
5. In the near future we can imagine that it will be possible to find the solution that
matches with our requirements by simply entering our request in a global digital
market that trades with cloud computing services.
6. The existence of such market will enable the automation of the discovery process
and its integration into its existing software systems.
7. Due to the existence of a global platform for trading cloud services will also help
service providers to potentially increase their revenue.
8. A cloud provider can also become a consumer of a competitor service in order to
fulfill its promises to customers.
The reference model for cloud computing is an abstract model that characterizes
and standardizes a cloud computing environment by partitioning it into abstraction
layers and cross-layer functions.
4|P ag e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
If we look in to the reference model as seen in above image we will find classification of
Cloud Computing services:
1. Infrastructure-as-a-Service (IaaS),
2. Platform-as-a-Service (PaaS), and
3. Software-as-a-Service (SaaS).
4. Web 2.0
3. Software as a service (SaaS) is a cloud computing offering that provides users with
access to a vendor’s cloud-based software. Users do not install applications on their local
devices. Instead, the applications reside on a remote cloud network accessed through the
web or an API. Through the application, users can store and analyze data and collaborate
on projects.
4. Web 2.0 is the term used to describe a variety of web sites and applications that allow
anyone to create and share online information or material they have created. A key
element of the technology is that it allows people to create, share, collaborate &
communicate.
5|P ag e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Some of the cloud service providers are- Amazon Web Service, Microsoft, IBM,
Salesforce.com
3. Resource pooling
Same resources can be used by more than one customer at a same time.
For example- storage, network bandwidth can be used by any number of customers and
without knowing the exact location of that resource.
4. Rapid elasticity
On users demand cloud services can be available and released. Cloud service capabilities
are unlimited and used in any quantity at any time.
5. Measured service
Resources used by the users can be monitored, controlled. This reports is available
for both cloud providers and consumer.
On the basis of this measured reports cloud systems automatically controls and optimizes
the resources based on the type of services.
Services like- Storage, processing, bandwidth etc.
6|P ag e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
With backups for their backups, you can rest assured your data and applications will be
available whenever you need them.
Mobility
The cloud brings a level of portability unheard of with traditional IT delivery. By managing
your data and software on the cloud, employees can access necessary information and
communicate with each other whenever and wherever they want from their laptop,
smartphone, or other Internet-connected devices.
Cloud-based solutions open up opportunities for more remote work and higher productivity
and efficiency as everyone is assured access to the same updated information at the touch
of a button.
Major failures: A few recent instances recently have cast a shadow over the
reliability of cloud computing. Issues related to outages and data security need to
be taken more seriously by the vendors, especially the big players. This is what is
also causing businesses to instead opt for private cloud, which excludes the benefits
of big data technology.
Government regulation: Given the critical data involved, governments are
trying to set up compliance standards for cloud computing vendors. If this comes
into effect, many businesses will be forced to close shop or get into a long-drawn-
out cycle of deciphering arcane guidelines. While the intention can be understood,
governments usually should stay away from technology decisions.
Security issues : Security risks of cloud computing have become the top concern
in 2018 as 77% of respondents stated in the referred survey. For the longest time,
the lack of resources/expertise was the number one voiced cloud challenge. In
2018 however, security inched ahead.
Distributed Systems
A distributed system contains multiple nodes that are physically separate but linked
together using the network. All the nodes in this system communicate with each other and
handle processes in tandem. Each of these nodes contains a small part of the distributed
operating system software. A diagram to better explain the distributed system is −
7|P ag e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Client/Server Systems
In client server systems, the client requests a resource and the server provides that
resource. A server may serve multiple clients at the same time while a client is in contact
with only one server. Both the client and server usually communicate via a computer
network and so they are a part of distributed systems.
All the nodes in the distributed system are connected to each other. So nodes can
easily share data with other nodes.
More nodes can easily be added to the distributed system i.e. it can be scaled as
required.
Failure of one node does not lead to the failure of the entire distributed system.
Other nodes can still communicate with each other.
8|P ag e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Resources like printers can be shared with multiple nodes rather than being
restricted to just one.
Disadvantages of Distributed Systems
Some disadvantages of Distributed Systems are as follows −
Distributed Architecture
In distributed architecture, components are presented on different platforms and several
components can cooperate with one another over a communication network in order to
achieve a specific objective or goal.
In this architecture, information processing is not confined to a single machine
rather it is distributed over several independent computers.
A distributed system can be demonstrated by the client-server architecture which
forms the base for multi-tier architectures; alternatives are the broker architecture
such as CORBA, and the Service-Oriented Architecture (SOA).
There are several technology frameworks to support distributed architectures,
including .NET, J2EE, CORBA, .NET Web services, AXIS Java Web services, and
Globus Grid services.
Middleware is an infrastructure that appropriately supports the development and
execution of distributed applications. It provides a buffer between the applications
and the network.
It sits in the middle of system and manages or supports the different components
of a distributed system. Examples are transaction processing monitors, data
convertors and communication controllers etc.
Middleware as an infrastructure for distributed system
9|P ag e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
The following table lists the different forms of transparency in a distributed system −
1
Access
Hides the way in which resources are accessed and the differences in data platform.
2
Location
Hides where resources are located.
3
Technology
Hides different technologies such as programming language and OS from user.
4
Migration / Relocation
Hide resources that may be moved to another location which are in use.
5
Replication
Hide resources that may be copied at several location.
6
Concurrency
Hide resources that may be shared with other users.
7
Failure
Hides failure and recovery of resources from user.
8
Persistence
Hides whether a resource ( software ) is in memory or disk.
Resource Sharing
10 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Resource sharing means that the existing resources in a distributed system can be
distributed systems shares resources like hardware (disks and printers), software (files,
windows and data objects) and data. Hardware resources are shared for reductions in
cost and convenience. Data is shared for consistency and exchange of information.
Heterogeneity
by different developers.
Openness
distributed system must be open in terms of Hardware and Softwares. In order to make a
Concurrency
Concurrency is a property of a system representing the fact that multiple activities are
executed at the same time. The concurrent execution of activities takes place in different
11 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
these activities may perform some kind of interactions among them. Concurrency reduces
Scalability
Scalability is mainly concerned about how the distributed system handles the growth as
the number of users for the system increases. Mostly we scale the distributed system by
adding more computers in the network. Components should not need to be changed
when we scale the system. Components should be designed in such a way that it is
scalable.
Fault Tolerance
In a distributed system hardware, software, network anything can fail. The system must
be designed in such a way that it is available all the time even after something has failed.
Transparency
When it comes to defining web 2.0. the term means such internet applications
which allow sharing and collaboration opportunities to people and help them to
12 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Wikis
A wiki is a collaborative tool that allows students to contribute and modify one or more
pages of course related materials. Wikis are collaborative in nature and facilitate
open-editing system.
Blogging
The word blog is actually a shortened form of its original name, "weblog." These weblogs
allowed early internet users to "log" the details of their day in diary-style entries. Blogs
often allow readers to comment, so as they became more common, communities sprung
up around popular blogs.
Social network
Classmates : One of the largest websites for connecting high school friends and
keeping in touch with them and future reunions.
13 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
from Google.
Service-oriented computing
Service orientation is the core reference model for cloud
systems
Service-Oriented Architecture
14 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
SOA allows users to combine a large number of facilities from existing services to
form applications.
SOA encompasses a set of design principles that structure system development and
provide means for integrating components into a coherent and decentralized
system.
SOA based computing packages functionalities into a set of interoperable services,
which can be integrated into different software systems belonging to separate
business domains.
There are two major roles within Service-oriented Architecture:
1. Service provider: The service provider is the maintainer of the service and the
organization that makes available one or more services for others to use. To
advertise services, the provider can publish them in a registry, together with a
service contract that specifies the nature of the service, how to use it, the
requirements for the service, and the fees charged.
2. Service consumer: The service consumer can locate the service metadata in the
registry and develop the required client components to bind and use the service.
Services might aggregate information and data retrieved from other services or create
workflows of services to satisfy the request of a given service consumer. This practice
is known as service orchestration Another important interaction pattern is service
choreography, which is the coordinated interaction of services without a single point of
control.
Components of SOA:
15 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Service reusability: In SOA, applications are made from existing services. Thus,
services can be reused to make many applications.
Easy maintenance: As services are independent of each other they can be
updated and modified easily without affecting other services.
Platform independent: SOA allows making a complex application by combining
services picked from different sources, independent of the platform.
16 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
1. SOA infrastructure is used by many armies and air force to deploy situational
awareness systems.
2. SOA is used to improve the healthcare delivery.
3. Nowadays many apps are games and they use inbuilt functions to run. For
example, an app might need GPS so it uses inbuilt GPS functions of the device. This
is SOA in mobile solutions.
4. SOA helps maintain museums a virtualized storage pool for their information and
content.
Organizational flexibility
Service Re-use Lower software development and Service repository
management costs
Messaging Configuration flexibility Messaging program
Message Monitoring Business intelligence Activity monitor
Performance measurement
17 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
UTILITY COMPUTING
Utility computing is a model in which computing resources are provided to the customer
based on specific demand. The service provider charges exactly for the services
provided, instead of a flat rate.
The foundational concept is that users or businesses pay the providers of utility
computing for the amenities used – such as computing capabilities, storage space and
applications services. The customer is thus, absolved from the responsibility of
maintenance and management of the hardware. Consequently, the financial layout is
minimal for the organization.
Utility computing helps eliminate data redundancy, as huge volumes of data are
distributed across multiple servers or backend systems. The client however, can access
the data anytime and from anywhere.
18 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Now let’s come back to our real life problem. We could definitely say that complexity
will decrease when there are 2 queues and 2 cashier giving tickets to 2 persons
simultaneously. This is an example of Parallel Computing.
Parallel Computing –
It is the use of multiple processing elements simultaneously for solving any problem.
Problems are broken down into instructions and are solved concurrently as each
resource which has been applied to work is working at the same time.
Advantages of Parallel Computing over Serial Computing are as follows:
1. It saves time and money as many resources working together will reduce the time
and cut potential costs.
2. It can be impractical to solve larger problems on Serial Computing.
3. It can take advantage of non-local resources when the local resources are finite.
19 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
4. Serial Computing ‘wastes’ the potential computing power, thus Parallel Computing
makes better work of hardware.
Types of Parallelism:
1. Bit-level parallelism: It is the form of parallel computing which is based on the
increasing processor’s size. It reduces the number of instructions that the system
must execute in order to perform a task on large-sized data.
Example: Consider a scenario where an 8-bit processor must compute the sum of
two 16-bit integers. It must first sum up the 8 lower-order bits, then add the 8
higher-order bits, thus requiring two instructions to perform the operation. A 16-bit
processor can perform the operation with just one instruction.
2. Instruction-level parallelism: A processor can only address less than one
instruction for each clock cycle phase. These instructions can be re-ordered and
grouped which are later on executed concurrently without affecting the result of the
program. This is called instruction-level parallelism.
3. Task Parallelism: Task parallelism employs the decomposition of a task into
subtasks and then allocating each of the subtasks for execution. The processors
perform execution of sub tasks concurrently.
Why parallel computing?
The whole real world runs in dynamic nature i.e. many things happen at a certain
time but at different places concurrently. This data is extensively huge to manage.
Real world data needs more dynamic simulation and modeling, and for achieving
the same, parallel computing is the key.
Parallel computing provides concurrency and saves time and money.
Complex, large datasets, and their management can be organized only and only
using parallel computing’s approach.
Ensures the effective utilization of the resources. The hardware is guaranteed to be
used effectively whereas in serial computation only some part of hardware was
used and the rest rendered idle.
Also, it is impractical to implement real-time systems using serial computing.
Applications of Parallel Computing:
Data bases and Data mining.
Real time simulation of systems.
Science and Engineering.
Advanced graphics, augmented reality and virtual reality.
Limitations of Parallel Computing:
It addresses such as communication and synchronization between multiple sub-
tasks and processes which is difficult to achieve.
The algorithms must be managed in such a way that they can be handled in the
parallel mechanism.
The algorithms or program must have low coupling and high cohesion. But it’s
difficult to create such programs.
More technically skilled and expert programmers can code a parallelism based
program well.
Future of Parallel Computing: The computational graph has undergone a great
transition from serial computing to parallel computing. Tech giant such as Intel has
already taken a step towards parallel computing by employing multicore processors.
Parallel computation will revolutionize the way computers work in the future, for the
better good. With all the world connecting to each other even more than before,
Parallel Computing does a better role in helping us stay that way. With faster
networks, distributed systems, and multi-processor computers, it becomes even more
necessary.
20 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Parallel processing and parallel computing occur in tandem, therefore the terms are
often used interchangeably; however, where parallel processing concerns the number of
cores and CPUs running in parallel in the computer, parallel computing concerns the
manner in which software behaves to optimize for that condition.
21 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Sequential computing, also known as serial computation, refers to the use of a single
processor to execute a program that is broken down into a sequence of discrete
instructions, each executed one after the other with no overlap at any given time.
Software has traditionally been programmed sequentially, which provides a simpler
approach, but is significantly limited by the speed of the processor and its ability to
execute each series of instructions. Where uni-processor machines use sequential data
structures, data structures for parallel computing environments are concurrent.
1. Parallel computing
2. Distributed computing
Parallel computing –
22 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
SISD
SISD stands for 'Single Instruction and Single Data Stream'. It represents the
organization of a single computer containing a control unit, a processor unit, and a
memory unit.
Instructions are executed sequentially, and the system may or may not have internal
parallel processing capabilities.
Most conventional computers have SISD architecture like the traditional Von-Neumann
computers.
Parallel processing, in this case, may be achieved by means of multiple functional units
or by pipeline processing.
Instructions are decoded by the Control Unit and then the Control Unit sends the
instructions to the processing units for execution.
23 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Examples:
SIMD
SIMD stands for 'Single Instruction and Multiple Data Stream'. It represents an
organization that includes many processing units under the supervision of a common
control unit.
All processors receive the same instruction from the control unit but operate on different
items of data.
The shared memory unit must contain multiple modules so that it can communicate with
all the processors simultaneously.
24 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
MISD structure is only of theoretical interest since no practical system has been
constructed using this organization.
In MISD, multiple processing units operate on one single-data stream. Each processing
unit operates on the data independently via separate instruction stream.
Example:
MIMD
MIMD stands for 'Multiple Instruction and Multiple Data Stream'.
25 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Examples:
Task Parallelism
Task Parallelism means concurrent execution of the different task on multiple
computing cores.
Consider again our example above, an example of task parallelism might involve two
threads, each performing a unique statistical operation on the array of elements. Again
The threads are operating in parallel on separate computing cores, but each is
performing a unique operation.
Bit-level parallelism
Bit-level parallelism is a form of parallel computing which is based on increasing
processor word size. In this type of parallelism, with increasing the word size reduces
the number of instructions the processor must execute in order to perform an operation
on variables whose sizes are greater than the length of the word.
26 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
E.g., consider a case where an 8-bit processor must add two 16-bit integers. First the
8 lower-order bits from each integer were must added by processor, then add the 8
higher-order bits, and then two instructions to complete a single operation. A processor
with 16- bit would be able to complete the operation with single instruction.
Instruction-level parallelism
Instruction-level parallelism means the simultaneous execution of multiple
instructions from a program. While pipelining is a form of ILP, we must exploit it to
achieve parallel execution of the instructions in the instruction stream.
Example
for (i=1; i<=100; i= i+1)
y[i] = y[i] + x[i];
This is a parallel loop. Every iteration of the loop can overlap with any other iteration,
although within each loop iteration there is little opportunity for overlap.
Distributed hardware cannot use a shared memory due to being physically separated, so the
participating computers exchange messages and data (e.g. computation results) over a network.
This inter-machine communicationoccurs locally over an intranet (e.g. in a data center) or across
the country and world via the internet. Messages are transferred using internet protocols such
as TCP/IP and UDP.
In line with the principle of transparency, distributed computing strives to present itself
externally as a functional unit and to simplify the use of technology as much as possible. For
example, users searching for a product in the database of an online shop perceive the shopping
experience as a single process and do not have to deal with the modular system architecture
being used.
27 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Distributed applications often use a client-server architecture. Clients and servers share the work
and cover certain application functions with the software installed on them. A product search is
carried out using the following steps: The client acts as an input instance and a user
interface that receives the user request and processes it so that it can be sent on to a server.
The remote server then carries out the main part of the search function and searches a
database. The search results are prepared on the server-side to be sent back to the client and
are communicated to the client over the network. In the end, the results are displayed on the
user’s screen.
This integration function, which is in line with the transparency principle, can also be viewed as
a translation task. Technically heterogeneous application systems and platforms normally
cannot communicate with one another. Middleware helps them to “speak one language” and
work together productively. In addition to cross-device and cross-platform interaction, middleware
also handles other tasks like data management. It controls distributed applications’ access to
functions and processes of operating systems that are available locally on the connected
computer.
28 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
cloud computing
grid computing
cluster computing
Cloud computing uses distributed computing to provide customers with highly scalable cost-
effective infrastructures and platforms. Cloud providers usually offer their resources through
hosted services that can be used over the internet. A number of different service models have
established themselves on the market:
Software as a service (SaaS): In the case of SaaS, the customer uses the cloud
provider’s applications and associated infrastructure (e.g. servers, online storage,
computing power). The applications can be accessed with a variety of devices via a thin
client interface (e.g. a browser-based web app). Maintenance and administration of the
outsourced infrastructure is handled by the cloud provider.
Platform as a service(PaaS): In the case of PaaS, a cloud-based environment is
provided (e.g. for developing web applications). The customer retains control over the
29 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
applications provided and can configure customized user settings while the technical
infrastructure for distributed computing is handled by the cloud provider.
Infrastructure as a service (IaaS): In the case of IaaS, the cloud provider supplies a
technical infrastructure which users can access via public or private networks. The
provided infrastructure may include the following components: servers, computing and
networking resources, communication devices (e.g. routers, switches, and firewalls),
storage space, and systems for archiving and securing data. As for the customer, they
retain control over operating systems and provided applications.
Grid computing is based on the idea of a supercomputer with enormous computing power.
However, computing tasks are performed by many instances rather than just one. Servers and
computers can thus perform different tasks independently of one another. Grid computing can
access resources in a very flexible manner when performing tasks. Normally, participants will
allocate specific resources to an entire project at night when the technical infrastructure tends to
be less heavily used.
One advantage of this is that highly powerful systems can be quickly used and
the computing power can be scaled as needed. There is no need to replace or upgrade an
expensive supercomputer with another pricey one to improve performance.
Since grid computing can create a virtual supercomputer from a cluster of loosely
interconnected computers, it is specialized in solving problems that are particularly
computationally intensive. This method is often used for ambitious scientific projects
and decrypting cryptographic codes.
Cluster computing cannot be clearly differentiated from cloud and grid computing. It is a more
general approach and refers to all the ways in which individual computers and their computing
power can be combined together in clusters. Examples of this include server clusters, clusters in
big data and in cloud environments, database clusters, and application clusters. Computer
networks are also increasingly being used in high-performance computing which can solve
particularly demanding computing problems.
Different types of distributed computing can also be defined by looking at the system
architectures and interaction models of a distributed infrastructure. Due to the complex
system architectures in distributed computing, the term distributed systems is more often used.
The following are some of the more commonly used architecture models in distributed
computing:
client-server model
peer-to-peer model
multilayered model (multi-tier architectures)
service-oriented architecture (SOA)
Client-Server Architecture
The client-server architecture is the most common distributed system architecture
which decomposes the system into two major subsystems or logical processes −
Client − This is the first process that issues a request to the second process
i.e. the server.
Server − This is the second process that receives the request, carries it out,
and sends a reply to the client.
30 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
In this architecture, the application is modelled as a set of services that are provided
by servers and a set of clients that use these services. The servers need not know
about clients, but the clients must know the identity of servers, and the mapping of
processors to processes is not necessarily 1 : 1
Client-server Architecture can be classified into two models based on the functionality
of the client −
Thin-client model
In thin-client model, all the application processing and data management is carried
by the server. The client is simply responsible for running the presentation software.
Used when legacy systems are migrated to client server architectures in which
legacy system acts as a server in its own right with a graphical interface
implemented on a client
A major disadvantage is that it places a heavy processing load on both the
server and the network.
Thick/Fat-client model
In thick-client model, the server is only in charge for data management. The software
on the client implements the application logic and the interactions with the system
user.
Most appropriate for new C/S systems where the capabilities of the client
system are known in advance
31 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
More complex than a thin client model especially for management. New
versions of the application have to be installed on all clients.
Advantages
Disadvantages
32 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
The most general use of multi-tier architecture is the three-tier architecture. A three-
tier architecture is typically composed of a presentation tier, an application tier, and a
data storage tier and may execute on a separate processor.
Presentation Tier
Presentation layer is the topmost level of the application by which users can access
directly such as webpage or Operating System GUI (Graphical User interface). The
primary function of this layer is to translate the tasks and results to something that
user can understand. It communicates with other tiers so that it places the results to
the browser/client tier and all other tiers in the network.
Application tier coordinates the application, processes the commands, makes logical
decisions, evaluation, and performs calculations. It controls an application’s
functionality by performing detailed processing. It also moves and processes data
between the two surrounding layers.
Data Tier
In this layer, information is stored and retrieved from the database or file system. The
information is then passed back for processing and then back to the user. It includes
the data persistence mechanisms (database servers, file shares, etc.) and provides
API (Application Programming Interface) to the application tier which provides
methods of managing the stored data.
33 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Advantages
Better performance than a thin-client approach and is simpler to manage than
a thick-client approach.
Enhances the reusability and scalability − as demands increase, extra servers
can be added.
Provides multi-threading support and also reduces network traffic.
Provides maintainability and flexibility
Disadvantages
Unsatisfactory Testability due to lack of testing tools.
More critical server reliability and availability.
Architectural Design
The software needs the architectural design to represents the design of
software. IEEE defines architectural design as “the process of defining a
collection of hardware and software components and their interfaces to
establish the framework for the development of a computer system.” The
software that is built for computer-based systems can exhibit one of these
many architectural styles.
Each style will describe a system category that consists of :
A set of components(eg: a database, computational modules) that will
perform a function required by the system.
The set of connectors will help in coordination, communication, and
cooperation between the components.
Conditions that how components can be integrated to form the system.
Semantic models that help the designer to understand the overall
properties of the system.
The use of architectural styles is to establish a structure for all the
components of the system.
34 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
35 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
36 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Batch Sequential
Batch sequential is a classical data processing model, in which a data transformation
subsystem can initiate its process only after its previous subsystem is completely
through −
The flow of data carries a batch of data as a whole from one subsystem to
another.
The communications between the modules are conducted through temporary
intermediate files which can be removed by successive subsystems.
It is applicable for those applications where data is batched, and each
subsystem reads related input files and writes output files.
Typical application of this architecture includes business data processing such
as banking and utility billing.
Advantages
Disadvantages
37 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Filter
Advantages
38 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Disadvantages
Pipe
Pipes are stateless and they carry binary or character stream which exist between
two filters. It can move a data stream from one filter to another. Pipes use a little
contextual information and retain no state information between instantiations.
Types of Subsystems
A process control architecture would have a processing unit for changing the
process control variables and a controller unit for calculating the amount of
changes.
A controller unit must have the following elements −
Controlled Variable − Controlled Variable provides values for the underlying
system and should be measured by sensors. For example, speed in cruise
control system.
Input Variable − Measures an input to the process. For example, temperature
of return air in temperature control system
Manipulated Variable − Manipulated Variable value is adjusted or changed by
the controller.
Process Definition − It includes mechanisms for manipulating some process
variables.
39 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Application Areas
40 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
process1 and process2 are executing simultaneously and they share some resources or
use some information from another process. Process1 generate information about
certain computations or resources being used and keeps it as a record in shared
memory. When process2 needs to use the shared information, it will check in the
record stored in shared memory and take note of the information generated by
process1 and act accordingly. Processes can use shared memory for extracting
information as a record from another process as well as for delivering any specific
information to other processes.
Let’s discuss an example of communication between processes using shared memory
method.
41 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
item is equal to the size of buffer, producer will wait to get it consumed by the
Consumer. Similarly, the consumer will first check for the availability of the item. If
no item is available, Consumer will wait for Producer to produce it. If there are items
available, Consumer will consume it. The pseudo code to demonstrate is provided
below:
#define buff_max 25
#define mod %
struct item{
// or consumed data
---------
42 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
int free_index = 0;
int full_index = 0;
item nextProduced;
while(1){
// for production.
// if so keep waiting.
shared_buff[free_index] = nextProduced;
43 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
item nextConsumed;
while(1){
while((free_index == full_index);
nextConsumed = shared_buff[full_index];
In the above code, the Producer will start producing again when the (free_index+1)
mod buff max will be free because if it it not free, this implies that there are still items
that can be consumed by the Consumer so there is no need to produce more. Similarly,
if free index and full index point to the same index, this implies that there are no items
to consume.
44 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
The message size can be of fixed size or of variable size. If it is of fixed size, it is easy
for an OS designer but complicated for a programmer and if it is of variable size then
it is easy for a programmer but complicated for the OS designer. A standard message
can have two parts: header and body.
The header part is used for storing message type, destination id, source id, message
length, and control information. The control information contains information like
what to do if runs out of buffer space, sequence number, priority. Generally, message
is sent using FIFO style.
45 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
The client stub makes a system call to send the message to the server and puts the
parameters in the message.
The message is sent from the client to the server by the client’s operating system.
The message is passed to the server stub by the server operating system.
The parameters are removed from the message by the server stub.
Then, the server procedure is called by the server stub.
A diagram that demonstrates this is as follows −
Remote procedure calls support process oriented and thread oriented models.
The internal message passing mechanism of RPC is hidden from the user.
The effort to re-write and re-develop the code is minimum in remote procedure calls.
Remote procedure calls can be used in distributed environment as well as the local
environment.
Many of the protocol layers are omitted by RPC to improve performance.
Disadvantages of Remote Procedure Call
Some of the disadvantages of RPC are as follows −
The remote procedure call is a concept that can be implemented in different ways. It
is not a standard.
There is no flexibility in RPC for hardware architecture. It is only interaction based.
There is an increase in costs because of remote procedure call.
46 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Implementing RPC
doOperation
getRequest
sendReply
47 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
DOF Object: In the DOF Object Model, a DOF object can be anything that provides the functionality
defined in a DOF interface. All DOF objects are providers.
Requestor: A requestor is a node on a DOF network that requests functionality from a provider.
Provider: A provider is a node on a DOF network that provides functionality defined in one or more DOF
interfaces.
DOF Interface: A DOF interface defines the items of functionality that a DOF object must provide.
Interface items of functionality are properties, methods, events, and exceptions.
Node: A node is simply a connection point: either redistributing communication (data) or acting as a
communication endpoint.
Service: A service is a type of object that can provide centralized functionality to other objects.
Security: By leveraging common libraries and components, using DOF technology makes security easier
to understand, manage, and integrate into products.
48 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
2. Bottom Up approach
49 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
In this approach, we first define the service contract which is WSDL so it’s called as
Contract first approach.
As the WSDL contains all the information about the service like service definition,message
format,transport protocol,security details,using this WSDL
service code is generated which we call as skeleton,Then service code is filled up as per the
need.
So in simple words, we could say that Top down approach is WSDL first, service later.
50 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Bottom Up approach
In this approach WSDL is generated at last ,So this bottom up approach is also called
as contract last approach.
Many tools are available to generate the WSDL file automatically based on the service code.
So in simple words, we could say that Bottom Up approach is WSDL last, service first.
o Front End
51 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
o Back End
Front End
The front end is used by the client. It contains client-side interfaces and applications
that are required to access the cloud computing platforms. The front end includes
web servers (including Chrome, Firefox, internet explorer, etc.), thin & fat clients,
tablets, and mobile devices.
Back End
The back end is used by the service provider. It manages all the resources that are
required to provide cloud computing services. It includes a huge amount of data
storage, security mechanism, virtual machines, deploying models, servers, traffic
control mechanisms, etc.
Note: Both front end and back end are connected to others through a network,
generally using the internet connection.
1. Client Infrastructure
52 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
2. Application
The application may be any software or platform that a client wants to access.
3. Service
A Cloud Services manages that which type of service you access according to the
client’s requirement.
Example: Amazon Web Services (AWS) EC2, Google Compute Engine (GCE), Cisco
Metapod.
4. Runtime Cloud
Runtime Cloud provides the execution and runtime environment to the virtual
machines.
5. Storage
6. Infrastructure
It provides services on the host level, application level, and network level.
Cloud infrastructure includes hardware and software components such as servers,
storage, network devices, virtualization software, and other storage resources that
are needed to support the cloud computing model.
53 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
7. Management
8. Security
9. Internet
The Internet is medium through which front end and back end can interact and
communicate with each other.
1. Cloud Ecosystem:
3. Service Conceptualizers
4. Resource Allocators
5. Cloud Providers
6. Service controller
7. Pricer
8. VM Monitor
54 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Benefits
IaaS allows the cloud provider to freely locate the infrastructure over the Internet in a
cost-effective manner. Some of the key benefits of IaaS are listed below:
Full control of the computing resources through administrative access to VMs.
Flexible and efficient renting of computer hardware.
Portability, interoperability with legacy applications.
55 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
administrative access to virtual machines, the customer can run any software, even
a custom operating system.
Issues
IaaS shares issues with PaaS and SaaS, such as Network dependence and browser
based risks. It also has some specific issues, which are mentioned in the following
diagram:
Because IaaS offers the customer to run legacy software in provider's infrastructure,
it exposes customers to all of the security vulnerabilities of such legacy software.
The VM can become out-of-date with respect to security updates because IaaS
allows the customer to operate the virtual machines in running, suspended and off
56 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
state. However, the provider can automatically update such VMs, but this mechanism
is hard and complex.
The customer uses virtual machines that in turn use the common disk resources
provided by the cloud provider. When the customer releases the resource, the cloud
provider must ensure that next customer to rent the resource does not observe data
residue from previous customer.
Characteristics
Here are the characteristics of IaaS service model:
Virtual machines with pre-installed software.
Virtual machines with pre-installed operating systems such as Windows, Linux,
and Solaris.
On-demand availability of resources.
Allows to store copies of particular data at different locations.
The computing resources can be easily scaled up and down.
57 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Benefits
Following are the benefits of PaaS model:
58 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Customer need not bother about the administration because it is the responsibility of
cloud provider.
Customer need not purchase expensive hardware, servers, power, and data storage.
Scalable solutions
It is the responsibility of the cloud provider to maintain software versions and patch
installations.
Issues
Like SaaS, PaaS also places significant burdens on customer's browsers to maintain
reliable and secure connections to the provider’s systems. Therefore, PaaS shares
many of the issues of SaaS. However, there are some specific issues associated with
PaaS as shown in the following diagram:
59 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Although standard languages are used, yet the implementations of platform services
may vary. For example, file, queue, or hash table interfaces of one platform may differ
from another, making it difficult to transfer the workloads from one platform to another.
Since PaaS applications are dependent on network, they must explicitly use
cryptography and manage security exposures.
Characteristics
Here are the characteristics of PaaS service model:
PaaS offers browser based development environment. It allows the
developer to create database and edit the application code either via
Application Programming Interface or point-and-click tools.
PaaS provides built-in security, scalability, and web service interfaces.
60 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
PaaS provides built-in tools for defining workflow, approval processes, and
business rules.
It is easy to integrate PaaS with other applications on the same platform.
PaaS also provides web services interfaces that allow us to connect the
applications outside the platform.
PaaS Types
Based on the functions, PaaS can be classified into four types as shown in the
following diagram:
The stand-alone PaaS works as an independent entity for a specific function. It does
not include licensing or technical dependencies on specific SaaS applications.
Open PaaS offers an open source software that helps a PaaS provider to run
applications.
61 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Characteristics
Here are the characteristics of SaaS service model:
SaaS makes the software available over the Internet.
The software applications are maintained by the vendor.
The license to the software may be subscription based or usage based. And it
is billed on recurring basis.
SaaS applications are cost-effective since they do not require any maintenance
at end user side.
They are available on demand.
They can be scaled up or down on demand.
They are automatically upgraded and updated.
SaaS offers shared data model. Therefore, multiple users can share single
instance of infrastructure. It is not required to hard code the functionality for
individual users.
All users run the same version of the software.
Benefits
Using SaaS has proved to be beneficial in terms of scalability, efficiency and
performance. Some of the benefits are listed below:
62 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
The customer can have single license for multiple computers running at different
locations which reduces the licensing cost. Also, there is no requirement for license
servers because the software runs in the provider's infrastructure.
The cloud provider stores data centrally. However, the cloud providers may store data
in a decentralized manner for the sake of redundancy and reliability.
Multitenant solutions
Issues
There are several issues associated with SaaS, some of them are listed below:
If the customer visits malicious website and browser becomes infected, the
subsequent access to SaaS application might compromise the customer's data.
To avoid such risks, the customer can use multiple browsers and dedicate a specific
browser to access SaaS applications or can use virtual desktop while accessing the
SaaS applications.
Network dependence
The SaaS application can be delivered only when network is continuously available.
Also network should be reliable but the network reliability cannot be guaranteed either
by cloud provider or by the customer.
63 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Transferring workloads from one SaaS cloud to another is not so easy because work
flow, business logics, user interfaces, support scripts can be provider specific.
No License Required
Low Deployment Cost
Less Vendor Lock-in
More portable applications
More Robust Solution
The following diagram shows the SaaS implementation based on SOA:
64 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Public Cloud allows systems and services to be easily accessible to general public.
The IT giants such as Google, Amazon and Microsoft offer cloud services via
Internet. The Public Cloud Model is shown in the diagram below.
Benefits
There are many benefits of deploying cloud as public cloud model. The following
diagram shows some of those benefits:
65 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Cost Effective
Since public cloud shares same resources with large number of customers it turns
out inexpensive.
Reliability
The public cloud employs large number of resources from different locations. If any
of the resources fails, public cloud can employ another one.
Flexibility
The public cloud can smoothly integrate with private cloud, which gives customers a
flexible approach.
Location Independence
Public cloud is also based on pay-per-use model and resources are accessible
whenever customer needs them.
High Scalability
66 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Cloud resources are made available on demand from a pool of resources, i.e., they
can be scaled up or down according the requirement.
Disadvantages
Here are some disadvantages of public cloud model:
Low Security
In public cloud model, data is hosted off-site and resources are shared publicly,
therefore does not ensure higher level of security.
Less Customizable
Benefits
There are many benefits of deploying cloud as private cloud model. The following
diagram shows some of those benefits:
67 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Private cloud operations are not available to general public and resources are
shared from distinct pool of resources. Therefore, it ensures
high security and privacy.
More Control
The private cloud has more control on its resources and hardware than public cloud
because it is accessed only within an organization.
The private cloud resources are not as cost effective as resources in public clouds
but they offer more efficiency than public cloud resources.
Disadvantages
Here are the disadvantages of using private cloud model:
The private cloud is only accessible locally and is very difficult to deploy globally.
High Priced
Limited Scalability
The private cloud can be scaled only within capacity of internal hosted resources.
68 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Additional Skills
Benefits
There are many benefits of deploying cloud as hybrid cloud model. The following
diagram shows some of those benefits:
Scalability
It offers features of both, the public cloud scalability and the private cloud scalability.
69 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Flexibility
Cost Efficiency
Public clouds are more cost effective than private ones. Therefore, hybrid clouds can
be cost saving.
Security
Disadvantages
Networking Issues
Security Compliance
It is necessary to ensure that cloud services are compliant with security policies of
the organization.
Infrastructure Dependency
70 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Benefits
There are many benefits of deploying cloud as community cloud model.
Cost Effective
Community cloud offers same advantages as that of private cloud at low cost.
71 | P a g e
TYCS Cloud Computing Unit 1 Notes Compiled by : Ms. Nivedita Tiwari
Security
The community cloud is comparatively more secure than the public cloud but less
secured than the private cloud.
Issues
Since all data is located at one place, one must be careful in storing data in
community cloud because it might be accessible to others.
It is also challenging to allocate responsibilities of governance, security and
cost among organizations.
72 | P a g e