Storskaliga distribuerade system och nätverk, 13 hp

Large-Scale Distributed Systems and Networks, 13 credits

TDDD93

Kursen är nedlagd.

Huvudområde

Datavetenskap

Utbildningsnivå

Grundnivå

Kurstyp

Programkurs

Examinator

Niklas Carlsson

Studierektor eller motsvarande

Patrick Lambrix

Undervisningstid

Preliminär schemalagd tid: 80 h
Rekommenderad självstudietid: 267 h
VOF = Valbar / Obligatorisk / Frivillig
Kursen ges för Termin Period Block Språk Ort/Campus VOF
6CMJU Civilingenjör i mjukvaruteknik 4 (VT 2017) 1, 2 2, 2 Engelska Linköping, Valla O

Huvudområde

Datavetenskap

Utbildningsnivå

Grundnivå

Fördjupningsnivå

G1X

Kursen ges för

  • Civilingenjör i mjukvaruteknik

Särskild information

Kursen ges sista gången 2017 och ersätts av TDDE35.

Förkunskapskrav

OBS! Tillträdeskrav för icke programstudenter omfattar vanligen också tillträdeskrav för programmet och ev. tröskelkrav för progression inom programmet, eller motsvarande.

Rekommenderade förkunskaper

Matematisk analys, statistik och programeringskunskap (helst i både java och C).

Lärandemål

Datornät har blivit en oumbärlig del av infrastrukturen i vårt moderna samhälle. Miljarder människor och enheter är anslutna och använder kritiska distribuerade tjänster implementerade över via Internet. Det blir därför allt viktigare att förstå hur dessa nätverk, distribuerade system, och tjänster som trafikerar dessa nät, är utformade för att skala till stora antal maskiner och användare. Även på nivån för enskilda maskiner, är det viktigt att veta hur man bygger applikationer och tjänster som effektivt skalas med resurser (t.ex. antalet kärnor, processorer, etc.). I den här kursen kommer vi att använda en kombination av teori och praktik (inklusive utforskning av verkliga data) för att få en djupare förståelse av moderna storskaliga system och tjänster.

Inom området datornät, förväntas deltagare efter genomgången kurs kunna:

  • Förklara, beskriva och analysera ett typiskt nätverksarkitektur, inklusive argumentera om vikten av nätverkslager och inkapsling
  • Förklara de olika grundläggande typer av protokoll, kommunikationskanaler och nätverkstyper
  • Designa, genomföra, kontrollera och testa dina egna protokoll
  • Förklara grundläggande prestanda kompromisser, inklusive visa en förståelse för var förseningar kan förekomma i ett nätverk, vilka olika typer av förseningar som finns, inverkan av paketförluster och jitter på olika protokoll
  • Använda konkreta exempel, och i detalj, beskriva samspelet mellan de olika protokoll i nätverksarkitektur, och de protokoll som är förknippade med de olika lagren
  • Beskriva och analysera de vanligaste applikationsarkitekturer på Internet, hur de viktigaste applikationslagerprotokoll fungerar, den tjänst som de tillhandahåller, samt ha förmåga att utforma och genomföra sina egna applikationslagerprotokoll
  • Analysera och förklara viktiga designöverväganden vid transportlagret, inklusive praktisk kunskap om hur flödeskontroll och stockningskontroll fungerar, och hur tillförlitlig dataöverföring implementeras
  • Motivera och förklara hur routing och vidarebefordran genomförs på Internet, inklusive grundläggande design och implementeringsprinciper nätverkslagerprotokoll som används för att säkerställa skalbarhet
  • Beskriva och förklara olika länklagertekniker och hur de fungerar
  • exemplifiera hur olika typer av säkerhetstjänster kan implementeras i olika lager med hjälp av olika standarder
  • Analysera och exemplifiera några av de unika utmaningar som upkommer då vi går mot allt mer mobila användare
  • Förklara och diskutera grunderna i hur multimedia tjänster tillhandahålls via Internet
