0% found this document useful (0 votes)
158 views

PG Cloud Computing Unit-I

This document provides an overview of cloud computing, including definitions, models, and advantages/limitations. It discusses: - Cloud computing allows users to access software and storage over the internet instead of locally. Major cloud platforms include AWS, Azure, and Google Cloud. - The cloud computing reference model divides cloud services into three layers - Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Each layer provides different levels of control to consumers and providers. - Key advantages of cloud computing include elastic resources, lower costs, and easy access to data from anywhere. Limitations include less physical control and reliance on third parties for security and

Uploaded by

deepthi sanjeev
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
158 views

PG Cloud Computing Unit-I

This document provides an overview of cloud computing, including definitions, models, and advantages/limitations. It discusses: - Cloud computing allows users to access software and storage over the internet instead of locally. Major cloud platforms include AWS, Azure, and Google Cloud. - The cloud computing reference model divides cloud services into three layers - Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Each layer provides different levels of control to consumers and providers. - Key advantages of cloud computing include elastic resources, lower costs, and easy access to data from anywhere. Limitations include less physical control and reliance on third parties for security and

Uploaded by

deepthi sanjeev
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 33

CLOUD COMPUTING

UNIT-I: INTRODUCTION
Cloud Computing at a Glance, The Vision of Cloud Computing, Defining a
Cloud, Cloud Computing Reference Model, Characteristics and Benefits,
Challenges Ahead, Historical Developments - Distributed Systems,
Virtualization, Web 2.0, Service-Oriented Computing, Utility-Oriented
Computing, Building Cloud Computing Environments - Application
Development, Infrastructure and System Development, Computing
Platforms and Technologies - Amazon Web Services (AWS), Google
AppEngine, Microsoft Azure, Hadoop, Force.com and Salesforce.com

Cloud Computing at a Glance:


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 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.
Example: AWS (Amazon Web Services), Azure (Microsoft’s Public Cloud),
Google Cloud
What is behind the cloud?
Behind the cloud are powerful data centres with very high computing power and
a lot of storage space. These data centres are filled with servers that contain
both applications and databases. Rather than storing software and files on local
drives, users can access files stored remotely on cloud servers from anywhere in
the world.

Advantages of Cloud Computing


 Computing as a Utility
 Pay for what you use
 Elasticity - easily scale up or down dynamically.
 Multiple services offered in a single location (Web-Based Access)
 Speed of operations
 Sever Provisioning
 Server Cloning
 Cost sharing of data centers
 Built-in services for disaster recovery and failover
 Data center security and certifications
Limitation of Cloud Computing
 We do not have physical control over the data
 Our data center is remote and we may not control the connectivity of the
data center
 Limited control of physical resources
 Security is provided by a third party to a certain extent
 Possibility of unwanted shutdown
IaaS – Infrastructure as a Service
 Provides virtualized resources over the internet
 Can provision
o Servers
o Desktops
o Network resource including routers and local balancers
 Can provide a high level of automation for most tasks
 Can provide advanced services such as dynamic scaling
PaaS – Platform as a Service
 Allows customers to build and deploy applications without the
complexity of building physical infrastructure
 Provides a set of services that make deploying software much simpler
 Allows IT organizations to concentrate on delivering software solutions
and not infrastructure
 Does limit the amount of control that IT organizations have over the
application
 Existing applications may need rework to be compliant with these
services
SaaS- Software as a Service
Allows organizations to consume entire hosted application
1. Subscription based software
2. Typically delivered on browser
3. Backups and upgrades provided as a service
Example
1. Office 365, Gmail, and Google Docs
2. com (CRM)
3. NetSuite (ERP)
4. ServiceNow (IT Service Management)

Vision of Cloud Computing


In Simplest terms, cloud computing means storing and accessing the data and
programs on remote servers that are hosted on internet instead of computer’s
hard drive or local server. Cloud computing is also referred as Internet based
computing.
These are following Vision of Cloud Computing:
1. Cloud computing provides the facility to provision virtual hardware,
runtime environment and services to a person having money.
2. These all things can be used as long as they are needed by the user.
3. The whole collection of computing system is transformed into collection of
utilities, which can be provisioned and composed together to deploy
systems in hours rather than days, with no maintenance cost.
4. The long term vision of a cloud computing is that IT services are traded as
utilities in an open market without technological and legal barriers.
5. In the future, we can imagine that it will be possible to find the solution
that matches with our requirements by simply entering out request in a
global digital market that trades with cloud computing services.
6. The existence of such market will enable the automation of discovery
process and its integration into its existing software systems.
7. Due to the existence of a global platform for trading cloud services will
also help service providers to potentially increase their revenue.
8. A cloud provider can also become a consumer of a competition service in
order to fulfil its promises to customers.
9. In the near future we can imagine a solution that suits our needs by simply
applying our application to the global digital market for cloud computing
services.
10.The presence of this market will enable the acquisition process to
automatically integrate with its integration into its existing software
applications. The availability of a global cloud trading platform will also
help service providers to increase their revenue.
11.A cloud provider can also be a buyer of a competitive service to fulfill its
promises to customers.

