Hajautettujen transaktioiden käsittelyjärjestelmät

Koko: px
Aloita esitys sivulta:

Download "Hajautettujen transaktioiden käsittelyjärjestelmät"

Transkriptio

1 Hajautettujen transaktioiden käsittelyjärjestelmät M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Pearson Addison Wesley, 2006; sivut , luku 23 (architecture of transaction processing systems); sivut , luvun 19 (models of transactions) kohta (declarative transaction demarcation). A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Sixth Edition. McGraw-Hill, 2010; sivut , luvun 26 (advanced transaction processing) kohta 26.1 (transactionprocessing monitors). A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006; sivut , luvun 25 (advanced transaction processing) kohta 25.1 (transaction-processing monitors). 281

2 Yksi- ja kaksikerrosmallit, s Tallennetut proseduurit, s Kolmikerrosmalli, s Istunnot ja konteksti, s Jonotettu transaktionkäsittely, s Transaktiomonitori, s Transaktiomonitorin tarjoamat palvelut, s Etäproseduurikutsu, s Transaktionaalinen etäproseduurikutsu, s Transaktioiden käsittely Internetissä, s Www-sovelluspalvelimet: J2EE, s Java-pavun rakenne, s Papujen pysyvyydenhallinta, s Papujen transaktionhallinta, s

3 Yksi- ja kaksikerrosmallit Hajautettujen transaktioiden käsittelyjärjestelmä on kehittynyt perinteisestä keskitetystä monen käyttäjän järjestelmästä (centralized multiuser system), jossa voidaan erottaa seuraavat ohjelmisto- ja laitteistokomponentit: 1a. Keskuskoneessa omina prosesseinaan toimivat sovellusohjelmat, joiden kanssa käyttäjä kommunikoi koneeseen kiinteästi tai puhelinyhteyden välityksellä kytkettyjen tyhmien päätteiden välityksellä. 1b. Keskuskoneessa toimiva tietokannan hallintajärjestelmä, joka sisältää tietokantapalvelut (database servives), so. transaktioiden hallinnan (transaction management) ja keskuskoneen levyillä sijaitsevan tiedon saannin (data access) hallinnan. 283

4 Sovellusohjelma sisältää sekä esitys- ja sovelluspalvelut. Esityspalvelut (presentation services) huolehtivat tiedon näyttämisestä päätteen kuvaruudulla ja tiedon syöttämisestä sovellukseen. Sovelluspalvelut (application services) kommunikoivat tietokantapalvelimen kanssa. Kutakin sovellusprosessia palvelee jokin palvelinprosessi tai sen säie. Palvelin toimii kyselypalvelimena: sovellusprosessit lähettävät palvelimelle transaktion aloitus-, sitoutumis- ja peruutuspyyntöjä sekä SQL-operaatioita, ja palvelinprosessi palauttaa sovellusprosessille tiedon operaation onnistumisesta ja operaation tuloksen. Koska esitys-, sovellus- ja tietokantapalvelut sijaitsevat kaikki yhdessä ja samassa koneessa, tätä järjestelmämallia kutsutaan yksikerrosmalliksi (single-tiered model). 284

5 Kehityksen ensimmäisenä askeleena oli päätteiden korvaaminen asiakastyöasemilla, joissa sovellusohjelmat toimivat ja jotka kommunikoivat tietokantapalvelimen kanssa verkon välityksellä: 1. Eri asiakaskoneissa (client machine) toimivat sovellusohjelmat, jotka sisältävät esitys- ja sovelluspalvelut. 2. Tietokantapalvelinkoneessa (database server machine) toimiva tietokantapalvelin (kuten edellä). Tätä mallia kutsutaan kaksikerrosmalliksi (two-tiered model). Palvelin toimii kysely- eli transaktiopalvelimena sovelluksille kuten keskitetyssä tietokannassa, mutta erona on sovelluksen palvelupyyntöjen ja palvelimen niihin antamien vastausten välittyminen verkon yli. Palvelinkoneita on keskitetyn tietokannan tapauksessa yksi (mahdollisesti rinnakkaiskone) ja hajautetun tietokannan tapauksessa useita. 285

6 Tallennetut proseduurit Turvallisuussyistä sekä verkkoliikenteen vähentämiseksi sovellukset käynnistävät palvelupyyntöjään yksittäisten SQL-lauseiden sijasta useimmiten tallennettujen proseduurien kautta. Tallennettu proseduuri (stored procedure) on tietokantaan tallennettu SQL-aliohjelma, jonka voivat käynnistää siihen oikeutetut sovellukset. Esim. pankin tietokantapalvelin voi tarjota sovellusohjelmien käyttöön tallennetut proseduurit deposit() ja withdraw(), jotka suorittavat tilille panon ja tililtä oton. 286

7 Tallennettujen proseduurien käytöstä on merkittäviä etuja: Tallennetun proseduurin oletetaan olevan oikeellinen; oikeellisuutta ylläpidetään tietokantapalvelimessa. Kun asiakaskoneessa toimiva sovellus voi operoida tietokantaan ainoastaan tallennettujen proseduurien välityksellä, voidaan paremmin taata tietokantaan kohdistuvien transaktioiden oikeellisuus ja siis tietokannan eheyden säilyminen. Kun sovellukset operoivat tietokantaan ainoastaan tallennettujen proseduurien kautta, sovellusohjelman suunnittelijan ei edes tarvitse olla tietoinen tietokannan kaaviosta. Tietokannan kaavion myöhemmin muuttuessa on joitakin tallennettuja proseduureja todennäköisesti ohjelmoitava uudestaan, mutta sovellusohjelmiin ei välttämättä aiheudu mitään muutoksia. Tallennetun proseduurin sisältämät SQL-lauseet voidaan etukäteen kääntää ja valmistella suoritusta varten, jolloin niiden suoritus on tehokkaampaa kuin joka kerta uudestaan käännettävien ja tulkittavien SQL-lauseiden. 287

8 Palvelun tarjoaja voi helpommin antaa käyttäjälle oikeuksia suorittaa tiettyjä sovelluskohtaisia toimintoja. Esimerkiksi ainoastaan pankkivirkailija, eikä suinkaan asiakas, voi kirjoittaa varmennetun shekin. Käyttöoikeuksien valvonta SQL-lauseiden tasolla on vaikeampaa. Käyttäjän tililtäottotransaktio voi hyvinkin käyttää samoja SQLlauseita ja operoida samoihin tauluihin kuin varmennetun shekin tuottava transaktio. Ongelma ratkaistaan kieltämällä asiakkaalta suora pääsy tietokantaan ja sallimmalla asiakkaalle sen sijaan oikeus suorittaa tallennettu proseduuri withdraw() muttei tallennettua proseduuria issue-certified-check(). Yksittäisiä SQL-lauseita abstraktimman palvelun tarjoaminen vähentää verkon kautta välitettävän tiedon määrää. Sen sijaan, että kuljetettaisiin yksittäisten SQL-lauseiden tuottamia välituloksia palvelinkoneelta asiakaskoneelle, kaikki välitulokset voidaan käsitellä palvelimessa, niin että ainoastaan tallennetun proseduurin syöteparametrit välitetään asiakkaalta palvelimelle ja proseduurin tuottama lopullinen tulos palvelimelta asiakkaalle. 288

9 Kolmikerrosmalli Ajatusta korkeamman abstraktiotason palvelujen tarjoamisesta asiakaskoneelle voidaan viedä askelta pidemmälle. Transaktioiden käsittelyjärjestelmän kolmikerrosmallissa (threetiered model) sovellusmoduulin sisältämät esitys- ja sovelluspalvelut on sijoitettu eri koneisiin: 1. Asiakaskoneissa (client machine) toimivat esityspalvelut. 2. Sovelluspalvelinkoneessa (application server machine) toimiva sovelluspalvelin (application server), joka sisältää sovelluspalvelut. 3. Tietokantapalvelinkoneessa (database server machine) toimiva tietokantapalvelin (kuten edellä). Esityspalvelut vastaanottavat käyttäjän antamat syötteet, tekevät niille yksinkertaisia tyyppitarkistuksia ja lähettävät palvelupyynnön sovelluspalvelimelle. 289

10 Asiakaskoneiden erottamisesta sovelluspalvelinkoneista seuraa mm. seuraavia hyötyjä: (1) Asiakaskoneet voivat olla pienempiä (ja siten halvempia). Tämä on erityisen tärkeää sovelluksissa, joilla on satoja tai tuhansia samanaikaisia asiakkaita. (2) Järjestelmää on helpompi ylläpitää, koska yrityksen liiketoimintasääntöjen muutokset voidaan paikallistaa sovelluspalvelinkoneeseen eikä kaikkiin asiakaskoneisiin. (3) Järjestelmän turvallisuus paranee, koska yksittäinen käyttäjä ei voi päästä fyysisesti sovelluspalvelinkoneelle eikä niin muodoin voi helposti muuttaa sovellusohjelmia. 290

11 Sovelluspalvelin suorittaa pyydettyä palvelua vastaavan sovellusohjelman. Kuten ennenkin, tämä ohjelma toteuttaa yrityksen liiketoimintasäännöt, mihin kuuluu pyynnön toteuttamiseen oikeuttavien ehtojen tarkistus, asianomaisten tallennettujen proseduurien suorituspyyntöjen lähetys tietokantapalvelimeen, pyyntöjen vastausten käsittely ja vastausten palautus esityspalveluille. Sovellusohjelman näkökulmasta käyttäjän pyynnön palvelu on jono tehtäviä (task), joista sovellusohjelma muodostaa yhden transaktion sulkemalla tehtävät begin transaction- ja commit-kutsujen väliin. Tehtävä voi vaatia monimutkaisen ohjelman suorituksen, joka sisältää tietokantaan tallennettujen proseduurien kutsuja. Yleisemmin käyttökelpoinen tehtävä voidaan sijoittaa omaksi tallennetuksi proseduurikseen, jolloin se voidaan käynnistää useamman eri sovellusohjelman komponenttina. Menettely siis edistää ohjelmistokomponenttien uudelleenkäyttöä. 291

12 Asiakkaan pyynnön palvelu voi viedä sovelluspalvelimelta paljon aikaa. Eri asiakkaiden pyyntöjä voi olla useita odottamassa käsittelyä. Sovelluspalvelimen pitääkin pystyä käsittelemään pyyntöjä samanaikaisesti: kutakin palveltavaa käyttäjää varten on osoitettava erillinen sovelluspalvelimen prosessi tai sellaisen säie. Uuden prosessin tai säikeen käynnistämisen välttämiseksi sovelluspalvelimessa pidetään yllä vapaiden säikeiden allasta, josta osoitetaan tarvittaessa säie käyttäjää palvelemaan. Sovelluspalvelimesta voi olla olemassa useampia ilmentymiä, varsinkin kun asiakkaita on paljon. Sovelluspalvelimen jokainen ilmentymä voi toimia eri koneessa, joista kukin on kytketty tiettyyn osajoukkoon asiakaskoneita. Yksittäinen sovelluspalvelinkone ja sen palvelemat asiakaskoneet voivat olla maantieteellisesti lähellä toisiaan. 292

