Approach

The ARTIST approach focuses on non-cloud software Applications. Through the usage and extension of MDE approaches ARTIST will ease the migration of non-cloud software applications to new computing paradigms like service oriented architectures and cloud solutions. The term “non-cloud software” in ARTIST includes any existing software product already developed and compliant with the specifications of the initial usage and intentions. 

In the context of the ARTIST project we intend to develop the tools and methods to overcome significant obstacles and reduce the costs and risks associated with the migration of non-cloud software Applications to new IT paradigms like SOA-based technologies and Cloud platforms. In order to do so we will first assess, plan, design, then perform and finally validate and verify the migration of non-cloud software systems into different target framework(s), but with the same or enhanced functionalities and behaviour.


 

feasibility assessmentapplication discovery and understandingmodernizationmigration artifacts and evolutionopen source packagetarget environment specificationImage Map

In detail the major goals are to:

  • Develop an innovative and combined technical and business analysis on the maturity and prospect of the non-cloud software application. The major target of this process is to identify in advance the perspectives of the migration and pre-evaluate the performance and business benefits with relation to the cost of the process. For the first time, the business value will be directly attached to the technical performance.
  • Provide a large scale model-based approach for representing the source and target applications and infrastructures/platforms:
    • Automatic or semi-automatic analysis of the software artefacts (i.e.; source code, configuration files, models, documentation, etc) composing the non-cloud software application and extraction of corresponding models (e.g.; technology-specific models for Java and .NET, technology-independent models such as OMG KDM ones, higher-level models such as OMG UML ones, etc), in a reverse engineering process that has the aim to extract all necessary and reusable information from the source non-cloud software application and to highlight its overall architecture and content
    • Model-driven approach for encapsulating the parameters of the application for migration to a SOA/Cloud based environment, thus building the target form of the non-cloud software through forward engineering, by taking under consideration the new requirements that emerge from the specificities of this new ecosystem, like notably security and multi-tenancy issues.
    • Model-driven transformation from the source application to the target one, together with identification of the lacking functionality, exploration of 3rd party offerings for compensating the latter and concretization of the missing parts that need to be implemented from scratch, thus minimizing the effort needed and exploring different capabilities of integration.
    • Definition and/or extension of advanced PaaS/IaaS metamodels, taking into consideration the specific requirements of the non-cloud software applications in terms of service offerings, capabilities and infrastructure performance
  • Create a unified performance modelling framework that will create:
    • Models that are used to exploit/expose the parallelism of the application and can lead to a scalable transformation of the monolithic implementation or improvement of the underlying design.
    • Definition of performance models (using dedicated metamodels and/or UML profiles) for the various types of applications that can serve as a bridge between the target software and the target infrastructures. Through automated mechanisms, both of them will be compared against these models in order to choose the proper target infrastructure for each deployment, but also exploit pre-existing knowledge regarding the varying behaviour. For this reason, profiling tools will be offered for performing this matching even for unknown applications.
  • Identify dynamic deployment methodologies. For each non-cloud software application, different possibilities of the target software, based on different policies, performance optimizations or security and business issues will be created. Through the creation of multiple versions of the same software and the identification of different deployment patterns we will be able to achieve the optimal target setup (either in terms of software version or infrastructure conditions). For this reason, models that describe different usage patterns and interactions between the distributed components and the infrastructures will be created and used through the application lifecycle and especially during the deployment selection.
  • Enforce reusability of the (modelling) artefacts produced during the migration process through the usage of a repository. Every kind of artefacts produced in the previous phases (such as models, metamodels, UML profiles, transformations, XML files, documentation, etc.) will be committed in a repository with their related metadata in order to be available for the future. This may affect the evolution capabilities of the non-cloud software itself, by identifying the necessary delta needed in order to achieve the upgrade to a new version. Thus minimal changes may be achieved and much faster update process. Moreover, these artefacts will be available for every other non-cloud software application that needs to go over the same process, so that duplication of effort is avoided for the same types of transformations or additions.
  • Implement an innovative and thorough testing and continuous validation process, that will span across all layers of the multilevel ecosystem, taking into consideration the specificities of the environment, like the incorporation of 3rd party APIs or components (e.g. monitoring/accounting from the PaaS/IaaS provider) or the possibility for continuous evolution of the software and its subcomponents. For this reason, a three step approach will be followed, starting with the offline testing of the overall system, continuing with a runtime online validation each time an event alters the system (e.g. updated version of a component, external API etc.) and completing with a detailed error tracing mechanism.
  • Enhance, enforce and promote the usage of an integrated certification model for Cloud application providers. Therefore, an application certified under this model will ensure that the highest exigencies in terms of business, operation and service continuity are met.