What is Cloud Computing Reference Model? 

The cloud computing reference model is an abstract model that divides a


cloud computing environment into abstraction layers and cross-layer
functions to characterize and standardize its functions. This reference model
divides cloud computing activities and functions into three cross-layer
functions and five logical layers.

Cloud Computing reference model is divided into 3 major service models:

1. Software as a Service (SaaS) 


2. Platform as a Service (PaaS) 
3. Infrastructure as a Service (IaaS) 
The below diagram explains the cloud computing reference model:
Cloud Computing Reference Model Overview

1. SaaS
Software as a Service (SaaS) is a form of application delivery that relieves
users of the burden of software maintenance while making development and
testing easier for service providers.

The cloud delivery model's top layer is where applications are located. End
customers get access to the services this tier offers via web portals. Because
online software services provide the same functionality as locally installed
computer programs, consumers (users) are rapidly switching from them.
Today, ILMS and other application software can be accessed via the web as a
service.

In terms of data access, collaboration, editing, storage, and document sharing,


SaaS is unquestionably a crucial service. Email service in a web browser is
the most well-known and widely used example of SaaS, but SaaS applications
are becoming more cooperative and advanced.

Features of SaaS are as follows: 

 The cloud consumer has full control over all the cloud services. 
 The provider has full control over software applications-based services. 
 The cloud provider has partial control over the implementation of cloud
services. 
 The consumer has limited control over the implementation of these cloud
services. 
2. PaaS
Platform as a Service is a strategy that offers a high level of abstraction to
make a cloud readily programmable in addition to infrastructure-oriented
clouds that offer basic compute and storage capabilities (PaaS). Developers
can construct and deploy apps on a cloud platform without necessarily
needing to know how many processors or how much memory their
applications would use. A PaaS offering that provides a scalable environment
for creating and hosting web applications is Google App Engine, for instance.

Features of PaaS layer are as follows: 

 The cloud provider has entire rights or control over the provision of cloud
services to consumers. 
 The cloud consumer has selective control based on the resources they
need or have opted for on the application server, database, or
middleware. 
 Consumers get environments in which they can develop their applications
or databases. These environments are usually very visual and very easy to
use. 
 Provides options for scalability and security of the user’s resources. 
 Services to create workflows and websites. 
 Services to connect users’ cloud platforms to other external platforms. 
3. IaaS
Infrastructure as a Service (IaaS) offers storage and computer resources that
developers and IT organizations use to deliver custom/business solutions.
IaaS delivers computer hardware (servers, networking technology, storage,
and data center space) as a service. It may also include the delivery of OS and
virtualization technology to manage the resources. Here, the more important
point is that IaaS customers rent computing resources instead of buying and
installing them in their data centers. The service is typically paid for on a
usage basis. The service may include dynamic scaling so that if the customers
need more resources than expected, they can get them immediately. 

The control of the IaaS layer is as follows: 

 The consumer has full/partial control over the infrastructure of the cloud,
servers, and databases. 
 The consumer has control over the Virtual Machines' implementation and
maintenance. 
 The consumer has a choice of already installed VM machines with pre-
installed Operating systems. 
 The cloud provider has full control over the data centers and the other
hardware involved in them. 
 It has the ability to scale resources based on the usage of users. 
 It can also copy data worldwide so that data can be accessed from
anywhere in the world as soon as possible. 
Types of Cloud
There are the following 4 types of cloud that you can deploy according to the
organization's needs-
o Public Cloud
o Private Cloud
o Hybrid Cloud
o Community Cloud

Public Cloud

Public cloud is open to all to store and access information via the Internet using
the pay-per-usage method.

In public cloud, computing resources are managed and operated by the Cloud
Service Provider (CSP).

Example: Amazon elastic compute cloud (EC2), IBM SmartCloud Enterprise,


Microsoft, Google App Engine, Windows Azure Services Platform.

Private Cloud

Private cloud is also known as an internal cloud or corporate cloud. It is used


by organizations to build and manage their own data centers internally or by the
third party. It can be deployed using Opensource tools such as Openstack and
Eucalyptus.
Based on the location and management, National Institute of Standards and
Technology (NIST) divide private cloud into the following two parts-

o On-premise private cloud


o Outsourced private cloud

Hybrid Cloud

