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

SKLTP VP - Virtuella tjänster

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 38 Nästa »

 

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

  1. Lägg till jar-fil med virtualisering i <MULE_HOME>/apps/vp-services-[version]/lib katalogen
  2. 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
  3. Säkerställ driftsättningen av den virtuella tjänsten genom att: 
    1. titta i loggen <MULE_HOME>/logs/mule-app-vp.log.  Omladdningen har gått bra när man ser informationen nedan i loggen:

**********************************************************************

* Application: vp-services-2.2.0                            *

* 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:

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 2.x  

Förutsättningar

Notera att just nu kräver detta verktyg för att generera virtualiseringar att Java SE 6 använda, ett ärende är registrerat i SKLTP-379 för att åtgärda problemet så att det skall vara möjligt att använda Java SE 7.

Testa med följande kommando för att verifiera java versionen:

➜ trunk java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)


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

Maven archetype innehållandes template för virtualisering installerad:

  1. Med svn checka ut http://skltpservices.googlecode.com/svn/tools/generators/archetypes/tags/archetype-1.3/
  2. Bygg archetype med "mvn clean install"

Om tjänsteinteraktionen skall stödja både rivtabp20 och rivtabp21

Det finns tjänsteinteraktioner på RIV TA som både har stöd för rivtabp20 och rivtabp21. För att kunna generera virtuella tjänster för båda dessa krävs idag lite handpåläggning och generering i 2 steg.

Exempel från tjänstedomänen eservicesupply:eoffering (Erbjuden e-tjänst):

  1. För att generera virtualiseringar för enbart rivtabp20, ändra namn på wsdl fil för rivtabp21

    cd rivta-read-only/ServiceInteractions/riv/eservicesupply/eoffering/trunk/schemas/interactions/GetAvailableEServicesInteraction
    mv GetAvailableEServicesInteraction_1.0_RIVTABP21.wsdl GetAvailableEServicesInteraction_1.0_RIVTABP21.wsdl.temp

    Generera virtualisering för rivtabp20 enligt instruktionen under Skapa virtualiseringar

  2. För att generera virtualiseringar för enbart rivtabp21, ändra namn på wsdl fil för rivtabp20

    Byt namn på tidigare ändrad wsdl

    cd rivta-read-only/ServiceInteractions/riv/eservicesupply/eoffering/trunk/schemas/interactions/GetAvailableEServicesInteraction
    mv GetAvailableEServicesInteraction_1.0_RIVTABP21.wsdl.temp GetAvailableEServicesInteraction_1.0_RIVTABP21.wsdl
    cd rivta-read-only/ServiceInteractions/riv/eservicesupply/eoffering/trunk/schemas/interactions/GetAvailableEServicesInteraction
    mv GetAvailableEServicesInteraction_1.0_RIVTABP20.wsdl GetAvailableEServicesInteraction_1.0_RIVTABP20.wsdl.temp

    Generera virtualisering för rivtabp21 enligt instruktionen under Skapa virtualiseringar

Skapa tjänstevirtualiseringar

  1. Ladda ner önskad RIV-TA zip med tjänstekontrakt till ett [temporärt bibliotek] från  RIV TA sidan.

  2. Packa upp zip-filen

  3. Checka ut filer som behövs för att generera virtualiseringar till varfritt bibliotek (i nedanstående exempel används katalog 'temp'):

    svn checkout http://skltpservices.googlecode.com/svn/tools/generators/ temp


  4. Bygg den senaste version av artefakten. I exemplet nedan används version 1.3

    1. cd /temp/archetypes/tags/archetype-1.3/ServiceArchetype
    2. mvn clean install
  5. Gå till tools-katalogen där Virtualiseringsscriptet finns 

    cd temp/scripts/trunk/se/skltpservices/tools


  6. 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

    <groupId>se.skl.skltpservices</groupId>
    <artifactId>itintegration-engagementindex</artifactId>
    <version>1.0-RC4</version>
    
    

     

  7. Uppdatera version i VirtualiseringGenerator.groovy så att det matchar versionen på RIVTA zip-filen.

    def version = '1.0-RC4'


    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.jar

  8. 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. 

     

     mvn archetype:generate
     -DinteractiveMode=false
     -DarchetypeArtifactId=service-archetype
     -DarchetypeGroupId=se.skl.tp.archetype
     -DarchetypeVersion=1.3
     -Duser.dir=.
     -DgroupId=se.skl.skltpservices.druglogistics.dosedispensing
     -DartifactId=HamtaLokaltProduktsortiment
     -Dversion=1.1.0
     -DvirtualiseringArtifactId=druglogistics-dosedispensing-HamtaLokaltProduktsortiment-virtualisering
     -DhttpsEndpointAdress=https://${TP_HOST}:${TP_PORT}/${TP_BASE_URI}/druglogistics/dosedispensing/HamtaLokaltProduktsortiment/1/rivtabp20
     -DhttpEndpointAdress=http://${TP_HOST}:${TP_PORT_HTTP}/${TP_BASE_URI}/druglogistics/dosedispensing/HamtaLokaltProduktsortiment/1/rivtabp20
     -DflowName=druglogistics-dosedispensing-HamtaLokaltProduktsortiment-<TODO: tex 1.1.0>-Interaction-virtualisering-flow
     -DfeatureKeepaliveValue=${feature.keepalive.urn.riv.druglogistics.dosedispensing.HamtaLokaltProduktsortimentResponder.1:${feature.keepalive}}
     -DfeatureResponseTimeoutValue=${feature.featureresponsetimeout.druglogistics.dosedispensing:${SERVICE_TIMEOUT_MS}}
     -DserviceMethod=HamtaLokaltProduktsortiment
     -DserviceWsdlFileDir=classpath:/schemas/interactions/HamtaLokaltProduktsortimentInteraction/HamtaLokaltProduktsortimentInteraction_1.0_RIVTABP20.wsdl
     -DserviceNamespace=urn:riv:druglogistics:dosedispensing:HamtaLokaltProduktsortiment:1:rivtabp20

     

  9. Kör script med schemas som input 

    ./VirtualiseringGenerator.groovy <genväg till den uppackade RIV TA filen>/schemas
  10. Mappar för varje interaktion har nu skapats. Varje mapp innehåller en definition av en virtuell tjänst

    FindContent
    	pom.xml
    	Virtualisering
    		pom.xml
    		src
    			main
    				resources
    					schemas
    						core_components
    						interactions
    					tp2-service-mule-descriptor.xml
    GetUpdates
    ProcessNotification
    Update
    pom.xml
  11. Kör maven install för att skapa körbara jar-filer

    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. 