13 Joissakin kolmitasomallin toteutuksissa sovellusohjelmien käynnistämät tehtävät toteuttavat tallennetut proseduurit on sijoitettu tietokantapalvelimen sijasta erilliseen transaktiopalvelimeen: 1. Asiakaskoneissa toimivat esityspalvelut (kuten edellä). 2a. Sovelluspalvelinkoneissa toimivat sovelluspalvelimet, jotka lähettävät tallennettujen proseduurien suorituspyyntöjä transaktiopalvelimelle. 2b. Transaktiopalvelinkoneessa (transaction server machine) toimiva transaktiopalvelin (transaction server), joka suorittaa tallentamiaan proseduureja lähettämällä niiden sisältämiä SQL-lauseita suoritettavaksi tietokantapalvelimeen ja käsittelemällä SQL-lauseiden tuottamat tulokset. 3. Tietokantapalvelinkoneessa toimiva tietokantapalvelin (kuten edellä, muttei sisällä sovellusten tallennettuja proseduureja). Transaktiopalvelin sijaitsee yleensä lähellä tietokantapalvelinta, kun taas sovelluspalvelimet sijaitsevat lähellä asiakkaita. 293

14 Transaktiopalvelimestakin voi olla olemassa useampia ilmentymiä, jos on odotettavissa, että palvelin kuormittuu raskaasti. Transaktiopalvelimen ilmentymät muodostavat silloin palvelinluokan (server class). Työkuorman edelleen tasaamiseksi palvelinluokan ilmentymät voivat toimia eri koneissa, joista kukin on kytketty tietokantapalvelimeen. Yleisimmässä tapauksessa järjestelmässä on useita tietokantapalvelimia ja useita transaktiopalvelimia, missä kukin transaktiopalvelinkone on kytketty osaan tietokantapalvelinkoneita. Silloin yksittäinen transaktiopalvelin (palvelinluokan ilmentymä) tallentaa ja pystyy suorittamaan vain osan kaikista tallennetuista proseduureista. Sovelluspalvelimen on tiedettävä, missä transaktiopalvelimessa sijaitsee minkäkin tehtävän toteuttava proseduuri. 294

15 Transaktiopalvelimen erottaminen tietokantapalvelimesta on hyödyllistä seuraavissa tilanteissa: (1) Yrityksen eri yksiköt käyttävät eri proseduurijoukkoja operoidessaan yhteiseen tietokantaan. Näiden proseduurijoukkojen sijoittelu eri transaktiopalvelimille antaa yksikölle paremman mahdollisuuden valvoa omia proseduurejaan. Suuryrityksen kirjanpito- ja henkilöstöjärjestelmät operoivat samaan tietokantaan, mutta täysin eri proseduurein. (2) Yksittäisen proseduurin pitää operoida eri palvelinkoneilla sijaitseviin tietokantoihin. (3) Tietokantapalvelimen pitää käsitellä palvelupyyntöjä suurelta käyttäjäjoukolta, minkä vuoksi palvelimesta voi tulla järjestelmän suorituskyvyn pullonkaula. Tallennettujen proseduurien siirto pois tietokantapalvelimelta keventää työkuormaa. 295

16 Istunnot ja konteksti Kussakin edellä esitetyssä järjestelmämallissa esiintyy asiakkaiden ja palvelinten välisiä istuntoja (session). Kahden yksilön välillä on istuntoja, kun yksilöt kommunikoivat toistensa kanssa suorittaakseen jonkin tehtävän ja kumpikin ylläpitää tilainformaatiota eli kontekstia (context) roolistaan tehtävässä. Transaktionkäsittelyjärjestelmissä erityisen tärkeitä ovat yhteys- ja asiakaspalveluistunnot. Yhteysistuntoja (communication sessions) esiintyy kaksikerrosmallissa esitys- ja sovelluspalveluiden ja tietokantapalvelimen välillä ja kolmikerrosmallissa sekä esityspalveluiden ja sovelluspalvelimien välillä että sovelluspalvelimien ja tietokanta- tai transaktiopalvelimien välillä. Yhteysistunnon kukin osapuoli pitää yllä kontekstitietoa, kuten kumpaankin suuntaan lähetettyjen viestien järjestysnumeroita, osoitetietoa, salausavaimia ja yhteyden nykyistä suuntaa. Kontekstitietoa säilytetään kontekstilohkoksi (context block) kutsutussa tietorakenteessa. 296

17 Yhteysistunnon luominen ja lopettaminen edellyttävät viestien vaihtoa ja tilanvarauksia kontekstilohkoille. Tästä koituvan kustannuksen vähentämiseksi ei jokaista palvelupyyntöä varten luoda omaa istuntoa, vaan kerran luotu istunto pidetään pitkäkestoisena. Niinpä sovelluspalvelin ei luo uutta istuntoa joka kerta, kun on tarpeen saada palvelu tietokantapalvelimelta, vaan kerran näiden välille luotua istuntoa käytetään kaikkien sovelluspalvelimen lähettämien SQL-lauseiden suorituspyyntöjen palveluun siitä riippumatta, minkä asiakkaan palveluun SQL-lause liittyy. Kolmikerrosmallin eräs etu kaksikerrosmalliin on ylläpidettävien yhteysistuntojen pienempi lukumäärä. Tällä voi olla huomattava merkitys tuhansia asiakaskoneita ja useita tietokantapalvelimia käsittävässä järjestelmässä. 297

18 Olkoon järjestelmässä n 1 asiakaskonetta ja n 3 tietokantapalvelinta. Kaksikerrosmallin mukaisessa järjestelmässä on silloin pahimmassa tapauksessa käynnissä n 1 n 3 asiakkaiden ja tietokantapalvelinten välistä istuntoa. Kolmikerrosmallin mukaisessa järjestelmässä, jossa on n 2 sovelluspalvelinta, asiakkaan riittää perustaa vain yksi yhteys sovelluspalvelimeen. Pahimmassa tapauksessa istuntoja on yhteensä n 1 + n 2 n 3 kpl, mikä on huomattavasti pienempi kuin n 1 n 3, koska n 2 on paljon pienempi kuin n

19 Asiakaspalveluistuntoa (client/server session) varten palvelimen on tarpeen pitää yllä kontekstitietoa jokaista palvelemaansa asiakasta kohti. Tietokantapalvelimen palveltavana voi olla esimerkiksi asiakas, joka käy läpi taulua SQL:n kohdistimen (cursor) välityksellä. Asiakas suorittaa sarjan SQL-lauseita (open, fetch). Palvelimen on ylläpidettävä kontekstia, josta ilmenee, minkä rivin palvelin on viimeksi palauttanut. Kaupan verkkopistettä hallitseva palvelin ylläpitää ostoskorikontekstia jokaiselle asiakkaalle. Käyttäjän vuorovaikutuksesta syntyvä pyyntösarja päivittää ostoskorin tilaa. Palvelin ei halua joka pyynnön kohdalla uudestaan todentaa asiakasta ja tarkistaa, mitä tämä on oikeutettu tekemään. Sen vuoksi todennusja käyttöoikeusinformaatio tallennetaan istunnon kontekstiin. 299

20 Asiakaspalveluistunnon kontekstia voidaan ylläpitää eri tavoin: Palvelin voi ylläpitää asiakaskontekstiaan paikallisesti palvelimen ilmentymässä. Joka kerta, kun asiakas lähettää palvelupyynnön, palvelin noutaa asiakkaan kontekstin ja tulkitsee pyynnön suhteessa kontekstiin. Menettely toimii, jos asiakas aina kutsuu samaa palvelimen ilmentymää. Pyydetyn palvelun voi kuitenkin tarjota palvelinluokan mielivaltainen ilmentymä, jolloin yhden ilmentymän tallentama konteksti ei ole muiden käytettävissä. Jos asiakkaita on hyvin monta ja istunnot pitkiä, samanaikaisesti ylläpidettävät paikalliset kontekstit voivat merkitä palvelimelle huomattavaa taakkaa. Palvelin voi säilyttää kunkin asiakkaan kontekstia tietokannassa. Menettelyllä vältetään palvelinluokkien ongelma, mikäli luokan kaikki ilmentymät voivat operoida samaan tietokantaan. 300

21 Kun kontekstitieto säilytetään palvelimella tai tietokannassa, palvelimen täytyy paikallistaa asiakkaan konteksti pyynnön saapuessa. Paikallistamisongelma ratkaistaan ylläpitämällä kontekstikahvaa (context handle), joka on osoitin paikkaan, johon palvelin on tallentanut asiakkaan kontekstin. Palvelin välittää kontekstikahvan asiakkaalle palvelupyynnön vastauksen yhteydessä, ja asiakas palauttaa kahvan palvelimelle seuraavan pyynnön yhteydessä. Kahvaa tulkitsee vain palvelin; asiakas ei saa muuttaa sitä mitenkään. Esimerkkinä kontekstikahvoista mainittakoon Internetin asiakaspalvelusovelluksissa käytetyt piparit (cookie). Pipari voi toisinaan sisältää kahvan lisäksi myös itse kontekstitietoa. 301

22 Asiakkaan konteksti voidaan säilyttää asiakkaalla ja kuljettaa tarvittaessa edestakaisin palvelimen ja asiakkaan välillä. Palvelin palauttaa luomansa kontekstin asiakkaalle pyynnön palveltuaan. Asiakas ei pyri tulkitsemaan kontekstia, vaan yksinkertaisesti tallentaa sen ja välittää sen takaisin palvelimelle uuden pyynnön yhteydessä. Menettelyllä palvelin vapautuu tallentamasta kontekstia pitkäkestoisesti. Samoin vältetään palvelinluokkien ongelma. Arkaluontoinen kontekstitieto pitää salata, jottei asiakas voi päästä siihen käsiksi. 302

