DAT110 Distribuerte systemer og nettverksteknologi

Emnebeskrivelse for studieåret 2018/2019

Innhold og oppbygning

Omtrent alle IT-systemer består av programvarekomponenter som er distribuert mellom datamaskiner og andre enheter som kommuniserer via Internett-teknologi. Eksempler på dette kan være Cloud Computing og Internet of Things.

Distribuerte systemer er avhengige av kommunikasjon, synkronisering og deling av ressurser mellom enheter. Realiseringen av skalerbare, feil-tolerante og sikre distribuerte systemer krever avanserte abstraksjoner, algoritmer og protokoll-programvare.

Kurset dekker prinsipper og modeller for distribuerte systemer, og hvordan disse er implementert i programvare ved bruk av abstraksjoner og TCP/IP nettverksteknologi.

Innhold

  • Modeller for distribuerte systemer, kommunikasjon og synkronisering.
  • Distribuerte algoritmer for feil-tolerante beregninger, data-replikering, gruppekommunikasjon, horisontal skalering og konsensus.
  • Flertrådet og parallell programmering for distribuerte systemer, programmering med sockets, streams og web-services.
  • TCP/IP nettverk med vekt på IPv4/IPv6, transport, web sockets og applikasjonslag-protokoller.
  • Plattformer og protokoller for IoT, maskin-til-maksin-kommunikasjon, MQTT, CoAP og RPL.
  • Protokollspesifikasjon, syntaks, semantikk og timing for å bygge samarbeidende systemer.
  • Modellering og testing av distribuerte systemer og protokoll-programvare.

Læringsutbytte

Etter å ha fullført dette emnet skal studenten kunne:

Kunnskaper

  • Forklare utfordringer, grunnleggende system- og kommunikasjonsmodeller for distribuerte systemer
  • Beskrive virkemåten til grunnleggende algoritmer for å utvikle feil-tolerante og skalerbare distribuerte systemer
  • Beskrive lagene, protokollene og tjenestene i TCP/IP protokoll-stacken.
  • Forstå programmeringsabstraksjoner som brukes for å implementere distribuerte systemer og protokollprogramvare

Ferdigheter

  • Bruke programmeringsabstraksjoner, rammeverk og plattformer for å implementere distribuerte systemer i en Cloud Computing- og IoT-kontekst.
  • Implementere distribuerte algoritmer basert på tjenestene gitt av TCP/IP- og mellomvare-bibliotek.
  • Utforme, implementere og teste samarbeidende protokollprogramvare basert på protokoll-spesifikasjoner.
  • Konstruere og simulere kjørbare modeller av distribuerte systemer.

Generell kompetanse

  • Anvende modellerings- og valideringsteknikker i utvikling av distribuerte programvaresystemer
  • Vurdere egnethet, begrensninger og behov for parallell programmering, distribuerte algoritmer og TCP/IP nettverking i programvareutvikling.

Krav til forkunnskaper

Ingen

Anbefalte forkunnskaper

DAT103 Datamaskiner og operativsystemer og DAT108 Programmering og webapplikasjoner.

Undervisnings- og læringsformer

Forelesninger kombinert med praktiske programmeringsoppgaver i grupper.

Arbeidskrav

Et antall mindre programmeringsprosjekter og en prosjektrapport må være gjennomført til fastsatte frister og godkjent før eksamen kan avlegges.

Godkjente øvinger gir også adgang til eventuell utsatt eksamen påfølgende semester. Ved utsatt og ny eksamen neste gang faget undervises, må nye øvinger leveres.

Vurderingsform

Skriftlig skoleeksamen, 4 timer.

Karakterskala A-F, der F tilsvarer ikke bestått.

Hjelpemidler ved eksamen

Ingen. Ved eksamen på PC skal det kun brukes en enkel teksteditor.