The main objective of SmartCLIDE is to propose a radically new smart cloud-native development environment, based on the coding-by-demonstration principle, that will support creators of cloud services in the discovery , creation, composition, testing , and deployment of full-stack data-centered services and applications in the cloud. SmartCLIDE will provide high levels of abstraction at all stages (development, testing, deployment, and run-time) as well as self-discovery of IaaS and SaaS Services.
SmartCLIDE will provide several categories of abstractions:
- at development stage, SmartCLIDE will provide abstractions on data transformations or processing;
- at testing stage, mechanisms to visualize flow and status or artifacts to automatically test the expected behavior;
- at deployment stage, abstractions of physical and virtual resources;
- or at runtime, mechanisms to monitor the performance and operation of the service.
The cloud nature of the environment will enable collaboration between different stakeholders, and the self-discovery of IaaS and SaaS services and the high levels of abstraction will facilitate the composition and deployment of new services to nontechnical staff (with no previous experience on programming or on the administration of systems and infrastructure). Equally, hiding the complexity of the infrastructure, and adding intelligence to this layer, will allow selecting the most adequate infrastructure services in each moment.
SmartCLIDE will allow SMEs and Public Administration to boost the adoption of Cloud solutions, being validated at one solution-oriented to Public Administration (Social Security System) and three different IoT products of software development SMEs within the consortium.
Benefits of SmartCLIDE for
the targeted users
The aim of SmartCLIDE is to provide a tool to empower end-users with limited technical knowledge in the specification, development, testing, deployment, and operation of data-intensive applications in the cloud. SmartCLIDE introduces several benefits for the different stakeholders within the service creation lifecycle:
It lowers the entry-level to programming activities to non-technical staff
SmartCLIDE will allow end-users to easily prototype features (that can be enhanced later on by developers). It also provides a powerful training tool for novel developers to understand the underlying mechanisms of data-intensive applications
Increase the reusability of services
SmartCLIDE will allow reusing existing and ad-hoc created microservices, data, control structures, or operations abstractions.
Improvement of the transparency, readability, and comprehensibility of software
SmartCLIDE will implement several features that will improve the readability and comprehensibility of software:
Increase quality and security levels
At design time, when the user defines the output of the program, she will make use of domain-specific languages like Gherkin, which will enable the full automation of acceptance tests making use of natural language. SmartCLIDE will also make available full abstractions of other testing frameworks at testing stage, enabling coders to deploy containers with testing frameworks for testing purposes in seconds.
Increase productivity levels
Improved reusability, higher comprehension of the underlying mechanisms of soft-ware, and full control over the lifecycle (from specification to deployment) will boost the productivity of development teams, even in the most complex contexts.