Følgende giver en gennemgang af den tekniske løsning der er udviklet for at understøtte forretningsfunktionaliteten.
Applikationsdesign
DFDG er udviklet så det understøtter en lagdelt webapplikation, som registrerer direkte i DFDG’s database. DFDG er udviklet efter normal best practice for Microsoft.NET platformen for sådanne applikationer, dog præget af at udviklingen af DFDG har stået på i en del år. Det er en arkitektur med fire logiske applikationslag som vist på tegningen herunder, suppleret med en række delte komponenter og klasser. DFDG har ikke egen brugergrænseflade, så Præsentationslaget i nedenstående er ikke en del af DFDG men en del af de applikationer der anvender DFDG.
Figur 4: Lagdelt opbygning af DFDG, dog er brugergrænsefladen ikke en del af DFDG
DFDG implementerer følgende lag:
- Servicelag – udstilling af forretningslaget via webservices samt besked-kø
- Forretningslag – forretningskomponenter (dog uden brug af Microsoft workflow logik)
- Datalag – adgangslag til datakilder som databaser og eksterne services
Systemet udvikles i Microsoft.NET teknologi i programmeringssproget C#, med anvendelse af enkelte støttekomponenter til f.eks. logning, e-mail afsendelse, sms-afsendelse til SMS-gateway, dannelse af pdf-dokumenter, osv.
Servicelaget
Servicelaget er en tynd skal oven på forretningslaget. Servicelaget målrettes forretningsbehovene i de enkelte forretningsapplikationer og skærmer disse mod forretningslogikken og domænemodellen som anvendes i forretningslaget.
Alle services udstilles som SOAP webservices, og der skrives WSDL kontrakter via Contract-first arbejdsformen med anvendelse af delte typer (Shared-Types), herunder bl.a. OIO typer. WSDL kontrakten beskriver syntaks for de enkelte felter, samt kardinalitet. Alle kald valideres. Ved fejl kastes en SOAP Exception.
Webservices er udviklet via Microsoft Webservice Communication Foundation (WCF) rammeværket.
Alle webservices er beskyttes via server-certifikater til kryptering af kommunikationen og klient OCES funktionscertifikater til autentificering. Forretningslaget sikrer også at aftagere kun får adgang til de services og data som aftager må modtage.
Services i DFDG kan logisk opdeles i fire typer:
- Forretningsservices
- Disse services foretager en forretningshandling som kan resultere i en eller flere registreringer af data i DFDG, men også resultere i kald til andre systemer. Sådanne services er typisk tænkt som del at en specifik forretningsgang.
- Dataservices
- Disse services arbejder direkte på en enkelt entitet, og stiller typisk et CRUD (Create, Read, Update og Delete) interface til rådighed. Read operationen er typisk stillet til rådighed via PersonStatusServices, der returnerer mange centrale data omkring borgeren og Delete operationen er i flere tilfælde udeladt, men understøttet som en blød sletning via Update operationen.
- Hændelsesservices
- Disse services returnerer data om hændelser, som udsendes via WSRM køen i DFDG. WSRM køen er en hændelseskø for hver aftagertype (dvs. organisation, forretningsenhed, osv.), f.eks. et Jobcenter eller en Kommune. Hændelseskøen underretter aftagerne om hvilke hændelser der kan være relevante for denne aftager.
- Infrastrukturservices
- Disse services er en del af rammeværket og understøtter f.eks. hændelseskøen, logning, sikkerhed eller andet.
Webservicekatalog
DFDG tilbyder en række webservicekataloger med et antal webservices i hver, som kan tilgås af eksterne applikationer.
Der findes i dag:
- ca. 160 webservices, der hver tilbyder en eller flere operationer
Hver service underordnes et versionsnummer. Versionsnummer tælles op for hver servicegeneration. Beskrivelse af de enkelte services kan findes her:
Hovedkataloget i DFDG er PjakTass, hvor de fleste webservices fremadrettet oprettes, og en række mindre kataloger, hvoraf en del forventes nedlukket med tiden. PjakTass blev i sin tid oprettet for at understøtte Pilot Jobcentrenes A-kasse Kommunikation (PJAK), samt Tilmelde, Afmelde og Status Service (TASS) i både kommuner, a-kasser og på Jobnet.
Servicekatalog | Services[4] | Beskrivelse |
PjakTass | 141 | Hoved webserviceskatalog med services til både kommuner og a-kasser. Her er mulighed for at registrere bla. fravær, planer, aktiviteter, ledighed, osv. |
JobnetPjakTass | 1 | Service målrettet Jobnet. |
TransferDataService | 1 | Flytteservices, anvendes når borger flytter mellem kommuner. |
BatchLogService | 1 | Service som anvendes til overvågning af alle batchjobs |
AMPortal | 2 | Gammel Anden Aktør services, som var en del af den tidlige Arbejdsmarkedsportal |
AkmService | 9 | Services målrettet a-kassekommunikation. (Under nedlukning) |
SearchService | 1 | Person- og virksomhedssøgning |
Webservices (der tilgås af eksterne aftagere og af Jobnet[5], primært PjakTass servicekataloget) er beskrevet i STAR’s webservice WIKI:
Forretningslaget
Forretningslaget indeholder forretningskomponenter for de forskellige applikationer. Forretningslaget kan kalde andre services, via service agenter.
DFDG er opdelt i en række applikationsmoduler som har hver sine egne forretningsmoduler. Applikationsmodulet PjakTass er f.eks. opdelt i ca 75 forretningsmoduler med hvert sit ansvar.
Forretningsmodulerne foretager forretningsmæssig validering af kaldene, og der returneres fejl. Alle forretningsfejl er nummereret. Fejl kan findes ud fra kodeliste i CodeListService.
Batchjobs
DFDG indeholder en del forretningslogik som afvikles som batchjob. Afviklingen for DFDG er omfattende, og der afvikles mere end 70 batchjob, hvoraf hovedparten afvikles alle ugens dage.
Beskrivelserne er DFDG batchjobs er fordel på:
- STAR’s webservice WIKI: http://starwswiki.amstest.dk/BatchjobOversigtDFDG.ashx?HL=batchjob
- STAR Dokumentationsarkiv (kræver login)
https://dokumentationsarkiv.star.dk/Lists/Batch%20Dokumentation/AllItems.aspx
Her den overordnede gruppering af jobs:
Batchjob kataloger | Jobs | Beskrivelse |
---|---|---|
DFDG-EC | 4 | Education and Courses. Jobs der kommunikerer med Uni-C Easy-A systemet. |
DFDG-EC-ImportData | 7 | Education and Courses. Jobs der kommunikerer med Uddannelsesadministration.dk, omkring kurser og institutioner. |
DFDG-TASS-RunUdbJobs | 5 | Kommunikerer natligt med Uddannelsesdatabasen |
DFDG-TASS-NightlyBatch | 13 | Natlige jobs der processerer status for de enkelte borgere |
DFDG-DWH | 3 | Udtræk til DWH |
DFDG-FICC | 2 | Filimport af CPR og CVR data |
Datalaget
Dataadgangslaget i DFDG håndterer helt klassisk adgangen til databaser og eksterne services og tilbyder et abstraktionslag mod data/services så forretningslaget kan anvende og gemme data uafhængigt af kilden.
Data access
Under DFDG opsamles data i en række databaser. De enkelte DFDG databaser anvender alt overvejende Stored Procedures som adgang til tabeller og data. Hoveddatabasen under DFDG er BrokerServices. Denne indeholder mange hundrede Stored Procedures.
Databaserne er listet i det følgende:
Databaser | Tabeller | Beskrivelse |
---|---|---|
BrokerServices | 350 | Underliggende database hvor stort set alle DFDG data placeres. |
AMPORTAL_BM_DK | 300 | Den oprindelige database under Arbejdsmarkedsportalen, indeholder i dag primært Anden Aktør data samt brugerdata |
ContactModuleWebDb |
| Kontaktmoduldatabase. Modulet er nedlukket, men indeholder data omkring Jobordre. |
SamlSso | 1 | Styringsdata til SamlSso sikkerhedsløsningen. |
Staging_DWH | 200 | Staging database til Datavarehusudlæsninger |
TimelinessStaging | 25 | Stating database til ret og pligt data |
BAMServicesDB |
| BAM |
CompanyService | 10 | Virksomhedsservice, nedlukket modul, men indeholder virksomhedsdata |
UnemploymentFundEngine | 20 | A-kassemotor databasen (under lukning) |
EducationalCatalog | 32 | Uddannelseskatalog for 6 ugers jobrettede kurser |
Screening | 14 | Screening databasen |
DocumentRepository | 6 | Printarkivet, indeholder i dag primært historiske dokumenter |
Service agents
DFDG kalder eksterne services, her kan kort nævnes:
Services | Beskrivelse |
---|---|
SMS Gateway | Afsendelse af SMS beskeder |
Afsendelse af E-mails | |
Jobnet Services | CV- og jobdata via en webservice, som bl.a. tilgås af DFDG m.fl.. |
Ungedatabasen | Synkronisering af hændelser fra Ungedatabasen |
Jobcenter Planner | Planner services, der kaldes via DFDG’s skiftespor mellem Planner og eksterne kalendersystemer |
BatchLog | Service til batchlog overvågning |
Miljøer
Følgende er en kort introduktion til de anvendte miljøer.
Produktionsmiljø
DFDG eksekveres i dag i en webfarm med en række webservere og et database-cluster, som illustreret på følgende:
Figur 5: Driftsarkitektur (produktion)
Serverne er Microsoft Windows Baserede, og anvender følgende serversoftware:
- Windows Server 2012R2
- SQL Server 2008R2
Miljøet afvikles i en to-centre drift konfiguration. Miljøet kører samtidig i begge centre med fælles kapacitet.
Følgende observeres omkring to-center konfigurationen:
- Data er placeret i et SAN der er fuldt redundant.
- AD er redundant ved at hver AD Server står i hvert sit driftscenter-site.
- SQL Cluster er redundant via en active-passive konfiguration.
- SQL serverne for henholdsvis produktionsmiljøet og præ-produktion, er placeret i hvert sit driftscenter-site.
- Web servere er redundant ved at disse er jævnt fordelt på hvert driftscenter-site.
Driftsleverandøren er KMD på driftsaftale indgået gennem Statens IT.
Testmiljø
Eksternt rettede testmiljøer hostes hos TDC. Testmiljøerne indeholder både DFDG, Jobnet og andre af STAR’s løsninger.
Der tilbydes en lang række miljøer som er opdelt i forhold til de forskellige spor og test pass som koden løber igennem. Det er miljøer til:
- Kundetest
- Ekstern integrationstest
- Intern integrationstest
- Leverandørtest
- Udviklingstest
DFDG releases til de enkelte miljøer med faste intervaller eller efter behov, afhængigt af miljø.
Anvendte teknologier og værktøjer
Løsningen er Microsoft baseret og vedligeholdes for det væsentligste med Microsoft standardværktøjer, fra Microsoft Web Platformen.
Udviklingen forgår primært med anvendelse af:
- Visual Studio 2013 Enterprise Edition
- Visual Studio Online (TFS)
Og ved anvendelse af følgende teknologier:
- Microsoft.NET C# V2.0, V4.0 og V4.5 (Hovedparten i V4.0)
- WCF
- EntityFramework
- T-SQL Stored Procedures
Samt følgende væsentlige .NET biblioteker:
- Log4net
Data- og trafikmængder
Datamængder
Der registreres årligt en lang række data i DFDG, datamængden kan ses som en funktion af antallet af personer som er i berøring med beskæftigelsessystemet. Nedenfor er angivet antallet af forløb og personer fordelt på en række af de målgrupper der behandles i DFDG.
Målgruppe | Beskrivelse | Antal forløb (2013) | Antal personer (2013) |
---|---|---|---|
LAB2.1 | Dagpengemodtagere | 616.975 | 333.568 |
LAB2.1 | Arbejdsmarkedsydelsesmodtagere | - | - |
LAB2.2 LAB2.3 | Kontanthjælpsmodtagere (ledige+øvrige) | 306.109 | 217.087 |
LAB2.4 | Forrevalidender | 3.020 | 2.895 |
LAB2.4 | Revalidender | 13.907 | 13.046 |
LAB2.5 | Sygedagpengemodtagere | 710.015 | 380.492 |
LAB2.6 | Førtidspensionister | 259.663 | 250.310 |
LAB2.7 | Ledighedsydelsesmodtagere | 47.079 | 30.034 |
LAB2.7 | Fleksjobansatte | 66.518 | 62.245 |
LAB2.8 | Handicappede i løntilskud | ? | ? |
LAB2.9 | Unge under 18 | ? | ? |
LAB2.10 | Ledige uden ydelse | ? | ? |
LAB2.11 | Ressourceforløbsydelsesmodtagere | 2.284 | 2.155 |
LAB2.12 | Uddannelseshjælpsmodtagere (uddannelsesparate) | - | - |
LAB2.13 | Uddannelseshjælpsmodtagere (aktivitetsparate) |
|
|
| Efterlønsmodtagere | 174.919 | 136.986 |
Data samles i DFDG’s underliggende databaser, primært BrokerServices databasen. Den samlede datamængde i produktionsmiljøet er:
- DFDG databaser: ca. 430 GB data
- DFDG programværk: ca. 500 MB filer
DFDG indeholder data om ca. 4.500.000 borgere.
Trafikmængder
Samlet set gennemføres dagligt ca. 4 000 000 servicekald mod DFDG, og trafikken forventes at være stigende.
Kodemængder
Kørsel med en standardinstallation af NDepend værktøjet på koden giver følgende resultat:
Forventninger til fremtiden
Forretningsmæssigt og funktionelt
STAR forventer, at der skal ske en konsolidering af de udviklede løsninger – og fremover i mindre omfang udvikles nye funktioner[6]. STAR er i gang med at modernisere/udfase ældre portaler og forventer at der sker en konsolidering af funktioner, der skal overleve, i LSS og i JobKon.
STAR forventer, at jobcentre og a-kasser i stigende omfang begynder at anvende en flerleverandør-strategi. DFDG og Systemforvalter skal derfor kunne håndtere, at ikke alle serviceaftager påbegynder anvendelsen af nye services eller nye versioner af en service på én gang.
Det forventes at DFDG i større omfang end hidtil skal være bagud kompatible således, at nogle serviceaftagere kan anvende nye services eller nyeste version af en service, mens andre i en periode forbliver på en ældre udgave.
STAR forventer, at der som led i den kommende fællesoffentlige digitaliseringsstrategi i større omfang end hidtil skal ske en målrettet deling af nødvendige oplysninger på tværs af sektorområder. Fx på tværs af beskæftigelsesområdet, socialområdet og sundhedsområdet.
DFDG har i dag i et vist omfang deling af nødvendige oplysninger med Undervisningsministeriet. Der er i DFDG ved at blive udviklet en service til deling af oplysninger om unge med et uddannelsespålæg med Uddannelses- og Forskningsministeriet (Styrelsen for Videregående Uddannelser, der administrerer SU).
Teknisk
STAR forventer at følgende skal gennemføres inden for en horisont på 2 år:
- Yderligere robustgøring af batchjob
- Udfasning af printarkivet
- Fjernelse af ubrugte databaser og ubrugte tabeller
Teknisk gæld
Der er i forbindelse med videreudvikling gennem de sidste 4 år gjort en indsats for at reducere den tekniske gæld i de dele af systemet, som har været berørt af videreudvikling.
Tilstandsvurdering af systemet
Gartner har i juni 2015 gennemført en kildekode- og databaseanalyse.
Arkitektur og kode
Det er Gartners opfattelse at koden grundlæggende er sund og velstruktureret, og kan også fremadrettet anvendes som fælles central dataplatform.
Fordelingen af ansvar mellem Jobnet og DFDG er trods den gradvise udvikling af Jobnet til at varetage flere opgaver holdt relativt klar. Det giver et sundt udgangspunkt for videre udvikling.
Det bemærkes dog på den negative side at kodekommentarniveauet i DFDG er lidt for lavt, der foretages for få logninger, klasserne er generelt til den store side.
Database og scripts
Databasen er velstruktureret og normaliseret, dog anvendes der i udpræget grad stored procedures, hvoraf mange er komplekse og mangelfuldt dokumenteret. Flere af databaserelationerne er sub-optimale og kan reducere ydeevne, øge vedligeholdelsesomkostninger og være en kilde til fejl.
Teknologisk platform
Den teknologiske platform er homogen på tværs af de centrale systemer i arkitekturen (Jobnet og DFDG) (Microsoft.Net version 4 er den overordnede platform).
Den teknologiske platform har ikke problemer med forældede teknologier.
Den teknologiske platform giver således ikke anledning til bekymring eller overvejelser omkring udskiftning af teknologier på grund af manglende support.
Dokumentationsniveau
Kun dokumentationsniveau i koden er undersøgt. Denne vurderes til at være middel.
Brugervenlighed
N/A
[1] Dog med undtagelse af flexjobvisiteret, der både kan modtage ledighedsydelse og kontanthjælp.
[2] Der findes derudover forrevalidender, revallidender m. fl. For flere detaljer se Lov om en aktiv beskæftigelsesindsats.
[3] Fsva. rehabiliteringsplanens indsatsdel har DFDG indtil videre alene begrænsede dele.
[4] Optalt pr. release 2015-03
[5] Det er ikke alle Jobnet rettede services, der er dokumenteret i STAR’s webservice WIKI. Enkelte er dokumenteret i et særskilt, ældre pdf-dokument.
[6] Med forbehold for kommende reformindhold og ny lovgivning.