Hybrid Cloud is a combination of the public cloud and the private cloud. we can
say:

Hybrid Cloud = Public Cloud + Private Cloud

Hybrid cloud is partially secure because the services which are running on the
public cloud can be accessed by anyone, while the services which are running
on a private cloud can be accessed only by the organization's users.

Example: Google Application Suite (Gmail, Google Apps, and Google Drive),


Office 365 (MS Office on the Web and One Drive), Amazon Web Services.
Characteristics of Cloud Computing
The characteristics of cloud computing are given below:
1) Agility
The cloud works in the distributed computing environment. It shares resources
among users and works very fast.
2) High availability and reliability
Availability of servers is high and more reliable, because chances of
infrastructure failure are minimal.
3) High Scalability
Means "on-demand" provisioning of resources on a large scale, without having
engineers for peak loads.
4) Multi-Sharing
With the help of cloud computing, multiple users and applications can work
more efficiently with cost reductions by sharing common infrastructure.
5) Device and Location Independence
Cloud computing enables the users to access systems using a web browser
regardless of their

location or what device they use e.g. PC, mobile phone etc. As infrastructure is
off-site (typically provided by a third-party) and accessed via the Internet, users
can connect from anywhere.
6) Maintenance
Maintenance of cloud computing applications is easier, since they do not need
to be installed on each user's computer and can be accessed from different
places. So, it reduces the cost also.
7) Low Cost
By using cloud computing, the cost will be reduced because to take the services
of cloud computing, IT Company need not to set its own infrastructure and pay-
as-per usage of resources.
8) Services in pay-per-use mode
Application Programming Interfaces (APIs) are provided to the users so that
they can access services on the cloud by using these APIs and pay the charges
as per the usage of services.
What are the benefits of cloud computing?
Flexibility

Users can scale services to fit their needs, customize applications and access
cloud services from anywhere with an internet connection.

Efficiency

Enterprise users can get applications to market quickly, without worrying about
underlying infrastructure costs or maintenance.

Strategic value

Cloud services give enterprises a competitive advantage by providing the most


innovative technology available.

Flexibility:
 Scalability: Cloud infrastructure scales on demand to support fluctuating
workloads.

 Storage options: Users can choose public, private, or hybrid


storage offerings, depending on security needs and other considerations.

 Control choices: Organizations can determine their level of control


with as-a-service options. These include Software-as-a-Service
(SaaS), Platform-as-a-Service (PaaS), and Infrastructure-as-a-Service
(IaaS).

 Tool selection: Users can select from a menu of prebuilt tools and


features to build a solution that fits their specific needs.

 Security features: Virtual private cloud, encryption, and API keys help


keep data secure.

Efficiency:
 Accessibility: Cloud-based applications and data are accessible from
virtually any internet-connected device.

 Speed to market: Developing in the cloud enables users to get their


applications to market quickly.
 Data security: Hardware failures do not result in data loss because
of networked backups.

 Savings on equipment: Cloud computing uses remote resources, saving


organizations the cost of servers and other equipment.

 Pay structure: A “utility” pay structure means users only pay for the
resources they use.

Strategic value:
 Streamlined work: Cloud service providers (CSPs) manage underlying
infrastructure, enabling organizations to focus on application
development and other priorities.

 Regular updates: Service providers regularly update offerings to give


users the most up-to-date technology.

 Collaboration: Worldwide access means teams can collaborate from


widespread locations.

 Competitive edge: Organizations can move more nimbly than


competitors who must devote IT resources to managing infrastructure.

Cloud Computing Challenges:


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:
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.

Portability

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.

Interoperability

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.

Cost Management

Even as almost all cloud service providers have a “Pay As You Go” model,
which reduces the overall cost of the resources being used, there are times
when there are huge costs incurred to the enterprise using cloud computing.
When there is under optimization of the resources, let’s say that the servers are
not being used to their full potential, add up to the hidden costs. If there is a
degraded application performance or sudden spikes or overages in the usage, it
adds up to the overall cost. Unused resources are one of the other main reasons
why the costs go up. If you turn on the services or an instance of cloud and
forget to turn it off during the weekend or when there is no current use of it, it
will increase the cost without even using the resources.
High Dependence on Network

Since cloud computing deals with provisioning resources in real-time, it deals


with enormous amounts of data transfer to and from the servers. This is only
made possible due to the availability of the high-speed network. Although
these data and resources are exchanged over the network, this can prove to be
highly vulnerable in case of limited bandwidth or cases when there is a sudden
outage. Even when the enterprises can cut their hardware costs, they need to
ensure that the internet bandwidth is high as well there are zero network
outages, or else it can result in a potential business loss. It is therefore a major
challenge for smaller enterprises that have to maintain network bandwidth that
comes with a high cost.

