Versions Compared

Key

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

...

SORES er designet med opslags-performance som den primære drivfaktor, og gør derfor brug af en memory-cache, der skal initialiseres ved (eller inden) første brug og ved inden den kan besvare requests - og når der er opdateringer i datagrundlaget.

...

Servlet-laget ligger i pakken dk.sds.nsp.sor.sores.ws og er ansvarlig for at håndtere GET-requests og for at udpakke JSON-requestparametre fra POST-requests, kalde servicen i service-laget og formattere svaret som en JSON-struktur i responset.

...

Service-laget ligger i pakken dk.sds.nsp.sor.sores.service og er ansvarlig for at hente de forespurgte data fra database-laget.

Cache

Cache-håndteringen ligger i pakken dk.sds.nsp.sor.sores.cache og kan enten bruge en database eller en XML-struktur som datagrundlag. 

Database-strategien baserer sig på SOR2-indlæseren, der ved ibrugtagningen af SORES ikke var tilgængelig i en endelig version. XML-strategien baserer sig på en offentligt tilgængelig eksport fra SOR-projektet, der i modsætning til database-strategien ikke vedligeholder nogen form for historik.

Data gemmes i cachen i hashmaps, med nøglerne hhv. SHAKId, SORId, ParentSORId, ProviderId, CVR og EntityTypeName. Disse maps muliggør effektive opslag på servicen.

Database

Database-laget ligger i pakken dk.sds.nsp.sor.sores.db. Her foregår opslag i databasen via datasourcen, og data pre-loades i en cache designet til hurtigt at kunne fremfinde de forespurgte data.

Data indlæses fra databasen ved et reload-request, hvis

  • cachen er tom, når der forespørges på data
  • et reload requestes og database-query'en returnerer et antal rækker, der er forskelligt fra det senest læste 
  • et force-reload requestes

seneste database-timestamps er nyere end seneste cachen-timestamp.

XML

XML-laget ligger i pakken dk.sds.nsp.sor.sores.cache.xml. System-properties bestemmer stierne til de XML-filer, der parses ved reload.

Data indlæses fra filerne ved et reload-request, hvis timestampet i sor-træet er nyere end det senest indlæsteData gemmes i cachen i tre maps, med nøglerne hhv. SHAKId, SORId og ParentSORId. Disse maps muliggør effektive opslag på servicen.