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.
...
4 * * OS encoding: UTF-8, Mule encoding: UTF-
...
* Agents Running: *
* JMX Agent *
* Clustering Agent *
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.
...
- .
...
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.
You need to install Maven service archetype of correct version in order to run the script
- cd /skltpservices/tools/generators/archetypes/tags/archetype-1.2/ServiceArchetype
- mvn install
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
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 |
...
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-RC4</version>
|
...
Uppdatera version i /VirtualiseringGenerator.groovy så att det matchar versionen på RIVTA zip-filen.
Kodblock |
---|
def version = '1.0-RC4' |
...
Kör script med schemas som input
Kodblock |
---|
./VirtualiseringGenerator.groovy <genväg till den uppackade RIV TA filen>/schemas |
...
Mappar för varje interaktion har nu skapats. Varje mapp innehåller en definition av en virtuell tjänst
Kodblock |
---|
FindContent
pom.xml
Virtualisering
pom.xml
src
main
resources
schemas
core_components
interactions
tp2-service-mule-descriptor.xml
GetUpdates
ProcessNotification
Update
pom.xml |
Kör maven install för att skapa körbara jar-filer
Kodblock |
---|
mvn clean package |
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
-DhttpEndpointAdress=http://${TP_HOST}:${TP_PORT_HTTP}/${TP_BASE_URI}/crm/scheduling/GetSubjectOfCareSchedule/1/rivtabp21
-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
...