You are on page 1of 17

Cloud Computing Knowledge Map

Domain Analysis

CMPE 202-02
Fall 2017

Team AEA

Arpita Saha arpita-saha@hotmail.com


Eya Badal Abdisho eyabadal@yahoo.com
Arthur Baney arthur.z.baney@gmail.com

Under the guidance of Dr. Mohamed E. Fayad m.fayad@sjsu.edu


TABLE OF CONTENTS

ABSTRACT....................................................................................................................................2

INTRODUCTION........................................................................................................................ 3

KNOWLEDGE MAP OVERVIEW........................................................................................... 4

EBT #1-RECOVERY....................................................................................................................7

EBT #2 -LIFECYCLE..................................................................................................................8

BO #1 - PROTOCOL...................................................................................................................8

BO #2 - CONTENT......................................................................................................................9

NON-FUNCTIONAL REQUIREMENT #1- PRIVACY........................................................ 10

ARCHITECTURES................................................................................................................... 10

CONCLUSIONS......................................................................................................................... 11

REFERENCES........................................................................................................................... 12

APPENDIX................................................................................................................................. 13

1
ABSTRACT

Cloud computing is the delivery of on-demand computing resources over the Internet on a pay per
use basis (IBM). A large number of enterprises have adopted cloud computing services to make
their operation faster, more reliable and more easily accessible.
However, a domain analysis does not exist for cloud computing. Usually, domain experts are very
good in the tangible aspect of any given domain. The current domain analysis of any system or
technology such as cloud computing must create a foundation that is needed to develop any system
or understand any technology fully by generating the true requirements and ultimate design and
architecture in addition to adding testing requirements to both phases.
The goal of this article is for complete understanding of the domain of cloud computing. This
domain is rapidly changing and new features are added frequently. It can get confusing with so
many features. This knowledge map can be used to design and implement cloud computing
services in a way that is easily adaptable to any new technology platform and future proof when
changes in industrial objects, such as server computing machinery and network infrastructure,
occur.
Since data is being stored in the cloud instead of in local storage, we identified that being able to
recover data is an essential goal of any cloud technology. Cloud computing also needs to go
through a lifecycle which encompasses architecture, programming, testing and maintenance. In
addition, the content on the cloud is also a key component of all cloud technologies. The content
is communicated through network protocols which also remain stable externally. For good quality
cloud environments, it is important for proper data privacy measures to be in place.
Our main findings from conducting a domain analysis of cloud computing are:
Even though cloud computing is a new and emerging technology, it has many stable
components which will make it reusable even when surrounding features change.

2
Information recovery and the ability to go through a lifecycle are goals of any cloud
computing technology.
The ability to store content and use various protocols to communicate are capabilities of
any cloud computing technology.
We identified that information privacy is a key quality factor that makes a good cloud
computing service.

INTRODUCTION

Cloud computing is the practice of using a network of remote servers hosted on the Internet to
store, manage and process data rather than a local server or a personal computer. In this report, we
conducted a domain analysis on cloud computing. Domain analysis is the process of analyzing an
area of knowledge to identify its common and variable parts.
This article provides a knowledge map which will serve as a road map to guide software developers
as they try to understand the rationale, business rules and the context of applications of cloud
computing (Fayad et al.,2015) . The knowledge map is based on software stability concepts.
Software stability classify the classes of any system into three main layers of understanding: the
Enduring Business Themes (EBTs), Business Objects (BOs) and Industrial Objects (IOs) (Fayad
et al.,2015). We have also utilized pattern languages in our domain analysis to create scenarios.
Pattern languages are simply a collection of interrelated patterns which can be combined in any
manner to design and create new scenarios which developers can use to solve context based
problems (Fayad et al.,2015).
In this report, we will outline a general architecture and knowledge map that can be applied to any
application of cloud computing, regardless of short term technological changes and transitions in
industrial objects (IOs) used in any cloud computing framework.
First we will discuss enduring business themes (EBTs) of cloud computing, that is, themes, uses,
and purposes that cloud computing services will always have regardless of the architecture they
are implemented on or the method of implementation. Then we will discuss business objects (BOs)
common to all cloud computing services, which are abstractions of industrial objects that represent
a specific functional purpose to be fulfilled by cloud computing. Because BOs are hardware &
implementation agnostic, they can easily be applied to new architectures and are enduring in their
usage and high level design, essentially serving as a black box inside of which can be found our

