Hajautettujen transaktioiden käsittelyjärjestelmät
|
|
- Petri Heikkinen
- 7 vuotta sitten
- Katselukertoja:
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
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ätiedotSeminaari: 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ätiedotConcurrency - 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ätiedotHelsingin 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ätiedotHOJ 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ätiedotHOJ 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ätiedotCase 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ätiedotAJAX-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ätiedotOngelma(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ätiedotHSMT 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ätiedotHajautettujen 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ätiedotHELIA 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ätiedot582203 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ätiedotTietojä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ätiedotKServer 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ätiedotTietokanta (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ätiedotjotakin 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ätiedotJä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ätiedotOhjelmistoarkkitehtuurit
Ohjelmistoarkkitehtuurit Konnektorit ohjelmistoarkkitehtuurissa 18.9.2012 1 Konnektorit (connectors) Konnektori (connector) (liitos) Arkkitehtuurielementti, jonka tehtävänä on mahdollistaa ja hallita komponenttien
LisätiedotTIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO
TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO TEHTÄVÄ 2: Symantec Endpoint Protection Manager, SEPM keskitetyn tietoturva hallintaohjelmiston asennus, sekä vaadittavien palveluiden/roolien käyttöönottaminen
LisätiedotIntegrointi. 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ätiedotSAP. 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ätiedotTikon 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ätiedotPalveluperustaiset arkkitehtuurityylit
Palveluperustaiset arkkitehtuurityylit Mukana palvelun tarjoajia ja palvelun käyttäjiä Perusajatuksena tyypillisesti tarjota johonkin resurssiin liittyviä palveluita 1 Asiakas-palvelin -arkkitehtuurit
LisätiedotWWW-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ätiedotTiedonhallinnan 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ätiedotIIO30220 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ätiedotJohdanto 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ätiedotFuturaPlan. 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ätiedotin 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ätiedotWritten 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ätiedotTikon 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ätiedot3 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ätiedotMaiju 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ätiedotSulautettujen 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ätiedotHELIA 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ätiedotOhjelmistojen 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ätiedotPertti 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ätiedotAmazon 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ätiedotJä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ätiedot7 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ätiedotAditro 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ätiedotVerkkopalkan 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ätiedotProseduurit, 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ätiedotPipfrog 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ätiedotPROSEDUURIT, 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ätiedotHAAGA-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ätiedotTietokannan 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ätiedotTietoliikenne 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ätiedotRekursiolause. 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ätiedotJä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ätiedotEtä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ätiedotEtä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ätiedotArkkitehtuurikuvaus. 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ätiedotOpus 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ätiedotDirectory 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ätiedotLooginen 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ätiedotMcAfee 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ätiedotPalomuurit. 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ätiedotTietokantaohjelmoinnin tekniikkoja Java-kielellä
Tietokantaohjelmoinnin tekniikkoja Java-kielellä Ville Kuokkanen Helsinki 6. helmikuuta 2003 Relaatiotietokannat nyt seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos i Tietokantaohjelmoinnin
LisätiedotAditro 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ätiedotVirtualisointiympä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ätiedotTietoliikenne 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ätiedotT-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ätiedotAction 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ätiedotValppaan 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ätiedotEtä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ätiedotHarri 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ätiedotHajautettujen 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ätiedotSä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ätiedotOsittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit
6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit Viestinvälitysarkkitehtuurit
LisätiedotOhjelmistoarkkitehtuurit. 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ätiedotSisä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ätiedotOliotietokannat. 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ätiedotJaetun 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ätiedotHELIA 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ätiedotFiSMA 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ätiedotSisä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ätiedotIDL - 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ätiedotNORDEAN 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ätiedotTIETOSUOJASELOSTE. 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ätiedotATK 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ätiedoterasmartcard-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ätiedotTietokone. 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ätiedotTikon 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ätiedotTietokannan 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ätiedotTietokantojen 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ätiedotD-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ätiedotPerusarkkitehtuurin 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ätiedotMaastotietokannan 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ätiedotOhje 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ätiedotOhjelmistojen 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ätiedotVisma 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ätiedotSQL 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ätiedotAvoimet 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ätiedotKä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ätiedotLinux 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ätiedotHaaga-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ätiedotHintatiedotus 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ätiedotTermBase 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