Lack of Knowledge and Expertise

Due to the complex nature and the high demand for research working with the
cloud often ends up being a highly tedious task. It requires immense
knowledge and wide expertise on the subject. Although there are a lot of
professionals in the field they need to constantly update themselves. Cloud
computing is a highly paid job due to the extensive gap between demand and
supply. There are a lot of vacancies but very few talented cloud engineers,
developers, and professionals. Therefore, there is a need for upskilling so these
professionals can actively understand, manage and develop cloud-based
applications with minimum issues and maximum reliability.
History of Cloud Computing:
In this, we will discuss the history of Cloud computing. And also cover the
history of client server computing, distributed computing, and cloud
computing. 
 Before Computing was come into existence, client Server Architecture was
used where all the data and control of client resides in Server side. If a
single user want to access some data, firstly user need to connect to the
server and after that user will get appropriate access. But it has many
disadvantages. So, After Client Server computing, Distributed Computing
was come into existence, in this type of computing all computers are
networked together with the help of this, user can share their resources
when needed. It also has certain limitations. So in order to remove
limitations faced in distributed system, cloud computing was emerged.
 During 1961, John MacCharty delivered his speech at MIT that
“Computing Can be sold as a Utility, like Water and Electricity.”
According to John MacCharty it was a brilliant idea. But people at that time
don’t want to adopt this technology. They thought the technology they are
using efficient enough for them.  So, this concept of computing was not
appreciated much so and very less will research on it. But as the time fleet
the technology caught the idea after few years this idea is implemented. So,
this is implemented by Salesforce.com in 1999. 
 
 This company started delivering an enterprise application over the internet
and this way the boom of Cloud Computing was started.
 
 In 2002, Amazon started Amazon Web Services (AWS), Amazon will
provide storage, computation over the internet. In 2006 Amazon will
launch Elastic Compute Cloud Commercial Service which is open for
Everybody to use.
 
 After that in 2009, Google Play also started providing Cloud Computing
Enterprise Application as other companies will see the emergence of cloud
Computing they also started providing their cloud services. Thus, in 2009,
Microsoft launch Microsoft Azure and after that other companies like
Alibaba, IBM, Oracle, HP also introduces their Cloud Services. In today
the Cloud Computing become very popular and important skill.

Distributed Systems:
Distributed System is a collection of autonomous computer systems that are
physically separated but are connected by a centralized computer network that
is equipped with distributed system software. The autonomous computers will
communicate among each system by sharing resources and files and
performing the tasks assigned to them.
Example of Distributed System:
Any Social Media can have its Centralized Computer Network as its
Headquarters and computer systems that can be accessed by any user and
using their services will be the Autonomous Systems in the Distributed System
Architecture.

 
 Distributed System Software: This Software enables computers to
coordinate their activities and to share the resources such as Hardware,
Software, Data, etc.
 Database: It is used to store the processed data that are processed by each
Node/System of the Distributed systems that are connected to the                
     Centralized network.
 
 
 As we can see that each Autonomous System has a common Application
that can have its own data that is shared by the Centralized Database
System.
 To Transfer the Data to Autonomous Systems, Centralized System should
be having a Middleware Service and should be connected to a Network.
 Middleware Services enables some services which are not present in the
local systems or centralized system default by acting as an interface
between the Centralized System and the local systems. By using
components of Middleware Services systems communicate and manage
data.
 The Data which is been transferred through the database will be divided
into segments or modules and shared with Autonomous systems for
processing.
 The Data will be processed and then will be transferred to the Centralized
system through the network and will be stored in the database.
Characteristics of Distributed System:
 Resource Sharing: It is the ability to use any Hardware, Software, or Data
anywhere in the System.
 Concurrency: It is naturally present in the Distributed Systems, that deal
with the same activity or functionality that can be performed by separate
users who are in remote locations. Every local system has its independent
Operating Systems and Resources.
 Scalability: It increases the scale of the system as a number of processors
communicate with more users by accommodating to improve the
responsiveness of the system.
 Fault tolerance: It cares about the reliability of the system if there is a
failure in Hardware or Software, the system continues to operate properly
without degrading the performance the system.
 Transparency: It hides the complexity of the Distributed Systems to the
Users and Application programs as there should be privacy in every
system.
 Heterogeneity: Networks, computer hardware, operating systems,
programming languages, and developer implementations can all vary and
differ among dispersed system components.
Advantages of Distributed System:
 Applications in Distributed Systems are Inherently Distributed
Applications.
 Information in Distributed Systems is shared among geographically