Studenterna förväntas också förstå hur distribuerade system kan byggas på toppen av nätverksarkitektur för att ge skalbara tjänster, samt hur flerkärniga system och inbäddade system kan användas för att ytterligare förbättra tjänsterna. Mer specifikt, efter avslutad kurs skall studenten kunna:
  • Definiera vad ett distribuerat system är och dess viktigaste mål
  • Förklara relationen mellan arkitekturer, processer och kommunikation
  • Exemplifiera olika typer av transparens, skaltekniker
  • Analysera och förklara några av de grundläggande skillnaderna i olika systemarkitekturer
  • Beskriva och förklara hur man kan uppnå synkronisering, konsistens och replikering
  • Genomföra, motivera och förklara konstruktionen av olika typer om distribuerade systemarkitekturer, inklusive objektbaserade distribuerade system (t.ex. med hjälp av Corba) och webbaserade distribuerade system (inklusive hur en proxy cache fungerar )
  • Förstå grundläggande homogena och heterogena flerkärniga arkitektur begrepp och deras prestanda konsekvenser; grundläggande tekniker för flerkärniga programmering med trådar och uppgifter; och en del tekniker för att konstruera parallella algoritmer och analysera deras komplexitet, inklusive parallell skalbarhet
  • Förstå metoder och verktyg på systemnivå för konstruktion av realtids inbyggda system; förstå grundläggande kompromisser och design konsekvenser som måste beaktas när beslut fattas på systemnivå design; och placera design i ett större sammanhang (bland annat i samband med hårdvaruarkitektur och mjukvaruimplementering).
Genom att införa generella designkoncept, några grundläggande vetenskapliga metoder (såsom grundläggande system för prestandamodellering), utforskning av verkliga data, och en allmän systemtänkande, med omfattning och resultat som viktiga aspekter, som används i hela kursen, förväntar vi oss också att studenten ska kunna:
  • Förklara med hjälp av konkreta exempel grundläggande nätverksdesignprinciper och skalbarhetsavvägningar
  • Designa och utföra målinriktade försök att kritiskt utvärdera nätverk och distribuerade system teknik
  • Använd grundläggande systemmodeller och analysmetoder för att analysera system och nätverk
  • Som ett team, planera och genomföra en projektstudie för ett identifierat problem inom ett valt teknikområde, även experiment med verkliga datakällor (som i vissa fall samlas in av studenterna själva)
  • Baserat på en projektstudie, presentera och förklara (både skriftligt och muntligt) slutsatser inom ett valt teknikområde, till en publik med liknande allmän kunskap om datornät
  • Ge/ta emot konstruktiv feedback till/från andra studenter

Kursinnehåll

Datornätverk: De grundläggande designprinciper för datornätverk, deras protokoll, och Internet stacken. Applikationsprotokoll (t.ex. HTTP), transportlagerprotokoll (t.ex. TCP), nätverkslagerprotokoll (t.ex. IP och BGP), länklagerprotokoll (t.ex. Ethernet, WiFi och Bluetooth). Introduktion till multimedia-applikationer, trådlöst nätverk och nätverkssäkerhet för varje lager.

Distribuerade system, flerkärniga system och inbyggda system: Grundläggande distribuerade arkitekturer och deras processer och kommunikation. Synkronisering, replikering, konsistensfrågor och kompromisser. Objektbaserade och webbaserade system. Flerkärniga arkitekturer, deras möjligheter och grundläggande utmaningarna de orsakar. Inbyggda system och deras integration i ett brett utbud av moderna system.

Projekt: De exakta ämnena för projektet kommer att variera något från år till år, för att hålla projekten spännande och "up-to-date" med utvecklingen inom områdena. Återkommande teman är: av storskaliga system och deras grundläggande egenskaper (t.ex., power-lagar, rik-blir-rikare); Skalbara system och mönster (t.ex., hierarkisk kontra platt design, skiktade konstruktioner); Mätning, modellering och analysmetoder som använder riktiga nätverksdata; Viktiga moderna distribuerade system såsom molnbaserade tjänster (t.ex., EC2), CDN, Internet routing arkitektur i sig, och sociala nätverk.

Undervisnings- och arbetsformer

Kursen består av både teori (föreläsningar och inlämningsuppgifter) och praktisk utbildning (laborationer och projekt). Kursen har två skriftliga tentamina. Den första på nätverk och den andra med inledande material om distribuerade system, flerkärniga system, inbyggda system, samt grundläggande systemvetenskapsmetodik. Projektet ska resultera i en skriftlig rapport, och kommer presenteras i ett seminarium i vilket studenterna kommer att fungera som både presentatörer och motståndare (utvärdera och ge varandra feedback, till exempel, för att förbättra rapporter och projekt). Labbar skall göras i par. Projekten skall göras i grupper med tre-till-fyra elever. Kursen pågår under hela vårterminen.

Examination

