Morphemic Cloud Application Models Design Alessandra Bagnato Etienne Brosse Kaïs Chaabouni Softeam Software dept. Softeam Software dept. Softeam Software dept. Softeam (Docaposte Group) Softeam (Docaposte Group) Softeam (Docaposte Group) Paris, France Paris, France Paris, France alessandra.bagnato@softeam.fr etienne.brosse@softeam.fr kais.chaabouni@softeam.fr Abstract— The Morphemic H2020 project covers several forecasted metrics about usage and workload level, in order to features from modelling cross-cloud applications, continuous adapt the application in the most optimal way by predicting and autonomous optimization and deployment and providing the violation of the requirements as opposed to reactive access to several cloud capabilities. This demo paper describes approach that is reconfiguring the application after the the MORPHEMIC CAMEL Designer tool responsible of the violation of the requirements. Therefore, the objective is to Cloud Application Modelling and Execution Language forecast future resource needs and possible deployment (CAMEL) design for the modelling Environment Modelio. configurations. This ensures that adaptation can be done CAMEL Designer is an open source module for graphically effectively and seamlessly for the application users. creating, editing and exporting CAMEL Models in XMI format. Section II of the paper describes the camel designer Keywords— Cloud, Fog, edge and multi-access computing and networking, Open-source projects, open standards. module while Sections II – VIII describe the various steps of our demo. I. INTRODUCTION II. CAMEL DESIGNER MODULE Modelling and orchestrating heterogeneous resources and polymorphic applications for holistic execution and CAMEL Designer [3] is an open source module for adaptation of models in the cloud, the Morphemic Project [1] graphically creating, editing, and exporting CAMEL Models covers areas including cloud computing; big data and open in an ergonomic, intuitive, and user-friendly environment. data; and artificial intelligence. 12 partners from 7 countries CAMEL Designer module is used via Modelio [4] tool are developing the innovative MORPHEMIC platform, which community has all the necessary tools for creating the will provide a unique way of adapting and optimizing cloud CAMEL model and all its sub models and components. computing applications for future specialized hardware configurations like GPUs, TPUs, AI chips, FPGA, HPC. Modelio [4] is a modelling tool for many standards for MORPHEMIC is an extension of the MELODIC multi-cloud System Engineering, Software Development and Enterprise platform and is a single universal platform that facilitates and Architecture. For instance, Modelio includes the standard optimizes deployment and management of applications cross- Business Process Model and Notation (BPMN) for modelling cloud [2]. business processes, the standard Unified Modeling Language (UML) and the ArchiMate language for Enterprise MORPHEMIC introduces two novel concepts to cloud Architecture. Modelio offers services and diagrams for computing which will utilize cloud computing resources in the modelling and can assist with model auditing and consistency most optimal way with the goal to simplify Cloud application verification. Furthermore, for additional functionalities that modelling. require the extension of Modelio modelling capabilities or extending its metamodels, the Modelio Module API is used to Polymorphing architecture will allow for dynamic create a new module to be deployed into a Modelio project. adaptation of the architecture of application to the current workload. When a component can run in different technical Fig. 1 illustrates how CAMEL Designer is implemented as forms (i.e. in a virtual machine (VM), in a container, as a big module to be deployed on Modelio. CAMEL Designer data job, or as serverless components, etc.), depending on the module includes a UML profile for the CAMEL Language application’s requirements and its current workload, its which is implemented by associating stereotypes based on components could be deployed in various forms and in CAMEL concepts to different UML meta-classes such as different environments. This allows to maximize the specified “Class”, “Package”, “Attribute”, etc. These elements of the utility function of the application deployment such as CAMEL Profile are created by additional “Commands” optimizing deployment cost, and to satisfy the specified provided by CAMEL Designer module. In addition to these constraints such as the accepted response time or the resource commands, the user can design graphically with the diagram requirements. Thus, this will change the component type tools and with the help of a property page widget for accessing (VM, container, serverless, GPU or FPGA) based on the and editing model elements properties. Further details about optimal found solution. the modelling environment of CAMEL Designer are provided in the next section. Moreover, CAMEL Designer invokes the Proactive adaptation is simply a proactive approach that CAMEL DSL API for parsing CAMEL files during import allows the reconfiguring of the application based on and serializing CAMEL files during export. Copyright © 2021 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). Fig. 3: Create a CAMEL Model Command Fig. 1: CAMEL Designer Module and Modelio Overview After having successfully created a CAMEL model, you can then create sub-models on CAMEL model root by clicking on the tools displayed on the palette tools on the left Fig. 2 illustrates the modelling environment provided by of the CAMEL Model diagram. For example, Fig. 4 shows the Modelio which contains a model explorer depicted on the left palette tools on the left where it is used to create the side of Fig. 2. This model explorer shows the hierarchy of the Requirement Model and the Type Model. persisted model elements and allows to create, delete and copy/paste other model elements. On the right side of Fig. 2, the diagram represents how the elements in the model are represented and linked together. In addition, a set of tools is provided for each diagram to allow the user to modify the model such as adding new elements, properties, dependencies or just customizing the visual appearance of the elements illustrated in the diagram. Moreover, other commands can be called directly on elements from the model explorer by right clicking the selected element and executing the command which may bring changes to the model. Finally, on the bottom of Fig. 2, the properties section displays a list of properties of the selected element and allows the user to edit these properties. Fig. 4: CAMEL Model Diagram Tools IV. CAMEL DEPLOYMENT SPECIFICATION The first step of starting with CAMEL Designer is to create and open Modelio/Camel project with a CAMEL model containing a Deployment model and an associated Deployment diagram. Once the CAMEL model is initialized, the user can create a Deployment model and diagram as depicted in Fig. 5. By using the tools, as shown in Fig. 5, the deployment model can be enriched with dedicated deployment concepts. Fig. 2: Modelio Environment for CAMEL Designer III. CAMEL MODELS MANAGEMENT Fig.5: Simple CAMEL Component deployment The first step of starting with CAMEL Designer is to V. CAMEL REQUIREMENT SPECIFICATION create and open a Modelio project and deploy CAMEL Designer module into the project. To create a new CAMEL The user can create a Requirement model and diagram as Model, simply right click a package where you wish to create depicted in Fig. 6. By using the tools provided by the your CAMEL model and select the command “Create a new CAMEL Requirement diagram, the user can specify the CAMEL Model” (see Fig. 3). In a similar way, this applies to CAMEL concepts related to its Requirement aspects. These importing existing CAMEL Models files on CAMEL or XMI aspects could include the definition of several requirements, format. As a result, a new CAMEL Model is created, and a their grouping inside a “RequirementSet” and finally their new diagram is opened to edit the newly created CAMEL Model. reference by a software component for example, as depicted in Fig. 6. VII. CAMEL MODELS IMPORT/EXPORT After completing the design of the CAMEL Models, the model can be exported in CAMEL or XMI format, by right clicking on the model explorer and use the command “Export CAMEL Model” (see Fig. 10). Then a dedicated window is opened to help to specify the name and the location of the exported file. Fig.6: Example of requirement specification VI. CAMEL METRIC SPECIFICATION To create an Optimisation specification, several CAMEL concepts need to be specified. First, information needs to be defined in order to be collected. For example, Fig. 7 depicts the definition of a “Template” named CardinalityTemplate. This latter is based on a cardinality “Measurable Attribute” and is a positive integer (ZeroToHundredInteger) representing the number of instances. Fig. 10: Export CAMEL Mode VIII. CONCLUSIONS The paper presented the CAMEL Designer module and its main features for the Modelio Modelling tool [4] at the current time of the MORPHEMIC project, the module can be downloaded under open source licence and it is available on the Modelio Research team GitHub page at [3]. The developed module will be applied in the next months to MORPHEMIC project’s use cases [1]. In particular ICON’s Computational Fig. 7: CardinalityTemplate Fluid Dynamics (CFD) products and expert services that support engineering analysis for a wide range of applications Then an AppActCardinality “Variable”, see Fig. 8, in the Automotive, Aerospace, Buildings, Health, Energy, extends the predefined CardinalityTemplate “Template”, is Motorsport, Consumer Products and Space, IS-Wireless applied to the Component-App “Software Component” to (ISW) use cases showing a 5G software defined base station count the number of instances of this particular software and Lausanne University Hospital (CHUV) e-brain science component. and neuroimaging tools use cases will benefit using the CAMEL Designer described in this paper. ACKNOWLEDGMENT The research leading to these results has received funding from the European Union Horizon 2020 research and innovation programme under grant agreement No 871643. The authors wish to thank all the MORPHEMIC Consortium members and Softeam Software team for their support. References Fig. 8: AppCardinality “Variable” definition [1] MORPHEMIC Web site, www.morphemic.cloud The CAMEL designer provides also diagrams to specify “ [2] G. Horn and P. Skrzypek, "MELODIC: Utility Based Cross Cloud Locations” as depicted in Fig. 9. Deployment Optimisation," 2018 32nd International Conference on Advanced Information Networking and Applications Workshops (WAINA), doi: 10.1109/WAINA.2018.00112. [3] Modelio Camel Designer, github.com/Modelio-R-D/CamelDesigner [4] Modelio Web Site, www.modelio.org Fig. 9: CAMEL Location specification