• Ei tuloksia

Hammashoitokoneen keskitetty asetusten hallinta ja replikointi

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Hammashoitokoneen keskitetty asetusten hallinta ja replikointi"

Copied!
58
0
0

Kokoteksti

(1)

Hammashoitokoneen keskitetty asetusten hallinta ja replikointi

Sähkötekniikan korkeakoulu

Diplomityö,jokaon jätettyopinnäytteenä tarkastettavaksi

diplomi-insinöörin tutkintoavartenEspoossa7.3.2014.

Työn valvoja:

Prof.Raimo Sepponen

Työn ohjaaja:

DI OlliKattelus

A ’’ Aalto-yliopisto

Sähkötekniikan

korkeakoulu

(2)

Tekijä:Aleksi Wallenius

Työn nimi: Hammashoitokoneenkeskitetty asetusten hallintaja replikointi

Päivämäärä:7.3.2014 Kieli: Suomi Sivumäärä:7+51

Elektroniikanlaitos

Professuuri: Sovellettuelektroniikka Koodi:S-66

Valvoja: Prof. Raimo Sepponen

Ohjaaja: DIOlliKattelus

Diplomityöntavoitteenaolisuunnitellajatoteuttaanykyaikaisenhammashoitoko-

neenasetustenhallintajareplikointi-ominaisuusPC-ohjelmistolle.Ominaisuuden

pohjana oli toiselle hoitokoneelle toteutettu vastaava ominaisuus. Ominaisuudel-

la oli siis voitava ottaa talteen hoitokoneen asetukset tietokoneelle ja pystyttävä

lähettämään asetukset takaisin yhdelle taiuseammallehoitokoneelle.

Työn alussa esitellään ominaisuuden toteuttamiseksi käytettyjä teknologioita ja

niille löydettyjä vaihtoehtoja. Eri vaihtoehtoja vertaillaan ja perustellaan niiden

välillä tehtyjä valintoja. Työssä kuvataan myös, kuinka ominaisuuden toimintaa

suunniteltiin ja sen vaatimuksia pohdittiin. Joidenkin ominaisuuden osien toteu-

tuksien valintoja selvitetään tarkemminkin.

Työn tavoitteessa onnistuttiin eli saatiin toteutettua toimiva ominaisuus, jonka

toimintaperiaatettaja käyttöäesitelläänja onnistumista arvioidaantyön loppuo-

sassa. Lopuksi pohditaan vielä tapoja, joilla ominaisuuden toimintaa voitaisiin

kehittää ja erityisesti, kuinkasen tietoturvaavoitaisiin parantaa.

Avainsanat: Asetusten hallinta,Hammashoitokone,HTTP, CGI,SQL, Java, C,

C++, shell-skripti

(3)

Author: Aleksi Wallenius

Title: CentralizedSettings Management And Repliationof a Dental Unit

Date: 7.3.2014 Language: Finnish Numberof pages:7+51

Department of Eletronis

Professorship: AppliedEletronis Code: S-66

Supervisor: Prof. Raimo Sepponen

Instrutor: M.S. (Teh.) Olli Kattelus

Thegoalofthis Master'sThesiswastodesignandtoimplementforaPCsoftware

the settingsmanagementand repliation feature of a modern dental unit. As the

basisforthefeaturewastheorrespondingfeatureimplementedforanotherdental

unit. Sothefeature had tobettobeused totransferand tosavethe settingsof

a dental unitto aomputer and tosend thesesettings bak to oneor moreunits.

In the beginning of the Thesis tehnologies used to implement this feature and

alternativetehonologies found forthemare presented.Dierent optionsareom-

pared and hoies made between themare justied.In the Thesis it'salsodesri-

bed how the operation ofthe feature was planned and how itsrequirements were

pondered. The hoies of the implementationsof some of the parts of the feature

are lariedin even more detail.

The Thesiswassuessfulinahievingitsgoal.This meansthat afuntioningfea-

turewasimplemented.Itsoperationalprinipleanduse ispresented anddisplayed

and its suess is judged in the later parts of the thesis. Lastly ways to improve

the funtioningofthefeatureandespeiallyitsinformationseurity arepondered.

Keywords: Settingsmanagement,Dentalunit,HTTP,CGI,SQL,Java,C,C++,

shell sript

(4)

Esipuhe

Ensimmäiseksi haluan kiittää Professori Raimo Sepposta työn valvonnasta ja Olli

Kattelusta ohjauksesta ja molempia kärsivällisyydestä työn valmistumisaikataulun

venyessä. KiitoksetmyösPlanmeallejaplanmealaisilletuestajamahdollisuudesta

työntekoon, ja erityisestiJari Kannonkerälle kannustuksesta.

Kiitänmyösvanhempianituestajakaikkiakavereitani,erityisestiMattiFouhault-

Airasmaataja Hanna Hoi Yee Tammista, jaksamisestakuunnella valitustani diplo-

mityön teon hankaluudesta. Kiitokset ansaitsevat myös Amândio Fondo, José Au-

gustoNhantumbojakokomuu ASSCODECHA-järjestönväkiMaputosta.Heantoi-

vat myöskintukensa ja ennen kaikkea mahdollisuuden työnteolle varsinaisen työni

ohella.

Lopuksi haluan mainitavielä FunkyMonkeys -hostellinEtelä-AfrikanNelsprui-

tissa. Se tarjosi minulle sopivat puitteet kolmen viikon ajan joulun 2013 tienoilla

tämändiplomityönvaltaosankirjoittamiselle.

Maputo, 16.2.2014

Aleksi Wallenius

(5)

Sisältö

Tiivistelmä ii

Tiivistelmä (englanniksi) iii

Esipuhe iv

Sisällysluettelo v

Lyhenteet vii

1 Johdanto 1

2 Kirjallisuuskatsaus käytetyistä ja vaihtoehtoisista teknologioista 4

2.1 TCP/IP-protokollaperhe . . . 4

2.1.1 Internet Protool . . . 4

2.1.2 Transmission Control Protool . . . 4

2.1.3 UserDatagram Protool . . . 4

2.2 Terminaalisovellukset . . . 5

2.3 Tiedonsiirto . . . 5

2.3.1 TrivialFile Transfer Protool . . . 5

2.3.2 File Transfer Protool . . . 5

2.3.3 Seure Copy ja SSH File Transfer Protool . . . 6

2.3.4 Network File System . . . 6

2.4 Hypertext Transport Protool . . . 6

2.5 TLS, SSL ja IPse . . . 12

2.6 Common Gateway Interfae . . . 12

2.6.1 Vaihtoehtoja CGI:lle . . . 13

2.6.2 GNU CGICC -kirjasto . . . 13

2.7 Muita käytettyjä kirjastoja . . . 13

2.7.1 Java Remote Method Invoation. . . 13

3 Ominaisuuden lähtökohdat ja suunnittelu 15 3.1 Ominaisuus PlanmeaCompat -hoitokoneella . . . 15

3.2 Sovereignin web-käyttöliittymä. . . 15

3.3 Sovereignin ACCU-kortin arkkitehtuuri ja sisäinen viestintä . . . 16

3.4 Romexis-arkkitehtuuri . . . 16

3.5 Sovereignin ja Romexiksen välinen viestirajapinta . . . 17

3.6 Haastattelut . . . 19

3.7 Asetustiedostot . . . 20

3.8 Ominaisuuden vaatimukset . . . 22

3.9 Tiedonsiirto . . . 24

3.10 Asetustietojen tallennustapa . . . 26

3.11 Tietoturva ja potilasturvallisuus . . . 27

(6)

4 Ominaisuuden toteuttaminen 29

4.1 CGI-skriptit . . . 29

4.2 Romexis ja Sovereign . . . 29

4.3 Ominaisuuden testaus . . . 36

5 Tulosten esittely 38

6 Tarkastelu 43

6.1 Arviointi . . . 43

6.2 Ominaisuuden jatkokehitys . . . 43

6.3 Tietoturvanparantaminen . . . 46

Viitteet 48

(7)

Lyhenteet

ASP Ative ServerPages

CGI Common Gateway Interfae

FTP File Transfer Protool

FTPS FTP Seure

HTML Hypertext Markup Language

HTTP Hypertext Transfer Protool

HTTPS Hypertext Transfer ProtoolSeure

IP Internet Protool

IPSe Internet Protool Seurity

Java RMI JavaRemote MethodInvoation

JSP JavaServerPages

MIME Multipurpose Internet MailExtensions

NFS NetworkFile System

RFC Request for Comments

SCP Seure Copy

SFTP SSH File Transfer Protool

SMTP Simple MailTransfer Protool

SQL Strutured Query Language

SSH Seure Shell

SSL Seure Sokets Layer

TCP Transmission ControlProtool

TFTP Trivial File Transfer Protool

TLS TransportLayer Seurity

UDP User Datagram Protool

URL Uniform Resoure Loator

WWW World WideWeb

(8)

1 Johdanto

Tämädiplomityöontehtysuomalaisessahammaslääketieteenalanyrityksessänimel-

täPlanmeaOy. Työ tehtiinosanatekijän työtä Planmeanhammashoitokonedivi-

sioonan ohjelmistotuotekehitysosastolla. Planmea suunnittelee ja valmistaa ham-

mashoitokoneita,hammasröntgenlaitteitaja näidenhallintaan tarkoitettujatyöase-

maohjelmistoja. Planmea on Planmea Group -yhtiöryhmän emoyhtiö. Yhtiöryh-

määnkuuluulisäksiviisimuutayhtiötä:PlanmedOy,PlandentOy,LM-Instruments

Oy, Opus SystemerAS ja Triangle Furniture Systems In.Näistä esimerkiksiPlan-

med suunnittelee, valmistaaja markkinoi kuvantamislaitteitamammograaaja or-

topedistä kuvantamistavarten ja Plandenttoimittaa laitteita,tarvikkeita ja palve-

lujahammasklinikoilleja-laboratorioille.Yhteensäyhtiöryhmätyöllistäälähes 2500

