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 Leppänen, Ville.Leppanen@utu.fi Harjoitustyöohjaaja: Sama (I) + Sampsa Rauti (II). WWW: staff.cs.utu.fi/opinnot/kurssit/hoj-2012/ https://moodle2.utu.fi/course/view.php?id=1228 Luentoajat: ti 12-14 (β) ja to 12-14 (β) (poikkeuksia!). Alkaa: ti 29.10; loppuu: to 13.12. Luentoja: 24t. Suoritustavat: 2-osainen harjoitustyö + tentti. Tentit: 7.1.2013, 11.2 ja 11.3. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.2/15
Luentosuunnitelma Vko 44 Johdanto + säikeet + samanaikaisuudesta Vko 45 Johdatus verkkosovelluksiin, soketit. Vko 46 Soketit ja RMI (Remote Method Invocation) Vko 47 RMI ja RPC (Remote Procedure Call). Vko 48 WWW-tekniikoista, XML, Ajax, Vaadin. Vko 49 Pilvialustat ja -sovellukset. Vko 50 Haja-aiheita, kertaus. Haja-aiheita Turvallisuudesta, dokumentointi, testaus, palomuurit,... HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.3/15
Kuka voi suorittaa? Esitiedot: TKO2005 Olio-ohjelmoinnin perusteet. Suositus: Olisi hyvä tietää myös sisäluokat ja olla kohtuullisen vankka tuntuma ohjelmointiin. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.4/15
Materiaali Kalvot verkossa! Yritän kirjoittaa / päivittää monistetta luentojen edetessä. Paljon kirjoja, mutta mikään ei tunnu kattavalta. Deitel & Deitel: Java, How to Program, 9th edition, Prentice Hall, 1500+ sivua sekä CD. (Ei kovin kattava.) Bruce Eckel: Thinking in Java (saa verkosta). HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.5/15
Kurssin suorittamisesta Luennot kuunteleminen suotavaa. Ei demonstraatioita ( laskuharjoituksia ). Tentti. Tenttipäivät: 7.1.2013, 11.2 ja 11.3. Harjoitustyö: 2-osainen harjoitustyö, joka tulisi tehdä 2-3h ryhmissä. Osat: (1) säikeet, (2) soketit ja RMI sovellettuna paikkatietoon. Kurssin tahti on tiivis. Harjoitustyö tulisi tehdä kurssin aikana! HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.6/15
Harjoitustöistä Osat ovat kaikille samoja! Työn ratkaisemisen periaatteista saa keskustella, mutta koodia ei saa antaa toisille. Jos havaitaan kopiointia (rakenteellista, tms), seurauksena hylkääminen. Ensimmäinen osatyö annetaan viikolla 44. Jos on tehnyt viime vuoden HSMT-harjoitustyön, uutta ei tarvitse tehdä. Dokumentointi: JavaDoc (tai vastaava). Työn voi tehdä 2-3 hengen ryhmässä (suositeltavaa). Jos ryhmä, ilmoitus luennoitsijalle viikolla 44. Mahdollisesti töiden julkinen purkutilaisuus. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 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ä. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 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, JSON. Verkko: palvelinsovellukset ja tietokantapalvelimet. WWW+Java: Servletit, Ajax. RPC Remote Procedure Call. WWW-tekniikoista. Pilvialustat. Verkkoliikenteen turvallisuudesta. Dokumentointi, testaus,... HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.9/15
Lisätavoite Jokainen osallistuja suorittaa kurssin kaikki osat kolmessa kuukaudessa. Suorituksia tähän kurssin instanssiin voi tehdä vielä maaliskuussa 2013. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 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 ja J2EE (3h) 7. RPC (1h) 8. WWW-sovellustekniikoista (2h) 9. Pilvialustat (4h) 10. Haja-aiheita (2h) 99. Kertausluento (2h) + 1h pelivaraa HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 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. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 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,... HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 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ä). HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.14/15
Asiakas-palvelin suhteesta Internet: maailmanlaajuinen alusta asiakas-palvelin tietokonesovelluksille. (Muita: DigiTV, mobiiliverkko.) WWW-selain: asiakas; http-palvelin, jonkin muun protokollan mukainen palvelin,... WWW:n idea: palvelimella html-dokumentteja & Java-appletteja & etc; selain lataa ja suorittaa niitä 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. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.15/15