distributed users.
 Resource Sharing (Autonomous systems can share resources from remote
locations).
 It has a better price performance ratio and flexibility.
 It has shorter response time and higher throughput.
 It has higher reliability and availability against component failure.
Disadvantages of Distributed System:
 Relevant Software for Distributed systems does not exist currently.
 Security possess a problem due to easy access to data as the resources are
shared to multiple systems.
 Networking Saturation may cause a hurdle in data transfer i.e., if there is a
lag in the network then the user will face a problem accessing data.
 In comparison to a single user system, the database associated with
distributed systems is much more complex and challenging to manage.
 If every node in a distributed system tries to send data at once, the network
may become overloaded.
Applications Area of Distributed System:
 Finance and Commerce: Amazon, eBay, Online Banking, E-Commerce
websites.
 Information Society: Search Engines, Wikipedia, Social Networking,
Cloud Computing.
 Cloud Technologies: AWS, Salesforce, Microsoft Azure, SAP.
 Entertainment: Online Gaming, Music, youtube.
 Healthcare: Online patient records, Health Informatics.
 Education: E-learning.

Virtualization in Cloud Computing


Virtualization is the "creation of a virtual (rather than actual) version of
something, such as a server, a desktop, a storage device, an operating system or
network resources".
In other words, Virtualization is a technique, which allows to share a single
physical instance of a resource or an application among multiple customers and
organizations. It does by assigning a logical name to a physical storage and
providing a pointer to that physical resource when demanded.

What is the concept behind the Virtualization?

Creation of a virtual machine over existing operating system and hardware is


known as Hardware Virtualization. A Virtual machine provides an environment
that is logically separated from the underlying hardware.

The machine on which the virtual machine is going to create is known as Host
Machine and that virtual machine is referred as a Guest Machine

Types of Virtualization:

1. Hardware Virtualization.
2. Operating system Virtualization.
3. Server Virtualization.
4. Storage Virtualization.

1) Hardware Virtualization:

When the virtual machine software or virtual machine manager (VMM) is


directly installed on the hardware system is known as hardware virtualization.

The main job of hypervisor is to control and monitoring the processor, memory
and other hardware resources.

After virtualization of hardware system we can install different operating


system on it and run different applications on those OS.

Usage:

Hardware virtualization is mainly done for the server platforms, because


controlling virtual machines is much easier than controlling a physical server.

2) Operating System Virtualization:

When the virtual machine software or virtual machine manager (VMM) is


installed on the Host operating system instead of directly on the hardware
system is known as operating system virtualization.

Usage:
Operating System Virtualization is mainly used for testing the applications on
different platforms of OS.

3) Server Virtualization:

When the virtual machine software or virtual machine manager (VMM) is


directly installed on the Server system is known as server virtualization.

Usage:

Server virtualization is done because a single physical server can be divided into
multiple servers on the demand basis and for balancing the load.

4) Storage Virtualization:

Storage virtualization is the process of grouping the physical storage from


multiple network storage devices so that it looks like a single storage device.

Storage virtualization is also implemented by using software applications.

Usage:

Storage virtualization is mainly done for back-up and recovery purposes.

How does virtualization work in cloud computing?

Virtualization plays a very important role in the cloud computing technology,


normally in the cloud computing, users share the data present in the clouds like
application etc, but actually with the help of virtualization users shares the
Infrastructure.

The main usage of Virtualization Technology is to provide the applications


with the standard versions to their cloud users, suppose if the next version of
that application is released, then cloud provider has to provide the latest version
to their cloud users and practically it is possible because it is more expensive.

To overcome this problem we use basically virtualization technology, By using


virtualization, all severs and the software application which are required by
other cloud providers are maintained by the third party people, and the cloud
providers has to pay the money on monthly or annual basis.
Conclusion

Mainly Virtualization means, running multiple operating systems on a single


machine but sharing all the hardware resources. And it helps us to provide the
pool of IT resources so that we can share these IT resources in order get benefits
in the business.

Web 2.0:
 2004 When the word Web 2.0 become famous due to the First Web 2.0
conference (later known as the Web 2.0 summit) held by Tim O’Reilly
and Dale Dougherty, the term was coined by Darcy DiNucci in 1999.
 Web 2.0 refers to worldwide websites which highlight user-generated
content, usability, and interoperability for end users.  
 Web 2.0 is also called the participative social web. It does not refer to a
modification to any technical specification, but to modify the way Web
pages are designed and used. The transition is beneficial but it does not
seem that when the changes occur. Interaction and collaboration with
each other are allowed by Web 2.0 in a social media dialogue as the
creator of user-generated content in a virtual community. Web 2.0 is an
enhanced version of Web 1.0. 
 Web browser technologies are used in Web 2.0 development and it
