Gå till slutet av bannern
Gå till början av bannern

SKLTP VP SAD - Implementationsvy

Hoppa till slutet på meta-data
Gå till början av metadata

Du visar en gammal version av den här sidan. Visa nuvarande version.

Jämför med nuvarande Visa sidhistorik

« Föregående Version 22 Nästa »

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/helpers som jobbar med http-headrar

  • service - TAK och HSA services

  • status - service som returnerar VP status

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

Hawtio 

Hawtio visar information om olika delar av tjänsteplatformen.

Det finns möjliget att ändra loggnivåer on the fly, få systeminformation som processorutnyttjande, minne, diskutrymme, javaversion, java classpath, threads etc, debugga Camel flöden.

Status Tjänst 

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

T.ex.

{
  "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.properties finns parametrar för den tjänsten:

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


TAK cache

VP har sin egen kopia av TAK data i en cache. Den inhåller vägval och anropsbehörigeter. VP använder Tak cashe för:

  • få information om faktiska Prodicent url
  • bestämma om den Producent har behöriget att anropa den Kosument via den Tjänstekontrakt. 

Man kan göra en uppdatering av TAK cache via url 

http://[vp-url]:23000/resetcache


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.


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

 WSDL: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 programmeringsspråk har mer eller mindre färdiga komponenter för att kommunicera via HTTP/HTTPS. SOAP/WSDL är tillräckligt väl definierade standards för att det skall finnas en mängd verktyg och ramverk för att "översätta" mellan olika programmeringsspråk och SOAP/WSDL.      

VP tillhandahåller inte i sig själv några tjänster. De WSDL:er VP exponerar beskriver alltså de tjänster som andra system exponerar via VP. Dessa kan med några få undantag utformas som "vilken WSDL:som helst".

Det mest framträdande undantaget är alla meddelanden som skall gå via VP måste ha en Logisk adress till systemet som tillhandahåller tjänsten. Denna skall läggas i headern. Detta måste därför beskrivas i WSDL:n. Header är ett valfritt element men som ingår i SOAP:standarden. Detta är i sig ganska vanligt att header elementet används på detta sätt.

Exakt hur WSDL:er som exponeras av VP skall se ut finns beskrivet i Ineras styrdokument. Verifiering och testning av nya tjänster i VP skall ha gjorts innan dessa exponeras i produktionsmiljön för NTJP. WSDL:erna skall då vara färdiga inklusive scheman som beskriver data som skall skickas. Dessa placeras sedan i en katalog under VP varpå de är tillgängliga via anropsadrerss+?wsdl. Mer om hur installationen av WSDL:erna finns här Installation av Virtuella tjänster.

Exceptions

Felsituationer rapporteras av virtualiseringsplattformen enligt VP standariserade felkoder. Om ett fel uppstår loggas det och ett VpSemanticException kastas. Det görs senare om till SoapFaultException vilket är den exception som når klienten.

Loggning

Som loggning biblitek använder vi log4j2. Det finns mölighet att ändra loggnivåer on the fly via Hawtio.


  • Inga etiketter