Unit 1: Cloud Computing: An Introduction
Unit 1: Cloud Computing: An Introduction
Unit 1: Cloud Computing: An Introduction
Cloud computing allows storing data like files, images, audios, and videos, etc on the cloud
storage. The organization need not set physical storage systems to store a huge volume of
business data which costs so high nowadays. As they are growing technologically, data
generation is also growing with respect to time, and storing that becoming problem. In that
situation, Cloud storage is providing this service to store and access data any time as per
requirement.
Cloud vendors provide security from their side by storing safe to the data as well as providing
a backup facility to the data. They offer various recovery application for retrieving the lost
data. In the traditional way backup of data is a very complex problem and also it is very
difficult sometimes impossible to recover the lost data. But cloud computing has made
backup and recovery applications very easy where there is no fear of running out of backup
media or loss of data.
We know the volume of big data is so high where storing that in traditional data management
system for an organization is impossible. But cloud computing has resolved that problem by
allowing the organizations to store their large volume of data in cloud storage without
worrying about physical storage. Next comes analyzing the raw data and finding out insights
or useful information from it is a big challenge as it requires high-quality tools for data
analytics. Cloud computing provides the biggest facility to organizations in terms of storing
and analyzing big data.
4. E-commerce Application:
Cloud-based e-commerce allows responding quickly to the opportunities which are emerging.
Users respond quickly to the market opportunities as well as the traditional e-commerce
responds to the challenges quickly. Cloud-based e-commerce gives a new approach to doing
business with the minimum amount as well as minimum time possible. Customer data,
product data, and other operational systems are managed in cloud environments.
Cloud computing can provide its services to multiple activities conducted by the government. It
can support the government to move from the traditional ways of management and service
providers to anadvanced way of everything by expanding the availability of the environment,
making the environment more scalable and customized. It can help the government to reduce the
unnecessary costin managing, installing, and upgrading applications and doing all these with
help of could computing and utilizing that money public service.
7. Cloud Computing in Medical Fields :
In the medical field also nowadays cloud computing is used for storing and accessing the
data as it allows to store data and access it through the internet without worrying about any
physical setup. Itfacilitates easier access and distribution of information among the various
medical professional andthe individual patients. Similarly, with help of cloud computing
offsite buildings and treatment facilities like labs, doctors making emergency house calls and
ambulances information, etc can be easily accessed and updated remotely instead of having
to wait until they can access a hospital computer.
8. Entertainment Applications:
Many people get entertainment from the internet, in that case, cloud computing is the perfect
place forreaching to a varied consumer base. Therefore different types of entertainment
industries reach near the target audience by adopting a multi-cloud strategy. Cloud-based
entertainment provides various entertainment applications such as online music/video, online
games and video conferencing, streaming services, etc and it can reach any device be it TV,
mobile, set-top box, or any other form. Itis a new form of entertainment called On-Demand
Entertainment (ODE).
Availability of Services
Data Lock-In: Shifting of large volume of data from one platform to another.
Data Segregation: Isolation of data of each user.
Scaling Resources: Sudden demand of increased resources may arise.
Location of Data: Geographically stored(Each country has its own rule)
Deletion of Data: User demands complete removal of data
Recovery and Backup: How frequently and how fast a cloud system recovers from failure.
UNIT 2 CLOUD DEPLOYMENT MODELS, SERVICE
MODELS AND CLOUD ARCHITECTURE
Structure
2.0 Introduction
2.1 Objectives
2.2 Cloud Deployment Models
2.2.1 Public Cloud
2.2.2 Private Cloud
2.2.3 Community Cloud
2.2.4 Hybrid Cloud
2.3 Choosing Appropriate Deployment Model
2.3.1 Suitability of Public Cloud
2.3.2 Suitability of Private Cloud
2.3.3 Suitability of Community Cloud
2.3.4 Suitability of Hybrid Cloud
2.3.5 Comparative analysis of cloud deployment models
2.4 Service Delivery Models
2.4.1. Infrastructure As a Service (IaaS)
2.4.2. Platform As a Service(PaaS)
2.4.3. Software As a Service (SaaS)
2.4.4. Other Services (Security Management, Identity Management, Storage, Database, Back-up, etc.)
2.5 Cloud architecture
2.6 Layers and Anatomy of the Cloud
2.7 Network Connectivity in Cloud Computing
2.8 Summary
2.9 Solutions/Answers
2.10 Further Readings
2.0 INTRODUCTION
The purpose of this chapter is to provide a broad range of cloud deployment methods, which are one of the most
essential topics in cloud computing. The various methods in which the cloud computing environment may be set up
or the various ways in which the cloud can be deployed are referred to as deployment models. It is critical to have a
basic understanding of deployment models since setting up a cloud is the most basic requirement before moving on
to any other aspects of cloud computing. This chapter discusses the basic three core cloud computing service
models, namely IaaS, PaaS, and SaaS. The end user's and service provider roles may differ depending on the
services given and subscribed to. In addition, the end user and service provider responsibility of IaaS, PaaS, and
SaaS are discussed in this chapter. This chapter also covers appropriateness, and benefits and drawbacks of various
cloud service models. This chapter consists of a brief overview of various other service models such as NaaS,
STaaS, DBaaS, SECaaS, and IDaaS. The cloud architecture is initially described in this chapter. Cloud architecture
is made up of a series of components arranged in a hierarchical order that collectively define how the cloud
functions. The cloud anatomy is explained in the next section, followed by an overview of cloud network
connection.
2.1 OBJECTIVES
After completion of this unit, you will be able to:
Minimal Investment: This model eliminates the need for extra hardware expenditures.
No startup costs: Users can rent the computing resources on pay-per-use, there is no need of establishing
infrastructure from user side in turn reduces the startup costs.
Infrastructure Management is not required: There is no need of any hardware to be set up from user
side but everything is operated and controlled by service provider.
Zero maintenance: The service provider is responsible for all maintenance work from infrastructure to
software applications.
Dynamic Scalability: On-demand resources are provisioned dynamically as per customer requirements.
2.2.2 Private Cloud: It is a cloud environment created specifically for a single enterprise. It is also known as on-
premise cloud. It allows access to infrastructure and services inside the boundaries of an organization or company.
Private cloud is more secure when compared to similar models. Because the private cloud is usually owned,
deployed and managed by the organization itself, the chance of data leakage is very less. Because all users are
members of the same organization, there is no risk from anybody else. In private clouds, only authorized users have
access, allowing organizations to better manage their data and security. The following Fig. 2.2.2 represents the
private cloud.
2.2.3. Community Cloud: The community cloud is the extension of private cloud and this kind of model is
sharing cloud infrastructure among multiple organizations in the same community or area. Organizations,
businesses, financial institutions and banks etc. are examples of this category. The infrastructure is provided for
exclusive usage by a group of users from companies with similar computing requirements in a community cloud
environment. The following Fig. 2.2.3 represents the community cloud.
2.2.4. Hybrid Cloud: It is a kind of integrated cloud computing, which means that it may be a combination of
private, public, and community cloud, all of which are integrated into a single architecture but remain
independent entities inside the overall system. This aims to combine the benefits of both private and public
clouds. The most common way to use the hybrid cloud is to start with a private cloud and then use the public
cloud for more resources. It is possible to utilize the public cloud for non-critical tasks like development and
testing. On the other hand, critical tasks such as processing company data are carried out on a private cloud. The
following Fig. 2.2.4 represents the hybrid cloud.
• Flexibility and control: Companies with greater flexibility may create customized solutions to match their
specific requirements.
• Cost: Cost is less compared to public cloud users paid only for additional resources used from public
cloud.
• Partial Security: The hybrid cloud is generally a mix of public and private clouds. Although the private
cloud is considered as secure and the hybrid cloud includes public cloud, poses a significant chance of
security breach. As a result, it can only be described as partially secure.
2.3 CHOOSING APPROPRIATE DEPLOYMENT MODELS
The instances where this cloud model may be employed are referred to as selecting an acceptable deployment
model. It also denotes the best circumstances and environment in which this cloud model may be implemented.
The term suitability in terms of cloud refers to the conditions under which this cloud model is appropriate. It also
denotes the best circumstances and environment in which to use this cloud model, such as the following:
Enterprises or businesses that demand their own cloud for personal or business purposes.
Business organizations have appropriate financial resources, since operating and sustaining a cloud is an
expensive effort.
Business organizations consider the data security to be important.
Enterprises want to get complete control and autonomy over cloud resources.
Private cloud is suitable for organizations with less number of employees.
Organizations that already have a pre-built infrastructure will choose private cloud for managing
resources efficiently.
The private cloud model is not appropriate in the following circumstances:
The Community cloud is suitable for the organizations with the following concerns:
Organizations want to get complete control and autonomy over cloud resources.
Doesn't really want to collaborate with other organizations
Organizations that desire a private cloud environment with public cloud scalability
Businesses that demand greater protection compared to the public cloud.
Hybrid
Characteristics Public Private Community
Demand for
in-house Shared among Required for private
Not required Mandatory
infrastructure organizations cloud
Requires an
Requires an operational IT staff Complex because
Ease of use Very easy to use operational from multiple involves more than one
IT staff organizations deployment model
High
Scalability Very High Limited Limited
2.4 CLOUD SERVICE DELIVERY MODELS
Cloud computing model is used to deliver the services to end users from a pool of shared resources such as compute
systems, network components, storage systems, database servers and software applications as a pay-as-you-go
service rather of purchasing or owning them. The services are delivered and operated by the cloud provider, which
reduces the end user's management effort. Cloud computing allows the delivery of a wide range of services
categorized into three basic types of delivery models as follows:
Infrastructure as a Service
Platform as a Service
Software as a Service
Different cloud services are aimed towards different type of users, as shown in Fig. 2.4.1. For instance, consider the
IaaS model is aimed at infrastructure architects, whereas PaaS is aimed at software developers and SaaS is aimed at
cloud users.
The resources are provisioned to the users of IaaS, to run any kind of software, including operating systems and
applications, by giving them access to fundamental computer resources like processing, storage, and networks.
There is no control over the physical infrastructure, but the user has control over operating systems, storage and
installed software, as well as specific networking components (for example host and firewalls). A service model
known as IaaS refers to the usage of a third-party provider's virtual physical infrastructure in place of one's own
(network, storage, and servers). Because IT resources are housed on external servers, they may be accessed by
anybody with an internet connection.
The IT architect or infrastructure architect is the target audience for IaaS. The infrastructure architect may choose
the virtual machine instance based on their requirements. The physical servers are managed by the service providers.
As a result, the complexity of managing the physical infrastructure is removed or hidden from the IT architects. The
following services might be provided by a regular IaaS provider.
Compute: Virtual computing power and main memory are provided to end users as part of Computing as a
Service.
Storage: It provides back-end storage for storing files and VM images.
Network: There are many number of networking components like bridges, routers and, switches are
provided virtually.
Load balancers: These are used to manage the sudden spikes in usage of infrastructure for balancing the
load
Pros and Cons of IaaS
IaaS is a one of the most prominent cloud computing service delivery model. It provides more benefits to the IT
architects.
1. Charging based on usage: The services of IaaS are provisioned on a pay-per-use basis to users. Customers are
paid for only what they have used. This strategy reduces the needless expenditure of investment on hardware
purchases.
2. Reduced cost: IaaS providers allow their customers to rent computing resources on a subscription basis instead of
investing on physical infrastructure to run their operations. IaaS eliminates the need to purchase physical resources,
lowering the total cost of investment.
3. Elastic resources: IaaS provides resources depending on user requirement. The resources can be scale up and
scale down by using load balancers. Load balancers automate the process of dynamic scaling by sending additional
requests are redirected the new resources.
4. Better resource utilization: The most important factor of IaaS provider is the resource utilization. To get return
on investment by utilizing the infrastructure resources efficiently.
5. Supports green IT: Dedicated servers are utilized for many business requirements in conventional IT
architecture. The power consumption will be more due to the large number of servers deployed. IaaS eliminates the
need for dedicated servers since a single infrastructure is shared among several clients, decreasing the number of
servers in turn decreases the power consumption resulting in Green IT.
• Despite the fact that IaaS saves investment cost for start-up companies, but it lacks security for data protection.
1. Security issues: IaaS is providing services through Virtualization technology through hypervisors.. There are
several chances to attack the compromised hypervisors. If hypervisors are compromised, any virtual machines may
be simply attacked. The majority of IaaS providers are unable to ensure complete security for virtual machines and
the data stored on them.
2. Interoperability issues: IaaS service providers don't have any standard operating procedures. Any VM transfer
from one IaaS provider to another is a difficult one. Customers may encounter the issue of vendor lock-in issue.
3. Performance issues: It is providing resources from distributed servers, those are connected through a network..
The network latency is a key factor in determining performance of the service. Due to latency concerns, the VM's
performance might suffer from time to time.
Microsoft Azure
Rackspace
AWS
Google Compute Engine
2.4.2 PaaS: Virtualized development environment
The PaaS user or developer can develop their applications on virtualized development platform provided by PaaS
provider. The users doesn't have the control on the development platform and underlying infrastructure like servers,
storage , network and operating system but the user has control on the deployed applications as well data related to
that applications.
Developers can build their applications online using programming languages supported on provider platform and
deploy their applications using testing tools supporting the same platform. Pass users utilizing the services offered
by the providers through the internet. As a result, the cost of obtaining and maintaining a large number of tools for
constructing an application is decreased. PaaS services include a wide range of programming languages supported
on platforms, databases, and testing software tools. PaaS providers provide a wide range of software development
and deployment capabilities including load balancers.
1. Programming languages: PaaS providers offer a scope for multiple programming languages in which users can
develop their own applications. Some examples of languages are python, java, Scala, PHP and Go etc.
2. Application platforms: PaaS providers offer a variety of application platforms, those are used to develop
applications. The popular examples of platforms are Joomla, Node.js, Drupal, WordPress, Django and Rails
3. Database: Applications need backend for storing data. Database is always associate with frontend application to
access data. Databases are provided by PaaS providers as part of their PaaS platforms. Some of the prominent
databases offered by PaaS vendors are Redis, MongoDB, ClearDB, Membase, PostgreSQL, and Cloudant.
4. Testing tools: Testing tools are provided by PaaS providers as part of their PaaS platforms. Testing tools are
required to test application after development.
The complexity of platform and underlying infrastructure maintenance is managed by PaaS provider. This allows
developers to concentrate more on the application development.
In addition, PaaS provides the following advantages:
1. App development and deployment: PaaS provides all the necessary development and testing tools in one place,
allowing you to build, test, and deploy software quickly. After the developer completes the development process,
most PaaS services automate the testing and deployment process. This is faster than conventional development
platforms in developing and deploying applications.
2. Reduces investment cost: The majority of conventional development platforms need high-end infrastructure
leads to increase the investment cost for application development. Using PaaS services eliminates the requirement
for developers to purchase licensed development and testing tools. On the other side, PaaS lets programmers rent
everything they need to create, test and deploy their applications. The total investment cost for the application
development is reduced because of expensive infrastructure is not required.
3. Team collaboration: Traditional development platforms do not offer much in the way of collaborative
development. PaaS allows developers from multiple locations to collaborate on a single project. The online shared
development platform supplied by PaaS providers makes this feasible.
4. Produces scalable applications: Applications need scale-up or scale-down the resources based on their load. In
case of scale-up, companies must keep an additional server to handle the increased traffic. New start-up companies
have a tough time expanding their server infrastructure in response to rising demand. PaaS services, on the other
hand, provide built-in scalability to applications produced on the PaaS platform.
When compared to the traditional development environment, PaaS offers several advantages to developers.
On the other side, it has several disadvantages, which are listed below:
1. Vendor lock-in: Vendor lock-in is a key disadvantage of PaaS providers. Lack of standards is the primary cause
of vendor lock-in. PaaS providers do not adhere to any common standards for providing services. The adoption of
proprietary technology by PaaS providers is another factor for vendor lock-in. The majority of PaaS companies
employ proprietary technologies that are incompatible with those offered by other PaaS providers. PaaS services
have a vendor lock-in issue that prevents applications from being transferred one provider to another.
2. Security problems: Security is a big concern with PaaS services. Many developers are hesitant to use PaaS
services since their data is stored on third-party servers off-site. Obviously, many PaaS providers have their own
security mechanism to prevent user data from security breaches, but feeling safety of on-premise deployment is not
same as off-premise deployment.. When choosing a PaaS provider, developers should compare the PaaS provider's
regulatory, compliance, and security standards to their own security needs.
3. Less flexibility: PaaS limit developer’s ability to create their own application stack. Most PaaS providers give
access to a wide range of programming languages, database software’s, and testing tools but user doesn’t have
control on platform. Developers can only customize or build new programming languages for PaaS platform from a
few providers. The majority of PaaS vendors still do not give developers with enough flexibility.
4. Depends on Internet connection: Developers must have an internet connection in order to utilize PaaS services.
The majority of PaaS providers do not provide offline access but very few can provide offline access. With a poor
Internet connection, the PaaS platform's usability will not meet the developer expectations.
Examples of PaaS:
The end user has the option of using the provider's cloud-based applications. It is possible to access the software
from multiple client devices using a web browser or other client interface (such as web-based e-mail). The
customer has no access or control over the cloud infrastructure, which includes networks, servers, operating
systems, storage, software platforms, and configuration settings. An internet based, no-installation kind of
software as a service has been provided on subscription and these services may be accessed from any location in
the globe.
SaaS applications are provided on-demand through the internet, users can access these applications through web
enabled interface without software installation on end-user machines. Users have complete control over when,
how and how often they use SaaS services. SaaS services can be accessed through web browser on any device,
including computers, tablets and smart devices. Some SaaS services can be accessed by a thin client, which
does not have as much storage space as a standard desktop computer and cannot run many applications. Thin
clients for accessing SaaS applications have a longer lifespan, lower power consumption and lower cost are all
advantages of using these devices. A SaaS provider might provide a variety of services, including business
management services, social media services, document management software’s and mail services.
1. Business services: In order to attract new customers, the majority of SaaS suppliers now provide a wide
range of commercial services. SaaS include ERP, CRM, billing, sales and human resources.
2. Social media networks: Several social networking service providers have used SaaS as a method of assuring
their long-term survival because of the widespread usage of social networking sites by the general public.
Because the number of users on social networking sites is growing at a rapid rate, cloud computing is the ideal
solution for varying load.
3. Document management: Because most businesses rely heavily on electronic documents, most SaaS
companies have begun to provide services for creating, managing, and tracking them.
4. E-mail services: Many people utilize e-mail services these days. The potential growth in e-mail usage is
unexpected. Most e-mail providers started offering their services as SaaS services to deal with the unexpected
amount of users and demand on e-mail services.
SaaS provides software applications that are used by a wide range of consumers and small organizations
because of the cost benefits they provide.
1. No client-side installation: Client-side software installation is not required for SaaS services. Without any
installation, end users may receive services straight from the service provider's data centre. Consuming SaaS
services does not need the use of high-end hardware. It may be accessible by thin clients or any mobile device.
2. Cost savings: Because SaaS services are billed on a utility-based or pay-as-you-go basis, end customers must
pay only for what they have utilized. Most SaaS companies provide a variety of subscription options to suit the
needs of various consumers. Sometimes free SaaS services are provided to end users.
3. Less maintenance: The service provider is responsible for automating application updates, monitoring, and
doing other routine maintenance then the user is not responsible for maintain the software.
4. Ease of access: It is possible to access SaaS services from any device that has access to the Internet. The use
of SaaS services is not limited to a certain set of devices. It features are making it adaptable to all devices.
5. Dynamic scaling: On-premise software makes dynamic scalability harder since it requires extra hardware.
Because SaaS services make use of cloud elastic resources, they can manage any sudden spike in load without
disrupting the application's usual operation.
6. Disaster recovery: Every SaaS service is maintained with suitable backup and recovery techniques. A large
number of servers are used to store the replicas. The SaaS may be accessed from another server if the allocated
one fails. This solves the problem of single point of failure. It also ensures high availability of application.
7. Multi-tenancy: Multi-tenancy refers to sharing same application among multiple users improves resource
use for providers and decreases cost for users.
Data security is the biggest problem with SaaS services. Almost every organization is concerned about the
safety of the data stored on the provider's datacenter.
Some of the problems with SaaS services include the following:
1. Security: When transitioning to a SaaS application, security is a big issue. Data leakage is possible because the
SaaS application is shared by many end users. The data is kept in the datacenter of the service provider. We can't
trust our company's sensitive and secret data on third-party service provider. To avoid data loss, the end user must
be careful when choosing a SaaS provider.
2. Requirements for connectivity: In order to use SaaS applications, users must have internet connection. If the
user's internet connection is low in some cases then the user is unable to use the services. In SaaS applications, the
high-speed internet connection is the major problem.
3. Loss of control: The end user has no control over the data since it is kept in a third-party off-premise location.
Examples of SaaS
Figure 2.4.1 illustrates the three types of cloud computing services that are offered to clients. It's important
to note that cloud service delivery is made up of three distinct components: infrastructure, platform, and
software. The end user's responsibility in IaaS is development platform and the application that runs on top of
it are properly maintained. The underlying hardware must be maintained by the IaaS service providers. In
PaaS, end users are only responsible for developing and deploying the application and its data only. In SaaS,
user do not have any control over infrastructure management, development platform and end-user application,
all maintenance is handled by SaaS providers. The responsibility of the provider and user is indicated in Figure
2.4.2
Fig. 2.4.2 Service provider and User management responsibilities of SPI model
2.4.4 Other services
1. Network as a Service (NaaS): It allows end users to make use of virtual network services provided by the service
provider. It is a pay-per-use approach similar to other cloud service models, NaaS allows users to access virtual
network services through the Internet. In on-premise organizations, they have spent expenditure on network
equipment to run their own networks in their own datacenters. On the other hand, Naas are transformed into a utility
to make virtual organizations, virtual organization interface cards, virtual switches, virtual switches and other
systems administration components in the cloud environment. There are a number of popular services provided by
NaaS, including VPNs, bandwidth-on-demand, and virtualized mobile networks.
2. DEaaS (Desktop as a Service): It allows end customers to enjoy desktop virtualization service without having to
acquire and manage their own computing infrastructure. It is a pay-per-use model in which the provider handles data
storage, backup, security and updates on the back end. DEaaS services are easy to set up, secure, and provide a
better user experience across a wide range of devices.
3. STorage as a Service (STaaS): It provides end users with the opportunity to store data on the service provider's
storage services. Users may access their files from anywhere and at any time with STaaS. Virtual storage emulates
from physical storage is abstracted by the STaaS provider. STaaS is a utility-based cloud business model. Customers
may rent storage space from the STaaS provider and they can access from any location. STaaS provides disaster
recovery backup storage solution.
4. Database as a Service (DBaaS) : This service that allows end users to access databases without having to install
or manage them. Installing and maintaining databases is the responsibility of the service provider. End consumers
may utilize the services immediately and pay for them based on their use. Database administration is automated
using DBaaS. The database services may be accessed by end users using the service provider's APIs or web
interfaces. The database management procedure is made easier using DBaaS. DBaaS provides popular services such
as ScaleDB , SimpleDB, DynamicDB, MongoDB and GAE data store.
5. Data as a Service (DaaS): An on demand service provided by a cloud vendor to users to access the data over the
Internet. Data consists of text, photos, audio, and videos etc. all are part of the data. Other service models for
example SaaS and STaaS are closely related to DaaS. For offering a composite service, DaaS may simply include in
either SaaS or STaaS. Geographical data services and financial data services are two areas where DaaS is widely
employed. Agility, cost efficiency, and data quality are some of the benefits of DaaS.
6. SECurity as a Service (SECaaS): It is a pay-per-use security service that allows the user to access the cloud
provider's security service. The service provider combines its security services for the benefit of end customers in
SECaaS. It provides a wide range of security-related functions, including authentication, virus and malware /
spyware protection, intrusion detection, and security event management. Infrastructure and applications within a
company or organization are often protected by SECaaS service providers. SECaaS services are provided by Cisco,
McAfee or Panda etc.
……………………………………………………………………………
……………………………………………………………………………
The cloud architecture is divided into four major levels based on their functionality. Below Fig. 2.5.1 is a
diagrammatic illustration of cloud computing architecture.
Computing systems and storage systems are linked together through networks. A network, such as a local area
network (LAN) connects physical computing devices to one another, allowing applications running on the compute
systems to communicate with one another. A network connects compute and storage systems to access the data on
the storage systems. The cloud serves computing resources from several cloud datacenters, networks link the
scattered datacenters and allowing the datacenters to function as a single giant datacenter. Networks also link
various clouds to one another, allowing them to share cloud resources and services (as in the hybrid cloud model).
The hierarchical structure of a cloud is called cloud anatomy. Cloud anatomy differs from architecture. It does not
include the communication channel on which it deliver the services, whereas architecture completely describes the
communication technology on which it operates. Cloud architecture is a hierarchical structure of technology on
which it defines and operates. Anatomy might therefore be considered as subset of cloud architecture. Figure 2.6.1
represents the cloud anatomy structure, which serves as the foundation for the cloud.
Fig.2.6.1 Layers of Cloud Anatomy
1. Application: Top most layer is the application layer. This layer may be used to execute any kind of software
application.
2. Platform: This layer exists below the application layer. It consists of executable platforms those are provided for
the execution developer applications.
3. Infrastructure: This layer lies below the platform layer. Infrastructure includes virtualized computational
resources are provided to the users to connect with other system components. It allows the users to manage both
applications and platforms. This allows the user to do computations based on their requirements.
4. Virtualization: It's a vital technology that allows cloud computing to function. It is the process of making
abstraction of actual physical hard ware resources are provided in virtual manner. It changes the way of providing
the same hardware resources are distributed to multiple tenants independently.
5. Physical hardware: The bottom most layer is the physical hardware layer. It consists of servers, network
components, databases and storage units.
2.7 NETWORK CONNECTIVITY IN CLOUD COMPUTING
The cloud resources include servers, storage, network bandwidth, and other computer equipment are distributed over
numerous locations and linked via networks. When an application is submitted for execution in the cloud, the
necessary and appropriate resources are used to run the application that connects these resources through the
internet. Network performance will be a major factor in the success of many cloud computing applications. Because
cloud computing offers a variety of deployment choices, a network connection viewpoint will be used to examine
cloud deployment models and their accessible components.
There following are the different types of network connectivity in cloud computing:
If we want to minimize latency without sacrificing security, we must choose an appropriate routing strategy,
decreases communication latency by decreasing the number of transit hops in the path from cloud provider to
consumer, for instance. When a connection is made available via internet for peer to peer systems through a
federation of connected providers (also known as Internet service providers (ISPs).
In private cloud, the cloud and network connectivity is within organization premises. The connectivity with in
private cloud is provided through Internet VPN or VPN service. All services are accessed quickly through well-
established pre-cloud infrastructure. Moving to private clouds does not affect the ability to access application
performance
Intra cloud networking is the most complex networking and connection challenge in cloud computing. The most
challenging aspect of private cloud is the private intra cloud networking. The applications running in this
environment are linked to intra cloud connection. Intra networking connects the provider datacenters owned by an
organization. Intra cloud networking will be used by all cloud computing systems to link users to the resource to
which their application has been assigned. Once the link is established to the resource, intra networking used to
serve the application to multiple users based on service oriented architecture (SOA). If the SOA concept is followed,
traffic may flow between application components and between the application and the user. The performance of
such connections will therefore have an influence on the overall performance of cloud computing.
Modern approaches should be used to assess cloud computing networks and connections, Globalization and
changing organization needs, particularly those related with expanded internet use, require more prominent
adaptability in the present corporate organization.
Check Your Progress 2
.……………………………………………………………………………
……………………………………………………………………………
…………………………………………………………………………..
2.8 SUMMARY
We covered the three SPI cloud service types as well as the four cloud delivery models in this chapter. We also
looked at how much influence a consumer had over the various arrangements. After that, we looked at cloud
deployment and cloud service models from a variety of perspectives, leading to a discussion of how clouds arise and
how clouds are utilized. To begin, the deployment models are the foundation and must be understood before moving
on to other components of the cloud. The size, location, and complexity of these deployment models are all taken
into account.
In this chapter, we'll look at four different deployment models. Each deployment model is described, along with its
characteristics and applicability for various types of demands. Each deployment model is significant in its own right.
These deployment patterns are crucial, and they frequently have a significant influence on enterprises that rely on
the cloud. A wise deployment model decision always pays off in the long run, avoiding significant losses. As a
result, deployment models are given a lot of weight. Before diving into the complexities of cloud computing, it's
vital to understand a few key concepts, including one of the most significant: cloud architecture.
Before getting into the complexities of cloud computing, it's vital to understand a few key concepts, including one of
the most significant: cloud architecture. It has a basic structure with component dependencies indicated. Anatomy is
the same way as architecture; however it does not take into account any dependencies as architecture does. The
cloud network connection, which is at the heart of the cloud concept, is also critical. The network is the foundation
on which the cloud is built.
2.9 SOLUTIONS/ANSWERS
Microsoft Azure
Rackspace Cloud
Amazon Web Services (AWS)
Alibaba Cloud
IBM Cloud
SAP
Google Cloud
VMWare
Oracle
Salesforce
2. Distinguish between public and private clouds.
Private Cloud
Public Cloud
It is managed by cloud service provider
It is managed by organization operational staff
On-demand scalability
Limited scalability
Multitenant architecture supports multiple users
Dedicated architecture supports users from single
from different organizations
organization
Services hosted on Shared servers
Services hosted on dedicated servers
Establishes connection to users through private
Establishes connection to users through internet
network within the organization
Cloud anatomy describes the layers of cloud computing paradigm at service provider side. Cloud anatomy and cloud
architecture both are not same but anatomy is considered as part of cloud architecture. cloud architecture completely
specifies and explains the technology under which it operates but in anatomy does not include technology on which
it operates.
Virtual private network (VPN) establishes a secured private corporate network connection within private cloud to
access the services. The technology and methodologies are local to the organization network structure in the private
cloud. This cloud network might be an Internet-based VPN or a service supplied by the network operator.
1. Cloud Computing: Principles and Paradigms, Rajkumar Buyya, James Broberg and Andrzej M.
Goscinski, Wiley, 2011.
2. Mastering Cloud Computing, Rajkumar Buyya, Christian Vecchiola, and Thamarai Selvi, Tata McGraw
Hill, 2013.
3. Essentials of cloud Computing: K. Chandrasekhran, CRC press, 2014.
Unit 3: Resource Virtualization
Structure
3.1 Introduction
3.2 Objective
3.3 Virtualization and Underlying Abstraction
3.3.1 Virtualizing Physical Computing Resources
3.4 Advantages of Virtualization
3.5 Machine or Server Level Virtualization
3.6 Exploring Hypervisor or Virtual Machine Monitor
3.6.1 Hypervisor Based Virtualization Approaches
(Full Virtualization, Para Virtualization, Hardware-Assisted Virtualization)
3.7 Operating System-Level Virtualization
3.8 Network Level Virtualization
3.9 Storage Level Virtualization
3.10 Desktop Level Virtualization
3.11 XenServer Vs VMware
3.1 INTRODUCTION
Cloud Computing has gained immense popularity due to the availability of scalable Infrastructure
as a Services, Platform as a Service, and Software as a Services. This is a framework where
different kinds of services related to networks, computing resources, storage, development
platform, and application are provisioned through the internet. In this respect, the basic
information of cloud computing is already discussed in the previous unit. In this unit, we will
discuss the basics of virtualization, its advantages, and its underlying abstraction. It is to be noted
that virtualization is the fundamental technology that helps to create an abstraction layer that
hides the intricacy of the underlying hardware. The virtualization technique provides a secure and
isolated environment for any user application such that one running application does not affect
the execution of another application. Further, in this unit, we will learn about server-level
virtualization and explore different hypervisor-based virtualization approaches. We will also
discuss operating system-level virtualization, network virtualization, storage virtualization, and
desktop virtualization. Finally, a brief comparison will be done on hypervisors like XenServer
and VMware.
3.2 OBJECTIVE
Virtualization allows the creation of an abstract layer over the available System hardware
elements like processor, storage, memory, and different customized computing environments.
The computing environment which is created is termed virtual as it simulates an environment
similar to a real computer with an operating system. The use of the virtual version of the
infrastructure is smooth as the user finds almost no difference in the experience when compared
to a real computing environment. One of the very good examples of virtualization is hardware
virtualization. In this kind of virtualization, customized virtual machines that work similarly to
the real computing systems are created. Software that runs on this virtual machine cannot directly
access the underlying hardware resources. For example, consider a computer system that runs
Linux operating system and simultaneously host a virtual machine that runs Windows operating
system. Here, the Windows operating system will only have access to hardware that is allocated
to virtual machines. Hardware virtualization plays an important role in provisioning the IaaS
service of cloud computing. Some of the other virtualization technologies for which virtual
environments are provided are networking, storage, and desktop. The overall environment of
virtualization may be divided into three layers: host layer, virtualization layer, and guest layer.
The host layer denotes a physical hardware device on which the guest is maintained.
Virtualization layer act as the middleware which creates a virtual environment similar to the real
computer environment to execute a guest virtual application. Here guests always communicate
through the virtualization layer and it may denote a virtual machine or any other virtual
application. A diagrammatic representation of the virtualization environment is shown in Figure
1.
Figure 1: Diagram showing the virtualization environment.
From the above discussion, it should be noted that in reality, the virtualization environment is a software
program, and hence virtualization technology has better control and flexibility over the underlying
environment. The capability of software to imitate a real computing environment has facilitated the
utilization of resources in an efficient way. In the last few years, virtualization technology has drastically
evolved and the current version of technology allows us to make use of the maximum benefit that
virtualization provides. In this respect some of the important characteristics of virtualization can be
discussed as follows:
➔ Advancement in Security: In reality, more than one guest virtual machine runs on a single host
machine, and on each virtual machine different virtual applications are executed. Further, it is
very important to run each virtual machine in isolation such that no two applications running on
different virtual machines interfere with each other. In this respect, virtual machine manager
(VMM) plays an important role by managing virtual machines efficiently and providing enough
security. The operations of the different virtual machines are observed by VMM and filtered
accordingly such that no unfavorable activity is permitted. Sometimes it becomes important to
hide some sensitive or important data of the host from other guest applications running on the
same system. This kind of functionality is automatically provided by the virtualization
environment.
➔ Managing of Execution: In addition to the features like security, sharing, aggregation, emulation,
and isolation are also considered to be important features of virtualization. The explanation of
these features are as follows:
◆ Sharing: Virtualization technology allows the execution of more than one guest virtual
machine over a single host physical machine. Here, the same hardware resources are
being shared by all the guest virtual machines. Here sharing of existing hardware
resources and using individual physical machines to their optimum capacity help to
minimize the requirement of a number of servers and the power consumption.
Virtualization technology is adopted by different areas of computing. Further, based on the requirements
and uses different virtualization techniques were developed and each technique has its own unique
characteristics. In this regard Figure 3. shows a detailed classification of virtualization techniques. We
will be discussing some of the techniques in detail in the later sections.
Figure 3: A classification of virtualization technique
………………………………………………………………………………………………………
…………
………………………………………………………………………………………………………
…………
………………………………………………………………………………………………………
…………
As discussed earlier, virtualization creates an abstracted layer over the available hardware elements, such
as a processor, storage, and memory allowing them to disperse over several Virtual Computers, also
known as Virtual Machines (VMs). The importance of virtualization was realized when IT industries
were facing difficulty to overcome the problem of x86 servers which enable running of only a single
operating system and application. The virtualization technology paved the way for the existing IT
industry by maximizing the utilization of individual servers and enabling them to operate at their
maximum capacity. In this regard Figure 4. shows the difference in traditional and virtual architecture.
Further when we compare the older virtualization technique with the current version then we will notice
that the older virtualization technique used to support only a single CPU and it was slow. Further, the
current version of virtualization techniques has improved a lot and it was found that virtual machines may
execute server applications as well as bare metal computer systems.
In order to improve performance, and to maximize the availability and reliability of the service,
virtualization allows virtual machines to move from one host machine to another and this is called a
virtual machine migration. The migration of virtual machines is achievable as the underlying environment
is virtual. The virtual machine migration can be achieved offline or live. In case of offline migration the
guest virtual machine is temporarily stopped and after copying the image of the virtual machine’s
memory to the destination host machine virtual machine is restarted. Next in the case of live migration an
active virtual machine is moved from one host machine to another. It should also be noted that
virtualization technology prefers to migrate virtual machines from one host machine to another when
some kind of load balancing is required. The type of virtual machine is chosen based on the requirement,
that is if downtime is permissible then offline migration is preferred, or else live migration is preferred.
Virtualization allows for more efficient use of underlying resources, resulting in a higher return on a
company's hardware investment. Some other advantages of virtualization may also be highlighted and it
can be summarized as follows:
➔ Reducing Power Need: Virtualization helps to run more than one operating system and
application on a single physical system. This allows to reduce the requirement of more servers
and hence reducing the requirement of energy for running and cooling the physical machines.
➔ Lower Cost: Virtualization of hardware or software resources help to maximize the utilization of
individual resources without compromising with the performance. Thus the extra investment on
the servers is minimized by running more than one operating system and application on a single
server. In addition to this, the requirements for extra space are also reduced. In this way
virtualization technology is helping IT industries to achieve maximum benefit at a minimal cost.
➔ Better Availability: Virtualization technology allows to overcome the problem of sudden
downtime due to hardware fault or human-induced fault. That is virtualization provides a fault-
tolerant environment in which applications are run seamlessly. Virtualization allows better
control and flexibility over the underlying environment when compared to the standalone system.
Further, during the time of fault or system maintenance, virtualization technology may use live
migration techniques to migrate virtual machines from one server to another. Any application or
operating system crash results in downtime and lowers user productivity. As a result,
administrators can use virtualization to run many redundant virtual computers that can readily
handle this situation. However running numerous redundant Physical Servers, on the other hand,
will be costly.
➔ Resource Efficiency: We may run numerous applications on a single server with virtualization,
each with its own virtual machine, operating system, and without sacrificing the Quality of
Services like reliability and availability. In this way, virtualization allows efficient use of the
underlying physical hardware.
➔ Easier Management: In software-defined virtual machines, it is much easier to implement any
new rule or policy, making it much easier to create or alter policies. This may be possible as
virtualization technology provides better control over the virtual environment.
➔ Faster Provisioning: The process of setting up hardware for each application is time-consuming,
requires more space, and costs more money. Further provisioning a virtual machine (VM) is
faster, cheaper, and efficient and can be managed smoothly. Thus virtualization technology may
help to create the required configured virtual machines in minimum time and may also be able to
scale up or scale down the required demands in minimum time. Here it should be noted that the
problem of scalability may also be handled efficiently by virtualization techniques.
➔ Efficient resource management: As discussed earlier, virtualization provides better control and
flexibility when compared to traditional architecture. Virtualization allows IT administrators to
create and allocate the virtual machine faster and live- migrate the virtual machine from one
server to another when required to increase the availability and reliability of the services. In order
to manage the virtualized environment, there are a number of virtualization management tools
available and the selection of appropriate tools may help to manage the virtual resources
efficiently. This tool may help to seamlessly migrate the virtual machine from one system to
another with zero downtime. This may be required when any server needs maintenance or is not
performing well.
➔ Single point Administration: The virtualized environment can be managed and monitored
through single virtualization management tools. However, the selection of efficient tools that
provide all the virtualization services properly is important. The appropriate tool will help to
create and provision virtual machines efficiently, balance the workload, manage the security of
the individual virtual machines, monitor the performance of the infrastructure, and guarantee to
maximize the utilization of the resources. Here all the different services can be administered by a
single tool.
3.5 Machine or Server Level Virtualization
Server virtualization is a technique to divide a physical server into various small virtual servers
and each of these independent virtual servers runs its own operating system. These virtual servers
are also called virtual machines and the process of creation of such virtual machines is achieved
by hypervisors like Microsoft Hyper-V, Citrix XenServer, Oracle VM, Red Hat’s Kernel-based
Virtual Machine, VMware vSphere. Here it should be noted that each virtual machine runs in
isolation on the same host physical machine and are unaware of any other virtual machine
running on the same host physical machine. To achieve this kind of functionality and
transparency different kinds of virtualization techniques are used. Further, there are different
types of server-level virtualization and they are as follows:
★ Hypervisor
★ Para Virtualization
★ Full Virtualization
★ Hardware-Assisted Virtualization
★ Kernel level Virtualization
★ System-Level or Operating System Virtualization
There are numerous advantages associated with server virtualization. Some of them are as
follows:
➔ In the case of server virtualization, each virtual machine may be restarted independently
without affecting the execution of other virtual machines running on the same host
physical machine.
➔ Server virtualization can partition a single physical server into many small virtual servers
and allows to utilize the hardware of the existing physical servers efficiently. Therefore
this minimizes the requirement of the extra physical servers and the initial investment
cost.
➔ As each small virtual server executes in isolation, if any virtual machine faces any kind of
issues then it will not affect the execution of other virtual machines running on the same
host physical machine.
In addition to some of the advantages server virtualization also have some disadvantages and they
are as follows:
➔ In the case of a host physical machine, the server faces any problem and it goes offline
then all the guest virtual machines will also get affected and will go offline. This will
decrease the overall uptime of the services or applications running on an individual
virtual machine.
➔ Server virtualization allows the running of many numbers of virtual machines on the
same physical server, this may reduce the performance of the overall virtualized
environment.
➔ Generally, server virtualization environments are not easy to set up and manage.
3.6 Hypervisor
The hypervisor can be seen as an emulator or simply a software layer that can efficiently
coordinate and run independent virtual machines over single physical hardware such that
each virtual machine has physical access to the resources it needs. It also ensures that
virtual machines have their own address space and execution on one virtual machine does
not conflict with the other virtual machine running on the same host physical machine.
Prior to the notion of Hypervisor, most computers could only run one operating system at
most and this increased the reliability of the services and applications because the entire
system's hardware had to handle requests from a single operating system. However, the
demerit of this idea is that the system cannot utilize all of the computing capacity.
However, using a hypervisor minimizes the need for space, energy, and maintenance. The
hypervisor is also referred to as a virtual machine monitor and it helps to manage virtual
machines and their physical resource demands. It isolates virtual machines from one
another by logically provisioning and assigning computing power, memory, and storage.
Thus at any point of time if any virtual machine operation is vulnerable then it will not
affect the execution of another machine.
There are basically two types of hypervisor (i) Type 1 or bare metal and (ii) Type 2 or
Hosted. Hypervisors enable virtualization because they translate requests across virtual
and physical resources. Type 1 hypervisors may also be embedded into the firmware
around the same layer as the motherboard basics input/output system (BIOS). This helps
the host operating system to access and use the virtualization software.
➔ Type 1 hypervisor: This is also termed as “Bare metal” hypervisor. This type of
hypervisor runs directly on the underlying physical resources. For running this
kind of hypervisor operating system is not required and it itself acts as a host
operating system. These kinds of hypervisors are most commonly used in virtual
server scenarios (See Figure 5.).
Pros: These types of Hypervisor are highly effective as they can directly
communicate with physical hardware. It also raises the level of security, and
there was nothing in between them that could undermine security.
Cons: To administrate different VMs and manage the host hardware, a Type 1
hypervisor frequently requires a separate administration system.
Example:
Pros: A type 2 hypervisor allows for rapid and easy access to a Guest OS while
the main operating system runs on the host physical machine. This kind of
facility immensely helps the end-user in their work. For example, a user can use
Cortana to access their favorite Linux-based tool (in Windows, only found a
speech dictation system ).
Cons: Type 2 hypervisors can cause performance overhead because they always
need a host operating system in between the guest Operating system and
underlying physical device. It also poses latency concerns and a potential security
risk if the Host OS is compromised.
Figure 6. Type 2 Hypervisor
Example:
………………………………………………………………………………………………
………
………………………………………………………………………………………………
………
………………………………………………………………………………………………
………
………………………………………………………………………………………………
………
………………………………………………………………………………………………
………
………………………………………………………………………………………………
………
3) Compare between Type 1 hypervisor and Type 2 hypervisor.
………………………………………………………………………………………………
………
………………………………………………………………………………………………
………
………………………………………………………………………………………………
………
A binary translation and direct execution are used together to accomplish full
virtualization. The hardware CPU runs non-sensitive commands at normal speed for full
virtualization hypervisors. Operating system-related instructions are interpreted on the fly
for further use. As similar kinds of guest operating system instances can execute on
virtualized or real physical systems, the full virtualization technique delivers the most
required isolation and security solution for virtual instances running on the virtual
environment (see Figure 7).
Further, binary translation is a method of establishing full virtualization that does not
necessitate hardware virtualization. It entails looking for "unsafe" instructions in the
virtual guest's executable code, translating them into "safe" equivalents, and running the
translated code. If we talk with respect to VMware hypervisor, both direct execution and
binary translation techniques may be used to virtualize an operating system.
Figure 7: The figure depicts the full virtualization paradigm.
3.6.2 Paravirtualization:-
The other name for this virtualization is native virtualization, accelerated virtualization,
or hardware virtualization. In this type of virtualization, a special CPU instruction is
provided by real physical hardware to support virtualization. The adopted methodology is
very portable as the virtual machine manager can run an unaltered guest operating
system. This kind of methodology minimizes the implementation complexity of the
hypervisor and allows the hypervisor to manage the virtualized environment efficiently.
This sort of virtualization technique was initially launched on the IBM System / 370 in
1972, and it was made available on Intel and AMD CPUs in 2006. In this kind of
virtualization methodology, sensitive calls are by default forwarded to the hypervisor. It
is no longer necessary to use binary translation during full virtualization or hyper calls
during paravirtualization. See Figure 9 depicts the hardware-assisted virtualization
techniques.
Figure 9: The figure depicts the hardware-assisted virtualization techniques.
Next, we will discuss the major difference between two very well-known hypervisors Citrix
XenServer and VMware.
VMware is generally used by small and Citrix XenServer is a virtualization platform that is
mid-sized businesses. VMware requires a utilized by individuals as well as small and medium
proprietary license and is Provided per- businesses. XenServer is Open source and also provides
processor basis. per-server licensing. However, the free version also
includes almost all the features.
Features like dynamic resource allocation is The features like dynamic resource allocation is not
supported supported
VMware has 128 Virtual CPUs (VCPUs) Citrix XenServer has 32 Virtual CPUs per Virtual
per Virtual machine. It can run on either machine. It can only run on Intel-Vt or AMD-V
Intel-Vt or AMD-V intelligent devices. intelligent systems.
Only MS-DOS and FreeBSD are supported Citrix XenServer supports various host OS such as Win
as hosts in VMware vSphere. As a guest OS, NT Server, Win XP, Linux ES, e.t.c. Citrix XenServer
VMware vSphere supports MS-DOS, Sun also supports various guest operating systems, but not
Java Desktop System, and Solaris X86 MS-DOS, Sun Java Desktop Environment, or Solaris
Platform Edition. X86 platform edition. To run, it will need AMD-V
competent hardware.
Support Failover and Live migration. Doesn’t support Failover or even Live migration.(*
Supports Dynamic Resource allocation and Newer version supports Live migration but not that
Thin Provisioning. efficiently).
Supports only Thin Provisioning.
The graphic support is not exhaustive. The graphic support is exhaustive and had better
support than VMware.
BusyBox is used by the VMware server It provides almost all the required features and ability to
management system for managing the create and manage the virtualization environment and it
environment. uses XenCenter for managing the environment.
Check your Progress 3
1) What is the difference between full virtualization and paravirtualization?
………………………………………………………………………………………………
………
………………………………………………………………………………………………
………
………………………………………………………………………………………………
………
b. A binary translation and direct execution are used together to accomplish full
virtualization. [
]
3.12 SUMMARY
Virtualization is the fundamental technology that helps to create an abstraction layer over the
available System hardware elements like processor, storage, and memory. Virtualization allows to
hide the intricacy of the underlying environment and provides a secure and isolated environment
for any user application. The created computing environment is virtual and it simulates an
environment similar to a real computer. The use of the virtual infrastructure is smooth as the user
finds almost no difference in the experience when compared to a real computing environment. In
this regard, a detailed overview of virtualization is given in this unit. We have discussed some
very important topics related to virtualization like advantages of virtualization, different
virtualization techniques, and its characteristics with an example. For further clarity of existing
virtualization techniques like full virtualization and paravirtualization, we have compared the two
very well-known hypervisors Citrix XenServer and VMware.
3.13 SOLUTIONS/ANSWERS
Check your Progress 1
Ans 1: Cloud Computing is a framework where different kinds of services related to networks,
computing resources, storage, development platform, and application are provisioned through the
internet. Further, Virtualization is the fundamental technology that creates an abstraction to hide
the complexity of computing infrastructure, storage, and networking. The virtualization technique
provides a secure and isolated environment for cloud users such that the computing environment
of one user does not affect the computing environment of another user.
Ans 2: In the case of virtualization more than one guest virtual machine runs on a single host
machine, and on each virtual machine different virtual applications are executed. Further, it is
very important to run each virtual machine in isolation such that no two applications running on
different virtual machines interfere with each other. In this respect, virtual machine manager
(VMM) plays an important role by managing virtual machines efficiently and providing enough
security. The operations of the different virtual machines are observed by VMM and filtered
accordingly such that no unfavorable activity is permitted. Sometimes it becomes important to
hide some sensitive or important data of the host from other guest applications running on the
same system. This kind of functionality is automatically provided by the virtualization
environment with the help of VMM.
Ans 3: In the case of emulation, the virtualization environment allows different guest applications
to run on top of the host physical machine. Here the underlying virtualized environment is a
software program and hence can be controlled more efficiently. Further, based on the requirement
of guest application or program the underlying environment can be adjusted or modified for
smooth execution.
In case of isolation, the virtualization environment enables guest virtual machines to run in
isolation such that no virtual machines running on the same host physical machine interfere with
each other. The guest virtual application accesses the underlying resources through the
abstraction layer. The virtual machine manager monitors the operation of each guest application
and tries to prevent vulnerable activity operation if any.
Ans 3: Type 1 hypervisor: This is also termed as “Bare metal” hypervisor. This type of
hypervisor runs directly on the underlying physical resources. For running this kind of hypervisor
operating system is not required and it itself acts as a host operating System. These kinds of
hypervisors are most commonly used in virtual server scenarios. The examples are Hyper-V
hypervisor, Citrix XenServer, and ESXi hypervisor.
Type 2 hypervisor: This hypervisor is not compatible with the hardware it is running on. It runs
as a program on a computer's operating system. This type of hypervisor takes the help of an
operating system to deliver virtualization-based services. Type 2 hypervisors are best suited for
endpoint devices such as personal computers that run an alternative operating system known as
Guest OS. An example is VMware Workstation.
Ans 2:
a. True
b. True
c. True
d. True
e. False
9. FURTHER READINGS
There are a host of resources available for further reading on the topic of Virtualization.
1. R. Buyya, C. Vecchiola,, and S. T. Selvi, S. T. (2013). Mastering cloud computing:
foundations and applications programming. Newnes.
2. S. A. Babu, M. J. Hareesh, J. P. Martin, S. Cherian, and Y. Sastri, "System Performance
Evaluation of Para Virtualization, Container Virtualization, and Full Virtualization Using
Xen, OpenVZ, and XenServer," 2014 Fourth International Conference on Advances in
Computing and Communications, 2014, pp. 247-250, doi: 10.1109/ICACC.2014.66.
3. https://www.ibm.com/in-en/cloud/learn/hypervisors#toc-type-1-vs--Ik2a8-2y
4. https://www.vmware.com/topics/glossary/content/hypervisor.html
5. https://www.sciencedirect.com/topics/computer-science/full-
virtualization#:~:text=Full%20virtualization%20is%20a%20virtualization,run%20in%20
each%20individual%20VM.
UNIT 4 RESOURCE POOLING, SHARING AND
PROVISIONING
4.1 Introduction
4.2 Objectives
4.3 Resource Pooling
4.4 Resource Pooling Architecture
4.4.1 Server Pool
4.4.2 Storage Pool
4.4.3 Network Pool
4.5 Resource Sharing
4.5.1 Multi Tenancy
4.5.2 Types of Tenancy
4.5.3 Tenancy at Different Level of Cloud Services
4.6 Resource Provisioning and Approaches
4.6.1 Static Approach
4.6.2 Dynamic Approach
4.6.3 Hybrid Approach
4.7 VM Sizing
4.8 Summary
4.1 INTRODUCTION
Resource pooling is the one of the essential attributes of Cloud Computing technology which
separates cloud computing approach from the traditional IT approach. Resource pooling along
with virtualization and sharing of resources, leads to dynamic behavior of the cloud. Instead of
allocating resources permanently to users, they are dynamically provisioned on a need basis.
This leads to efficient utilization of resources as load or demand changes over a period of time.
Multi-tenancy allows a single instance of an application software along with its supporting
infrastructure to be used to serve multiple customers. It is not only economical and efficient to
the providers, but may also reduce the charges for the consumers.
4.2 OBJECTIVES
After going through this unit, you should be able to:
1
4.3 RESOURCE POOLING
Resource pool is a collection of resources available for allocation to users. All types of resources
– compute, network or storage, can be pooled. It creates a layer of abstraction for consumption
and presentation of resources in a consistent manner. A large pool of physical resources is
maintained in cloud data centers and presented to users as virtual services. Any resource from
this pool may be allocated to serve a single user or application, or can be even shared among
multiple users or applications. Also, instead of allocating resources permanently to users, they
are dynamically provisioned on a need basis. This leads to efficient utilization of resources as
load or demand changes over a period of time.
For creating resource pools, providers need to set up strategies for categorizing and management
of resources. The consumers have no control or knowledge of the actual locations where the
physical resources are located. Although some service providers may provide choice for
geographic location at higher abstraction level like- region, country, from where customer can
get resources. This is generally possible with large service providers who have multiple data
centers across the world.
Each pool of resources is made by grouping multiple identical resources for example – storage
pools, network pools, server pools etc. A resource pooling architecture is then built by
2
combining these pools of resources. An automated system is needed to be established in order to
ensure efficient utilization and synchronization of pools.
Computation resources are majorly divided into three categories – Server , Storage and Network.
Sufficient quantities of physical resources of all three types are hence maintained in a data
center.
Server pools are composed of multiple physical servers along with operating system, networking
capabilities and other necessary software installed on it. Virtual machines are then configured
over these servers and then combined to create virtual server pools. Customers can choose virtual
machine configurations from the available templates (provided by cloud service provider) during
provisioning. Also, dedicated processor and memory pools are created from processors and
memory devices and maintained separately. These processor and memory components from their
respective pools can then be linked to virtual servers when demand for increased capacity arises.
They can further be returned to the pool of free resources when load on virtual servers decreases.
Storage resources are one of the essential components needed for improving performance, data
management and protection. It is frequently accessed by users or applications as well as needed
to meet growing requirements, maintaining backups, migrating data, etc.
Storage pools are composed of file based, block based or object based storage made up of
storage devices like- disk or tapes and available to users in virtualized mode.
1. File based storage – it is needed for applications that require file system or shared file access.
It can be used to maintain repositories, development, user home directories, etc.
2. Block based storage – it is a low latency storage needed for applications requiring frequent
access like databases. It uses block level access hence needs to be partitioned and formatted
before use.
3. Object based storage – it is needed for applications that require scalability, unstructured data
and metadata support. It can be used for storing large amounts of data for analytics, archiving or
backups.
3
Resources in pools can be connected to each other, or to resources from other pools, by network
facility. They can further be used for load balancing, link aggregation, etc.
Network pools are composed of different networking devices like- gateways, switches, routers,
etc. Virtual networks are then created from these physical networking devices and offered to
customers. Customers can further build their own networks using these virtual networks.
Generally, dedicated pools of resources of different types are maintained by data centers. They
may also be created specific to applications or consumers. With the increasing number of
resources and pools, it becomes very complex to manage and organize pools. Hierarchical
structure can be used to form parent-child, sibling, or nested pools to facilitate diverse resource
pooling requirements.
Cloud computing technology makes use of resource sharing in order to increase resource
utilization. At a time, a huge number of applications can be running over a pool. But they may
not attain peak demands at the same time. Hence, sharing them among applications can increase
average utilization of these resources.
Although resource sharing offers multiple benefits like – increasing utilization, reduces cost and
expenditure, but also introduces challenges like – assuring quality of service (QoS) and
performance. Different applications competing for the same set of resources may affect run time
behavior of applications. Also, the performance parameters like- response and turnaround time
are difficult to predict. Hence, sharing of resources requires proper management strategies in
order to maintain performance standards.
4.5.1 Multi-tenancy
4
Multi-tenancy is one of the important characteristics found in public clouds. Unlike traditional
single tenancy architecture which allocates dedicated resources to users, multi-tenancy is an
architecture in which a single resource is used by multiple tenants (customers) who are isolated
from each other. Tenants in this architecture are logically separated but physically connected. In
other words, a single instance of a software can run on a single server but can server multiple
tenants. Here, data of each tenant is kept separately and securely from each other. Fig 1 shows
single tenancy and multi-tenancy scenarios.
Multi-tenancy leads to sharing of resources by multiple users without the user being aware of it.
It is not only economical and efficient to the providers, but may also reduce the charges for the
consumers. Multi-tenancy is a feature enabled by various other features like- virtualization,
resource sharing, dynamic allocation from resource pools.
In this model, physical resources cannot be pre-occupied by a particular user. Neither the
resources are allocated to an application dedicatedly. They can be utilized on a temporary basis
by multiple users or applications as and when needed. The resources are released and returned to
a pool of free resources when demand is fulfilled which can further be used to serve other
requirements. This increases the utilization and decreases investment.
5
In single tenancy architecture, a single instance of an application software along with its
supporting infrastructure, is used to serve a single customer. Customers have their own
independent instances and databases which are dedicated to them. Since there is no sharing with
this type of tenancy, it provides better security but costs more to the customers.
1. Single multi-tenant database - It is the simplest form where a single application instance
and a database instance is used to host the tenants. It is a highly scalable architecture where more
tenants can be added to the. It also reduces cost due to sharing of resources but increases
operational complexity.
2. One database per tenant – It is another form where a single application instance and
separate database instances are used for each tenant. Its scalability is low and costs higher as
compared to a single multi-tenant database due to overhead included by adding each database.
Due to separate database instances, its operational complexity is less.
3. One app instance and one database per tenant - It is the architecture where the whole
application is installed separately for each tenant. Each tenant has its own separate app and
database instance. This allows a high degree of data isolation but increases the cost.
Multi-tenancy can be applied not only in public clouds but also in private or community
deployment models. Also, it can be applied to all three service models – Infrastructure as a
Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). Multi-tenancy
when performed at infrastructure level, makes other levels also multi-tenant to certain extent.
Multi-tenancy at IaaS level can be done by virtualization of resources and customers sharing the
same set of resources virtually without affecting others. In this, customers can share
infrastructure resources like- servers, storage and network.
6
Multi-tenancy at PaaS level can be done by running multiple applications from different vendors
over the same operating system. This removes the need for separate virtual machine allocation
and leads to customers sharing operating systems. It increases utilization and ease maintenance.
Multi-tenancy at SaaS level can be done by sharing a single application instance along with a
database instance. Hence a single application serves multiple customers. Customers may be
allowed to customize some of the functionalities like- change view of interface but they are not
allowed to edit applications since it is serving other customers also.
Resource provisioning is required to be done efficiently. Physical resources are not allocated to
users directly. Instead, they are made available to virtual machines, which in turn are allocated to
users and applications. Resources can be assigned to virtual machines using various
provisioning approaches. There can be three types of resources provisioning approaches– static,
dynamic and hybrid.
In static resource provisioning, resources are allocated to virtual machines only once, at the
beginning according to user’s or application’s requirement. It is not expected to change further.
Hence, it is suitable for applications that have predictable and static workloads. Once a virtual
machine is created, it is expected to run without any further allocations.
7
Although there is no runtime overhead associated with this type of provisioning, it has several
limitations. For any application, it may be very difficult to predict future workloads. It may lead
to over-provisioning or under-provisioning of resources. Under-provisioning is the scenario
when actual demand for resources exceeds the available resources. It may lead to service
downtime or application degradation. This problem may be avoided by reserving sufficient
resources in the beginning. But reserving large amounts of resources may lead to another
problem called Over-provisioning. It is a scenario in which the majority of the resources remain
un-utilized. It may lead to inefficiency to the service provided and incurs unnecessary cost to the
consumers. Fig 2 shows the under-provisioning and Fig 3 shows over-provisioning scenarios.
8
In dynamic provisioning, as per the requirement, resources can be allocated or de-allocated
during run-time. Customers in this case don’t need to predict resource requirements. Resources
are allocated from the pool when required and removed from the virtual machine and returned
back to the pool of free resources when no more are required. This makes the system elastic.
This approach allows customers to be charged per usage basis.
Dynamic provisioning is suited for applications where demands for resources are un-predictable
or frequently varies during run-time. It is best suited for scalable applications. It can adapt to
changing needs at the cost of overheads associated with run-time allocations. This may lead to a
small amount of delay but solves the problem of over-provisioning and under-provisioning.
Dynamic provisioning although solves the problems associated with static approach but may lead
to overheads at run-time. Hybrid approach solves the problem by combining the capabilities of
static and dynamic provisioning. Static provisioning can be done in the beginning when creating
a virtual machine in order to limit the complexity of provisioning. Dynamic provisioning can be
done later for re-provisioning when the workload changes during run-time. This approach can be
efficient for real-time applications.
4.7 VM SIZING
Virtual machine (VM) sizing is the process of estimating the amount of resources that a VM
should be allocated. Its objective is to make sure that VM capacity is kept proportionate to the
workload. This estimation is based upon various parameters specified by the customer. VM
sizing is done at the beginning in case of static provisioning. In dynamic provisioning, VM size
can be changed depending upon the application workload.
1. Individual VM based – In this case, depending upon the previous workload patterns,
resources are allocated VM-by-VM initially. Resources can be later allocated from the pool
when load reaches beyond expectations.
2. Joint-VM based – In this case, allocation to VMs are done in a combined way. Resources
assigned to a VM initially can be reassigned to another VM hosted on the same physical
machine. Hence it leads to overall efficient utilization.
9
Check Your Progress 3
4.8 SUMMARY
In this unit an important attribute of Cloud Computing technology called Resource pooling is
discussed. It is a collection of resources available for allocation to users. A large pool of physical
resources - storage, network and server pools are maintained in cloud data centers and presented
to users as virtual services. Resources may be allocated to serve a single user or application, or
can be even shared among multiple users or applications. Resources can be assigned to virtual
machines using static, dynamic and hybrid provisioning approaches.
1. Resource pool is a collection of resources available for allocation to users. All types of
resources – compute, network or storage, can be pooled. It creates a layer of abstraction for
consumption and presentation of resources in a consistent manner. A large pool of physical
resources is maintained in cloud data centers and presented to users as virtual services. Any
resource from this pool may be allocated to serve a single user or application, or can be even
shared among multiple users or applications. Also, instead of allocating resources permanently to
users, they are dynamically provisioned on a need basis. This leads to efficient utilization of
resources as load or demand changes over a period of time.
a) Server pools - They are composed of multiple physical servers along with operating
system, networking capabilities and other necessary software installed on it.
b) Storage pools – They are composed of file based, block based or object based storage
made up of storage devices like- disk or tapes and available to users in virtualized mode.
c) Network pools - They are composed of different networking devices like- gateways,
switches, routers, etc. Virtual networks are then created from these physical networking
10
devices and offered to customers. Customers can further build their own networks using
these virtual networks.
3. Storage pools are composed of file based, block based or object based storage.
a) File based storage – it is needed for applications that require file system or shared file
access. It can be used to maintain repositories, development, user home directories, etc.
b) Block based storage – it is a low latency storage needed for applications requiring
frequent access like databases. It uses block level access hence needs to be partitioned
and formatted before use.
c) Object based storage – it is needed for applications that require scalability,
unstructured data and metadata support. It can be used for storing large amounts of data
for analytics, archiving or backups.
1. In single tenancy architecture, a single instance of an application software along with its
supporting infrastructure, is used to serve a single customer. Customers have their own
independent instances and databases which are dedicated to them. Since there is no sharing with
this type of tenancy, it provides better security but costs more to the customers.
In multi-tenancy architecture, a single instance of an application software along with its
supporting infrastructure, can be used to serve multiple customers. Customers share a single
instance and database. Customer’s data is isolated from each other and remains invisible to
others. Since users are sharing the resources, it costs less to them as well as is efficient for the
providers.
11
Answers to Check Your Progress 3
2. There can be three types of resources provisioning approaches– static, dynamic and hybrid.
3. Under-provisioning is the scenario when actual demand for resources exceeds the available
resources. It may lead to service downtime or application degradation. This problem may be
avoided by reserving sufficient resources in the beginning.
Reserving large amounts of resources may lead to another problem called Over-provisioning. It
is a scenario in which the majority of the resources remain un-utilized. It may lead to
inefficiency to the service provided and incurs unnecessary cost to the consumers.
12
RESOURCE PROVISIONING,
LOAD BALANCING AND
SECURITY
UNIT 5 SCALING
Structure:-
5.1 Introduction
5.2 Objective
5.3 Scaling primitives
5.4 Scaling Strategies
5.4.1 Proactive Scaling
5.4.2 Reactive Scaling
5.4.3 Combinational Scaling
5.5 Auto Scaling in Cloud
5.6 Types of Scaling
5.6.1 Vertical Scaling or Scaling Up
5.6.2 Horizontal Scaling or Scaling Out
5.1 INTRODUCTION
In this unit we will focus on the various methods and algorithms used in the
process of scaling. We will discuss various types of scaling, their usage and a
few examples. We will also discuss the importance of various techniques in
saving cost and man efforts by using the concepts of cloud scaling in highly
dynamic situations. The suitability of scaling techniques in different scenarios
is also discussed in detail.
5.2 OBJECTIVES
1
SCALING
After going through this unit you should be able to:
➔ describe scaling and its advantage;
1. Minimum cost: The user has to pay a minimum cost for access usage of
hardware after upscaling. The hardware cost for the same scale can be
much greater than the cost paid by the user. Also, the maintenance and
other overheads are also not included here. Further, as and when the
resources are not required, they may be returned to the Service provider
resulting in the cost saving.
2. Ease of use: The cloud upscaling and downscaling can be done in just a
few minutes (sometime dynamically) by using service providers
application interface.
2
RESOURCE PROVISIONING,
LOAD BALANCING AND
SECURITY
In the case of the clouds, virtual environments are utilized for resource
allocation. These virtual machines enable clouds to be elastic in nature which
can be configured according to the workload of the applications in real time. In
costs
Workload
Checkpoint|
Time
costs
Workload
Checkpoint|
Time
On the other hand, scaling saves cost of hardware setup for some small time
peaks or dips in load. In general most cloud service providers provide scaling
as a process for free and charge for the additional resource used. Scaling is also
a common service provided by almost all cloud platforms. Also need to
mention that user saves when usage of the resources declines by using scale
down.?
Let us now see what are the strategies for scaling, how one can achieve scaling
in a cloud environment and what are its types. In general, scaling is categorized
based on the decision taken for achieving scaling. The three main strategies for
scaling are discussed below.
Time of Day
4
RESOURCE PROVISIONING,
LOAD BALANCING AND
SECURITY
5.4.2 Reactive Scaling
The reactive scaling often monitors and enables smooth workload changes to
work easily with minimum cost. It empowers users to easily scale up or down
computing resources rapidly. In simple words, when the hardwares like CPU
or RAM or any other resource touches highest utilization, more of the
resources are added to the environment by the service providers. The auto
scaling works on the policies defined by the users/ resource managers for
traffic and scaling. One major concern with reactive scaling is a quick change
in load, i.e. user experiences lags when infrastructure is being scaled.
F
i
g
u
F r
Load
i e
g
u 1
r .
e
M
1 a
. n
Time of Day
u
M a
5.4.3 Combinational Scaling
a l
n
Till now we have seen uneed based
s and forecast based scaling techniques for
scaling. However, for better
a performance
c and low cool down period we can
also combine both of the l reactive
a and proactive scaling strategies where we
have some prior knowledge lof traffic. This helps us in scheduling timely
s
scaling strategies for expected iload. On the other hand, we also have provision
c
of load based scaling apart fromn the predicted load on the application. This
a
way both the problems of sudden g and expected traffic surges are addressed.
l
i i
Given below is the comparison between proactive and reactive scaling
n n
strategies. g
t
Parameters i r
Proactive Scaling Reactive Scaling
n a
Suitability For applications
d increasing For applications increasing loads in
loads tin expected/
i known unexpected/ unknown manner
mannerr t
a
Working User sets thei threshold but a User defined threshold values
d o
i n 5
t a
i l
o
SCALING
downtime is required. optimize the resources
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
In a cloud, auto scaling can be achieved using user defined policies, various
machine health checks and schedules. Various parameters such as Request
counts, CPU usage and latency are the key parameters for decision making in
autoscaling. A policy here refers to the instruction sets for clouds in case of a
particular scenario (for scaling -up or scaling -down). The autoscaling in the
cloud is done on the basis of following parameters.
6
RESOURCE PROVISIONING,
LOAD BALANCING AND
SECURITY
The process of auto scaling also requires some cooldown period for resuming
the services after a scaling takes place. No two concurrent scaling are triggered
so as to maintain integrity. The cooldown period allows the process of
autoscaling to get reflected in the system in a specified time interval and saves
any integrity issues in cloud environment.
Costs
Workload
Time
Consider a more specific scenario, when the resource requirement is high for
some time duration e.g. in holidays, weekends etc., a Scheduled scaling can
also be performed. Here the time and scale/ magnitude/ threshold of scaling
can be defined earlier to meet the specific requirements based on the previous
knowledge of traffic. The threshold level is also an important parameter in auto
scaling as a low value of threshold results in under utilization of the cloud
resources and a high level of threshold results in higher latency in the cloud.
After adding additional nodes in scale-up, the incoming requests per second
drops below the threshold. This results in triggering the alternate scale-up-
down processes known as a ping-pong effect. To avoid both underscaling and
overscaling issues load testing is recommended to meet the service level
agreements (SLAs). In addition, the scale-up process is required to satisfy the
following properties. Need to brief on SLA also?
1. The number of incoming requests per second per node > threshold of
scale down, after scale-up.
2. The number of incoming requests per second per node < threshold of
scale up, after scale-down
Here, in both the scenarios one should reduce the chances of ping-pong effect.
7
SCALING
Now we know what scaling is and how it affects the applications hosted on the
cloud. Let us now discuss how auto scaling can be performed in fixed amounts
as well as in percentage of the current capacity.
--------------------------------------------------------------------------------------------
Algorithm : 1
--------------------------------------------------------------------------------------------
Input : SLA specific application
Parameters:
N_min minimum number of nodes
D - scale down value.
U scale up value.
T_U scale up threshold
T_D scale down threshold
Let T (SLA) return the maximum incoming request per second (RPS) per node
for the specific SLA.
Let N_c and RPS_n represent the current number of nodes and incoming
requests per second per node respectively.
Repeat:
N_(c_old) ←N_c
N_c ← max(N_min, N_c - D)
RPS_n ←RPS_n x N_(c_old) / N_c
Until RPS_n< T_D or N_c = N_min
8
RESOURCE PROVISIONING,
LOAD BALANCING AND
Now, let us discuss how this algorithm works in detail. Let the values of a few SECURITY
4 0 450 112.5 4
1800
2 6 300
2510
2 8 313.75
3300
2 10 330.00
4120
2 12 343.33
5000
2 14 357.14
Similarly, in case of scaling down, let initially RPS = 8000 and N_c = 19. Now
RPS is reduced to 6200 and following it RPS_n reaches T_D, here an
autoscaling request is initiated deleting D = 2 nodes. Table - 2 lists all the
parameters as per the scale -down requirements.
18 8000 421.05 19
6200
2 17 364.7
4850
2 15 323.33
3500
9
SCALING
2 13 269.23
2650
2 11 240.90
1900
2 8 211.11
The given table shows the stepwise increase/ decrease in the cloud capacity
with respect to the change in load on the application(request per node per
second).
Percentage Scaling:
The below given algorithm is used to determine the scale up and down
thresholds for respective autoscaling.
-----------------------------------------------------------------------------------------------
Algorithm : 2
-----------------------------------------------------------------------------------------------
Input : SLA specific application
Parameters:
N_min - minimum number of nodes
D - scale down value.
U - scale up value.
T_U - scale up threshold
T_D - scale down threshold
Let T (SLA) returns the maximum requests per second (RPS) per node for
specific SLA.
Let N_c and RPS_n represent the current number of nodes and incoming
requests per second per node respectively.
10
RESOURCE PROVISIONING,
LOAD BALANCING AND
N_c ←N_c + max(1, N_c x U/100) SECURITY
Repeat:
N_(c_old) ←N_c
N_c ← max(N_min, N_c - max(1, N_c x D/ 100))
RPS_n ←RPS_n x N_(c_old) / N_c
Until RPS_n< T_D or N_c = N_min
Similarly in case of scaling down, initial RPS = 5000 and N_c = 19, here RPS
reduces to 4140 and RPS_n reaches T_D requesting scale down and hence
deleting 1 i.e. max(1, 1.8 x 8/100). The detailed example is explained using
Table -3 giving details of upscaling with D = 8, U = 1, N_min = 1, T_D = 230
and T_U = 290 .
6 0 500 83.33 6
1695
1 7 242.14
2190
1 8 273.75
2600
1 9 288.88
3430
1 10 343.00
3940
1 11 358.18
4420
1 12 368.33
11
SCALING
4960
1 13 381.53
5500
1 14 392.85
5950
1 15 396.6
The scaling down with the same algorithm is detailed in the table below.
19 5000 263.15 19
3920
1 18 217.77
3510
1 17 206.47
3200
1 16 200
2850
1 15 190
2600
1 14 185.71
2360
1 13 181.53
2060
1 12 171.66
1810
1 11 164.5
1500
150
12
RESOURCE PROVISIONING,
LOAD BALANCING AND
Here if we compare both the algorithms 1 and 2, it is clear that the values of SECURITY
the threshold U and D are at the higher side in case of 2. In this scenario the
utilization of hardware is more and the cloud experiences low footprints.
2) In Algorithm 1 for fixed amount auto scaling, calculate the values in table
if U = 3.
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
Let us now discuss the types of scaling, how we see the cloud infrastructure for
capacity enhancing/ reducing. In general we scale the cloud in a vertical or
horizontal way by either provisioning more resources or by installing more
resources.
The vertical scaling in the cloud refers to either scaling up i.e. enhancing the
computing resources or scaling down i.e. reducing/ cutting down computing
resources for an application. In vertical scaling, the actual number of VMs are
constant but the quantity of the resource allocated to each of them is increased/
decreased. Here no infrastructure is added and application code is also not
changed. The vertical scaling is limited to the capacity of the physical machine
or server running in the cloud. If one has to upgrade the hardware requirements
of an existing cloud environment, this can be achieved by minimum changes.
13
SCALING
B 4 CPUs
vertical scaling
A 2 CPUs
An IT resource (a virtual server with two CPUs) is scaled up by replacing it with a more
powerful IT resource with increased capacity for data storage (a physical server with four CPUs).
14
RESOURCE PROVISIONING,
LOAD BALANCING AND
SECURITY
Pooled
physical
servers
A A B A B C
horizontal scaling
An IT resource (Virtual Server A) is scaled out by adding more of the same IT resources (Virtual Servers B and C).
SUMMARY
In the end, we are now aware of various types of scaling, scaling strategies and
their use in real situations. Various cloud service providers like Amazon AWS,
Microsoft Azure and IT giants like Google offer scaling services on their
application based on the application requirements. These services offer good
help to the entrepreneurs who run small to medium businesses and seek IT
infrastructure support. We have also discussed various advantages of
cloudscaling for business applications.
SOLUTION/ANSWERS
Answers to CYPs 1.
3) Write differences between proactive and reactive scaling: The reactive scaling
technique only works for the actual variation of load on the application however, the
combination works for both expected and real traffic. A good estimate of load
increases performance of the combinational scaling.
Answers to CYPs 2.
1) Explain the concept of fixed amount auto scaling: The fixed amount scaling is a
simplistic approach for scaling in cloud environment. Here the resources are scaled
up/ down by a user defined number of nodes. In fixed amount scaling resource
utilization is not optimized. It can also happen that only a small node can solve the
resource crunch problem but the used defined numbers are very high leading to
underutilized resources. Therefore a percentage amount of scaling is a better
technique for optimal resource usage.
2) In Algorithm 1 for fixed amount auto scaling, calculate the values in table if U = 3:
For the given U = 3, following calculation are made.
4 0 450 112.5 4
1800
3 7 257.14
2510
3 10 251
3300
3 13 253.84
4120
3 16 257.50
16
RESOURCE PROVISIONING,
LOAD BALANCING AND
SECURITY
5000
3 19 263.15
3) What is a cool down period: When auto scaling takes place in cloud, a small time
interval (pause) prevents the triggering next auto scale event. This helps in
maintaining the integrity in the cloud environment for applications. Once the cool
down period is over, next auto scaling event can be accepted.
17
UNIT 9 IoT NETWORKING AND CONNECTIVITY
TECHNOLOGIES
9.1Introduction
9.2Objectives
9.3M2M and IoT Technology
9.4Components of IoT Implementation
9.5Gateway Prefix Allotment
9.6Impact of Mobility on Addressing
9.7Multihoming
9.8IoT Identification and Data Protocols
IPv4, IPv6, MQTT, CoAP, XMPP, AMQP
9.9 Connectivity Technologies
IEEE 802.15.4, ZigBee, 6LoWPAN, RFID, NFC, Bluetooth, Z-wave
9.10Summary
9.1 INTRODUCTION
9.2 OBJECTIVES
After going through this unit, you should be able to:
1
9.3 M2M AND IoT TECHNOLOGY
Various components that make up an M2M system are - sensors, RFID (Radio Frequency
Identification) , Wi-Fi or cellular network, and a computing software which helps networking
devices to interpret data and decision making. These M2M applications can translate data which
in turn can trigger automated actions.Various benefits offered by M2M are -
M2M Applications
Sensor telemetry is one of the first application of M2M communication. It has been used since
the last century for transmitting operational data. Earlier people used telephone lines, then radio
waves, to transmit measurements factors like- temperature, pressure etc for remote monitoring.
Another example of M2M communication is ATM. ATM machine routes information regarding
request for transaction to appropriate bank. The bank in turn through its system approves it and
allows transactions to complete. It also has applications in supply chain management (SCM),
warehouse management systems (WMS), Utility companies, etc. Fig 1 shows various
applications of M2M.
2
Fig 1. Applications of M2M
Internet of Things or IoT, is a technology that has evolved from M2M by increasing the
capabilities at both consumers and enterprise level. It expands the concept of M2M by creating
large networks of devices in which devices communicate with one another through cloud
networking platforms. It allows users to create high performance, fast and flexible networks that
can connect a variety of devices. Table 1 summarizes the differences between M2M and IoT
devices.
IoT is a network of physical objects , called “Things” , embedded with hardware like - sensors or
actuators or software, for exchanging data with other devices over the internet. With the help of
this technology, it is possible to connect any kind of device like simple household objects
example- kitchen appliances, baby monitors, ACs, TVs, etc to other objects like- cars, traffic
lights, web camera, etc. Connecting these objects to the internet through embedded devices,
allows seamless communication between things, processes or people. Some of the applications of
IoT devices are – smart home voice assistant Alexa, smart traffic light system.
IoT devices when connected to cloud platforms, can provide a huge and wide variety of
industrial or business applications. As the number of IoT devices are increasing, the problem of
storing, accessing and processing is also emerging. IoT when used with Cloud technology
provides solutions to these problems due to huge infrastructure provided by cloud providers.
3
Table 1. Difference between M2M and IoT devices
Point to point connection establishment Devices are connected through the network
and also supports connecting to global cloud
networks.
Makes use of internet protocols like- HTTP, Makes use of traditional communication
FTP, etc. protocols
Generally may not rely on internet connection Generally Rely on internet connection
1. Sensors
Sensors are devices that are capable of collecting data from the environment. There are
various types of sensors available –temperature sensors, pressure sensors, RFID tags,
light intensity detectors, electromagnetic sensors, etc.
2. Network
Data collected from sensors are passed over the network for computations to the cloud or
processing nodes. Depending upon the scale, they may be connected over LAN, MAN or
WAN. They can also be connected through wireless networks like- Bluetooth, ZigBee,
Wi-Fi, etc.
3. Analytics
The process of generating useful insights from the data collected by sensors is called
analytics. Analytics when performed in real time, can have numerous applications and
can make the IoT system efficient.
4. Action
4
Information obtained after analytics must be either passed to the user using some user
interface, messages, alerts, etc; or may also trigger some actions with the help of
actuators. Actuators are the devices that perform some action depending on the command
given to them over the network.
Fig 2 shows implementation of IoT. Data captured by sensors are passed on to the cloud servers
over the internet via gateways. Cloud servers in turn perform analytics and pass on the decisions
or commands to actuators.
5
Gateways are networking devices that connect IoT devices like sensors or controllers to Cloud.
In other ways we can say that data generated by IoT devices are transferred to Cloud servers
through IoT gateways.
The number of IoT devices is increasing at an exponential rate. These IoT devices are connected
in a LAN or a WAN. A number of IoT devices within a building, communicating to a gateway
installed in the same building over a wi-fi connection can be called an IoT LAN. Geographically
distributed LAN segments are interconnected and connected to the internet via gateways to form
IoT WAN. Devices connected within LAN have unique IP addresses but may have addresses the
same as devices of another LAN .
Gateways connect IoT LANs and WANs together. It is responsible for forwarding packets
between them on the IP layer. Since a large number of devices are connected, address space
needs to be conserved. Each connected device needs a unique address. IP addresses allocated to
devices within a gateway's jurisdiction are valid only in its domain. Same addresses may be
allocated in another gateway’s domain. Hence to maintain uniqueness, each gateway is assigned
a unique network prefix. It is used for global identification of gateways. This unique identifier
removes the need of allocating a unique IP address to each and every device connected to the
network, hence saves a lot of address space.
Gateway prefix allotment is shown in fig 3. Here two gateway domains are shown. Both of them
are connected to the internet via router. This router has its own address space and allows
connectivity to the internet. This router assigns a unique gateway prefix to both the gateways.
Hence packets are forwarded from gateways to the internet via routers.
6
Fig 3: Gateway prefix allotment
(Source: Reference 1)
When an IoT device moves from one location to another in a network, its address is affected.
Network prefix allocated to gateways change due to mobility. WAN addresses allocated to
devices through gateways changes without affecting IoT LAN addresses. This is possible
because addresses allocated within a domain of gateway are unique. It is not affected by mobility
of devices. These unique local addresses (ULA) are maintained independent of global addresses.
For giving internet access to these ULAs, they are connected to application layer proxy which
routes them globally.
Gateways are attached to a remote anchor point by using protocols like IPv6. These remote
anchor points are immune to changes of network prefix. It is also possible for the nodes in a
network to establish direct connection with remote anchor points to access the internet directly
using tunneling. Fig 4 shows remote anchor points having access to gateways.
7
Fig 4: Remote anchor point
(Source: Reference 1)
9.7 MULTIHOMING
The practice of connecting a host to more than one network is called Multihoming. This can
increase reliability and performance. Various ways to performmultihoming are –
1. Host multihoming
In this type of multihoming, a single host can be connected to two or more networks. For
example a computer connected to both a local network and awi-fi network.
2. Classical multihoming
In this type of multihoming, a single network is connected to multiple providers. Edge
router communicates with providers using dynamic routing protocols. This protocol can
recognize failures and reconfigure routing tables without hosts being aware of it. It
requires address space recognized by all providers, hence it is costly.
8
9.8 IoT IDENTIFICATION AND DATA PROTOCOLS
IoT devices are diverse in their architecture and its use cases can scale from single device
deployment to massive cross-platform deployment. There are various types of communication
protocols that allow communication between these devices. Some of the protocols are given
below.
IPv4
Internet Protocol is a network layer protocol version 4 used to provide addresses to hosts in a
network. It is a widely used communication protocol for different kinds of networks. It is a
connectionless protocol that makes use of packet switching technology. It is used to give a 32 bit
address to a host. It is divided into five classes – A, B, C, D, and E. It can provide upto 4.3
billion addresses only which is not sufficient for an IoT device. It allows data to be encrypted but
does not limit access to data hosted on the network.
IPV6
As the total number of addresses provided by IPv4 are not sufficient specially for IoT devices,
Internet protocol version 6 or IPv6 is introduced. It is an upgraded version of IPv4. It uses 128
bits to address a host hence anticipates future growth and provides relief from shortage of
network addresses. It gives better performance than IPv4. It also ensures privacy and data
integrity. It is automatically configured and has built-in support for authentication. Some of the
differences between IPv4 and IPv6 are shown in table 2.
IPv4 IPv6
Possible number of addresses are 232 Possible number of addresses are 2128
9
It supports broadcasting It supports multicasting
MQTT
Message queuing telemetry transport (MQTT) is a widely used light-weight messaging protocol
based on subscription. It is used in conjunction with TCP/IP protocol. It is designed for battery
powered devices. Its model is based on Subscriber, Publisher and Broker. Publishers are light
weight sensors and subscribers are applications which will receive data from publishers.
Subscribers need to subscribe to a topic. Messages updated in a topic are distributed by brokers.
Publisher collects the data and sends it to the subscriber through a broker. Broker after receiving
messages, filtering and making decisions, sends messages to the subscribers. Brokers also ensure
security by authorizing subscribers and publishers. Fig 5 shows the working of MQTT.
CoAP
Constrained Application Protocol (CoAP) is a web transfer protocol used to translate the HTTP
model so as to be used with restrictive devices and network environments.It is used for low
powered devices. It allows low power sensors to interact with RESTful services. It makes use of
UDP for establishing communication between endpoints. It allows data to be transmitted to
multiple hosts using low bandwidth.
XMPP
10
Extensible messaging and presence protocol (XMPP) enables real time exchange of extensible
data between network entities. It is a communication protocol based on XML i.e. extensible
markup language. It is an open standard hence anyone can implement these services. It also
supports M2M communication across a variety of networks. It can be used for instant
messaging, multi-party chat, video calls, etc.
AMQP
Advanced message queuing protocol i.e AMQP is an application layer message oriented
protocol. It is open standard, efficient, multi-channel, portable and secure. This is fast and also
guarantees delivery along with acknowledgement of received messages. It can be used for both
point-to-point and publish-subscribe messaging. It is used for messaging in client-server
environments. It also supports a multi-client environment and helps servers to handle requests
faster.
IoT devices need to be connected in order to work. Various technologies used to establish
connections between devices are discussed in this section.
IEEE 802.15.4
It is an IEEE standard protocol used to establish wireless personal area networks (WPAN). It is
used for providing low cost, low speed, ubiquitous networks between devices. It is also known as
Low-Rate wireless Personal Area Network (LR-WPAN) standard. It makes use of the first two
layers (Physical and MAC layers) of the network stack and operates in ISM band. These
standards are also used with communication protocols of higher levels like- ZigBee, 6LoWPAN,
etc.
6LoWpan
11
IPV6 over low power wireless personal area network, is a standard for wireless communication.
It was the first standard created for IoT. It allows small, limited processing capabilities and low
power IoT devices to have direct connectivity with IP based servers on the internet. It also allows
IPV6 packets to be transmitted over IEEE 802.15.4 wireless network.
ZigBee
It is a wireless technology based on IEEE 802.15.4 used to address needs of low-power and low-
cost IoT devices. It is used to create low cost, low power, low data rate wireless ad-hoc
networks. It is resistant to unauthorized reading and communication errors but provides low
throughput. It is easy to install, implement and supports a large number of nodes to be connected.
It can be used for short range communications only.
NFC
Near Field Communication (NFC) is a protocol used for short distance communication between
devices. It is based on RFID technology but has a lower transmission range (of about 10 cm). It
is used for identification of documents or objects. It allows contact less transmission of data. It
has shorter setup time than Bluetooth and provides better security.
Bluetooth
It is one of the widely used types of wireless PAN used for short range transmission of data. It
makes use of short range radio frequency. It provides data rate of appx 2.1 Mbps and operates at
2.45GHz. It is capable of low cost and low power transmission for short distances. Its initial
version 1.0 supported upto 732kpbs speed. Its latest version is 5.2 which can work upto 400m
range with 2 Mbps data rate.
Z-Wave
It is one of the standards available for wireless networks. It is interoperable and uses low
powered radio frequency communication. It is used for connecting to smart devices by
consuming low power. These Z-waves devices allow IoT devices to be controlled over the
internet. It is generally used for applications like home automation . It supports data rate of upto
100kbps. It also supports encryption and multi-channel.
RFID
12
Radio frequency identification (RFID) are electronics devices consisting of an antenna and a
small chip. This chip is generally capable of carrying data upto 2000 bytes. It is used to give
unique identification to an object. Its system is composed of reading device and RFID tags.
RFID tags are used to store data and identification information, which is then attached to the
object to be tracked. The reader is used to track presence of RFID tag when the object passes
through it.
9.9 SUMMARY
In this unit M2M and IoTtechnologies are discussed in detail. Machine-to-Machine is a
technology that allows connectivity between networking devices. IoT technology expands the
concept of M2M by creating large networks of devices in which devices communicate with one
another through cloud networking platforms. In order to implement IoT, components involved
are – sensors, network, analytics and actions (actuators). Some of the existing IoT identification
and data protocols are IPv4, IPv6, MQTT, XMPP, etc. Existing connectivity technologies used
for connecting devices are – Bluetooth, Zigbee, 802.15.4, RFID, etc.
References
1. “Internet of Things”, Dr.JeevaJose , 2018, Khanna Book Publishing Co. (P) LTD. ISBN:
978-93-86173-59-1.
13
Solutions to Check your Progress 1
1. IoT is a network of physical objects , called “Things” , embedded with hardware like -
sensors or actuators or software, for exchanging data with other devices over the internet.
With the help of this technology, it is possible to connect any kind of device like simple
household objects example- kitchen appliances, baby monitors, ACs, TVs, etc.
M2M IoT
14
a) Action - Information obtained after analytics must be either passed to the user using
some user interface, messages, alerts, etc; or may also trigger some actions with the
help of actuators.
1. Gateways connect IoT LANs and WANs together. It is responsible for forwarding
packets between them on the IP layer. Since a large number of devices are connected,
address space needs to be conserved. Each connected device needs a unique address. IP
addresses allocated to devices within a gateway's jurisdiction are valid only in its domain.
Same addresses may be allocated in another gateway’s domain. Hence to maintain
uniqueness, each gateway is assigned a unique network prefix. It is used for global
identification of gateways.
2. Both IPv4 and IPv6 are network layer protocols. Some of the differences are –
IPv4 IPv6
Possible number of addresses are 232 Possible number of addresses are 2128
15
limited processing capabilities and low power IoT devices to have direct connectivity
with IP based servers on the internet.
c) RFID - Radio frequency identification (RFID) are electronics devices consisting of an
antenna and a small chip. This chip is generally capable of carrying data upto 2000
bytes. It is used to give unique identification to an object.
16
UNIT 11 FOG COMPUTING AND EDGE COMPUTING
11.1 Introduction
11.2 Objectives
11.3 Introduction to Fog Computing
11.4 Cloud Computing Vs Fog Computing
11.5 Fog Architecture
11.6 Working of Fog
11.7 Advantages of Fog
11.8 Applications of Fog
11.9 Challenges in Fog
11.10 Edge Computing
11.11 Working of Edge Computing
11.12 Cloud Vs Fog Vs Edge Computing
11.13 Applications of Edge Computing
11.14 Summary
11.1 INTRODUCTION
Use of emerging technologies like IoT, on-line applications and popularity of social networking are
leading to an increasing number of users on the internet. Hence data getting generated on a daily basis is
also increasing at an enormous rate leading to increasing workload on Cloud. Also, demand for increased
bandwidth and need for real time applications or analytics is also increasing. Fog computing is a
technology introduced to collaborate with cloud computing for providing solutions. It attempts to bring
cloud-like resources – memory, storage, and compute near end users.
11.2 OBJECTIVES
With increasing use of Internet of Things (IoT) devices and internet users, network traffic, storage and
processing load is also increasing at an exponential rate. Cisco in 2020 estimated that by the end of 2023,
29.3 billion devices and 5.3 billion internet users will be there.
1
Cloud computing technology offers computation service over the internet on a pay-per-use basis.
Resources offered by this technology like – storage, compute or network can be dynamically provisioned
according to user’s demand. This technology offers several advantages like – low cost, rapid
provisioning, high computation power, flexible, automatic updates, no management or monitoring needed
from user’s side, etc. Enormous amounts of data generated by IoT devices and users can be stored and
processed on cloud servers. But in addition to these benefits, there are several shortcomings associated
with this technology – like increased response time due to distant location of servers and centralized
architecture, security as resources are remotely stored and provided over insecure internet, demand of
higher network bandwidth, increasing load on network due to further increasing users.
Cisco in 2014 introduced a term called ‘Fog Computing’ to a technology which extends computing to the
edge of the network. The fog metaphor is used to represent a cloud close to the ground, similar to as fog
concentrates on the edge of the network.
Fog computing is a technology in which resources like - compute, data, storage and applications are
located in-between the end user layer (where data is generated) and the cloud. Devices like gateways,
routers, base stations can be configured as fog devices. It can bring all the advantages offered by cloud
computing closer to the location where data is generated; hence leading to reduced response time, reduced
bandwidth requirements, enhanced security and other benefits.
OpenFog Consortium defined fog computing as “a horizontal system level architecture that distributes
computing, storage, control and networking functions closer to the users along a cloud-to-thing
continuum”.
Fog computing is not introduced to replace cloud computing. Resources offered by Fog servers or devices
are limited as compared to resources offered by huge cloud infrastructure. Hence the cloud computing
model will continue to operate as a centralized computing system (needed for high processing power and
storage) with few capabilities shifted towards fog devices which are present in the proximity of users for
serving low latency operations.
Three layer logical architecture of fog computing is given in Fig 1. The first layer represents the end
devices layer, middle layer represents the fog devices, and the top most layer represents the cloud
servers.
2
Fig 1. Logical Architecture of Fog computing
Cloud computing is defined as a model that allows ubiquitous access to shared resources on demand over
the internet on a pay-per-use basis. Large pools of resources are maintained at data centers by the cloud
service providers. Virtual resources from these pools are dynamically provisioned and allocated to users
on demand. High performance can be achieved by using cloud resources but it may not be used for real
time applications that demand higher response time due to the distant location of cloud servers.
Fog computing is introduced to fill up the gap between the cloud servers and end devices. Fog servers like
cloud servers can offer various resources – compute, storage, or network. Due to its proximity to end
users, it allows computations to be done faster or near real time. Hence it is better suited for latency
sensitive applications. Since fog computing makes use of devices like- switches, routers, gateways; it is
generally limited by resources and hence offers less computation power as compared to cloud.
Some of the differences between cloud computing and fog computing are given in Table 1.
3
Architecture in centralized Architecture is distributed
Distant location from the end users In the proximity of end users
Can be accessed over internet Can be accessed by various protocols and standards
General architecture of fog computing is composed of three layers (as shown in Fig 1.)
1. End Devices Layer - Layer 1 is composed of end devices which can be mobile devices, IoT
devices, computer systems, camera, etc. Data either captured or generated from these end
devices is forwarded to a nearby fog server at Layer 2 for processing.
2. Fog Layer - Layer 2 is composed of multiple fog devices or servers. They are placed at the
edge of a network, between layer 1 and cloud servers. They can be implemented in devices like –
switches, routers, base stations, access points or can be specially configured fog servers.
3. Cloud Layer - Layer 3 is composed of Cloud data centers. They consist of huge
infrastructure - high performance servers, massive storage devices, etc. They provide all cloud
benefits like- high performance, automatic backup, agility.
4
11.6 WORKING OF FOG
Adding fog layer in-between the centralized cloud layer and end devices layer, improves the overall
performance of the system. Working of fog computing in collaboration with cloud computing is described
below.
1. Huge amounts of data is generated from end devices and IoT devices like –mobile, camera,
laptops, etc. This data is then forwarded to the nearest fog server (in layer 2) for processing.
2. Latency sensitive data or applications that require real time responses, are processed by the fog
servers on priority basis. Results of processing or actions to be performed are then reverted
back to the end devices. Fog servers also send the summarized results to cloud servers in layer
3 for future analysis. This allows only filtered data to be offloaded to the cloud layer.
3. Fog servers, if not able to serve requests due to unavailability of resources or information, can
either interact with neighbouring servers or may forward the request cloud servers at Layer 3
depending upon the offloading strategy. Also, time in-sensitive data is generally forwarded to
Cloud servers for processing and storage. After serving the task, response is given to users at
layer 1 via. Fog servers.
There are various advantages of using fog computing technology due to its architecture-
1. Low latency
Fog servers provide the benefit of faster response due to its geographical location i.e. they are
located nearby from the point of data origination. It is suited for time sensitive or real-time
applications.
3. Reduced Cost
Most of the processing is done locally at the fog layer, leading to conservation of networking
resources and hence reducing the overall cost of operations.
5
It also allows applications to be secure and private because data can be processed locally instead
of forwarding to remote centralized cloud infrastructure.
5. Mobility
Fog devices are mobile. They can be easily added or removed from the network and hence offers
flexibility.
Fog computing since its introduction, is gaining popularity due to its applications in various industries.
Some of the applications are –
Smart Cities
Cities that make use of technology to improve quality of life and services provided to people, can be
called smart cities. Fog computing can play a vital role in building smart cities. With the help of smart
devices, IoT devices and fog devices, it is possible to do tasks like – creating smart homes and buildings
by energy management of buildings, maintaining security, etc; intelligent cities by building smart parking
system, infrastructure, traffic management, environment monitoring, etc ; intelligent hospitals, highways,
factories, etc.
Smart Grids
Electrical grid is a network which delivers energy generated from various sources to consumers. The
process of efficient distribution of energy is possible by making use of fog computing. IoT sensors can
monitor energy generated from various sources – like wind energy farms, thermal plants, hydraulic plants,
etc. This data is then passed on to the nearby fog server to identify the optimal source of energy to be used
7
and can also identify problems like equipment malfunctions. Depending upon the problems it may also
identify alternative sources of energy to be used in order to maintain efficiency.
Fog computing has applications in the healthcare system also. Health reports of patients can be recorded
using different types of sensors and forwarded to fog devices. Fog devices after performing analysis
examples - diagnose cardiac diseases, etc can take necessary actions.
Surveillance
Security and Surveillance cameras are deployed in many areas. It is difficult to send massive amounts of
data collected by these cameras to cloud servers due to bandwidth constraints. Hence data collected from
these can be forwarded to nearby fog servers. Fog servers in turn can perform video processing to find out
problems like theft, kidnapping, murders, finding missing people. Necessary action can then be taken by
generating alerts or reporting to police stations.
Fog computing offers several advantages, but there are several challenges associated with it. Some of
them are –
1. Complexity
Fog devices can be diverse in architecture and located at different locations. Fog devices further
store and analyse their own data hence add more complexity to the network.
2. Power Consumption
8
Fog devices require high power consumption for proper functioning. Adding more fog devices
increases energy consumption, which results in an increase of cost.
3. Data Management
Data is distributed across multiple fog devices hence data management and maintaining
consistency is challenging.
4. Authentication
5. Security
Since there are many fog devices, each with a different IP. Getting access to personal data by
spoofing, taping, and hacking can be a challenge.
Edge computing is a technology which offers data processing on the same layer where data is generated
by making use of edge devices having computation capabilities. This allows data to be processed even
faster than processing at fog devices at no or a very low cost. This also increases utilization of edge
devices.
Edge or end devices found today are smarter with various advanced features like artificial intelligence
enabled in them. Edge computing takes advantage of this intelligence to reduce load on network or cloud
servers. Also edge devices when used for computation offers hardware security along with low power
consumption. It can improve security by encrypting data closer to the network core.
Edge computing is often seen as similar to fog computing but there are several differences. Edge
computing devices are limited in their resource capabilities and therefore cannot replace existing Cloud
or Fog computing technology. But edge computing when added with these technologies can offer
numerous advantages and applications. Fig 5 shows the Cloud-Fog-Edge collaboration scenario.
9
Fig 5: Cloud – Fog – Edge Computing architecture
Edge computing allows data processing to be done at the network edge. This can offer several advantages
like – decreases latency, reduces data to be offloaded to cloud or fog, reduces cost of bandwidth, reduces
energy consumption, etc.
Edge computing can work in collaboration with cloud computing only or can be either implemented with
Cloud –Fog collaboration environment.
Instead of sending all the data directly to the cloud or fog layer from the edge devices, data is first
processed at the edge layer. Processing data at the edge layer gives near real time response due to physical
proximity of edge devices. As data generated at the edge layer is huge, it cannot be handled entirely at the
edge layer. Hence it is offloaded to the Cloud or Fog layer. In Cloud-Fog-Edge collaboration scenario,
data from edge layer is first offloaded to fog servers over a localized network, which in turn can offload it
to cloud servers for updates or further processing needs. In Cloud-Edge scenarios, data after processing
on the edge layer, can be offloaded to the cloud layer as resources available at the edge layer are
insufficient to handle large amounts of data. Here the edge layer can decide what is relevant and what is
not before sending to further layers, hence reducing load on cloud and fog servers.
10
11.12 CLOUD Vs FOG Vs EDGE COMPUTING
Cloud, fog and edge computing all are concepts of distributed computing. All of them perform
computation but at different proximity levels and with different resource capacities. Adding Edge and fog
layer to the cloud reduces the amount of storage needed at cloud. It allows data to be transferred at a
faster data rate because of transferring relevant data. Also the cloud would store and process only relevant
data resulting in cost reduction.
Edge computing devices are located at the closest proximity to users. Fog computing devices are located
at intermediate proximity. Cloud computing devices are at distant and remote locations from users. Fog
computing generally makes use of a centralized system which interacts with gateways and computer
systems on LAN. Edge computing makes use of embedded systems directly interfacing with sensors and
controllers. But this distinction does not always exist. Some of the common differences between Cloud,
Fog and Edge computing are shown in Table 2.
Non-real time response Near real time response Real time response
Can be accessed with internet or
Can be accessed with internet Can be accessed without internet
without internet
Edge computing has applications similar to fog computing due to its close proximity. Some of the
applications are listed below.
1. Gaming
11
Gamings which require live streaming feed of the game depends upon latency. In this, edge
servers are placed closed to the gamers to reduce latency.
2. Content Delivery
It allows caching of data like- web pages, videos near users in order to improve performance by
delivering content fastly.
3. Smart Homes
IoT devices can collect data from around the house and process it. Response generated is secure
and in real time as round-trip time is reduced. For example –response generated by Amazon’s
Alexa.
4. Patient monitoring
Edge devices present on the hospital site can process data generated from various monitoring
devices like- temperature sensors, glucose monitors etc. Notifications can be generated to depict
unusual trends and behaviours.
5. Manufacturing
Data collected in manufacturing industries through sensors can be processed in edge devices.
Edge devices here can apply real time analytics and machine learning techniques for reporting
production errors to improve quality.
11.14 SUMMARY
In this unit two emerging technologies – Fog computing and Edge computing are discussed. Cisco
introduced Fog Computing as a technology which extends computing to the edge of the network. In this
technology, resources like - compute, data, storage and applications are located in-between the end user
layer and the cloud. It reduces response time, reduces bandwidth requirements and enhances security.
Edge computing is a technology which offers data processing on the same layer where data is generated
by making use of edge devices having computation capabilities. These technologies cannot replace cloud
computing but can work in collaboration with cloud computing in order to improve performance.
1. Cisco in 2014 introduced a term called ‘Fog Computing’ to a technology which extends
computing to the edge of the network. Fog computing is a technology in which resources like -
12
compute, data, storage and applications are located in-between the end user layer (where data is
generated) and the cloud. Devices like gateways, routers, base stations can be configured as fog
devices. It can bring all the advantages offered by cloud computing closer to the location where
data is generated; hence leading to reduced response time, reduced bandwidth requirements,
enhanced security and other benefits.
2. Some of the differences between cloud computing and fog computing are :-
Distant location from the end users In the proximity of end users
1. End Devices Layer – It is composed of end devices which can be mobile devices, IoT
devices, computer systems, camera, etc. Data either captured or generated from these end
devices is forwarded to a nearby fog server at Layer 2 for processing.
2. Fog Layer – It is composed of multiple fog devices or servers. They are placed at the edge
of a network, between layer 1 and cloud servers. They can be implemented in devices like –
switches, routers, base stations, access points or can be specially configured fog servers.
3. Cloud Layer – It is composed of Cloud data centers. They consist of huge infrastructure -
high performance servers, massive storage devices, etc. They provide all cloud benefits like- high
performance, automatic backup, agility.
13
Various challenges associated with fog are –
a) Complexity
b) Maintaining security
c) Authenticating
d) Additional power consumption
a) Smart Cities
Fog computing can play a vital role in building smart cities. With the help of smart devices,
IoT devices and fog devices, it is possible to do tasks like – creating smart homes and
buildings by energy management of buildings, maintaining security, etc.
c) Surveillance
Security and Surveillance cameras are deployed in many areas. Data collected from these can
be forwarded to nearby fog servers. Fog servers in turn can perform video processing to find
out problems like theft, kidnapping, murders, etc.
1. Edge computing is a technology which offers data processing on the same layer where data is
generated by making use of edge devices having computation capabilities. This allows data to be
processed even faster than processing at fog devices at no or a very low cost. This also increases
utilization of edge devices.
14
3. Some applications of edge computing are -
a) Gaming
Gamings which require live streaming feed of the game depends upon latency. In this, edge
servers are placed closed to the gamers to reduce latency.
b) Content Delivery
It allows caching of data like- web pages, videos near users in order to improve performance
by delivering content fastly.
c) Smart Homes
IoT devices can collect data from around the house and process it. Response generated is
secure and in real time as round-trip time is reduced. For example –response generated by
Amazon’s Alexa.
15
Unit 8: Internet of Things: An Introduction
Internet of Things (IoT) is a massive network of physical devices embedded with sensors,
software, electronics, and network which allows the devices to exchange or collect data and
perform certain actions.
IoT aims at extending internet connectivity beyond computers and smartphones to other
devices people use at home or for business. The technology allows devices to get controlled
across network infrastructure remotely. As a result, it cuts down the human effort and paves
the way for accessing the connected devices easily. With autonomous control, the devices are
operable without involving human interaction. IoT makes things virtually smart through AI
algorithms, data collection, and networks enhancing our lives.
Examples: Pet tracking devices, diabetes monitors, AC sensors to adjust the temperature
based on the outside temperature, smart wearables, and more.
IoT comprises things that have unique identities and are connected to internet. By 2020 there
will be a total of 50 billion devices /things connected to internet. IoT is not limited to just
connecting things to the internet but also allow things to communicate and exchange data.
Definition: A dynamic global n/w infrastructure with self -configuring capabilities based on
standard and interoperable communication protocols where physical and virtual ―things‖
have identities, physical attributes and virtual personalities and use intelligent interfaces, and
are seamlessly integrated into information n/w, often communicate data associated with users
and their environments.
8.2.Characteristics of IoT
1) Dynamic & Self Adapting: IoT devices and systems may have the capability
to dynamically adapt with the changing contexts and take actions based on their
operating conditions, user‘s context or sensed environment. Eg: the surveillance
system is adapting itself based on context and changing conditions.
2) Self Configuring: allowing a large number of devices to work together to
provide certain functionality.
3) Inter Operable Communication Protocols: support a number of interoperable
communication protocols and can communicate with other devices and also with
infrastructure.
4) Unique Identity: Each IoT device has a unique identity and a unique identifier
(IP address).
5) Integrated into Information Network: that allow them to communicate and
exchange data with other devices and systems.
There are numerous use cases for commercial IoT, including monitoring environmental
conditions, managing access to corporate facilities, and economizing utilities and
consumption in hotels and other large venues. Many Commercial IoT solutions are geared
towards improving customer experiences and business conditions.
2. Industrial IoT (IIoT), is perhaps the most dynamic wing of the IoT industry. Its focus is
on augmenting existing industrial systems, making them both more productive and more
efficient. IIoT deployments are typically found in large-scale factories and manufacturing
plants and are often associated with industries like healthcare, agriculture, automotive,
and logistics. The Industrial Internet is perhaps the most well-known example of IIoT.
System installers, repairers, craftsmen, electricians, plumbers, architects who connect devices
and systems to the Internet for personal use and for commercial and other business uses.
As the Internet of Things (IoT) enables devices to make intelligent decisions that generate
positive business outcomes, it’s the sensors that enable those decisions. As cost and time-to-
market pressures continue to rise, sensors provide greater visibility into connected systems
and empower those systems to react intelligently to changes driven by both external forces
and internal factors. Sensors are the components that provide the actionable insights that
power the IoT and enable organizations to make more effective business decisions. It’s
through this real-time measurement that the IoT can transform an organization’s ability to
react to change.
Wi-Fi was designed for computers, and 4G LTE wireless targeted smartphones and portable
devices. Both have been tremendously successful — and both were shaped by the devices
they were intended for. The same goes for 5G, the first generation of wireless technology
designed with extremely small, low-power, and near-ubiquitous IoT devices in mind. Unlike
Wi-Fi and LTE devices, which we handle and plug into power sources on a daily basis, IoT
sensors will operate autonomously for years at a time, often in inaccessible places, without
recharging or replacement. An explosion of new protocols: The IoT is prompting the
development of a number of different 5G communication standards, not just one or two
network types
1. IoT Security: Security technologies will be required to protect IoT devices and platforms
from both information attacks and physical tampering, to encrypt their communications, and
to address new challenges such as impersonating "things" or denial-of-sleep attacks that drain
batteries. IoT security will be complicated by the fact that many "things" use simple
processors and operating systems that may not support sophisticated security approaches.
2. IoT Analytics: IoT business models will exploit the information collected by "things" in
many ways, which will demand new analytic tools and algorithms. As data volumes increase
over the next five years, the needs of the IoT may diverge further from traditional analytics.
6. IoT Processors. The processors and architectures used by IoT devices define many of their
capabilities, such as whether they are capable of strong security and encryption, power
consumption, whether they are sophisticated enough to support an operating system,
updatable firmware, and embedded device management agents. Understanding the
implications of processor choices will demand deep technical skills.
7. IoT Operating Systems. Traditional operating systems such as Windows and iOS were
not designed for IoT applications. They consume too much power, need fast processors, and
in some cases, lack features such as guaranteed real-time response. They also have too large a
memory footprint for small devices and may not support the chips that IoT developers use.
Consequently, a wide range of IoT-specific operating systems has been developed to suit
many different hardware footprints and feature needs.
8. Event Stream Processing: Some IoT applications will generate extremely high data rates
that must be analyzed in real time. Systems creating tens of thousands of events per second
are common, and millions of events per second can occur in some situations. To address such
requirements, distributed stream computing platforms have emerged that can process very
high-rate data streams and perform tasks such as real-time analytics and pattern
identification.
9. IoT Platforms. IoT platforms bundle many of the infrastructure components of an IoT
system into a single product. The services provided by such platforms fall into three main
categories:
Low-level device control and operations such as communications, device monitoring and
management, security, and firmware updates; IoT data acquisition, transformation and
management; IoT application development, including event-driven logic, application
programming, visualization, analytics and adapters to connect to enterprise systems.
10.IoT Standards and Ecosystems. Standards and their associated application programming
interfaces (APIs) will be essential because IoT devices will need to interoperate and
communicate, and many IoT business models will rely on sharing data between multiple
devices and organizations. Many IoT ecosystems will emerge, and organizations creating
products may have to develop variants to support multiple standards or ecosystems and be
prepared to update products during their life span as the standards evolve and new standards
and APIs emerge.
8.5.Sensors
Sensors are used for sensing things and devices etc. A sensor is a device that provides a
usable output in response to a specified measurement. The sensor attains a physical parameter
and converts it into a signal suitable for processing (e.g. electrical, mechanical, optical) the
characteristics of any device or material to detect the presence of a particular physical
quantity. The output of the sensor is a signal which is converted to a human-readable form
like changes in characteristics, changes in resistance, capacitance, impedance etc.
1. Sensitivity is a measure of the change in output of the sensor relative to a unit change
in the input (the measured quantity.) Example: The speakers you purchase for your
home entertainment may have a rated sensitivity of 89 dB Signal Pressure Level per
Watt per meter.
2. Resolution is the smallest amount of change in the input that can be detected and
accurately indicated by the sensor. Example: What is the resolution of an ordinary
ruler? of a Vernier Calipers?
3. Linearity is determined by the calibration curve. The static calibration curve plots the
output amplitude versus the input amplitude under static conditions. Its degree of
resemblance to a straight line describes the linearity.
4. Drift is the deviation from a specific reading of the sensor when the sensor is kept at
that value for a prolonged period of time. The zero drift refers to the change in sensor
output if the input is kept steady at a level that (initially) yields a zero reading.
Similarly, the full -scale drift is the drift if the input is maintained at a value which
originally yields a full scale deflection. Reasons for drift may be extraneous, such as
changes in ambient pressure, humidity, temperature etc., or due to changes in the
constituents of the sensor itself, such as aging, wear etc.
5. The range of a sensor is determined by the allowed lower and upper limits of its input
or output. Usually the range is determined by the accuracy required. Example:
Sometimes the range may just be determined by physical limitations. Example: a pocket
ruler.
The dynamic characteristics of a sensor represent the time response of the sensor system.
Knowledge of these is essential to fruitfully use a sensor. Important common dynamic
responses of sensors include rise time, delay time, peak time, settling time percentage error
and steady-state error
Temperature sensors, Pressure sensors, Motion sensors, Level sensors, Image sensors,
Proximity sensors, Water quality sensors, Chemical sensors, Gas sensors, Smoke sensors,
Infrared (IR) sensors, Humidity sensors, etc.
A description of each of these sensors is provided below.
Temperature sensors
Temperature sensors detect the temperature of the air or a physical object and concert that
temperature level into an electrical signal that can be calibrated accurately reflect the
measured temperature. These sensors could monitor the temperature of the soil to help with
agricultural output or the temperature of a bearing operating in a critical piece of equipment
to sense when it might be overheating or nearing the point of failure.
Pressure sensors
Pressure sensors measure the pressure or force per unit area applied to the sensor and can
detect things such as atmospheric pressure, the pressure of a stored gas or liquid in a sealed
system such as tank or pressure vessel, or the weight of an object.
Motion sensors
Motion sensors or detectors can sense the movement of a physical object by using any one of
several technologies, including passive infrared (PIR), microwave detection, or ultrasonic,
which uses sound to detect objects. These sensors can be used in security and intrusion
detection systems, but can also be used to automate the control of doors, sinks, air
conditioning and heating, or other systems.
Level sensors
Level sensors translate the level of a liquid relative to a benchmark normal value into a
signal. Fuel gauges display the level of fuel in a vehicle’s tank, as an example, which
provides a continuous level reading. There are also point level sensors, which are a go-no/go
or digital representation of the level of the liquid. Some automobiles have a light that
illuminates when the fuel level tank is very close to empty, acting as an alarm that warns the
driver that fuel is about to run out completely.
Image sensors
Image sensors function to capture images to be digitally stored for processing. License plate
readers are an example, as well as facial recognition systems. Automated production lines can
use image sensors to detect issues with quality such as how well a surface is painted after
leaving the spray booth.
Proximity sensors
Proximity sensors can detect the presence or absence of objects that approach the sensor
through a variety of different technology designs.
The importance of water to human beings on earth not only for drinking but as a key
ingredient needed in many production processes dictates the need to be able to sense and
measure parameters around water quality. Some examples of what is sensed and monitored
include:
Chemical presence (such as chlorine levels or fluoride levels),Oxygen levels (which may
impact the growth of algae and bacteria),Electrical conductivity (which can indicate the level
of ions present in water), pH level (a reflection of the relative acidity or alkalinity of the
water),Turbidity levels (a measurement of the amount of suspended solids in water)
Chemical sensors
Chemical sensors are designed to detect the presence of specific chemical substances which
may have inadvertently leaked from their containers into spaces that are occupied by
personnel and are useful in controlling industrial process conditions.
Gas sensors
Related to chemical sensors, gas sensors are tuned to detect the presence of combustible,
toxic, or flammable gas in the vicinity of the sensor. Examples of specific gases that can be
detected include:
Bromine (Br2), Carbon Monoxide (CO), Chlorine (Cl2), Chlorine Dioxide (ClO2),Hydrogen
Cyanide (HCN),Hydrogen Peroxide (H2O2), Hydrogen Sulfide (H2S), Nitric Oxide (NO),
Nitrogen Dioxide (NO2), Ozone (O3), etc.
Smoke sensors
Smoke sensors or detectors pick up the presence of smoke conditions which could be an
indication of a fire typically using optical sensors (photoelectric detection) or ionization
detection.
Acceleration sensors
8.7. Actuators
Servo is a small device that incorporates a two wire DC motor, a gear train, a potentiometer,
an integrated circuit, and a shaft (output spine).
2. Stepper Motors:
Stepper motors are DC motors that move in discrete steps. They have multiple coils that
are organized in groups called “phases”. By energizing each phase in sequence, the motor
will rotate, one step at a time. With a computer controlled stepping, you can achieve very
precise positioning and/or speed control.
Direct Current (DC) motor is the most common actuator used in projects. They are simple,
cheap, and easy to use. DC motors convert electrical into mechanical energy. Also, they come
in different sizes.
4. Linear actuator:
A linear actuator is an actuator that creates motion in a straight line, in contrast to the circular
motion of a conventional electric motor. Linear actuators are used in machine tools and
industrial machinery, in computer peripherals such as disk drives and printers, in valves and
dampers, and in many other places where linear motion is required
5. Relay:
6. Solenoid:
A solenoid is simply a specially designed electromagnet. Solenoids are inexpensive, and their
use is primarily limited to on-off applications such as latching, locking, and triggering. They
are frequently used in home appliances (e.g. washing machine valves), office equipment (e.g.
copy machines), automobiles (e.g. door latches and the starter solenoid), pinball machines
(e.g., plungers and bumpers), and factory automation
Raspberry Pi
The Raspberry Pi is a very cheap computer that runs Linux, but it also provides a set
of GPIO (general purpose input/output) pins that allow you to control electronic
components for physical computing and explore the Internet of Things (IoT).
Raspberry Pi was basically introduced in 2006.
It is particularly designed for educational use and intended for Python.
A Raspberry Pi is of small size i.e., of a credit card sized single board computer,
which is developed in the United Kingdom(U.K) by a foundation called Raspberry Pi
All models feature a Broadcom system on a chip (SoC) with an integrated ARM-
compatible central processing unit (CPU) and on-chip graphics processing unit
(GPU).
Processor speed ranges from 700 MHz to 1.4 GHz for the Pi 3 Model B+ or 1.5 GHz
for the Pi 4; on-board memory ranges from 256 MB to 1 GB with up to 4 GB
available on the Pi 4 random-access memory (RAM).
Secure Digital (SD) cards in Micro SDHC form factor (SDHC on early models) are
used to store the operating system and program memory.
The boards have one to five USB ports. For video output, HDMI and composite video
are supported, with a standard 3.5 mm tip-ring-sleeve jack for audio output.
Lower-level output is provided by a number of GPIO pins, which support common
protocols like I²C. The B-models have an 8P8C Ethernet port and the Pi 3 and Pi Zero
W have on-board Wi-Fi and Bluetooth.
8.9.IoT Architecture
The Reference Model introduced in 2014 by Cisco, IBM, and Intel at the 2014 IoT World
Forum has as many as seven layers. According to an official press release by Cisco forum
host, the architecture aims to “help educate CIOs, IT departments, and developers on
deployment of IoT projects, and accelerate the adoption of IoT.”
These layers are:
1. The perception layer hosting smart things;
2. The connectivity or transport layer transferring data from the physical layer to the
cloud and vice versa via networks and gateways;
3. The processing layer employing IoT platforms to accumulate and manage all data
streams; and
4.The application layer delivering solutions like analytics, reporting, and device control
to end users.
Perception layer: converting analog signals into digital data and vice versa
The initial stage of any IoT system embraces a wide range of “things” or endpoint devices
that act as a bridge between the real and digital worlds. They vary in form and size, from tiny
silicon chips to large vehicles. By their functions, IoT things can be divided into the
following large groups.
Sensors such as probes, gauges, meters, and others. They collect physical parameters like
temperature or humidity, turn them into electrical signals, and send them to the IoT system.
IoT sensors are typically small and consume little power.
Actuators, translating electrical signals from the IoT system into physical actions.
Machines and devices connected to sensors and actuators or having them as integral parts.
Connectivity layer: enabling data transmission
The second level is in charge of all communications across devices, networks, and cloud
services that make up the IoT infrastructure. The connectivity between the physical layer and
the cloud is achieved in two ways:
directly, using TCP or UDP/IP stack;
via gateways — hardware or software modules performing translation between different
protocols as well as encryption and decryption of IoT data.
The communications between devices and cloud services or gateways involve different
networking technologies.
Ethernet connects stationary or fixed IoT devices like security and video cameras,
permanently installed industrial equipment, and gaming consoles.
WiFi, the most popular technology of wireless networking, is a great fit for data-intensive
IoT solutions that are easy to recharge and operate within a small area. A good example of
use is smart home devices connected to the electrical grid.
NFC (Near Field Communication) enables simple and safe data sharing between two
devices over a distance of 4 inches (10 cm) or less.
Bluetooth is widely used by wearables for short-range communications. To meet the needs of
low-power IoT devices, the Bluetooth Low-Energy (BLE) standard was designed. It transfers
only small portions of data and doesn’t work for large files.
LPWAN (Low-power Wide-area Network) was created specifically for IoT devices. It
provides long-range wireless connectivity on low power consumption with a battery life of
10+ years. Sending data periodically in small portions, the technology meets the requirements
of smart cities, smart buildings, and smart agriculture (field monitoring).
ZigBee is a low-power wireless network for carrying small data packages over short
distances. The outstanding thing about ZigBee is that it can handle up to 65,000 nodes.
Created specifically for home automation, it also works for low-power devices in industrial,
scientific, and medical sites.
Cellular networks offer reliable data transfer and nearly global coverage. There are two
cellular standards developed specifically for IoT things. LTE-M (Long Term Evolution for
Machines) enables devices to communicate directly with the cloud and exchange high
volumes of data. NB-IoT or Narrowband IoT uses low-frequency channels to send small data
packages.
Edge or fog computing layer: reducing system latency
This level is essential for enabling IoT systems to meet the speed, security, and scale
requirements of the 5th generation mobile network or 5G. The new wireless standard
promises faster speeds, lower latency, and the ability to handle many more connected
devices, than the current 4G standard.
The idea behind edge or fog computing is to process and store information as early and as
close to its sources as possible. This approach allows for analyzing and transforming high
volumes of real-time data locally, at the edge of the networks. Thus, you save the time and
other resources that otherwise would be needed to send all data to cloud services. The result
is reduced system latency that leads to real-time responses and enhanced performance.
Processing layer: making raw data useful
The processing layer accumulates, stores, and processes data that comes from the previous
layer. All these tasks are commonly handled via IoT platforms and include two major stages.
Data accumulation stage
The real-time data is captured via an API and put at rest to meet the requirements of non-real-
time applications. The data accumulation component stage works as a transit hub between
event-based data generation and query-based data consumption.
Among other things, the stage defines whether data is relevant to the business requirements
and where it should be placed. It saves data to a wide range of storage solutions, from data
lakes capable of holding unstructured data like images and video streams to event stores and
telemetry databases. The total goal is to sort out a large amount of diverse data and store it in
the most efficient way.
Data abstraction stage
Here, data preparation is finalized so that consumer applications can use it to generate
insights. The entire process involves the following steps:
combining data from different sources, both IoT and non-IoT, including ERM, ERP, and
CRM systems; reconciling multiple data formats; and aggregating data in one place or
making it accessible regardless of location through data virtualization.
Similarly, data collected at the application layer is reformatted here for sending to the
physical level so that devices can “understand” it.
Together, the data accumulation and abstraction stages veil details of the hardware,
enhancing the interoperability of smart devices. What’s more, they let software developers
focus on solving particular business tasks — rather than on delving into the specifications of
devices from different vendors.
Application layer: addressing business requirements
At this layer, information is analyzed by software to give answers to key business questions.
There are hundreds of IoT applications that vary in complexity and function, using different
technology stacks and operating systems. Some examples are:
device monitoring and control software, mobile apps for simple interactions, business
intelligence services, and analytic solutions using machine learning.
Currently, applications can be built right on top of IoT platforms that offer software
development infrastructure with ready-to-use instruments for data mining, advanced
analytics, and data visualization. Otherwise, IoT applications use APIs to integrate with
middleware.
Applications of IoT
1. IoT Wearables
Wearable technology is a hallmark of IoT applications and probably is one of the earliest
industries to have deployed the IoT at its service. We happen to see Fit Bits, heart rate
monitors and smart watches everywhere these days.
One of the lesser-known wearables includes the Guardian glucose monitoring device. The
device is developed to aid people suffering from diabetes. It detects glucose levels in the
body, using a tiny electrode called glucose sensor placed under the skin and relays the
information via Radio Frequency to a monitoring device.
2. IoT Applications – Smart Home Applications
When we talk about IoT Applications, Smart Homes are probably the first thing that we think
of. The best example I can think of here is Jarvis, the AI home automation employed by
Mark Zuckerberg. There is also Allen Pan’s Home Automation System where functions in
the house are actuated by use of a string of musical notes
The resources that current medical research uses, lack critical real-world information. It
mostly uses leftover data, controlled environments, and volunteers for medical
examination. IoT opens ways to a sea of valuable data through analysis, real-time field data,
and testing.
The Internet of Things also improves the current devices in power, precision, and
availability. IoT focuses on creating systems rather than just equipment
Security Challenges
Regulation Challenges
Compatibility Challenges
Bandwidth Challenges
Customer Expectation Challenges
Security Challenges:
Rapid advances in both technology and the complexity of cyber-attacks have meant that the
risk of security breaches has never been higher. There is an increased responsibility
for software developers to create the most secure applications possible to defend against this
threat as IoT devices are often seen as easy targets by hackers.
Regulation Challenges
We’ve already touched on how GDPR has impacted the IoT industry, however, as the
industry is still relatively new and young, it generally lacks specific regulation and oversight,
which is required to ensure that all devices are produced with a suitable level of protection
and security.
Compatibility Challenges
At the core of the IoT concept, all devices must be able to connect and communicate with
each other for data to be transferred.
The IoT industry currently lacks any compatibility standards, meaning that many devices
could all run on different standards resulting in difficulties communicating with one another
effectively.
Bandwidth Challenges
Perhaps at no surprise, devices and applications that rely on the ability to communicate with
each other constantly to work effectively tend to use a lot of data at once, leading to
bandwidth constraints for those using many devices at once.
Combine this with existing demands for data and broadband in the typical house, and you can
quickly see how data and bandwidth limitations can be a challenge.
Arguably the biggest hurdle for the industry relates to customer perception. For anything new
to be adopted by the masses, it has to be trusted completely.
For the IoT industry, this is a continuously evolving challenge as it relies on the ability to
actively combat security threats and reassure the general consumer market that the devices
are both safe to use and secure to hold vast quantities of sensitive data