Utilizing Computational Intelligence to Support Decision-making in Distributed Software Systems and Cloud-based Environments - Christoforou, Andreas (Department of Electrical Engineering, Computer Engineering and Informatics, Faculty of Engineering and Technology, Cyprus University of Cyprus, 2020)
The design and development of distributed software systems appears nowadays as a prominent way to provide modern, reliable and functional systems. The growth of such systems was greatly supported by the development and rapid expansion of Cloud Computing (CC), the latter offering a variety of on-demand services, thus alleviating the need to purchase and maintain expensive or sophisticated hardware and/or development tools, and supporting efficient data processing and storing. Cloud Computing has been established as an attractive development environment on which software development companies can deliver and deploy their services in response to the increasing demands. Inevitably this has brought great challenges in the software engineering field, mostly for setting up a new software development environment that simplifies the procedure of building and hosting applications on the Cloud. Despite the great number of solutions proposed in recent years, the continuous evolution and growth of the demands and services offered, the corresponding research challenges in this area remain untackled. These challenges revolve mainly around three axes: delivery of the software system on time, within budget and with a minimum acceptable level of quality. The persistent incorporation of numerous new technologies, makes Cloud infrastructure management highly complex, with multi-conflicting factors affecting it. Computational intelligence and machine learning techniques appear to have great success when dealing with complex and multifaceted problems. Aiming to investigate a series of research issues and problems in software engineering for the Cloud, this thesis proposes the use of various computational intelligent techniques and approaches which are modified and extended to meet specific challenges of the problem in hand. A special reference is made to techniques based on Artificial Neural Networks, Fuzzy Logic and Evolutionary Computation, which seem to dominate the relevant literature yielding promising results. The contribution of this thesis may be analyzed into six research steps. The first step introduces a novel, integrated analysis framework based on Multi-Layer Fuzzy Cognitive Maps models, as well as a series of actions to gather useful static and dynamic information. This framework allows the representation of problems described by multiple and intertwined factors, as the ones dealt with in the present thesis. Moreover, the proposed framework provides the means for performing advanced dynamic analysis in the form of what-if scenarios. In the second step, research is focused on the analysis and study of the factors that affect the adoption of Cloud services. Four different approaches based on Fuzzy Cognitive Maps and Influence Diagrams are proposed in an attempt to support the decision-making process. The third step extends the aforementioned analysis framework with the incorporation of an evolutionary approach based on a novel formulation proposed. Next, the fourth research step involves the construction of a Multi-Layer Fuzzy Cognitive Map to support decision-making towards microservices architecture migration. The fifth step proposed a novel process for the decomposition of existing software components and ultimately their partial or full replacement of their functionality parts with a number of suitable and available microservices. Finally, the sixth step suggests a new resource management approach in a Function-as-a-Service platform. The proposed approach is based on Multi Objective Genetic Algorithms and aims to solve the problem of finding a set of near-optimal solutions that support developers in a Function-as-a-Service environment to select an efficient resource allocation scheme with respect to cost and time. All of the proposed approaches and models are evaluated both theoretically and practically over real-world case studies. In each case the experimental process is designed, executed and analyzed followed by discussion of the results.
Keywords: Software Engineering; Cloud Computing; Distributed Systems Development; Service Oriented Architecture; Microservices Architecture; Serverless Computing; Computational Intelligence; Decision Support; Υπολογιστικό Νέφος