Part 10: Cloud Computing with Fog computing

Part 10: Cloud Computing with Fog computing

Cloud Computing and Fog Computing

Cloud Computing: The delivery of on-demand computing services is known as cloud computing. We can use applications to storage and processing power over the internet. It is a pay as you go service. Without owning any computing infrastructure or any data centers, anyone can rent access to anything from applications to storage from a cloud service provider. We can avoid the complexity of owning and maintaining infrastructure by using cloud computing services and pay for what we use. In turn, cloud computing services providers can benefit from significant economies of scale by delivering the same services to a wide range of customers.

Fog Computing:

Fog computing is a decentralized computing infrastructure or process in which computing resources are located between the data source and the cloud or any other data center. Fog computing is a paradigm that provides services to user requests at the edge networks. The devices at the fog layer usually perform operations related to networking such as routers, gateways, bridges, and hubs. Researchers envision these devices to be capable of performing both computational and networking operations, simultaneously. Although these devices are resource-constrained compared to the cloud servers, the geological spread and the decentralized nature help in offering reliable services with coverage over a wide area. Fog computing is the physical location of the devices, which are much closer to the users than the cloud servers.

Many people use the terms fog computing and edge computing interchangeably because both involve bringing intelligence and processing closer to where the data is created. This is often done to improve efficiency, though it might also be done for security and compliance reasons.

The fog metaphor comes from the meteorological term for a cloud close to the ground, just as fog concentrates on the edge of the network. The term is often associated with Cisco; the company’s product line manager, Ginny Nichols, is believed to have coined the term. Cisco Fog Computing is a registered name; fog computing is open to the community at large.

History of fog computing

In 2015, Cisco partnered with Microsoft, Dell, Intel, Arm and Princeton University to form the OpenFog Consortium. Other organizations, including General Electric (GE), Foxconn and Hitachi, also contributed to this consortium. The consortium’s primary goals were to both promote and standardize fog computing. The consortium merged with the Industrial Internet Consortium (IIC) in 2019.

Fog computing vs. edge computing

According to the OpenFog Consortium started by Cisco, the key difference between edge and fog computing is where the intelligence and compute power are placed. In a strictly foggy environment, intelligence is at the local area network (LAN), and data is transmitted from endpoints to a fog gateway, where it’s then transmitted to sources for processing and return transmission.

In edge computing, intelligence and power can be in either the endpoint or a gateway. Proponents of edge computing praise its reduction of points of failure because each device independently operates and determines which data to store locally and which data to send to a gateway or the cloud for further analysis. Proponents of fog computing over edge computing say it’s more scalable and gives a better big-picture view of the network as multiple data points feed data into it. It should be noted, however, that some network engineers consider fog computing to be simply a Cisco brand for one approach to edge computing.

How fog computing works

Fog networking complements doesn’t replace cloud computing; fogging enables short-term analytics at the edge, while the cloud performs resource-intensive, longer-term analytics. Although edge devices and sensors are where data is generated and collected, they sometimes don’t have the compute and storage resources to perform advanced analytics and machine learning tasks. Though cloud servers have the power to do this, they are often too far away to process the data and respond in a timely manner. In addition, having all endpoints connecting to and sending raw data to the cloud over the internet can have privacy, security and legal implications, especially when dealing with sensitive data subject to regulations in different countries. Popular fog computing applications include smart grids, smart cities, smart buildings, vehicle networks and software-defined networks.

Fog computing benefits and drawbacks

Like any other technology, fog computing has its pros and cons. Some of the advantages to fog computing include the following:

Bandwidth conservation. Fog computing reduces the volume of data that is sent to the cloud, thereby reducing bandwidth consumption and related costs.

Improved response time. Because the initial data processing occurs near the data, latency is reduced, and overall responsiveness is improved. The goal is to provide millisecond-level responsiveness, enabling data to be processed in near-real time.

Network-agnostic. Although fog computing generally places compute resources at the LAN level — as opposed to the device level, which is the case with edge computing — the network could be considered part of the fog computing architecture. At the same time, though, fog computing is network-agnostic in the sense that the network can be wired, Wi-Fi or even 5G.

