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