Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Beskrivelse af epic af it-understøttelse af Styrelsen for Arbejdsmarked og Rekrutterings forretning



Page Properties


STAR Projektleder (PL)Forretningsanalytiker (FA)STAR ReleaseEpic statusEksterne snitflader
Knud de Place (STAR)Rolf Marcher Arndt2019-20.1KSS(t.o), A-Kasse(t.o)

Jira Legacy
serverSystem JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId479d1618-4a6f-3f88-8ee1-04c6b02c448a
keyDS-487




Indholdsfortegnelse

Table of Contents
outlinetrue




Afgrænsning af epic

Afgræsning

Som DFDG vil jeg have konsolideret koden til koordinatudsøgning

for at det bliver nemmere at vedligeholde

Acceptkriterier

Nr.BeskrivelseRelevant for
924.4.1Refactorering af koordinatudsøgningen imod DAWA, og GoogleDFDG


Kriterier for tilsagn til serviceaftager i forhold til STARs snitfladerBerørte acceptkriterierBemærkninger

924.3.2924.3.3


A-kasser og JC skal være bekendte med, at STARs udføre ændringer på dette områdex


Ingen snitfladeændringer







Oversigt over berørte webservices 

Geo koordinater udstilles i servicen. Ingen snitfladeændringer
SnitfladeServiceaftager der er berørtBemærkninger

DFDGJobnet (t.o)PlannersystemerKSS (t.o)A-kasse (t.o)YdelsessystemJobkon (t.o)Jobag (t.o)SFBIJoblogServicexxxxxGeo koordinater udstilles i servicen. Ingen snitfladeændringerCitizenJoblogServicexxxxx

GeoService (Version 1)

  • GeocodeStructuredAddress
    GeocodeSimpleAddress
xxxxGeo koordinater udstilles i servicen. Ingen snitfladeændringer




































Jira Legacy
serverSystem JIRA
columnssummary,varslingstype,varslingsnote,eksterne snitflader,interne snitflader,project
maximumIssues100
jqlQueryissuetype = Varsling AND linkedIssue in (DS-487) ORDER BY summary, Varslingstype, "Eksterne snitflader", "Interne Snitflader"
serverId479d1618-4a6f-3f88-8ee1-04c6b02c448a

Beskrivelse af epic

STAR benytter sig af Google Maps Platform til blandt andet, beregning af koordinat udsøgning når opslag via Danmarks Adressers Web API (DAWA) ikke giver noget resultat.

Disse koordinater bliver blandt andet benyttet til rejsetidsberegning omtalt i epic 924.2 - Joblog rejsetid - skift fra Google til rejseplanen

Eksisterende prisudregnings model hos google inkluderer at de første 100.000 kald per dag er gratis.

Google har varslet ændringer ved denne prisudregnings model: Google har valgt at de i stedet for de 100.000 gratis kald per dag at  gå over til at abonnementerne får 200$ gratis credits om måneden som svarer til ~ 40.000 gratis kald.

Til eksempel benyttede STAR i oktober måned 2018 sig af koordinat udsøgning 933.328 gange.

Se evt. /wiki/spaces/ISB/pages/999620621, hvor statistikkerne ligger, hvor man kan se, hvor mange kald per dag der er til google maps services.

Nedenfor kan den eksisterende prisudregning ses:

https://developers.google.com/maps/premium/usage-limits

Web serviceLimitsDirections

Shared* daily free quota of 100,000 requests per 24 hours; additional requests applied against the annual purchase of Maps APIs Credits.

Maximum of 23 waypoints per request. 50** requests per second.

Elevation

Shared* daily free quota of 100,000 requests per 24 hours; additional requests applied against the annual purchase of Maps APIs Credits.

Maximum of 512 points per request. 50** requests per second.

Geocoding

Shared* daily free quota of 100,000 requests per 24 hours; additional requests applied against the annual purchase of Maps APIs Credits.

50** requests per second.

Distance Matrix

Shared* daily free quota of 100,000 elements per 24 hours; additional requests applied against the annual purchase of Maps APIs Credits.

Up to 625 elements per request (with a maximum of 25 origins and 25 destinations per request). Rate limit of 1,000 elements per second. 

Note: requests using the optional parameter departure_time when mode=driving are limited to 100 elements per request.

GeolocationShared* daily free quota of 100,000 requests per 24 hours; additional requests applied against the annual purchase of Maps APIs Credits.

50** requests per second.

Time Zone

Shared* daily free quota of 100,000 requests per 24 hours; additional requests applied against the annual purchase of Maps APIs Credits.

50** requests per second.

Roads

Shared* daily free quota of 100,000 requests per 24 hours; additional requests applied against the annual purchase of Maps APIs Credits.

50** requests per second. Each request may contain up to 100 points.

