Software Quality in the Clouds: A Cloud

Noname manuscript No.
(will be inserted by the editor)
Software Quality in the Clouds: A Cloud-based Solution
Mohammed Hussain · Hanady M.
Abdulsalam
the date of receipt and acceptance should be inserted later
Abstract Cloud computing, an on-demand computation model that consists of
large data-centers (Clouds ) managed by cloud providers, offers storage and com-
putation needs for cloud users based on service level agreements (SLAs). Services
in cloud computing are offered at relatively low cost. The model, therefore, forms
a great target for many applications, such as startup businesses and e-commerce
applications. The area of cloud computing has grown rapidly in the last few years;
yet, it faces some obstacles. For example, there is a lack of mechanisms that guarantee for cloud users the quality they are actually getting, compared to the quality
of service specified in SLAs. Another example is the concern of security, privacy
and trust, since users loose control over their data and programs once they are sent
to cloud providers. In this paper, we introduce a new architecture that aids the design and implementation of attestation services. The services monitor cloud-based
applications to ensure software quality, such as security, privacy, trust and usability of cloud-based applications. Our approach is a user-centric approach though
which users have more control on their own data/applications. Further, the proposed approach is a cloud-based approach where the powers of the clouds are
utilized. Simulation results show that many services can be designed based on our
architecture, with limited performance overhead.
Keywords Security, Software Quality, Cloud Computing
M. Hussain
College of Computer Science and Information Technology
Taif University, Saudi Arabia
Email: [email protected]
H. M. Abdulsalam
Department of Information Sciences
Kuwait University, Kuwait
Email: [email protected]
2
Mohammed Hussain, Hanady M. Abdulsalam
1 Introduction
Cloud computing is a promising model for on-demand and scalable computations
over the Internet [1]. The model consists of cloud providers and cloud users. Cloud
providers abstracts computing and storage units and provides them as services
for cloud users. Defining cloud computing is hard, since this computing paradigm
means different things to different people. Nevertheless, one can think of cloud computing as online high-performance data-centers (clouds), which offer computation
and storage resources for cloud users. The resources are provided on different levels, namely, software level, platform level, and infrastructure level [2]. Since cloud
providers are experts in managing these centers, they can provide cloud users the
computation and storage they need at a reasonable cost.
One main advantage of cloud computing is to relieve cloud users from the task
of managing these centers. Businesses, therefore, need not to invest in software
and hardware upfront. They may, instead, start their operations immediately [3].
The simplicity of using cloud computing is another advantage. Gottfrid [4] uses
Amazon’s Simple Storage Service (S3) and Elastic Compute Cloud (EC2) [5] to
convert 4 terabytes of scanned documents, from The New York Times, into a pdf
format. Cloud computing applications span several fields, such as e-government [6]
and knowledge discovery [7, 8].
Despite the attention given to cloud-computing, many risks still form an important challenge that needs to be addressed. Security, trust, privacy, performance
and other quality attributes are hard to be assessed once cloud users submit their
cloud data and programs to the cloud. This is because once cloud users upload
their data and programs to a cloud, the security and privacy of user assets become
the responsibility of the cloud provider. Further, cloud users cannot fully monitor
their assets at the cloud. They cannot guarantee that cloud providers are taking
necessary security, privacy, and other quality measures to ensure the terms of the
SLAs.
Although providers are expected to maintain the security of their clouds, users
cannot fully trust cloud providers. Due to the fear of negative reputation, providers
tend not to disclose all security breaches that occur.
1.1 Contributions
Cloud solution assume that the security, privacy, trust, performance and other
quality attributes are maintained by cloud providers [9–11]. There are many research attempts on verifying and monitoring quality attributes at cloud providers’
[12–15].
In this paper, we present an architecture for quality attestation and cloud
provider’s adherence to SLAs. The architecture combines the following properties
(see Figure 1), which sets our work aside from other attempts.
1.1.1 User-centric Design
We introduce a user-centric design by which cloud users are allowed to choose
the quality monitors and measures that suit their needs. Our architecture treats
quality monitors as services that cloud users may subscribe to them. Further, cloud
Software Quality in the Clouds: A Cloud-based Solution
3
Fig. 1 Properties of the proposed architecture
users are no longer limited to the services provided by their cloud provider. Users
of one cloud may subscribe to quality monitors provided by other clouds.
A user-centric design for the services that deal with a quality attribute invites
the following benefits:
– Provide choice. Cloud users are given the ability to choose the provider of their
quality measures as they choose the provider of their storage and computation.
– Enhance quality. Cloud users are permitted to subscribe to those services they
need, whether they are provided by their cloud provider or others. Cloud
providers become pressured to match the quality measures of other competitors; otherwise, their users may subscribe to other quality measures.
– Allows for informed-decisions. Cloud users are allowed to participate in the selection of the quality measures. Users become well informed and aware of the
available measures. Thus, they have the ability to make informed decisions.
In practice, a user-centric design of security services can, therefore, provide a
wide-range of security services, enhance protection of user assets, raise security
awareness of users, and allow for informed-decisions.
1.1.2 Cloud-based Architecture
Cloud-based security is concerned with the utilization of the computation and
storage power of cloud computing in order to design security solutions [16]. Muttik
et al. [16] designed an anti-virus software that keeps virus and malware signatures
at designated clouds, while client machines communicate with these clouds to
detect viruses.
We follow a cloud-based architecture to handle quality measures for cloud
users, such that quality measures need not be limited to the routines that run on
the virtual machines of the cloud users. Quality measures can, instead, be services
that are offered by other clouds. In other words, our architecture permits cloud
users to subscribe to quality measures offered by other clouds.
For example, let U be a cloud user of a cloud provider A, with one virtual
machine V. Although A offers a set of quality measures, U is only interested in
a throughput measure F offered by a cloud provider B. Based on our proposed
architecture, U is permitted to subscribe for F located at cloud B. This offer of
quality attestation services through cloud-computing allows users to benefit from
the on-demand, pat as you go, model of cloud computing.
4
Mohammed Hussain, Hanady M. Abdulsalam
1.1.3 Extendable and Scalable Scope
We illustrate our proposed architecture in the security context. Our simulation
is, therefore, based on the implementation of some security measures. Although
the main focus on this paper is the security measures, the proposed architecture
can deal with any quality attribute other than security, such as reliability, trust,
performance etc. Further, since we utilize cloud computing as the infrastructure of
the proposed quality attestation architecture, the architecture can be considered
as scalable. That is, a cloud user may subscribe to a number of quality attestation
services, then subscribe to additional services, requiring larger amount of resources.
This paper is organized as follows. Section 2 describes cloud computing and
lists some of software quality requirements. Section 3 presents our architecture
and illustrates it through a use-case. Section 4 shows the design details. Section
5 discusses simulation results. Section 6 reviews the related work to this paper.
Finally, Section 7 concludes the paper.
2 Quality in Cloud Computing
Since cloud providers offer their computation and storage services as abstracted
units to cloud users, those users cannot measure the cloud quality. Assuring cloud
users about the level of quality in cloud computing is, therefore, an important
area to be considered. We follow the taxonomy proposed by Barbacci et. al [17]
for software quality. Barbacci et. al [17] categorizes quality into: performance,
dependability and security.
Cloud computing providers, such as Microsoft [10], Amazon [18] and IBM [9],
secure their cloud solutions and monitor their quality. Their work share some the
following principals:
– Risks to cloud computing assets are assessed and prioritized
– Security, as well as quality controls, are implemented
– A compliance framework is used to monitor and evaluate controls in order to
ensure that the controls are operating as required, and that the controls meet
industrial and governmental standards. Such standards are Health Insurance
Portability and Accountability Act, and Payment Card Industry Data Security
Standard.
– User virtual machines are well separated from each other
– Physical machines are protected from being directly controlled by virtual machines
On the research level, Liu et al. [19] present an agent-based architecture to
measure quality attributes at cloud providers and compare them to SLAs. Lee
et al. [13] propose a quality model for cloud computing. The model defines a
set of metrics to measure these quality attributes. Stantchev et al. [12] introduce
an approach for formalizing SLAs and measuring quality attributes. Once a gap
between an SLA and quality attributes of a service is detected, a controller bridge
that gap by providing more resources to that service. Patel [20] et al. propose a
framework for managing SLAs, where monitoring quality attributes are performed
by third parties.
Software Quality in the Clouds: A Cloud-based Solution
5
2.1 Quality Requirements
The following is a list of some security requirements for cloud computing.
– To protect the user account at the provider cloud from un-authorized access.
– To maintain the confidentiality, integrity and availability of user data and
–
–
–
–
programs. Confidentiality and integrity ensure that reading/modifying information is performed only by legitimate users.
To protect the virtual machines of users from malware.
To allow users to specify and enforce access policies for their accounts.
To monitor the virtual machines of users for attacks and intrusions, and accordingly, generate reports and send them to users.
To ensure that cloud resources are available for users.
The following is a list of some performance requirements for cloud computing.
– To ensure that the required throughput level is achieved, where throughput
is the amount of requests that can be processed and responded to in a given
period of time.
– To ensure that the system operates with the specified latency, where latency
is the time between needed to process and respond to a request.
– To ensure that the system operates with the specified capacity, where capacity
is the amount of requests that can be received in a given period of time without
affecting throughput and latency.
– To operate in a lower mode, if current mode cannot be sustained, where modes
are the different operation levels of a system that depend on available resources.
The following is a list of some dependability requirements for cloud computing.
– To ensure the safety of the infrastructures of cloud providers.
– To ensure the maintainability of the infrastructures of cloud providers, where
maintainability is the ability to update the system.
– To ensure the reliability of the infrastructure of cloud providers. Reliability
refers to the absence of faults in the system.
This paper presents an architecture that, in addition to addressing the above
requirements, deals with quality attestation as a service that can be offered by
cloud providers or by third parties. That is, it is required that users are empowered to choose quality attestation provider, quality attributes to be attested, and
the time periods that are needed to monitor quality the chosen attributes. The
aforementioned work on quality attestation [11, 12, 15, 19, 20] do not provide users
with those choices.
3 A Cloud-based User-centric Architecture
In order to address the shortages in measuring quality attributes at cloud computing architecture as mentioned above, we present a novel architecture for quality
attestation in cloud computing. Our architecture follows a service oriented architecture (SOA), and offers Quality Attestation as a Service (QAaaS). Cloud users
are given more control over the processes that measures the quality of service
at their cloud providers. They are also given the opportunity to choose quality
attestation services from other cloud providers.
6
Mohammed Hussain, Hanady M. Abdulsalam
Fig. 2 QAaaS at different cloud computing levels
Fig. 3 Proposed QAaaS architecture
Given a cloud, quality attestation can be applied at the Software as a Service
(SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) levels
(Figure 2). At the SaaS level, quality attestation services measure the qualities of
the provider’s software. At the PaaS level, quality attestation services measure the
qualities of the provider’s platform. At the IaaS level, quality attestation services
measure the qualities of the provider’s infrastructure.
Figure 3 depicts a cloud user and a cloud provider. The cloud provider offers
computation and storage services to the user. To attest the quality that is expected
by user’s Virtual Machine (VM), the provider has several quality attestation services 1 - 3 in place. There are three clouds quality attestation services, a-c. The
services may represent any quality assurance mechanism, for example, auditing,
throughput measure, etc.
Quality attestation services a-c may be offered by separate clouds, as shown
in the figure, or may be offered by the same cloud. For example, an availability
service and an reliability service may be offered by the same cloud. One can think
of Figure 3 as a reference architecture, from which other ‘specialized’ architectures
are instantiated. Section 3.1 presents one of these instantiations.
There are four entities in our architecture:
– Cloud Provider. An entity which provides cloud computing solutions for cloud
users.
– Cloud User. An entity which subscribes to a cloud computing solution, at a
cloud provider.
– Quality Attestation Provider. A cloud provider which publishes quality attes-
tation services for its cloud users, as well as for cloud users of other cloud
providers.
Software Quality in the Clouds: A Cloud-based Solution
(a) Creating an account for
the user
(c) Subscribing to a service
7
(b) Managing services
(d) Un-subscribing to a service
(e) Activating a service
Fig. 4 The operational flow-charts of the system
Figure 4 illustrates the operational flowcharts of the system at a provider of
quality attestation services. The first operation is creating an account for the user,
as shown in Figure 4(a). A virtual machine (VM) is also created for that user.
The virtual machine is to be used to host quality attestation services that the user
may subscribe to. In Figure 4(b), a user may subscribe/un-subscribe to services, or
activate/de-activate services. User account is updated accordingly after each operation. The remaining figures describe the details of the four operations. Figure 4(c)
shows the steps of subscribing to a service, where a user choose a quality attestation service to subscribe to. Then, the user specify requirements, and negotiate an
SLA with the provider. Finally, the user configures the service, while the quality
attestation provider adds record this subscription. The service is installed at the
user VM (at the quality attestation cloud). Figure 4(d) explains the unsubscribe
operation, where a user choose a service to unsubscribe from. If the user confirms
the request, the service is deactivated. The provider removes the subscription from
that user account. The service is un-installed from the user VM (at the quality
attestation cloud). In Figure 4(e), a quality attestation service is activated for a
user. The service gathers data from user VM (at the computation and storage
8
Mohammed Hussain, Hanady M. Abdulsalam
Fig. 5 An example flowchart for a malware service
cloud provider). This is performed once in every time period T, specified by user
configuration. The data gathered differ from a service to another, and is based
on user configuration. The data is analyzed and the results is used to generate a
report. The report is saved in the user account. Should the results of the analysis
require immediate user attention, the user is contacted and alerted. The operation
is repeated, until the user de-activates the service. A de-activation means that the
service is stopped at the user VM (at the quality attestation cloud), and awaits
activation at a latter time.
An example quality attestation service is shown in Figure 5. The service, an
anti-malware tool, is published by a quality attestation entity. This entity maybe
a cloud provider. The customers of this service are cloud users, interested in monitoring their VMs for malware. The flowchart describes the operations of the service. Once configured and activated by the user, the service is ready. The service
monitors the virtual machines of that user, possibly at different cloud providers.
The service scans the memory of each virtual machine for malware processes. The
memory is analyzed and a report is generated for the that user. If the analysis
shows the existence of malware, the user is alerted. The service terminates when
the user de-activates it.
3.1 Use-case: Security as a Service (SECaaS)
In an early work [21], the authors proposed an architecture to deal with cloud
security as services that cloud providers publish and cloud users subscribe to.
Here, we describe Security as a Service (SECaaS) as an instance of our reference
architecture, depicted in Figure 3. We choose security as it is considered as most
cited obstacle for cloud computing [22]. Cloud users subscribe to storage and
computation clouds, as well as to clouds providing security services.
Consider an example of patient data processed by a research group. Protecting the dataset of the research group against illegal access, and protecting the
provider software from unauthorized usage are done at the SaaS level. Protecting
the group’s applications, which constitute assets for their developers, and protecting provider platform from malware, such as viruses and worms, are done at the
PaaS level. Maintaining the security of the group’s virtual machine and protecting
provider infrastructure from being used to send spam or perform illegal activities
are done on the IaaS level.
Using clouds to provide security services is not new. An intrusion detection
system using Amazon Cloud service is implemented by Guilbault et al. [23]. Muttik
Software Quality in the Clouds: A Cloud-based Solution
9
Fig. 6 SECaaS, an instance of QAaaS
et al. [16] uses cloud computing to design an anti-malware system. This work
represents what may be referred to as cloud-based security [16].
SECaaS is illustrated in this section using the previous example in this paper.
We describe the four clouds, as seen in Figure 6. The four clouds provide intrusion detection, identity and access control, auditing and anti-malware services. A
security manager cloud is used to manage the subscription at these clouds. Before
proceeding with the description of the security services, the two entities of a cloud
are defined.
Cloud Users
The research group, in the example, represents a cloud user. The group selects
a computational and storage cloud for its research. The members browse security
services provided by the selected cloud, and choose whatever services that suit
their requirements. They also browse published security services of other clouds,
specialized in offering security. The group subscribes to the services that suit their
security needs unfulfilled by their computation and storage cloud.
Cloud Providers
A cloud provider publishes security services for cloud users. Some of these
services protect user assets at that provider’s cloud only. For example, Firewall,
Physical Security and Operational Compliance services of a cloud provider A are
available for A’s users. Users with assets residing at a cloud B cannot subscribe to
these services at cloud A. Other security services are available for users, regardless
of the location of their assets. For example, A may publish an anti-malware and
access control services that users of cloud B may subscribe to.
We now describe the security services in Figure 6. A firewall shields cloud
resources from harmful network traffic. A firewall also protects users’ Virtual Machines (VMs) and data at the provider’s cloud. Physical security is needed to limit
the access to the physical servers of the cloud provider to authorized personnel. An
operational compliance service checks whether the cloud provider meets standards
put forth to protect cloud users privacy and security.
Figure 6 shows a cloud specialized in offering identity and access control services. Administrators of cloud applications may subscribe to this cloud, which
allows these administrators to regulate user access to system resources. It also
provides means for managing user identities and accounts. Such a cloud allows the
group leader, in our example, to perform several tasks:
10
Mohammed Hussain, Hanady M. Abdulsalam
1. Create identities for the members who join the group, and delete those who
leave.
2. Specify access privileges of each member at each cloud. For example, some
group members are allowed to access one cloud, while the remaining members
are allowed to access another cloud.
3. Configure single sign-on to all computational and storage clouds. This feature
is important since it enables a member to have one credential to access all
clouds, rather than having different credentials for each cloud.
Figure 6 shows a cloud specialized in anti-malware services. Also, the cloud
monitors the user VMs for spyware, worms and viruses. In our example, the responsibility of such a cloud is to:
1. Prevent malware from being installed on the group’s VMs.
2. Clean the group’s VM from any malware.
An intrusion detection cloud offers security services for cloud users. It monitors
cloud user VMs against intrusion signatures, and alerts users when discovering an
intrusion. The cloud may help the research group in: detecting intrusions and
detecting vulnerabilities (weak points of system).
Cloud users may use the services of auditing clouds to check whether their
cloud provider is fulfilling the contract (service level agreement). For example, if
the cloud provider claims to not disclose the member’s identity information to third
parties, then reports generated by an auditing service may help users to detect
violations of this claim. The duties of the cloud, with respect to the research group,
are to:
1. Allow the group to specify which events to record at their VM.
2. Generate reports to the group, on regular basis, which contains required information.
A security manager cloud may be utilized by cloud users to manage their
security needs. It may suggest security services for cloud users based on their
security requirements. It may be used as a user interface to configure other security
clouds.
4 System Design
To realize QAaaS, we use a service oriented architecture (SOA) for quality services. Cloud providers need to follow SOA principals when designing the quality
attestation services offered to cloud users. For example, cloud providers needs to
design offered services with loose coupling and easy to integrate with other services. The Representational State Transfer (REST) [24] methodology can be used
to design and implement services in an SOA environment. REST is used for the
IBM cloud.
Figure 7 shows a cloud provider that offers two quality attestation services. The
interface part specifies the technical aspects of invoking a service. The description
part explains the purpose of the service and the billing details. The contract part
specifies the functional and non-functional requirements that the service achieves.
Cloud users at other clouds may browse the contracts and descriptions of quality
Software Quality in the Clouds: A Cloud-based Solution
11
Fig. 7 SOA-based design of quality attestation services
attestation services. If the contracts matches user requirements, the users may
subscribe to these quality attestation services.
We recommend using Security Assertion Markup Language (SAML) [25] as
a communication protocol between quality attestation services, that a cloud user
subscribe to, and the VMs of that cloud user. SAML is used to communicate
security assertions among entities
4.1 Example Quality Services
4.1.1 Identity and Access Control Management Services
OpenID [26], a well-known identity management system, can be used for the
clouds. There are some research initiatives on identity and access control for cloud
computing [27, 28]. For example, Yan et al. [28] shows the use of public cryptography and federated identity management for clouds. The approach achieves single
sign-on, which allows cloud users to authenticate at one cloud provider, yet be
able to access their accounts at other providers. Figure 8 illustrates an example
identity and access control service that uses SAML to provide access control management. When cloud users request access to their VMs at a cloud, for example,
Amazon, Amazon then redirects the users to their clouds that are responsible for
managing the identity of these users, say CloudSec. CloudSec authenticates the
users and sends them access privileges back to Amazon. Amazon responds by providing access to requested VMs, based on whether these users are authorized to
access. Users may have VMs not only at Amazon Cloud, but also at IBM and
Microsoft. Identity and access control services provide a mean of single sign-on for
cloud users.
We recommend the usage of SAML and OpenID to implement cloud-based
identity management solution. This is due to their ability to implement federated
identity management.
4.1.2 Anti-malware and Intrusion-Detection Services
Several intrusion detection and anti-malware systems for cloud computing has
been presented [16, 23, 29, 30]. Muttik et al. [16] presented a cloud-based anti-
12
Mohammed Hussain, Hanady M. Abdulsalam
Fig. 8 Users accessing VM via an Identity and Access Control Service
Fig. 9 User VM being checked by an Availability and Throughput Services
malware system. Malware signatures are stored at a designated cloud, while user
machines communicate with that cloud to detect malware. Another cloud-based
anti-malware is CloudAV [29]. Guilbault et al. [23] uses Amazon cloud service to
provide intrusion detection services. A mobile-agent-based an intrusion detection
system for the clouds is presented by Dastjerdi et al. [30]. These work attempts
share the design principal of using cloud computing to design anti-malware systems. Thus, for the purpose of this paper, we do not recommend a specific work.
4.1.3 Availability and Throughput Check Services
Let a web advertisement management organization has moved its services to a
cloud. The organization allows advertisers to submit advertisements, while the
organization places and rotates these advertisements at participating websites.
Should the service of placing advertisements gets disrupted, advertisers loose traffic
to their products, while participating websites looses the revenue from advertising.
To ensure that this scenario does not occur, the organization may rely on the cloud
computing provider to ensure service continuity.
However, this is not enough since the services of the cloud provider may get
disrupted. Using the QAaaS architecture, the organization may design a simple
service that checks for the advertising service. The checking service is placed on
a different cloud, so even if the cloud that is hosting the organization fails, the
organization will still be able to detect the disruption of service. Such a service continuity check can be implemented using a HTTP request and response messages,
repeated once every specific period of time, as shown in Figure 9.
Software Quality in the Clouds: A Cloud-based Solution
13
4.2 Addressing the Quality Requirements
Our architecture addresses the quality requirements of Section 2.1. The services
designed in Section 4.1.1 - 4.1.3 are only examples of services that can attest
the status of some quality attributes at cloud providers. Other quality attestation
services can be designed to verify other quality attributes.
4.3 Communication Limitations
A drawback of our architecture is the potential communication overhead between
clouds that are hosting users’ VMs, and clouds that are offering quality attestation
services. The cost of this communication will be charged against user accounts.
To limit this effect, quality attestation services should be efficient and designed
to minimize overhead. For example, an availability attestation service may be
implemented to send few periodic HTTP requests and responses. Further, benefits
gained from early detection of security vulnerabilities and attacks justifies such an
overhead.
5 Simulation and Experimental Results
In this section we evaluate the performance of our proposed architecture in terms
of cost and time overhead compared to the ordinary existing cloud-based architectures using simulation. The objective of the simulation is to check whether the
designed quality attestation services in the previous sections are to add a significant overhead on cloud applications.
5.1 Testing Criterion
The main criteria by which we evaluate our architecture are the total cost and the
time overhead. We discuss each in more details.
The total cost of hosting applications in a cloud is measured by adding up the
cost of the virtual machines and the cost of data transfer. We also add the cost of
the quality attestation services that we propose in our architecture and compare
their cost with the total cost of regular cloud architectures. The cost of each
quality attestation service center is calculated by adding the communication cost
between this center and the data-center to the VMs cost of the security center.
Our proposed architecture is then evaluated by measuring the cost overhead of
adding quality attestation services to conventional cloud-based computing.
The time that is considered in our experiments is the average response time of
the data center for different number of users/VMs. Our architecture is then evaluated by comparing the average response time of the data center for conventional
could-based architectures to the average response time of the data center when
adding up attestation services as its suggested by the proposed architecture.
14
Mohammed Hussain, Hanady M. Abdulsalam
Fig. 10 Distribution of data centers and user bases
5.2 Simulation Details
CloudAnalyst [31] has been used for our simulation. Before we delve into the details
of the simulator and the simulation, we explain the simulation in a nutshell. A datacenter (DC1) is used to simulate a cloud provider. DC1 hosts a number of services,
which may belong to one or a number of n cloud users, which are simulated as
user-based centers (UBi ), where 0 < i ≤ n. We assume that each service to be
hosted by DC1 has its own VM. The number of VMs is, therefore, always equal
to the number of services that are hosted by DC1.
A number of quality attestation services are provided by a data-center (DC2).
Cloud users may register for these quality attestation services, to monitor the
quality of service at DC1. Each round of the simulation shows the cost that a
cloud user will pay when registering for a specific quality attestation service at
DC2. This is shown by simulating the services at DC1 running while DC2 is
offline, then repeating the simulation with DC2 being online and has one quality
attestation service enabled.
5.2.1 CloudAnalyst Simulator
We simulate our architecture using CloudAnalyst tool by Wickremasingh et. al [31].
CloudAnalyst is a Graphical User Interface tool based on CloudSim toolkit [32].
CloudSim is a framework that models Clouds infrastructures and it has been
used by many research institutions including HP Labs, Duke University (USA),
National Research Center for Intelligent Computer Systems (Beijing, China), and
Kookmin University (Seoul, Korea) [32].
CloudAnalyst basically allows visual modeling of cloud-based infrastructures.
Users can define the components of the infrastructure including cloud data-centers,
user bases, and users workloads in terms of number of requests and sizes of requests.
It also offers the users an option to choose basic Internet characteristics and the
locations of the data-centers/user bases according to the areas defined in Figure ...
(we put the fig of map of cloudsim). This GUI interface separates the simulation
code from the simulation experiments.
5.2.2 Parameter settings
The simulation parameters of the basic architecture on which we base our testing
is described in Table 1.
Software Quality in the Clouds: A Cloud-based Solution
15
Table 1 Parameter Settings
Parameter name
number of data-centers
number of quality attestation services centers
number of user bases
number of peek hours per day
average peek users per UB
average off-peek users per UB
number of users registered in quality attestation services
number of virtual machines (VMs) in data-center (DC1)
number of virtual machines (VMs) in quality attestation services center (DC2)
average number of requests per hour of quality attestation
services data-center (DC2)
data size (in bytes) per request for user bases
data size (in bytes) per request for quality attestation services
data-center (DC2)
executable instruction length per request (in bytes) for quality
attestation services data-center (DC2)
simulation duration
Parameter value
1 (DC1)
1 (DC2)
3 (UB1, UB2, and
UB3) located in three
different regions shown
in Figure 10
6
75000
7500
20
20
20
36
500
500
100
24 hours
As indicated in Table 1, we have one data-center (DC1), one quality attestation
services center (DC2), and three user bases (UB1, UB2, and UB3). We calculate the
cost and measure the time of having/not having DC2 in the architecture design at
different scenarios, in order to compare the results to show the overhead of adding
up quality attestation services.
We define two scenarios for our experiments; in the first scenario, The simulated
quality attestation service resembles an availability check, which is described in
Section 4.1.3. A throughput check has a similar average of requests as an availability check. This is because an availability check sends one request per small period,
while a throughput check sends a large number of requests per large period.
For simplicity of calculations, we assume that DC2 offers availability quality
attestation service for user bases registered at DC1 either each minute, or once
per 5 minutes. This leads to frequencies of 60 requests per hour or 12 requests
per hour respectively. In other words, the number of requests per hour that DC2
sends to DC1 per user base are either 60 or 12 requests.
To test this scenario, we vary the number of user services at DC1 from 20 to
50, 70, and 100, and we assume that all of them has been registered in DC2. The
number of requests from DC2 to DC1 per hour for each user is defined as follows:
for 20 user bases: 1 request is sent every minute for 10 user bases,
is sent every 5 minute for the other 10 user bases
for 50 user bases: 1 request is sent every minute for 30 user bases,
is sent every 5 minute for the other 20 user bases
for 70 user bases: 1 request is sent every minute for 40 user bases,
is sent every 5 minute for the other 30 user bases
for 100 user bases 1 request is sent every minute for 60 user bases,
is sent every 5 minute for the other 40 user bases
and 1 request
and 1 request
and 1 request
and 1 request
16
Mohammed Hussain, Hanady M. Abdulsalam
(a) Total cost with/without DC2 for different
number of services on DC1
(b) Total cost with/without DC2 for different
sizes of packets at DC2
Fig. 11 Cost overhead
In the second scenario, We tend to test quality attestation services that require
larger request sizes, such as identity management and access control services, described in Section 4.1.1. In order to simulate this case, we vary the size of request
packets at the quality attestation services data-center (DC2) from 500 bytes to
2500 bytes and 5000 bytes, with executable instruction length per request from
100 bytes to 500 bytes and 1000 bytes respectively. By varying the sizes of packets
and their executable lengths, we simulate the cases at which DC2 is offering a different category of quality attestation services for each run, namely light, average,
and heavy services. The executable instruction length per request is calculated
based on the default values of the simulator, that are having an executable length
of 100 bytes for a request size of 500 bytes. This gives a ratio of 20%. We use this
ratio to find the executable instruction length for the packets of sizes 2500 and
5000 bytes.
It should be mentioned that the cost is calculated based on the assumed plan
of CloudAnalyst, which is closely related to Amazon plan. CloudAnalyst states
that the cost per VM per hour (1024Mb, 100MIPS) is $0.10 and the cost per 1Gb
of data transfer (from/to Internet) is $0.10.
5.3 Results and Discussion
5.3.1 Cost overhead evaluation
Figures 11(a) and 11(b) illustrate the total cost of simulating our model with and
without DC2. The figures reflect simulating the two above mentioned scenarios,
respectively.
As it can be seen in Figure 11(a), the cost overhead of adding that quality
attestation service is relatively low. It varies from about $90 to $290 per day for
Software Quality in the Clouds: A Cloud-based Solution
17
(a) Average overall response time with/without
DC2 for different number of services on DC1
(b) Average overall response time with/without
DC2 for different sizes of packets at DC2
Fig. 12 Cost overhead
number of services/virtual machines of 20 to 70, respectively, with an average of
about $190. These overhead values evaluate to an average of 2.35% of increase
in cost per day, versus having that quality attestation services. The overhead can
be greatly reduced if DC2 assigns one VM to monitor user all VMs, instead of
assigning one VM to monitor to each. Further, a single VM in DC2 may host a
group of quality services that monitor the VMs of a cloud user. Therefore, a cloud
user with a number of VMs in DC1 and registered for a set of quality attestation
services at DC2 would experience an acceptable level of cost.
Figure 11(b) demonstrates the total cost when varying the packet size of the
quality attestation service on DC2. The figure compares the cost of each setting
with the setting of not having DC2. The obtained values lead to an overhead of
1.14%, 1.18%, and 1.23% for packet sizes 500 bytes, 2500 bytes, and 5000 bytes,
respectively, with an increase average of 1.18%. This shows that for the same
number of users, the cost overhead for heavy quality attestation services does not
differ much from it for light services.
5.3.2 Time overhead evaluation
Figures 12(a) and 12(b) demonstrate the average overall response time of simulating our proposed model with and without DC2 for both simulation scenarios.
The time is calculated in milliseconds.
The results shown in Figure 12(a) evaluates to an average time overhead of
0.09% for having DC2 in the architecture to offer availability quality attestation
services for user bases. Each individual case records an average overall response
time overhead of 0.13%, 0.1%, 0.05%, 0.06% for 20, 50, 70, and 100 user bases
respectively.
18
Mohammed Hussain, Hanady M. Abdulsalam
Figure 12(b) shows the time overhead for varying the size of packets only at
DC2. The case of not having DC2 in the architecture is set to the defeat parameters
mentioned in Table 1, where the packet size for all requests from user bases are
500 bytes. Based of the results of the figure, the time overhead for request sizes of
size 500, 2500, and 5000 bytes are 0.13%, 5.82%, and 13.24% respectively, with an
average of 6.4%. This increase in time overhead is expected since it reflects the fact
that larger executable instruction length per request does logically lead to larger
response times since DC1 would require additional time to fetch instructions with
large sizes.
6 Conclusion
Quality attestation and security are a major concern for cloud-computing applications. This is due to the fact that user data and/or applications are uploaded to
clouds that are owned by service hosts (cloud providers ). Thus, cloud users need
to trust the promises of cloud providers regarding quality of service. Users cannot
assert the quality of service.
This paper presented Quality Attestation as a Service (QAaaS), a user-centric
cloud-based architecture that provides quality and security attestations means for
cloud computing users. The architecture handles cloud computing on its different
levels (SaaS, PaaS, and IaaS). The financial cost incurred by having security and
quality attestation services has been simulated by a cloud simulation tool, CloudAnalyst. Simulation results illustrates that, on average, the overhead of adding a
quality attestation service is just a small fraction of the normal operating cost.
This shows the feasibility of our architecture.
There are many applications that benefits from implementing our architecture.
Cloud computing providers can now provide a new type of service, called quality
attestation. Users of a cloud provider may subscribe to an attestation service provided by a another cloud. Our architecture face some challenges. Finding optimal
designs to minimize quality attestation cost for cloud users and to maximize profit
for attestation providers is one of the challenges. Another challenge is to address
the concern of a cloud provider when third party entities monitor its cloud. These
applications and challenges are research directions that we intend to pursuit in the
near future.
References
1. Buyya R, Yeo C, Venugopal S, Broberg J, Brandic I. Cloud computing and emerging IT
platforms: Vision, hype, and reality for delivering computing as the 5th utility. Future
Generation Computer Systems 2009; 25(6):599–616.
2. Foster I, Zhao Y, Raicu I, Lu S. Cloud computing and grid computing 360-degree compared. Proceedings of the Grid Computing Environments Workshop, IEEE Computer Society, 2008; 1–10.
3. Armbrust M, Fox A, Griffith R, Joseph A, Katz R, Konwinski A, Lee G, Patterson D,
Rabkin A, Stoica I, et al.. Above the clouds: A berkeley view of cloud computing. Tech.
Rep. UCB/EECS-2009-28, EECS Department, University of California, Berkeley 2009.
4. Gottfrid D. Self-service, prorated super computing fun! the new york times 2007. http:
//open.nytimes.com/2007/11/01/self-service-prorated-super-computing-fun.
5. Amazon’s Elastic Compute Cloud (EC2). Amazon. Retrieved July 2010, from aws.amazon.
com/ec2.
Software Quality in the Clouds: A Cloud-based Solution
19
6. Cellary W, Strykowski S. e-government based on cloud computing and service-oriented
architecture. Proceedings of the 3rd international conference on Theory and practice of
electronic governance, ACM, 2009; 5–10.
7. Grossman R, Gu Y. Data mining using high performance data clouds: experimental studies
using sector and sphere. Proceeding of the 14th ACM SIGKDD international conference
on Knowledge discovery and data mining, ACM, 2008; 920–927.
8. Moretti C, Steinhaeuser K, Thain D, Chawla N. Scaling up classifiers to cloud computers.
Eighth IEEE International Conference on Data Mining, 2008; 472–481.
9. IBM Point of View: Security and Cloud Computing. IBM Nov 2009. Retrieved December
2010, from www-03.ibm.com/security/cloud-security.html.
10. Securing Microsofts Cloud Infrastructure. Microsoft May 2009. Retrieved December 2010,
from www.globalfoundationservices.com/security.
11. Okuhara M, Shiozaki T, Suzuki T. Security architecture for cloud computing. FUJITSU
Sci. Technical Journal 2010; 46(4):397–402.
12. Stantchev V, Schröpfer C. Negotiating and enforcing qos and slas in grid and cloud computing. Advances in Grid and Pervasive Computing 2009; :25–35.
13. Lee J, Lee J, Du Wan Cheun S. A quality model for evaluating software-as-a-service in
cloud computing. International Conference on Software Engineering Research, Management and Applications, IEEE Computer Society, 2009; 261–266.
14. Nallur V, Bahsoon R, Yao X. Self-optimizing architecture for ensuring quality attributes
in the cloud. Joint Working IEEE/IFIP Conference on European Conference on Software
Architecture, IEEE Computer Society, 2009; 281–284.
15. Ko RKL, Lee BS, Pearson S. Towards achieving accountability, auditability and trust
in cloud computing. Advances in Computing and Communications, Communications in
Computer and Information Science, vol. 193, Abraham A, Mauri JL, Buford JF, Suzuki
J, Thampi SM (eds.). Springer-Verlag, 2011; 432–444.
16. Muttik I, Barton C. Cloud security technologies. Information Security Technical Report
2009; 14(1):1–6.
17. Barbacci M, Klein M, Longstaff T, Weinstock C. Quality attributes, vol. 6. Carnegie-Mellon
University Software Engineering Institute, 1995.
18. Amazon Web Services: Overview of Security Processes. Amazon Sep 2008. Retrieved December 2010, from aws.amazon.com.
19. Liu Z, Liu T, Lu T, Cai L, Yang G. Agent-based online quality measurement approach in
cloud computing environment. IEEE International Conference on Web Intelligence and
Intelligent Agent Technology, vol. 1, IEEE Computer Society, 2010; 686–690.
20. Patel P, Ranabahu A, Sheth A. Service level agreement in cloud computing. Cloud Workshops at OOPSLA, 2009.
21. Hussain M, Abdullsalam H. Secaas: Security as a service for cloud-based applications. in
Proc. of the Second Kuwait Conference on e-Services and e-Systems, Kuwait University,
2011.
22. Europe L. Launchpad Europe IT Security Index 2009 December 2009. Retrieved October
2011, from www.launchpad-europe.com/images/PR07LPDE-ITSecurityintheCloudFV.pdf.
23. Guilbault N, Guha R. Experiment setup for temporal distributed intrusion detection system on amazon’s elastic compute cloud. Proceedings of the 2009 IEEE international conference on Intelligence and security informatics, IEEE Press, 2009; 300–302.
24. Fielding RT, Taylor RN. Principled design of the modern web architecture. ACM Transactions on Internet Technolgies 2002; 2(2):115–150.
25. Security Assertion Markup Language (SAML). Retrieved Dec 2010, from oasis-open.
org/committees/security.
26. Recordon D, Reed D. Openid 2.0: A platform for user-centric identity management. Proceedings of the Second ACM Workshop on Digital Identity Management, ACM Press,
2006; 11–16, doi:http://doi.acm.org/10.1145/1179529.1179532.
27. Bertino E, Paci F, Ferrini R, Shang N. Privacy-preserving digital identity management for
cloud computing. IEEE Data Engineering Bulletin 2009; 32(1):21–27.
28. Yan L, Rong C, Zhao G. Strengthen Cloud Computing Security with Federal Identity
Management Using Hierarchical Identity-Based Cryptography. Proceedings of the first
International Conference on Cloud Computing, Springer-Verlag, 2009; 167–177.
29. Oberheide J, Cooke E, Jahanian F. Cloudav: N-version antivirus in the network cloud.
Proceedings of the 17th Conference on Security Symposium, USENIX Association, 2008;
91–106.
20
Mohammed Hussain, Hanady M. Abdulsalam
30. Dastjerdi AV, Bakar KA, Tabatabaei SGH. Distributed intrusion detection in clouds
using mobile agents. Advanced Engineering Computing and Applications in Sciences,
International Conference on, vol. 0, IEEE Computer Society, 2009; 175–180, doi:http:
//doi.ieeecomputersociety.org/10.1109/ADVCOMP.2009.34.
31. Wickremasinghe B, Calheiros RN, Buyya R. Cloudanalyst: A cloudsim-based visual modeller for analysing cloud computing environments and applications. Proceedings of the
IEEE International Conference on Advanced Information Networking and Applications.
32. Calheiros RN, Ranjan R, Beloglazov A, De Rose CAF, Buyya R. Cloudsim: a toolkit
for modeling and simulation of cloud computing environments and evaluation of resource
provisioning algorithms. Journal of Software Pract. Exper. January 2011; 41(1).