HVL-logoHVL-logo

Emnearkiv

Distribuerte systemer og nettverksteknologi (DAT110)

Emnebeskriving for studieåret 2018/2019

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.

Innhald og oppbygging :

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.

Undervisnings- og læringsformer: Forelesninger kombinert med praktiske programmeringsoppgaver i grupper.

Undervisningsspråk: Norsk/Engelsk

Krav til forkunnskapar: Ingen

Vurderingsform:

Skriftlig skoleeksamen, 4 timer.

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

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.

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

Tilrådde forkunnskapar: DAT103 Datamaskiner og operativsystemer og DAT108 Programmering og webapplikasjoner.

Distributed Systems and Networking Technology (DAT110)

Course Description for Year of Study 2018/2019