Scope for principperne i henhold til Kontekst-diagram: Alle løsningsdomæner, Applikationslag, Teknologilag

Beskrivelserne indeholder selve princippet med tilhørende rationale og eventuelle implikationer. Rationalet er indtil videre beskrevet som en eller flere Architecture Quality Attributes der er understøttet af princippet.

Begreber og definitioner


BegrebBeskrivelse

Web-applikationEn Web-applikation består af en Frontend-komponent og en eller flere Facade-komponenter

FrontendEn Frontend-komponent er den del af en Web-applikation der afvikles i en webbrowser

Facade

En Facade-komponent er den del af en Web-applikation der afvikles på serversiden.

Facade-komponenter kan indeholde en eller flere services

Forretning


StatementRationaleImplikationer
FWeb-applikationer skal understøtte et dokumenteret sæt af Use-Cases eller User-Stories.

Det skal være klart beskrevet hvem der er målgruppen for løsningerne og hvilken forretningsfunktionalitet løsningerne forventes at kunne understøtte.

Snitflader følges af User-Stories og tilhørende Test-Cases, som beskriver den specificerede anvendelse af services.

F

Web-applikationer skal overholde følgende NSP principper:

  1. Løs kobling og mindst mulig afhængighed
  2. Minimum "Impact"
  3. Robusthed
  4. Datanærhed
  5. Skalérbarhed
  6. Pragmatisk standardisering
  7. Modenhed
  8. Leverandøruafhængighed
  9. Monitorering
Diverse


FServices bør designes som "stateless".

Scalability

Maintainability

Modifiability

Web-applikationer skal opbevare sessions-tilstand i Frontend komponenten. Tilstande der skal kunne bevares på tværs af sessioner, skal gemmes på NSP vha. services.

Frontend-komponenter skal understøtte relevante gældende krav til funktionalitet i brugergrænsefladerUseability


Data


StatementRationaleImplikationer
D1Services bør kun udstille operationer som anvender standardiserede informationsobjekter, f.eks. FHIR ressourcer

Interoperability

Reusability


D2Web-applikationer skal anvende NSP services til at hente og gemme forretningsdata.

Security

Reusability

Forretningsdata som er person-henførbare må ikke gemmes i databasen på iNSP, men skal anvende NSP services til dette formål. Af hensyn til overholdelse af logningskrav, krav til samtykkekontrol mv., bør Frontend komponenten kun hente forretningsdata gennem facade-services.

Applikation

IDStatementRationaleImplikationer
A1

Frontend-komponenter skal være løst koblet til de services de anvender.


Maintainability

Portability

Interoperability

Det skal være muligt at skifte Frontend komponenter ud, uden at det påvirker de services der anvendes.
A2

Løsningerne bør designes så de er "reactive" 2)

  1. Responsive: Systemet svarer inden for en passende tidsgrænse
  2. Resilient: Systemet er robust over for fejl
  3. Elastic: Løsningen skal kunne skalere i forhold til øget anvendelse
  4. Message Driven: Kommunikation mellem de forskellige dele af en løsning bør være asynkron og beskedsorienteret.

Useability

Scalability

Performance

ad 1) Svartider skal vurderes i forhold til anvendelsen af den aktuelle løsning

ad 2) Løsningen bør returnere "Nice Declines" i tilfælde af fejl.

ad 3) Skalérbarheden er understøttet af infrastrukturen såfremt princippet omkring et "stateless" design overholdes.

ad 4) Princippet kan både anvendes internt i de enkelte dele af Web-applikationen, men også på tværs af Frontend og Services.

A3Løsninger bør overholder retningslinier for "12 factor app" 3)

Maintainability



A4Løsninger bør designes ud fra en anerkendt arkitekturstil, f.eks. lagdelt arkitekturMaintainability
A5Services bør designes som microservicesMaintainability
A6Services skal udstille deres snitfladekontrakter så de er maskinlæsbare.Interoperability

SOAP services skal udstille snitfladekontrakten vha. WSDL

REST services skal udstille snitfladekontrakten vha OpenAPI.

A7Forretningsfunktionaliteten i Web-applikationerne skal kunne verificeres af tilhørende automatiserede tests.Testability


2) Reactive Manifesto: https://www.reactivemanifesto.org/

3) "The Twelve Factor App" https://12factor.net/


Teknologi og infrastruktur


StatementRationaleImplikationer
T1Løsninger skal anvende godkendte frameworks og SDK'er.Maintainability

Anvendelse af nye "Toplevel Depencies" skal kunne motiveres.

Projekter der anvender React skal især være opmærksomme hvilke frameworks der anvendes.

T2Services skal udstilles gennem endpoints der er afkoblet fra den tekniske infrastruktur.

Scalability

Maintainability

Interoperability


T3Løsninger til brugergrænseflader (Frontend lag) skal kunne deployes uafhængigt af de services de anvender

Interoperability

Maintainability



Sikkerhed og logning


StatementRationaleImplikationer
S1


  • No labels