Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootSundhedsvæsenets Nationale Erstatnings-CPR (Nationalt eCPR) - Leverancebeskrivelse
includeroottrue



Table of Contents

Dette er en foreløbig beskrivelse, med rettelser på vej. 

KOPIERET FRA NAS:

Introduktion

...

Formålet med dette dokument er at beskrive hvordan et udviklingsmiljø , til videreudvikling af Nationalt eCPR-servicen, kan sættes op, samt hvordan koden bygges, deployes og testes.

...

Efter byg kan WAR filen findes under ecpr2-service/target/ecpr2-service-1.28.18

Afvikling

For at bygge dockerimaget docker-imaget udføres kommandoen

docker-compose -f compose/development/docker-compose.yml up -d --build

som både bygger og starter en lokal database og selve servicen ecpr2. Herefter kan eCPR findes på port 8380 (Eller 8080?, se docker-compose i development linje 14-16).
Endpointet kan findes på http://??

Beskrivelse af systemdesign

Systemarkitekturen er beskrevet ieCPR - Design- og Arkitekturbeskrivelse. Nedenfor beskrives systemdesignet vha. sekvensdiagrammer, der viser flowet gennem systemet. 
Hvor mange? Af hvilke kald? Skal der laves et designdiagram? 


Beskrivelse af kildekodens strukturering og design

Kode strukturering

Kildekoden bygges vha Apache Maven. Overordnet består kildekoden af 5 Maven moduler, et parent modul (ecpr2) og 4 øvrige moduler, som kort beskrives nedenfor: 

ecpr2-schemas??
ecpr2-server-api??
ecpr2-serviceIndeholder selve sourcekoden for systemet. Denne struktur er yderligere beskrevet nedenfor
ecpr-test

Her ligger integrationstest for det samlede systemet

Når systemet bygges med kommandoen

mvn clean install -D maven.test.skip=true -e

er bygge orderen 

  1. eCPR2
  2. ecpr2-schemas
  3. ecpr2-server-api
  4. ecpr2-service
  5. ecpr2-test

ecpr2-service kodestrukturering

Selve eCPR-servicens kodestruktur er uddybet nedenfor, hvor hver mappe under ecpr-service → src → main → java → dk.sds.ecpr2 er beskrevet:

NavnBeskrivelse
advis
constants
dao
datagenerator
domain
rest
security
service
util
webservice


_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

Når alle services er startet er de at finde på følgende port:

...

pullpointfactory

...

pullpoint

...

idlist

...

subscriptionmanager

...

notificationbroker

...

Deres endpoints findes på følgende måde: http://<navn>:<port>/<navn>. Alternativt kan alle services tilgås via en HTTP reverse proxy på port 8090. En service kan så tilgås via adressen http://<navn>:8090/<navn>.

Beskrivelse af systemdesign

Systemdesign er beskrevet i NAS Design og Arkitekturbeskrivelse

Beskrivelse af kildekodens strukturering og design

Kode strukturering

Kildekoden bygges vha Apache Maven, og kildekoden er struktureret som Maven moduler. Følgende moduler er support moduler, som inkluderes efter behov:

...

Derudover findes alle services som moduler under services.-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

Database navnekonvention

For at sikre en ensartet navngivning af tabeller, kolonner osv. er nedenstående navnekonvention indført i forhold til databasen. 

...

Unit tests afvikling under byg, men kan separat afvikles ved at køre:

mvn test

Hvis der derimod laves en verify, så vil der også blive genereret code coverage, hvor fremkommende rapport kan ses i testreport/target/site/jacoco-aggregate/index.html

...

Integrationstests kan afvikles ved at køre følgende under integration-test modulet:

mvn test

Dette afvikles op mod indlejrede udgaver af alle NAS services. Hvis man derimod ønsker at afvikle testen op mod det kørende udviklingsmiljø (docker-compose setup), så kan man bruge development profilen:

mvn -Pdevelopment test

Dette forudsætter at alle services er startet som angivet i udviklet docker-compose setuppet. Hvis man ønsker af afvikle testen op mod en andet miljø, skal en række projekt variable defineres (se pom.xml-filen herom)

...

Kildekoden indeholder også performance test til andre services, men i nedestående er NAS servicens dele trukket frem.



├── modules
    ├── ...
    ├── jmeter-nas/src/main
    │                    ├── java/dk/nsp/jmeter/
    │                    │   ├── protocol/nas/
    │                    │   │    ├── backgroundjob/
    │                    │   │    │    ├── NotificationBrokerBackgroundJob.java
    │                    │   │    ├── control/gui/
    │                    │   │    │    ├── AbstractNasSamplerGui.java
    │                    │   │    │    ├── CreateIDListRequestSamplerGui.java
    │                    │   │    │    ├── NotificationBrokerRequestSamplerGui.java
    │                    │   │    │    └── PullPointRequestSamplerGui.java
    │                    │   │    ├── sampler
    │                    │   │    │    ├── CreateIDListRequestSampler.java
    │                    │   │    │    ├── NotificationBrokerRequestSampler.java
    │                    │   │    │    └── PullPointRequestSampler.java
    │                    │   │    └── testdata
    │                    │   │         └── GenerateTestdataSql.java
    │                    │   └── resources/nas/
    │                    │        └── Messages.java
    │                    └── resources/dk/nsp/jmeter/
    │                        ├── protocol/nas/sampler/
    │                        │    ├── pullpoint.txt
    │                        └── resources/nas/
    │                             └── messages.properties

    └── ...
├── tests
    ├── ...
    ├── nas
    |   ├── start.sh
    |   ├── stop.sh
    |   └── /src/test/jmeter/templates
    |                         ├── distributions
    |                         │   ├── nbtest10.template.jmx
    |                         │   ├── nbtest900.template.jmx
    |                         │   ├── pptest10.template.jmx

    |                         │   └── pptest900.template.jmx
    │                         └── testplans
    |                             ├── notificationbroker.template.jmx

    |                             └── pullpoint.template.jmx
    └── ...



modules: indeholder kildekoden til de forskellige test

...