henkilöä.[1℄ [2℄

Hammashoitokoneellatarkoitetaannykyaikaista laitekokonaisuuttajokasisältää

hammaslääkärin potilastuolin lisäksi muun muassa lääkärin ja hoitajan tarvitse-

matinstrumentitjaoheislaitteetsekäohjaus-japuhdistusjärjestelmät.Sovereignon

Planmean kehittynein hammashoitokone ja siksi yhtiön lippulaivatuote. Sovereig-

ninerikoisuutenaonerityisestisen korkeamuokattavuudenaste. Hoitokonevoidaan

esimerkiksihelpostimuuttaaoikeakätisen lääkärinkäyttämästävasemmankätiseksi.

Modulaarisuutensa ansiosta Sovereign on hankittavissa lukuisillaerilaisilla kokoon-

panoilla ja asennustavoilla. Kuvassa 1 näkyy Sovereign-hoitokone eräässä muodos-

saan. Myöshoitokoneen istuimenvärit onvalittavissalaajastavalikoimasta.[3℄[4℄

Toinen yhtiön myymistä hammashoitokoneista on nimeltään Planmea Com-

pat. Se on ominaisuuksiltaan jonkin verran Sovereignia riisutumpi. Planmealla

on myös PC:llä ajettava Romexis-ohjelmisto. Romexiksen käytetyimmät ominai-

suudet liittyvät yrityksen kuvantamistuotteisiin. Ohjelmalla voidaan muun muas-

sa hallita kuvattavana olleita potilaita ja tutkia heidän kuviaan. Romexikseen on

kuitenkin saatavilla valinnainen Clini Management -moduuli, jolla taas voidaan

hallitaesimerkiksiyhden, taitarvittaessa jopauseamman,klinikankaikkiahoitoko-

neita. Klinikkatasolta voidaan siirtyä myös yksittäisen koneen tarkkailuun ja jopa

etäohjaamiseen.Hoitokoneidenkäytöstä kerätään erilaisia tietoja, joita voi jälkikä-

teen tutkia Romexiksen lokikirjoista,kuvaajista ja erilaisista Romexiksen luomista

raporteista. Tässä työssä tehty ominaisuus on osa Clini Management -moduulia,

joten jatkossa tässä työssä Romexis-termi käsittää ohjelman oletusominaisuuksien

lisäksi myös Clini Management -moduulin. Clini Management -moduuli on ole-

tuksena käytössä muun muassa yliopistoilla opetuskäytössä olevien hoitokoneiden

yhteydessä. [5℄ [6℄ [7℄

Romexis-ohjelmistovoidaanjakaakolmeenitsenäisestiajettavaan,muttatoisten-

sakanssakeskustelevaan,ohjelmaan.RomexisServer-palvelinohjelmiaonkerrallaan

käynnissäyhdessätyöympäristössätavallisestiyksikappale.Palvelimellaontiedossa

kaikkiympäristöstä löytyväthoitokoneet.Sovereign-hoitokoneillaontiedossapalve-

limen IP-osoite ja ne ilmoittautuvatsillekäynnistyessään lähettämällä viestin. Pal-

velin pyytää hoitokoneelta lisätietoja sen konguraatiosta ja tallentaa ne tietokan-

taansa. Yhteys Compatille muodostetaan hieman eri tavalla. Sen kohdalla yhtey-

(9)

Kuva 1: Sovereign-hoitokone. [3℄

Ohjelma on nimeltäänMultiProxy, ja sille on asetettu tiedot kaikkien Compatien

IP-osoitteista. Kutakin Compatia kohden palvelin käynnistää Planlink-prosessin,

joka hoitaa varsinaisen suoran keskusteluyhteyden hoitokoneeseen ja toimii erään-

laisena tulkkina hoitokoneen ja Romexis-ohjelmiston välillä. Kolmas Romexiksen

pääosa on itse asiakasohjelma, Romexis Client. Se on ainoa osa, jolla on yleiselle

käyttäjälle näkyvä graanen käyttöliittymä. Tavallisesti asiakasohjelmia on käyn-

nissä omansa kullekin hoitokoneelle ja niitä pyöritetään hoitokoneiden yhteydessä

olevillaPC-koneilla. Client-ohjelmasaa palvelimeltamuun muassa tiedoteri hoito-

koneista. Client voi ottaa myös oman yhteyden yksittäisiin hoitokoneisiin. Palveli-

mentavoinCompatiinyhdistäessäasiakasohjelmakäynnistäätätävartenPlanLink-

(10)

Tässätyössä toteutettiinRomexiksenCliniManagement-moduuliinSovereign-

hammashoitokoneen asetusten hallinta ja replikointi -ominaisuus, jolla Sovereignin

asetuksetvoidaantallentaa Romexis-palvelimelleja asettaamyöhemminsamatase-

tukset yhdelle tai useammalle hoitokoneelle etäyhteyden kautta. Ominaisuus oli

omassamuodossaantoteutettuaiemminPlanmean toisellehoitokoneelle,Compa-

tille.Sen pohjalta Sovereignin vastaavaaominaisuutta lähdettiinkehittämään. Ro-

mexikseenhaluttiinyhtenevätominaisuudetkaikilleerihoitokoneille.Ominaisuuden

vaatimuksia mietittiin paljon, mutta lopulta päädyttiin tekemään ensin ulkoisesti

täysin Compatia vastaava toiminnallisuus,jota voidaan sitten tarvittaessa laajen-

taa taimuuttaa.

Ominaisuuden käytöstä Compatilla ei ole hirveästi tietoa, mutta sillä on sel-

keästi potentiaalista hyötyä. Sitä onmyöstoivottumyyntiosaston puoleltakentältä

saadunpalautteenperusteella.Sovereignonsuhteellisenuusi tuote,eikäsitäolevie-

lämyyty suuria määriä, jotenominaisuudentarjoamat hyödyteivätolevielä olleet

suuressatarpeessa.Suurillaklinikoilla,joillalääkäritkäyttävätuseitaerihoitokonei-

taja kutakinhoitokonettakäyttääuseampilääkäri,onhuomattavaaapuasiitä,että

lääkäri voi aina kullekin työpisteelle tullessaan kirjautua tunnuksillaan Romexik-

seen ja asettaa hoitokoneeseen haluamansa asetukset. Hoidon lopetettuaan lääkäri

voi taas tallentaa halutessaan mahdolliset tekemänsä muutokset, jotka ovat sitten

käytettävissä kaikilla klinikan koneilla. Samantapaista toiminnallisuutta on saatu

aikaan myös Sovereignin ominaisuudella, jolla lääkäri voi tuoda omat asetuksensa

hoitokoneelle USB-muistitikulla ja myös tallentaa sinne tekemänsä muutokset. Tä-

män ominaisuudenkäyttö eikuitenkaan oleniinkätevää,eikä seoleläheskäänyhtä

kattava ja monikäyttöinen.

Toisaaltaominaisuudestavoiollasuurtaapuayliopistoillahammaslääketieteelli-

sissäopetusluokissa,joissaonkymmeniäjos eijopasatojahammashoitokoneitayh-

dessä tilassa.Niissäusein halutaanasettaakaikkienoppilaiden hoitokoneetsamaan

alkutilaan.TyössätoteutetunominaisuudenavullasiitätuleevaivatontamyösSove-

reignille.Opettajantaiteknikoideneitarvitse yksi kerrallaankäydä läpikymmeniä

hoitokoneitaasettaakseen ne kaikki samaantilaan.

Kolmas selkeä käyttökohde ominaisuudelleon asennusten helpottaminen. Tästä

löytyikin omakohtaista kokemusta yrityksen sisällä. Nopeuttaa huomattavasti työ-

tä,joshoitokoneet voidaan kaikkihelpostikerralla asettaaasiakkaan haluamaanti-

laan ennen luovutusta. Vaikka ominaisuudenkäytöstä taisen toivomisesta ei saatu

suoraa palautetta, on sen tuoma hyöty säästetyssä ajassa ja käytön helpottamises-

sa kuitenkin niin selkeä, että ominaisuuden tarpeellisuus on kiistaton. Se on myös

selkeä myyntivaltti yritykselle, jonka kilpailijoilla ei vielä tätä ominaisuuttaa vas-

taavaatoiminnallisuuttataiedes Clini Management-moduuliin tapaistaohjelmaa

oletarjolla.

(11)

2 Kirjallisuuskatsaus käytetyistä ja vaihtoehtoisista

teknologioista

2.1 TCP/IP-protokollaperhe

InternetinprotokollaperhettäkutsutaanTCP/IP-protokollaperheeksisenensimmäis-

tenmääriteltyjenjayleisimminkäytettyjenprotokollienmukaan.Näidenlisäksiper-

he sisältää lukuisia muita protokollia,joiden pohjallaitse internetrakentuu. Proto-

kollatryhmitelläänneljälleeri abstraktiotasolle, jotka ovatalimmasta alkaen: link-

kitaso (Link layer), internet-taso (Internet layer), siirtotaso (Transport layer) ja

sovellustaso (Appliation layer). Linkkitasoon kuuluvat teknologiat, jotka liittyvät

verkon yhden pisteen viestintään. Internet-tasolta löytyvät taas yksittäiset verkot

yhdistävät teknologiat. Siirtotaso hoitaa prosessien välisen kommunikaation ja so-

vellustasollaon ohjelmat, jotka hoitavat tukitoimintoja ja ovat yhteydessä käyttä-

jään.[8℄ [9℄ [10℄

2.1.1 Internet Protool

Internet Protool eli IP on internet-tasoon kuuluva pakettien välittämiseen tieto-

verkkojen sisällä ja välilläkäytetty kommunikaatioprotokolla.Se on monella tapaa

internetin tärkein protokolla ollen käytännössä sen pohja ja mahdollistaen sen ko-

ko olemassaolon.IP:navullapaketit kulkevatkohteisiinsapaketteihinmääriteltyjen

IP-osoitteiden mukaan. Yleisinkäytössä oleva IP-versio onneljä.Versioonkuusiol-

laankuitenkinsiirtymässä,koskayksilöllisetIP-osoitteetovatkäytännössäloppuneet

version neljä tavasta määrittääosoiteavaruus. [8℄ [9℄[11℄ [12℄

2.1.2 Transmission Control Protool

TranmissionControlProtool, TCP,onsiirtotasonprotokolla,jokatarjoaamahdol-

lisuudenlähettäädataasovellustenvälillä.Protokollaonluotettava,mikätarkoittaa

sitä, että se sisältää toiminnallisuuksia, jotka pyrkivät estämään viestien katoami-

senmatkalla.Semyöspyrkiikorjaamaanvirheitälähetetyssädatassa.TCP onmyös

yhteydellinen protokolla eli siinä osapuolten välille avataan yhteys, jolloin jokaisen

paketin ei tarvitse sisältää tietoa tarkoitetusta vastaanottajasta ja jokainen viesti

tulee vastaanottajalle samassajärjestyksessä kuin ne lähetettiin. [8℄[9℄ [13℄ [14℄

2.1.3 User Datagram Protool

User Datagram Protool, UDP, on TCP:n tavoin siirtotason protokolla. Myös sen

avullavoidaanlähettääviestejäohjelmienvälillä.UDP eikuitenkaan oleluotettava

protokolla eli siinä ei ole mitään virheenkorjausta tai viestin perillemenon varmis-

tusta. Se on myös yhteydetön protokolla, missä viestit vain lähetetään kukin erik-

seen vastaanottajan osoitteeseen. Sitä voi siis käyttää tarkoituksiin, joissa tällaiset

hienoudet eivät olevälttämättömiätaine hoidetaan sovelluksien toimesta. Hyvänä

puolenasaadaantällöinkevyempi ja nopeampiprotokollasellaistavaativiinkäyttö-

(12)

2.2 Terminaalisovellukset

Työssä käytetään terminaalisovellusta nimeltä Telnet. Sen avulla saadaan teksti-

pohjainen yhteys Sovereignin ACCU-kortin Linux-pohjaiseen käyttöjärjestelmään.

Telnet on tietoturvaltaan hyvin puutteellinen. Telnetin onkin korvannut monissa

nykyaikaisissa sovelluksissa usein Seure Shell eli SSH-sovellus. SSH tarjoaa hyvin

suojatunjasalatunkirjautumisen,datasiirronjaterminaaliyhteydenkäyttäjälle.Ko-

mentorivinetäkäytönlisäksisitävoidaankäyttääsalaamaanmuutensuojaamatonta

internet-yhteyttä käyttävän protokollan viestiliikenne.[8℄ [17℄ [18℄ [19℄ [20℄

2.3 Tiedonsiirto

2.3.1 Trivial File Transfer Protool

TrivialFileTransfer ProtooleliTFTPonnimensämukaisestihyvinyksinkertainen

tiedostonsiirtomenetelmä ja tarvitsee vain vähän muistia. Siksi sitä käytetäänkin

yleensä automatisoituihin toimintoihin kuten käynnistystiedoston siirtämiseen ko-

neiden välillä paikallisesti.TFTP käyttää yleensä UDP:tä tiedonsiirtoon, mutta se

voidaan toteuttaa käyttäen myös jotain muuta siirtoprotokollaa. Protokolla toimii

siten,että lähettäjälähettäädataa vakiosuuruisissaerissä, ja vastaanottaja kuittaa

kunkinpaketin saapuneeksi. Tarvittaessasamapaketti lähetetään uudestaan.Myös

kuittaus voidaan lähettääuudestaan, jos seuraavaapakettia ei kuuulu.

TFTPonhyvinriisuttuverrattunaesimerkiksiFTP:hen(FileTransferProtool).

Sillävoi lähinnävain siirtäätiedostoja.Siinä ei esimerkiksiole mahdollisuuttasuo-

jata yhteyttä kirjautumisella tai kysellä saatavilla olevia tiedostoja. Ensimmäisen

ominaisuudentakiasitäkäytetäänlähinnäpaikallisverkoissa.Myöshoitokoneitakäy-

tetään tavallisesti paikallisverkoissa, joten TFTP olisi sinänsä ollut riittävä tämän

työn käyttöön. TFTP-yhteys oli myös jo valmiiksi osittain toteutettu Sovereignin

ja Romexiksen välille. Toki mahdottomuus suojata yhteyttä millään tavalla, olisi

heikentänyt hoitokoneentietoturvaa. [8℄ [21℄ [22℄

2.3.2 File Transfer Protool

File Transfer ProtooleliFTP on TFTP:n tavoinosa TCP/IP-Internet-protokolla-

perhettä.SeonhuomattavastiTFTP:tämonipuolisempi.Setoimiiselkeästiasiakasohjelma-

palvelin-arkkitehtuurimallinmukaisesti.FTPontoteutettutoimimaanTCP:npääl-

lä. Siinä onmuun muassa toteutettu käyttäjätunnusten ja salasanojen vaatiminen.

AlkuperäisessämuodossaanFTPkäyttääkahtayhtäaikaistaTCP-yhteyttä.Toisella

liikkuu varsinainen data ja toisella hoidetaan yhteyden ohjaus. Sama ohjausyhteys

säilyy koko session ajan ja sen katketessa koko sessio päättyy. Sen sijaan datayh-

teyksiä luodaan aina uusi kullekin datansiirrolle. FTP:stä on kuitenkin olemassa

uudempia versioita, joissakäytetään HTTP:n tavoinvain yhtä yhteyttä.

FTP:npuutteena onedelleen se, että seeiollamillääntavallasalattu.Ulkopuo-

lisella, jolla on pääsy FTP-palvelimen ja asiakasohjelman väliseen viestintään, on

mahdollisuus saada tietoonsa selkokielisenä muun muassa käytetty käyttäjätunnus

(13)

te. FTPS eliFTPSeure yhdistääFTP:hen TLS:n ja SSL:n,jolloinkoko yhteyson

salattu, eikä kirjautumistietoja tai siirretyn datan sisältöä pysty ulkopuoliset saa-

maanselville.ToinenvaihtoehtoonnimeltäänFTPoverSSH.Siinänimensämukai-

sesti FTP-yhteydet putkitetaanSSH-yhteyden kautta.Ongelmaksitässä lähestymi-

sessä muodostuu helposti se, että FTP käyttää useampia yhteyksiä. Ohjausyhteys

salataan, mutta avatessa uusi datayhteys SSH-asiakasohjelma ei ymmärrä salata

myös sitä. Siksi onkin käytettävä SSH-asiakasohjelmia, joissa tähän ongelmaan on

kiinnitetty erityistähuomiota.[8℄[9℄ [23℄ [24℄ [25℄ [26℄[27℄[28℄

2.3.3 Seure Copy ja SSH File Transfer Protool

Seure Copy eli SCP on SSH:ta käyttävä tiedostonsiirtoprotokolla. SSH:tä käyte-

täänkirjautumiseen ja yhteyden salaamiseen.SCP onsiissuojattuprotokolla.SCP

toimiiTCP:n kautta. SCP on sinänsä melko riisuttu teknologia sen mahdollistaes-

sa ainoastaan tiedostojen siirron. Sitä ei ole määritelty missään RFC:ssä. SSH Fi-

le Transfer Protool eli SFTP sen sijaan sisältää FTP:n tavoin hieman enemmän

ominaisuuksia. SFTP mahdollistaa tiedostojen siirtämisen lisäksi niiden käytön ja

hallinnan yhteyden yli. Useimmiten myös sitä käytetään SSH:n kautta, mutta sitä

voidaan periaatteessa käyttää missä tahansa suojatussa yhteydessä kuten TLS- tai

VPN-yhteydessä. Se olettaa, että käytetyn teknologian yhteys on salattu ja se on

jo hoitanut käyttäjän autentikoinnin. SFTP vaatii pohjalleen luotettavan datavir-

ran.VaikkaSFTPmuistuttaakinFTP:täominaisuuksiltaan,seeiolesamaasiakuin

SSH:n yli käytetty FTP, vaan aivan oma protokollansa. [29℄ [30℄

2.3.4 Network File System

Vieläyksi tiedostonsiirtomenetelmä,jokaolisi ollut mahdollisesti sopivatyön käyt-

tötarkoitukseen on nimeltäänNetwork File System eli NFS. Se ei varsinaisesti ole

tiedonsiirtomenetelmävaan jaettu tiedostojärjestelmä.Sen avullafyysisesti toisella

koneellaolevadata voidaan saada osaksitoisen koneen tiedostojärjestelmää.Ulkoi-

sesti käyttäjälle siis näyttää, että kaikki data sijaitsee samalla koneella. Näin ase-

tustiedot olisi voitu jakaa suoraan Romexis-palvelimelta Sovereignin käyttöön, ja

Sovereign olisi voinut tallentaa asetuksensa suoraanpalvelimelle. Tälläteknologial-

la, kuten mahdollisesti muillakin vaihtoehtoisilla teknologioilla, ongelmiksi toteu-

tuksessa olisivat saattaneet muodostua Javan tuki kyseiselle teknologialle tai mah-

dollisestitarvittavienkirjastojenlöytäminensekäniidenalustariippuvuus.Romexis-

ta voidaan käyttää useammissa erikäyttöjärjestelmissä, mutta NFS on yleisimmin

käytössä vain Linux-pohjaisissa käyttöjärjestelmissä. Toki vastaavanlaisia jaettuja

tiedostojärjestelmiä onmuitakin.[8℄ [31℄ [32℄

2.4 Hypertext Transport Protool

Hypertext Transport Protool eli HTTP on protokolla, johon World Wide Web

perustuu. Sitä käyttäen web-palvelimet (server) ja web-selaimet tai muut asiakas-

ohjelmat (lient) keskustelevat keskenään. HTTP-protokolla perustuu pyyntöihin

(14)

Kuva2: Esimerkit työssä käytetyistäURL-osoitteista.

http://192.168.1.100/gi-bi n/do wnlo ad_u ser. gi

http://192.168.1.100/gi-bi n/do wnlo ad_ onfi g.g i

http://192.168.1.100/gi-bi n/up load _use r.g i

http://192.168.1.100/gi-bi n/up load _on fig. gi

web-selain,jokapyytäävaikkakäyttäjänsävalitsemaaverkkosivua,kuvaataimuuta

resurssia.SelainkertoopyynnössäURL-osoitteen(UniformResoureLoator)avulla

haluamansa resurssin. Palvelinlähettää sitten pyynnön mukaisen vastauksen. Ylei-

simminHTTP:täkäytetäänsiisweb-sivujensiirtämiseen,muttasitävoidaankäyttää

myös muihin tarkoituksiin, kuten esimerkiksi tämän työn tavoin tiedostojen siirtä-

miseen.

URLkoostuuuseastaosasta,joistakukinvoidaankerrallaanjättääpoistietyissä

tilanteissa.Kuvassa2onesitettyesimerkitURL:listätässätyössätehtyihinjakäytet-

tyihin CGI-skripteihin. URL:liä käytetään internetissä moniin tarkoituksiin. Tästä

syystä URL:n alussa kerrotaan käytetty protokolla.Tämän työn tapauksessa URL

alkaa siis kirjaimilla http. Jos käytettäisiin salattua HTTP-protokollaa, alku olisi

https.Tämänjälkeentuleehalutunpalvelimenosoite.Yleensä HTTP:ntapaukses-

sa käytetään palvelimen domain-osoitetta IP-osoitteen sijaan, koska domain-osoite

pysyy muuttumattomanavaikkakoneenIP-osoite muuttuisikinesimerkiksifyysisen

palvelimenvaihtuessa.Tässä työssä hoitokoneellaeioleomaa domainia,vaan siihen

viitataan suoraanRomexiksen tiedossa olevalla IP-osoitteella.Palvelimenosoitteen

jälkeen voidaan antaa kaksoispisteen jälkeenkäytettäväksihaluttu palvelimenport-

ti. Jos porttia ei ole määritetty käytetään protokollan mukaista oletusporttia, joka

HTTP:ntapauksessa on80.SeuraavanaURL:ssä onpolkuhaluttuun resurssiinpal-

velimella.Polkuonvirtuaalinen,eliseeivälttämättävastaaresurssinsijaintiapalve-

limen todellisessahakemistorakenteessa. Sen sijaanpalvelimenasetuksissa on mää-

ritetty, mihin todelliseen kansioon kukin URL-polku, jos mihinkään, viittaa. Usein

ontapana,kutentässäkintapauksessa,ettäCGI-skriptitsijoitetaankansioon,johon

viitataan URL:ssä nimellä gi-bin tai gi, ja palvelin asetetaan hakemaan skrip-

tiäoikeastakansiosta.Palvelintällöinmyösymmärtääajaa skriptinsen sijaan,että

palauttaisivainsen sisällön.Muita URL:n osiaei tässä työssä käytetä. [33℄ [34℄ [8℄

HTTP-pyynnöt javastauksetovatrakenteeltaanhyvin samankaltaisia.Nekoos-

tuvatotsikko-osasta (header) ja, tarvittaessa, varsinaisestarungosta (body). Pyyn-

nön otsikko-osa sisältääensimmäisellärivillä(requestline) pyynnön tyypin,valitun

resurssin URL-osoitteen ja käytetyn protokollantyypinja version. Muut rivitsisäl-

tävätlisätietoja pyynnöstä, esimerkiksikäyttäjäntodennustiedotja rungonsisällön

tyypin ja koon. Vastaus alkaa tilarivillä (status line), joka kertoo jälleen käytetyn

protokollanja sen version,kolminumeroisen tilakoodin,jokakertoo kertoo pyynnön

onnistumisestataimahdollisistavirheistätaierikoistilanteista,sekäkyseisen koodin

merkityksen tekstimuodossa. Tilarivin jälkeen myös vastaus sisältää rivejä, jotka

(15)

Kuva3: Esimerkkityössä käytetystä GET-tyyppisestä HTTP-pyynnöstä.

GET /gi-bin/download_onfig.g i HTTP/1.1

Authorization: Basi G1zb3ZlmVpZ246292ZXJlaW duG 0=

Host: 192.168.1.100

Connetion: Keep-Alive

User-Agent: Apahe-HttpClient/4.2.1 (java 1.5)

[\r℄[\n℄

Kuva 4:Esimerkkityössä käytetystä POST-tyyppisestä HTTP-pyynnöstä.

POST /gi-bin/upload_onfig.gi HTTP/1.1

Authorization: Basi G1zb3ZlmVpZ246292ZXJlaW duG 0=

Content-Length: 28864

Content-Type: multipart/form-data;

boundary=3pZTf_KePS4LlFCkCA GoXF OhpY -4F6

Host: 192.168.1.100

Connetion: Keep-Alive

User-Agent: Apahe-HttpClient/4.2.1 (java 1.5)

--3pZTf_KePS4LlFCkCAGoXFOhp Y-4F 6

Content-Disposition: form-data;

>> name="userfile";

>> filename="unitonf.tar"

Content-Type: appliation/otet-stream

[\r℄[\n℄

Tiedoston sisältö

[\r℄[\n℄

--3pZTf_KePS4LlFCkCAGoXFOhp Y-4F 6--

namahdollisestiviestin runko.Pyynnöillätämävoisisältääesimerkiksipalvelimelle

lähetettäviä lomaketietoja tai lähetettäväntiedoston. Vastauksen rungossa taas on

sitten yleensä pyydetty resurssi, joka on tavallisimmin web-sivun sisältö HTML-

muodossa. Tässä työssä vastaus sisältää osassa tapauksista pyydetyt asetustiedos-

tot.

HTTP-pyyntöjäonsiiserityyppisiä.TässätyössätarvitaanvainGET-jaPOST-

tyyppisiä pyyntöjä. Näistä on esimerkit kuvissa 3 ja 4. GET-pyynnöllä pyydetään

palvelimeltajotakin resurssiaesimerkiksi web-sivun sisältöä HTML-muodossa(Hy-

pertext Markup Language). POST-pyynnöllä taas pyydetään palvelinta muokkaa-

maan palvelimella olevaa tietoa tai tekemään jotain pyynnön mukana lähetetylle

datalle.Eripyyntötyyppejä onlistattunataulukossa 1.Kutenkuvien3 ja 4esimer-

keistä nähdään pakollisen ensimmäisen rivin jälkeen otsikossa on riveittäin avain-

(16)

Taulukko 1:HTTP-pyyntötyyppejä. [34℄

Tyyppi Kuvaus

GET Pyytääpalvelimelta annettuaresurssia

HEAD Käytetään kutenGET-pyyntöä, mutta palvelin palauttaa vain otsikkorivit il-

mansisältöä

POST Pyytäämuuttamaanpalvelimellaolevaatietoa

PUT Pyytääpalvelintaluomaantaimuuttamaan palvelimellaolevaaresurssia

DELETE Pyytääpalvelintapoistamaanpalvelimellaolevanresurssin

CONNECT KäytetäänsallimaansuojattujenSSL-yhteyksienvälittäminenHTTP-yhteyden

kautta

OPTIONS Pyytääpalvelintalistaamaanmahdollisetpyyntötyypitannetulleresurssille

TRACE Pyytääpalvelintatoistamaansaamansapyynnönotsikkorivit

Taulukko 2: HTTP-pyyntöjen yleisimpiä ja tässä työssä tärkeimpiä otsikkokent-

tiä.[34℄

Otsikko Kuvaus

Host KertoopalvelimennimentaiIP-osoitteen

Content-Length Kertoopyynnönsisällönkoonkahdeksanbitintavuissa

Content-Type Kertoopyynnönsisällöntyypin

Authorization Kertooautentikoinnintyypinjakäyttäjänkäyttäjänimenjasala-

sanansalattuna

User-Agent Kertookäytetynasiakasohjelmannimen,versionjaalustan

Content-Disposition Käytetään esimerkiksi lähetettäessä lomaketietoja POST-

pyynnölläkertomaankenttiennimet ja mahdollisenlähetettävän

tiedostonnimi

2 on esitelty yleisimpien ja tämän työn kannalta tärkeimpien otsikkorivien merki-

tyksiä.

Kuvan3esimerkkionhyvinyksinkertainen.Siinäpyydetäändownload_onfig.gi-

skriptiä palvelimelta, jonka IP-osoite on192.168.1.100. Palvelin tunnistaa, että ky-

seessäon skriptija ajaasen skriptin sisällönpalauttamisensijaan.Authorization-

kentässä kerrotaan tunnistautumisentavaksiBasija lähetetäänkäyttäjätunnus ja

salasanasalattuina. Tämä kenttä lähetetään yleensä vasta, kun palvelinonvastan-

nut tilakoodilla 401, joka ilmoittaa, että kirjautuminen on tarpeen. Tässä työssä

kenttä lähetetään kuitenkin välittömästi pakotettuna ensimmäisen pyynnön muka-

na, koska tuntemattomasta syystäyhteyttä ei muuten saatumuodostettua.

Kuvan4esimerkissätaas onPOST-tyyppinenpyyntö,jollalähetetäänasetustie-

dostohoitokoneelle.PyynnönContent-Type-kentässä kerrotaan,ettäsisällöntyyppi

onmultipart/form-data,jokatarkoittaamoniosaistaesimerkiksiHTML-lomakkei-

denlähettämäädataa.KukinosaonerotettutoisistaanBoundary-merkkisarjalla.Li-

säksijokaisenosansisältöonkuvattavasitäennenvähintäänContent-Type-kentällä.

Esimerkintapauksessa appliation/otet-stream tarkoittaa osan sisällönolevan

geneeristä bittivirtaailman tarkempaa määrittelyä.Se luonnollisestimuodostaalä-

hetettävän tiedoston sisällön. Content-Disposition-kentällä kerrotaan lisätieto-

(17)

Kuva5: Esimerkkityössä saadusta HTTP-vastauksesta GET-pyyntöön.

HTTP/1.1 200 OK

Date: Wed, 23 Ot 2013 14:10:01 GMT

Server: Apahe/2.2.17 (Unix)

Last-Modified: Tue, 30 Ot 2012 14:31:14 GMT

ETag: "29981d-7000-4d47a35d108 0"

Aept-Ranges: bytes

Content-Length: 28672

Keep-Alive: timeout=15, max=100

Connetion: Keep-Alive

Content-disposition: attahment;

>> filename="unitonf-sovereign _3-2 012- 10-3 0_14 3114 -502 8.ta r"

Content-type: appliation/x-tar

[\r℄[\n℄

Tiedoston sisältö

Kuva6: Esimerkkityössä saadusta HTTP-vastauksesta POST-pyyntöön.

HTTP/1.1 200 OK

Date: Thu, 24 Ot 2013 14:42:54 GMT

Server: Apahe/2.2.17 (Unix)

Vary: Aept-Enoding

Content-Length: 30097

Keep-Alive: timeout=15, max=100

Connetion: Keep-Alive

Content-Type: text/html

[\r℄[\n℄

<html>

Sivun ja mahdollisen tiedoston sisältö

</html>

Filename-parametrin ollessa läsnä tiedetään kyseessä olevan tiedosto. Parametrin

arvo on tiedostolle ehdotettu oletustiedostonimi. Esimerkissä runko sisältää vain

yhden osan. Rungon koononvastattava Content-Length-kentän arvoa tavuina.

Kuvissa 5 ja 6 on esimerkit työssä mahdollisesti saatavista HTTP-vastauksista.

Monet vastauksen otsikko-osan kentistä on samoja kuin pyynnöillä. Taulukossa 3

on esitelty lisänä joitain erityisesti HTTP-vastauksissa esiintyviä kenttiä. WWW-Au-

thentiate-kenttää käytetääntilakoodin401 kanssakertomaanlisätietojahalutus-

ta autorisoinnista. Tässä työssä sitä ei siis tarvita, koska, kuten sanottua, autori-

sointitiedotlähetetään aina automaattisestiilman palvelimenpyyntöä.

(18)

Taulukko 3: HTTP-vastausten yleisimpiä ja tässä työssä tärkeimpiä otsikkokent-

tiä.[34℄

Otsikko Kuvaus

Date Kertoovastauksenlähettämisenpäivämääränjakellonajan

Last-Modied Kertoo,milloinpyydettyresurssionviimeksimuuttunut

Server Kertoopalvelimenohjelman,senversionjakäytetynalustan

ETag Kertoopyydetynresurssinyksilöiväntunnuksen

WWW-Authentiate Kertoo asiakasohjelmallelisätietoja palvelimen vaatimasta käyt-

täjäntodennuksestayhdessätilakoodin401kanssa

sentapauksessa 200.Näintämänkintyöntapauksessa. Vastauskoodi200 tarkoittaa,

ettävastauspyyntöönononnistunutjasisältääjonkinlaisenrunko-osan.Tätäkäyte-

täänlähinnäGET-jaPOST-tyyppistenpyyntöjenvastauksissa.Erilaisiavastauksen

tilakoodeja on lukuisia. Tilakoodit ovat aina kolminumeroisia ja ne voidaan jakaa

ensimmäisennumeronmukaan viiteen ryhmään.Numerollayksi alkavat ovat alem-

mantason tilakoodejajavastaussaattaanäissätapaukissa sisältääpelkäntilarivin.

Numerollakaksialkavatovatkaikkierilaisiaonnistuneeseenpyynnöntoteuttamiseen

viittaavia vastauksia. Kolmialkuiset koodit viittaavat siihen, että asiakasohjelman

ontehtäväuusi pyyntöjohtuenesimerkiksi resurssin siirtymisestätoiseen paikkaan.

Neljäalkuinen koodi on merkki virheestä asiakasohjelman päässä. Lopulta vitosella

alkavatilakertoovirheestä palvelimella.

Kuvan5GET-pyynnönvastauksessaonrunkonahoitokoneenasetustiedostotpa-

kattuna tar-tiedostoon. Content-Disposition-kentäss ä kerrotaan, että sisältö on

attahment-tyyppiä. Selaimessa tämä aiheuttaa yleensä sen, että se ehdottaa ole-

tuksena tiedoston tallentamista eikä yritä avata sitä selaimen ikkunaan. Oletus-

tiedostonimen selain saa samaisen kentän filename-parametrista. Content-Type-

kertoo tiedoston olevan tyypiltään appliation/x-tar. Tämä tarkoittaa, että ky-

seessä on tar-tyyppinen tiedosto, minkä voi toki nähdä myös tiedostopäätteestä.

Content-Type-kentän arvoksivoiperiaatteessaasettaamitätahansa, muttaonkui-

tenkin määritelty lista yleisesti hyväksyttyjä tunnuksia eri tiedostotyypeille. Näi-

tä kutsutaan Internet Media Typeiksi. Ne kehitettiin alunperin kuvaamaan säh-

köpostien liitetiedostojen tyyppejä kehitettäessä nykyisin yleisesti käytössä olevaa,

SMTP:tä (Simple Mail Transfer Protool) käyttävää,ei-tekstimuotoisetliitetiedos-

tot mahdollistavaa sähköpostistandardia eli MIME:ä (Multipurpose Internet Mail

Extensions). Nykyisin tyyppejä käytetään muissakin yhteyksissä kuten HTTP-otsi-

koissa. [35℄ [36℄

Kuvan 6 POST-pyynnön vastauksessa taas palautetaan HTML-muotoista teks-

tiä. Tätä saatetaan tulevaisuudessa tarvita kehitettäessä hoitokoneen web-käyttö-

liittymääeteenpäin. Yhdessä kohdassa HTML-sivua näytetään lähetetyn tiedoston

sisältötekstimuodossa.Jostiedostoaeiolelähetetty,vastaus-HTMLsisältäälomak-

keen, jonkaavullatiedoston voi lähettää.Tulevaisuuteen varautumisen lisäksitämä

auttoi ominaisuudentestaamisessakehitysvaiheessa. [34℄ [8℄[9℄ [37℄ [38℄

(19)

2.5 TLS, SSL ja IPse

SeureSokets Layer,SSL,onitseasiassaTransportLayerSeurityn,TLS,edeltäjä,

mutta niistäkäytetään useinyhteisnimitystäSSL/TLS. TLS(ja sitäennenSSL) on

salausprotokolla,jonkatarkoitusontuodatietoturvaainternetinyhteyksiin,jottasi-

täeivoida salakuunnella.Nimensämukaisestisitäkäytetääninternetin siirtotasolla.

Sillävoidaan salataesimerkiksi HTTP-protokollan viestiliikenne.Tällaisestayhtey-

destä käytetään nimitystäHTTP Seureeli HTTPS. TLS:äävoidaankäyttäämyös

lukuistenmuidenprotokollienpohjallavarmistamaantietoturvallisuus.InternetPro-

tool Seurity eli IPse TLS:stä poiketen toimiisitä alemmalla eli internet-tasolla.

Se salaa internetin IP-protokollan viestinnän. [8℄ [9℄ [39℄ [40℄ [41℄

2.6 Common Gateway Interfae

WorldWibeWebinalkuaikoinasuuriosasensisällöstäolistaattistaeliseeimuuttu-

nutpyynnöstä toiseen.Tämäsaattoi tarkoittaavaikkapa HTML:ää sisältävääteks-

titiedostoa,jokaolisiisvalmiiksiolemassajajokapalautettiinsellaisenaan.Nopeasti

tulikuitenkin tarpeelliseksi dynaamisen sisällön luominen. Sisältöäpiti pystyä luo-

maanreaaliaikaisesti.EsimerkiksikäyttäjänsyötteisiinkutenHTTP-pyynnönmuka-

nalähetettyihintäytetynlomakkeentietoihinpitipystyäreagoimaan.Myösmahdol-

listasivullaolevaatietoaolipystyttäväpäivittämään jokaisellalatauksellavaikkapa

tietokannasta.

Yksi ensimmäisistä tavoista tuottaa Webiin dynaamisesti sisältöä oli Common

Gateway InterfaeeliCGI.CGI:lle ontullut lukuisiakilpaileviateknologioita, jotka

ratkaisevat dynaamisen sisällön ongelman kukin omalla tavallaan, mutta ne eivät

ole kuitenkaan täysin korvanneet CGI:tä sen ollessa vielä yleisesti käytössä. Näitä

muita teknologioitaselvitetäänlyhyesti luvussa 2.6.1.

CGI ei ole ohjelmointikieli vaan nimensä mukaisesti rajapinta. Se on rajapinta

web-palvelimenjasen ajamanCGI-skriptinvälillä.Skriptinvoisiistoteuttaalukui-

sillaerikielillä.YksiyleisimminkäytössäolevistaonPerl-kieli.Perl-kielelläonmonia

hyviäpuolia. Sitäeimuun muassatarvitse kääntää,vaankooditulkitaan ajonaikai-

sesti. Tässä työssä käytetään C++-kieltä. Rajapinnan käsittelyä helpottamaan on

monille kielille tehty CGI-kirjastoja. Perlille on olemassa ainakin CGI.pm-kirjasto

ja tässä työssä käytetään C++:nCGICC-kirjastoa.

Yleisinweb-palvelinon tässäkin työssä käytetty Apahe, mutta myösuseimmat

muutweb-palvelimettukevatCGI:tävalmiiksi.JottaCGI-skriptejävoidaankäyttää,

ontätävartenkuitenkinasetettavaoikeintiettyjä asioitaweb-palvelimenasetuksis-

ta. Kun palvelin saa HTTP-pyynnön (yleensä tyypiltään GET) jotakin resurssia

varten, on palvelimen osattava päätellä, tuleeko resurssin sisältö palauttaa vai, ku-

ten CGI:n tapauksessa, ajaa haluttu skripti. Palvelimen asetuksiin on säädettävä,

mitkä tiedostot ovat ajettavia. Yleensä asetetaan, että CGI-tiedostot ovat esimer-

kiksi /gi- tai /gi-bin-kansiossa olevat tiedostot. Lisäksi voidaan ohjata ajetta-

vaksi kaikki tiedostot, joiden tiedostopääte on .gi. Näiden asetusten tekeminen on

tietenkinerilaista eripalvelimilla, eikäsitätässä käydä läpi.

(20)

antaa sille tietoja vakiosyötteen (standard input, STDIN) ja ympäristömuuttujien

kautta. Skriptilläonsiten käytössäänmonen muun asianlisäksi muunmuassa koko

saadun HTTP-pyynnön sisältö vaikkapa lomaketietoineen. Skripti tulostaa vakiou-

lostuloon (standard output, STDOUT) rivit, jotka se haluaa palvelimen palautta-

van asiakasohjelmalle. Tämä on usein HTML-koodia. Skripti voi myös ennen sitä

määritellä HTTP-otsikkokenttiä. Palvelin saattaa vielä lisätä omia otsikkorivejään

vastaukseen ennensen palauttamista.[34℄

2.6.1 Vaihtoehtoja CGI:lle

CGI:lle on kehitetty lukuisia vaihtoehtoja, jotka yrittävät ratkaista saman ongel-

man eri tavoin. Monet niistä pyrkii välttämään uuden prosessin luomisen dynaa-

mista sisältöä luodessa, mikä on yksi CGI:n heikkouksista. Ative Server Pages eli

ASP mahdollistaa koodin kirjoittamisenHTML-tiedoston sisälle. Kielivaihtoehtoja

on useita, mutta yleisin käytetty on VisualBasi. PHP taas on itsessään oma kie-

lensä,jotapalvelintulkitseejasuorittaa. SitäkinvoidaankirjoittaaHTML:nsekaan

taiomiin tiedostoihinsa.Sitä käytetään Apahen web-palvelimenkanssa.

Java servletit on teknologia, joka muistuttaa CGI:tä siinä on erillisiä skriptejä,

jotkaluovatdokumentteja.KielenäkäytetäänainaJavaajarajapintaeroaaselkeästi

CGI:stä.JavaServerPages eliJSPkäyttäämyösJavaa,muttasiinäkoodiakirjoite-

taan ASP:n tavoin HTML:n sekaan. FastCGI ja mod_perltaas ovat teknologioita,

jotkakäyttävätCGI-rajapintaa,muttaniissäkäytetäänpelkästäänPerl-kieltä.Niissä

tavallisen CGI:n uusienprosessien luomisesta johtuva hitaus onvältetty ensimmäi-

sessä pitämällä Perl-prosessia koko ajan käynnissä palvelimen rinnalla ja toisessa

integroimalla Perl-tulkki suoraan palvelimeen. Myös JavaSript-kieltä voidaan pi-

tää ainakin osassa käyttötarkoituksista CGI:n korvaajana. Siinä lähestymistapa on

kuitenkin toinen,silläkoodisuoritetaan vasta selaimenpäässä.[34℄

2.6.2 GNU CGICC -kirjasto

CGICC on ANSI-yhteensopivalle C++-kielelle toteutettu kirjasto, joka helpottaa

CGI-rajapinnan käyttöäja CGI-ohjelmien tekoa. Sen avulla voidaan muun muassa

käsitellä helpostiHTTP-POST- ja GET-pyyntöjensisältämiä lomaketietoja.Se tu-

kee myös tiedostojen lähettämistä HTTP:n kautta.Kirjasto sisältäärunsaasti apu-

luokkia ja metodeja, joiden avulla voidaan esimerkiksi tuottaa kätevästi HTML-

dokumenttejajaHTTP-vastauksenmuitaosia.CGICConmyösyhteensopivaFastC-

GI:nkanssa. [42℄

2.7 Muita käytettyjä kirjastoja

2.7.1 Java Remote Method Invoation

Java Remote Method Invoation eli Java RMI on kirjasto ja ohjelmointirajapinta,

jonka avulla Java-ohjelmat voivat kutsua metodeja ja käyttää olioita, jotka sijait-

sevat toisessa Javan virtuaalikoneessa mahdollisesti toisella tietokoneella. Tyypilli-

(21)

RMI-rajapinnatja ne toteuttavatoliot, joitavoidaan sitten käyttää rajapinnan yli.

RMI-nimirekisteriin on tallennettava RMI-oliot, jolloin asiakasohjelma voi hakea

viittauksen haluamaansa olioon rekisteristä. Asiakasohjelma voi saada viittauksen

etäolioonmyös metodin argumenttientai palautusarvonkautta. [43℄

(22)

3 Ominaisuuden lähtökohdat ja suunnittelu

3.1 Ominaisuus Planmea Compat -hoitokoneella

TämäntyönominaisuudentoteutuksenlähtökohtanaolisiisPlanmeantoisellehoi-

tokonetyypille, Compatille, toteutettu vastaava ominaisuus. Compatilla sen ase-

tukset on tallennettuna bitteinä suoraan muistiin tekstimuotoisten tiedostojen si-

jaan. Compat lähettää Romexikselle muiden tietojen mukana asetuksensa jatku-

vasti tasaisin väliajoin. Asetusbitit tallennetaan muuttujaan, jonka sisältö tallen-

netaan kantaan käyttäjän niin halutessa. Asetusten tallennukseen käytetään kahta

eritietokantataulua.Päätauluuntallentuu yksiriviperhaettuasetus.Käyttäjäkoh-

taiset ja konekohtaiset asetukset tallentuvat erilleen. Aputauluun tallennetaan sit-

ten useampia arvoja kustakin tallennetustaasetuksesta. Tallennettavia asioitaovat

viite samaan aikaan tallennettuun toiseen asetukseen, eli viite käyttäjäkohtaisista

asetuksista konekohtaisiin, asetukset tallentanut Romexis-käyttäjä, tieto asetusten

globaaliudesta,tallennusnimijaitseasetusbitit,jotkaoneroteltuuseammalleriville,

koska yhden rivindatakentän maksimikokoon2000 merkkiä. Bitit onsiiskoodattu

tekstiksikymmenkantaisena.

Vastaavasti asetuksia Compatille lähetettäessä lähetetään asetusbitit tietyssä

järjestyksessä pienemmissä erissä Compatin viestiliikenneprotokollan mukaisesti

muun viestiliikenteen seassa tietyissä paikoissa viestikehystä. Compat sitten kir-

joittaabitit muistiinsa oikealle alueelle.Compatilla kokemusta ominaisuuden käy-

töstä on lähinnä koneiden asennuksen yhteydestä, jolloin koneet on voitu helposti

asettaa samaan alkutilaan asennuksen päätteeksi. Yleinen mielipide on kuitenkin

selkeästi sellainen,että ominaisuudellaolisipaljonenemmänkinpotentiaalia,jasitä

pidetään hyödyllisenä lisänä ja hyvänä kilpailuvalttinakilpailijoihinnähden.

3.2 Sovereignin web-käyttöliittymä

Sovereignilleontehtyselaimellakäytettäväkäyttöliittymä,jollavoitehdämuutoksia

hoitokoneenyleisempiinkonekohtaisiinasetuksiin,huoltoasetuksiin,moottorinajoa-

setuksiinja joihinkininstrumenttiasetuksiin.Kuvissa 7ja 8näkyy lomakkeet, joilla

voidaanmuuttaayleisiäkonekohtaisiaasetuksiajainstrumenttiasetuksia.Sivutluo-

daanSovereigninHTTP-palvelimellaPerl-kielelläkirjoitetuillaCGI-skripteillä.Kun

lomakkeillatehdäänmuutoksiaasetuksiin,CGI-skriptitkäsittelevätmuutoksetjate-

kevätvastaavat muutokset oikeisiin tiedostoihin.Asetustiedostojen siirtoonkäytet-

tävätskriptit tehtiinmyösCGI-rajapintaa hyödyntäen, jottane voitaisiinmyöhem-

min helposti integroida olemassaolevaan hallintajärjestelmään. Selaimella voidaan

jo oikealla URL:llä hakea asetukset ja saada näkyviin lomake, jolla lähettää hoito-

koneelletiedostoja. Tiedostoja eikuitenkaan vielä käsitellä mitenkään. CGI-skripti

pitäisi muokata keskustelemaan Sovereignin pääohjelman kanssa ja ilmoittamaan

saapuneista asetustiedostoista. Myös käyttöliittymän pääsivulle pitäisi lisätä linkit

näihin CGI-skripteihin.

(23)

Kuva 7:Sovereigninweb-käyttöliittymän konekohtaisten asetusten muokkaussivu.

3.3 Sovereignin ACCU-kortin arkkitehtuuri ja sisäinen vies-

tintä

Sovereigninpääkortti onnimeltäänACCU. Silläpyöriisiis Sovereignin C++-ja C-

kielillä toteutettu pääohjelmisto sekä myöskin työssä hyödynnetty HTTP-palvelin.

Se on ainoa Sovereignin piirikorteista, joilla on tämän työn kannalta merkitystä.

ACCU:n ohjelmistopyöriiuseassaerillisessäitsenäisessäprosessissa, jotkakeskuste-

levattoistensakanssa käyttäen yhteistäkirjastoa. Kullekinprosessilleonmääritetty

omaviestirajapintansa.TärkeinprosesseistaonnimeltäänOperator,jokatoimiimui-

den prosessien välissä ja jolla on myös useita aliprosesseja. ACCU:n prosessit ovat

yhteydessä myös hoitokoneenmuiden laitteidenohjelmistoihinCAN-väylänkautta.

TärkeinACCU:nprosesseistatämäntyönkannaltaonkuitenkinnimeltäänPlanlink.

Se on hyvin itsenäinen prosessi, joka on kyllä yhteydessä Operatoriin, mutta hoi-

taa yksin keskustelun Romexiksen kanssa. Se pystyy hallitsemaan samanaikaisesti

kymmenen yhteyttä eri Romexiksenosiin jasäikeisiin. [44℄ [45℄ [46℄ [47℄

3.4 Romexis-arkkitehtuuri

Romexis-ohjelmisto koostuu siis käytännössä kolmesta osasta. Ne ovat Romexis-

(24)

Kuva 8:Sovereigninweb-käyttöliittymän instrumenttiasetusten muokkaussivu.

MultiProxy-nimellä,josniitä onkäynnissäuseita samassaprosessissa. Ohjelmistoja

voidaankäyttää erilaisissa kokoonpanoissa, joita onesitelty kuvissa 9 ja 10. Kuvis-

sahoitokoneenaonCompat, jotensiinäonmukanaPlanlink-ohjelmat, joistaomat

prosessinsaonpalvelimellajaasiakasohjelmalla.AsiakasohjelmankäyttämäPlanlink

voi, kuten kuvistanäkyy, toimiaeri koneellakuinitse asiakasaohjelma.Sovereignin

kanssa Planlinkiäeikäytetä, vaan hoitokoneeseenotetaansuoraanyhteydet palveli-

meltataiasiakasohjlemsta.Tällöinkinasiakasohjelmajapalvelintoimivatfyysisesti

erikoneilla,mikä eikuitenkaan olevälttämätöntä.

Romexis-ohjelmisto on toteutettu Java-kielellä käyttäen hyväksi sen natiiveja

käyttöliittymäkirjastoja, Swingiä ja AWT:tä. Erilaiset painallukset ja muut vuo-

rovaikutukset käyttöliittymänkanssa välittyväteteenpäin ohjelmassa tapahtumina,

jotka sitten ohjelma käsittelee. Tämän kyön kannalta oleellisimman Romexiksen

osan eli asiakasohjelman Clini Management -moduulin luokkarakennetta on ha-

vainnollistettu kuvassa 11. Tämän työn toiminnallisuus on sijoitettu RoomPanel ja

MonitoringPanel välilehdille. Yhteyttä palvelimelle on myös pidettävä, koska sen

yhteydessä sijaitsee tietokanta ja tiedostojärjestelmä,johon asetukset on tallennet-

tu. Data asiakasohjelman ja palvelimen välilläsiirtyy automaattisestiniiden välille

pystytetyn RMI-rajapinnankautta. [48℄[6℄ [7℄ [5℄

3.5 Sovereignin ja Romexiksen välinen viestirajapinta

Sovereignin ja Romexiksen välinen keskustelu perustuu TCP-protokollaan. Sove-

reignin käynnistyessä se ottaa yhteyttä Romexis-palvelimeen. Tämän jälkeen pal-

(25)

Kuva9:EsimerkkiRomexis-ohjelmistonkokoonpanosta tapauksessa,jossa Planlink

ja asiakasohjelmaovateritietokoneilla. [48℄

asiakasohjelmasaa palvelimeltanämä tiedot,jolloinasiakasohjelmavoiaina tarvit-

taessa avata oman yhteydensä hoitokoneeseen. Sovereignin ja Romexiksen väliset

viestitovatpääosintekstimuotoisia.Rajapintaan onmääritettytiettyjämäärämuo-

toisia viestejä, jotka on kummankin osapuolen tiedossa. Viestiliikennettä voi myös

seurata avaamalla yhteyden oikeaan porttiin hoitokoneella. Porttiin voi myös kir-

joittaa omia viestejään emuloiden näin Romexista. Sovereign hyväksyy kaikki yh-

teytensäRomexikseenPlanlink-prosessissaan.Samassaprosessissasemyöskäsittelee

Romexikseltasaamansa viestit.

Tässä työssä Romexisesimerkiksi kysyy hoitokoneelta,voidaanko asetuksiasiir-

tää lähettämällä viestin req.setting.transfer, johon hoitokone vastaa lähettä-

mällä myöntävän vastauksen rep.setting.transfer.ok tai kielteisen vastauksen

rep.setting.transfer.nok. Viestit saattavat sisältää myös välilyönneillä erotet-

tuja avain-arvo-pareja, joissa avain ja arvo on erotettu toisistaan yhtäsuuruusmer-

killä. Näillä voidaan välittää erilaisia lisätietoja viestien mukana. Esimerkiksi, kun

Romexis ilmoittaahoitokoneelle,että uusi asetustiedosto onlähetetty,sekertoosa-

malla asetustiedoston nimen ja sen, voidaanko kirjautumisesto purkaa ja tuleeko

hoitokone uudelleenkäynnistääuusien asetusten käyttöönoton jälkeen.[49℄

(26)

Kuva10:EsimerkkiRomexis-ohjelmistonkokoonpanostatapauksessa,jossaPlanlink

ja asiakasohjelmaovatsamalla tietokoneella. [48℄

3.6 Haastattelut

Tässä työssä Sovereign-hoitokoneelle toteutettu ominaisuus oli siis jo aiemmin to-

teutettu ja käytössä Compat-hoitokoneelle. Ominaisuus ei kuitenkaan ollut vielä

kovinlaajassakäytössä. Haastateltaviksiei yrityksestä huolimattasaatu lääkäreitä,

huoltomiehiä, teknikoita, asentajia taimuita hoitokoneidenkanssa toimiviayrityk-

sen ulkopuolisiahenkilöitä.Sen sijaanaiheestakeskusteltiinyrityksentuotekehitys-

jaaftersales -joukkojenkanssa.Ilmeisestityössä tehdylleominaisuudelleonkuiten-

kinollutkysyntääjasitäontoivottu.Ominaisuudestavoiollahyötyämonellatapaa.

Senlisäksi,että sitävoivatlääkäritkäyttäätyössäänisoillaklinikoilla,siitäonapua

myöshammaslääketieteenoppilaitoksissaisoissa opetustiloissa,joissaopettajatvoi-

vathelpostiasettaakaikilleoppilaillesamatasetuksetkaikkiinhoitokoneisiinyhdellä

kertaa.Myöshoitokoneitahuoltavatjaylläpitävätteknikothyötyvätominaisuudesta

sen helpottaessa heidän työtään. Yrityksen sisällä kokemusta on kuitenkin lähinnä

asennustöistä, joissa ominaisuudesta on ollut huomattavaa apua, kun koneiden al-

kuasetuksetovathoituneetkätevästi.Ennenominaisuuttaasetuksetonjouduttusiis

asettamaanjoko käsin, USB-asetusominaisuutta hyväksikäyttämällä taiasennusten

yhteydessä automaattisellaasennusskriptillä.Keskusteluissapohdittujakysymyksiä

onlistattualla.Luonnollisestisuurimpaanosaankysymyksistävoidaanvastatavain

Compatinosalta.Moniinkysymyksiineivieläsaatukokemuksen kauttavastauksia.

(27)

DiagnosticsModule implements IClinic diagnostics.Poll

summaries.MaintenancePoll diagnostics.DiagnosticsPoll

monitoring.MonitoringPoll

RoomPanel

MonitoringPanel ErgoDataPanel InfoPanel

FloorPanel

DiagnosticsPanel Server

Workstation package

romexis_server_resource.

diagnostics

Kuva11:HahmotelmaRomexiksen CliniManagement -moduulinluokkarakentees-

ta.[48℄

Miten ennenominaisuudentoteutusta hoitokoneidenasetusten päivitykseton hoidettu?

Tuliko idea ominaisuudelleasiakkailtavai keneltä?

Minkälaisessa käytössä ominaisuus on ollut esimerkiksi yliopistoilla tai isoilla klinikoilla?

Kuka ominaisuuttakäyttää?

Miten ja millaisissatilanteissa sitäkäytetään?

Onko Compatinja Sovereigninkäytöissä jotaineroa?

Mitämerkitystä ja hyötyä ominaisuudesta on?

Mitkäovat ominaisuudenvaatimuksest?

Onko ominaisuudesta saatu jonkinlaistapalautetta?

3.7 Asetustiedostot

Sovereign-hoitokoneen asetukset jaetaan kahteen päätyyppiin. Hoitokonekohtaiset

asetuksetovatnimensämukaisestihoitokoneenasetuksia,jotkaeivätvaihdukäyttä-

(28)

toksia,jotkaovatsamatkaikilleyhdenhoitokoneenkäyttäjille.Nämäasetuksetvaih-

tuvatkoneeltatoiselle,vaikkasamakäyttäjäkäyttäisierikoneita.Käyttäjäkohtaiset

asetukset ovat taas koneelletallennettuja eri käyttäjien omia asetuksia.Varsinaisia

käyttäjiä koneella voi olla kerrallaan viisi kappaletta. Lisäksi niin sanottua guest-

käyttäjääkäytetään,kunkonettakäytetäänulkoiselleUSB-Flash-muistilletallenne-

tuillaasetuksilla. Asetukset on talletettu hoitokoneen Unix-pohjaisen käyttöjärjes-

telmäntiedostojärjestelmääntekstipohjaisiin tiedostoihin.

Kaikki asetukset löytyvät tiedostojärjestelmän yhdestä kansiosta ja sen alikan-

sioista. Konekohtaiset asetukset löytyvät kaikki omasta alikansiostaan. Asetuksia

löytyy vielä useasta eri tiedostosta, vaikka tarkoitus on vähentää tiedostojen mää-

rää ja mahdollisesti saada kaikki asetukset sisällytetyksi yhteen tiedostoon. Tie-

dostoja onkahdeksan erillistä. Kaikki tiedostot siirretään yksinkertaisuuden vuok-

si Romexis-palvelimelta Romexis-asiakasohjelman kautta hoitokoneelle ja takaisin.

Kuitenkinasetuksia hoitokoneelle lähetettäessä vainosa tiedostoista lopultakorva-

taan ja yhdestä tiedostosta vain osa riveistä korvataan uusilla. Tämä johtuu siitä,

ettämonettiedostoistasisältävätasetuksia,jotkakoskevatvaintiettyähoitokonetta

taijoiden ei muusta syystä haluta siirtyvän koneelta toiselle. Yksi tiedosto sisältää

tietoja koneellesuoritetuista pesuista. Sitä ei siiskorvata. Sen sijaan tiedostot, jot-

ka sisältävät instrumenttien oletusasetukset, tuolin käsikäyttöisen ajon parametrit,

tuolin eri moottoreiden käyttörajoitukset ja valokovettimen ajastusasetukset kor-

vataan sellaisinaan. Tiedostoja, jotka kertovat vesilinjojen pesun puhdistusaineen

vaikutusajan ja tiedon eripesuihinliittyvistä tiloista ja edellisistäsuoritetuista pe-

suista,eimyöskäänhalutakorvata,sillänekinliittyvätselkeästivainyhteentiettyyn

hoitokoneeseen.

Tärkein hoitokoneen asetustiedostoista sitten sisältää suurimman osan kaikista

asetuksista. Tiedostosta poimitaan vain osa riveistä, joilla ylikirjoitetaan olemas-

saolevat valmiit rivit tai rivin puuttuessa lisätään uusi rivi. Kuten luonnollista on,

siirrettäviä asetuksia ovat sellaiset, jotka eivät suoraan kytkeydy johonkin tiettyyn

hoitokoneeseen. Tällaisia ovat muun muassa lääkärin tekemät muutokset hoitoko-

neen käyttöliittymään ja jotkin pienet muutokset laitteiston ja sen huoltotoimen-

piteiden asetuksiin. Sen sijaan kaikki laitteiston kokoonpanoon ja sen kalibrointiin

liittyvätasetukset jätetään kopioimatta. Myöskään hoitokoneenverkkoasetuksiin ei

kosketa.

Käyttäjäkohtaisetasetukset löytyvät asetuskansionjuuresta sekä sen altalöyty-

vistä käyttäjäkohtaisista hakemistoista, joita on omansa viidelle koneeseen tallen-

netulle käyttäjälle ja yhdelle USB-portin kautta asetuksensa tuovalle vierailevalle

käyttäjälle. Kaikkien kansioiden sisältämät tiedostot ovat pääpiiirteissään samat.

Joitain eroja löytyy muun muassa sen mukaan, onko käyttäjän nimeä vaihdettu,

onko käyttäjä muokannut eri instrumenttien tehdasasetuksia tai onko käyttäjällä

jotain muutoksia tallentamatta. Käyttäjien kansioista löytyy iso lista tiedostoja,

jotka liittyvät lähinnä instrumenttien asetuksiin ja esisäädettyihin tuolin asentoi-

hin erikokoisia potilaita ja eri toimenpiteitä varten. Lisäksi asetuskansion juuresta

löytyy tiedosto, joka sisältää kaikkien mahdollisten instrumenttien tehdas- eli ole-

tusasetukset. Sitä eisiirretä asetuksia kopioitaessa. Sen sijaankaikki eri käyttäjien

(29)

täinen käyttäjä on tehnyt muutoksia jonkin instrumentin oletusasetuksiin, löytyy

käyttäjän kansiosta tiedosto, johon kaikki muutokset suhteessa oletusasetuksiin on

listattu. Lisäksi, kun käyttäjä tallentaa muutoksensa, luodaan kansioon näille vie-

lä oma tiedostonsa. Tämä on tarpeen, että instrumenttien käyttö toimisi halutul-

la tavalla. Tämän takia asetukset on myös oltava kullekin instrumentille erikseen

kullekinmahdollisellehoitokoneeninstrumenttipaikalle.Käytössähänvoiollauseita

samantyyppisiäinstrumentteja.Tallentamattomieninstrumenttiasetustenhalutaan

säilyvän tietyissä käyttötapauksissa ja poistuvan toisissa. Esimerkiksi jos käyttäjä

muuttaa jotainjonkininstrumentinasetuksista, käyttääsitten toista instrumenttia

japalaaensimmäiseeninstrumenttiin, ovattehdytmuutoksetedelleenvoimassa.Ne

ovat säilyneet tiedostossa, jossa on tallentamattomat käyttäjän tekemät muutok-

set. Toisaaltajoskäyttäjälläontallentamattomiamuutoksiajossakinesiasetuksessa

ja valitsee sitten toisen esiasetuksen, ensimmäisen esiasetuksen tallentamattomat

muutokset menetetään.

Käyttäjäkohtaisista asetuksista löytyy myös tiedosto, joka sisältää käyttäjäni-

men, joskäyttäjä ontallentanutsellaisenitselleen.Yhdestä tiedostosta löytyy tieto

siitä, minkä kätisellelääkärillehoitokone onasennettu ja säädetty.Loput asetustie-

dostoistaliittyyhoitokoneentuolinasentoihinja ajoihin.Tiedostotsisältävätesital-

lennettujatuolinasentojaerikokoisillepotilailleja erilaisilletoiminnoille,kuten ylä-

taialaleuantutkimiselle tairöntgen-kuvienottamiselle. [50℄ [51℄

Hoitokoneen on myös suunniteltu tukevan eri niin sanottuja hoitotiloja, kuten

kirurginentilakirurgisiatoimenpiteitävarten ja kuvaustilahampaiden jaleuan ku-

vantamista varten. Kussakin hoitotilassa voisi käytössä olla eri instrumentit ja eri

asetukset niille. Lisäksi tuolin valmisasennot olisivat omansa. Hoitotilaa vaihdet-

taessamyöskaikkitallentamattomatmuutoksetmenetettäisiin.Tällä hetkellä tosin

hoitokonetukee vainyhtäyleistähoitotilaa.Jotta erihoitotilatvoitaisiintoteuttaa,

pitäisiluultavastilaittaaalikansioihinomatasetustiedostot kullekinhoitotilalle.[45℄

Työtä tehdessä pohdittiin mahdollisuutta yksinkertaistaa hoitokoneen asetus-

logiikkaa esimerkiksi vähentämällä tarvittavien tiedostojen määrää. Muun muassa

tavoitteenaolimahduttaakonekohtaisetasetuksetyhteentiedostoon.Toisaaltaolisi

ollutkätevää,joskalibraatioasetuksetlöytyisivätyhdestätiedostosta,muut tiettyyn

koneeseensidotutasetuksettoisestajakaikkisiirrettäväksitarkoitetutasetuksetkol-

mannesta omasta tiedostostaan. Kaikki nämä muutokset tulisi samalla suhteuttaa

yhtiön tuleviin hoitokoneisiinjapyrkiä yhteensopivuuteen jauudelleenkäytettävyy-

teen.Muutoksiineikuitenkaanryhdyttytässävaiheessa, koskaominaisuushaluttiin

ensin toteuttaatoimivanamahdollisimmanpian javastasitten lähteä mahdollisesti

kehittämään sitäeteenpäin. On myös mahdollista, että Sovereignin ohjelmistokor-

vataanuudella,jolloinvanhaanohjelmistooneihalutakuluttaa turhaantyötunteja.

3.8 Ominaisuuden vaatimukset

Työn aloitusvaiheessa ei ollut aivan selvää, millainen asetustenhallintaominaisuus

haluttiin toteuttaa, miten sen haluttiin toimivan ja millaisia ominaisuuksia siltä

vaadittiin. Näitä asioita mietittiinkin eri työryhmissä useasti ja yritettiin selvittää

(30)

siin käyttää joko pelkästään tai Romexiksen lisäksi myös Sovereignin käyttöliitty-

mästä. Lääkärin tullessa koneelle hän olisi voinut hakea koneelle haluamansa ase-

tukset Romexis-palvelimelta. Romexis olisi voinut lähettää Sovereignille kirjautu-

neelle käyttäjälle valittavana olevat asetukset ja lääkäri olisi voinut valita, mihin

viidestä käyttäjäpaikasta asetukset olisi otettu käyttöön. Samoin lääkäri olisi kos-

ka vain voinuttallentaa ja lähettääasetukset Romexikselle. Lääkäri olisisyöttänyt

asetuksille nimen, jonka perusteella hän olisi voinut myöhemmin tunnistaa tallen-

nuksen. Tämä olisi vaatinut mahdollisesti Romexikseen tarkistuksen, että annettu

nimioliuniikki.Konekohtaisiaasetuksiaeiolisilähetetty. Ominaisuusolisivaatinut

runsaasti muutoksiamyösSovereigninkäyttöliittymään jaRomexikseen esimerkiksi

tietokantojen osalta. Kaikkitallennetut asetukset olisi pitänyt pystyä linkittämään

uniikistijohonkinhoitokoneenkäyttäjäänjaitse hoitokoneeseen. Tätätoteutettaes-

saolisitodennäköisestijouduttu mahdollisestikiertämäänRomexis-asiakasohjelma,

ja laittaa hoitokone keskustelemaan suoraan Romexis-palvelimen kanssa. Romexis-

asiakasohjelmahan linkkaa tallennetut asetukset vain Romexikseen kirjautuneena

olevaankäyttäjään.Ominaisuudetpäätettiinkin jättäätoteuttamattaainakintässä

vaiheessa.

Lopultasiispäädyttiinkeskittymään ominaisuudentoteuttamiseen käytettäväk-

siRomexiksenpäästä.Mallinaolisiisvalmistoteutus Compat-hoitokoneelle,johon

mietittiin parannuksia. Mietittiin muun muassa sitä, kuinka helposti erotettaviksi

halutaantehdäkonekohtaisten jakäyttäjäkohtaisten asetusten haku ja palautus, ja

halutaankoyhdenkoneenerikäyttäjienasetuksettehdäyksittäinpalautettaviksivai

pitääkökaikkikäyttäjäasetuksetpalauttaayhdelläkertaa.Harkitiinmyöstallennet-

tujen asetusten linkkaamistajollaintavallatiettyyn koneeseen ja käyttäjäasetusten

käyttäjiin.Kunhoitokoneenohjelmistonversionumerotallennetaankullekinhaetulle

asetukselle, voitaisiintätä tietoakäyttäämyösvarmistamaan asetusten yhteensopi-

vuuskoneenversionkanssa.Yhteensopivuksiajakunkinversionvälisiämuutoksiaei

ollut kunnolla tiedossa ja tämän ominaisuuden toteutus olisi vaatinut jonkinlaisen

asetusten versionhallinnanrakentamisen ja runsaasti ylläpitotyötä tulevaisuudessa,

joten tästäkin luovuttiin ainakin toistaiseksi. Samaan aiheeseen liittyy myös idea

siitä, että asetustiedostojen sisältöjä olisijotenkin tarkistettumahdollisten virheel-

listen arvojen tai puuttuvien tietojen varalta. Samalla olisi tunnistettu kokonaan

vääränmuotoiset tiedostot. Ominaisuus oltaisiin voitu tehdä joko Romexiksen tai

Sovereignin päähän. Luonnollisempi lienee Sovereign, koska sielläon helpompi olla

selvillä,mitäasetuksiajuurisenohjelmistoversiojakokoonpanotarvitsee.Tätäkään

ideaa ei tässä vaiheessa vielä toteutettu, mutta konekohtaisten asetusten kohdalla

Sovereignosaalisätäpuuttuvatasetusarvottietyilläkoodistalöytyvilläoletusasetuk-

silla. Tämä olisi varmasti hyödyllinen toiminto myös käyttäjäkohtaisten asetusten

osalta.

Eräs mietitty parannus olise, että sen lisäksi, että hoitokoneessa voidaan käyt-

tää käyttäjäasetuksia USB-muistitikulta, näin voisi tehdä myös Romexis-koneen

kautta. Eli USB-tikun asetukset olisi voinut ottaa talteen Romexikselle tai lähet-

tääsuoraanhoitokoneelle,samallahoitokoneeltaolisivoitutallentaaerillisenäUSB-

muistitikullaolleetasetukset. Nämäparannukset olisivatvaatineetsuurempiamuu-

(31)

toihin.Tällöinominaisuusolisimyöskäyttäjännäkökulmastatoiminuteritavallaeri

hoitokonetyypeille.Tähäneisiislähdetty,vaanlopultaominaisuuspäätettiintoteut-

taa ulkoisesti samalla tavalla kuin Compatin vastaava ominaisuus. Näin päästiin

jälleenvähemmällätyölläja pienemmillämuutoksillaolemassaolleisiinrakenteisiin.

PinnanallatoteutusolitokierilainenCompatiinverrattuna.Ominaisuudentoteu-

tuksesta ja sen eroista kerrotaan lisääluvuissa 4 ja 5. Vaikka ominaisuuden halut-

tiinkintoimivansamallatavallakuinCompatinkohdalla,mietittiinkylläkuitenkin

Romexiksen käyttöliittymään yleisempiä parannuksia, joista kerrotaan myös lisää

myöhemmin. Muutoksiin lähdetään ehkä tulevaisuudessa suuremman Romexiksen

käyttöliittymäremontinyhteydessä.

Kun ominaisuuden vaatimukset oli määritelty, jouduttiin vielä miettimään joi-

tain käytännön kysymyksiä ominaisuuden käyttöön liittyen. Ensimmäinen kysymys

oli se että, miten suhtaudutaan hoitokoneen käyttämiseen asetuksia haettaessa tai

päivitettäessä. Saisiko asetuksia hakea tai ennen kaikkea, olisiko turvallista lähet-

tää asetuksia,kunhoitokoneolikäytössä?Olisiollutmahdollistakysyä käyttäjältä,

voitaisiinkoasetuksetsiirtäätaihaluttiinkouudetasetuksetottaakäyttöön.Turval-

lisuuden varmistamiseksi ja jälleen myös yksinkertaisuuden vuoksi päätettiin, että

hoitokoneella ei saisi olla asetuksia siirrettäessä kumpaankaan suuntaan käyttäjää

kirjautuneena.Lisäksipäätettiin,ettäeimahdollistetakäyttäjänuloskirjaamisenpa-

kottamistaRomexiksestakäsin, mistäkieltämättäolisihuomattavastiapua,josvoi-

daanesimerkiksiollavarmoja,ettäsuurenopetustilanmilläänkoneellaeiolekukaan

toimimassa,vaikkakaikissaolisikinkäyttäjäkirjautuneena.Nytjoudutaansiiskäydä

käsin kirjaamassa jokainen käyttäjä erikseenulos. Hoitokonelukitaan asetustensiir-

toa aloitettaessa siten, että koneelle ei voi kirjautua kesken prosessin. Jos prosessi

jostainsyystä keskeytyy taijokinviestieimeneperille asti,saattaakäydäniin,että

hoitokonejäätähänlukitustilaanjavaatiiuudelleenkäynnistyksenkoneenkäyttämi-

seksi.Yksitapaestäätämä,olisiliittääasetustensiirtoonjokuaikaraja,jonkajälkeen

lukitus avautuisi automaattisestijokatapauksessa. Tällöinpitäisipitää myöshuoli,

ettäasetustensiirtoaeijatketa,josviestivielätulee vaanhoitokoneentilapalautuisi

siirron aloittamista edeltävään tilaan. Asetuksien käyttöönottoon liittyy myös hoi-

tokoneen uudelleenkäynnistys. Käyttäjäkohtaiset asetukset tulevat käyttöön ilman

uudelleenkäynnistystä, mutta konekohtaiset asetukset vasta käynnistyksen jälkeen.

Päätettiinkin, että hoitokone käynnistää itse itsensä vain konekohtaisten asetusten

lähettämisenjälkeen. Jos lähetetäänsamalla kertaa myöskäyttäjäkohtaiset asetuk-

set, konekohtaiset lähetetään jälkimmäisenä.Koneenkäyttöliittymäeivaroita tule-

vasta uudelleenkäynnistyksestä eikätäten myöskään pyydä vahvistusta siihen,mikä

helpottaajälleenpäivittäjientyötä isojakonemääriäkerrallapäivitettäessä,eikäva-

roituksenpuutteellaväliäolekaan,koskakoneellaeikirjautunuttakäyttäjääole,eikä

kone siis ole käytössä. Toteutuksen suunnitteluun liittyy myös joitain asioita, joita

mietittiinenemmänkin. Näistäkerrotaan lisäätämän luvun seuraavissa osissa. [52℄

3.9 Tiedonsiirto

Vaikka monien eri työssä tehdyn ominaisuuden toteutettujen osien kohdalla tut-

Viittaukset

LIITTYVÄT TIEDOSTOT

Jaetaan luvut siten, että koko määrää vastaava luku tulee jakajaksi viivan alle ja kerrotaan lopuksi saatu tulos 100 %:lla.. Lasketaan, kuinka monta

Ensin mainitussa tavassa sosiaalisen pääoman indikaattoreina ovat esimerkiksi verkostosuhtei- den välittämien resurssien kattavuus, parhaat saavutettavissa olevat resurssit,

Aineistolähtöisen analyysin perusteella loimme tutkimuskysymys kohtaiset pää- teemat, joiden avulla voidaan tarkastella varhaiskasvatuksen opettajien kuvaa- mia

Kuluttajien käyttämättömien lääkkeiden palauttamista apteekkeihin pitää tehostaa johdonmukaisella tiedotta- misella. Lääkehukkaa voi- taisiin vähentää alentamalla

Työtä voidaan hyödyntää perusteltaessa, miten hammashoitokoneen ohjelmistotestausta voidaan parantaa ja tehostaa testiautomaatiolla sekä arvioitaessa hammashoitokoneen

Jos käyttäjä esimerkiksi klikkaa hiiren osoittimella tallenna-painiketta lisätessään sisältöä www-sivustolle, niin tällöin digitaalinen sisältö voidaan

Kanniainen pitää ihmistieteitä vaikeampina tieteinä kuin fysiikkaa, sillä hänen mielestään fysiikan elottomat tutkimuskohteet eivät muu- ta käyttäytymistään ajan

Ammattilaisilla tulisi myös olla vahva näkemys siitä, että rokotukset ovat tärkei ­ tä heidän itsensä ja haavoittuvassa asemassa ole­.. vien asiakkaiden ja