23 Kontekstia täytyy pitää yllä myös transaktiokohtaisesti, ei ainoastaan yhden asiakkaan ja yhden palvelimen välisestä palvelupyyntösarjasta. Transaktio voi sisältää useita pyyntöjä eri palvelimelle ja siis käsittää useita istuntoja. Tarkastellaan tilannetta, jossa asiakas c on perustanut istunnot palvelimiin s 1 ja s 2. Sekä s 1 että s 2 on tyydyttänyt c:n pyyntöjä käyttämällä tietokantapalvelinta s 3. Asiakaspalveluistuntoja on siis neljä: c s 1, s 1 s 3, c s 2, s 2 s 3. Oletetaan, että s 3 on s 1 :ltä vastaanottamansa pyynnön palvelemiseksi varannut lukkoja transaktiolle T tietokannan tietoalkioihin ja kirjannut päivityksiä lokiin T :n nimiin. Kun s 3 sitten palvelee s 2 :lta vastaanottamaansa pyyntöä, jota varten se suorittaa tietokantaoperaatioita transaktion T nimissä, täytyy s 3 :n käyttää transaktiokontekstia sen havaitsemiseksi, että kysymyksessä on sama transaktio. 303

24 Kun käyttäjä kirjoittautuu asiakaskoneeseen, käynnistetyn asiakasprosessin ja sille osoitetun (monisäikeisen) sovelluspalvelinprosessin säikeen välille perustetaan asiakaspalveluistunto. Asiakaskonteksti voidaan tallentaa sovelluspalvelinprosessin säikeen yksityiseen pinoon. Sovelluspalvelinprosessin globaaleissa tietorakenteissa, jotka ovat yhteistä kaikille säikeille, voidaan säilyttää yhteiset resurssit, joita palvelin ylläpitää kaikkien asiakkaiden tarpeisiin. Esimerkkeinä sellaisista yhteisistä resursseista ovat sovelluspalvelimen ja tietokantapalvelimen (tai transaktiopalvelimen) väliset yhteysistunnot. 304

25 Jonotettu transaktionkäsittely Transaktionkäsittelyjärjestelmän kaksikerrosmallia voidaan pitää tietokeskeisenä (data-centered), kun taas kolmikerrosmallia voidaan pitää palvelukeskeisenä (service-centered). Kummassakin mallissa asiakas ja palvelin ottavat osaa välittömään transaktionkäsittelyyn (direct transaction processing): Asiakas käynnistää palvelupyynnön ja sitten odottaa tulosta. Palvelin käsittelee pyynnön mahdollisimman nopeasti ja palauttaa vastauksen. Asiakas ja palvelin toimivat siis tahdistetusti. Jonotetussa transaktionkäsittelyssä (queued transaction processing) asiakas laittaa pyynnön palvelua odottavien pyyntöjen jonoon ja suorittaa sitten muita tehtäviä. Pyyntö otetaan jonosta, kun sen vuoro tulee tai kun palvelin on valmis tarjoamaan palvelun. Pyynnön palveltuaan palvelin laittaa vastauksen erilliseen tulosjonoon, josta asiakas ottaa sen aikanaan. Asiakas ja palvelin toimivat siis tahdistamatta. 305

26 Elpyvien eli pysyvien jonoja (recoverable queue, persistent queue) käytettäessä jonotusoperaatiot ovat transaktionaalisia. Pyynnön käsittely voi koostua kolmesta transaktiosta: 1. Asiakas suorittaa transaktion T 1, joka käsittää palvelupyynnön viemisen pyyntöjonoon. 2. Palvelin suorittaa transaktion T 2, joka ottaa pyynnön jonosta, palvelee pyynnön ja vie tuloksen tulosjonoon. 3. Asiakas suorittaa transaktion T 3, joka ottaa tuloksen tulosjonosta. 306

27 Jonotettu transaktionkäsittely tarjoaa erinäisiä etuja. Asiakas voi syöttää palvelupyynnön silloinkin, kun palvelin on kiireinen tai poissa toiminnasta, ja palvelin voi vuorostaan palauttaa tuloksia vaikkei asiakas olisi valmis niitä vastaanottamaan. Jos palvelin romahtaa kesken pyynnön palvelun, palvelutransaktio (T 2 ) keskeytyy ja palauttaa peruutusvaiheessaan pyynnön pyyntöjonoon. Pyyntö palvellaan palvelimen elvyttyä, ilman että pyynnön tehneen asiakkaan tarvitsee tehdä mitään. Pyyntö- ja tulosjono voivat olla yhteisiä usealle palvelimelle (palvelinluokan ilmentymälle), jolloin palvelinten työkuormaa voidaan tasata sopivalla jononkäsittelyalgoritmilla. 307

28 Transaktiomonitori Transaktioiden käsittelyn valvoja (transaction-processing monitor, TP monitor) transaktiomonitori on ohjelmistomoduulikokoelma, joka täydentää käyttöjärjestelmän tarjoamia palveluita transaktioilla. Käyttöjärjestelmä luo abstraktion samanaikaisesti toimivista prosesseista, jotka kommunikoivat toistensa kanssa viestinvälitysmekanismia käyttäen, sekä tarjoaa prosesseille valvotun pääsyn tietokonejärjestelmän yhteisiin fyysisiin resursseihin. Transaktiomonitori laajentaa tätä abstraktiota transaktioilla, jotka ovat suorituksessa samanaikaisesti hajautetussa järjestelmässä. Järjestelmähierarkiassa transaktiomonitori sijoittuu sovellustason ja käyttöjärjestelmätason väliin: 1. Sovellustaso. 2. Transaktiomonitori. 3. Käyttöjärjestelmä. 4. Fyysinen tietokonejärjestelmä. 308

29 Tyypillisiä transaktiomonitorin tarjoamia palveluita ovat mm. erilaiset yhteyskäytännöt, hajautettujen sovellusten turvallisuuspalvelut (käyttäjän todentaminen ja viestien salakirjoitus) sekä hajautettujen transaktioiden atomisuus, eristyvyys ja pysyvyys (kaksivaiheinen sitoutumiskäytäntö). Nämä palvelut voidaan tarjota sovelluksesta riippumattomalla tavalla; palvelut ovat yleiskäyttöisiä ja niitä voidaan käyttää monissa hajautetuissa sovelluksissa. Tunnettuja transaktiomonitoreita ovat mm. Tuxedo, Encina, Microsoft Transaction Server (MTS) ja Java Transaction Service (JTS). Kaikki tarjoavat joukon sovelluksesta riippumattomia palveluita, joita tarvitaan transaktioiden käsittelyssä mutta joita ei kuulu tavanomaiseen käyttöjärjestelmään. 309

30 Varhaiset transaktionkäsittelyjärjestelmät olivat homogeenisia (homogeneous, TP-lite) järjestelmiä, joissa sekä laitteisto että ohjelmisto olivat samalta toimittajalta ja jotka käyttivät toimittajan omia ohjelmistorajapintoja. Monet nykyiset transaktionkäsittelyjärjestelmät ovat heterogeenisiä (heterogeneous, TP-heavy), niin että ne toimivat yhteen monien eri laite- ja ohjelmistotoimittajien tuotteiden kanssa: eri laitealustoilla, eri käyttöjärjestelmissä ja eri yhteyskäytännöillä. Uudet sovellukset edellyttävät usein yhteentoimivuutta vanhojen, eri toimittajien tuottamien ja aiemmin itsenäisesti toimineiden perinnejärjestelmien (legacy systems) kanssa. Esim. yrityksen eri osastot ovat aikojen kuluessa kehittäneet omat ostojärjestelmänsä, mutta nyt halutaan koko yrityksen kattava ostojärjestelmä, joka kytkee yhteen kaikki paikalliset järjestelmät. Laitteisto- ja ohjelmistokomponentteja on saatavilla yhä useammilta toimittajilta, ja käyttäjät vaativat mahdollisuutta sisällyttää järjestelmään parhaat saatavilla olevat komponentit. 310

31 Heterogeenisen järjestelmän toteuttaminen edellyttää, että laiteja ohjelmistotoimittajat sopivat (1) standardoiduista, patentoimattomista liittymistä eli avoimista liittymistä (open interfaces), jotka määrittelevät järjestelmäkomponenttien vuorovaikutuksessa välitettävän tiedon sisällön ja muodon, sekä (2) ohjelmistoista, jotka välittävät tätä tietoa. Kun järjestelmään sisällytetään epästandardia patentoitua liittymää käyttävä perinnejärjestelmä, liittymien väliseksi sillaksi voidaan kirjoittaa kääreohjelma (wrapper program). Avoimien hajautettujen järjestelmien kehittämisen edistämiseksi on kehitetty monia ohjelmistotuotteita, joita kutsutaan väliohjelmistoiksi (middleware). Monet transaktiomonitorin sisältämät ohjelmistomoduulit ovat väliohjelmistoja. Ohjelmointikielten tietokantaliittymien JDBC ja ODBC toteutukset ovat esimerkkejä väliohjelmistoista, jotka mahdollistavat sovelluksen vuorovaikutuksen eri toimittajien tietokantapalvelimien kanssa. 311

32 Transaktiomonitorin tarjoamat palvelut Transaktiomonitori tarjoaa yleensä seuraavat palvelut: (1) Yhteyskäytännöt, joilla sovellusohjelmamoduulit kommunikoivat toistensa kanssa. Yhteyskäytännöt näkyvät sovellukselle ohjelmointirajapintana, jonka funktiot on transaktiomonitorissa toteutettu käyttöjärjestelmään kuuluvalla alemman tason viestinvälitysmekanismilla. Useimmiten käytettyjä yhteyskäytäntöjä ovat etäproseduurikutsut, vertaiskommunikaatio ja tapahtumakommunikaatio. (2) Transaktioiden koordinointi hajautettujen transaktioiden globaalin atomisuuden takaamiseksi; perustuu yleensä kaksivaiheseen sitoutumiskäytäntöön. Homogeenisessa järjestelmässä koordinointi voi olla integroitu järjestelmätoimittajan resurssinhallitsimiin (tietokannan hallitsimiin), mutta heterogeenisessa järjestelmässä koordinoinnista vastaa yleensä erillinen, kaupan hyllyltä valmiina saatava moduuli, transaktionhallitsin, joka sisältää sovelluksen kutsujen tx begin(), tx commit() ja tx rollback() toteutuksen. 312

33 (3) Lokinhallitsin ja lukkojenhallitsin sellaisia resurssinhallitsimia (kuten tavallista tiedostojärjestelmää) varten, jotka eivät itsessään sisällä mekanismia niihin operoivien paikallisten transaktioiden atomisuuden tai eristyvyyden takaamiseksi. Lokinhallitsin sisältää kutsut, joilla esim. tavallista tiedostoa päivittävä hajautettu transaktio voi kirjata eksplisiittisesti pysyvät lokikirjaukset tiedostoon tekemistään päivityksistä. Lukonhallitsin sisältää kutsut, joilla transaktio voi manuaalisesti lukita lukemansa tai kirjoittamansa tiedoston tai sen osan. (4) Kuormantasaus ja reititys (load balancing and routing) palvelinluokkia käyttäviä suuria transaktioiden käsittelyjärjestelmiä varten. Luokan palvelimet voidaan hajauttaa verkkoon tiedon saatavuuden parantamiseksi ja käsittelyn rinnakkaisuusasteen lisäämiseksi. Kun asiakas käynnistää palvelinluokan tarjoaman palvelun, transaktiomonitori voi reitittää kutsun mille tahansa luokan palvelimelle. Jotkin transaktiomonitorit käyttävät kuormantasausta tämän valinnan kriteerinä. Työkuormaa voidaan tasata palvelimille kiertovuorotai satunnaisalgoritmilla ja pitämällä kirjaa kunkin palvelimen käsittelemien istuntojen lukumäärästä ja valitsemalla palvelin, jonka kuorma on pienin. 313