PRA1Projektarbete3 hpU, G
LAB1Laborationer4 hpU, G
TEN2Skriftlig tentamen3 hpU, 3, 4, 5
TEN1Skriftlig tentamen3 hpU, 3, 4, 5
För godkänt betyg krävs minst godkänt betyg för alla komponenter. Slutbetyget beräknas med hjälp av genomsnittet av de individuella tentamensbetygen.

Betygsskala

Fyrgradig skala, LiU, U, 3, 4, 5

Övrig information

Påbyggnadskurser


Distribuerade system, Avancerade nätverk, och individuella projekt

Kursen bedrivs på ett sådant sätt att både mäns och kvinnors erfarenhet och kunskaper synliggörs och utvecklas.

Planering och genomförande av kurs skall utgå från kursplanens formuleringar. Den kursvärdering som ingår i kursen skall därför genomföras med kursplanen som utgångspunkt. 

Institution

Institutionen för datavetenskap

Studierektor eller motsvarande

Patrick Lambrix

Examinator

Niklas Carlsson

Undervisningstid

Preliminär schemalagd tid: 80 h
Rekommenderad självstudietid: 267 h

Kurslitteratur

J. F. Kurose and K. W. Ross (2012), Computer networking: A top-down approach. Sixth Edition. Pearson. TBD [top-two candidates]: G. Coulouris, J. Dollimore, T. Kindberg, and G. Blair (2011), Distributed Systems: Concepts and Design, Fifth Edition, Pearson. Andrew S. Tanenbaum and Maarten van Steen (2007), Distributed Systems: Principles and Paradigms, Second Edition, Pearson Education.
Kod Benämning Omfattning Betygsskala
PRA1 Projektarbete 3 hp U, G
LAB1 Laborationer 4 hp U, G
TEN2 Skriftlig tentamen 3 hp U, 3, 4, 5
TEN1 Skriftlig tentamen 3 hp U, 3, 4, 5
För godkänt betyg krävs minst godkänt betyg för alla komponenter. Slutbetyget beräknas med hjälp av genomsnittet av de individuella tentamensbetygen.

Kursplan

För varje kurs finns en kursplan. I kursplanen anges kursens mål och innehåll samt de särskilda förkunskaper som erfordras för att den studerande skall kunna tillgodogöra sig undervisningen.

Schemaläggning

Schemaläggning av kurser görs efter, för kursen, beslutad blockindelning. För kurser med mindre än fem deltagare, och flertalet projektkurser läggs inget centralt schema.

Avbrott på kurs

Enligt rektors beslut om regler för registrering, avregistrering samt resultatrapportering (Dnr LiU-2015-01241) skall avbrott i studier registreras i Ladok. Alla studenter som inte deltar i kurs man registrerat sig på är alltså skyldiga att anmäla avbrottet så att kursregistreringen kan 
tas bort. Avanmälan från kurs görs via webbformulär, www.lith.liu.se/for-studenter/kurskomplettering?l=sv. 

Inställd kurs

Kurser med få deltagare ( < 10) kan ställas in eller organiseras på annat sätt än vad som är angivet i kursplanen. Om kurs skall ställas in eller avvikelse från kursplanen skall ske prövas och beslutas detta av programnämnden. 

Föreskrifter rörande examination och examinator 

Se särskilt beslut i regelsamlingen: http://styrdokument.liu.se/Regelsamling/VisaBeslut/622678 

Examination

Tentamen

Skriftlig och muntlig tentamen ges minst tre gånger årligen; en gång omedelbart efter kursens slut, en gång i augustiperioden samt vanligtvis i en av omtentamensperioderna. Annan placering beslutas av programnämnden.

Principer för tentamensschemat för kurser som följer läsperioderna:

  • kurser som ges Vt1 förstagångstenteras i mars och omtenteras i juni och i augusti
  • kurser som ges Vt2 förstagångstenteras i maj och omtenteras i augusti och i oktober
  • kurser som ges Ht1 förstagångstenteras i oktober och omtenteras i januari och augusti
  • kurser som ges Ht2 förstagångstenteras i januari och omtenteras i påsk och i augusti 

