IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Komponentbaseret design og J2EE (kl. 17.00-21.00) 
Kursusnavn (engelsk):Component Based Design and J2EE (17:00-21:00) 
Semester:Efterår 2004 
Udbydes under:cand. it, softwareudvikling (swu) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:25 
Maks. antal deltagere:57 
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, RMI og EJB. 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, 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.




(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

¿ Model-View-Controller (MVC) som arkitekturprincip for WebApplikationer

¿ 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:

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 27. august til den 2. september 2004, kører kurset som planlagt, dvs. med forelæsninger fra 17.00 - 19.00 og øvelser fra 19.00 - 21.00.




Afhængigt af antal studerende og den kursusansvarliges ønsker, vil det være muligt at oprette et tidligt øvelseshold (før forelæsningen). Ellers kører kurset som planlagt: Forelæsning 17.00 - 19.00 og øvelser 19.00 - 21.00. 

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

Kurset forventes afsluttet med en mundtlig eksamen efter 13-skalaen uden foreberedelsestid.


Ved et større antal studerende kan der blive tale om skriftlig eksamen. Endelig beslutning træffes inden kursusstart.  

Litteratur udover forskningsartikler:Kompendium til faget Komponentbaseret Design og J2EE (2004). IT-Universitetet i København. Ca. 500 sider.