Model driven engineering of Hypermedia Rest Applications
University of Tartu
The REST application modelling can follow any norms or semantics and there may be many meta-models that one can use for modelling. Eventually, this limits the standardization. A meta-model determines the norms and standards of modelling. And the Language framework defines the code structure for an application. Models only plays a role in defining the content of the code. So consider a scenario where we have a predefined framework for coding an application and we have the model for it’s REST endpoints, in that case we have the required structure of the code as well as the required content. We have all it takes to generate the basic skeleton of a REST application programming inter-face based on that particular frame-work. If we code this manually using any programming language, we are doing a lot of manual work and this is directly proportional to the number of entities and resources in an application. Work increases as the number goes up. This is a real problem. Many tools have already been developed for this approach, but they limit to basic REST model-view-controller. Unlike Basic REST, Hypermedia applications allow the end user to have no prior knowledge of the REST application programming interface but a starting url making the application more dynamic and secure. The objective of this research is to come up with a solid, feasible and efficient solution to take as input the Structural and Behavioural REST models of an application, and generate a skeleton of hypermedia REST application programming interface. What is needed is firstly, a target framework for generation of code. For starting the focus would be on Java with Spring boot framework and spring MVC structure. The scope of this research is limited to Java language only. Later on it could be possible to expand to other languages. The output generation part has to be done in a manner that it would allow in future to generate code for various languages. This would serve as guidelines for future work. Secondly, there is a need to know what kind of inputs and what type of models would be needed. REST modelling consists of two parts Structural modelling and Behavioural modelling. Structural modelling is a product of Class diagrams of an application. Behavioural modelling is a product of State chart of dynamic classes of the application. It may be possible to take into consideration other inputs as well. For which a thorough study has to be made because in practice the plain state chart and class diagrams are not sufficient enough to achieve the solution. A more stereotyped versions are required to completely achieve the solution. These would be the input for the system. These inputs need to be defined more clearly. Once these questions are answered then it would be possible to move further and answer the next questions. There is a need to know how to input these models. There are many ways by which we could input the required inputs to the tool. One idea is to generate a user inter-face where the User would create the model and the IDE would interpret it then generate the code. Other is to take as input the file for the model and generate code. With reference to some already available ideas and solutions, a thorough research will be carried out to come up with a perfect blend of ideas that would lead to a solution which would be implemented into a user friendly tool. With a meta-model we will have a standardized input mechanism. And with knowledge of output framework we would make it possible to interpret and generate code. By integrating the standardized input mechanism with the frame-work specific gen-eration mechanism, it will be possible to auto-generate a hypermedia REST application. This would save hours of manual work. And this is a real solution be-cause it incorporates existing stages of Software development and eliminates waste work.
Lõputöö kaitsmise aasta