The maintenance of software systems requires continuous evolution of their architecture, as they must adapt to changing requirements and new technologies. To respond to these challenges, the Finnish Food Authority has launched a large, multi-year project to renew its technology environment.
This thesis supports the agency's efforts by proposing improvement suggestions for selected aspects of its software architecture. The study follows a design science research methodology to develop and evaluate artifacts that address the selected problems. The research process included identifying the existing challenges in the current architecture through interviews with the agency's software architects and other relevant stakeholders. A total of 66 distinct challenges were identified across 11 thematic categories, with issues related to maintainability, dependency management, and databases emerging as particularly significant.
Among these challenges the lack of a modern API access control mechanism for machine-to-machine (M2M) authentication was selected for further exploration. The thesis proposed three alternative solution suggestions: OAuth 2.0 client credentials grant type, API keys, and reducing the management burden of the current client certificate authentication by implementing a self-service portal where external client organizations can securely manage their own certificates.
These options were evaluated and compared based on usability, ease of implementation, and manageability. While any of the three solutions should offer an improvement over the current situation, this thesis recommends against adopting API keys due to their weaker security. Instead, the agency could consider either adopting OAuth or implementing the proposed certificate management portal, which would significantly reduce the agency's administrative burden while maintaining a high level of security.
Additionally, the thesis examined Java's long-term relevance and developer availability. Although its popularity is gradually declining, Java is expected to remain widely used in the industry for a considerable time, and thus the agency is unlikely to encounter significant challenges in finding Java experts in the near future.Ohjelmistojärjestelmien ylläpito vaatii niiden arkkitehtuurin jatkuvaa kehittämistä, sillä niiden on sopeuduttava muuttuviin vaatimuksiin ja uusiin teknologioihin. Vastatakseen näihin haasteisiin Ruokavirasto on käynnistänyt laajan, monivuotisen hankkeen teknologiaympäristönsä uudistamiseksi.
Tämä opinnäytetyö tukee viraston pyrkimyksiä esittämällä parannusehdotuksia valituille osa-alueille sen ohjelmistoarkkitehtuurissa. Tutkimus noudattaa suunnittelutieteellistä menetelmää kehittääkseen ja arvioidakseen artefakteja, jotka ratkaisevat valitut ongelmat. Tutkimusprosessiin sisältyi nykyisen arkkitehtuurin haasteiden tunnistaminen haastattelemalla viraston ohjelmistoarkkitehteja ja muita asiaankuuluvia sidosryhmiä. Haasteita tunnistettiin yhteensä 66 jakautuen 11 temaattiseen kategoriaan. Erityisen merkittävinä erottautuivat ylläpidettävyyteen, riippuvuuksien hallintaan ja tietokantoihin liittyvät kysymykset.
Näiden haasteiden joukosta jatkokäsittelyyn valittiin modernin pääsynhallintamekanismin puute koneiden välisessä (M2M) API-todennuksessa. Diplomityössä esitettiin kolme vaihtoehtoista ratkaisuehdotusta: OAuth 2.0 -asiakastunnistetietojen valtuutustyyppi, API-avaimet ja nykyisen asiakasvarmenteisiin perustuvan todennuksen ylläpitotaakan vähentäminen kehittämällä itsepalveluportaali, jossa ulkoiset asiakasorganisaatiot voivat turvallisesti hallita omia varmenteitaan.
Vaihtoehtoja arvioitiin ja vertailtiin käytettävyyden, toteutuksen helppouden ja hallittavuuden näkökulmista. Vaikka mikä tahansa kolmesta ratkaisusta tarjoaa parannuksen nykytilanteeseen verrattuna, tässä työssä ei suositella API-avainten käyttöönottoa niiden heikomman tietoturvan vuoksi. Virasto voisi sen sijaan harkita joko OAuthin käyttöönottoa tai varmenteiden hallintaportaalin toteuttamista, mikä vähentäisi merkittävästi viraston ylläpitotaakkaa ja säilyttäisi samalla korkean tietoturvatason.
Lisäksi työssä tarkasteltiin Javan pitkän aikavälin merkityksellisyyttä ohjelmistoalalla ja kehittäjien saatavuutta. Vaikka sen suosio on vähäisessä laskussa, Java oletettavasti pysyy laajalti käytössä vielä pitkään, joten virasto ei todennäköisesti tule kohtaamaan merkittäviä haasteita Java-asiantuntijoiden löytämisessä tulevaisuudessa.