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: Ville Leppänen, Ville.Leppanen@it.utu.fi Harjoitustyöohjaaja: Jari-Matti Mäkelä. WWW: staff.cs.utu.fi/opinnot/kurssit/hsmt/ Moodle: http://moodle.utu.fi/course/view.php?id=2310 (hajatek) Luentoajat: ti 8-10 (β) ja ke 8-10 (β). Alkaa: ti 8.9; loppuu: ke 14.10. Luentoja: 6 4 = 24t. Suoritustavat: harjoitustyö + tentti. Ensimmäinen tentti: heti luentojen jälkeen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.2/15
Luentosuunnitelma Vko 37 Johdanto + säikeet + samanaikaisuudesta Vko 38 Johdatus verkkosovelluksiin, soketit. Vko 39 RMI (Remote Method Invocation) Vko 40 RPC (Remote Procedure Call), Corba Vko 41 Verkkoyhteys ja XML. WWW+servletit Vko 42 Haja-aiheita, kertaus. Vko 43 Ensimmäinen tentti? Haja-aiheita J2EE, turvallisuudesta, dokumentointi, testaus, p2p, ajax, palomuurit, ipv6,... HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.3/15
Kuka voi suorittaa? Esitiedot:Olio-ohjelmoinnin perusteet (tai vastaava) suoritettuna kokonaan. Suositus: Sopimuspohjainen olio-ohjelmointi suoritettu. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.4/15
Materiaali Kirjoitan uutta monistetta luentojen mukana. Paljon kirjoja, mutta mikään ei tunnu kattavalta. Deitel & Deitel: Java, How to Program, 7th edition, Prentice Hall, 1500+ sivua sekä CD. (Ei kovin kattava.) Bruce Eckel: Thinking in Java (saa verkosta). HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.5/15
Kurssin suorittamisesta Luennot kuunteleminen suotavaa. Ei demonstraatioita ( laskuharjoituksia ). Tentti. Tenttipäivät: 2.11??, 30.11?? Harjoitustyö: yksi 1-3 hengen työ (soketit + RMI + säikeet). Kurssin tahti on tiivis. Harjoitustyö tulisi tehdä kurssin aikana! HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.6/15
Harjoitustöistä Työ on kaikille sama! Työn ratkaisemisen periaatteista saa keskustella, mutta koodia ei saa antaa toisille ryhmille. Jos havaitaan kopiointia (rakenteellista, tms), seurauksena hylkääminen. Työ annetaan viikolla 37. Jos on tehnyt viime vuoden harjoitustyön, uutta ei tarvitse tehdä. Dokumentointi kevyehkö. Ohjaus: Jari-Matti Mäkelä; järjestämme luentojen lisäksi 1-3 yleistä ohjaustilaisuutta. Ryhmien tulee ilmoittautua Jari-Matti Mäkelälle viikolla 38. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.7/15
Kurssin tavoitteita 1/2 Käydä läpi ohjelmointikielten ulkopuoliset modernit verkko-ohjelmointiin 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ä. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.8/15
Kurssin tavoitteita 2/2 Säikeet ja samanaikaisuuteen liittyvän problematiikan hallinta. Soketit. RMI Remote Method Invocation. Verkko: asiakas-palvelin sovelluksen välinen keskustelu; XML. Verkko: palvelinsovellukset ja tietokantapalvelimet. WWW+Java: Servletit. RPC Remote Procedure Call. CORBA. Verkkoliikenteen turvallisuudesta. Dokumentointi, testaus,... HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.9/15
Lisätavoite Jokainen osallistuja suorittaa kurssin kaikki osat kolmessa kuukaudessa. Suorituksia tähän kurssin instanssiin voi tehdä vielä tammikuussa 2010. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.10/15
Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h) 5. Soketit (3h) 6. RMI (2h) 7. RPC (1h) 8. Corba (1h) 9. Protokollista, XML (2h) 10. WWW+Servletit (2h) 11. Haja-aiheita (3h) 99. Kertausluento (2h) + 2h pelivaraa HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.11/15
Ohjelmien toimintaympäristöstä Missä ympäristössä ohjelmat operoivat? Rajoittunut ympäristö (sulautetut järjestelmät) tai tavallinen ympäristö. Tavallisesti: keskusmuisti, levymuisti, levykemuisti, oheislaitteet, käyttöjärjestelmä, näppäimistö ja monitori. Prosessorin lähellä: väylärakenne, ohjaimia ja välimuisteja. Lisäksi: verkko ja verkon myötä toiset tietokoneet. Toimintaympäristö ei näy kielen tasolla vaan luokkaja/tai aliohjelmakirjastojen kautta. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.12/15
Verkko: taustaa Verkko: Internet ollut jo 1970-luvulla, periaatteessa samanlaisena kuin nykyään. Tuli ohjelmointikielten kirjastoihin mukaan n. 1980-luvulla (erityisesti C ja C++; APRA etc). Asiakas-palvelin sovelluksia paljon: sähköposti, WWW, news, DNS, pääteohjelmat, irc, verkkotietokannat, gopher, kello, NFS,... HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.13/15
Säikeet: taustaa Samanaikaisuus/rinnakkaisuus tuli useiden prosessoreiden myötä. Esiintyy kielissä hyvin monessa muodossa. Rinnakkaisuus vanha asia: 1960-luku. Yleistynyt viime vuosina pakkaustiheyden noustessa. Samanaikaisuus heikoin muoto. Säikeiden avulla. Ajatuksena saada enemmän irti koneesta. Java: GUI & verkko & säikeet kirjastojen avulla (säikeille hieman tukea kielessä). HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.14/15
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. Asiakas vs. palvelin: vaikuttamista molempiin suuntiin. Asiakaspuolen laskenta (client-side computing). Aiemmin keskuskoneessa tehtiin laskenta; nyt "keskuskone"(=palvelin) jakaa "laskettavaa". Pilvilaskenta edustaa softallista paluuta keskuskoneaikaan. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.15/15