HOJ Kertausluento. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/58
|
|
- Hannes Mikkola
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 HOJ Kertausluento Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/58
2 Missä mennään Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h) 5. Soketit (3h) 6. RMI ja J2EE (3h) 7. RPC (1h) 8. WWW-sovellustekniikoista ja XML + protokollat (2h) 9. Pilvialustat (1h) 10. Haja-aiheita (2h) 99. Kertausluento (2h) HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.2/58
3 Kurssin tavoitteita 1/2 Käydä läpi ohjelmointikielten ulkopuoliset modernit hajautettujen sovellusten tekemiseen liittyvät rajapinnat. Opetetaan asioita erityisesti Javan kannalta. Moni käsiteltävä asia on ratkaistu useassa ohjelmointikielessä samalla tapaa, mutta merkittäviä erojakin on. Voimakas sidos Javaan on hieman epätoivottava, mutta konkretisointi on välttämätöntä. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.3/58
4 Kurssin tavoitteita 2/2 Säikeet ja samanaikaisuuteen liittyvän problematiikan hallinta. Soketit. RMI Remote Method Invovation. RPC Remote Procedure Call Verkko: asiakas-palvelin sovelluksen välinen keskustelu; XML, JSON. Verkko: palvelinsovellukset ja tietokantapalvelimet. WWW+Java: Serveletit, Ajax Verkkoliikenteen turvallisuudesta. Dokumentointi, testaus,... HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.4/58
5 Asiakas-palvelin suhteesta Internet: maailmanlaajuinen alusta asiakas-palvelin tietokonesovelluksille. (Muita: DigiTV, mobiiliverkko.) WWW-selain: asiakas; http-palvelin, news-palvelin,... WWW:n idea: palvelimella html-dokumentteja & Java-appletteja; selain lataa niitä ja suorittaa itse. Yleisemmin: palvelin on tieto- ja palvelu varasto. Asiakaspuolen laskenta (client-side computing). Aiemmin keskuskoneessa tehtiin laskenta; nyt keskuskone jakaa laskettavaa. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.5/58
6 Missä mennään Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h) 5. Soketit (3h) 6. RMI ja J2EE (3h) 7. RPC (1h) 8. WWW-sovellustekniikoista (2h) 9. Pilvialustat (4h) 10. Haja-aiheita (2h) 99. Kertausluento (2h) HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.6/58
7 Yleistä säikeistä 1/4 Tutustuttu jo: tapahtumankäsittelysäie ja main -säie. Voidaan luoda ja käynnistää itse. Säie: peräkkäinen käskyvirta. Samanaikaisuus rinnakkaisuus. Säie prosessi. Monen ongelman ratkaisun ilmaiseminen rinnakkain luonnollista. Koneessa useita prosessoreita = aidosti samanaikaan suoritettavia prosesseja. Kyky reagoida moneen suuntaan. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.7/58
8 Yleistä säikeistä 2/4 Perustuu työn jakamiseen, mutta seurauksena on usein myös tietojen jakaminen. Javan säikeet jakavat muistiavaruuden. KJ:n prosessien muistiavaruus erillinen. Tiedon käytön koordinointi tärkeää: samanaikainen käyttö voi johtaa ongelmatilanteisiin. Samanaikaisten päivitysten seurauksena ehkä epäkonsistentti tila. Lukeminen: myös ongelmia. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.8/58
9 Yleistä säikeistä 3/4 Lukitsemalla tietorakenteita (olioita) tai estämällä usean säikeen pääsy samanaikaisesti metodiin voidaan ratkaista ongelmia. Mutta... lukitsemisen seurauksena voi tulla syklejä = jumiutuminen. Lisäksi: säikeille annettavaa aikaa pitää jotenkin kontrolloida. Kaikkien pitää saada aikaa, muuten starvation. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.9/58
10 Yleistä säikeistä 4/4 Käytännön seikkoja: Javaa suoritetaan usein tulkitsemalla. Tulkitseva JVM on yksi koneen KJ:n prosessi. Koneen KJ jakaa aikaa prosessien välillä. Javan säikeitä suoritetaan JVM:n sisällä. JVM:llä on KJ:n prosessien hallintaominaisuudet. (Tilanne on osin muuttunut: mahdollista käyttää useita KJ:n säikeitä.) Ei siis kovin helposti tehoa monesta prosessorista, mutta silti hyödyllistä esim. animoinnissa ja verkkoyhteyksissä. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.10/58
11 Raita: säikeiden tilat Suorituksen loppuminen normaalisti tai epänormaalisti Päättynyt (kuollut) Säie valitaan suoritukseen Valmis Säie käynnistetään start komennolla Suorituksessa Aikakvantti loppunut, yield, interrupt IO suoritettu, uniaika loppunut, notify, notifyall IO pyyntö, sleep, wait Estynyt Uusi Säie luodaan HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.11/58
12 Samanaikaisuuden ongelmista Halutaan jakaa tietoja, mutta tehdä niiden samanaikaiset muutokset kontrolloidusti. Miten välittää tietoa säikeeltä toiselle? Miten ajoittaa säikeiden suoritus? Esim. kuluttaja + tuottaja -tilanne. Miten taata, että säikeet saavat suoritusaikaa? Lukitusten avulla voidaan tehdä muutokset kontrolloidusti (olion eheys säilyy), mutta samanaikaiset lukot voivat johtaa lukkiumatilanteisiin. Valitettavasti yleistä lukkiumat välttävää ratkaisua ei ole. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.12/58
13 Javan ratkaisuista 1/2 Lukitus: olio voidaan lukita; siihen kiinnitetään monitori (mutex; mutually exclusive lock), joka sallii vain yhden säikeen operoivan oliolla kerrallaan. Varattu sana synchronized. Voidaan liittää metodeihin: kyseisiä metodeja saa käyttää vain yksi säie kerrallaan. Ei voida liittää luokka- tai instanssimuuttujiin. Voidaan liittää myös lausekkeeseen (olioon); sama vaikutus. Vaikka olioon on lukko, niin muut säikeet voivat käyttää olion ei-synkronoituja piireitä vapaasti. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.13/58
14 Javan ratkaisuista 2/2 Object.wait(... ): jäädään odottamaan jonkin asian/ehdon tapahtumista. Edellyttää lukkoa olioon; soveltaminen vapauttaa lukon. Object.notify(): ilmoitetaan, että asia tapahtunut. Edellyttää lukkoa olioon; antaa lukon jollekin sitä odottavista säikeistä. Object.notifyAll(): kaikki odottajat valmis -tilaan; joku saa lukon. Muut jäävät sitä odottamaan. Ongelma: kuka vapauttaa kaikki odottajat? Jonkun täytyy ensin ottaa lukko ja käyttää sitä sitten muiden vapauttamiseen. Vastuu!! wait & nofity:n idea on pyrkiä vähentämään lukkiumatilanteita. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.14/58
15 Yhteenveto Säikeet ovat olioita. JVM:n tapa käsitellä säikeitä. Luonti: Thread, Runnable. Tilat, siirtymien syyt. Tiedon jakaminen ja sen hallinta: lukitukset. synchronized. Prioriteetti. Säieryhmä. Demoni. Soveltaminen? GUIhin? Verkkosovellusten yhteydessä? Animointi? HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.15/58
16 Missä mennään Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h) 5. Soketit (3h) 6. RMI ja J2EE (3h) 7. RPC (1h) 8. WWW-sovellustekniikoista (2h) 9. Pilvialustat (4h) 10. Haja-aiheita (2h) 99. Kertausluento (2h) HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.16/58
17 Yleistä Hajautettu sovellus: joukko erillisiä ohjelmia, jotka keskustelevat toistensa kanssa. Ohjelmat voivat toimia eri koneissa. Kommunikointi: verkon yli, jollakin keskustelukielellä. Mahdollisesti erikielisiä ohjelmia. Yleensä kommunikoivilla ohjelmilla hyvin erilainen rooli. Asiakas- ja palvelinsovelluksia. Palvelin: sovellus, joka kuuntelee yhteydenottoja. Asiakas: aloittaa kommunikaation; kommunikaation suunnan painopiste vaihtelee tapauskohtaisesti. Yleensä välitetään passiivista tietoa; ei niinkään pyritä vaikuttamaan toisen ohjelman suoritukseen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.17/58
18 Ongelmia? Miten välittää tietoa? Miten asiakas tietää, missä palvelin on? Miten palvelin osaa vastata? Yhteyden muodostaminen & lopetus? Useita asiakkaita? Useita palvelimia? Ongelmia samanaikaisuudesta? Palvelin: miten palvella kaikkia tasapuolisesti? Miten hallita hajautetun sovelluksen siirtymistä tilasta toiseen? Periaatteessa kaikki samat ongelmat kuin säikeiden tapauksessakin. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.18/58
19 Kommunikoinnista lisää Porttinumerot: TCP:hen (ja UDP:hen) liittyvä numero; väliltä ; kertoo, missä koneen sisällä vastaanottaja on. Lähettäjä samoin. Soketit: sovellustason yhteys (IP-osoite & portti), jota Java-ohjelmassa voidaan käsitellä tiedostovirran tapaan. Toisen osapuolen ei tarvitse olla Java-ohjelma RMI (Remote Method Invocation): tapa välittää metodin kutsuja asiakkaalta palvelimelle. Kutsu = tietoa asiakkalta + ohjaus; takaisin tietoa palvelimelta. Molemmat osapuolet ovat Java-ohjelmia. CORBA, RPC,... HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.19/58
20 Soketit: tilanne Ohjelma Ohjelma Tietokone Ohjelma Portti Portti Portti Verkko Porttinumerot: Tietokoneella IP-osoite. Ohjelma voi käsitellä useampaa porttia samanaikaisesti. Koneen käyttöjärjestelmä välittää verkkokortin ottaman tiedon porttiin kytkeytyneelle ohjelmalle. Lähettäminen vastaavasti : standardoitu merkitys. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.20/58
21 Soketit Soketti kytkös: (kone1, portti1) (kone2, portti2) niin, että kumpikin kone tietää kytköksen. UDP-pohjainen tiedon välitys: DatagramPacket ja DatagramSocket. Miten käyttää? TCP-pohjainen välitys: Socket ja ServerSocket. Miten käyttää? Streamit InputStream, DataInputStream, ObjectInputStream. Useita asiakkaita? Monilähetys (ryhmälähetys, multicast): useita vastaanottajia. Yleislähetys (broadcast). Paketissa java.net. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.21/58
22 TCP-pohjaiset soketit TCP: pakettien järjestys ja perille pääsy taataan. Idea: yhteydellinen 2-suuntainen tietovirta. Käytetään kuten muitakin Javan tiedostovirtoja. Asiakas luo: Socket-olion kohteeseen. Palvelin luo: ServerSocket-olion, joka kautta muodostetaan Socket-olio. Soketteihin liittyy sisään- ja ulosmenevät tiedostovirrat. Paketit: ei eksplisiittisiä paketteja. Kirjoitetaan vain tiedostovirtaan! HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.22/58
23 Palvelimen toiminnasta Socket clientsocket = serversocket.accept(); Palvelin usein palvelee useita asiakkaita. Ei voi asiakas-soketin muodostamisen jälkeen keskittyä kokonaan siihen. Ratkaisu: asiakas-soketin käsittely siirretään sitä varten tehtävälle säikeelle. (Hyvin samantapaista kuin Unix:ssa inetd.) HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.23/58
24 Palvelimen ydin while (true) { Socket clientsocket = serversocket.accept(); CommHandler c = new CommHandler(clientSocket); c.start(); } // while HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.24/58
25 Missä mennään Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h) 5. Soketit (3h) 6. RMI ja J2EE (2h) 7. RPC (1h) 8. WWW-sovellustekniikoista (2h) 9. Pilvialustat (4h) 10. Haja-aiheita (2h) 99. Kertausluento (2h) HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.25/58
26 Remote Method Invocation: Yleistä 1/2 Palvelinsovellus kuuntelee yhteydenottoja; yhteydenotto = metodin kutsu ja suorittaminen palvelimessa. Asiakas kutsuu palvelinsovellusta suorittamaan jokin etäolion jotain tiettyä metodia (parametrit). Parametrit: tietoa asiakkaalta palvelimelle. Tulos: tietoa palvelimelta asiakkaalle. Tietoa välitetään Javan olioina! Palvelin- & asiakassovellus: Java-ohjelmia. Yleisesti: useita palvelimia ja asiakkaita. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.26/58
27 RMI: Yleistä 2/2 Etäolio (server object): palvelimessa oleva olio. Paikallinen olio (client object): asiakassovelluksessa. Edustajaolio (stub): asiakkaalla on olio, joka edustaa palvelimessa olevaa etäoliota. Tukee turvallisuusominaisuuksia ja roskien keruuta (yms). Asiakkaan ja palvelimen roolit eivät kiinteitä: osapuoli voi olla molemmissa rooleissa. Paketit java.rmi (asiakas); java.rmi.server (palvelin); java.rmi.registry (rekisteri: nimiä palvelimen olioille);... HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.27/58
28 RMI:n kulisseissa tapahtuu (asiakas) (palvelin) rekisteri palvelinohj. asiakasohj. etäolio luonti etäoliota vastaava edustajaolio rekisteristä etäolion rekisteröinti metodin kutsu paikalliselle ohjelmalle edustajaolio kutsun + param. ohjaus eteenpäin tulosten välittäminen edustajaoliolle kutsun suoritus edustajaolion olion kutsuja odottava säie tulokset takaisin HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.28/58
29 Sovellusten keskustelusta Kaksi palvelinsovellusta voi keskustella keskenään. RMI: metodin kutsu = vaikuttamisen yhteydessä pitää huolehtia, ettei tule avoimien kutsujen sykliä. Tavallaan kutsut tarkoittavat vuoron siirtämistä toiselle. Molemmat osapuolet aktiivisia: ei syklejä, jos metodin kutsu tarkoittaa palvelupyynnön välittämistä. Riittää kun vain toiseen suuntaan palvelupyyntöjä! Ratkaisu: molemmilla itsenäinen säie & RMI-kutsut ainakin toiseen suuntaan palvelupyyntöjä. Paljon säikeitä: main, itsenäinen säie (+ ilm. Remote-oliota varten syntyy oma säie). HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.29/58
30 Turvallisuudesta Mahdollista kryptata RMI-liikenne (voidaan vaihtaa RMI:n käyttämät tavalliset soketit SSL-soketeiksi). Palvelimen puolella ei ole tukea sille, että rajoitettaisiin oikeutta tehdä kutsu edustaolion kautta (miten palvelin tietää kuka sitä kutsuu? edustaolio voidaan välittää eteenpäin...). Palvelimeen voidaan tehdä login-osuus, jonka jälkeen saa varsinaisen etäolion palveluiden käyttämiseksi. Kyseinen olio voi olla erilainen eli käyttäjille. Palvelimen pitää varautua siihen, että asiakas häiriköi. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.30/58
31 Jakamisesta ja lukoista RMI ei varsinaisesti tunne lukkoja, mutta... RMI:n yhteydessä on mahdollista soveltaa lukkoja palvelipäässä. RMI-palvelin on monisäikeinen (kutakin samanaikaista kutsua toteuttaa eri säie). Määritellään kriittiset etäolion operaatiot sychronized-suojatuiksi. Suojaa etäoliokutsujen kautta tapahtuvaa samanaikaista käyttöä (sekä muuta palvelimessa etäolioon tapahtuvaa käyttöä). Asiakas ei siis suoraan saa lukkoa etäolioon (vaan sen edustaja etäkutsua suorittava säie palvelimessa). wait()/notify() hankalia mutta mahdollisia lähinnä vain estetään samanaikainen jaetun datan käyttö. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.31/58
32 Yhteenveto RMI = Remote Method Invocation. Etäolio + edustaolio. Kutsulla saadaan aikaan tiedon siirto molempiin suuntiin voidaan välittää olioita kopioimatta. Edustaolioiden == eri kuin etäolioiden ==!! Kutsuja aktiivinen; kutsuttava passiivinen. Pitää varoa avoimien kutsuketjujen sykliä. Palvelin vs useita asiakkaita: helppo. Palvelin & palvelin: vaikeampi. Toteutettu säikeillä ja soketeilla. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.32/58
33 Missä mennään Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h) 5. Soketit (3h) 6. RMI (2h) 7. RPC (1h) 8. WWW-sovellustekniikoista (2h) 9. Pilvialustat (4h) 10. Haja-aiheita (2h) 99. Kertausluento (2h) HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.33/58
34 Remote Procedure Call, RPC RPC:n (Remote Procedure Call) idea on välittää (TCP avulla) verkon yli proseduurin kutsu(ja) argumentteineen ja palauttaa takaisin etäällä suoritetun proseduurin tulos. Syy irrottaa proseduuri etäproseduuriksi liittyy yleensä työmäärään tai keskitettyyn suureen tietomäärään (jota ei ole järkevä kopioida moneen paikkaan). RPC:ssä, etäproseduurin kutsu näyttää ohjelmassa tavalliselta metodin kutsulta. Toteutus (kommunikointi verkon yli) on näkymätön ohjelmoijan kannalta. C-pohjainen ei olioita kuten RMI:ssä. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.34/58
35 Parametriongelmia Etäproseduurikutsujen toteuttaminen olisi helppoa, jos kaikki parametriarvot olisivat skalaariarvoja ja molemmat RPC-järjestelmät olisivat samoja. RPC-toteutukset perustuvat usein alla olevaan käyttöjärjestelmään ja siinä tiedon esitysmuoto voi vaihdella. Parametrien koodauksen (mashalling) täytyy ottaa tämä huomioon. (XDR) Jotkin paikalliset parametrit voivat olla viiteparametrejä. Jos sallittua, marshallointi tarkoittaa viitatun rakenteen kopiointia. Tulisiko muutosten heijastua takaisin? Mahdollista! Copy/restore-parametrit! HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.35/58
36 Huomioita RPC:stä RPC:n kirjasto tarjoaa suuren määrään proseduureja asiakkaita ja palvelimia varten. Parametrien koodausstandardi: XDR (external Data Representation). Asiakkaan ja palvelimen voi tehdä alusta alkaen itse tai ne voi toteutusympäristöstä riippuen osittain generoida. IDL-kieli on kohtuullisen rikas. TCP:n tilalla voi olla jokin muu kuljetusmekanismi (XML-RPC: HTTP). RPC ei ole vain C-kielisille ohjelmille esim. XML-RPC toteutuksia on useille kielille: Java, C/C++, Perl, PHP, Python. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.36/58
37 Lopuksi RPC on esitelty välitystekniikkana. Sovellusten tekemisen problematiikka samanlaista kuin RMI:n kohdallakin. Etäproseduurit eivät ole mitään aktiivista, vaan passiivisia palveluita. Ja yleisemmin monisäiesovellusten ongelmat koskien tiedon samanaikaista käsittelyä ovat myös RPC-sovellusten ongelmia. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.37/58
38 Corba yleiskatsaus CORBA (Common Object Request Broker Architecture) on ryhmän nimeltä OMG (Object Management Group) määrittelemä. OMG perustettu ( Tavoitteena on mahdollistaa hajautettujen järjestelmien kehittäminen kieliriippumattomuutta tukien. Ensimmäinen versio Versio 2.0 vuonna 1996 ja versio 3.0 vuonna Määrittely on n sivua. Tehty ennen RMI:tä ja Javaa. RMI:tä laajempi. Soveltuu myös muille kuin OO-kielille. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.38/58
39 jatkuu... CORBAn ydin on ORB (Object Request Broker), joka on alustaja kieliriippumaton taso etäkutsujen tekemiseksi. Huolehtii mm. marshalloinnista. Sovelluksissa olevat ORBit keskustelevat GIOP:llä (General Inter-ORB Protocol). Sen TCP/IP-mukaelma on IIOP (Internet Inter-ORP Protocol). Asiakas/palvelin rajapinnat kuvataan Corbassa IDL:llä (Interface Description Language). HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.39/58
40 Muita CORBAn ominaisuuksia Tukee lukkoja ja transaktioita. Tukee replikointia (ja cachea). Tukee vikasietoisuutta. Tukee kryptausta, autentikointia, paljon muuta. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.40/58
41 Lopuksi Hyvin samanlainen kuin RMI, mutta yleisempi. Tosin kaikkia ominaisuuksia ei kaikissa toteutuksissa. RMI:n ja RPC:n ja samanaikaisuuden ongelmat ovat myös CORBAn ongelmia. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.41/58
42 Missä mennään Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h) 5. Soketit (3h) 6. RMI ja J2EE (3h) 7. RPC (1h) 8. WWW-sovellustekniikoista ja XML + protokollat (2h) 9. Pilvialustat (4h) 10. Haja-aiheita (2h) 99. Kertausluento (2h) HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.42/58
43 Luennon rakenne Protokollista Yleistä Protokolla asiakkaan ja palvelimen kannalta; tilat Kuvaaminen Muodostaminen Protokollasta luokiksi XML sopii mm. protokollan viestien esittämiseen Mikä XML on? Käsitteitä: XML, XSL, DTD, skeema,... XML:n käyttötilanteita, XML-esimerkkejä DOM ja SAX: XML-dokumentit Java-ohjelmissa. Esittäminen, jäsentäminen ja antijäsentäminen. Esimerkkejä. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.43/58
44 Protokollista: muodostaminen Pitää miettiä läpi kaikki asiakkaan ja palvelimen väliset keskustelut. Kirjataan keskustelun vaiheet viesteiksi; vältä turhia viestejä. Pitäisi pyrkiä minimoimaan erilaisten viestien määrää. Tärkeää huomioida erilaiset kuittaukset sekä virhetilanteista ilmoittaminen. Todellisuudessa keskustelu ei aina etene niin kuin toivotaan: virheistä toipumisen eräs keskustelun muoto (viestejä). HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.44/58
45 Protokollista: viestien koodaus Binäärisessä muodossa, esim. kirjoitetaan olioita TCP-sokettien virran päällä. Tekstimuodossa (perinteinen vaihtoehto): suunnitellaan itse viestien muoto ja koodaus. Moderni variaatio: esitetään viestit XML:llä. Kaikkien edellisten vaihtoehtojen yhteydessä on hyvinkin järkevää esittää viestit ohjelmassa erilaisilla Java-olioilla. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.45/58
46 Protokollista: kuvaaminen Muodostetaan sovellukselle tiloja. Tilat ovat hajautetun järjestelmän kokonaistiloja, mutta usein liittyvät johonkin osapuoleen. Tilakaavio: Tilasta toiseen siirrytään vaihtamalla viestejä tekemällä keskustelu. Yksittäiset tilasiirtymät (keskustelu) voidaan kuvata UML:n sekvenssikaaviolla. Yleisemmin sekvenssikaaviolla voidaan kuvata tyypillisiä keskusteluja. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.46/58
47 Missä mennään Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h) 5. Soketit (3h) 6. RMI ja J2EE (3h) 7. RPC (1h) 8. WWW-sovellustekniikoista ja XML + protokollat (2h) 9. Pilvialustat (2h) 10. Haja-aiheita (2h) 99. Kertausluento (2h) HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.47/58
48 Rakenne Yleiskuva Web 2.0: WWW-sovellusten luonne WWW:n RIA-tekniikoista yleisesti Vaadin Servlet-tekniikasta HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.48/58
49 Yleiskuva Pohditaan: Mitä osapuolia hajautetun järjestelmän kannalta web-sovelluksissa? Mikä muuttuu web:n myötä? Mihin tekniikan oikeastaan kohdistuvat? Mitä resursseja web-sovellusten osapuolilla on? HTML5:n tuoma muutos... HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.49/58
50 Vaadin IT Mill Oy (Turku). Katsotaan kuvia 3.1 ja 4.1 Vaadin-kirjasta. Vaadin-sovelluksen tekeminen näyttää standalone-sovelluksen (Swing:n tapainen) tekemiseltä. Pääpaino on GUI-asioissa. Palvelin puolella Vaadin-sovellus on servletti. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.50/58
51 Servletit Tilanne: Mikä servletti oikein on? WWW ja HTML-tiedostojen rakenne HTTP-protokolla Miten välittää tietoa? Lomakkeet Luokat Servlet ja HttpServlet Luokat HttpServletRequest ja HttpServletResponse sekä Cookie Esimerkkejä (Kirja: Java Servlet Programming, Jason Hunter & William Crawford, 1998.) HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.51/58
52 Missä mennään Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h) 5. Soketit (3h) 6. RMI ja J2EE (3h) 7. RPC (1h) 8. WWW-sovellustekniikoista ja XML + protokollat (2h) 9. Pilvialustat (1h) 10. Haja-aiheita (2h) 99. Kertausluento (2h) + 1h pelivaraa HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.52/58
53 Palvelumallit SaaS (Software as a Service) Valmiiden sovellusten tarjoamista palveluna. Esim. Google Apps. PaaS (Platform as a Service) Tarjoaa sovellusten suoritusalustan. Esim. Google AppEngine, Windows Azure, Amazon EC2. IaaS (Infrastructure as a Service) Tarjoaa alustan, jonka päälle pystyttää resursseja (koneita, tietovarastoja). Esim. Amazon AWS?? (vai PaaS) IaaS:n ja PaaS:n on esitetty yhtyvän. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.53/58
54 Pilvilaskennan ja HOJ:n suhde Pohditaan! Pilvialustojen suhde käyttöjärjestelmiin? Pilvisovellusten yhteyskeinot pilven sisällä/ulkopuolelle toisiin sovelluksiin / resursseihin? Entä toisinpäin? Osapuolten nimeäminen pilvessä? Onko nykytilanne rajoittunut mitä tulevaisuus tuo tullessaan? HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.54/58
55 Luvun rakenne Mitä on pilvilaskenta? Tarkoitus, tavoitteet,... Pilvialustat Pilvialustojen ominaisuuksia Sovellusten tekemisestä Suhde hajautettuihin järjestelmiin? HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.55/58
56 Tenttimateriaali Kalvot (moodle). Moniste, luvut 1-9 (moodle). HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.56/58
57 Vanhoja tenttikysymyksiä Miten TCP-pohjainen sokettiyhteys luodaan? Mitä huomionarvoisia seikkoja palvelinpuolen toteutukseen liittyy? Toteuta tuottaja-kuluttaja tilanteen mukainen ohjelma, jossa tuottajasäie tuottaa yhden kerrallaan satunnaisia luokan Piste alkioita, joita kuluttajasäie kuluttaa sitä mukaa kuin niitä tulee. Tuottaja tuottaa uuden vasta kun edellinen on kulutettu. Rajoitetaan satunnaisuutta niin, että tuotettaville pisteille on voimassa 0 x, y 10. Sovitaan, että kuluttaminen tarkoittaa tässä yhteydessä pisteen koordinaattiarvojen tulostamista. Kun kuluttajasäie saa pisteen (0, 0), sen tulee aiheuttaa tuottajasäikeen ja itsensä suorituksen loppuminen kuitenkaan lopettamatta taustalla olevaa sovellusta. Kirjoita luokka tuottaja- ja kuluttajasäikeitä varten sekä hallitse niiden välinen tiedonsiirto. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.57/58
58 The End Kiitoksia mielenkiinnostanne! Toivottavasti kurssi avasi teille uusia näkymiä hajautettujen sovellusten tekemiseen. Kurssi Käyttöliittymät jatkaa 3. periodilla asiakaspuolen tekniikoiden läpikäyntiä (tapahtumaohjattua ohjelmointia). Tsemppiä tenttiin!.. ja harjoitustyöhön (DL, Osa II: ). HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.58/58
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ä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ätiedotDTEK1047: Hajautet ohjelmistojärjestelmät (HOJ)
DTEK1047: Hajautet ohjelmistojärjestelmät (HOJ) Johdatus kurssiin Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/15 HOJ (Java-kielellä) Aineopintotasoinen kurssi, 5op. Luennot: Ville
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ä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 RPC = Remote Procedure Call (ja Common Object Request Broker Architecture)
HOJ RPC = Remote Procedure Call (ja Common Object Request Broker Architecture) Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/36 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3.
LisätiedotHOJ Säikeet (Java) Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/55
HOJ Säikeet (Java) Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/55 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)
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ä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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 19: Rinnakkaisuus Riku Saikkonen (merkityt ei-laajan kurssin kalvot: Otto Seppälä) 24. 3. 2011 Sisältö 1 Säikeet 2 Lukot 3 Monitorit 4 Muuta säikeisiin
LisätiedotVerkko-ohjemointia. TCP vs. UDP Socket, ServerSocket Datagrammit RMI
15.3.2005 Verkko-ohjemointia TCP vs. UDP Socket, ServerSocket Datagrammit RMI 1 Javaa verkossa Sovelmat - appletit ajetaan www-selaimessa peritään jawa.awt.applet tai javax.swing.japlet (vrt. JFrame) http://java.sun.com/docs/books/tutorial/applet/
LisätiedotHajautettujen järjestelmien rakentaminen - Jini. Ohjelmistotuotantovälineet-seminaarin esitelmä
Hajautettujen järjestelmien rakentaminen - Jini Ohjelmistotuotantovälineet-seminaarin esitelmä Anu K. Leponiemi (anu@lepo.net) Helsingin yliopisto Tietojenkäsittelytieteen laitos Helsinki 2000 SISÄLLYSLUETTELO
LisätiedotHOJ RMI = Remote Method Invocation
HOJ RMI = Remote Method Invocation Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/37 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista
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ä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ä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ätiedotSovellusarkkitehtuurit
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ätiedotHSMT Web-sovellustekniikoista
HSMT Web-sovellustekniikoista Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2011 p.1/29 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista
LisätiedotTiedonsiirto- ja rajapintastandardit
Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen
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ätiedot3. Kuljetuskerros 3.1. Kuljetuspalvelu
End- to- end 3. Kuljetuskerros 3.1. Kuljetuspalvelu prosessilta prosessille looginen yhteys portti verkkokerros koneelta koneelle IP-osoite peittää verkkokerroksen puutteet jos verkkopalvelu ei ole riittävän
LisätiedotRinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti
Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi
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ätiedotOSI ja Protokollapino
TCP/IP OSI ja Protokollapino OSI: Open Systems Interconnection OSI Malli TCP/IP hierarkia Protokollat 7 Sovelluskerros 6 Esitystapakerros Sovellus 5 Istuntokerros 4 Kuljetuskerros 3 Verkkokerros Linkkikerros
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ätiedotCUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen
CUDA Moniydinohjelmointi 17.4.2012 Mikko Honkonen Yleisesti Compute Unified Device Architecture Ideana GPGPU eli grafiikkaprosessorin käyttö yleiseen laskentaan. Nvidian täysin suljetusti kehittämä. Vuoden
LisätiedotOHJ-5010 Hajautettujen järjestelmien perusteet
OHJ-5010 Hajautettujen järjestelmien perusteet Arkkitehtuureista (1/2) Kari Systä Kari.systa@tut.fi 1 Yleistä Uusimman tiedon mukaan ensimmäinen tentti on 19.5.2012 kello 09-12. Kurssin kotisivuilla http://www.cs.tut.fi/~hajap/
LisätiedotTentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.
Tentti Tentti Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla. Omia koneita ei saa käyttää. Sähköisessä tentissä on paperitentin tapaan osaamisen
LisätiedotLuento 6. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä
Luento 6 T-106.1240 Ohjelmoinnin jatkokurssi T1 & T-106.1243 Ohjelmoinnin jatkokurssi L1 Luennoitsija: Otto Seppälä Kurssin WWW: http://www.cs.hut.fi/opinnot/t-106.1240/s2007 Oma Grafiikka Swing-käyttöliittymässä
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ä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ätiedot8/20: Luokat, oliot ja APIt
Ohjelmointi 1 / syksy 2007 8/20: Luokat, oliot ja APIt Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Kohti
Lisätiedot4. Luento: Prosessit ja säikeets. Tommi Mikkonen, tommi.mikkonen@tut.fi
4. Luento: Prosessit ja säikeets Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Prosessi Säikeet Keskeytykset Keskeytyskäsittely Käyttöjärjestelmäkutsut Prosessielementti Prosessin hallinta Suunnittelunäkökohtia
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ätiedotProjekti 1 Säikeet ja kriittisen vaiheen kontrollointi javalla
Projekti 1 Säikeet ja kriittisen vaiheen kontrollointi javalla Lasse Leino ja Marko Kahilakoski Helsingin Yliopisto Tietojenkäsittelytieteen laitos Rinnakkaisohjelmointi 18. joulukuuta 2006 Sisältö 1 Säikeet
LisätiedotTentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.
Tentti Tentti Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla. Omia koneita ei saa käyttää. Sähköisessä tentissä on paperitentin tapaan osaamisen
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ätiedotOppimistavoitteet kurssilla Rinnakkaisohjelmointi
17.5.2006 1/5 Oppimistavoitteet kurssilla Rinnakkaisohjelmointi Rinnakkaisuus ja rinnakkaisuuden soveltaminen tietojenkäsittelyjärjestelmissä Kurssin Tietokoneen toiminta perusteella ymmärtää, miten ohjelman
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ätiedotRinnakkaisuus. parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa. TTY Ohjelmistotekniikka
Rinnakkaisuus parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa Rinnakkaisuuden etuja: laskennan nopeutuminen (sarjoittuvat operaatiojonot) ilmaisuvoima (ongelman
LisätiedotT Harjoitustyöluento
29. syyskuuta 2010 Luennon sisältö 1 2 3 Simulaatiopalvelin Moodle Harjoitustyön demoaminen 4 Aikataulu Kysyttävää? Harjoitustyössä toteutetaan ohjelma, joka simuloi reititintä: ohjelma vastaanottaa reititysdataa
LisätiedotVerkkoliikennettä Java[ssa lla] Jouni Smed
Verkkoliikennettä Java[ssa lla] Jouni Smed 9.2.2001 1 Perusteita 1 (2) tarvittavat luokat paketissa MDYDQHW IP-osoitteita käsitellään,qhw$gguhvv-olioina luonti (huom. ei konstruktoria):,qhw$gguhvvdggu,qhw$gguhvvjhw%\1dphdgguhvv
LisätiedotZENworks Application Virtualization 11
ZENworks Application Virtualization 11 ZENworks / perinteinen asennus ZENworks virtualisointi Ei erillistä asennusta Ei vaadita erilisiä oikeuksia Oletusasetukset mukana Eri versiot samanaikaisesti Sama
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ä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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 11: Rinnakkaisuus Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 25. 4. 2012 Sisältö 1 Rinnakkaisuusmalleja: säie ja prosessi 2
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Aliohjelmat, foreign function interface Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 25. 3. 2013 Sisältö 1 Aliohjelmien käyttäminen
LisätiedotAlkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari
LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti5004000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 4.6.2007,
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ätiedotHajautettujen sovellusten muodostamistekniikat (Java-kielellä), TKO_2014 Aineopinnot, syksy 2009 Turun yliopisto / Tietotekniikka
Hajautettujen sovellusten muodostamistekniikat (Java-kielellä), TKO_2014 Aineopinnot, syksy 2009 Turun yliopisto / Tietotekniikka c Ville Leppänen This page is intentionally left blank. Esipuhe Tämän oppimateriaalin
LisätiedotWeb Service torilla tavataan!
Web Service torilla tavataan! Jari Putula Avarea Oy COPYRIGHT BY AVAREA 2009 1 Google Trends COPYRIGHT BY AVAREA 2009 2 1 1. Mahdollistajat 2. Web service? 3. KISS 4. Miksi? 5. Analogia 6. Ajax 7. Esimerkki
LisätiedotT-110.4100 Harjoitustyöluento
1. lokakuuta 2009 Yhteenveto 1 2 3 Linkkitilaprotokolla 4 5 6 DL! Ensimmäinen deadline lähestyy: harjoitustyön suunnitelma pitäisi palauttaa 15.10 klo 12 mennessä. Itse harjoitustyöstä lisää tuota pikaa..
LisätiedotMonitorit. Monitori Synkronointimenetelmiä Esimerkkejä. Andrews , Stallings 5.5
Monitorit Monitori Synkronointimenetelmiä Esimerkkejä Andrews 5.1-5.2, Stallings 5.5 Tavoite Minimoi virhemahdollisuuksia poissulkeminen ohjelmoijan vastuulla P():t ja V():t siellä, täällä ja tuolla -
LisätiedotMonitorit. Tavoite. Monitori Synkronointimenetelmiä Esimerkkejä. Andrews , Stallings 5.5. Minimoi virhemahdollisuuksia
Monitorit Monitori Synkronointimenetelmiä Esimerkkejä Andrews 5.1-5.2, Stallings 5.5 Tavoite Minimoi virhemahdollisuuksia poissulkeminen ohjelmoijan vastuulla P():t ja V():t siellä, täällä ja tuolla -
LisätiedotTietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä
Tietojenkäsittelyn perusteet 2 Lisää käyttöjärjestelmistä 2011-02-09 Leena Ikonen 1 Systeemiohjelmat Systeemiohjelmiin kuuluvat Kääntäjät ja tulkit (+debuggerit) Käyttöjärjestelmä Linkittäjät Lataajat
Lisätiedot5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi
5. Luento: Rinnakkaisuus ja reaaliaika Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Perusongelmat Jako prosesseihin Reaaliaika Rinnakkaisuus Rinnakkaisuus tarkoittaa tässä yhteydessä useamman kuin yhden
LisätiedotSisältö. Työn idea Protokollat. Harjoitustyön käytäntöjä. Työn demoaminen. Etäisyysvektori Linkkitila. Palvelin Moodle SSH-tunnelit
Harjoitustyöinfo Sisältö Työn idea Protokollat Etäisyysvektori Linkkitila Harjoitustyön käytäntöjä Palvelin Moodle SSH-tunnelit Työn demoaminen 2 Työn idea Tehdään ohjelma, joka annetun reititysdatan perusteella
LisätiedotWeb sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin
TEKNILLINEN KORKEAKOULU / VAASAN YLIOPISTO Diplomityöesitelmä Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin Timo Ahola 2006 Web sovellus Web palvelut joiden avulla laite voidaan liittää
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 10 Rinnakkaisuus käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Rinnakkaisuus ja käyttöliittymäohjelmointi
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ätiedot3. Kuljetuskerros 3.1. Kuljetuspalvelu
3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end lta lle looginen yhteys portti verkkokerros koneelta koneelle I-osoite peittää verkkokerroksen puutteet jos verkkopalvelu ei ole riittävän hyvä, sitä
LisätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
LisätiedotEtäproseduurikutsu, Remote Procedure Call (RPC) Etäproseduurikutsu. Poissulkeminen moduulin sisällä?
Etäproseduurikutsu, Remote Procedure Call (RPC) Etäproseduurikutsu Andrews 8.1, 10.3, Stallings 13.3 RPC Toteutus Virhesemantiikka Palvelu etäkoneessa, ei yhteistä muistia Asiakkaat pyytävät palvelua prosedurikutsumekanismilla
LisätiedotTaustaa. CGI-ohjelmointi
Taustaa CGI-ohjelmointi CGI = Common Gateway Interface Hyvin yksinkertainen ja helppo tapa toteuttaa dynaamisuutta ja interaktivisuutta htmldokumentteihin Kehitetty tiedon siirtoon palvelimen ja asiakasselaimen
Lisätiedotsivu 1 Verkkopäätteen muuttaminen Anvian uuteen tekniikkaan Ohje käy seuraaviin verkkopäätteisiin
sivu 1 Verkkopäätteen muuttaminen Anvian uuteen tekniikkaan Ohje käy seuraaviin verkkopäätteisiin Zyxel Prestige 645 ISP Zyxel Prestige 645 WEB Zyxel Prestige 645R Zyxel Prestige 645 Ennen aloitusta tarkista,
LisätiedotPalvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät
Sulautetut järjestelmät Luku 2 Sivu 1 (??) Palvelut Käyttöjärjestelmän tehtävänä on tarjota ohjelmoijalla erilaisia palveluita Tyypillisin palvelu, jota sulautetut käyttöjärjestelmät tarjoavat on prosessien
LisätiedotJaana Diakite Projekti 1 JAVA-Monitorit 1(13) Rinnakkaisohjelmointi Anu Uusitalo
Jaana Diakite Projekti 1 JAVA-Monitorit 1(13) JAVA MONITORIT Monitorien käyttötarkoitus ja sovellusalue Monitorit ovat Java ohjelmointikielen sisäänrakennettu mekanismi säikeiden rinnakkaisuuden hallintaan.
LisätiedotVisma Nova Webservice Versio 1.1 /
Visma Nova Webservice Versio 1.1 / 31.10.2018 pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan ja siihen liittyvän muun
LisätiedotPilvi mitä, miksi ja miten
Pilvi mitä, miksi ja miten We are stuck with technology when what we really want is just stuff that works. Douglas Adams Pekka Virtanen TTY/Ohjelmistoarkkitehtuurit 2010-10-07 Päivän menu Pilvilaskenta
LisätiedotUutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3
Uutisjärjestelmä Vaatimusmäärittely Versio 1.3 Sisällys 1 Muutoshistoria... 4 2 Viitteet... 4 3 Sanasto... 4 3.1 Lyhenteet... 4 3.2 Määritelmät... 4 4 Johdanto...5 4.1 Järjestelmän yleiskuvaus... 5 4.2
LisätiedotHarjoitustyö. Jukka Larja T Tietokoneverkot
Harjoitustyö 1 Työn idea Protokollat Etäisyysvektori Linkkitila Harjoitustyö Harjoitustyön käytäntöjä Palvelin Moodle SSH-tunnelit Työn demoaminen Yleistä palautetta suunnitelmista 2 Gallup Osaatko seuraavaa
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ä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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
LisätiedotXPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy
IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,
LisätiedotS 38.1105 Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Helsinki University of Technology Networking Laboratory
S 38.1105 Tietoliikennetekniikan perusteet Pakettikytkentäiset verkot Kertausta: Verkkojen OSI kerrosmalli Sovelluskerros Esitystapakerros Istuntokerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen
LisätiedotVisma Software Oy
pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan ja siihen liittyvän muun materiaalin kopiointi on kielletty ilman :n
LisätiedotKäyttöjärjestelmät: poissulkeminen ja synkronointi
Käyttöjärjestelmät: poissulkeminen ja synkronointi 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
LisätiedotELEC-C7241 Tietokoneverkot Ohjelmointiprojekti
ELEC-C7241 Tietokoneverkot Ohjelmointiprojekti Pasi Sarolahti, 7.2.2017 Tentti ti 14.2. klo 13 Paikkana AS2 Kesto 2 tuntia Neljä kysymystä Laskinta saa käyttää Alue Kolme ensimmäistä osiota (sovellukset,
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ätiedotT harjoitustyö, kevät 2012
T-110.4100 harjoitustyö, kevät 2012 Kurssiassistentit T-110.4100@tkk.fi Tietotekniikan laitos Perustieteiden korkeakoulu Aalto-yliopisto 31.1.2012 Yleistä Kurssin osasuoritteita ovat kaksi osatenttiä,
LisätiedotJärjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat
Järjestelmäarkkitehtuuri (TK081702) SOA yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,
LisätiedotXML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.
XML prosessointi Miten XML dokumentteja luetaan ja kirjoitetaan XML prosessori lukee ja välittää XML dokumentin sovellukselle. Se sisältää entieettikäsittelijän (mahdollisesti) XML jäsentimen Sovellus
LisätiedotOhjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015
Ohjelmointi II Erkki Pesonen Luennot ja harjoitukset Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015 1 Johdantoa kurssilla opiskeluun: oppimistavoitteet. 1. Tiedän mitä asioita kurssilla opiskellaan
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ä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ätiedotTietojärjestelmäarkkitehtuurit
Tietojärjestelmäarkkitehtuurit ITK130 Johdatus ohjelmistotekniikkaan Syksy 2003 Sami Kollanus 1 Aluksi Tietojärjestelmäarkkitehtuurit vs. ohjelmistoarkkitehtuurit Pohjana Tietojärjestelmäarkkitehtuurit
LisätiedotSamanaikaisuuden hallinta
Samanaikaisuuden hallinta TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 20. maaliskuuta 2007 Samanaikaisuus engl. concurrency useampaa
Lisätiedot19/20: Ikkuna olio-ohjelmoinnin maailmaan
Ohjelmointi 1 / syksy 2007 19/20: Ikkuna olio-ohjelmoinnin maailmaan Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007
LisätiedotSalausmenetelmät (ei käsitellä tällä kurssilla)
6. Internetin turvattomuus ja palomuuri Internetin turvaongelmia Tietojen keruu turva-aukkojen löytämiseksi ja koneen valtaaminen Internetissä kulkevan tiedon tutkiminen IP-osoitteen väärentäminen Palvelunestohyökkäykset
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotThe administrative process of a cluster. Santtu Rantanen Valvoja: Prof. Jorma Jormakka
The administrative process of a cluster Santtu Rantanen Valvoja: Prof. Jorma Jormakka Sisällysluettelo Johdanto Yleistä HA klustereista Tietoturva klustereissa Hallintaprosessi Johtopäätökset Johdanto
LisätiedotTransaktiot - kertausta
Hajautettujen järjestelmien perusteet Transaktiot - kertausta Distributed Systems, Concepts and Design, George Coulouris, Jean Dollimore, Tim Kindberg Addison-Wesley 1988,1994. Pearson Education 2001 ISBN:
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton
2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.
LisätiedotTIES542 kevät 2009 Yhteismuistisamanaikaisuus
TIES542 kevät 2009 Yhteismuistisamanaikaisuus Antti-Juhani Kaijanaho 9. maaliskuuta 2009 Tehtävät ovat samanaikaiset (engl. concurrent), jos ne etenevät yhtä aikaa samalla toistensa kanssa kommunikoiden.
Lisätiedot815338A Ohjelmointikielten periaatteet
815338A Ohjelmointikielten periaatteet 2015-2016 IX Rinnakkainen ohjelmointi Sisältö 1. Yleistä rinnakkaisuudesta 2. Prosesseista ja säikeistä 3. Rinnakkaisen ohjelman oikeellisuudesta 4. Rinnakkaisuuden
LisätiedotUML -mallinnus TILAKAAVIO
UML -mallinnus TILAKAAVIO SISÄLLYS 3. Tilakaavio 3.1 Tilakaavion alku- ja lopputilat 3.2 Tilan nimi, muuttujat ja toiminnot 3.3 Tilasiirtymä 3.4 Tilasiirtymän vai tilan toiminnot 3.5 Tilasiirtymän tapahtumat
LisätiedotLaitteessa tulee olla ohjelmisto tai uudempi, tarvittaessa päivitä laite
TW-EAV510: PORTTIOHJAUS (VIRTUAL SERVER) ESIMERKISSÄ VALVONTAKAMERAN KYTKEMINEN VERKKOON Laitteessa tulee olla ohjelmisto 5.00.49 tai uudempi, tarvittaessa päivitä laite OPERAATTORIN IP---OSOITE - Jotta
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ätiedot