Arkitektur - ScrumTeam2/MinVakt GitHub Wiki

Arkitektur

Lag en arkitekturskisse som beskriver de viktigste komponentene i systemet; klienter, servertjenester, datakilder og kommunikasjonen mellom disse. Vis også eventuell lagdelt arkitektur for større komponenter. En kort tekstlig beskrivelse bør være med for hver figur.

Arkitektur

###Klient Klienten har som arbeid å motta forespørsler, og sende forespørsler. Dette foretas gjennom HTTP kall til serveren for HTML/CSS/JS, og REST kall til serveren via AJAX (jQuery Library).

###Server - HTML/JS Ved klientkall for HTML/JS transporteres HTML/JS/CSS fra server til klient via HTTP.

###Server - REST Serverens REST klasser i Java har som arbeid å motta forespørsler fra klient, og behandle responsen via eventuelle controller og databaseklasser. Ved utførelse, sender REST serveren en response tilbake til klient, enten som en error, eller som en vellykket operasjon.

###Server - Controller/Util Controller/Util klassene i serveren har som arbeid å kjøre algoritmer og operasjoner og mekanismer som feks feilhåndtering av informasjon, filtrering, kryptering, logging, og kalkuleringer.

###Server - Database-manager Database-manager-klassene har som arbeid å hente, endre, og slette på informasjon i databasen. Database-mangeren kommuniserer direkte med databasen og RESTklassen for å kunne hente eller endre på informasjon som ligger i databasen.

###Server - Mail-controller Mail-controllerklassen har som arbeid å motta forespørsel om utsending av e-post. Den sender da en request via API til en ekstern mailserver med blant annet informasjon som mottakerens e-post, emne, og innhold.

###Ekstern mailserver Den eksterne mailserveren behandler utsendig av mail til angitte mottaker(e) og innhold/emne. Forespørsler for mailutsendig foregår via SMTP.

###Database Databasen har som arbeid å lagre innsatt informasjon i tabeller og kolonner. Databasen har i seg selv mange komplekse funksjoner for å kunne effektivt hente, lagre, og endre på informasjon ved spesifikke kall. Kallene utføres fra database-manager.