34 (5) Elpyvät jonot; käytetään jonotetun transaktionkäsittelyn lisäksi myös yleisemmin tapauksissa, joissa sovellusmoduulien välisen kommunikoinnin halutaan olevan tahdistamatonta. (6) Turvallisuuspalvelut, kuten salakirjoitus, käyttäjien todentaminen ja käyttöoikeudet. (7) Transaktiomonitorissa toteutettu säikeistys (threading) sellaisia käyttöjärjestelmiä varten, joissa prosessit eivät ole säikeistettyjä. (8) Erilaiset tukipalvelimet, kuten ajoituspalvelin (eri koneiden kellojen tahdistamiseksi) ja yleiskäyttöinen tiedostopalvelin. (9) Jotkin transaktiomonitorit mahdollistavat tavanomaisten litteiden transaktioiden (flat transaction) ohella monitasoiset sisäkkäiset transaktiot (nested transaction). 314

35 Etäproseduurikutsu Asiakaspalvelujärjestelmässä asiakkaat yleensä keskustelevat palvelinten kanssa etäproseduurikutsuilla (remote procedure call, RPC): asiakas käynnistää proseduurikutsun, joka oikeastaan suoritetaankin palvelimessa, joka sitten palauttaa kutsun tuloksen asiakkaalle. Etäproseduurikutsun käynnistävä asiakkaan ohjelmakoodi näyttää paikalliselta proseduurikutsulta:...; p(x);... Asiakkaan ohjelmaan linkitetty proseduuri p on ns. asiakastynkä (client stub), joka muuntaa kutsun argumentit x palvelimen odottamaan muotoon, kokoaa ne yhdessä kutsuttavan proseduurin nimen kanssa osaksi palvelimelle lähetettävää viestiä ja lähettää viestin käyttäen käyttöjärjestelmän viestinvälitysmekanismia: proc p(x) { parametrien x muuntaminen; palvelupyyntöviestin kokoaminen ja viestin lähetys; vastauksen odotus; vastauksen muuntaminen ja palautus; }. 315

36 Palvelimen ohjelmakoodiin linkitetty palvelintynkä (server stub) vastaanottaa asiakkailta saapuvia viestejä, eristää parametrit, käynnistää tavallisen paikallisen proseduurin ja palauttaa tuloksen asiakastyngälle. while (saapuvia viestejä riittää) { viestin vastaanottaminen; proseduurin nimen p ja argumenttien x eristäminen viestistä; p(x); kutsun tuloksen muunto vastausviestiksi ja viestin lähetys; }. Sekä asiakkaan että palvelimen puolella käyttöjärjestelmän viestinvälitysrutiinien kutsut on piilotettu tynkiin. Paikallisen palvelimen ja etäpalvelimen kutsuminen asiakkaasta näyttävät samalta: kummassakin tapauksessa se näyttää asiakkaan koodiin linkitetyn paikallisen proseduurin kutsulta. Asiakkaan koodin ei siis tarvitse olla tietoinen palvelimen fyysisestä sijainnista. Näin toteutuu sijainnin tuntumattomuus. 316

37 Asiakkaat tuntevat palvelimen tämän julkisen liittymän avulla, joka sisältää asiakkaan tarvitsemat tiedot palvelimen proseduurin käynnistämiseksi: proseduurin nimen ja parametrien kuvaukset. Liittymä kuvataan liittymänmäärittelykielellä (interface definition language, IDL). IDL-kääntäjä kääntää liittymäkuvauksen otsikkotiedostoksi ja palvelinkohtaisiksi asiakas- ja palvelintyngiksi. Otsikkotiedosto sisällytetään sovellusohjelmaan käännösvaiheessa, ja asiakastynkä linkitetään asiakaskoodiin. IDL-tiedoston käyttö palvelimen liittymän kuvaamiseen rohkaisee avoimien järjestelmien kehittämistä. Asiakas ja palvelin voivat olla eri ohjelmistotoimittajilta, kunhan nämä sopivat liittymästä. 317

38 Palvelimen liittymä ei kuitenkaan määritä sen palvelinprosessin identiteettiä tai sijaintia, joka todellisudessa suorittaa kutsuttavan proseduurin. Sijainti ei välttämättä ole tiedossa käännösaikana tai se voi muuttua dynaamisesti. Palvelin saattaa olla toteutettu palvelinluokkana, jonka ilmentymät toimivat verkon eri pisteissä. Järjestelmässä täytyy olla ajonaikainen mekanismi asiakkaan sitomiseksi palvelinprosessiin dynaamisesti. Dynaamisen sitomisen mahdollistamiseksi jokaisen palvelimen S, joka on valmis palvelemaan asiakkaita, on rekisteröidyttävä johonkin keskitettyyn nimipalvelimeen (name server) tai hakemistopalvelimeen (directory server), joka on kaikkien asiakkaiden saatavilla. Rekisteröityessään S toimittaa hakemistopalvelimelle globaalisti yksilöivän nimensä (kaikkien asiakkaiden käyttämä merkkijono), verkko-osoitteensa, tarjoamansa liittymät sekä asiakkaiden kanssa käytävässä viestien vaihdossa soveltamansa yhteyskäytännöt. 318

39 Asiakastynkä lähettää hakemistopalvelimelle palvelimen nimen tai tietyn liittymän tunnisteen ja pyytää verkko-osoitetta ja yhteyskäytäntöä käytettäväksi kommunikointiin sennimisen palvelimen tai sillä tunnisteella varustetun liittymän tarjoavan palvelimen kanssa. Kun tarvittavat tiedot on saatu, asiakastynkä voi kommunikoida suoraan palvelimen kanssa. Hakemistopalvelin sijaitsee kaikkien asiakkaiden tuntemassa verkko-osoitteessa, joka on määrättävissä käyttämättä mitään toista nimipalvelua. Hakemistopalvelimella on keskeinen rooli hajautetussa tiedonkäsittelyssä. Jos hakemistopalvelin romahtaa, asiakkaat eivät enää pysty paikantamaan palvelimia, joten uusia hajautettuja transaktioita ei voida käynnistää. Järjestelmän toimintavarmuuden lisäämiseksi hakemistopalvelu voi itsessään olla hajautettu ja/tai toisinnettu verkon ylin. Tämä taas synnyttää tuttuja ongelmia, kuten toisinteiden ajantasaisuuden varmistaminen. 319

40 Transaktionaalinen etäproseduurikutsu Usemmat transaktiomonitorit tarjoavat transaktionaalisen etäproseduurikutsuliittymän (transactional RPC interface) palveluihinsa. Liittymä sisältää kutsuja, joita voidaan käyttää määrittelemään etäproseduurikutsujen sarja yhdeksi transaktioksi. X/Open-standardin mukainen transaktionaalinen etäproseduurikutsuliittymä sisältää jo aiemmin esillä olleet kutsut: (1) tx begin(), tx commit() ja tx rollback(), joilla sovellus kutsuu transaktionhallitsinta, (2) xa reg(), jolla resurssinhallitsin ilmoittaa transaktionhallitsimelle liittyneensä transaktioon, sekä (3) xa prepare(), xa commit() ja xa abort(), joilla transaktionhallitsin käskyttää resurssinhallitsimia transaktion kaksivaiheisen sitoutumiskäytännön suorituksessa. 320

41 Transaktion aloittaminen: 1. Asiakasohjelma kutsuu tx begin(). 2. Asiakastynkä lähettää transaktionhallitsimelle uuden transaktion aloituspyynnön ja jää odottamaan vastausta. 3. Transaktionhallitsin tuottaa uuden transaktiotunnisteen T, säilyttää sen ja palauttaa sen asiakastyngälle. 4. Asiakastynkä vastaanottaa T :n, säilyttää sen ja palauttaa sovellukselle onnistuneen kutsun paluukoodin. 5. Asiakasohjelma jatkaa suoritustaan tx begin()-kutsua seuraavasta lauseesta. 321

42 Tietokantapalvelimen (tai yleisemmin resurssinhallitsimen) kutsuminen: 1. Asiakasohjelma pyytää SQL-lauseen suoritusta. 2. Asiakastynkä lähettää SQL-lauseen yhdessä transaktiotunnisteen T kanssa tietokantapalvelimelle S ja jää odottamaan vastausta. 3. Mikäli kysymyksessä on transaktion T ensimmäinen palvelupyyntö palvelimelle S, niin S kutsuu xa reg(t). Kutsu toteutuu S:n palvelintyngän sisältämän kommunikaatiomekanismin avulla. 4. Palvelin S palvelee SQL-lauseen suorituspyynnön suorittamalla erinäisiä paikallisia kutsuja ja palauttaa tuloksen asiakkaalle. 5. Asiakasohjelma jatkaa suoritustaan. 322

43 Transaktion sitoutuminen: 1. Asiakasohjelma kutsuu tx commit(). 2. Asiakastynkä lähettää transaktionhallitsimelle transaktion T sitoutumispyynnön ja jää odottamaan vastausta. 3. Transaktionhallitsin aloittaa T :n kaksivaiheisen sitoutumisen käskyttämällä kutsulla xa prepare() kaikkia T :hen osallisia resurssinhallitsimia S. 4. T :n kunkin osallisen S palvelintynkä vastaa transaktionhallitsimen lähettämään valmistautumisviestiin. 5. Transaktionhallitsin päättää sitouttaa T :n käskyttämällä T :n osallisia S kutsulla xa commit() tai päättää keskeyttää T :n käskyttämällä T :n osallisia S kutsulla xa abort(). 6. T :n kunkin osallisen S palvelintynkä vastaanottaa transaktionhallitsimen käskyn sitouttaa tai keskeyttää T, ja sen mukaisesti S joko sitouttaa tai keskeyttää T :n S:ssä toimivan alitransaktion. 323

