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).
© Copyright 2026 Paperzz