* The 100,000 daily free requests are shared across all Maps JavaScript API client-side services and Google Maps APIs web services—all requests are subtracted from the same pool of 100,000 free daily requests.

Any additional requests are applied against the total number of Maps APIs Credits you purchased for your Premium Plan.

Your free daily request pool is reset at 12:00 am Pacific Time. Note that the 100,000 daily free requests do not apply to Location Services licenses.

** Default rate limit, to prevent abuse. Learn how to optimize web service usage or request a rate limit (QPS) increase.

STAR har med deres nuværende abonnement 33.000.000 Credits om året.

This type of API request...Consumes this many Maps APIs Credits...Maps JavaScript API map load1Maps Static API, Street View API map load0.25Street View API metadata request0Mobile SDKs (Android, iOS) map load1Places API server-side and client-side request; excluding Place Autocomplete2Place Autocomplete (server-side and client-side) request0.1

Web service APIs (server-side) request: Geocoding API, Directions API,

Distance Matrix API (per element), Elevation API, Geolocation API, Time Zone API, Roads API

0.25 (after included daily usage limit)Client-side request: Geocoding API, Directions API, Distance Matrix API (per element), Elevation AP0.25 (after included daily usage limit)

Nedenfor kan den nye prisudregning ses:

https://cloud.google.com/maps-platform/pricing/sheet/

SKU$200 MONTHLY CREDIT
EQUIVALENT FREE USAGEMONTHLY VOLUME RANGE
(PRICE PER THOUSAND)0—100,000100,001-500,000500,001+GeocodingUp to 40,000 calls$5.00$4.00

CONTACT SALES

for volume discounts.

GeolocationUp to 40,000 calls$5.00$4.00Time ZoneUp to 40,000 calls$5.00$4.00ElevationUp to 40,000 calls$5.00$4.00

Eksisterende implementering

Det estimerede antal kald per. måned til koordinat udsøgning er 800.000 - 1.600.000 fordelt jævnt ud over måneden via enkelt forespørgsler.

Koordinat udsøgningen bliver brugt til blandt andet rejsetidsberegning, Ankiro jobopslag mm.

DFDG udstiller via GeoService to metoder til koordinat udsøgning vha. adresse:

Servicemetoderne er udelukkende tiltænkt STARs egne applikationer, grundet licensomkostninger.

  • På baggrund af en struktureret adresse eller ustruktureret adresse forsøges først opslag i DAWA, hvis intet resultat, forsættes der vha. googlemaps api og koordinater returneres med en kodeliste værdi for, hvor præcise disse koordinater er, GeoCoordinateQualityTypeIdentifier
    • Eksakt match returneres, hvis resultat fra DAWA returneres.
  • Hvis adresse struktur ikke kan bestemmes, benyttes postnummer udsøgning via googlemaps api.
  • Hvis postnummer er imellem 3900 og 3999, hvor begge tal er inkluderet udregnes koordinat udsøgning for Grønland og post nummer 3900 benyttes (Nuuk) via googlemaps api.
  • Om natten er der et batchjob som forsøger at populere joblogs med koordinater og rejsetidsberegning, hvor der forsøges op til 5 gange.

Drawio
baseUrlhttps://starwiki.atlassian.net/wiki
diagramNameKoordinat udsøgning.xml
contentId1021116766
width1079.1764705882354
zoom1
pageId1018920966
diagramDisplayNameKoordinat udsøgning.xml
lbox1
contentVer3
height689.1764705882352
revision3

Rejseplanen

Rejseplanen A/S har et åbent ReST-API med webservices, hvor adgang til disse data er under Creative Commons BY-ND 3.0 licens.

Dokumentation af dette API kan findes her:

/wiki/spaces/ISB/pages/1001521168

Der er tilbage i marts 2017 været kontakt til Rejseplanen med henblik på at få afdækket om deres åbne ReST-API var en mulighed, der var dog ikke behov for videre kontakt, da STARs eksisterende abonnement med googlemaps kunne håndtere den ekstra mængde kald.

Der har igen i november 2018 været kontakt med Rejseplanen i forbindelse med epic 924.2 - Joblog rejsetid - skift fra Google til rejseplanen

Personer der er kontakt til hos Rejseplanen

Jens Willars- Business Manager

Jørgen Sinding - Projektleder

924.2.1 Analyse af koordinat udsøgnings brug af googlemaps og alternativer Rejseplanen / DAWA

Rejseplanen analyse

Note

Vi er blevet gjort opmærksom på fra Rejseplanen at det er DAWA der ligger til grund for deres Lokation service, hvorved en udskiftning fra googlemaps api til Rejseplanen ikke vil være en løsning i forbindelse med adresse udsøgning, da vi i eksisterende implementering allerede fortager koordinat udsøgning hos DAWA og at kald til googlemaps api bliver benyttet som en backup løsning, hvis vi ikke får noget resultat fra DAWA.

