D6.1 Analysis of required functionalities and available public cloud services
Service Oriented Architecture (SOA) is an architectural style underlying the development of applications composed of a set of software components, known as services, that can be invoked through platform-independent interfaces and interact through standard communication protocols. A service encapsulates a given functionality made available by a service provider over the network through standard published interfaces to deliver a result to a service consumer (or service client). SOAs provide support for service composition, service management, orchestration and coordination, service transaction, security, that are the set of concepts, principles, and methods representing Service Oriented Computing (SOC). Service composition is one of the most important commodities of SOA, since it allows delivering complex business processes as software applications composed of loosely-coupled activities coordinated to work together.
With the increased spread of SOA-based applicatons, SOA testing is becoming a very hot topic both in research and business/commercial fileds. The testing activity shall shift from test case hand-writing, manual configuration of test environments, manual scheduling of test runs and eyeball assessment of test outcomes – all these activities being conducted by professional testers – to model authoring by designers and architects relieved from the burden of test generation, scheduling, execution and arbitration, until the production of the test report.
The MIDAS project objective is to provide a testing facility putting into operation a substantial collection of functional (unit testing, choreography, orchestration and composition testing) and security (fuzz, security policy compliance) testing methods. Moreover, the automated scheduling and even the dynamic automated test generation shall be managed by probabilistic (Bayesian) inference methods.
The MIDAS SOA testing automation facility will be designed and architected according to a SOA-based approach, and provided as an integrated Testing Platform as a Service (TPaaS) framework available on demand, i.e. on a self-provisioning, pay-per-use, elastic basis. For this reason, the MIDAS TPaaS will be deployed on a Cloud and accessible over the Internet as a multi-tenancy SaaS (Software as a Service) from an end user perspective. MIDAS TPaaS will provide companies and end users with services to design, deploy and run their test cases without disclosing any information to the Cloud provider, and without having to program the whole test procedures from scratch. The costs saving and easy accessibility of Cloud’s extremely large computing resources will make the MIDAS testing facility usage available to geographically distributed users, executing wide varieties of user scenarios, with a scalability range previously unattainable in traditional testing environments.
In order to properly make the right decisions concerning both the architectural design and the possible implementation strategies to adopt for the MIDAS TPaaS deployment on the Cloud, an activity started, according to the schedule of the MIDAS project, aiming at the definition, deployment, and maintenance of the most suitable Cloud platform that can support MIDAS required functionalities. The first results of this activity are reported in this deliverable, dealing with the analysis of the MIDAS TPaaS required functionalities with respect to their deployment on the Cloud, and an analysis of available public Clouds in order to evaluate their suitability for the Cloud-enabled MIDAS facility “proof of concept” implementation.
Firstly, an overview of the main principles characterising Cloud computing is presented, highlighting its main benefits that are increasingly boosting Cloud popularity. The overview intends to provide a general understanding of the main challenges that have to be addressed when deploying a SOA-based application on the Cloud, so it was conducted from a Cloud developer point of view. The different types of Clouds deployment models (Private, Community, Public, Hybrid), together with the different Cloud service delivery models (SaaS, PaaS, IaaS) are described to highlight their main features, in order to drive decisions concerning which model to adopt within the MIDAS project.
Then a preliminary design of the MIDAS reference architecture is reported, identifying its main functionalities, their organization in logical tiers (Front-end tier, Core tier, and Back-end tier), and the fundamental use cases that provide useful information related to the necessary Cloud support. We describe possible implementation scenarios for the MIDAS TPaaS on the Cloud, both according to a PaaS and IaaS models, to provide a sound technological background to establish the evaluation criteria used to analyse a meaningful set of existing public Cloud platforms suitable for MIDAS. In fact, an overview over the state of the art of Cloud computing technologies and solutions was carried out to make the MIDAS consortium aware of the Cloud infrastructures available on the market, providing relevant features to support the development of the MIDAS testing platform.
The analysis considered technological issues and features, but also costs and benefits to evaluate economic sustainability aspects. The performed analysis helped to establish the right technological basis to drive the selection of a reference public Cloud platform suitable to meet the identified MIDAS TPaaS requirements and constraints.
The analysis and the associated comparison tables of the considered public Cloud platforms evaluated with respect to the identified MIDAS relevant criteria points out that a Cloud IaaS service delivery model is the preferred one for MIDAS, and in particular that the Amazon EC2 Cloud infrastructure is the best candidate solution, offering the more convenient compromise between costs and offered features.