Of course, fog computing also has its disadvantages, some of which include the following:

Physical location. Because fog computing is tied to a physical location, it undermines some of the “anytime/anywhere” benefits associated with cloud computing.
Potential security issues. Under the right circumstances, fog computing can be subject to security issues, such as Internet Protocol (IP) address spoofing or man in the middle (MitM) attacks.
Startup costs. Fog computing is a solution that utilizes both edge and cloud resources, which means that there are associated hardware costs.
Ambiguous concept. Even though fog computing has been around for several years, there is still some ambiguity around the definition of fog computing with various vendors defining fog computing differently.

Below is a table of differences between Cloud Computing and Fog Computing:

Feature Cloud Computing Fog Computing
Latency Cloud computing has high latency compared to fog computing Fog computing has low latency
Capacity Cloud Computing does not provide any reduction in data while sending or transforming data Fog Computing reduces the amount of data sent to cloud computing.
Responsiveness Response time of the system is low. Response time of the system is high.
Security Cloud computing has less security compared to Fog Computing Fog computing has high Security.
Speed Access speed is high depending on the VM connectivity. High even more compared to Cloud Computing.
Data Integration Multiple data sources can be integrated. Multiple Data sources and devices can be integrated.
Mobility In cloud computing mobility is Limited. Mobility is supported in fog computing.
Location Awareness Partially Supported in Cloud computing. Supported in fog computing.
Number of Server Nodes Cloud computing has Few number of server nodes. Fog computing has Large number of server nodes.
Geographical Distribution It is centralized. It is decentralized and distributed.
Location of service Services provided within the internet. Services provided at the edge of the local network.
Working environment Specific data center building with air conditioning systems Outdoor (streets,base stations, etc.) or indoor (houses, cafes, etc.)
Communication mode IP network Wireless communication: WLAN, WiFi, 3G, 4G, ZigBee, etc. or wired communication (part of the IP networks)
Dependence on the quality of core network Requires strong network core. Can also work in Weak network core.
Part 10: Cloud Computing with Fog computing

Part 8: Cloud Computing Providers and Challenges

Cloud Providers and Challenges

Various Cloud Computing platforms are available today. The following table contains the popular Cloud Computing platforms:

SN Platform Description

This is a development platform. This provides a simple user interface and lets users log in, build an app, and push it in the cloud.

2 Appistry

The Appistry’s CloudIQ platform is efficient in delivering a runtime application. This platform is very useful to create scalable and service oriented applications.

3 AppScale

The AppScale is an open source platform for App Engine of Google applications.

4 AT&T

The AT&T allows access to virtual servers and manages the virtualization infrastructure. This virtualization infrastructure includes network, server and storage.

5 Engine Yard

The Engine Yard is a rails application on cloud computing platform.

6 Enomaly

Enomaly provides the Infrastructure-as-a-Service platform.

7 FlexiScale

The FlexiScale offers a cloud computing platform that allows flexible, scalable and automated cloud infrastructure.

8 GCloud3

The GCloud3 offers private cloud solution in its platform.

9 Gizmox

The Gizmox Visual WebGUI platform is best suited for developing new web apps and modernize the legacy apps based on, DHTML, etc.

10 GoGrid

The GoGrid platform allows the users to deploy web and database cloud services.

11 Google

The Google’s App Engine lets the users build, run and maintain their applications on Google infrastructure.

12 LongJump

The LongJump offers a business application platform, a Platform-as-a-Service (PaaS).

13 Microsoft

The Microsoft Windows Azure is a cloud computing platform offering an environment to create cloud apps and services.

14 OrangeScape

OrangeScape offers a Platform-as-a-Service (Paas) for non-programmers. Building an app is as easy as spreadsheet.

15 RackSpace

The RackSpace provides servers-on-demand via a cloud-driven platform of virtualized servers.

16 Amazon EC2

The Amazon EC2 (Elastic Compute Cloud) lets the users configure and control computing resources while running them on Amazon environment.

Cloud computing, an emergent technology, has placed many challenges in different aspects of data and information handling. Some of these are shown in the following diagram:

