IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Komponentbaseret design og J2EE 
Kursusnavn (engelsk):Component Based Design and J2EE 
Semester:Forår 2006 
Udbydes under:cand. it, softwareudvikling (swu) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:http://www.itu.dk/courses/SKBD/F2006/index.html 
Min. antal deltagere:
Forventet antal deltagere:55 
Maks. antal deltagere:80 
Formelle forudsætninger:Du skal være god til at programmere. Du skal vide hvordan dit program spiller sammen med en database, fx via JDBC. Og det vil være en fordel hvis du har arbejdet 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, for at få gavn af dette kursus. 
Læringsmål:Kursets formål er at sætte dig i stand til at arbejde med komponenter i designet af it-systemer. 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: Servlets/JSP, EJB (session beans og entity beans), JavaServer Faces og Java Message Services (JMS). Endvidere lærer du hvad en komponent er, hvordan du finder en komponent, samt hvordan du bruger komponenter i et design.

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 APIer 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, systemarkitektur og enterprise patterns 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 separation of concerns.

(4) Kunne redegøre for problematikkerne omkring mapping mellem relationelle data og en objektorienteret model, samt principper for indkapsling af tilgangen til databasen.

(5) 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.

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

(7) 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.

(8) Kende til nogle enterprise application patterns og forstå hvordan forskellige teknologier svarer til forskellige patterns.

(9) Kunne lave enkle brugergrænsefladedesign og objekt-relationel databinding med Microsoft .Net, og forklare hvordan arkitekturen adskiller sig fra J2EE.  
Fagligt indhold:Det detaljerede faglige indhold af kurset omfatter:

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

(2) Distribuerede systemer, begreber om arkitektur, overblik over J2EE.

(3) Dynamiske websider som front-end:
- Kortfattet om http, browsers, web-servers
- Objektificering af HTTP-requests
- Java servlet-APIet (indkapsling af http)
- Sessionshåndtering
- JavaServer Pages (JSP)
- Model-View-Controller (MVC) som arkitekturprincip for WebApplikationer
- Introduktion til TagLibraries (TagLibs)
- Gennemgang af JavaServer Faces
- Praktisk arbejde med en J2EE-WebServer, fx Tomcat.

(4) Brug af komponentbaserede middle tiers:
- Naming Services og brug af JNDI
- Gennemgang af Enterprise Java Beans (EJB)
- Forholdet mellem en EJB-server/containeren og en EJB-komponent
- EJB og transaktioner, persistens, flere brugere, adgangskontrol osv.
- Session beans (stateless og stateful)
- Objekt-relationel mapping og entity beans
- Praktisk arbejde med at køre EJB-komponenter i en EJB-container.

(5) 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.

(6) Nogle centrale enterprise patterns.

(7) Arkitekturen i typiske applikationer konstrueret med Microsoft .Net.

(8) Objekt-relationel mapping i fremtidige udgaver af Microsoft .Net. 
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.

De tre sidste uger af kurset bruges øvelserne til at udføre et miniprojekt i J2EE.

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 30. januar til den 3. februar 2006, 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 (2006). 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 Aud 4 (4A60)
Torsdag 19.00-21.00 Øvelser ITU 4A54, 4A56, 4A58

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2006-06-16 Se tidsplan på kursushjemmeside Mundtlig eksamen ITU Se eksamensplan i Studiehåndbog på intranettet
2006-06-19 Se tidsplan på kursushjemmeside Mundtlig eksamen ITU Se eksamensplan i Studiehåndbog på intranettet
2006-06-20 Se tidsplan på kursushjemmeside Mundtlig eksamen ITU Se eksamensplan i Studiehåndbog på intranettet
2006-06-21 Se tidsplan på kursushjemmeside Mundtlig eksamen ITU Se eksamensplan i Studiehåndbog på intranettet
2006-06-22 Se tidsplan på kursushjemmeside Mundtlig eksamen ITU Se eksamensplan i Studiehåndbog på intranettet
2006-06-23 Se tidsplan på kursushjemmeside Mundtlig eksamen ITU Se eksamensplan i Studiehåndbog på intranettet