includes AJAX and JavaScript frameworks.
 Recently, AJAX and JavaScript frameworks have become very popular
means of creating web 2.0 sites. 

 Five Major Features of Web 2.0:


 Free sorting of information, permits users to retrieve and classify the
information collectively.
 Dynamic content that is responsive to user input.
 Information flows between the site owner and site users using evaluation &
online commenting.
 Developed APIs to allow self-usage, such as by a software application.
 Web access leads to concerns different, from the traditional Internet user
base to a wider variety of users.
Usage of Web 2.0: The social Web contains several online tools and platforms
where people share their perspectives, opinions, thoughts, and experiences.
Web 2.0 applications tend to interact much more with the end user. As such,
the end-user is not only a user of the application but also a participant in these
8 tools mentioned below:
 Podcasting
 Blogging
 Tagging
 Curating with RSS
 Social bookmarking
 Social networking
 Social media
 Web content voting

Service-Oriented Computing

Service-Oriented Architecture (SOA) allows organizations to access on-


demand cloud-based computing solutions according to the change of business
needs. It can work without or with cloud computing. The advantages of using SOA is
that it is easy to maintain, platform independent, and highly scalable.

Service Provider and Service consumer are the two major roles within SOA.

Applications of Service-Oriented Architecture

There are the following applications of Service-Oriented Architecture -

o It is used in the healthcare industry.


o It is used to create many mobile applications and games.
o In the air force, SOA infrastructure is used to deploy situational awareness systems.

The service-oriented architecture is shown below:


There are two major roles within Service-oriented Architecture: 

1. Service provider: The service provider is the maintainer of the service and the
organization that makes available one or more services for others to use. To
advertise services, the provider can publish them in a registry, together with a
service contract that specifies the nature of the service, how to use it, the
requirements for the service, and the fees charged.
2. Service consumer: The service consumer can locate the service metadata in the
registry and develop the required client components to bind and use the service.
 

Services might aggregate information and data retrieved from other services or
create workflows of services to satisfy the request of a given service consumer.
This practice is known as service orchestration Another important interaction
pattern is service choreography, which is the coordinated interaction of services
without a single point of control

Guiding Principles of SOA: 

1. Standardized service contract: Specified through one or more service


description documents.
2. Loose coupling: Services are designed as self-contained components, maintain
relationships that minimize dependencies on other services.
3. Abstraction: A service is completely defined by service contracts and
description documents. They hide their logic, which is encapsulated within their
implementation.
4. Reusability: Designed as components, services can be reused more effectively,
thus reducing development time and the associated costs.
5. Autonomy: Services have control over the logic they encapsulate and, from a
service consumer point of view, there is no need to know about their
implementation.
6. Discoverability: Services are defined by description documents that constitute
supplemental metadata through which they can be effectively discovered.
Service discovery provides an effective means for utilizing third-party resources.
7. Composability: Using services as building blocks, sophisticated and complex
operations can be implemented. Service orchestration and choreography provide
a solid support for composing services and achieving business goals.

Advantages of SOA: 

 Service reusability: In SOA, applications are made from existing services.


Thus, services can be reused to make many applications.
 Easy maintenance: As services are independent of each other they can be
updated and modified easily without affecting other services.
 Platform independent: SOA allows making a complex application by
combining services picked from different sources, independent of the platform.
 Availability: SOA facilities are easily available to anyone on request.
 Reliability: SOA applications are more reliable because it is easy to debug small
services rather than huge codes
 Scalability: Services can run on different servers within an environment, this
increases scalability

Disadvantages of SOA: 

 High overhead: A validation of input parameters of services is done whenever


services interact this decreases performance as it increases load and response
time.
 High investment: A huge initial investment is required for SOA.
 Complex service management: When services interact they exchange messages
to tasks. the number of messages may go in millions. It becomes a cumbersome
task to handle a large number of messages.

Application Development:
Cloud applications are software that users access primarily through the internet,
meaning at least some of it is managed by a server and not users' local
machines. Cloud-native application development strategies help development
teams design apps with consistent experiences (for front-end users and back-end
operations teams) across any IT infrastructure: physical, virtual, or cloud-based.

In particular, Cloud services have opened up the possibility for many web-based


Cloud applications, also known as web apps. A web app is one where most of
the computation occurs in the Cloud, not on the device itself, and is usually built
with the use of Cloud application development services. A new form of a web
app, known as a Progressive Web App (PWA), is also seeing an increase in
popularity. 

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


Box.com, Mozy, Joukuu are the applications offering data storage and backup
services in cloud.

SN Application Description

1
Box.com
Box.com 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, Box.net 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 box.fm
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.
Infrastructure and System Development
Cloud infrastructure consists of servers, storage devices, network, cloud
management software, deployment software, and platform virtualization.

