Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Identificér endpoint URL'en for servicen
  2. Find servicens WSDL
  3. Find ud af hvorvidt servicen skal kaldes gennem SOSI-Gateway
  4. Notér 'soapAction' attributten for hver operation i servicens WSDL – bemærk at 'soapAction' attributten er mandatory for HTTP-bundne webservices jf. WSDL specifikationen \[WSDL\]

  5. Identificér en fælles prefix for alle de noterede 'soapActions'
  6. Definér en timeoutgrænse for hver operation
  7. Tilføj nu et <Endpoint> tag til DCC'en konfigurationsfil med følgende attributter:
    1. 'ActionPrefix' sættes til den identificerede fælles prefix
    2. 'URL' sættes til URL'en for servicen
    3. 'ProxyURL' (optionel) sættes til URL'en for SOSI-Gateways 'proxy' snitflade såfremt servicen skal tilgås gennem denne
    4. 'IdcardMaxAgeMinutes' (optionel) – se afsnittet 'IdcardMaxAgeMinutes instruktionen' længere nede
    5. 'DoNotVerifySSLHostname' (optionel) – se afsnittet 'SSL/TLS håndtering' længere nede
    6. 'WSA_Headers_Processing' (optionel) – se afsnittet 'WS-Addressing processering' længere nede
  8. Tilføj nu et <Action> tag under <Endpoint> tagget for hver af de identificerede 'soapActions' og sæt 'Name' attributten på <Action> tagget til 'soapActions' navn - uden den identificerede fælles prefix. Under hver <Action> tag tilføjes derefter et <DecouplingModel> tag med værdien 'synchronous_timeout' og et <Timeout> tag med det definerede timeout for operationen som angives i millisekunder.
  9. SOSI-DCC genstartes for at få konfigurationsændringen til at slå i gennem

...

Code Block
<?xml version="1.0" encoding="UTF-8"?>
<Endpoint ActionPrefix="http://www.dkma.dk/medicinecard/xml.schema/"URL="http://triforkprodtest.lms.trifork.com/fmk12/ws/MedicineCard"ProxyURL="http://localhost:8080/sosigw/proxy/soap-request"IdcardMaxAgeMinutes="560">
  <Action Name="2009/01/01#GetMedicineCard">
    <DecouplingModel>synchronous_timeout</DecouplingModel>
    <Timeout>30000</Timeout>
  </Action>
  <!-- flere actions -->
  <Action Name="2011/01/01#CreatePrescriptionMedicationWithoutCPR">
    <DecouplingModel>synchronous_timeout</DecouplingModel>
    <Timeout>30000</Timeout>
  </Action>
</Endpoint>

...

Code Block
<?xml version="1.0" encoding="UTF-8"?>
<Endpoint ActionPrefix="http://www.example.org#" URL="http://foobar.com/example/*">
  <Action Name="doIt">
    <DecouplingModel>synchronous_timeout</DecouplingModel>
    <Timeout>10000</Timeout>
  </Action>
</Endpoint>

...

IdcardMaxAgeMinutes instruktionen
For en service der kaldes gennem SOSI-Gateway kan der angives en IdcardMaxAgeMinutes konfigurationsparameter som sættes til den alder i minutter et idkort højst må have for at servicen vil acceptere den. Hvis denne parameter sættes tilføjer DCC'en en SOSI-GW specifik soap header til kaldet med parameterværdien. Når SOSI-GW modtager kaldet vil den afvise den med en standard 'no valid idcard in cache' hvis idkortet i dens cache er ældre en angivet i parameteren.
Fordelen ved at sætte denne parameter er at klienter spares for et kald i de tilfælde hvor der er et idkort i SOSI-GW som er gyldigt, men for gammel i forhold til den service der bliver kaldt: Fremfor at de får en fejlbesked fra servicen om at idkortet er for gammel og derefter skal foretage et eksplicit login til SOSI-GW (som består af to kald), får de i stedet et fejlsvar fra SOSI-GW med en implicit login header og kan derefter foretage et login til SOSI-GW med et enkelt kald.
Ulempen ved at benytte parameteren er at værdien skal afstemmes med serviceudbyderen.

SSL/TLS håndtering
For udgående HTTPS kald validerer DCC'en som udgangspunkt 'trust' af det kaldte endpoint's SSL/TLS-server-certifikat mod Java's egen truststore.
Det er muligt at udvide 'trust' til at omfatte certifikater (også udstedende rod-/kryds-certifikater) fra et lokalt truststore.
Det lokale truststore skal være et standard Java KeyStore fil, som indeholder de trustede (almindelige eller udstedende) certifikater. KeyStoren filen placeres i $JBOSS_HOME/standalone/configuration/ og konfigureres i DCC'ens konfigurationsfil (dcc-config.xml) med filnavn og password, feks som:

...

Som default foretages hostname verifikation af server-certifikatet (wildcards er understøttet) – dette er dog muligt at slå fra på endpoint/action niveau ved at sætte 'DoNotVerifySSLHostname' (for XML baseret endpoint konfiguration) eller 'DO_NOT_VERIFY_SSL_HOSTNAME' (for database baseret konfiguration) til 'true'.

WS-Addressing processering:
Der kan konfigureres hvordan WS-Addressing headere i routede kald skal håndteres af DCC. Følgende tre modeller understøttes:

...