IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Komponentbaseret design og J2EE 
Kursusnavn (engelsk):Component Based Design and J2EE 
Semester:Efterår 2005 
Udbydes under:cand. it, softwareudvikling (swu) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:http://www.itu.dk/courses/SKBD/E2005/index.html 
Min. antal deltagere:
Forventet antal deltagere:50 
Maks. antal deltagere:55 
Formelle forudsætninger:Du skal være god til at programmere. Du skal vide hvordan dit program spiller sammen med en database. Og det vil være en fordel hvis du har kendskab til systemudvikling og har arbejdet lidt med internettet før, fx i form af HTML eller netværksprogrammering.

Din viden om programmering kan f.eks. komme fra kurset i objektorienteret programmering med Java. Det skal understreges, at du bør ?føle dig ret rutineret? i Java, førend du vil få gavn af kurset.
 
Læringsmål:Kursets formål er at sætte dig i stand til at arbejde med komponenter i designet af IT-systemer. Dette formål har både en teknisk og en ledelsesmæssig side. Rent teknisk lærer du at benytte dele af teknologien Java Platform 2 Enterprise Edition (J2EE) og du lærer hvorfor J2EE-stiller en given teknologi til rådighed og hvordan den kan være implementeret. Vi benytter kurset igennem J2EE som repræsentant for komponentbaserede transaktionsservere og vil specielt fokusere på teknologierne: JDBC, Servlets/JSP, RMI, EJB og JavaServer Faces. Ledelsesmæssigt lærer du hvad en komponent er, hvordan du finder en komponent, samt hvordan du med komponenter organiserer en designproces.

Et gennemgående tema for kurset vil være arkitekturprincipper for større client/server-systemer, fx indkapsling på forskellige måder og niveauer. For det første, hvordan systemfunktionalitet er indkapslet i hhv. Java API?er og i Java Enterprise Servere, så du som udvikler nemt kan bruge dem. For det andet, hvordan du kan lave en modulært opbygget arkitektur, hvor moduler på forskellige niveauer er indkapslet på fornuftig vis. Sidstnævnte gør det nemmere at udvikle, fejlteste, vedligeholde og udvide systemet senere. Endvidere vil du få viden om, hvordan indkapsling gør det muligt, at folk kan specialisere sig i bestemte typer af problemer; og hvordan flere delgrupper kan arbejde parallelt med udviklingen af delelementer af store systemer.

Efter kurset vil du:

(1) Kunne forklare hvad en komponent er, samt hvordan idéen om genbrug og komponentbaseret design har udviklet sig historisk.

(2) Kunne forklare hvad systemdesign og systemarkitektur er, samt hvordan design og arkitektur er relateret til brug af komponenter.

(3) Kunne eksemplificere hvordan forskellige arkitekturprincipper benyttes i designet af J2EE-platformen og J2EE-applikationer, bl.a. indkapsling, layers, tiers, komponent/container-princippet og seperations-of-concern.

(4) Kunne beskrive en komponent, dens karakteristika og egenskaber, samt forklare hvordan kvaliteten sikres og hvordan den pågældende komponent sættes under konfigurationsstyring.

(5) Kunne bruge JDBC-api'et til at tilgå databaser fra Java-programmer og kunne redegøre for problematikkerne omkring mapping mellem relationelle data og en objektorienteret model, samt principper for indkapsling af tilgangen til databasen.

(6) Kunne lave dynamiske websider vha. Servlets og JSP, samt kunne redegøre for Servletters komponentmodel og problematikkerne omkring objektificering af HTTP-requests. Du vil endvidere kunne redegøre for basale arkitekturer for web-applikationer samt have en grundlæggende forståelse for JavaServer Faces frameworket.

(7) Kunne bruge Java-RMI til konstruktion af distribuerede objekter, dvs. objekter, som kan tilgås via netværk. Du vil endvidere kunne redegøre for problematikkerne omkring distribuerede objekter og principperne for RMI's implementation.

(8) Kunne redegøre for formålet med en Naming Service samt gøre brug af en konkret een, nemlig JNDI.

