Introduktion til kurset

At de studerende opnår kendskab til distribuerede systemer og til praktisk konstruktion af distribuerede systemer. Distribuerede systemer er systemer, der består af flere programmer, som arbejder sammen om at løse en opgave, og som er fordelt på forskellige maskiner. De enkelte dele kan evt. være skrevet i forskellige programmeringssprog og/eller afvikles på forskellige operativsystemer på samme eller forskellige maskiner. Det kan være løsere forbundne systemer som f.eks. en webserver og en webbrowser, eller den indre struktur af en kompleks website med database, søgemaskine, e-handel, m.m.

Indledning

Denne rapport er skrevet som en besvarelse til den stillede eksamensopgave i kurset Distribuerede Systemer foråret 2001.

Med skelen til opgavens størrelse har vi valgt ikke at give en fuldstændig gennemgang af alle de anvendte teknologier og heller ikke bruge meget tid på den grundlæggende forklaringen af flere af teknologierne.

Vi har i opgaven lagt stor vægt på at implementeringen af gateway skulle minde mest muligt om en "ægte" gateway. Med dette menes, at vi har prøvet at implementere gatewayen på den mest realistiske måde, da vi har lagt stor vægt på at vigtige krav som ydeevne, fejlhåndtering og skalerbarhed.

Vi har valgt at implementere gatewayen i Java, da dette sprog tilbyder enkle tråd primitiver, og da det er det primære programmeringssprog på RUC.

Design af Gatewayen

Gatewayen har til opgave at fungere som mellemled i en almindelig klient/server arkitektur, hvori serveren venter på requests fra klienter. Udgangspunktet for at benytte en gateway er, at klienten og serveren ikke kan eller må få direkte forbindelse til hinanden. De er derfor tvunget til at etablere en virtuel forbindelsen igennem gatewayen.

Dette stiller krav til gatewayen om, at den skal agere server overfor klienten og klient overfor serveren og, at den skal gøre dette uden, at hverken serveren eller klienten bemærker det. Gatewayen bør simulere, at der er en direkte forbindelse imellem klienten og serveren, dvs. den skal optræde transparent.

Opbygningen af gatewayen i de to dele, der sikre "optimal" ydeevne

Gatewayen består af to dele. En del håndtere al kommunikation til serveren og den anden del al kommunikation til klienten. Dette arkitektur gør at der skal være netværkskommunikation mellem serverdelen og server applikationen og klientdelen og klientapplikationen. En serverapplikation lytter på en port og modtager requests fra klienter. Gateway arkitekturen angivet ovenover stiller altså krav om at klientsiden har en tilsvarende funktionalitet.

Applet

Da Internet Explorer ikke understøtter Rmi, medmindre man downloader en "udvidelse" fra IBM, har vi valgt ikke at implementere vores GatewayController som applet. Men applikationen kan downloades fra download sektionen og også ses nedenstående.

Vores brugergræseflade til fjernstyringsapplikationen, der styre hvilke services og brugere, der har lov til at benytte gatewayen

Da de tilladte brugere af gatewayen er afhængig af hvilken service, der er tale om, har vi valgt at implementere vores brugergrænseflade, således, at den nederste liste er afhængig af valget i den øverste.

Download

Eksamensprojekt:
Selve projektet (i pdf-format) 888 KB

Appendix zippet (zippet pdf-format) 185 KB

Java kildekode zippet (Java filer zippet) 15 KB

Note: This report is the answer to the exam in Distributed Systems at RUC (spring 2001). The report was written in collaboration with Jacob W. Winther.
Relevant links:
Kopi af den stillede opgave
Sockets i Java

Subpages