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
Begreb | Beskrivelse | |
---|---|---|
Web-applikation | En Web-applikation består af en Frontend-komponent og en eller flere Facade-komponenter | |
Frontend | En 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
Statement | Rationale | Implikationer | |
---|---|---|---|
F | Web-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:
| Diverse | |
F | Services 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ænseflader | Useability |
Data
Statement | Rationale | Implikationer | |
---|---|---|---|
D1 | Services bør kun udstille operationer som anvender standardiserede informationsobjekter, f.eks. FHIR ressourcer | Interoperability Reusability | |
D2 | Web-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
ID | Statement | Rationale | Implikationer |
---|---|---|---|
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)
| 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. |
A3 | Løsninger bør overholder retningslinier for "12 factor app" 3) | Maintainability | |
A4 | Løsninger bør designes ud fra en anerkendt arkitekturstil, f.eks. lagdelt arkitektur | Maintainability | |
A5 | Services bør designes som microservices | Maintainability | |
A6 | Services skal udstille deres snitfladekontrakter så de er maskinlæsbare. | Interoperability | SOAP services skal udstille snitfladekontrakten vha. WSDL REST services skal udstille snitfladekontrakten vha OpenAPI. |
A7 | Forretningsfunktionaliteten 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
Statement | Rationale | Implikationer | |
---|---|---|---|
T1 | Lø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. |
T2 | Services skal udstilles gennem endpoints der er afkoblet fra den tekniske infrastruktur. | Scalability Maintainability Interoperability | |
T3 | Løsninger til brugergrænseflader (Frontend lag) skal kunne deployes uafhængigt af de services de anvender | Interoperability Maintainability |
Sikkerhed og logning
Statement | Rationale | Implikationer | |
---|---|---|---|
S1 |