Thursday, September 30, 2021 - 07:00
  • Share this article:

The SmartCLIDE research project aims to bridge the gap between on-demand business strategies and the lack of qualified software professionals by creating a new cloud native IDE that makes it easier to develop and deploy cloud services. The project is funded by the European Union’s Horizon 2020 research and innovation program, and involves a consortium of 11 partners from Germany, Greece, Luxembourg, Portugal, Spain, and the United Kingdom.

SmartCLIDE Targets Key Cloud Challenges

Cloud computing is considered to be the main enabler for digital transformation because it allows organizations to disengage their growth from the need to acquire more powerful infrastructures. When companies move creation or composition of new services to their clouds, they can:

  • Create new services from scratch
  • Reuse code to compose new services 
  • Adopt new types of pricing models 

However, creating and composing new cloud services in the cloud has increased in complexity, slowing progress towards digital transformation for businesses and public administrations. The SmartCLIDE project addresses limitations in each of the areas listed above to help increase adoption of cloud services (Table 1).
 
Table 1: SmartCLIDE High-Level Objectives

Limitation

SmartCLIDE Goals

Creating new services from scratch is time-consuming, complex, and expensive.

  • Enable faster and more effective development of cloud and big data services 
  • Provide deeper insights into how cloud and code work

Reusing code to compose new services is restricted by non-uniform classifications and documentation, as well as quality of service (QoS) and security compromises.

  • Provide an easier and more secure way to reuse quality code
  • Increase trust and facilitate reuse of services

Adopting public cloud pricing models makes it very difficult to predict and control costs.

  • Be a code learning tool 
  • Increase understanding of the costs of big data and cloud

 

SmartCLIDE overcomes the limitations listed in Table 1 with an IDE that:

  • Helps creators of cloud services by enabling collaborative discovery, creation, composition, testing, and deployment of services and applications in the cloud.
  • Allows the discovery of services to facilitate composition and deployment of new services for staff with no previous experience in programming or administering systems and infrastructure.
  • Enables collaboration among different stakeholders.
  • Uses a deep learning engine to automatically categorize available resources before presenting them to end users.
     

Benefits for Developers and the Entire Team

The SmartCLIDE IDE facilitates developers’ work through automation and pre-established commands that increase the efficiency of tasks such as version deployment, security tests based on established acceptance criteria, and software development based on the highest quality standards.

The IDE helps to eliminate potential dependencies, leading to improved self-organization and increased end-to-end accountability of the entire development stack. As a result, it allows developers to deliver quality software, faster, even if they are novices with little understanding of the underlying mechanisms of cloud-based applications.

While developers are the main users of the IDE, SmartCLIDE adds value to the entire team, including product owners and managers with some technical skills, the project, and end users who use the tool directly and indirectly (Figure 1).

Figure 1: SmartCLIDE Value Across the Organization

SmartCLIDE Figure1

Here’s a brief summary of the value SmartCLIDE provides:

  • Team value: Autonomous teams with end-to-end responsibility deal with the full development stack. They must be able to select the best options for deploying applications and making them available to end users despite the associated complexity and many available technologies.
  • Project value: SmartCLIDE adds value to the team, and consequently to the project, through integration with version control systems, continuous integration and continuous development (CI/CD) tools, quality management (QM), and other tools.
  • End-user value: The end user benefits directly and indirectly from the SmartCLIDE IDE. For example, because the team has greater control over what it produces and makes available to users, the tool’s perceived value of it increases. In addition, changes to the service can be made in a more agile and effective way within product development cycles.

SmartCLIDE IDE Features Simplify Development and Deployment

The SmartCLIDE IDE is based on Eclipse Theia, which provides all of the tools necessary for development. Theia consists of a rich interface with a vast range of features that accelerate deployment of cloud services, improve their quality, and expand the skills of novice and experienced developers.

 The main features of the SmartCLIDE IDE include:

  • Life cycle support. Software follows a life cycle, from feature specification to solution deployment. SmartCLIDE provides the specific tools required at each life-cycle stage. For example, at the development stage, SmartCLIDE provides data sources, data transformations, graphics visualization artifacts, and general-purpose abstractions and patterns that can be combined to implement features.
  • Insightful source code monitoring. SmartCLIDE includes visualization features that help developers gain deeper understanding of the source code. It dynamically shows the meaning of expressions or code flow at low levels of granularity. It also allows developers to compare different software states, perform state changes that are reflected dynamically, and create new abstractions that can be easily reused.
  • CI/CD integration. SmartCLIDE enables integration with widely used CI/CD tools such as GitHub and GitLab.
     

The SmartCLIDE IDE also includes innovative features that leverage the power of a deep learning engine:

  • Development by demonstration and text notation. SmartCLIDE automatically retrieves resources that are considered relevant for the new development. The end user can use text notation to enhance the description of the retrieved behavior or algorithm. The deep learning engine then uses these notations to suggest programmatic solutions that result in the desired output.
  • Automatic software classification. The deep learning engine automatically identifies and classifies existing and new software abstractions that can be visualized in the IDE for reuse based on the purpose or behavior defined by the end user.
  • Continuous integration and deployment assistance. End users are guided through each life cycle stage, ensuring the code generated has been properly tested, accurately integrated within the corresponding development branch, and automatically deployed in the selected cloud service. These capabilities align with the end-to-end responsibilities associated with the DevOps philosophy.

A demonstration of the SmartCLIDE IDE is expected to be available in late 2022 (Figure 2).

 

SmartCLIDE Figure 2


 

image (4) smartclide


This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 871177.


About the Author

Sebastian Scholze

Sebastian Scholze

Sebastian Scholze studied computer science at the University of Bremen. Since 2000, he has worked as a scientific staff member at ATB. He is involved in several research projects related to the European Union’s Fifth Framework Programme, manages international research projects, and actively researches context-aware approaches and ontologies. Sebastian is currently the coordinator of the Horizon 2020-funded ENCORE and SmartCLIDE projects. He has published more than 50 articles on research topics, and is involved in a number of open source projects.