Hypervisor
Hypervisor is a firmware or low-level program that acts as a Virtual Machine
Manager. It allows to share the single physical instance of cloud resources
between several tenants.
Management Software
It helps to maintain and configure the infrastructure.
Deployment Software
It helps to deploy and integrate the application on the cloud.
Network
It is the key component of cloud infrastructure. It allows to connect cloud
services over the Internet. It is also possible to deliver network as a utility over
the Internet, which means, the customer can customize the network route and
protocol.
Server
The server helps to compute the resource sharing and offers other services such
as resource allocation and de-allocation, monitoring the resources, providing
security etc.
Storage
Cloud keeps multiple replicas of storage. If one of the storage resources fails,
then it can be extracted from another one, which makes cloud computing more
reliable.

Infrastructural Constraints

Fundamental constraints that cloud infrastructure should implement are shown


in the following diagram:
Transparency
Virtualization is the key to share resources in cloud environment. But it is not
possible to satisfy the demand with single resource or server. Therefore, there
must be transparency in resources, load balancing and application, so that we
can scale them on demand.
Scalability
Scaling up an application delivery solution is not that easy as scaling up an
application because it involves configuration overhead or even re-architecting
the network. So, application delivery solution is need to be scalable which will
require the virtual infrastructure such that resource can be provisioned and de-
provisioned easily.
Intelligent Monitoring
To achieve transparency and scalability, application solution delivery will need
to be capable of intelligent monitoring.
Security
The mega data center in the cloud should be securely architected. Also the
control node, an entry point in mega data center, also needs to be secure.
Cloud Computing Platforms and Technologies
Cloud computing applications develops by leveraging platforms and
frameworks. Various types of services are provided from the bare metal
infrastructure to customize-able applications serving specific purposes.
Amazon Web Services (AWS) –
AWS provides different wide-ranging clouds IaaS services, which ranges from
virtual compute, storage, and networking to complete computing stacks.

AWS is well known for its storage and compute on demand services, named as
Elastic Compute Cloud (EC2) and Simple Storage Service (S3).

EC2 offers customizable virtual hardware to the end user which can be utilize as
the base infrastructure for deploying computing systems on the cloud. It is
likely to choose from a large variety of virtual hardware configurations
including GPU and cluster instances. Either the AWS console, which is a wide-
ranged Web portal for retrieving AWS services, or the web services API
available for several programming language is used to deploy the EC2
instances. EC2 also offers the capability of saving an explicit running instance
as image, thus allowing users to create their own templates for deploying
system. S3 stores these templates and delivers persistent storage on demand. S3
is well ordered into buckets which contains objects that are stored in binary
form and can be grow with attributes. End users can store objects of any size,
from basic file to full disk images and have them retrieval from anywhere. In
addition, EC2 and S3, a wide range of services can be leveraged to build virtual
computing system including: networking support, caching system, DNS,
database support, and others.

AWS Cloud Computing Models

There are three cloud computing models available on AWS.


1. Infrastructure as a Service (IaaS): It is the basic building block of cloud
IT. It generally provides access to data storage space, networking features,
and computer hardware(virtual or dedicated hardware). It is highly flexible
and gives management controls over the IT resources to the developer. For
example, VPC, EC2, EBS.
2. Platform as a Service (PaaS): This is a type of service where AWS
manages the underlying infrastructure (usually operating system and
hardware). This helps the developer to be more efficient as they do not
have to worry about undifferentiated heavy lifting required for running the
applications such as capacity planning, software maintenance, resource
procurement, patching, etc., and focus more on deployment and
management of the applications. For example, RDS, EMR, ElasticSearch.
3. Software as a Service(SaaS): It is a complete product that usually runs on
a browser. It primarily refers to end-user applications. It is run and
managed by the service provider. The end-user only has to worry about the
application of the software suitable to its needs. For example,
Saleforce.com, Web-based email, Office 365 .

Google AppEngine –
Google AppEngine is a scalable runtime environment frequently dedicated to
executing web applications. These utilize benefits of the large computing
infrastructure of Google to dynamically scale as per the demand. AppEngine
offers both a secure execution environment and a collection of which simplifies
the development if scalable and high-performance Web applications. These
services include: in-memory caching, scalable data store, job queues,
messaging, and corn tasks. Developers and Engineers can build and test
applications on their own systems by using the AppEngine SDK, which
replicates the production runtime environment, and helps test and profile
applications. On completion of development, Developers can easily move their
applications to AppEngine, set quotas to containing the cost generated, and
make it available to the world. Currently, the supported programming languages
are Python, Java, and Go.