Undersøgen går på om Rejseplanen udstiller en webservice som dækker det behov googlemaps i øjeblikket dækker i forbindelse med beregning af rejsetid i forbindelse med registrering af Joblog.

Ud fra Rejseplanens dokumentation udvælges webservice der kan benyttes til beregningen.

Dokumentation på Rejseplanens API

/wiki/spaces/ISB/pages/1001521168

Det er i forbindelse med analysen vurderet at det er rejseplanens Location service der indeholder den fornødende information til at fortage udsøgningen af koordinater.

Note

I det i forbindelse med kode analyse blev det identificeret at rejseplanen benytter sig af 8 tal til indikation af koordinat i modsætning til googlemaps som har op til 9 og DAWA som har op til 10.

Eksempel på servicekald:

http://xmlopen.rejseplanen.dk/bin/rest.exe/location?input=strandvejen%20999,2900,Hellerup&format=json

Nedenstående vises et eksempel på location service response:

Info
titleTrip response

"Location": {

                "LocationList": {

                                        "noNamespaceSchemaLocation":"http://xmlopen.rejseplanen.dk/xml/rest/hafasRestLocation.xsd",

                                        "CoordLocation": {

                                                                    "name":"Nørgaardsvej 32, 2800 Kongens Lyngby, Lyngby-Taarbæk K",

                                                                    "x":"12512670",

                                                                    "y":"55770192",

                                                                    "type":"ADR"

                                                                    }

                                      }

                 }

DAWA analyse

I analysen viste det sig at DAWA også har en implementering af koordinat udsøgning på postnummer, hvor vi idag benytter os af googlemaps api til udsøgning.

Eksempel på DAWA postnummer servicekald:

https://dawa.aws.dk/postnumre/2800

Nedenstående vises et eksempel på postnumre service response:

Info
titlePostnumre response
{
  "href": "https://dawa.aws.dk/postnumre/2800",
  "nr": "2800",
  "navn": "Kongens Lyngby",
  "stormodtageradresser": null,
  "bbox": [
    12.41145743,
    55.74830002,
    12.58343013,
    55.81431067
  ],
  "visueltcenter": [
    12.52083673,
    55.78572204
  ],
  "kommuner": [
    {
      "href": "https://dawa.aws.dk/kommuner/0157",
      "kode": "0157",
      "navn": "Gentofte"
    },
    {
      "href": "https://dawa.aws.dk/kommuner/0159",
      "kode": "0159",
      "navn": "Gladsaxe"
    },
    {
      "href": "https://dawa.aws.dk/kommuner/0173",
      "kode": "0173",
      "navn": "Lyngby-Taarbæk"
    },
    {
      "href": "https://dawa.aws.dk/kommuner/0230",
      "kode": "0230",
      "navn": "Rudersdal"
    }
  ]
}

924.3.2 Implementér yderligere kald til DAWA

Note

I forbindelse med udvikling er det identificeret at der ved kald af DAWA på baggrund af postnumre som ikke er danske ikke vil returneres et koordinatsæt.

Bemærkning går på at der ved disabling a GoogleMaps api ikke vil være mulighed for at udsøge koordinatsæt på udenlandske adresser.

Beskrivelse

Den løsningsmodel der er tiltænkt at blive implementeret i release 2019-2 er følgende:

Drawio
baseUrlhttps://starwiki.atlassian.net/wiki
diagramNameKoordinat udsøgning ny.xml
contentId1017643819
width1141
zoom1
pageId1018920966
diagramDisplayNameKoordinat udsøgning ny.xml
lbox1
contentVer7
height723
revision7

Ved Koordinatudsøgning undersøges det om:

  • Adresse og postnummer er OK
    • Hvis OK, søges der efter koordinater på baggrund af adresse imod DAWA og koordinater returneres, hvis de kan udsøges.
    • Hvis intet resultat fundet hos DAWA, og adresse er udfyldt undersøges det om GoogleMaps er slået til
      • Hvis GoogleMaps er slået til fortages der koordinatudsøgning hos GoogleMaps på baggrund af adresse og koordinater returneres, hvis de kan udsøges.
      • Hvis GoogleMaps er slået fra eller intet resultat hos GoogleMaps
    • Eller adresse ikke er udfyldt
      • Fortages der koordinatudsøgning hos DAWA på baggrund af postnummer og koordinater returneres, hvis de kan udsøges.
      • Hvis intet resultat hos DAWA og postnummer er fra 3900 - 3999 returneres koordinatsæt for Grønland postnummer 3900.
      • Hvis intet resultat hos DAWA og postnummer ikke er fra 3900 - 3999
        • Returneres tom koordinat udsøgning (som i dag)

Implementering DAWA

DAWA postnumre request

