Innledning

Enterpriseprogrammering 2 dekker webtjenester i detalj (for eksempel REST, GraphQL og SOAP), samt kommunikasjonsprotokollene som brukes av disse (blant annet HTTP). Emnet dekker hvordan distribuerte systemer bygges ved å sette sammen webtjenester i en mikroservicearkitektur. I denne sammenheng er man innom temaer som Load Balancers, API Gateways, Circuit Breakers, meldingsorientert mellomvare og auto-scaling. Studentene lærer å bygge en moderne mikroserviceapplikasjon, inkludert GUI frontend, med de samme rammeverk som brukes i bransjen. Testing og sikkerhet er fokus gjennom hele emnet.

Læringsutbytte

Kunnskap

Studenten...

  • har kunnskap om hvordan Web Services fungerer (f.eks. REST) og når det er hensiktmessig å benytte disse
  • har kunnskap om HTTP
  • har kunnskap om sikkerhet i distribuerte systemer
  • kan skissere og forklare begrepene synkron og asynkron kommunikasjon
  • har kunnskap om hvordan meldinger fungerer i distribuerte systemer
  • har kunnskap om MicroServices
  • har kunnskap om, og forstå fordeler ved, Continuous Delivery
  • har kunnskap om hvordan man kan mocke og stubbe web services (f.eks., WireMock)

Ferdigheter

Studenten...

  • kan lage en distribuert applikasjon som håndterer kommunikasjon mellom klient og tjener i et nettverk
  • kan lage en distribuert web applikasjon basert på JVM teknologi med rammeverk (f.eks, Spring)
  • kan gjøre aktivt bruk av sikkerhetsmekanismer for adgangskontroll og brukerstyring
  • kan implementere Web Services i en JVM applikasjon
  • kan automatisere akseptansetesting via egnet verktøy
  • kan implementere en MicroService-applikasjon ved å bruke teknologi som bruker virtualisering (for eksempel Docker) og organisere denne (for eksempel vha. Kubernetes).
  • kan integrere forskjellige språk (for eksempel Java, Kotlin og JavaScript) i samme MicroService-applikasjon

Generell kompetanse

Studenten...

  • kan presentere en egenutviklet enterprise-applikasjon med grundig dokumentasjon på en slik måte at flest mulig kan få innblikk i hvordan applikasjonen er utviklet, og hvordan de ulike involverte teknologiene fungerer i samspill

Emnet inngår i

Bachelor i Informasjonsteknologi - Programmering

Læringsaktiviteter

Forelesninger, øvinger og veildning knytte til utvikling av fullstack-applikasjon. Avsluttende utrulling av selvvalgt applikasjon (prototype) med tilhørende dokumentasjon, samt en avsluttende skriftlig eksamen.

Anbefalt tidsbruk

Deltakelse i undervisning og veiledning - 48 timer

Selvstudium - 52 timer

Gjennomføring av og forberedelse til eksamen - 100 timer

Anbefalt tidsbruk totalt - 200 timer

Arbeidsverktøy

JDK, Maven, Git, Docker, valgfritt IDE.

Eksamen

Eksamensdel: Skriftlig individuell eksamen 

Varighet: Tre timer 

Gradering: Nasjonal karakterskala A - F (F er ikke bestått) 

Vekting: 40 % av samlet vurdering 

Hjelpemidler: Ingen hjelpemidler er tillatt

 

Eksamensdel: Skriftlig individuell hjemmeeksamen 

Varighet: 72 timer 

Gradering: Nasjonal karakterskala A - F (F er ikke bestått) 

Vekting: 60 % av hel vurdering 

Hjelpemidler: Alle hjelpemidler tillatt