Tentamensschemat utgår från blockindelningen men avvikelser kan förekomma främst för kurser som samläses/samtenteras av flera program.

  • För kurser som av programnämnden beslutats vara vartannatårskurser ges tentamina 3 gånger endast under det år kursen ges.
  • För kurser som flyttas eller ställs in så att de ej ges under något eller några år ges tentamina 3 gånger under det närmast följande året med tentamenstillfällen motsvarande dem som gällde före flyttningen av kursen.
  • Har undervisningen upphört i en kurs ges under det närmast följande året tre tentamina samtidigt som tentamen ges i eventuell ersättningskurs, alternativt i samband med andra omtentamina. Dessutom ges tentamen ytterligare en gång under det därpå följande året om inte programnämnden föreskriver annat.
  • Om en kurs ges i flera perioder under året (för program eller vid skilda tillfällen för olika program) beslutar programnämnden/programnämnderna gemensamt om placeringen av och antalet omtentamina. 

Anmälan till tentamen

För deltagande i tentamina krävs att den studerande gjort förhandsanmälan i Studentportalen under anmälningsperioden, dvs tidigast 30 dagar och senast 10 dagar före tentamensdagen. Anvisad sal meddelas fyra dagar före tentamensdagen via e-post. Studerande, som inte förhandsanmält sitt deltagande riskerar att avvisas om plats inte finns inom ramen för tillgängliga skrivningsplatser.

Teckenförklaring till tentaanmälningssystemet:
  ** markerar att tentan ges för näst sista gången
  * markerar att tentan ges för sista gången 

Ordningsföreskrifter för studerande vid tentamensskrivningar

Se särskilt beslut i regelsamlingen: http://styrdokument.liu.se/Regelsamling/VisaBeslut/622682

Plussning

Vid Tekniska högskolan vid LiU har studerande rätt att genomgå förnyat prov för högre betyg på skriftliga tentamina samt datortentamina, dvs samtliga provmoment med kod TEN och DAT. På övriga examinationsmoment ges inte möjlighet till plussning, om inget annat anges i kursplan.

Andra examinationsformer

För regler för omprov vid andra examinationsformer än skriftliga tentamina hänvisas till LiU-föreskrifterna för examination och examinator, http://styrdokument.liu.se/Regelsamling/VisaBeslut/622678. 

Försök till vilseledande

Vid grundad misstanke om att en student försökt vilseleda vid examination eller när en studieprestation ska bedömas ska enligt Högskoleförordningens 10 kapitel examinator anmäla det vidare till universitetets disciplinnämnd. Möjliga konsekvenser för den studerande är en avstängning från studierna eller en varning. För mer information se www.liu.se/disciplinnamnden.

Betyg

Företrädesvis skall betygen underkänd (U), godkänd (3), icke utan beröm godkänd (4) och med beröm godkänd (5) användas. Kurser som styrs av tekniska fakultetsstyrelsen fastställt tentamensschema skall därvid särskilt beaktas.

  1. Kurser med skriftlig tentamen skall ge betygen (U, 3, 4, 5).
  2. Kurser med stor del tillämpningsinriktade moment såsom laborationer, projekt eller grupparbeten får ges betygen underkänd (U) eller godkänd (G).

Examinationsmoment

  1. Skriftlig tentamen (TEN) skall ge betyg (U, 3, 4, 5).
  2. Examensarbete samt självständigt arbete ger betyg underkänd (U) eller godkänd (G).
  3. Examinationsmoment som kan ge betygen underkänd (U) eller godkänd (G) är laboration (LAB), projekt (PRA), kontrollskrivning (KTR), muntlig tentamen (MUN), datortentamen (DAT), uppgift (UPG).
  4. Övriga examinationsmoment där examinationen uppfylls framför allt genom aktiv närvaro som annat (ANN), basgrupp (BAS) eller moment (MOM) ger betygen underkänd (U) eller godkänd (G).

Rapportering av den studerandes examinationsresultat sker på respektive institution.

Regler

Universitetet är en statlig myndighet vars verksamhet regleras av lagar och förordningar, exempelvis Högskolelagen och Högskoleförordningen. Förutom lagar och förordningar styrs verksamheten av ett antal styrdokument. I Linköpings universitets egna regelverk samlas gällande beslut av regelkaraktär som fattats av universitetsstyrelse, rektor samt fakultets- och områdesstyrelser. 

LiU:s regelsamling angående utbildning på grund- och avancerad nivå nås på http://styrdokument.liu.se/Regelsamling/Innehall/Utbildning_pa_grund-_och_avancerad_niva. 