44 Tynkien tehtäviin kuuluu käsitellä asiakkaiden ja palvelinten yhteyksissä esiintyvät häiriöt. Jos tynkä on odottanut vastausta viestiinsä yli määräajan, sen pitää mahdollisesti lähettää viesti uudestaan samalle palvelimelle tai jollekin toiselle saman palvelinluokan palvelimelle tai sitten keskeyttää asiakas. Vastausviestin saapumatta jäämiselle tai viivästymiselle voi olla eri syitä, kuten viestin menetys tai palvelimen romahtaminen, ja yhdessä tilanteessa sopiva korjaustoimenpide ei välttämättä ole sopiva toisessa. Jos tynkä lähettää palvelimelle S palvelun aloituspyynnön toistamiseen, palvelu saattaa tulla toteutetuksi kahdesti. Jos taas palvelupyyntöä ei toisteta, tynkä ei voi olettaa, ettei palvelua olisi suoritettu, sillä palvelupyyntö on voinut mennä perille ja tulla käsitellyksi, mutta vastausviesti on kadonnut. 324

45 Tyngän täytyy taata joko (1) pyydetyn palvelun suoritus täsmälleen kerran palvelimessa S, jolloin transaktio saa jatkaa suoritustaan, tai (2) että pyydettyä palvelua ei suoriteta lainkaan ja (jos palvelua ei voi tarjota muukaan palvelin) että transaktio keskeytetään. Vaadittua ominaisuutta kutsutaan täsmälleen kerran semantiikaksi (exactly-once semantics). Tilanne mutkistuu entisestään, jos palvelin S on pyydettyä palvelua suorittaessaan käynnistänyt toisen palvelimen S. Jos S:n piste romahtaa ja S toimii muualla verkossa, S jää orvoksi (orphan): S :n tehtävällä ei enää ole vanhempiprosessia, jolle raportoisi. Täsmälleen kerran semantiikan takaaminen tällaisissa tapauksissa ei ole triviaalia. 325

46 Transaktioiden käsittely Internetissä Moniin Internet-palveluihin liittyy hajautettuja transaktioita ja heterogeenisiä järjestelmiä. Palveluita tarjoavat www-palvelimet (web server), jotka pystyvät kommunikoimaan www:n yli. Usein wwwpalvelimelta vaaditaan kykyä käsitellä jopa tuhansia transaktioita sekunnissa. Järjestelmät voidaan karkeasti erotella kahteen luokkaan: (1) asiakkaan ja yrityksen välisiin ja (2) yritysten välisiin. Asiakkaan ja yrityksen väliset (customer-to-business, C2B) järjestelmät ovat tuttuja kaikille Internetin käyttäjille. Esimerkiksi Amazon.com-verkkokirjakaupan välityksellä kuka tahansa asiakas voi tilata ja maksaa kirjoja. Ostotransaktioon liittyy käyttäjän vuorovaikutusta, jossa haluttuja sivuja haetaan ja näytetään asiakaspisteen selaimella ja syötekenttiin kirjoitetaan tietoa ja toimintoja käynnistetään napsauttamalla linkkejä ja painikkeita. 326

47 Yritysten väliset (business-to-business, B2B) järjestelmät ovat monimutkaisempia, sillä ne ovat täysin automatisoituja. Yhden yrityksen www-pisteessä toimiva ohjelma kommunikoi toisen yrityksen www-pisteessä toimivan ohjelman kanssa ilman ihmisen vuorovaikutusta tai www-selainta. Järjestelmä voi sisältää monimutkaisia sopimuskäytäntöjä ja merkittäviä kaupallisia transaktioita. Internet-palvelujärjestelmä voidaan jaotella edustaan ja taustaan. Edusta (front end) käsittelee liittymää, jonka järjestelmä tarjoaa asiakkaille ja yrityksille, ts. kuinka järjestelmä kuvaillaan käyttäjille ja kuinka järjestelmä käynnistetään. Tausta (back end) sisältää sovelluksen varsinaisen toteutuksen, joka palvelun lopulta tarjoaa. Seuraavassa käsitellään lyhyesti asiakkaan ja yrityksen välisiä järjestelmiä, joissa edusta toteutetaan www-selaimen ja tausta hajautettujen transaktioiden käsittelyjärjestelmän avulla. 327

48 Www:n transaktionkäsittelyjärjestelmä hyödyntää usein kahta Javakielen konstruktiota: sovelmaa ja palvelinsovelmaa. Kun asiakkaan ja yrityksen välistä vuorovaikutusta toteuttava wwwpalvelin lähettää www-sivun asiakkaan selaimelle, se voi sisällyttää sivuun Java-kielisiä ohjelmia, sovelmia (applet), jotka suoritetaan suoritetaan selaimen ohjelmointiympäristössä. Selain näyttää vastaanottamansa www-sivun ja suorittaa siihen liittyvät sovelmat. Www-sivuun sisältyy käyttäjältä yleensä kätkettynä (1) sen www-palvelimen verkko-osoite (URL), johon käyttäjän antama tieto lähetetään, sekä (2) sen kyseisessä palvelimessa toimivan sovelluksen nimi, jolla käyttäjän antama tietoja on tarkoitus käsitellä. Sovelmat ovat siis asiakkaanpuolisia sovelluksia. 328

49 Palvelinsovelma (servlet) on palvelimella sijaitseva Java-ohjelma. Se käyttää standardia Java servlet -sovellusohjelmointirajapintaa, joka sisältää monia palvelimenpuolisten sovellusten totetuksessa tarvittavia toimintoja. Rajapinta sisältää esimerkiksi Java-metodeja HTML-sivujen sisältämän tiedon lukemista ja kirjoittamista varten. Palvelinsovelman elinaika ulottuu yksittäisen käyttäjän vuorovaikutuksia pitemmälle. Kun palvelinsovelma käynnistetään, se luo joukon säikeitä, joita osoitetaan dynaamisesti palvelemaan saapuvia palvelupyyntöjä. Palvelupyynnöt noudattavat yleensä HTTP-käytäntöä, ja niitä voi lähettää selain tai toinen sovellus. 329

50 Tarkastellaan kolmea mahdollista tapaa organisoida asiakkaan ja yrityksen välisiä paveluita Internetissä tarjoava transaktionkäsittelyjärjestelmä: kaksi-, kolmi- ja nelikerrosmallit. Kaksikerrosmallissa (two-tiered model) selain toimii sekä esitysettä sovelluspalvelimena, ja tietokantapalvelin sijaitsee www-palvelimen Internet-pisteessä: 1. Asiakaskoneessa toimiva www-selain, joka sovelmien avulla toteuttaa esitys- ja sovelluspalvelut. 2. Palvelinkoneessa toimivat www-palvelin ja tietokantapalvelin. Www-palvelimen palvelinsovelmasäie vastaa asiakkaan selaimen pyyntöön HTML-sivulla ja siihen sisältyvällä, liiketoimintasäännöt toteuttavalla sovelmalla. Käyttäjän täytettyä asianmukaiset sivun kentät sovelma suoritetaan selaajasta. 330

51 Sovelma saattaa aloittaa transaktion ja lähettää sitten SQL-lauseita tai tallennettujen proseduurien kutsuja suoritettaviksi tietokantapalvelimella. Sovelma kommunikoi tietokantapalvelimen kanssa JDBC-liittymän kautta. JDBC-ajuri saatetaan toimittaa sovelman kanssa www-palvelimelta, jolloin se luo verkkoyhteyden asiakaskoneesta tietokantapalvelimeen, tai sitten JDBC-ajuri sijaitsee www-palvelimella ja vastaanottaa komentoja selaajalta palvelinsovelmasäikeen kautta. 331

52 Kolmikerrosmallissa (three-tiered model) selain toimii esityspalvelimena ja www-palvelimen palvelinsovelmasäie toimii sovelluspalvelimena: 1. Asiakaskoneessa toimiva www-selain, joka toteuttaa esityspalvelut. 2. Www-palvelinkoneessa toimiva www-palvelin, joka toteuttaa sovelluspalvelut. 3. Tietokantapalvelinkoneessa toimiva tietokantapalvelin. Kun asiakas ottaa yhteyden www-palvelimeen, palvelinsovelmasäie lähettää HTML-sivun käyttäjän vuorovaikutusta varten. Käyttäjän täytettyä sivun kentät ja lähetettyä sivun palvelimelle vuorovaikutusta varten osoitetaan liiketoimintasäännöt toteuttava palvelinsovelmasäie. Nyt palvelinsovelmasäie, eikä sovelma, saattaa aloittaa transaktion tietokantapalvelimella. Saatuaan tehtävän suoritetuksi palvelinsovelma palauttaa HTML-sivun selaimelle. 332

53 Useimmat korkean suoritustehon sovellukset perustuvat nelikerrosmalliin (four-tiered model), jossa on kolme kerrosta palvelimen puolella (mahdollisesti eri verkkopisteissä) ja yksi kerros asiakkaan puolella: 1. Asiakaskoneessa toimiva www-selain, joka toteuttaa osan esityspalveluista. 2. Www-palvelinkoneessa toimiva www-palvelin, joka osoittaa asiakkaan palvelupyynnön sopivalle sovelluspalvelimelle ja toteuttaa osan esityspalveluista. 3. Sovelluspalvelinkoneessa toimiva sovelluspalvelin, joka toteuttaa sovelluspalvelut. 4. Tietokantapalvelinkoneessa toimiva tietokantapalvelin. 333

54 Asiakas on yhteydessä www-palvelimella toimivaan palvelinsovelmasäikeeseen, joka käsittelee selaajan palauttaman tiedon. Wwwpalvelin saattaa vastata käyttäjän pyyntöön toimittamalla selaimelle uuden HTML-sivun tai käynnistämällä sopivan ohjelman sovelluspalvelimella. Sovelluspalvelin toimii eri koneella, joka saattaa olla erotettu www-palvelinkoneesta palomuurilla muista lähteistä saapuvien ylimääräisten viestien torjumiseksi. Sovelluspalvelimella toimiva sovellusohjelma voi käynnistää tietokantapalvelimen tietoon operoivia transaktioita. Tietokantapalvelinkone voi olla erotettu sovelluspalvelinkoneesta eri palomuurilla. Sovellusohjelman saatua tehtävänsä suoritetuksi ja palautettua vastauksen www-palvelimen palvelinsovelmasäikeelle tämä valmistaa sopivan HTML-sivun ja palauttaa sen selaimelle. Sovelluspalvelimen näkökulmasta selain ja www-palvelin yhdessä toteuttavat esityspalvelut. 334

