Innehållsförteckning | ||
---|---|---|
|
Virtuell tjänst
En virtuell tjänst erbjuder en anslutningspunkt per tjänstekontrakt som standardiserats genom RIVmetoden. I praktiken finns det ofta många tjänsteproducenter (regionala, landstingsspecifika eller gemensamma för ett antal vårdgivare) för ett standardiserat tjänstekontrakt. Virtuella tjänster döljer detta förhållande för tjänstekonsumenter.
Driftsätta virtualiseringar i Virtualiseringsplattformen
- Lägg till jar-fil med virtualisering i <MULE_HOME>/apps/vp-services-[version]/lib katalogen
- Använd kommandot touch <MULE_HOME>/apps/vp-services-[version]/vp-config.xml för att ladda om applikationen och starta den virtuella tjänsten
- Säkerställ driftsättningen av den virtuella tjänsten genom att:
titta i loggen <MULE_HOME>/logs/mule-app-vp.log. Omladdningen har gått bra när man ser informationen nedan i loggen:
Kodblock **********************************************************************
...
* Application: vp-services-2.2.
...
* OS encoding: UTF-8, Mule encoding: UTF-8 *
* Agents Running: *
* JMX Agent *
* Clustering Agent *
**********************************************************************
b. Hämta upp den installerade virtuella tjänstens wsdl genom SOAPUI. Det räcker med att testa en eller två tjänster:
- Gå till File=> New soapUI Project och fyll i Project Name och Initial WSDL/WADL.
- Project Name är valfritt.
- Initial WSDL/WADL är adress till tjänstens wsdl. Den får man fram genom att packa upp tjänstens jar-fil och titta efter adress för inbound-endpoint i filen tp2-service-mule-descriptor.xml.
ex. address="https://${TP_HOST}:${TP_PORT}/${TP_BASE_URI}/AterkallaSamtyckeVardsystem/1/rivtabp20". - Ersätt samtliga parametrar i adressen och lägg till ?wsdl på slutet, till exempel: https://123.456.00.00:20000/vp/AterkallaSamtyckeVardsystem/1/rivtabp20?wsdl
- Lyckas upphämtningen av wsdl-en kommer ett SoapUI projekt skapas med ett request till tjänsten.
Verktyg för att generera virtuella tjänster
Verktyg för att hjälpa till i arbetet med att skapa körbara virtuella tjänster.
Script för att generera körbara virtuella tjänster för VP 1.3.x och VP 2.0.
Förutsättningar
Java är installerat och JAVA_HOME är satt i miljön.
Kräver groovy 1.8 eller nyare, se här för installationsinstruktioner.
Kräver Maven 3.0 eller nyare.
Rätt version av Maven behövs för att kunna köra scriptet.
Scriptet baseras på RIV TA Konfigurationsstyrning 1.0
Skapa tjänstevirtualiseringar
Ladda ner önskad RIV-TA zip med tjänstekontrakt till ett [temporärt bibliotek] från RIV TA sidan.
Packa upp zip-filen
Bygg den senaste version av artefakten. I exemplet nedan används version 1.2
Kodblock 1. cd /temp/archetypes/tags/archetype-1.2/ServiceArchetype 2. mvn clean install
I potemplate.xml uppdatera artifactId och version beroende på vilken domän/subdomän som tjänstekontrakten tillhör samt vilken version av RIVTA zip-filen som används, se exempel nedan
Kodblock <groupId>se.skl.skltpservices</groupId> <artifactId>itintegration-engagementindex</artifactId> <version>1.0-RC4</version>
Uppdatera version i VirtualiseringGenerator.groovy så att det matchar versionen på RIVTA zip-filen.
Det är senare när man bygger de körbara jarfilerna som dessa döps till en kombination av tjänstedomän och version, ex itintegration-engagementindex-FindContent-virtualisering-1.0-RC4.jarKodblock def version = '1.0-RC4'
I samma fil (VirtualiseringGenerator.groovy ) se till att rätt version av arketypen används. Sätt -DarchetypeVersion till den version som har byggts i ovan steg 4.
Kodblock 4 * * OS encoding: UTF-8, Mule encoding: UTF-8
* * Agents Running:
* * JMX Agent
* * Clustering Agent
Kör script med schemas som input
./VirtualiseringGenerator.groovyKodblock Mappar för varje interaktion har nu skapats. Varje mapp innehåller en definition av en virtuell tjänst
FindContentKodblock Kör maven install för att skapa körbara jar-filer
Kodblock mvn clean package
Checka ut filer som behövs för att generera virtualiseringar till varfritt bibliotek (i nedanstående exempel används katalog 'temp'):
Kodblock |
---|
svn checkout http://skltpservices.googlecode.com/svn/tools/generators/ temp |
Gå till tools-katalogen där Virtualiseringsscriptet finns
Kodblock |
---|
cd temp/scripts/trunk/se/skltpservices/tools |
Problem med att köra script
Script hänger på mvn archetype:generate
Kör mvn archetype:generate kommandot manuellt för att ladda ner olika beroenden som behövs av scriptet. Prova att köra scriptet igen när beroendena finns nedladdade.
Använda 1.1
Info | ||
---|---|---|
| ||
-DinteractiveMode=false -DarchetypeArtifactId=service-archetype -DarchetypeGroupId=se.skl.tp.archetype -DarchetypeVersion=1.0-SNAPSHOT -Duser.dir=. -DgroupId=se.skl.skltpservices.itintegration.engagementindex -DartifactId=FindContent -Dversion=1.1 -DdomainName=itintegration -DdomainSubName=engagementindex -DserviceMethod=FindContent -DserviceInteraction=FindContentInteraction -DserviceRelativePath=FindContent/1/rivtabp21 -DserviceWsdlFile=FindContentInteraction_1.0_RIVTABP21.wsdl -DserviceNamespace=urn:riv:itintegration:engagementindex:FindContent:1:rivtabp21 |
Använda 1.2
- Endast Mule3 flow för virtualisering, mule2 service borttagen
- Lägger till en http och https ändpunkt
- Lägger till möjligheten att styra via keep-alive via feature
- Ändpunkternas adress innehåller nu även domän och subdomän (Notera att om man vill generera om tjänster som inte skall ha domännamn i adress, så uppdatera -DhttpsEndpointAdress och -DhttpEndpointAdress så att endast tjänstens namn kommer med)
...
icon | false |
---|
-DinteractiveMode=false
-DarchetypeArtifactId=service-archetype
-DarchetypeGroupId=se.skl.tp.archetype
-DarchetypeVersion=1.2
-Duser.dir=.
-DgroupId=se.skl.skltpservices.crm.scheduling
-DartifactId=GetSubjectOfCareSchedule
-Dversion=1.1
-DVirtualiseringArtifactId=crm-scheduling-GetSubjectOfCareSchedule-virtualisering
-DhttpsEndpointAdress=https://${TP_HOST}:{TP_PORT}/${TP_BASE_URI}/crm/scheduling/GetSubjectOfCareSchedule/1/rivtabp21
...
* **********************************************************************
b. Hämta upp den installerade virtuella tjänstens wsdl genom SOAPUI. Det räcker med att testa en eller två tjänster:
- Gå till File=> New soapUI Project och fyll i Project Name och Initial WSDL/WADL.
- Project Name är valfritt.
- Initial WSDL/WADL är adress till tjänstens wsdl. Den får man fram genom att packa upp tjänstens jar-fil och titta efter adress för inbound-endpoint i filen tp2-service-mule-descriptor.xml.
ex. address="https://${TP_HOST}:${TP_PORT
...
...
...
-DflowName=crm-scheduling-GetSubjectOfCareScheduleInteraction-virtualisering-flow
-DfeatureKeepalive=${feature.keepalive.urn.riv.crm.scheduling.GetSubjectOfCareScheduleResponder.1:${feature.keepalive}}
-DserviceMethod=GetSubjectOfCareSchedule
-DserviceWsdlFileDir=classpath:/schemas/interactions/GetSubjectOfCareScheduleInteraction/GetSubjectOfCareScheduleInteraction_1.1_RIVTABP21.wsdl
-DserviceNamespace=urn:riv:crm:scheduling:GetSubjectOfCareSchedule:1:rivtabp21
Använda 1.3
...
- rivtabp20".
- Ersätt samtliga parametrar i adressen och lägg till ?wsdl på slutet, till exempel: https://123.456.00.00:20000/vp/AterkallaSamtyckeVardsystem/1/rivtabp20?wsdl
- Lyckas upphämtningen av wsdl-en kommer ett SoapUI projekt skapas med ett request till tjänsten.