Services provided by App Engine include:


 Platform as a Service (PaaS) to build and deploy scalable applications

 Hosting facility in fully-managed data centers


 A fully-managed, flexible environment platform for managing application
server and infrastructure
 Support in the form of popular development languages and developer tools
What are the challenges that GAE presents?

Even with all the cloud computing benefits that Google App Engine ushers in,
there are a few implementation challenges.
1. Control

What does a user do if there is a problem related to the infrastructure? Wait for
Google to solve it? Unfortunately, Back-end infrastructural setup, along with its
advantages, also brings in a limitation of problem-solving.
2. Customer Support

This is one aspect that has been under scrutiny. Users are known to have been
dissatisfied with the customer support facilities.
3. Porting

The porting of applications faces limitations because of potential vendor lock-in


issues. Users often face issues with data migration to other NoSQL databases.
4. Limitations of access & performance

Several times, developers have access to the Google App Engine file system
only in a limited read-only manner, creating issues. Writing to local files is a
hurdle many times. Moreover, performance is affected because one physical
server could be playing host to many separate and unrelated app engine users.
5. Expense

Some users have an issue that GAE can be costlier than self-hosted
environments.

Microsoft Azure –
Microsoft Azure is a Cloud operating system and a platform in which user can
develop the applications in the cloud. Generally, a scalable runtime environment
for web applications and distributed applications is provided. Application in
Azure are organized around the fact of roles, which identify a distribution unit
for applications and express the application’s logic. Azure provides a set of
additional services that complement application execution such as support for
storage, networking, caching, content delivery, and others.

How Azure can help in business?


Azure can help in our business in the following ways-
 Capital less: We don’t have to worry about the capital as Azure cuts out
the high cost of hardware. You simply pay as you go and enjoy a
subscription-based model that’s kind to your cash flow. Also, to set up an
Azure account is very easy. You simply register in Azure Portal and select
your required subscription and get going.
 Less Operational Cost: Azure has low operational cost because it runs on
its own servers whose only job is to make the cloud functional and bug-
free, it’s usually a whole lot more reliable than your own, on-location
server.
 Cost Effective: If we set up a server on our own, we need to hire a tech
support team to monitor them and make sure things are working fine. Also,
there might be a situation where the tech support team is taking too much
time to solve the issue incurred in the server. So, in this regard is way too
pocket-friendly.
 Easy Back Up and Recovery options: Azure keep backups of all your
valuable data. In disaster situations, you can recover all your data in a
single click without your business getting affected. Cloud-based backup
and recovery solutions save time, avoid large up-front investment and roll
up third-party expertise as part of the deal.
 Easy to implement: It is very easy to implement your business models in
Azure. With a couple of on-click activities, you are good to go. Even there
are several tutorials to make you learn and deploy faster.
 Better Security: Azure provides more security than local servers. Be
carefree about your critical data and business applications. As it stays safe
in the Azure Cloud. Even, in natural disasters, where the resources can be
harmed, Azure is a rescue. The cloud is always on.
 Work from anywhere: Azure gives you the freedom to work from
anywhere and everywhere. It just requires a network connection and
credentials. And with most serious Azure cloud services offering mobile
apps, you’re not restricted to which device you’ve got to hand.
 Increased collaboration: With Azure, teams can access, edit and share
documents anytime, from anywhere. They can work and achieve future
goals hand in hand. Another advantage of the Azure is that it preserves
records of activity and data. Timestamps are one example of the Azure’s
record keeping. Timestamps improve team collaboration by establishing
transparency and increasing accountability.

Hadoop –
Apache Hadoop is an open source framework that is appropriate for processing
large data sets on commodity hardware.

Hadoop is an implementation of MapReduce, an application programming


model which is developed by Google.

This model provides two fundamental operations for data processing: map and
reduce.

Yahoo! Is the sponsor of the Apache Hadoop project, and has put considerable
effort in transforming the project to an enterprise-ready cloud computing
platform for data processing.

Hadoop is an integral part of the Yahoo! Cloud infrastructure and it supports


many business processes of the corporates.

Currently, Yahoo! Manges the world’s largest Hadoop cluster, which is also
available to academic institutions.

Force.com and Salesforce.com –


Force.com is a Cloud computing platform at which user can develop social
enterprise applications. The platform is the basis of SalesForce.com – a
Software-as-a-Service solution for customer relationship management.
Force.com allows creating applications by composing ready-to-use blocks: a
complete set of components supporting all the activities of an enterprise are
available. From the design of the data layout to the definition of business rules
and user interface is provided by Force.com as a support. This platform is
completely hostel in the Cloud, and provides complete access to its
functionalities, and those implemented in the hosted applications through Web
services technologies.

You might also like