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


Data-strukturen, der bærer response-data, ligger i pakken dk.sds.nsp.sor.sores.model, mens logikken i komponenten er inddelt i følgende lag:

Servlet

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

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 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æste.


  • No labels