Eks. url: https://dawa.aws.dk/postnumre/2800

ParameterBeskrivelseBemærkningPostnummer

postnummer i DK

DAWA postnumre Response

Nedenstående vises et eksempel på postnumre service response:

Info
titlePostnumre response

{
"href": "https://dawa.aws.dk/postnumre/2800",
"nr": "2800",
"navn": "Kongens Lyngby",
"stormodtageradresser": null,
"bbox": [
12.41145743,
55.74830002,
12.58343013,
55.81431067
],
"visueltcenter": [
12.52083673,
55.78572204
],
"kommuner": [
{
"href": "https://dawa.aws.dk/kommuner/0157",
"kode": "0157",
"navn": "Gentofte"
},
{
"href": "https://dawa.aws.dk/kommuner/0159",
"kode": "0159",
"navn": "Gladsaxe"
},
{
"href": "https://dawa.aws.dk/kommuner/0173",
"kode": "0173",
"navn": "Lyngby-Taarbæk"
},
{
"href": "https://dawa.aws.dk/kommuner/0230",
"kode": "0230",
"navn": "Rudersdal"
}
]
}

Response

ElementTypeDetaljerForekomstBeskrivelsePostnummer0 - 1Type indeholdende postnummer entryenhrefstringurl1Kald urlnrint1Postnummer- navnstring1Navn på by- stormodtageradresser1- bboxcollection1- - koordinatsættype0 - *- - - x1koordinat med 10 cifre med punktum efter de 2 første.- - - y1koordinat med 10 cifre med punktum efter de 2 første.- visueltcentercollection1- - koordinatsættype1- - - x1koordinat med 10 cifre med punktum efter de 2 første.- - - y1koordinat med 10 cifre med punktum efter de 2 første.-kommunercollection1liste af kommuner- - kommunetype0 - * kommune- - - hrefstringurl1url til DAWA kommune- - - kodestring1DAWAs id til kommunen- - - navnstring1Navn på kommunen

Det skal besluttes om følgende Manuscriptsager skal kigges på i forbindelse med denne epic,

Overvej for hvert acceptkriterie hvilke systemer der berøres af ændringen:

  • DFDG
    • Services
    • WSRMer
    • Kodelister
    • PersonStatusService (PSS)
    • PersonHistoryService (PHS)
    • LSS (Landssupportsystem) og herunder Registerudtræk (hvis STAR har dataejerskab og der er lavet PHS på domænet)
  • Jobnet
  • VITAS
  • JobKon
  • JobAG
  • BI integrationsplatform
  • Alle områder
    • Nye batchjobs
      • Dokumentation af jobbet til SF (jf. skabelon: xxx link til skabelon) 
    • Dataløft
      • Hvis der i Databaser tilføjes eller fjernes kolonner med personfølsomme data (f.eks. person navne, adresser, email, telefonumre etc.), så skal SF informeres så disse data fremadrettet tilføjes eller fjernes fra scrambling.
  • Kommunalt sagsbehandlingssystem
  • A-kasse sagsbehandlingssystem
  • Kommunalt bookingsystem
    • JobcenterPlanner (JCP)
    • WorkForcePlanner (WFP)
  • Kommunalt ydelsessystem

Særlige krav til test

Test scenarieBerørte systemområder (herunder nye batchjobs*) Identificeret af






* Batchjobs

  • bør testes både med delta og fuldt load,
  • bør hvis der er afhængigheder køres med normalt load fra BI i ét testmiljø i hele testperioden
  • bør testes i samarbejde med teams som har afhængigheder
  • kørselstid, særligt hvis det er en del af NightlyBatch

Konsekvenser for drift/idriftsættelse

NB. Serviceaftagere skal være opmærksom på at der på GeoService (Version 1)

  • GeocodeStructuredAddress
  • GeocodeSimpleAddress

Kun returneres for danske adresser, hvis googlemaps api bliver slået fra.

I forbindelse med idriftsættelse:

  • Skal der køres et fuldt dataload ved første kørsel af et batchjob - aftal med SF hvornår load skal køres
  • skal der køres konvertering
  • Skal der køres databasescripts for opdatering af tabeller i databasen

Efter idriftsættelse:


Arkitektur- og implementeringsnoter 

Her beskriver PO/FA om arkitekturen og teknikken bag løsningen, om der f.eks. anvendes:

  • Nye dataområder
  • Nye snitflader
    • Omlægning af eksisterende googlemaps api/DAWA implementering i forhold til koordinatudsøgning på baggrund af adresser/postnummer.
  • Nye komponenter
  • Nye miljøer
  • Nye teknologier
  • Nye aftagertyper
  • Eller afvigelser fra principperne


Der gives en beskrivelse af hvorledes disse tænkes håndteret/implementeret i løsningen og om dette har været vendt med STAR arkitekten.