Table of Contents |
---|
Følgende giver en gennemgang af den tekniske løsning, der er udviklet for at understøtte forretningsfunktionaliteten.
...
Jobnet er udviklet som en lagdelt webapplikation, efter normal best practice for sådanne, med fire logiske applikationslag, som vist på tegningen herunder, suppleret med en række delte komponenter og klasser.
De fire applikationslag er:
Præsentationslag – webgrænseflade og styreapplikationer
Servicelag – udstilling af forretningslaget via serviceinterfaces
Forretningslag – forretningskomponenter og workflow logik
Dataadgangslag – adgangslag til datakilder som databaser og eksterne services
Systemet udvikles i Microsoft.NET i sproget (C#). Kodebasen bærer præg af projektets lange historik og i den eksisterende kodebase er dele fortsat skrevet i Microsoft.NET VB dog i samme version af . NET frameworket. Derudover bemærkes at lagene i Jobnet originalt var skrevet så de kunne adskilles fysisk. Præsentationslag er da også fysisk adskilt fra servicelaget, men der er stadig rester af den yderligere fysiske adskillelse rundt om i koden.
...
Figur
...
6: Applikationsdesign
Præsentationslaget
Præsentationslaget er hovedsaligt hovedsageligt udviklet via Model-View-Controller (MVC) løsningsmønstret, hvor kontrollogik (Controller), præsentation (View) og datamodel (Model) er yderligere adskilt, da Controller’en opdaterer Modellen, som kun er data- og ikke logikbærende, og View delen skaber websiden på baggrund af Modellen.
De nyeste websider genereres i HTML5 med brug af JavaScript, herunder jQuery, frameworket Angular. JS. og en række andre Javascript biblioteker.
Store dele af applikationen er dog fortsat skrevet i ASP.NET og Angular.JS.
Applikationen er en MVC applikation opdelt i en række applikationsområder:
Citizen
FindCourse
Employer
FindJob
Jobseeker
Webgrænsefladen gør brug af JSON Ajax webservices og Cascading Style Sheets (CSS) via LESS. Jobnet anvender desuden Google Maps.
En hurtig optælling viser at der er:
...
.
...
Servicelaget
Servicelaget er en tynd skal oven på ovenpå forretningslaget. Der udstilles tre klasser af services:
Eksterne services
Services udstillet til applikationer uden for Jobnet, som Jobbanker, men i høj grad også DFDG
Interne services
Services rettet mod Jobnets præsentationslag
, men også CVAdmin- Mobil services
- Services rettet mod Jobnet for Mobilen
...
...
Figur 7: Grænseflader mod Jobnet
...
Services er udviklet i blandede teknologier. Nye webservices er skrevet via Microsoft WCF som SOAP services, ældre webservices er skrevet som ASMX webservices. En hurtig optælling viser at der er følgende services:
- 37
ASMX services
- 26
WCF SOAP services, heraf
8nogle med WSDL contract first
1 ASHX service
Eksterne webservices
Disse webservices er rettet mod kommunikationen med DFDG og eksterne. Det er webservices som:
Jobnet udstiller
CVbrugerkonto- og jobdata via en webservice, som bl.a. tilgås af DFDG m.fl.
- Jobnet udveksler jobannoncer med ca. 70 forskellige aftagere (fx Job-i-Staten, Jobindex og Ofir).
- Det
Der er via DFDG tæt integration mellem Jobnet og kommunale sagsbehandlingssystemer, såsom
KMDMomentum (
Opera og WorkbaseKMD) og FASIT Jobcenter (Schultz Information).
- Jobbing.dk integrerer ligeledes med Jobnet.
Jobnet udstiller enkelte services direkte til de kommunale sagsbehandlingssystemer
Beskrivelsen af de enkelte webservices kan findes på httphttps://starwswikistarwiki.star.dkatlassian.net/wiki/spaces/WIKI/overview?mode=global
Interne webservices
Disse webservices er rettet mod Jobnet præsentationslaget. Her er en lang række services som skal understøtte brugergrænsefladen. Interne services er grupperet i:
JobBanken services
Generelle Business Logic services
FindJob services
Taxonomy services
ServerInformation-services (Dr. Jobnet webservice)
Logging og batchjobs
Her indeholder de to første klart det største antal services. Som det måske fornemmes er opdelingen ikke strengt logisk, men mere historisk betinget.
Mobile webservices
Her ligger de services som understøtter Jobnet på Mobilen brugergrænsefladen.
Forretningslaget
Forretningslaget indeholder forretningskomponenter for de forskellige applikationer. Opdelingen er rimelig logisk opdelt i moduler med forskelligt ansvar, men også her ses en blanding af forskellige historiske tilgange til at ordne koden.
...
Dataadgangslaget håndterer adgangen og tilbyder et abstraktionslag mod data, så forretningslaget kan anvende og gemme data uafhængigt af kilden.
...
Jobnet leverer data til statistikformål. Data stilles til rådighed for systemforvalter på en FTP server – og derfra videre til Det Statistiske Datavarehus i STAR:
Database-backup, dagligt klar til morgen
ca. Ca. 25 GB per dag.
Accesslog’s till webservere, hver 2. time. Ca.
ca100 GB per dag.
Eventlog’s. hver time, 1 GB per dag.
- Datawarehouse.
Hver nat, 1 GB per dag.
Service agents
Jobnet anvender en række eksterne services:
Webservices udstillet af DFDG, herunder nye DFDG forretningsdomæner. Ca. 30 services.
Jobnet kalder DFDG webservices for at hente status på borgeren. Jobnet anvender CV kundenummer
(og
ikkepå nogle områder CPR nummer
)i kommunikationen med DFDG.
Ankiro
søge servicesSynkron Via (kommende: SiteCoresøgemaskine (on premise)
info.jobnet.dk (Umbraco)
Miljøer
Produktionsmiljø
Jobnets forretningsmoduler eksekveres i dag på en række Windows Web Servere opdelt i en række noder. På nedenstående er de forskellige noder for det samlede kompleks, som trækker på Jobnets Database. De brugervendte miljøer deler sig i tre dele:
Jobnet hovedsitet (kun denne del regnes som en del af Jobnet)
Stor webfarm i to fysiske lag
Administration
...
(Trukket ud som et selvstændigt system)
Lille webfarm i et fysisk lag
- Jobnet mobil (Trukket ud som et selvstændigt system)
- Lille webfarm i to fysiske lag
...
...
Figur 8: Driftsarkitektur, Jobnet i rød markering (produktion)
...
Som det ses er både Jobnet og Jobnet for mobil opdelt i to fysiske lag og skaleret ud på hhv. 5 og 2 fysiske servere i hvert lag. Opdelingen i fysiske lag har været diskuteret, da den giver en del implementerings- og eksekverings-overhead. Den valgte skaleringsmetode på STAR’s andre miljøer har primært været horisontal skalering, ikke vertikal.
Serverne er Microsoft Windows Baserede, og anvender følgende serversoftware:
Windows Server
2012R2SQL Server
2008R2
Driftsleverandøren er KMD på driftsaftale indgået gennem Statens IT.
...
Løsningen er Microsoft baseret og vedligeholdes for det væsentligste med Microsoft standardværktøjer.
Løsningen er udviklet i:
...
NET
...
C#
...
Følgende Microsoft værktøjer anvendes ved udviklingen:
Visual Studio
...
GIT / GitHub
C# Unittest – MSTest, NUnit
JavaScript Test – Node
...
Derudover anvendes følgende serversoftware:
Ankiro Search Server
SQL Server
...
Windows Server
...
Samt følgende væsentlige .NET biblioteker:
...
...
10. Twitter.Typeahead
11. itextsharp
12. Log4net
13. MarkdownSharp
Og følgende væsentlige web biblioteker:
jquery
...
...
AngularJS
...
modernizr
...
WebGrease
Angular
Data- og trafikmængder
Datamængder
Jobnet behandler og gemmer CV’er og jobannoncer. Antallet varierer lidt fra måned til måned, her tallene fra august 2015:
...
er seneste tal:
Jobannoncer 17.000
Systemforvalter / Udviklingsleverandør henter periodevis data fra en sFTP server (dataløft). Adgang opnås via brugernavn og password. Data hentes typisk i forbindelse med Releases. Data er:
Jobnet: 30GB
Programværk
Jobnet pakke ca. 200MB pr. release
Trafikmængder
For den offentlige del af Jobnet webapplikationen, der primært anvendes af borgere og arbejdsgivere o, ses følgende trafikmængder (juni 2015)[1]:
...
april 2024):
Unikke brugere
892.000- Sidevisninger 41.000.000
- Sider pr. session 16
- Sessionsvarighed 7 minutter
...
: 195.000