3
industrial objects which provide the actual implementation of the desired functionality. We will
then discuss non-functional requirements (NFRs) common to all cloud computing services, which
are essentially quality factors by which we can judge the implementation and operation of a cloud
computing service.
The two EBTs we will discuss in particular are recovery, the ability of a cloud computing service
to recover to a desirable state when data loss, service outages, network faults, or other problems
occur, and lifecycle, the process through which cloud computing services are considered, designed,
implemented, maintained, and evaluated.
The two BOs we will discuss are protocol, which describes the essential rules that any particular
cloud service must follow in order to meet its business objectives, and content, the information
that is stored and processed by any cloud computing service.
The two NFRs we will discuss are privacy, an often desirable attribute of cloud computing
services, and security, an often essential requirement of cloud computing services in order for them
to meet their business needs
Keywords: Cloud Computing, Software Stability, Domain Analysis, Knowledge Map,
Pattern Language

KNOWLEDGE MAP OVERVIEW

Our knowledge map consists of the following two EBTs and BOs :

1. EBTs: These are Enduring Business Themes which represent the elements that
remain stable internally and externally. These are entirely conceptual.
A. Recovery
Recovery is defined as the return of something that has been lost or stolen (Merriam-
Webster). Since all the data is stored in the cloud, backing it up and restoring is
relatively easier than storing on a physical device. Handling recovery of information
is an essential goal for all cloud service providers.
Along with backup management, disaster recovery is usually available as a service in
cloud. This is used for protecting an application or data from a natural or human
disaster or service disruption at one location by enabling a full recovery in the cloud.
B: Lifecycle

4
Lifecycle is defined as a series of stages through which something passes during its
lifetime(Merriam-Webster). In order for a cloud environment to be successfully
deployed, it needs to go through certain stages like planning the cloud environment,
building applications in the cloud, setting up a metering mechanism and finally ways
to manage and monitor the cloud.

EBTs/Goals Description

Recovery Cloud should be able to return data that is lost or stolen

Lifecycle Cloud goes through different stages in a lifecycle like architecture,


programming, testing and maintenance.

Table 1: EBTs of Cloud Computing

2. BOs: These are the Business Objects that remain internally adaptable, but externally
stable. These are semi-tangible.
A. Protocol
Protocol is defined to be a set of rules that governs the communication between the two
things (Merriam-Webster). Cloud computing is based on various networking protocols.
These protocols include devices to identify and make connections with each other, as
well as formatting rules that specify how data is packaged into messages sent and
received. These protocols are internally flexible meaning they can be used to
communicate with any two devices according to varying scenarios. However, the
protocol itself is fixed and cannot changed.
B. Content
Content is a collection of perceivable media, usually for specific medium (Merriam-
Webster). Content includes things like music, art, writing and software. The word
content is used to describe the body that fills up the medium, like the content of a
shipping container is goods, or the content of a book is text and images, the content of
an app store is apps and games.

5
Clouds contains various content according to business and individual needs. These
content can be easily changed by authorized users. However, unauthorized users will
not be allow to change any of the contents making it externally stable.

BOs/Capabilities Description

Protocol Cloud is based on various protocols which are a set of rules meant
for communication in networking.

Content Cloud contains different kinds of content like documents, media


files, applications etc.

Table 2: BOs of Cloud Computing

3. Non-Functional Requirement: These are positive, enduring quality factors of cloud


computing.
A. Privacy
Privacy is defined to be freedom from unauthorized intrusion (Merriam-Webster).
Ideally, cloud service providers should be able to keep customers files safe and
secure from unauthorized access. Many cloud providers have adopted security tools
like encryption to keep data safe for a better customer experience.

Non-Functional Description
Requirements/Quality Factors

Privacy Cloud should only allow authorized users to access data.

Table 3: Non-functional requirement of Cloud Computing

Essential Properties of Cloud Computing

6
These are the following properties every cloud computing technology must have (Chabrow, 2011):

On-demand self service: A consumer should be able to get services like


applications, storage, etc., without human interaction.
Broad Network Access: Cloud services should be available over the network and
should be accessible through standard mechanism for all kinds of platforms.
Resource Pooling: The providers computing resources are pooled together to serve
multiple customers with different physical and virtual environments. These are
dynamically assigned and reassigned according to consumer demand.
Rapid elasticity: Capabilities can be scaled up or down easily as needed by the
customer.
Measured service: Cloud systems control and optimize resources by using some
sort of metering capability. Resource usage is monitored, controlled and reported
allowing for transparency between the provider and consumer.

EBT#1 - RECOVERY

Scenario #1: Business using Cloud DR