55 Nelikerrosmalli sopii erityisen hyvin korkeaa suoritustehoa vaativiin sovelluksiin, koska se sallii useampia sovelluspalvelimia. Wwwpalvelimessa saattaa olla kuormantasausmoduuli, joka kulloinkin valitsee tietyn sovelluspalvelimen käyttäjän istuntoa varten. Sovelluspalvelin saattaa operoida useisiin saman yrityksen tietokantapalvelimiin (esim. varasto-, toimitus- ja laskutustietokantoihin) sekä myös muiden yritysten tietokantapalvelimiin (esim. luottokorttimaksun käsittelyä varten). Erittäin korkean suoritustehon sovelluksia varten www-palvelimiakin saattaa olla useampia. Silloin tarvitaan ylimääräinen kerros HTTP-reitittimiä, jotka ovat suoraan yhteydessä Internettiin ja joiden tehtävänä on välittää HTTP-pyyntö sopivalle www-palvelimelle. Suoritustehon edelleen lisäämiseksi eri kerroksilla tarvittavaa tietoa voidaan säilyttää välimuisteissa (cache). Www-palvelin voi säilyttää välimuistissaan usein käytettyjä HTML-sivuja. 335

56 Www-sovelluspalvelimet: J2EE Www-sovelluspalvelin (Web-application server, application server) on ohjelmistotuote, jonka avulla voidaan rakentaa Internetissä toimivia transaktioiden käsittelyjärjestelmiä. Www-sovelluspalvelin tarjoaa samanlaisia toimintoja kuin transaktiomonitori ja sisältää erityisesti www-sovelluksiin suuntautuneita palveluita. Useimmat kaupalliset www-sovelluspalvelimet on rakennettu J2EE-teknologiaa (Java 2 Enterprise Edition) käyttäen; Microsoftin www-sovelluspalvelin perustuu.net-teknologiaan. J2EE sisältää pavuiksi (bean) kutsuttuja Java-luokkia, joita voidaan sovittaa sovellukseen yrityksen liiketoimintasäännöt toteuttaviksi metodeiksi. J2EE:llä voidaan luoda Java-palvelinsovelmia sekä erilaisia www-sovelluksiin suunniteltuja transaktioiden hallintaan liittyviä palveluita. 336

57 Yrityspavut (enterprise bean) ovat Java-luokkia, joita voidaan käyttää kapseloimaan yrityksen liiketoimintasäännöt. Yrityspapu käynnistyy yleensä palvelinsovelmasta. Yrityspapuja on kolmentyyppisiä: yksilöpapuja, istuntopapuja ja viestin ohjaamia papuja. Yksilöpapu (entity bean) esittää pysyvää liiketoimintaoliota, jonka tila tallennetaan tietokantaan. Tyypillisesti kukin yksilöpapu vastaa tietokantataulua ja pavun kukin ilmentymä vastaa taulun riviä. Esimerkiksi pankkisovelluksessa voisi olla account-niminen yksilöpapu, jossa on kentät account-id, owner-name, social-securitynumber ja balance sekä metodit deposit ja withdraw. account-papu voisi vastata samannimistä tietokantarelaatiota, jossa on samannimiset attribuutit. Jokainen account-pavun ilmentymä vastaa yhtä account-taulun riviä. Jokaisella yksilöpavulla pitää olla yksilöivä avain (pääavain). account-pavulle sellainen on account-id. 337

58 Yksilöpapuja voidaan käyttää sovellusohjelmassa kuten mitä tahansa muuta olioluokkaa. Erona on, että kaikki yksilöpapuun ohjelmassa tehdyt päivitykset ovat pysyviä, so. ne levitetään vastaavaan tietokannan tietoalkioon. Niinpä esimerkiksi kaikki balance-kentän arvon muutokset account-pavun johonkin ilmentymään näkyvät vastaavan attribuutin päivityksinä vastaavassa relaation monikossa. Pysyvyyttä voi hallita papu itse sovellusohjelmoijan kirjoittaman SQL-koodin avulla tai järjestelmä automaattisesti. Jokainen yksilöpapu on suoritettava osana transaktiota. Koska yksilöpavun tilaa säilytetään tietokannassa, yksilöpapu säilyy elossa sen yksittäistä suorituspyyntöä pidempään ja selviytyy hengissä järjestelmän romahduksestakin. 338

59 Istuntopapu (session bean) luodaan, kun asiakas aloittaa vuorovaikutuksen järjestelmän kanssa. Istuntopapu ylläpitää asiakkaan istunnon kontekstia ja tarjoaa asiakkaan pyynnöt toteuttavat metodit. Esimerkiksi verkkokaupan shopping-cart-istuntopapu voisi tarjota metodit, joilla asiakas lisää tavaroita ostoskoriin selatessaan tavaraluetteloa ja valitessaan siitä ostettavia tavaroita. Tällaisia metodeja voisivat olla add-item-to-shopping-cart ja check-out. shopping-cartistuntopavun ilmentymän ylläpitämä konteksti identifioi asiakkaan ostoskorin sisältämät tavarat. Istuntopapu voi myös olla tilaton, jolloin se ei ylläpidä kontekstia pyyntöjen välillä. Esimerkkinä tilattomasta istuntopavusta on stock-quote, jonka ilmentymä vastaa jonoon asiakkaan yksittäisiä kyselyitä pörssinoteerauksista. Tässä tapauksessa kontekstia ei tarvita, vaan kaikki pyynnön tyydyttämiseksi tarvittava tieto sisältyy metodikutsun parametreihin. 339

60 Istuntopavun elinaika on vain yhden istunnon mittainen. Istuntopavun tila ei siis säily istunnosta toiseen eikä järjestelmän romahduksessa. Ostoskorisovelluksessa sanoisimme, että asiakas saa kauppaan saapuessaan oman ostoskorinsa, jonka hän palauttaa kaupasta poistuessaan. Istuntopapu voi käyttää yksilöpapujen palveluksia. Kun asiakas haluaa päättää tilauksensa ostamalla ostoskoriinsa valitsemansa tavarat, kutsutaan check-out-metodia. Tämä puolestaan kutsuu customer-, order- ja shipping-yksilöpapujen metodeja kirjatakseen kaupan tietokannan tauluihin. Istuntopapu voi myös kutsua toisia istuntopapuja, jotka mahdollisesti sijaitsevat muilla J2EE-palvelimilla, mikäli tarvitsee niiden palveluita. Esimerkiksi varojen siirtämiseksi eri pankkien tilien välillä ensimmäisen pankin istuntopapu saattaa tarvita toisen pankin istuntopavun palveluita. 340

61 Istuntopavun metodi voi olla transaktionaalinen. Esimerkiksi shopping-cart-istuntopavun check-out-metodi voisi käynnistää transaktion. Istuntopavun käynnistämiä transaktioita voi hallita papu itse standardia JDBC-koodia käyttäen tai järjestelmä automaattisesti. Verkkokauppasovelluksen nelikerrostoteutus: 1. Asiakaskone, jossa toimiva www-selain käynnistää wwwpalvelimen palvelinsovelman. 2. Www-palvelin, jossa toimiva palvelinsovelma kutsuu shoppingcart-istuntopavun metodia. 3. Sovelluspalvelin, jossa shopping-cart-istuntopavun metodi kutsuu customer-, order- ja shipping-yksilöpapujen metodeja; yksilöpavut tekevät tiloistaan pysyviä. 4. Tietokantapalvelin, joka ylläpitää pysyvien customer-, order- ja shipping-yksilöpapujen tiloja. 341

62 Istunto- ja yksilöpapujen metodikutsuihin perustuva kommunikaatio on tahdistettua. Www-palvelimen palvelinsovelma käynnistää sovelluspalvelimen istuntopavun metodin ja jää odottamaan vastausta. Istuntopapu puolestaan kutsuu yksilöpavun metodia ja jää odottamaan vastausta. Tahdistamatonta kommunikaatiota varten J2EE tarjoaa viestin ohjaamat pavut (message-driven bean). Viestin ohjaama papu muistuttaa istuntopapua siinä, että se toteuttaa jonkin yrityksen liiketoimintasääntöjä säilyttämättä tilaansa metodikutsujen välillä. Viestin ohjaaman pavun metodin kutsujan ei kuitenkaan tarvitse jäädä odottamaan kutsun suorituksen valmistumista. Kutsuja voi olla istuntopapu, yksilöpapu tai toinen viestin ohjaama papu tai mikä tahansa Javan viestipalvelua (Java Message Service, JMS) käyttävä järjestelmä tai komponentti. Kutsuja käynnistää viestin ohjaaman pavun lähettämällä sille viestin. Viesti puskuroidaan elpyvään JMS-viestijonoon. 342

63 Kun uusi viesti saapuu JMS-viestijonoon, järjestelmä kutsuu asianomaista viestin ohjaamaa papua käsittelemään viestin. Viestin ohjaama papu toimii siis kuulostelijana (listener), joka odottelee viestin saapumista. Esimerkiksi ostoskorisovelluksen istuntopavun metodi voisi lähettää tavarantoimitusosaston sovellukselle tahdistamattoman viestin, joka käskee toimittamaan ostetut tavarat, minkä jälkeen istuntopavun metodi voi päättää suorituksensa. Tavarantoimitusosastolla on jono shipping-message-queue, johon se vastaanottaa tällaisia viestejä, ja viestin ohjaama papu shippingmessage-queue-listener, joka käsittelee viestejä yrityksen liiketoimintasääntöjen mukaisesti. 343

64 Jokaisella viestin ohjaamalla pavulla pitää olla onmessage-metodi, joka käynnistyy automaattisesti viestin saavuttua. Metodi suorittaa viestissä pyydetyn palvelun ja voi siinä tarkoituksessa kutsua muiden papujen metodeja. Viestin ohjaama papu on tilaton: pavun ilmentymän saatua viestin käsitellyksi sen tila vapautetaan ja papu voidaan välittömästi käyttää uudelleen jonossa seuraavana olevan, samalta tai eri sovellukselta peräisin olevan viestin käsittelyyn. Kuten istuntopavun niin myös viestin ohjaaman pavun metodit voivat olla transaktionaalisia, ja käynnistettyä transaktiota voi hallita papu itse tai järjestelmä. 344

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

Lisätiedot

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Seminaari: Keskusmuistitietokannat Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Sisältö Johdanto Esiteltävien menetelmien taustoja Hajautetun tietokannan spekuloiva samanaikaisuuden

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

HOJ J2EE & EJB & SOAP &...

HOJ J2EE & EJB & SOAP &... HOJ J2EE & EJB & SOAP &... Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/18 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 HOJ Haja-aiheita Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

Lisätiedot

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999. ! Java luokkia n. 5000

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999. ! Java luokkia n. 5000 Case TUHTI 17.12.2002 1 TietoEnator 2002 Projektin tunnuslukuja! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999! Otettu tuotantokäyttöön syksyllä 2001! Proof of Concept (5 henkilöä 4 kk) ->

Lisätiedot

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen

Lisätiedot

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? 2013-2014 Lasse Lensu 2 Systeemiohjelmat ovat tietokoneen laitteistoa lähellä olevia ohjelmia,