(9) Kunne gøre brug af Session Beans (en Enterprise Java Beans type) samt redegøre for kravene til distribuerede og transaktionsunderstøttede objekter samt en EJB-containers primære ansvar og principperne bag dens implementering.
 
Fagligt indhold:Det detaljerede faglige indhold af kurset omfatter:

(1) Introduktion til komponentbaseret design og J2EE: Begreber og definitioner.

(2) Komponenter, design og arkitektur.

(3) Komponenter, kvalitet og konfigurationsstyring.

(4) Brug at databaser fra Java-programmer:
- gennemgang af JDBC (opkobling til DB fra Java)
- konvertering ml. det objektorienterede og det relationelle paradigme
- indkapsling af persistens (indkapsling af JDBC og SQL)
- praktisk arbejde med at koble en database med Java.

(5) Dynamiske websider som front-end:
- kortfattet om http, browsers og web-servers
- kortfattet om html (mest forms og tabeller)
- objektificering af HTTP-requests
- gennemgang af Java Servlet-API?et (indkapsling af http)
- sessionshåndtering
- JavaServer Pages (JSP)
- syntaks og semantik
- Model-View-Controller (MVC) som arkitekturprincip for WebApplikationer
- introduktion til TagLibraries (TagLibs)
- overordnet gennemgang af JavaServer Faces
- praktisk arbejde med en J2EE-WebServer, fx Tomcat.

(6) Brug af distribuerede objekter til kommunikation:
- gennemgang af Java RMI (Remote Method Invocation)
- hvordan er RMI lavet (sockets, objektserialisering, distribuerede referencer)?
- hvordan bruges RMI (naming, synkrone kald, by-copy eller by-ref)?
- praktisk arbejde med objektkommunikation over Internet.

(7) Brug af komponentbaserede middle tiers:
- Naming Services og brug af JNDI
- gennemgang af Java EJB (Enterprise Java Beans)
- forholdet mellem en EJB-Server/containeren og en EJB-komponent
- EJB og transaktioner, persistens, flere brugere, adgangskontrol osv.
- Session Beans (stateless og stateful)
- praktisk arbejde med at køre EJB-komponenter i en EJB-container.

(8) Java 2 Enterprise Edition-arkitekturen
- Hvordan hænger de gennemgåede teknologier sammen?
- Hvordan kan de bruges i én samlet løsning?
- Hvordan opdeler man en løsning på de forskellige J2EE-teknologier?
- Generelle principper og teknologier i J2EE
- Overordnet om andre teknologier i J2EE.
 
Læringsaktiviteter:12 forelæsninger og 12 øvelsesgange


Kurset består af forelæsninger og øvelser. Der vil være ca. 40 siders læsestof til hver forelæsning (i alt ca. 500 sider), samt overheads med kommentarer, der supplerer litteraturen. Øvelserne vil omhandle praktisk implementering af mindre eksempler på J2EE-platformen.

Kurset vil med fordel kunne kombineres med et projekt i 4-ugers perioden, hvor der gås i dybden fx med et større system eller specifikke problemstillinger indenfor det meget store emneområde.

NB! Også i intro-ugen, dvs. fra den 29. august til den 2. september 2005, kører kurset som planlagt, dvs. med forelæsninger fra 17.00 - 19.00 og øvelser fra 19.00 - 21.00.

 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 13-skala, Ekstern censur

 

Litteratur udover forskningsartikler:Kompendium til kurset Komponentbaseret design og J2EE (2005). IT-Universitetet i København. Ca. 500 sider.
 
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Torsdag 17.00-19.00 Forelæsning ITU Auditorium 3
Torsdag 19.00-21.00 Øvelser ITU Multimedielab, 2A52

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2006-01-11 se eksamenstidsplan på kursets hjemmeside Mundtlig eksamen ITU se eksamensplan i studiehåndbogen på ITUs intranet
2006-01-12 do Mundtlig eksamen ITU do
2006-01-13 do Mundtlig eksamen ITU do