Arkitektur
Systemet kører på to servere, som enten kan være hostet af kommunens egen IT-afdeling, eller af Miracl. Ved hosting af Miracle, skal der etableres en permanent site 2 site VPN forbindelse mellem backendserveren og kommunens netværk.
Diagram over løsning hostet ved kommunen
Figuren nedenfor er en mere detaljeret oversigt over arkitekturen i en løsning hostet ved kommunen.
- De røde bokse er konsolprogrammer, der skeduleres til at køre hver nat.
- De grønne bokse er IIS webservere med API og WebApp.
- De gule bokse er MS SQL Server og MySql Databaser.
- Den orange boks er Silkeborg Datas webservice.
Diagram over løsning hostet ved Miracle
Figuren nedenfor er en mere detaljeret oversigt over arkitekturen i en løsning hostet ved Miracle.
- De røde bokse er konsolprogrammer, der skeduleres til at køre hver nat.
- De grønne bokse er IIS webservere med API og WebApp.
- De gule bokse er MS SQL Server og MySql Databaser.
- Den orange boks er Silkeborg Datas webservice.
Beskrivelse af arkitektur
Backend applikationen kører på en IIS på den interne server. Denne har brugerne adgang til fra deres pc'er med deres AD login på kommunens netværk. Applikationen der kører på IIS'en er en webapp skrevet i c# med Entitiy Framework Code First og Ninject dependency injection, og en AngularJS frontend. Der bruges OData til kommunikationen mellem back og frontend. Backend applikationen understøttes af en MySql database, der er "master" databasen i systemet.
På DMZ serveren kører et API på en IIS, som mobilapplikationerne kommunikerer med, og denne understøttes også af en MySql database. Konsolapplikationen DMZSync sættes op til at køre hver morgen, og denne står for at synkronisere data mellem de to mysql databaser. Det er dog ikke alt data der synkroniseres ud i DMZ databasen, da det ikke er alle funktioner fra webappen der også kan bruges i mobilapplikationerne. API'et er opbygget på samme måde som webappen med Entity Framework Code First, så mysql databasen styres også på samme måde.
Integrationen til kommunen foregår ved, at kommunen stiller to views til rådighed i en MS SQL Server database, som indeholder data om medarbejdere og organisationen. Data fra de to views danner grundlag for systemet, og hentes ind i backend mysql databasen en gang i døgnet gennem konsolapplikationen DBUpdater. Laver kommunen en opdatering til en medarbejder eller en organisationsafdeling, vil denne altså slå igennem i OS2 Indberetning dagen efter.
Mail konsolapplikationen kører også en gang i døgnet, og står for at sende emails med notifikationer til ledere og godkendere, hvis der er indberetninger der skal godkendes.
Hvis kommunen bruger KMD OPUS, kan en administratorbruger kan manuelt danne en fil med et udtræk til KMD. Denne lægges automatisk i en folder, som KMD læser filen fra. Denne fil fungerer som snitfladen til KMD OPUS. Bruger kommunen i stedet Silkeborg Data, vil administratoren afsende data til Silkeborg Datas webservice.
Sikkerhed
Webapp
Der bruges Integrated Windows Authentication i webappen. Brugeren bliver autentificeret idet vedkommende logger på sin pc med sin AD-bruger, og derfor er det ikke nødvendigt igen at autentificere brugeren ved forespørgslen til webappen. Det er derfor kun domæne og AD-brugernavn der sendes til webserveren. OS2 Indberetning sammenholder så domænenavn med kommunens domænenavn, og AD-brugernavnet med de brugernavne vi har importeret fra kommunens view med medarbejderdata. Hvis brugeren optræder her, vil vedkommende have adgang til webappen.
Er løsnigen hostet ved Miracle, skal der etableres en permanent site 2 site VPN forbindelse fra backendserveren til kommunens netværk, så brugerne kan tilgå websiden, og der kan læses medarbejder-og organisationsdata fra kommunens SQL Server database.
DMZ og Mobilapp
I webappen er det muligt for brugeren at oprette et password til brug i mobilapplikationerne. Passwordet krypteres og lægges i databasen, hvorefter det bliver synkroniseret ud på DMZ serveren den følgende nat. Herefter kan brugeren anvende mobilapplikationerne. Alt personfølsomt data, der lægges i databasen på DMZ serveren vil være krypteret. API’et vil være konfigureret til kun at acceptere HTTPS forbindelser fra mobilapplikationerne.