cloud Computing Challenges

Security and Privacy

Security and Privacy of information is the biggest challenge to cloud computing. Security and privacy issues can be overcome by employing encryption, security hardware and security applications.


This is another challenge to cloud computing that applications should easily be migrated from one cloud provider to another. There must not be vendor lock-in. However, it is not yet made possible because each of the cloud provider uses different standard languages for their platforms.


It means the application on one platform should be able to incorporate services from the other platforms. It is made possible via web services, but developing such web services is very complex.

Computing Performance

Data intensive applications on cloud requires high network bandwidth, which results in high cost. Low bandwidth does not meet the desired computing performance of cloud application.

Reliability and Availability

It is necessary for cloud systems to be reliable and robust because most of the businesses are now becoming dependent on services provided by third-party.

Part 10: Cloud Computing with Fog computing

Part 7: Cloud Computing Security and Application

Security in cloud computing is a major concern. Data in cloud should be stored in encrypted form. To restrict client from accessing the shared data directly, proxy and brokerage services should be employed.

Security Planning

Before deploying a particular resource to cloud, one should need to analyze several aspects of the resource such as:

  • Select resource that needs to move to the cloud and analyze its sensitivity to risk.
  • Consider cloud service models such as IaaS, PaaS, and SaaS. These models require customer to be responsible for security at different levels of service.
  • Consider the cloud type to be used such as public, private, community or hybrid.
  • Understand the cloud service provider’s system about data storage and its transfer into and out of the cloud.

The risk in cloud deployment mainly depends upon the service models and cloud types.

Understanding Security of Cloud

Security Boundaries

A particular service model defines the boundary between the responsibilities of service provider and customer. Cloud Security Alliance (CSA) stack model defines the boundaries between each service model and shows how different functional units relate to each other. The following diagram shows the CSA stack model:

cloud Computing CSA Stack Model

Key Points to CSA Model

  • IaaS is the most basic level of service with PaaS and SaaS next two above levels of services.
  • Moving upwards, each of the service inherits capabilities and security concerns of the model beneath.
  • IaaS provides the infrastructure, PaaS provides platform development environment, and SaaS provides operating environment.
  • IaaS has the least level of integrated functionalities and integrated security while SaaS has the most.
  • This model describes the security boundaries at which cloud service provider’s responsibilities end and the customer’s responsibilities begin.
  • Any security mechanism below the security boundary must be built into the system and should be maintained by the customer.

Although each service model has security mechanism, the security needs also depend upon where these services are located, in private, public, hybrid or community cloud.

Understanding Data Security

Since all the data is transferred using Internet, data security is of major concern in the cloud. Here are key mechanisms for protecting data.

  • Access Control
  • Auditing
  • Authentication
  • Authorization

All of the service models should incorporate security mechanism operating in all above-mentioned areas.

Isolated Access to Data

Since data stored in cloud can be accessed from anywhere, we must have a mechanism to isolate data and protect it from client’s direct access.

Brokered Cloud Storage Access is an approach for isolating storage in the cloud. In this approach, two services are created:

  • A broker with full access to storage but no access to client.
  • A proxy with no access to storage but access to both client and broker.

Working Of Brokered Cloud Storage Access System

When the client issues request to access data:

  • The client data request goes to the external service interface of proxy.
  • The proxy forwards the request to the broker.
  • The broker requests the data from cloud storage system.
  • The cloud storage system returns the data to the broker.
  • The broker returns the data to proxy.
  • Finally the proxy sends the data to the client.

All of the above steps are shown in the following diagram:

Cloud Computing Brokered Cloud Storage Access


Encryption helps to protect data from being compromised. It protects data that is being transferred as well as data stored in the cloud. Although encryption helps to protect data from any unauthorized access, it does not prevent data loss.


Cloud computing operation refers to delivering superior cloud service. Today, cloud computing operations have become very popular and widely employed by many of the organizations just because it allows to perform all business operations over the Internet.

These operations can be performed using a web application or mobile based applications. There are a number of operations performed in cloud. Some of them are shown in the following diagram:

