LO346D Java EE og distribuerte systemer.
Tråder og socketprogrammering.

 

Introduksjon til faget

Dette er et avansert programmeringsfag der vi forutsetter at studentene har bred bakgrunn i Java-programmering. Du bør ha kunnskaper tilsvarende kursene Programmering i Java og Videregående programmering . I boka "Programmering i Java" dekkes dette av kapitlene 1-15. Imidlertid er avansert GUI-programmering (kap. 15) av mindre betydning. Faget heter "Java EE og distribuerte systemer". Temaet for kurset er "distribuerte systemer", mens Java EE er et rammeverk som hjelper oss å lage disse systemene på en ryddig måte.

Oversikt over leksjon 1, Tråder og socketprogrammering

Å lage distribuerte systemer forutsetter en viss kjennskap til trådprogrammering. Vi begynner derfor med en introduksjon til dette temaet. Deretter lager vi vårt første virkelige distribuerte system, det vil si at vi skal lage to Java-programmer som kan kjøre samtidig på hver sin maskin og sende data til hverandre. Teknikken vi skal bruke kalles socketprogrammering. Programmering på dette nivået krever gode kunnskaper om unntakshåndtering. Leksjonen avsluttes derfor med en gjennomgang av dette emnet.

Oversikt over faget "Java EE og distribuerte systemer"

I dag begynner vi som med det aller enkleste distribuerte systemet. Vi skal bruke såkalt socketprogrammering. Vi koder på et relativt lavt nivå og må selv passe på når det er tjenerens tur til å snakke og når det er klienten sin tur.

Allerede neste gang (leksjon 2) skal vi bevege oss opp på et høyere abstraksjonsnivå. Fra tidligere er vi vant med at objekter kommuniserer med hverandre, og det er det vi i hovedsak skal beskjeftige oss med i dette kurset også. Forskjellen fra tidligere er at objektene kan kjøre på forskjellige maskiner. Dette krever noe ekstra programmering, men egentlig ikke så veldig mye når man tenker på hva man oppnår. Å kunne lage egne Java-interface blir veldig sentralt nå.

Leksjon 3 og flere andre er frivillige og først og fremst ment som hjelp til videre fordypning i enkeltemner. Dette kan særlig være gunstig i forhold til prosjektet.

I leksjon 3 som er frivillig fortsetter vi med denne teknikken, som kalles RMI (Remote Method Invocation). Vi skal nå lage avanserte systemer som kommuniserer i begge retninger. Som øving skal du lage et prateprogram.

I leksjon 4 som også er frivillig skal vi se hvordan vi får et Java-program til å kommunisere med en database. Dette skjer via et grensesnitt (Java-interface) som heter JDBC (Java Database Connectivity). De ulike leverandørene av databasesystemer har implementert dette grensesnittet slik at det passer til akkurat deres databaser. Som Java-programmerere kan vi dermed bruke de samme metodekallene uansett hvilken database vi kopler oss opp mot. Vi skal spesielt se på de problemene som oppstår når flere brukere jobber mot den samme databasen.

I leksjon 5 skal vi fortsette å programmere mot databaser, men vi skal nå bruke Java Persistence. Dette gir en mer objektorientert tilgang til databaser.

Fra leksjon 6 og utover begynner vi å kikke på det man kan kalle Java EE. Leksjon 6 omhander JNDI, som er et grensesnitt for navnetjenester Leksjonen er imidlertid frivillig.

Leksjon 7 og utover vil hovedsaklig handle om Enterprise Beans i ulike former. Sammhandling mellom disse og applikasjonstjeneren vil også være viktig. Databaser vil også være en sentral del på slutten av denne delen.

Læremateriell leksjon 1

Leksjon (word-doc). Innleveringsoppgaver.  Merk at øvingen skal leveres inn via Its Learning.

Eksempler som er brukt i leksjonen (java-filer pakket i en zip-fil).

Eksempler fra læreboka.