Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.


Innehållsförteckning
maxLevel34

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:

      Kodblock
      **********************************************************************

...

    1. 
      * Application: vp-services-2.2.

...

    1. 4                                     *
      * OS encoding: UTF-8, Mule encoding: UTF-

...

* Agents Running:                                                 *

*   JMX Agent                                                        *

*   Clustering Agent                                               *

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

Varning

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

    Kodblock
    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

    Kodblock
    cd rivta-read-only/ServiceInteractions/riv/eservicesupply/eoffering/trunk/schemas/interactions/GetAvailableEServicesInteraction
    mv GetAvailableEServicesInteraction_1.0_RIVTABP21.wsdl.temp GetAvailableEServicesInteraction_1.0_RIVTABP21.wsdl
    Kodblock
    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

...

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

...

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

Kodblock
1. cd /temp/archetypes/tags/archetype-1.3/ServiceArchetype
2. mvn clean install

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.0-RC4</version>

 

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

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

 

...

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. 

Release notes

Använda 1.1

Info
iconfalse

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

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

...

Kodblock
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

...

    • .

...

 

...