Emne
Distribuerte systemer (DAT520)
Emnet gir innsikt i både teoretiske og praktiske aspekter ved distribuerte datasystemer. Emnet har spesielt fokus på teknikker for å bygge feiltolerante systemer.
Dette er emnebeskrivelsen for studieåret 2020-2021. Merk at det kan komme endringer.
Semesters
Fakta
Emnekode
DAT520
Vekting (stp)
10
Semester undervisningsstart
Vår
Undervisningsspråk
Engelsk
Antall semestre
1
Vurderingssemester
Vår
Innhold
Emnet gir innsikt i viktige teoretiske prinsipper ved distribuerte datasystemer, blant annet system-modeller for interaksjon og feil, interprosess kommunikasjon, synkronisering, tid og globale tilstander, protokoller for koordinering og konsensus (Paxos), distribuerte transaksjoner, feiltoleranse, konsistens, og replikering. Emnet tar også for seg konkrete systemer og arkitekturer for distribuerte systemer: map-reduce, distributerte hash tabeller, peer-to-peer system, gossip-baserte system, og distribuerte fil- og lagringssystemer.
Emnet omfatter også et større programmeringsprosjekt som er basert på konsepter og algoritmer fra undervisningen, der studentene må vise hvordan disse kan implementeres i praksis.
Programmeringsprosjektet som inngår i dette emnet skal utvikles i programmingsspråket Go.
Læringsutbytte
Kunnskap
- Være kjent med viktige prinsipper for design og implementasjon av distribuerte datasystemer. - Være kjent med de viktigste systemarkitekturene for distribuerte datasystemer. - Være kjent med viktige teknikker for å løse ulike problemstillinger i distribuerte datasystemer.
Ferdighet
- Være i stand til å utvikle distribuerte applikasjoner med feiltoleranse egenskaper. - Være i stand til å gjennomføre uavhengig forskning innen distribuerte systemer. - Kunne resonnere rundt problemstillinger som involverer distribuerte komponenter.
Generell kompetanse
- Vite hvordan man utvikler distribuerte datasystemer.
Forkunnskapskrav
Anbefalte forkunnskaper
Eksamen / vurdering
Vurderingsform | Vekting | Varighet | Karakter | Hjelpemiddel | Exam system | Withdrawal deadline | Exam date |
---|---|---|---|---|---|---|---|
Skriftlig eksamen | 6/10 | 4 Timer | Bokstavkarakterer | Ingen hjelpemidler tillatt | Inspera assessment | — | — |
Programmeringsprosjekt | 4/10 | Bokstavkarakterer | — | — | — |
Prosjektoppgave bestående av flere programmeringsoppgaver teller 40 % av totalkarakter. Prosjektoppgaven utføres i gruppe. Karakteren for prosjektoppgaven settes basert på innlevert programkode og individuell muntlig fremføring av innlevert programkode. Det gis kun en samlet karakter for disse oppgavene. Gruppemedlemmene kan få ulik karakter basert på den muntlige fremføringen.
Skriftlig eksamen teller 60 % av totalkarakter.
Vilkår for å gå opp til eksamen/vurdering
To obligatoriske individuelle programmeringsoppgaver. Godkjent/ikke godkjent. Alle programmeringsoppgavene må godkjennes innen angitte tidsfrister for å gå opp til skriftlig eksamen. Godkjenning skjer ved innlevering via Autograder systemet for automatisk evaluering, samt etterfølgende godkjenning på lab.
Gjennomføring av obligatorisk lab skal gjøres til de tider og i de grupper som er oppsatt. Fravær på grunn av sykdom eller av andre årsaker skal snarest mulig kommuniseres til laboratorie- eller fagansvarlig. Det kan ikke påregnes å få gjennomføre lab utenom oppsatt tid hvis dette ikke er kommunisert og ny avtale gjort.
Konsekvens av at du ikke har fått godkjent laboratoriearbeid er at du ikke får gå opp til eksamen i faget.
Fagperson(er)
Emneansvarlig:
Hein MelingInstituttleder:
Tom RyenArbeidsformer
Overlapping
Emne | Reduksjon (SP) |
---|---|
Distribuerte systemer (DAT520_1) , Distribuerte systemer (MID110_1) | 10 |
Åpent for
Emneevaluering
Litteratur
Book
Introduction to Reliable and Secure Distributed Programming Cachin, Christian ; Guerraoui, Rachid ; Rodrigues, Luís, Berlin, Heidelberg, Springer Berlin Heidelberg, 2011, isbn:9783642152597, https://bibsys-ur.userservices.exlibrisgroup.com/view/uresolver/47BIBSYS_UBIS/openurl-UIS?ctx_enc=info:ofi/enc:UTF-8&ctx_id=10_1&ctx_tim=2020-12-10T15:44:53IST&ctx_ver=Z39.88-2004&url_ctx_fmt=info:ofi/fmt:kev:mtx:ctx&url_ver=Z39.88-2004&rfr_id=info:sid/primo.exlibrisgroup.com-scopu&req_id=&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=book&rft.atitle=Introduction%20to%20Reliable%20and%20Secure%20Distributed%20Programming&rft.jtitle=&rft.btitle=%3ch%3eIntroduction%3c/h%3e%20%3ch%3eto%20Reliable%3c/h%3e%20%3ch%3eand%20Secure%3c/h%3e%20%3ch%3eDistributed%3c/h%3e%20%3ch%3eProgramming%3c/h%3e&rft.aulast=Cachin,%20Guerraoui,%20Rodrigues&rft.auinit=&rft.auinit1=&rft.auinitm=&rft.ausuffix=&rft.au=Cachin,%20Christian&rft.aucorp=&rft.date=2011&rft.volume=&rft.issue=&rft.part=&rft.quarter=&rft.ssn=&rft.spage=&rft.epage=&rft.pages=&rft.artnum=&rft.issn=&rft.eissn=&rft.isbn=9783642152597&rft.sici=&rft.coden=&rft_id=info:doi/10.1007/978-3-642-15260-3&rft.object_id=&rft.eisbn=3642152600&rft.edition=2&rft.pub=Springer%20Berlin%20Heidelberg&rft.place=Berlin,%20Heidelberg&rft.series=&rft.stitle=&rft.bici=&rft_id=info:bibcode/&rft_id=info:hdl/&rft_id=info:lccn/&rft_id=info:oclcnum/&rft_id=info:pmid/&rft_id=info:eric/((addata/eric}}&rft_dat=%3cscopu%3e255271995%3c/scopu%3e%3curl%3e%3c/url%3e,language=eng,view=UBIS&svc_dat=viewit&user_ip=10.16.56.128&req.skin=primo&rft_pqid=&rft_galeid=&rft_cupid=&rft_eruid=&rft_nurid=&rft_ingid=View online
Other
Lecture notes Racin Nygaard et. al, Lecture notes will be available on Canvas.
Other
Lab assignments Racin Nygaard et. al, Lab assignments will be available on GitHub.
Article
Reading material Additional required reading material will be available on the courses GitHub page.
Book
The Go programming language Donovan, Alan A. A., Kernighan, Brian W., New York, NY, Addison-Wesley, XVII, 380 sider, [2016], isbn:9780134190440; 0134190440,