J. F. Kurose and K. W. Ross (2012), Computer networking: A top-down approach. Sixth Edition. Pearson. TBD [top-two candidates]: G. Coulouris, J. Dollimore, T. Kindberg, and G. Blair (2011), Distributed Systems: Concepts and Design, Fifth Edition, Pearson. Andrew S. Tanenbaum and Maarten van Steen (2007), Distributed Systems: Principles and Paradigms, Second Edition, Pearson Education.
I = Introducera, U = Undervisa, A = Använda
I U A Moduler Kommentar
1. ÄMNESKUNSKAPER
1.1 Kunskaper i grundläggande (motsvarande G1X) matematiska och naturvetenskapliga ämnen
X
X
X
PRA1
TEN1
TEN2
E.g., prestanda uträkningar
1.2 Kunskaper i grundläggande (motsvarande G1X) teknikvetenskapliga ämnen
X
X
X
LAB1
PRA1
TEN1
TEN2

                            
1.3 Fördjupade kunskaper (motsvarande G2X), metoder och verktyg inom något/några teknik- och naturvetenskapliga ämnen
X
X
PRA1
TEN1
Protokol och arkitekturer
1.4 Väsentligt fördjupade kunskaper (motsvarande A1X), metoder och verktyg inom något/några teknik- och naturvetenskapliga ämnen

                            
1.5 Insikt i aktuellt forsknings- och utvecklingsarbete

                            
2. INDIVIDUELLA OCH YRKESMÄSSIGA FÄRDIGHETER OCH FÖRHÅLLNINGSSÄTT
2.1 Analytiskt tänkande och problemlösning
X
X
X
LAB1
PRA1
TEN1
TEN2
Centralt i kursen
2.2 Experimenterande och undersökande arbetssätt samt kunskapsbildning
X
X
LAB1
PRA1
Labbarna och projektet ger mycket utrymme för experimentellt kunskapsinhämtande
2.3 Systemtänkande
X
X
X
LAB1
PRA1
TEN1
TEN2
Centralt i kursen (om inte det mest centrala i kursen!!)
2.4 Förhållningssätt, tänkande och lärande
X
X
X
LAB1
PRA1
Planering och problemlösning
2.5 Etik, likabehandling och ansvarstagande
X
LAB1
PRA1
Gruppbaserad planering och problemlösning
3. FÖRMÅGA ATT ARBETA I GRUPP OCH ATT KOMMUNICERA
3.1 Arbete i grupp
X
LAB1
PRA1
Gruppbaserad planering och problemlösning
3.2 Kommunikation
X
X
PRA1
Seminarie och diskussioner
3.3 Kommunikation på främmande språk
X
LAB1
PRA1
Labbar och (vissa) rapporter
4. PLANERING, UTVECKLING, REALISERING OCH DRIFT AV TEKNISKA PRODUKTER OCH SYSTEM MED HÄNSYN TILL AFFÄRSMÄSSIGA OCH SAMHÄLLELIGA BEHOV OCH KRAV
4.1 Samhälleliga villkor, inklusive ekonomiskt, socialt och ekologiskt hållbar utveckling
X
X
X
PRA1
TEN2
Hållbarhet och ekonomiska (skalbara) lösningar
4.2 Företags- och affärsmässiga villkor

                            
4.3 Att identifiera behov samt strukturera och planera utveckling av produkter och system
X
X
X
PRA1
TEN1
TEN2
Systemtänkande centralt
4.4 Att konstruera produkter och system
X
X
LAB1
PRA1
Viss implementering av system komponenter
4.5 Att realisera produkter och system
X
LAB1
PRA1
Implementera och testa protokol-system
4.6 Att ta i drift och använda produkter och system

                            
5. PLANERING, GENOMFÖRANDE OCH PRESENTATION AV FORSKNINGS- ELLER UTVECKLINGSPROJEKT MED HÄNSYN TILL VETENSKAPLIGA OCH SAMHÄLLELIGA BEHOV OCH KRAV
5.1 Samhälleliga villkor, inklusive ekonomiskt, socialt och ekologiskt hållbar utveckling för kunskapsutveckling
X

                            
5.2 Ekonomiska villkor för kunskapsutveckling

                            
5.3 Att identifiera behov samt strukturera och planera forsknings- eller utvecklingsprojekt
X
X
PRA1
Projektarbete (lightweight)
5.4 Att genomföra forsknings- eller utvecklingsprojekt
X
PRA1
Projektarbete (lightweight)
5.5 Att redovisa och utvärdera forsknings- eller utvecklingsprojekt
X
PRA1
Projektarbete och seminarie (lightweight)

Denna flik innehåller det material som är publikt i Lisam. Den information som publiceras här är inte juridiskt bindande, sådant material hittar du under övriga flikar på denna sida.

Det finns inga filer att visa.