Cloud Computing Operations

Managing Cloud Operations

There are several ways to manage day-to-day cloud operations, as shown in the following diagram:

Cloud Computing Operations Management

  • Always employ right tools and resources to perform any function in the cloud.
  • Things should be done at right time and at right cost.
  • Selecting an appropriate resource is mandatory for operation management.
  • The process should be standardized and automated to manage repetitive tasks.
  • Using efficient process will eliminate the waste of efforts and redundancy.
  • One should maintain the quality of service to avoid re-work later.

Cloud Computing has its applications in almost all the fields such as business, entertainment, data storage, social networking, management, entertainment, education, art and global positioning system, etc. Some of the widely famous cloud computing applications are discussed here in this tutorial:

Business Applications

Cloud computing has made businesses more collaborative and easy by incorporating various apps such as MailChimp, Chatter, Google Apps for business, and Quickbooks.

SN Application Description
1 MailChimp

It offers an e-mail publishing platform. It is widely employed by the businesses to design and send their e-mail campaigns.

2 Chatter

Chatter app helps the employee to share important information about organization in real time. One can get the instant feed regarding any issue.

3 Google Apps for Business

Google offers creating text documents, spreadsheets, presentations, etc., on Google Docs which allows the business users to share them in collaborating manner.

4 Quickbooks

It offers online accounting solutions for a business. It helps in monitoring cash flow, creating VAT returns and creating business reports.

Data Storage and Backup, Mozy, Joukuu are the applications offering data storage and backup services in cloud.

SN Application Description
1 offers drag and drop service for files. The users need to drop the files into Box and access from anywhere.

2 Mozy

Mozy offers online backup service for files to prevent data loss.

3 Joukuu

Joukuu is a web-based interface. It allows to display a single list of contents for files stored in Google Docs, and Dropbox.

Management Applications

There are apps available for management task such as time tracking, organizing notes. Applications performing such tasks are discussed below:

SN Application Description
1 Toggl

It helps in tracking time period assigned to a particular project.

2 Evernote

It organizes the sticky notes and even can read the text from images which helps the user to locate the notes easily.

3 Outright

It is an accounting app. It helps to track income, expenses, profits and losses in real time.

Social Applications

There are several social networking services providing websites such as Facebook, Twitter, etc.

SN Application Description
1 Facebook

It offers social networking service. One can share photos, videos, files, status and much more.

2 Twitter

It helps to interact with the public directly. One can follow any celebrity, organization and any person, who is on twitter and can have latest updates regarding the same.

Entertainment Applications

SN Application Description
1 Audio

It offers streaming service. The music files are stored online and can be played from cloud using the own media player of the service.

Art Applications

SN Application Description
1 Moo

It offers art services such as designing and printing business cards, postcards and mini cards.

Part 10: Cloud Computing with Fog computing

Part 2: Cloud computing different issues phases and model.

Cloud computing different issues phases and model.

In order to deploying applications to cloud, it is necessary to consider your business requirements. Following are the issues one must consider:

  • Data Security and Privacy Requirement
  • Budget Requirements
  • Type of cloud – public, private or hybrid
  • Data backup requirements
  • Training requirements
  • Dashboard and reporting requirements
  • Client access requirements
  • Data export requirements

To meet all of these requirements, it is necessary to have well-compiled planning. Each of these planning phases are described in the following diagram:

Cloud Computing Planning

Strategy Phase

In this phase, we analyze the strategy problems that customer might face. There are two steps to perform this analysis:

  • Cloud Computing Value Proposition
  • Cloud Computing Strategy Planning

Cloud Computing Value Proposition

Here, we analyze the factors influencing the customers when applying cloud computing mode and target the key problems they wish to solve. These key factors are:

  • IT management simplification
  • operation and maintenance cost reduction
  • business mode innovation
  • low cost outsourcing hosting
  • high service quality outsourcing hosting.

All of the above analysis helps in decision making for future development.

Cloud Computing Strategy Planning

The strategy establishment is based on the analysis result of the above step. In this step, a strategy document is prepared according to the conditions a customer might face when applying cloud computing mode.

