The project funded by the German Federal Ministry of Economics and Technology from the Central Innovation Programme for SMEs (ZIM) deals with the transfer of application software components to the cloud.
The aim is to develop tools that allow the conversion of application software to meet the requirements of a cloud environment. The project, which is carried out at the University of Paderborn in cooperation with the s-lab (Software Quality Lab), follows a model-driven approach, i.e. essential characteristics of the application software are extracted and represented in models to support the transfer process.
Then the requirements for the cloud are introducedat at model level, before an executable code is generated from the model again.
Under the project, the tools created will be tested and sharpened by means of the insTRA, the S&N solution for effective insurance management. insTRA is a SAP add-on and can be seamlessly integrated into existing SAP system landscapes. This allows for example available SAP Master Data to be used in insTRA. Redundant data and duplicate maintenance costs are thus avoided. Payments can be recorded directly in SAP FI.
Our project partner is s-lab, the competence centre of the University of Paderborn in the area of software engineering. Their target group is small, medium and large businesses, with and for which they perform research and development projects on up-to-date practice-relevant topics in the areas software development and quality assurance.
Cloud computing makes IT services available to users.
Be it data storage or retrievable computing power, these offers are grouped under the heading Infrastructure as a Service (IaaS).
If these hardware-related services are expanded by basic services, such as operating system, database, web server or programming environments, it is called Platform as a Service (PaaS). What distinguishes these offers is that the available software environments are used regularly by users as a platform for their own systems. The spectrum of the basic services emcompasses complex software solutions – for example SAP systems are available on the market as Platform as a Service.
If the entire, ready-to-use application is in the foreground, it is called Software as a Service (SaaS).
The cloud solution provider makes the resources available always only to the extent required and bills them accordingly. In addition, a high tolerance is ensured against the breakdown of resources.
A SAP platform is used as a basis in the example of the conversion from insTRA. IBM and SAP, for example, offer such platforms.
The transition process to be developed in the project, however, is independent of the providers and properties of the specific platform - the parameterization needed for a specific platform is supplemented at model level in the changeover process. The tools created therefore allow a solution to be deployed on different platforms with minor additional efforts.
As a result of the transfer, insTRA is offered as Software as a Service in the cloud. The solution builds on the underlying PaaS platform and therefore provides all the benefits of the cloud.
Requirements for the transition to the cloud
With the described need to use different platforms, a first requirement has already been mentioned: the tools must allow the parameterisation of essential properties of the platform to be used, and link them to the application in the transfer process. Technical access, database name, user and password all have to be considered – but also directory names for file storage, logging and the like. In addition, the necessary support tools must be adapted, as operations of the application must also be proactively monitored for a safe usability.
An application in the cloud is no longer in the protected area of an internal corporate infrastructure. Thus, measures must be taken to protect the application and contained critical business data against unauthorized use. Firstly, only authorized users may have access to the application, secondly, misuse by authorized users must be prevented – this could be for example the attempt to access other users' data that are processed on the same platform.
Cloud applications typically use web interfaces that are served via the browser. Legacy applications often require the installation of a client for use. In addition, the code for the user interface is often mixed with the business logic. As part of the transition to the cloud, the existing user interface must be replaced with a web interface and the business logic separated from the user interface.
The adjustments described above as an example for cloud environments pertain to different dimensions of an application software – from the configurability of some properties, aspects that are to be supplemented in individual features, up to change necessities that require the restructuring and refactoring of parts of the application.
Implementation with methods from the model-driven software development
To implement these change requirements, we use AACC methods of model-driven software development in the project, especially from model-driven reverse engineering. In the process of transition, models of the existing application software are created and used to analyze and modify properties of the application.
Here the term model does not refer primarily to a sketch or diagram. The models used are data structures that represent the dedicated properties of the application software and simplify the analysis. Thus a model is able to represent which modules are called by which other modules in order to investigate, based on this, the program structure of the application.
The transition process is divided into a number of steps in which different aspects are used to represent different dimensions of the transition process, see Figure 1
In order to convert the program code into a model, a parser is first developed, which can extract all properties needed in the following process from the program code. Then the principal components and services of the future cloud solution are identified and structured by refactoring. The AACC project is developing a tool that supports this step.
In the next steps, platform-independent and platform-dependent aspects of the cloud computing are modeled and linked to the model of the application software. For this, the corresponding models and transformation software are created. Then the modified and extended model of the application software is converted back into translatable code to finally obtain the prototype of the cloud application.
Implementation of tools
In the context of model-driven development, there are a large number of tools that support the definition and implementation of models. The Eclipse Modeling Framework Project (EMF) should be in particular mentioned here.
The core component of EMF (Core) creates an implementation into Java classes from a given XML model specification, the necessary adapters to read and write the data. In addition, an editor is created which allows data records to be created, read and modified.
For parsing and code-related tasks, we will use the XText, also stemming from the EMF-F family. Especially when creating the parser and the application, XText relies on the code. For example, an editor is provided by XText on the basis of a grammar, with which the completeness of the grammar can be checked.