Developing a user-centric distributed middleware for SLA monitoring in SaaS cloud computing using RESTful services

One of the most important discussions in the cloud computing field is user satisfaction with the associated services. It is important to maintain trusted relationships between clients and providers, for customers who pay subscriptions to receive these services in a timely and accurate manner. Despite the overwhelming advantages of cloud services, clients sometimes have problems in service outage and resource failure. This is due to the failures that can happen in cloud servers, which cause outages to the received services. For example, the failure of Microsoft Office 365 on 18th of January 2016, caused email disruption which lasted for many days. New measures are needed to ensure that the contract signed between the two parties, known as a Service Level Agreement (SLA) has been adhered to. Measuring the quality of cloud computing provision from the client’s point of view is, therefore, essential in order to ensure that the service conforms to the level specified in the agreement; this is usually referred to as Quality of Experience. In recent years, there has been an increase shift in using Simple Object Access Protocol (SOAP) to Representational State Transfer (REST) technology as an alternative technology in cloud applications APIs development. However, there is a penchant in most of cloud monitoring solutions to use SOAP protocol in managing the monitoring process. This trend has drawn the attention to the need for using REST technology in transferring the monitored data between the provider side and the client side. This thesis addresses the problem of monitoring the quality of Software as a Service from the users’ perspective, and the need for developing a lightweight middleware for delivering the monitored data in Software as a Service cloud computing. The aim of this research is to propose a user centric approach for monitoring Software as a Service in cloud computing, and to reduce the overhead caused by the monitoring process. In order to achieve this aim, a user centric middleware capable of monitoring the Quality of Experience has been developed. The developed middleware is a Service Oriented middleware which uses RESTful web services and provides the monitoring process as an add-on service. A new approach was developed for embedding the SLA parameters in REST services through extending the HTTP messages and exploiting the HEAD and OPTIONS methods to transmit the monitored data and to send notifications about anySLA violations. This reduces the need to exchange extra monitoring messages between the two parties, and hence reduces the communication overhead. Furthermore, the estimation of the user satisfaction was implemented by developing a decision making approach to estimate the Quality of Experience value and to predict the effect of the SLA parameters and the Quality of Service (QoS) on the user satisfaction. Fuzzy logic techniques were employed in the decision making process. The developed middleware is called MonSLAR, for Monitoring SLA for Restful services in SaaS cloud computing environments. The middleware was implemented using the Java programming language, and tested successfully in a cloud environment to prove the proposed solution’s capability of transmitting the data using the REST methods, in addition to providing automated and real time feedback. MonSLAR uses a distributed monitoring architecture, which allows SLA parameters to be embedded in the requests and responses of the REST protocol. The proposed middleware was evaluated by measuring the overhead caused by using REST technology in terms of response time and message size and compared to existing techniques. The results revealed that the message size overhead of using REST is approximately five times less than the message size overhead caused by SOAP. Furthermore, the response time overhead of the monitoring process is comparable to the overhead caused by the available monitoring frameworks. To sum up, the proposed middleware will help to strengthen the relationship between the client and the provider by using real time notifications to the client about any degradation in the cloud services, using a lightweight middleware.