Planning Phase

This step performs analysis of problems and risks in the cloud application to ensure the customers that the cloud computing is successfully meeting their business goals. This phase involves the following planning steps:

  • Business Architecture Development
  • IT Architecture development
  • Requirements on Quality of Service Development
  • Transformation Plan development

Business Architecture Development

In this step, we recognize the risks that might be caused by cloud computing application from a business perspective.

IT Architecture Development

In this step, we identify the applications that support the business processes and the technologies required to support enterprise applications and data systems.

Requirements on Quality of Service Development

Quality of service refers to the non-functional requirements such as reliability, security, disaster recovery, etc. The success of applying cloud computing mode depends on these non-functional factors.

Transformation Plan Development

In this step, we formulate all kinds of plans that are required to transform current business to cloud computing modes.

Deployment Phase

This phase focuses on both of the above two phases. It involves the following two steps:

  • Selecting Cloud Computing Provider
  • Maintenance and Technical Service

Selecting Cloud Computing Provider

This step includes selecting a cloud provider on basis of Service Level Agreement (SLA), which defines the level of service the provider will meet.

Maintenance and Technical Service

Maintenance and Technical services are provided by the cloud provider. They need to ensure the quality of services. There are certain technologies working behind the cloud computing platforms making cloud computing flexible, reliable, and usable. These technologies are listed below:

  • Virtualization
  • Service-Oriented Architecture (SOA)
  • Grid Computing
  • Utility Computing


Virtualization is a technique, which allows to share single physical instance of an application or resource among multiple organizations or tenants (customers). It does this by assigning a logical name to a physical resource and providing a pointer to that physical resource when demanded.

Cloud Computing Virtualization Model

The Multitenant architecture offers virtual isolation among the multiple tenants. Hence, the organizations can use and customize their application as though they each have their instances running.

Service-Oriented Architecture (SOA)

Service-Oriented Architecture helps to use applications as a service for other applications regardless the type of vendor, product or technology. Therefore, it is possible to exchange the data between applications of different vendors without additional programming or making changes to services.

The cloud computing service oriented architecture is shown in the diagram below.

Cloud Computing Service Oriented Architecture

Grid Computing

Grid Computing refers to distributed computing, in which a group of computers from multiple locations are connected with each other to achieve a common objective. These computer resources are heterogeneous and geographically dispersed. Grid Computing breaks complex task into smaller pieces, which are distributed to CPUs that reside within the grid.

Grid Computing

Utility Computing

Utility computing is based on Pay-per-Use model. It offers computational resources on demand as a metered service. Cloud computing, grid computing, and managed IT services are based on the concept of utility computing.

Part 10: Cloud Computing with Fog computing

Part 1: Cloud Computing overview with characteristics and Risk in Details.

Cloud Computing provides us means of accessing the applications as utilities over the Internet. It allows us to create, configure, and customize the applications online.

What is Cloud?

The term Cloud refers to a Network or Internet. In other words, we can say that Cloud is something, which is present at remote location. Cloud can provide services over public and private networks, i.e., WAN, LAN or VPN.

Applications such as e-mail, web conferencing, customer relationship management (CRM) execute on cloud.

What is Cloud Computing?

Cloud Computing refers to manipulating, configuring, and accessing the hardware and software resources remotely. It offers online data storage, infrastructure, and application.

cloud computing

Cloud computing offers platform independency, as the software is not required to be installed locally on the PC. Hence, the Cloud Computing is making our business applications mobile and collaborative.

Basic Concepts

There are certain services and models working behind the scene making the cloud computing feasible and accessible to end users. Following are the working models for cloud computing:

  • Deployment Models
  • Service Models

Deployment Models

Deployment models define the type of access to the cloud, i.e., how the cloud is located? Cloud can have any of the four types of access: Public, Private, Hybrid, and Community.

Cloud Computing Deployment Models

Public Cloud

The public cloud allows systems and services to be easily accessible to the general public. Public cloud may be less secure because of its openness.

Private Cloud

The private cloud allows systems and services to be accessible within an organization. It is more secured because of its private nature.

