Ajastettuja tehtäviä suorittavan ylläpidollisen työkalun määrittely ja toteutus
Tuikka, Jarkko (2015)
Tuikka, Jarkko
2015
Sähkötekniikan koulutusohjelma
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2015-01-13
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201512181837
https://urn.fi/URN:NBN:fi:tty-201512181837
Tiivistelmä
Asiakkalla oli tuotantojärjestelmä, johon oli asiakkaan toimesta lisätty skriptejä, ohjelmia ja palveluita, jotka hoitivat suhteellisen yksinkertaisia tehtäviä ajastetusti. Ongelmana tässä järjestelmässä oli se, että tehtäviä oli toteutettu erilaisin tekniikoin ja ajastuksia oli lisätty Windows Task Scheduler:lle usealle koneelle. Tästä syystä järjestelmä oli sekava ja vaati hallintatyökalua. Ongelmia analysoitaessa päätettiin, että toteutetaan uusi järjestelmä, jossa kaikki hoidetaan keskitetysti, hyläten vanhat toteutukset.
Ongelmien analysoinnista päästiin uuden järjestelmän määrittelyyn. Järjestelmän rajoitukseksi asetettiin, että se toimisi Microsoft Windows- ympäristössä .NET- sovelluskehyksellä. Määrittelyssä päätettiin, että järjestelmä sisältää yhden käyttöliittymän jossa tehtäviä muokataan graafisesti Windows Workflow Foundation (WF)- tekniikalla ja näiden ajastukset määritetään samasta käyttöliittymästä. Arkkitehtuuria määritellessä päätettiin, että käyttöliittymässä luodut tehtävät tallennettaisiin WF- palveluina Windows AppFabric:iin, joka on Internet Information Services (IIS)- palvelinohjelmiston lisäys. Näitä palveluita voitaisiin sitten käynnistää mistä tahansa webservice- kutsuina. Käyttöliittymän lisäksi järjestelmään tarvittaisiin myös taustapalvelu, jota käyttöliittymä voisi käyttää webservice-palvelun kautta. Tämä taustapalvelu ylläpitäisi ajastuksia, ja pystyisi käynnistämään halutun WF- palvelun ajastuksen lauetessa, mutta myös tallentaisi tiedot pysyvästi tietokantaan. Käyttöliittymä, taustapalvelu ja tehtävät muodostaisivat lokia toiminnastaan, jota voitaisiin käyttää monitorointiin.
Määrittelyn jälkeen siirryttiin toteutukseen. Toteutuksessa käytettiin sellaisia tekniikoita ja työkaluja kuin WF, Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF), IIS, AppFabric, Web Deploy, Quartz.NET, Common.Logging, Log4net ja Topshelf. Käyttöliittymän toteutuksen pohjana käytettiin Microsoft:n referenssitoteutusta WF- editorikäyttöliittymään, joka sijoitti luodut WF-palvelut ajettavaksi AppFabric:iin. Taustapalvelu toteutettiin Windows-palveluna, joka käytti Quartz.NET- ohjelmakirjastoa vuoronnuksien toteutukseen persistentillä tavalla. Sekä käyttöliittymä että taustapalvelu lokittivat viestejä tietokantaan käyttäen Common.Logging- lokiabstraktiota ja Log4net lokitoteutusta.
Lopputuloksena saatiin määritelmän mukainen ohjelma, joka saatiin onnistuneesti vietyä tuotantokäyttöön asiakkaalle. Määrittelyssä oli esitetty lisätoimintoina ohjelman osien välisten kommunikointien salaus, käyttäjien todennus, luokittelu ja tilastointi käyttöliittymässä sekä suoritettujen tehtävien historian ja yksittäisen suorituskerran graafinen esitys käyttöliittymässä, jotka jätettiin jatkokehitysideoiksi.
Ongelmien analysoinnista päästiin uuden järjestelmän määrittelyyn. Järjestelmän rajoitukseksi asetettiin, että se toimisi Microsoft Windows- ympäristössä .NET- sovelluskehyksellä. Määrittelyssä päätettiin, että järjestelmä sisältää yhden käyttöliittymän jossa tehtäviä muokataan graafisesti Windows Workflow Foundation (WF)- tekniikalla ja näiden ajastukset määritetään samasta käyttöliittymästä. Arkkitehtuuria määritellessä päätettiin, että käyttöliittymässä luodut tehtävät tallennettaisiin WF- palveluina Windows AppFabric:iin, joka on Internet Information Services (IIS)- palvelinohjelmiston lisäys. Näitä palveluita voitaisiin sitten käynnistää mistä tahansa webservice- kutsuina. Käyttöliittymän lisäksi järjestelmään tarvittaisiin myös taustapalvelu, jota käyttöliittymä voisi käyttää webservice-palvelun kautta. Tämä taustapalvelu ylläpitäisi ajastuksia, ja pystyisi käynnistämään halutun WF- palvelun ajastuksen lauetessa, mutta myös tallentaisi tiedot pysyvästi tietokantaan. Käyttöliittymä, taustapalvelu ja tehtävät muodostaisivat lokia toiminnastaan, jota voitaisiin käyttää monitorointiin.
Määrittelyn jälkeen siirryttiin toteutukseen. Toteutuksessa käytettiin sellaisia tekniikoita ja työkaluja kuin WF, Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF), IIS, AppFabric, Web Deploy, Quartz.NET, Common.Logging, Log4net ja Topshelf. Käyttöliittymän toteutuksen pohjana käytettiin Microsoft:n referenssitoteutusta WF- editorikäyttöliittymään, joka sijoitti luodut WF-palvelut ajettavaksi AppFabric:iin. Taustapalvelu toteutettiin Windows-palveluna, joka käytti Quartz.NET- ohjelmakirjastoa vuoronnuksien toteutukseen persistentillä tavalla. Sekä käyttöliittymä että taustapalvelu lokittivat viestejä tietokantaan käyttäen Common.Logging- lokiabstraktiota ja Log4net lokitoteutusta.
Lopputuloksena saatiin määritelmän mukainen ohjelma, joka saatiin onnistuneesti vietyä tuotantokäyttöön asiakkaalle. Määrittelyssä oli esitetty lisätoimintoina ohjelman osien välisten kommunikointien salaus, käyttäjien todennus, luokittelu ja tilastointi käyttöliittymässä sekä suoritettujen tehtävien historian ja yksittäisen suorituskerran graafinen esitys käyttöliittymässä, jotka jätettiin jatkokehitysideoiksi.