Innehållsförteckning
Produktval
...
Som ramverk för virtualiseringsplattformen har Spring Boot + Apache-Camel valts.
Apache-Camel är ett moget ramverk med stöd för de funktioner som implementeras i Mule i nuvarande lösningkrävs för att realisera en virtualiseringsplattform.
Apache-Camel är också öppen källkod som distribueras under Apache 2.0 license.
...
Paketstruktur
Nedan redovisas de mest intressanta paketstrukturerna.
se.skl.tp.vp
- certificate - koden kod som hämtar data från certefikatcertifikaten
- errorhandling - koden kod som hanterar olika fel situationer som händer inträffar under flödet
- exceptions - olika definerade fel som används i VP
httpheader -Processors/halpers helpers som jobbar med hanterar http-headrar
status - service som returnerar VP status
- timout timeout - koden kod som hanterar kofiguration konfiguration för timeout per tjästekontrakttjänstekontrakt
- vagval - koden kod som determinerar hanterar 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 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.
...
Källkod
Exceptions
Fel rapporteras av VP 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.
Monitorering
Statustjänst Ankare status_tjanst status_tjanst
status_tjanst | |
status_tjanst |
Vp VP Camel platformen innehåller exponerar en status-tjänst. Den returnerar information om platformenplattformen. Genom 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 finns parametrar för den tjänst:
...
är igång och fungerar som avsett.
Se: SKLTP VP - Status tjänst
Hawtio
Hawtio använd för monitorering och som "manager" verktyg.
Det finns möjlighet att ändra loggnivåer under drift, få systeminformation som processorutnyttjande, minne, diskutrymme, javaversion, java classpath, threads etc.
Samt att hitta flaskhalsar i Camel-flöden och debugga dessa.
Loggning Ankare Hawtio Hawtio
Hawtio | |
Hawtio |
För loggning används log4j2. Meddelanden genom plattformen loggas i ett format som gör det enkelt att ta in och monitorera med Kibana.
Se: SKLTP VP - Loggning
Web-service/SOAP/WSDL
Expandera | ||
---|---|---|
| ||
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 själv några tjänster. De WSDL:er VP exponerar beskriver de tjänster som andra system exponerar via VP.
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 SKLTP VP - Virtuell tjänst och WSDL.
TAK cache
Ankare | ||||
---|---|---|---|---|
|
VP har sin egen copia kopia av TAK data i en cache implementerad i en fristående komponent https://github. Man kan köra com/skltp/takcache som innehåller vägval och anropsbehörigeter.
Denna används för:
- Få information om faktisk url till en producent
- Bestämma om konsumenten har behöriget att anropa en viss producent med ett visst tjänstekontrakt.
Man kan göra en uppdatering av TAK cache komponenten via url url:
Kodblock |
---|
http://[vp-url]:23000/resetcache |
...
eller via egen-konfigurerad port, se nyckeln vp.reset.cache.url under konfigrationen SKLTP VP - Konfiguration
HSA Cache
VP har för närvarande stöd för "trädklättring", d.v.s. att behörighet till att anropa ett kontrakt kan ligga ovanför en producent, i ett hierarkiskt träd.
Denna funktionalitet kan i framtida versioner av VP tas bort.
VP håller sin egen kopia av HSA data i en cache, en fristående komponent https://github.com/skltp/hsa-cache, denna kan uppdateras via url:
Kodblock |
---|
http://[vp-url]:24000/resethsacache |
eller via egen-konfigurerad url, se nyckeln vp.hsa.reset.cache.url under konfigurationen SKLTP VP - Konfiguration
Informationen läses då in i HSA cahce komponenten från en eller flera filer som kan hämtas från HSA.
Expandera | ||
---|---|---|
| ||
HSA-trädet för en HSA-enhet ligger i en |
...
komma-separerad lista i DN fältet där förälder är nästa del i listan. 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.
|
...
Webb-service/SOAP/WSDL
Expandera | ||
---|---|---|
| ||
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 |
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 medelanden 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
...
roten SE. |