Mudelipõhine Hypermedia REST rakenduste programmeerimine

Date

2016

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

On välja töötatud mitmeid töövahendeid, mis genereerivad elementaarse REST-põhise rakenduse kondikava järgides model-view-controller disainimustrit. Ent on pööratud vähe tähelepanu arendamaks töövahendeid, mis toetavad Hypermedia poolt lubatud rakendusi, vaatamata tarkvaratööstuse poolt näidatud huvi kasvule seda tüüpi rakenduste vastu. Selle uurimuse eesmärk on leida kindel, teostatav ja efektiivne lahendus, et võtta sisendina rakenduse struktuursed ja käitumuslikud REST mudelid ja genereerida hüpermeedia REST rakenduse programmeerimise liidese kondikava. Vajalik on sihtraamistik koodi genereerimiseks. Alustuseks on vajalik keskenduda Javale Spring Boot raamistikuga ja Spring MVC struktuuriga. Selle uurimuse ulatus piirdub ainult Java keelega. Hiljem on võimalik laieneda ka teistele keeltele. Esmalt on tarvis teada, missuguseid sisendeid ja mudeleid oleks vaja. REST modelleerimine koosneb kahest osast – struktuurne modelleerimine ja käitumuslik modelleerimine. Struktuurset modelleerimist viiakse tavaliselt läbi klas-sidiagrammidega, samas kui käitumuslikku modelleerimist teostatakse seisunditabelitega. Väljundi genereerimise osa peab olema välja töötatud viisil, mis lubaks tulevikus genereerida koodi erinevate keelte jaoks. See oleks suuniseks tööde jaoks tulevikus. Selles töös me tutvustame RestGeni – lihtsat, intuitiivset, kuid võimast domeenispetsiifilist keelt (ingl domain specific language, DSL), mis aitab arendajatel määratleda RESTi rakendusliidest API (ingl Application Pro-gramming Interface) ja genereerib Spring-põhise Java rakenduse, mis ühildub et-tenähtud APIga. DSL on kasutusele võetud Eclipse pluginina, mis demonstreerib antud meetodi teostatavust.
Many tools have been developed that generate the skeleton of a basic REST-based application following the model-view-controller design pattern. However, little attention has been paid to developing tools that support Hypermedia-enabled appli-cations, despite the increased interest shown by the software industry to this style of applications. 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 pro-gramming interface. What is required is a target framework for generation of the code. To begin with, 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. Firstly, there is a need to know what kind of inputs or models would be required. REST modelling consists of two parts: structural modelling and behavioural modelling. Structural modelling is usually done with class diagrams while behavioural modelling is usually done with state charts. The output generation part has to be developed in a manner that it would allow, in future, to generate code for various languages. This would serve as a guideline for future work. In this paper, we introduce RestGen, a simple, intuitive yet powerful domain specific language (DSL) that helps developers to specify a REST API and that generates the skeleton of a Spring-based Java application that complies with the intended API. The DSL has been implemented as an Eclipse plugin, which demonstrates the feasibility of the approach.

Description

Keywords

Citation