Release notes

Använda 1.1

mvn archetype:generate

-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)

mvn archetype:generate

-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

-DserviceNamespace=urn:riv:crm:scheduling:GetSubjectOfCareSchedule:1:rivtabp21

 

Använda 1.3

  • Stöd för feature response timeout per tjänstedomän

mvn archetype:generate
 -DinteractiveMode=false
 -DarchetypeArtifactId=service-archetype
 -DarchetypeGroupId=se.skl.tp.archetype
 -DarchetypeVersion=1.3
 -Duser.dir=.
 -DgroupId=se.skl.skltpservices.druglogistics.dosedispensing
 -DartifactId=HamtaLokaltProduktsortiment
 -Dversion=1.1.0
 -DvirtualiseringArtifactId=druglogistics-dosedispensing-HamtaLokaltProduktsortiment-virtualisering
 -DhttpsEndpointAdress=https://${TP_HOST}:${TP_PORT}/${TP_BASE_URI}/druglogistics/dosedispensing/HamtaLokaltProduktsortiment/1/rivtabp20
 -DhttpEndpointAdress=http://${TP_HOST}:${TP_PORT_HTTP}/${TP_BASE_URI}/druglogistics/dosedispensing/HamtaLokaltProduktsortiment/1/rivtabp20
 -DflowName=druglogistics-dosedispensing-HamtaLokaltProduktsortiment-<TODO: tex 1.1.0>-Interaction-virtualisering-flow
 -DfeatureKeepaliveValue=${feature.keepalive.urn.riv.druglogistics.dosedispensing.HamtaLokaltProduktsortimentResponder.1:${feature.keepalive}}
 -DfeatureResponseTimeoutValue=${feature.featureresponsetimeout.druglogistics.dosedispensing:${SERVICE_TIMEOUT_MS}}
 -DserviceMethod=HamtaLokaltProduktsortiment
 -DserviceWsdlFileDir=classpath:/schemas/interactions/HamtaLokaltProduktsortimentInteraction/HamtaLokaltProduktsortimentInteraction_1.0_RIVTABP20.wsdl
 -DserviceNamespace=urn:riv:druglogistics:dosedispensing:HamtaLokaltProduktsortiment:1:rivtabp20

Använda 1.4-SNAPSHOT

  • Groupid ändrat till se.skltp.virtualservices.domain.subdomain
  • Namn på genererade tjänster innehåller tjänstekontraktets version och virtualiseringens version, tex insuranceprocess-healthreporting-3.1.0-RegisterMedicalCertificate-virtualisering-1.0-SNAPSHOT.jar
  • Script och arketyp flyttade till http://skltpservices.googlecode.com/svn/tools/generators/virtualization/
mvn archetype:generate
		-DinteractiveMode=false
		-DarchetypeArtifactId=virtualServiceArchetype
		-DarchetypeGroupId=se.skltp.virtualservices.tools
		-DarchetypeVersion=1.4
		-Duser.dir=.
		-DgroupId=se.skltp.virtualservices.insuranceprocess.healthreporting
		-DartifactId=SetCertificateStatus
		-Dversion=1.0-SNAPSHOT
		-DvirtualiseringArtifactId=insuranceprocess-healthreporting-3.1.0-SetCertificateStatus-virtualisering
    	-DhttpsEndpointAdress=https://${TP_HOST}:${TP_PORT}/${TP_BASE_URI}/SetCertificateStatus/1/rivtabp20
    	-DhttpEndpointAdress=http://${TP_HOST}:${TP_PORT_HTTP}/${TP_BASE_URI}/SetCertificateStatus/1/rivtabp20
		-DflowName=insuranceprocess-healthreporting-SetCertificateStatus-3.1.0-Interaction-virtualisering-flow
		-DfeatureKeepaliveValue=${feature.keepalive.urn.riv.insuranceprocess.healthreporting.SetCertificateStatusResponder.1:${feature.keepalive}}
		-DfeatureResponseTimeoutValue=${feature.featureresponsetimeout.insuranceprocess.healthreporting:${SERVICE_TIMEOUT_MS}}
		-DserviceMethod=SetCertificateStatus
		-DserviceWsdlFileDir=classpath:/schemas/interactions/SetCertificateStatusInteraction/SetCertificateStatusInteraction_1.0_rivtabp20.wsdl
		-DserviceNamespace=urn:riv:insuranceprocess:healthreporting:SetCertificateStatus:1:rivtabp20

 

 

  • Inga etiketter