This scenario corresponds to a business (AnyActor) or a company where they have sensitive data
(AnyData) which needs some level of security in order to store. They need a system or an
organization to store their data which also needs to be cost effective (AnyRule) and easy to reuse
and change overtime (AnyDuration) so they decided to use cloud DR where they can safely store
and restore critical application and information from cloud in case of emergency.

Scenario #2: Business External Level


This scenario corresponds to a business (AnyActor) or a company where they want to collaborate
with others; either their own teams or other other companies. They want an easy way to recover,
share and maybe edit existing documents in real time, and even maintain ongoing folders over
extended periods of time(AnyDuration). They decided to use cloud services so they can store their
files on cloud and later recover and share them with each other.

Scenario #3: Android and Google Cloud

7
This scenario corresponds to any individual (AnyActor) who lost his Android phone (AnyMedia)
and lost his data (AnyData). To avoid the same issue (AnyConstraint ) in future, this individual
wants to have a backup of his phones data somewhere (AnyMechanisem) safe that he can recover
them later in case his phone get stolen. For this reason he decided to use the data cached in the
cloud by Google (AnyElement), which can include contacts, wallpapers, calendar entries and some
account information. Google cloud does not automatically back up images, games, movies and
other data so you should configure backups right away. By using Google cloud now, this individual
can recover his data in future in case something happen to his Android phone.

EBT#2 LIFECYCLE

Scenario #1: Software Development lifecycle


This scenario corresponds to any businesses (Any Party) where they want to develop their own
software. In this process they need a cycle to start and follow to develop their software; lifecycle.
In this case they will follow the software development lifecycle where they have to start from the
first step which is a problem definition then problem analysis, design, implementation, testing and
deployment. They will develop their software based on different phases of the software
development lifecycle.

Scenario #2: Butterfly Lifecycle


This scenario corresponds to a caterpillar egg (AnyActor) which is about to broke and become a
butterfly. To grow into an adult they have to go through 4 stages: egg, larva,pupa and adult
(AnyDuration). In the first stage the butterfly lays eggs on a leaf. After five days a tiny worm-
like creature will hatch from the eggs. The second stage is the caterpillar or larve. It start eat a lot
and grow fast. Stage three is the chrysalis, this is where it's growing. Finally in stage four the
chrysalis pens and a butterfly comes out. A butterfly soon will find a mate and then lay eggs and
the life cycle will start all over.

BO#1 PROTOCOL

Scenario #1: Disaster Avoidance Protocol

8
This scenario corresponds to any business (AnyParty) where they want to prevent certain
undesirable events (AnyEvent) from happening to their cloud computing service, and want to write
out a list of protocols for their applications to abide by such as to prevent these events from
happening as long as they follow those protocols.

Scenario #2: Operational Efficiency Protocol


This scenario corresponds to any business (AnyParty) where they want to sustain efficient
operation of their cloud computing service (AnyMechanism) in a business that has many different
unique problems (AnyEvent), and want to establish protocols for their employees to ensure the
process is fair, accurate, and completed in a timely manner.

Scenario #3: Security Protocol


This scenario corresponds to any business (AnyParty) that wants to ensure their documents
(AnyMedia) are kept secure and only accessed by people (AnyParty) who are authorized to have
access to them, and want to establish a protocol for all the software they use to ensure that this
level of security is met.

BO#2 -CONTENT

Scenario #1: Interactive Media


This scenario corresponds to any business (AnyParty) where they want to store content for their
product on their cloud computing platform (AnyEntity / AnyMechanism).

Scenario #2: Static Media


This scenario corresponds to any person (AnyParty) where they want to get information content
from a source (AnyMedia), for example, a cloud book service contains content that is read by
many readers.

Scenario #3: Periodic Content Updates to Media


This scenario corresponds to any organization (AnyParty) that wants to publish regular updates
about any topic (AnyEvent / AnyEntity) through their product (AnyMechanism / AnyEntity), for

9
example a cloud computing blog service has new content posted to it every day with updates about
news and events happening around the world.

NON-FUNCTIONAL REQUIREMENT # 1 PRIVACY

Scenario # 1: Customer Privacy


This scenario corresponds to any business (AnyParty) where the company (AnyActor)
compromises the privacy of their client (AnyParty) on their cloud computing platform. Customers
personal documents are shared with a 3rd party without the customers permission. Customer tried
to sue the company and because of that New rules (AnyRules) are made to make sure the
customers privacy is not violated in this way again.

Scenario # 2: Cloud Partition Privacy


