REMICS was participating at European Conference on Software Architecture, This symposium will be held in Polytech'Montpellier in conjunction with the three co-located conferences (ECMFA, ECOOP and ECSA)
Legacy2Cloud, Franck Barbier, Imad Bernoussi, tutorial in Research Project Symposium in ECMFA'2013
In the overall Model-Driven Development (MDD) problematics, Platform-Independent-Models (PIMs) are transformed into Platform-Specific Models (PSMs) weaving PIMs with PDMs (Platform Description Models).
With the emergence of cloud platforms, business analysts simply expect the possibility of designing cloud applications based on PIMs, which represent domain concepts, business requirements... Traditionaly, PIMs are expressed in UML or, in more subtle cases, in a tailor-made DSML (Domain-Specific Modeling Language).
Concomitantly, software architects design PDMs. PDMs match to platforms. With regard to the hereterogeneity of cloud APIs, one PDM correspond to a given cloud platform, a cloud platform version and/or a cloud platform configuration, etc. PDM design is a complex cutting-edge technology with support in open-source products (PDMs are "cartridges" in AndroMDA) or in commercial products (PDMs are BSPs in Blu Age®). Research on MDD + cloud is nowadays very open including the possibility of generating towards neutral APIs like jclouds.
However, the approach above described may be viewed as “theoretical” in the sense that hands-on software development is greatly depending upon dinausor legacy information systems whose linking to the Cloud is subject to a lot of inertia. One may think in terms of interoperability between old systems and new cloud-based systems with, probably, heavyweight resulting architectures. One may differently think in terms of software modernization with the help of MDD. However, the elaboration of models is not natural and easy for average software people in industry, greatly slowing down the penetration of MDD.
In Legacy2Cloud, PIMs are elaborated from legacy code (e.g., COBOL) and associated legacy frameworks (Pacbase, CICS, mainframe OSs from the ‘80s…). Standards exist for this specific purpose: Abstract Syntax Tree Metamodel (ASTM) and Knowledge Discovery Metamodel (KDM). In this context, Reverse modeling is the model transformation phase in which the legacy code is first represented as ASTM models. Next, it is represented as KDM models to capture the legacy system semantics of data, execution flows, business rules, GUIs, architecture, components, services... The ultimate model is a UML model showing the legacy system as a PIM. The Forward engineering phase is the weaving of this PIM with a PDM to compute an executable PSM deployable on a given cloud platform, a cloud platform version and/or a cloud platform configuration...
This tutorial exposes research and associated results obtained in the ReMiCS FP7 ICT European STREP project (www.remics.eu). ReMiCS standing for "Reuse and Migration of legacy applications to Interoperable Cloud Services" tackled the Legacy2Cloud problematics. This tutorial also exposes and illustrates partial implementation of ReMiCS results in the BLU AGE® tool chain, which both encompasses Reverse modeling and Forward engineering. A BLU AGE® demo. is planned in the tutorial based on an industrial case study.