Matalakompleksisen palvelupyyntömallin kehittäminen palveluväylää hyödyntäviin järjestelmäintegraatioihin
Mustonen, Aleksi (2009)
Kandidaatintyö
Mustonen, Aleksi
2009
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe200904151324
https://urn.fi/URN:NBN:fi-fe200904151324
Tiivistelmä
Tässä työssä kehitetään yleiskäyttöinen palvelupyyntömalli, jonka avulla Lahden kaupungin Lahti Fenix –projektin Kuntalaistilijärjestelmän palveluväylän kautta voidaan kutsua järjestelmän tietokantatasoa tai muita palveluväylän avulla integroituja järjestelmiä. Työn tavoitteena oli suoraviivaistaa järjestelmäintegraatioihin liittyvien palveluiden kehittämistä suunnittelemalla sellainen palvelupyyntömuodostin, joka ei sisällä staattisia viittauksia jossakin tietyssä palvelussa käytettäviin luokkiin tai muihin ominaisuuksiin. Työssä hyödynnettiin Java-kielen kehittyneitä ominaisuuksia; reflektiivistä ohjelmointia, geneeristä ohjelmointia ja Java-virtuaalikoneen metodipinon lukemista. Tavoitteen saavuttamista mitattiin käyttäen avuksi McCaben syklomaattista kompleksisuutta ja metodeissa käytettyä rivimäärää. Työ aloitettiin joulukuussa 2008 ja saatiin valmiiksi helmikuussa 2009. Työn tuloksena syntyi toimiva, syklomaattiselta kompleksisuudeltaan matala ja helppokäyttöinen palvelukutsumuodostin. Kuntalaistili (”Citizens’ account”) is a system that is currently being developed as a part of the Lahti Fenix project run by the city of Lahti. The purpose of Kuntalaistili is to allow cities and townships to provide electronic services for their citizens. In this thesis we develop a general-purpose service request model that can be used to call Kuntalaistili’s database layer or any other system integrated to Kuntalaistili using its enterprise service bus. The purpose of this work was to streamline the development of services connected to system integrations by creating a service request generator that does not contain any static references to the classes or other properties of any certain service. Advanced features of the Java programming language were used in this work to achieve the goal set above. These include the use of reflective programming, generics, and the method stack of Java virtual machine. Advancement toward the given goal was measured using the concept of McCabe’s cyclomatic complexity, as well as the amount of lines of code in the methods created. The work was started in December 2008 and was finished in February 2009. The result of the work was a functional, easy-to-use service request generator having a low cyclomatic complexity.