This scenario corresponds to James (AnyActor) whom his cloud computing partition
(AnyElement) is about to be investigated (AnyConstraint) by FBI (AnyParty) without any warrant.
At this moment he is concerned about his privacy. James knows that under the fourth amendment,
police officers(AnyParty) must obtain written permission from a court of law (AnyParty) to legally
search a person and his or her property and seize evidence(AnyElement) while they are
investigating possible criminal activity. To avoid any disruption in his privacy, James find the
fourth amendment description and called the authorities.

ARCHITECTURE PATTERNS

1. Network Protocol are rules and conventions for communication between network
devices (Wikipedia).
2. Network Architecture is the design of a communication network (Wikipedia).
3. Disaster Recovery involves a set of policies, tools, and procedures to enable the
recovery or continuation of vital technology infrastructure and systems following a
natural or human induced disasters (Wikipedia).

10
4. Lifecycle Management is the process of managing the entire lifecycle of cloud from
planning to deployment and monitoring (Wikipedia).
5. Content Delivery is a geographically distributed network of proxy servers and their data
centers (Wikipedia).
6. Content Management is a set of processes and technologies that supports the collection,
managing, and publishing information in any form or medium (Wikipedia).
7. Data Privacy deals with the ability of an organization or individual has to determine
what data in a computer system can be shared with third parties (Wikipedia).
8. Security Protocol are rules and conventions that ensures the security and integrity of
data in transit over a network connection (Wikipedia).
9. Network Virtualization is the process of combining hardware and software network
resources and network functionality into a virtual network (Wikipedia).
10. Data Recovery is the process of salvaging inaccessible, lost, corrupted, damaged or
formatted data from secondary storage, removable media or files when the data in them
cannot be accessed in a normal way (Wikipedia).

CONCLUSION
In this report, we have presented an approach of a generalized architecture and knowledge map for
any conceivable cloud computing implementation, in particular focusing on the enduring business
themes of a cloud computing services lifecycle and recovery, any cloud computing services
business objects of protocol and content, and any cloud computing services non-functional
requirements of privacy and security.
We identified that recovery of data and programs is an essential goal of all cloud technologies. In
addition, cloud computing also needs to go through various stages in a lifecycle order for it to be
successfully deployed. Protocol and Content are internally adaptable in varying cloud
environments, but are externally stable. As well, in order for the cloud technology to be of high
quality, it needs to be reliable and have high standards for information privacy.
The cloud computing model discussed here is implementation-agnostic by design, and can be
applied to any application of cloud computing, unaffected by technological change or transitions
in industrial objects used in any cloud computing framework. As a result of this design, we have
accomplished a generalized framework with reusable EBTs, BOs, and NFRs that will be

11
guaranteed to be needed in any cloud computing service and can be applied across any possible
implementation.

REFERENCES

Fayad, Mohamed E., Sanchez, Huascar A., Hegde, Srikanth G.K., Basia, Anshu., and Vakil,
Ashka., Software patterns, knowledge maps, and domain analysis. Boca Raton, FL: CRC Press,
2015. PDF.

"IBM Cloud." IBM. October 17, 2016. Accessed November 14, 2017.
https://www.ibm.com/cloud-computing/learn-more/what-is-cloud-computing/.

"Dictionary by Merriam-Webster: Americas most-trusted ..." Accessed November 14, 2017.


https://www.merriam-webster.com/dictionary/.

Chabrow, Eric. "5 Essential Characteristics of Cloud Computing." InfoRisk. October 25, 2011.
Accessed November 14, 2017. https://www.inforisktoday.com/5-essential-characteristics-cloud-
computing-a-4189.

List of Network Protocols. Wikipedia. Accessed November 14, 2017.


https://en.wikipedia.org/wiki/Lists_of_network_protocols

Network Architecture. Wikipedia. Accessed November 14, 2017.


https://en.wikipedia.org/wiki/Network_architecture

Disaster Recovery.Wikipedia. Accessed November 14, 2017.


https://en.wikipedia.org/wiki/Disaster_recovery

Application Lifecycle Management.Wikipedia. Accessed November 14, 2017.


https://en.wikipedia.org/wiki/Application_lifecycle_management

"Content Delivery Network." Wikipedia. Accessed November 14, 2017.


https://en.wikipedia.org/wiki/Content_delivery_network.

Content Management. Wikipedia. Accessed November 14, 2017.


https://en.wikipedia.org/wiki/Content_management_system
Information Privacy.Wikipedia. Accessed November 14, 2017.
https://en.wikipedia.org/wiki/Information_privacy

Cryptographic Protocol.Wikipedia. Accessed November 14, 2017.


