Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

Innehållsförteckning

Produktval som påverkar implementationen

För att spara in på Licenskostnader bör VP byggas om till att kunna köra utan Mule. Som ersättare till Mule som ramverk för virtualiseringsplattformen har Spring Boot + Apache Camel valts.
Camel är ett moget ramverk med stöd för de funktioner som implementeras i Mule i nuvarande lösning.

Apache Camel är också öppen källkod som distribueras under Apache 2.0 license.

Paketstrukturer för VP-camel

Nedan redovisas de mest intressanta paketstrukturerna.

se.skl.tp.vp

  • certificate - koden som hämtar data från certefikat
  • errorhandling -  koden som hanterar olika fel situationer som händer under flödet
  • exceptions - olika definerade fel som används i VP
  • httpheader -Processors/halpers helpers som jobbar med http-headrar

  • service - TAK och HSA services

  • status - service som returnerar VP status

  • timout timeout - koden som hanterar kofiguration konfiguration för timeout per tjästekontrakt
  • vagval - koden som determinerar vägval och behörigheter att anropa för den konsumentkonsumenten/tjänstekontrakttjänstekontraktet
  • wsdl - returnerar wsdl'er för olicka olika "virtuella tjänster"

Hawtio 
Ankare
Hawtio
Hawtio

...

Status Tjänst 
Ankare
status_tjanst
status_tjanst

Vp Camel-platformen innehåller status tjänst. Den returnerar information om platformenplattformenGenom anrop av denna tjänst kan man på ett enkelt sätt kontrollera att VP inte har avslutats.

T.ex.

Kodblock
{
  "Name": "vp-services-camel",
  "Version": "4.0.0-RC1",
  "BuildTime": "2019-09-18T08:19:27.550Z",
  "ServiceStatus": "Started",
  "Uptime": "5 hours 1 minute",
  "ManagementName": "vp-services",
  "JavaVersion": "1.8.0_161",
  "CamelVersion": "2.24.0",
  "TakCacheInitialized": "true",
  "TakCacheResetInfo": "Date:2019-09-18T10:23 Status:REFRESH_OK vagval:566 behorigheter:1034",
  "HsaCacheInitialized": "true",
  "HsaCacheResetInfo": "Date:2019-09-18T10:23 Status:true oldNum:0 newNum:31468",
  "JvmTotalMemory": "827 mB",
  "JvmFreeMemory": "383 mB",
  "JvmUsedMemory": "443 mB",
  "JvmMaxMemory": "1365 mB",
  "Endpoints": [
    "https://0.0.0.0:20000/vp",
    "http://0.0.0.0:8080/vp",
    "http://0.0.0.0:8080/status",
    "http://0.0.0.0:24000/resethsacache",
    "http://0.0.0.0:23000/resetcache"
  ]
}


I application.propertis fil properties finns parametrar för den tjänsttjänsten:

Kodblock
vp.status.url=http://${vp.host}:1080/status

...

TAK cache
Ankare
tak_cache
tak_cache

VP har sin egen copia kopia av TAK i en cache. Man kan köra göra en uppdatering av TAK cache via url 

...

HSA cache
Ankare
hsa_cache
hsa_cache

Virtualiseringsplattformen har stöd för att läsa in och spara HSA information lokalt. Informationen läses in från en eller flera filer som kan hämtas från HSA.

HSA trädet för en HSA enhet ligger i en kommaseparerad lista i DN fältet där förälder är nästa del i listan. 

Exemplet nedan är ett utdrag från två filer (den ena innehåller endast root parent med HSA-id=SE)


Vi kan se att i filen nedan att både "Nässjö VC DLM" och "Nässjö VC DLK" ligger under "Nässjö Primärvårdsområde".

"Nässjö Primärvårdsområde" ligger i sin tur under "Höglandets sjukvårdsområde" osv.
Image Modified


VP använder informationen för att kontrollera om det finns vägval och behörigheter för organisationer högre upp i trädet om den inte hittar ett för en specifik enhet.

Dvs. om VP i HSA trädet ovan kontrollerar en behörighet för SE0000000001-1234( Nässjö VC DLM) i TAK men inte får någon träff kommer den då att fortsätta med 

SE0000000002-1234(Nässjö Primärvårdsområde) osv. ända tills den hittar en behörighet eller når rooten SE.


Webb-service/SOAP/WSDL

Expandera
titleWSDL:er är ett XML baserade beskrivningar av SOAP meddelanden som används för att anropa webb-tjänster.

VP har som mål att på ett flexibelt, teknikneutralt och utbyggbart sätt, koppla samman flera system. Detta kan realiseras på en mängd olika sätt men: SOAP över HTTP/S uppfyller samtliga krav. Alla moderna programeringsspråk har mer eller mindre färdiga komponenter för att komunicera via HTTP/HTTPS. SOAP/WSDL är tillräckligt väl definierat för att det skall finnas en mängd verktyg och ramverk för att "översätta" mellan olika programeringsspråk och SOAP/WSDL      

...