Community Cloud

The community cloud allows systems and services to be accessible by a group of organizations.

Hybrid Cloud

The hybrid cloud is a mixture of public and private cloud, in which the critical activities are performed using private cloud while the non-critical activities are performed using public cloud.

Service Models

Cloud computing is based on service models. These are categorized into three basic service models which are –

  • Infrastructure-as–a-Service (IaaS)
  • Platform-as-a-Service (PaaS)
  • Software-as-a-Service (SaaS)

Anything-as-a-Service (XaaS) is yet another service model, which includes Network-as-a-Service, Business-as-a-Service, Identity-as-a-Service, Database-as-a-Service or Strategy-as-a-Service.

The Infrastructure-as-a-Service (IaaS) is the most basic level of service. Each of the service models inherit the security and management mechanism from the underlying model, as shown in the following diagram:

Cloud Computing Service Models

Infrastructure-as-a-Service (IaaS)

IaaS provides access to fundamental resources such as physical machines, virtual machines, virtual storage, etc.

Platform-as-a-Service (PaaS)

PaaS provides the runtime environment for applications, development and deployment tools, etc.

Software-as-a-Service (SaaS)

SaaS model allows to use software applications as a service to end-users.

History of Cloud Computing

The concept of Cloud Computing came into existence in the year 1950 with implementation of mainframe computers, accessible via thin/static clients. Since then, cloud computing has been evolved from static clients to dynamic ones and from software to services. The following diagram explains the evolution of cloud computing:

Cloud Computing History


Cloud Computing has numerous advantages. Some of them are listed below –

  • One can access applications as utilities, over the Internet.
  • One can manipulate and configure the applications online at any time.
  • It does not require to install a software to access or manipulate cloud application.
  • Cloud Computing offers online development and deployment tools, programming runtime environment through PaaS model.
  • Cloud resources are available over the network in a manner that provide platform independent access to any type of clients.
  • Cloud Computing offers on-demand self-service. The resources can be used without interaction with cloud service provider.
  • Cloud Computing is highly cost effective because it operates at high efficiency with optimum utilization. It just requires an Internet connection
  • Cloud Computing offers load balancing that makes it more reliable.

Cloud Computing Benefits

Risks related to Cloud Computing

Although cloud Computing is a promising innovation with various benefits in the world of computing, it comes with risks. Some of them are discussed below:

Security and Privacy

It is the biggest concern about cloud computing. Since data management and infrastructure management in cloud is provided by third-party, it is always a risk to handover the sensitive information to cloud service providers.

Although the cloud computing vendors ensure highly secured password protected accounts, any sign of security breach may result in loss of customers and businesses.

Lock In

It is very difficult for the customers to switch from one Cloud Service Provider (CSP) to another. It results in dependency on a particular CSP for service.

Isolation Failure

This risk involves the failure of isolation mechanism that separates storage, memory, and routing between the different tenants.

Management Interface Compromise

In case of public cloud provider, the customer management interfaces are accessible through the Internet.

Insecure or Incomplete Data Deletion

It is possible that the data requested for deletion may not get deleted. It happens because either of the following reasons

  • Extra copies of data are stored but are not available at the time of deletion
  • Disk that stores data of multiple tenants is destroyed.

Characteristics of Cloud Computing

There are four key characteristics of cloud computing. They are shown in the following diagram:

Cloud Computing characteristics

On Demand Self Service

Cloud Computing allows the users to use web services and resources on demand. One can logon to a website at any time and use them.

Broad Network Access

Since cloud computing is completely web based, it can be accessed from anywhere and at any time.

Resource Pooling

Cloud computing allows multiple tenants to share a pool of resources. One can share single physical instance of hardware, database and basic infrastructure.

Rapid Elasticity

It is very easy to scale the resources vertically or horizontally at any time. Scaling of resources means the ability of resources to deal with increasing or decreasing demand.

The resources being used by customers at any given point of time are automatically monitored.

Measured Service

In this service cloud provider controls and monitors all the aspects of cloud service. Resource optimization, billing, and capacity planning etc. depend on it.