https://en.wikipedia.org/wiki/Cryptographic_protocol

Network Virtualization.Wikipedia. Accessed November 14, 2017.

12
https://en.wikipedia.org/wiki/Network_virtualization

Data Recovery.Wikipedia. Accessed November 14, 2017.


https://en.wikipedia.org/wiki/Data_recovery

APPENDIX

Knowledge Map Template of Cloud Computing

1. KM Name: Cloud Computing


2. KM Nickname: None
3. KM Domain/Subject/Topic Description:

The term cloud refers to the way that networks, specifically the Internet, have been represented
in engineering and network drawings for some time. In reality, the cloud is just the latest iteration
of a concept that has been called many things in the past including ASP (application service
provider), on-demand, utility computing and as a service (Software as a Service, Infrastructure as
a Service).
Cloud technologies are simply a pool of computing resources (servers, storage, applications, and
voice services) that is provided as-needed to businesses from a providers network, eliminating the
need for on-site equipment, maintenance, and management. Cloud technologies enable IT
departments to increase or add capabilities as needed without purchasing equipment and software,
training employees to support it, and using office space, power, and cooling to house it. They
provide end users immediate access to new, always-on features from nearly any device in any
location. They also provide the business a predictable, subscription-based, pay-per-use way to fund
IT.

4. EBTs/Goals:

EBTs/Goals Description

Availability Services needs to be accessible for longer periods of time. Outages needs to
be minimized or even eliminated. Services are available whenever required
without human interaction.

Scalability Accommodate processing fluctuations and peaks automatically or manually.


Resources needs to be instantly and dynamically allocated.

Measurability Measure usage of resources so operational expenditures can be tracked and


capital expenditures can be reduced. This will lead to proportional costs for
cloud providers.

13
Security Data in cloud needs to be secure and only accessible to those who are
authorized.

Legal Clear laws are needed in regard to where the data centers are located and
disclosure of data.

Portability Can be used by thick and thin clients (mobiles, tablets, laptops,
workstations) over the network.

Virtualization Through the use of virtualization, multiple cloud service consumers are
isolated.

Multitenancy Software architecture in which a single instance of a software runs on a


server and serves multiple tenants

Recovery In case of power outage, system failure or any human-made event, the data
from cloud must be available to recover.

Lifecycle Cloud life cycle consists of phases like architecture, programming, testing
and maintenance. A manufacturer's marketing objectives for a product such
as cloud often depend upon what stage of the life cycle the product has
entered.

Table 1: EBTs of Cloud Computing

5. BOs/Properties

BOs/Capabilities Description

Level One of the characteristic of cloud computing is reuse. Where you can
reuse your resources which can effect both in business and technology
aspects. We must identify the levels in cloud.

Risk Cloud computing can pose security and privacy concerns, such as when
people who are not supposed to have access to certain files get access to
them.

Asset Cloud Computing increase delivery efficiency, more resources and better
solution.

Protocol Cloud computing follows network and security protocol to communicate


with devices in the network.

14
Content Cloud computing contains various kinds of contents like media files,
documents, applications etc.

Architecture Resource defines the materials, strategies etc. undertaken


for the completion of a task. Cloud computing services allocate resources
dynamically.

Resource Cloud computing has many components like front end platform, back end
platform, a cloud based delivery system and a network.

Components The cloud computing components will vary according to context.

Context A basic task of a computer, especially one that corresponds


to instructions from the user. The functionality of the cloud application
will depend on the context.

Function A basic task of a computer, especially one that corresponds


to instructions from the user. Users give instructions to cloud to perform
various services like computing, storage etc.

Table 2: BOs of Cloud Computing

6. Knowledge Map Non-Functional Requirements(Quality Factors)

Quality Factors Description

Availability This is the ability of a user to access information or resources in a


specified location and in the correct format.

Reliability The system is able to inspire trust and confidence to the user.

Assuring The system is right, useful and dependable.

Responsive The system is ready to provide service

User Friendly The physical features of the system are appealing and looks good.

Table 3: Cloud Computing Quality Factors

References
[1] "Cloud Computing Definition - Glossary of Terms." Evolve IP. Accessed November 14,
2017. https://www.evolveip.net/support/cloud-computing-definition

15
[2] Wikipedia. Accessed November 14, 2017. https://www.wikipedia.org
[3] Fayad, Dr.Mohamed E., and Flood, Charles A., "Software Reuse Knowledge Map." IJARS
International Journal of Engineering 2, no. 3 (2016). doi:10.20908/ijarsije.v2i3.3778.

16