Lisätiedot

HSMT J2EE & EJB & SOAP &...

HSMT J2EE & EJB & SOAP &... HSMT J2EE & EJB & SOAP &... Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2011 p.1/15 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.1/15 HSMT (Java-kielellä) Aineopintotasoinen kurssi, 5op. Luennot:

Lisätiedot

HELIA 1 (19) Outi Virkki Käyttöliittymät ja ohjelman suunnittelu

HELIA 1 (19) Outi Virkki Käyttöliittymät ja ohjelman suunnittelu HELIA 1 (19) Luento 10 Sovelluksen hajauttamisesta 2 Mitä kaikkea voi hajauttaa / keskittää? 2 Miksi hajauttaa / keskittää? 2 Hajautuksen edellytys: modulaarisuus 3 Hajautuksen mahdollisia toteutustapoja

Lisätiedot

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus 582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen

Lisätiedot

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen

Lisätiedot

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille KServer Etäohjaus 1 (5) KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille Palvelimen toteutuksen ollessa versio 1.0, spesifikaation versio 1.0.0. 2009, Riku Eskelinen/ KServer Software Development

Lisätiedot

Tietokanta (database)

Tietokanta (database) Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702)

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit Konnektorit ohjelmistoarkkitehtuurissa 18.9.2012 1 Konnektorit (connectors) Konnektori (connector) (liitos) Arkkitehtuurielementti, jonka tehtävänä on mahdollistaa ja hallita komponenttien

Lisätiedot

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO TEHTÄVÄ 2: Symantec Endpoint Protection Manager, SEPM keskitetyn tietoturva hallintaohjelmiston asennus, sekä vaadittavien palveluiden/roolien käyttöönottaminen

Lisätiedot

Integrointi. Ohjelmistotekniikka kevät 2003

Integrointi. Ohjelmistotekniikka kevät 2003 Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri

Lisätiedot

SAP. Lasse Metso 14.1.2011

SAP. Lasse Metso 14.1.2011 SAP Lasse Metso 14.1.2011 Toiminnanohjausjärjestelmä engl. Enterprise Resource Planning, ERP Integroitu tietojärjestelmä joka palvelee kaikkia yrityksen osastoja. Tuotantoyrityksistä liikkeelle lähtenyt

Lisätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Toukokuu 2014 1 (11) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Päivitysohje Toukokuu 2014 2 (11) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku...

Lisätiedot

Palveluperustaiset arkkitehtuurityylit

Palveluperustaiset arkkitehtuurityylit Palveluperustaiset arkkitehtuurityylit Mukana palvelun tarjoajia ja palvelun käyttäjiä Perusajatuksena tyypillisesti tarjota johonkin resurssiin liittyviä palveluita 1 Asiakas-palvelin -arkkitehtuurit

Lisätiedot

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa WWW ja tietokannat WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa tekstiä, kuvia, hyperlinkkejä Staattiset sivut kirjoitettu kerran, muuttaminen käsin ongelmana pysyminen ajantasalla Ylläpito hankalaa,

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

Lisätiedot

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012)

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012) IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012) TEHTÄVIÄ/KYSYMYKSIÄ Määrittele tapahtuma (transaction) tapahtumien hallinta Mitä ovat tapahtuman ACIDominaisuudet?

Lisätiedot

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n

Lisätiedot

FuturaPlan. Järjestelmävaatimukset

FuturaPlan. Järjestelmävaatimukset FuturaPlan Järjestelmävaatimukset 25.1.2017 2.2 Hermiankatu 8 D tel. +358 3 359 9600 VAT FI05997751 33720 Tampere fax. +358 3 359 9660 www.dbmanager.fi i Versiot Versio Päivämäärä Tekijä Kommentit 1.0

Lisätiedot

in condition monitoring

in condition monitoring Etäteknologioiden automaatiosovellukset Using e-speak e in condition monitoring tutkija professori Hannu Koivisto Sisältö Tausta Globaali kunnonvalvontajärjestelmä E-speak globaalissa kunnonvalvontajärjestelmässä

Lisätiedot

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Toukokuu 2013 1 (10) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Päivitysohje Copyright Aditro 2013 Toukokuu 2013 2 (10) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten

Lisätiedot

3 Verkkopalveluarkkitehtuuri

3 Verkkopalveluarkkitehtuuri 3 Verkkopalveluarkkitehtuuri Verkkopalvelun arkkitehtuuri perustuu yleisesti asiakas-palvelin -malliin Tietokantapohjaisessa (verkko)palvelussa asiakas-palvelin -malli toimii seuraavasti: 1. Käyttäjä käyttää

Lisätiedot

Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi)

Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Tietokannan hallinta-opintojakson selvitysraportti Huhtikuu 2010 Mediatekniikka ICT/Teknologia Tämän teosteoksen käyttöoikeutta koskee Creative

Lisätiedot

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. On arvioitu, että maailmassa on tällä hetkellä enemmän sulautettuja

Lisätiedot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000 HELIA 1 (15) Luento 2.7 Toiminnallisuutta tietokantaan... 2 Deklaratiivinen eheysvalvonta... 2 Proseduraalinen eheysvalvonta... 3 Eheysvalvonnan suunnittelusta... 4 Sääntöjen määrittely... 4 Toteutusvaihtoehdot...

Lisätiedot

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1 Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri 2 28.11.2008 Harri Laine 1 Ohjelmistoarkkitehtuuri Rajapinta UML:ssä piirteiden (attribuuttien ja operaatioiden) kokoelma, josta ei voi suoraan luoda ilmentymiä

Lisätiedot

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013 Virtualisointi Pertti Pennanen DOKUMENTTI 1 (5) SISÄLLYSLUETTELO Virtualisointi... 2 Virtualisointiohjelmia... 2 Virtualisointitapoja... 2 Verkkovirtualisointi... 2 Pertti Pennanen DOKUMENTTI 2 (5) Virtualisointi

Lisätiedot

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 1 2 Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 3 4 Region vastaa palvelun fyysistä sijaintipaikkaa (AWS

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta Hajautettu tietokanta Jokainen hajautettu tietokanta muodostaa oman kokonaisuutensa Loogisesti yhtenäinen data on hajautettu tietokantoihin (eri

Lisätiedot

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit 7 Viestipohjaisten yritysjärjestelmien suunnittelumallit Hohpe G., Woolf B.: Enterprise Integration Patterns. Addison-Wesley 2004. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1 Viestinvälitykseen

Lisätiedot

Aditro Tikon ostolaskujen käsittely versio 6.2.0

Aditro Tikon ostolaskujen käsittely versio 6.2.0 Lokakuu 2012 1 (9) Aditro versio 6.2.0 Päivitysohje Lokakuu 2012 2 (9) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku... 3 1.2. Aditro Pankkipalvelut yhteensopiva

Lisätiedot

Verkkopalkan palvelukuvaus

Verkkopalkan palvelukuvaus 27.1.2012 1 (6) Verkkopalkan palvelukuvaus 27.1.2012 2 (6) Sisällysluettelo 1 Johdanto... 3 2 Verkkopalkka-palvelun toiminta palkanmaksajalle... 3 3 Verkkopalkan käyttöönotto... 4 4 Verkkopalkka-palvelun

Lisätiedot

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008 Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

Pipfrog AS www.pipfrog.com. Tilausten hallinta

Pipfrog AS www.pipfrog.com. Tilausten hallinta Tilausten hallinta Tilausten hallinta Tilausten hallinnassa on neljän tyyppisiä dokumentteja: Tilaukset, laskut, lähetykset ja hyvityslaskut, Tilaus on ensimmäinen dokumentti, jonka joko ostaja on luonnut

Lisätiedot

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely HAAGA-HELIA Heti-09 1 (14) Transaktionkäsittely Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen...

Lisätiedot

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto

Lisätiedot

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov) Tietoliikenne II (2 ov) Kevät 2001 Liisa Marttinen Kurssikirja: Tanenbaum, Computer Networks (3. Painos) Tietoliikenne II Kertausta ja täydennystä Tietoliikenne I - kurssin asioihin perusteellisemmin laajemmin

Lisätiedot

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

Lisätiedot

Järjestelmänvalvontaopas

Järjestelmänvalvontaopas Järjestelmänvalvontaopas Medtronic MiniMed Northridge, CA 91325 USA 800 646 4633 (800-MiniMed) 818 576 5555 www.minimed.com Edustaja EU:n alueella Medtronic B.V. Earl Bakkenstraat 10 6422 PJ Heerlen Alankomaat

Lisätiedot

Etäproseduurikutsu, Remote Procedure Call (RPC) Etäproseduurikutsu. Poissulkeminen moduulin sisällä?

Etäproseduurikutsu, Remote Procedure Call (RPC) Etäproseduurikutsu. Poissulkeminen moduulin sisällä? Etäproseduurikutsu Andrews 8.1, 10.3, Stallings 13.3 RPC Toteutus Virhesemantiikka Etäproseduurikutsu, Remote Procedure Call (RPC) Palvelu etäkoneessa, ei yhteistä muistia Asiakkaat pyytävät palvelua prosedurikutsumekanismilla

Lisätiedot

Etäproseduurikutsu. Etäproseduurikutsu, Remote Procedure Call (RPC)

Etäproseduurikutsu. Etäproseduurikutsu, Remote Procedure Call (RPC) Etäproseduurikutsu RPC Toteutus Virhesemantiikka Andrews 8.1, 10.3, Stallings 13.3 Etäproseduurikutsu, Remote Procedure Call (RPC) Palvelu etäkoneessa, ei yhteistä muistia Asiakkaat pyytävät palvelua prosedurikutsumekanismilla

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

Opus SMS tekstiviestipalvelu

Opus SMS tekstiviestipalvelu Opus SMS tekstiviestipalvelu Sivu 1 / 17 1. Yleistä toiminnosta Opus SMS tekstiviestipalvelun avulla voidaan Opus Dental potilashallintaohjelmasta Lähettää muistutuksia tekstiviestillä Lähettää tiedusteluita

Lisätiedot

Directory Information Tree

Directory Information Tree IP-osoite / Host taulu, jossa neljä 8 bit lukua esim. 192.168.0.10/24, unix, linux, windows windows\system32\drivers\etc DNS (Domain Name System), muuttaa verkkotunnuksen IPosoitteeksi. X.500 perustuu

Lisätiedot

Looginen tietokanta ja transaktiot

Looginen tietokanta ja transaktiot Looginen tietokanta ja transaktiot A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006, sivut 22 23, luvun 1 (introduction) kohta kohta 1.9 (transaction

Lisätiedot

McAfee epolicy Orchestrator Pre-Installation Auditor 2.0.0

McAfee epolicy Orchestrator Pre-Installation Auditor 2.0.0 Julkaisutiedot McAfee epolicy Orchestrator Pre-Installation Auditor 2.0.0 McAfee epolicy Orchestrator -ohjelmiston kanssa käytettäväksi Sisällys Tietoja tästä julkaisusta Uudet toiminnot Parannukset Ratkaistut

Lisätiedot

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri Palomuuri Teoriaa Palomuurin tehtävä on estää ei-toivottua liikennettä paikalliseen verkkoon tai verkosta. Yleensä tämä tarkoittaa, että estetään liikennettä Internetistä paikallisverkkoon tai kotikoneelle.

Lisätiedot

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

Tietokantaohjelmoinnin tekniikkoja Java-kielellä Tietokantaohjelmoinnin tekniikkoja Java-kielellä Ville Kuokkanen Helsinki 6. helmikuuta 2003 Relaatiotietokannat nyt seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos i Tietokantaohjelmoinnin

Lisätiedot

Aditro Tikon ostolaskujen käsittely versio SP1

Aditro Tikon ostolaskujen käsittely versio SP1 Toukokuu 2012 1 (8) Aditro versio 6.1.2 SP1 Päivitysohje Toukokuu 2012 2 (8) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku... 3 1.2. Application Pool Identity...

Lisätiedot

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest). 1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.

Lisätiedot

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov) Tietoliikenne II (2 ov) Kevät 2001 Liisa Marttinen Kurssikirja: Tanenbaum, Computer Networks (3. Painos) Tietoliikenne II Kertausta ja täydennystä Tietoliikenne I - kurssin asioihin perusteellisemmin laajemmin

Lisätiedot

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot T-111.361 Hypermediadokumentin laatiminen -Ohjelmointi Peruskäsitys www-ohjelmoinnin kentästä Tekniikat interaktiivisuuden toteuttamiseen tekniikat tekniikat Tietokannat Juha Laitinen TKK/TML juha.laitinen@hut.fi

Lisätiedot

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

Valppaan asennus- ja käyttöohje

Valppaan asennus- ja käyttöohje Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi

Lisätiedot

Etäproseduurikutsu. RPC Toteutus Virhesemantiikka. Andrews 8.1, 10.3, Stallings 13.3

Etäproseduurikutsu. RPC Toteutus Virhesemantiikka. Andrews 8.1, 10.3, Stallings 13.3 Etäproseduurikutsu RPC Toteutus Virhesemantiikka Andrews 8.1, 10.3, Stallings 13.3 Etäproseduurikutsu, Remote Procedure Call (RPC) Palvelu etäkoneessa, ei yhteistä muistia Asiakkaat pyytävät palvelua prosedurikutsumekanismilla

Lisätiedot

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy Oracle10 g Web Services Sisältö Service Oriented Architecture (SOA) Web Services Service Oriented Architecture Service Oriented

Lisätiedot

Hajautettujen transaktioiden hallinta

Hajautettujen transaktioiden hallinta Hajautettujen transaktioiden hallinta M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Pearson Addison Wesley, 2006; sivut 1005 1028, luvun 24

Lisätiedot

Sähköposti ja uutisryhmät 4.5.2005

Sähköposti ja uutisryhmät 4.5.2005 Outlook Express Käyttöliittymä Outlook Express on windows käyttöön tarkoitettu sähköpostin ja uutisryhmien luku- ja kirjoitussovellus. Se käynnistyy joko omasta kuvakkeestaan työpöydältä tai Internet Explorer

Lisätiedot

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit 6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit Viestinvälitysarkkitehtuurit

Lisätiedot

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. Kevät Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 Viestipohjaisten yritysjärjestelmien suunnittelumallit Viestinvälitykseen perustuvat yritysjärjestelmät Peruselementit:

Lisätiedot

Sisällys Clerica Web-sovellusten käytön aloittaminen 2

Sisällys Clerica Web-sovellusten käytön aloittaminen 2 Sisällys Clerica Web-sovellusten käytön aloittaminen 2 Kirjautuminen järjestelmään 2 Myyntilaskut 2 Ostolaskujen käsittely 4 Uuden laskun syöttö 6 Palkkailmoituslomake 8 Palkkailmoituksesta kopio 9 Henkilötietojen

Lisätiedot

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT Oliotietokannat Nääsvillen Oliopäivät 2004 15.12.2004 Pekka Kähkipuro Kehitysjohtaja, FT pekka.kahkipuro@sysopen.fi Oliotietokanta Idea: pysyvän tiedon tallentaminen suoraan oliomuodossa Tietosisältö ja

Lisätiedot

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007 Jaetun muistin muuntaminen viestin välitykseksi Otto Räsänen 15. lokakuuta 2007 1 Motivaatio 2 Valtuuden välitys Peruskäsitteitä 3 Kolme algoritmia Valtuuden välitys käyttäen laskuria ilman ylärajaa Valtuuden

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen... 10 Loki-tiedosto... 11

Lisätiedot

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen FiSMA 1.1 Monikerrosarkkitehtuuri 1 (7) FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen 1. Yleiset periaatteet FiSMA 1.1 -menetelmässä mitataan sovellusperiaatteen

Lisätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

NORDEAN WEB SERVICES YHTEYDEN KÄYTTÖÖNOTTO

NORDEAN WEB SERVICES YHTEYDEN KÄYTTÖÖNOTTO 1 (11) NORDEAN WEB SERVICES YHTEYDEN KÄYTTÖÖNOTTO Sisältö 1 Web Services yhteyskanavan käyttöönotto... 1 2 Web Services varmenteiden tallennus... 2 2.1 Käyttäjätunnuksen tallennus Maksuliikenne-ohjelmistoon...

Lisätiedot

TIETOSUOJASELOSTE. Yleistä. Mihin tarkoitukseen henkilötietojani kerätään ja käsitellään? Mitä henkilötietoja minusta kerätään ja mistä lähteistä?

TIETOSUOJASELOSTE. Yleistä. Mihin tarkoitukseen henkilötietojani kerätään ja käsitellään? Mitä henkilötietoja minusta kerätään ja mistä lähteistä? TIETOSUOJASELOSTE Yleistä Jotta voimme palvella sinua parhaamme mukaan, edellyttää se, että keräämme ja käsittelemme joitakin sinua koskevia tietoja. Arvostamme kuitenkin yksityisyyttäsi ja olemme sitoutuneet

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi)

erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi) erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi) Sisällysluettelo 1 erasmartcard 3 2 erasmartcard-ohjelmiston normaali asennus 4 2.1 Ennen asennusta 4 2.2

Lisätiedot

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone ja ylläpito computer = laskija koostuu osista tulostuslaite näyttö, tulostin syöttölaite hiiri, näppäimistö tallennuslaite levy (keskusyksikössä) Keskusyksikkö suoritin prosessori emolevy muisti levy Suoritin

Lisätiedot

Tikon Ostolaskujenkäsittely versio 6.1.2 SP1

Tikon Ostolaskujenkäsittely versio 6.1.2 SP1 Toukokuu 2012 1 (14) Tikon Ostolaskujenkäsittely versio 6.1.2 SP1 Asennusohje Toukokuu 2012 2 (14) Sisällysluettelo 1. Vaatimukset palvelimelle... 3 1.1..NET Framework 4.0... 3 1.2. Palvelimen Internet

Lisätiedot

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta 1. Johdanto (käsitteitä) 2. Tietokannan talletusrakenteet 3. Tietokannan hakemistorakenteet 4. Kyselyiden käsittely ja optimointi

Lisätiedot

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

D-Link DSL-504T ADSL Reitittimen Asennusohje ver. 1.0

D-Link DSL-504T ADSL Reitittimen Asennusohje ver. 1.0 D-Link DSL-504T ADSL Reitittimen Asennusohje ver. 1.0 Tervetuloa D-Link ADSL reitittimen omistajaksi. Tämän ohjeen avulla saat reitittimesi helposti ja nopeasti toimimaan. Tämä ohje kannattaa lukea läpi

Lisätiedot

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Arkkitehtuuriin vaikuttavat ympäristötekijät Jo kehittämisen alkuvaiheessa on tarpeellista hahmotella arkkitehtuurin perusratkaisu. Lähtökohdat

Lisätiedot

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

Lisätiedot

Ohje luottamuksellista tietoa sisältävien sähköpostiviestien lähettämiseen ja vastaanottamiseen

Ohje luottamuksellista tietoa sisältävien sähköpostiviestien lähettämiseen ja vastaanottamiseen Ohje luottamuksellista tietoa sisältävien sähköpostiviestien lähettämiseen ja vastaanottamiseen Liikenteen turvallisuusvirasto 27.9.2012 Sisällysluettelo Luottamuksellista tietoa sisältävien sähköpostiviestien

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas Visma Liikkuvan työn ratkaisut Pääkäyttäjän opas Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan

Lisätiedot

SQL Buddy JAMK Labranet Wiki

SQL Buddy JAMK Labranet Wiki Page 1 of 9 SQL Buddy JAMK Labranet Wiki Sisällysluettelo Yleistä SQL Buddy:sta kotisivu :http://sqlbuddy.com/ SQL Buddy on kevyt hallintatyökalu MySQL-tietokannalle. Järjestelmävaatimukset Serverin vaatimukset

Lisätiedot

Avoimet standardit ja integraatio

Avoimet standardit ja integraatio Avoimet standardit ja integraatio Avoimet standardit ja integraatio Trendin ainutlaatuinen lähestymistapa avoimiin standardeihin ja integraatioon tarjoaa odottamasi hyödyt, sekä markkinoiden johtavat innovaatiot

Lisätiedot

Käyttöjärjestelmät: prosessit

Käyttöjärjestelmät: prosessit Käyttöjärjestelmät: prosessit Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet Käyttöjärjestelmä

Lisätiedot

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat Linux rakenne Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat Linux ydin Ytimen (kernel) päätehtävä on tarjota rajapinta

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

Hintatiedotus ja tietojen välitys. Loppuraportti

Hintatiedotus ja tietojen välitys. Loppuraportti Hintatiedotus ja tietojen välitys Loppuraportti Henkilöliikenne 18. marraskuuta 2002 1 Lähtökohdat VR Henkilöliikenteellä on käytössä Journey Planner reitinsuunnittelupalvelu. Palvelua käyttävät matkustajat

Lisätiedot

TermBase NET versio 1.0.1. (Beta)

TermBase NET versio 1.0.1. (Beta) TermBase NET versio 1.0.1. (Beta) Sulautettu sanasto- ja termikanta OHJEET TÄRKEÄÄ: Copyright M. Tuittu, 2005 Kaikki oikeudet pidätetään. TermBase NET on toteutettu java -tekniikalla. Java and all Java-based

Lisätiedot