Metamodell Teknik-OLD

Beskrivning

Arkitektur-perspektiv

Verksamhets-område

Publicerad / Version

Beskrivning

Arkitektur-perspektiv

Verksamhets-område

Publicerad / Version

Metamodell med element och relationer för beskrivning av applikations- och teknikarkitektur.

Teknik

 

2019-12-12/128

Innehållsförteckning


Metamodellen för applikationslagret och tekniklagret definierar de begrepp som kan användas för att beskriva arkitekturen på dessa två nivåer. Metamodellen innehåller beskrivningar av begreppen i sig och hur de förhåller sig till varandra, men även hur de förhåller sig till begrepp i arkitekturgemenskapens övriga metamodeller. Metamodellen täcker både in strukturell och dynamisk beskrivning.

Ansatsen har varit att så långt som möjligt använda etablerade begrepp och relationer, men samtidigt förenkla dessa så att metamodellen blir relevant och fungerar som en konkret guide för hur arkitektur ska beskrivas på denna nivå. Gör man metamodellen för rik fungerar den inte som guide och kraft för att ensa arkitekturbeskrivningar. Gör man den å andra sidan för fattig kommer den inte att vara tillräcklig för att användas i alla sammanhang.

Arbetet har framför allt utgått från TOGAF, Archimate och UAF, men även tittat på andra standarder och referenser som exempelvis EIRA och OASIS SOA Reference Model. De refererade standarderna och arbetena finns bilagda underavsnittet Arbetsmaterial.

Modelldiagram

Elementdefinitioner

Element

Definition

Exempel

Vägledning

Källor

Element

Definition

Exempel

Vägledning

Källor

Applikationsrelaterade element









applikation

Definitionen motsvarar termen:

applikationskomponent



Självständig komponent som utför en eller flera applikationsfunktioner. Applikationens funktionalitet tillgängliggörs via ett eller flera applikationsgränssnitt. 

Logiska:

Journalsystem, som kan brytas ner i (komponenter), ex:

  • Journalföring

  • Schemaläggning

  • Tidbokning

Fysiska:

  • Cosmic

  • Nationell Patientöversikt (NPÖ)



  • Cosmic 7.5

  • NPÖ 3.0



  • Cosmic 7.5 Partille

  • NPÖ 3.0 Inera

En applikation kan vara allt från en liten och enkel mobilapp till ett stort och komplext affärssystem. Huruvida en stor och komplex applikation är att anse som en eller flera applikationer är upp till arkitekten att avgöra.

I en vy över affärssystemet kan det delas upp i skilda applikationer (-komponenter), samtidigt som det i en vy över hur det integreras kan beskrivas som endast en applikation. En applikation kan bestå av applikationskomponenter.

En applikation ska kunna implementeras fristående. Den utför en eller flera applikationsfunktioner och exponerar endast funktionalitet via en uppsättning applikationsgränssnitt.

I ett tidigt utvecklingsskede är logisk (konceptuell) applikation användbar. En logisk applikations namn ska helst vara ett substantiv och används främst för att definiera mönster, exempelvis i referensarkitekturer, eller som element i övergripande målarkitekturer och sammanfattningar. Det är också lämpligt att använda i upphandlingsunderlag för att beskriva krav på en applikation som ska upphandlas.

I ett senare skede kan applikationen konkretiseras i en fysisk applikation. Fysiska applikationer kan beskrivas på olika nivåer. Den mest generella nivån är att identifiera den konkreta applikationen med sitt namn som leverantören gett den eller ett namn som används inom verksamheten. Vidare är det möjligt att lägga till version för att på så sätt kunna beskriva hur applikationen ska utvecklas och få in den i planer. Till sist är det också möjligt att definiera element för var applikationen är installerad, dvs instanser. Dessa instanser kan man normalt sett hitta genom inventeringsverktyg, dvs applikationer som faktiskt exekverar eller är installerade.

I praktiken framgår det ofta av namnsättningen på applikation om det är en logisk (konceptuell) eller fysisk applikation som avses (exvis. Ordbehandlare eller Word). En rekommendation är därför att inte lägga för mycket kraft på att definiera om en applikation är logisk eller fysisk.  Det viktiga är att visa vad en applikation består av och hur den förhåller sig till andra applikationer. För att visa hur en applikation bryts ner från logisk till fysisk, ner till instansnivå används relationen ´del av´. Se applikationstjänster och applikationsgränssnitt för vägledning beskrivning av hur applikationer interagerar med varandra.





Archimate:

Application Component: An encapsulation of application functionality aligned to implementation structure, which is modular and replaceable. It encapsulates its behavior and data, exposes services, and makes them available through interfaces.

TOGAF:

Logical Application Component: An encapsulation of application functionality that is independent of a particular implementation. For example, the classification of all purchase request processing applications implemented in an enterprise.

Physical Application Component: An application, application module, application service, or other deployable component of functionality. For example, a configured and deployed instance of a Commercial Off-The-Shelf (COTS) Enterprise Resource Planning (ERP) supply chain management application.

UAF:

ResourceArtifact: A type of man-made object that contains no human beings (i.e., satellite, radio, petrol, gasoline, etc.).

ResourcePerformer: An abstract grouping of elements that can perform Functions.

ActualResourceRole: An instance of a ResourcePerformer.

ResourceRole: Usage of a ResourcePerformer in the context of another ResourcePerformer. Creates a whole-part relationship.

Software: A sub-type of ResourceArtifact that specifies an executable computer program.





applikationsfunktion

Automatiserat beteende som utförs internt i en applikation.

Deklarationsmottagning

Ärenderegistrering

Ärendekvittens

Ärendedistribution

Ärendesökning



Applikationsfunktioner beskriver applikationens interna beteende på en abstrakt nivå. I den mån applikationens beteende exponeras utåt görs det via applikationstjänster.

Det råder ett många-till-många-förhållande mellan applikationsfunktion och applikationstjänst.

Endast det nödvändiga beteendet anges (typiskt de funktioner som behövs för att göra en applikationstjänst begriplig). Applikationsfunktionen ska anges på abstraktionsnivå som passar det aktuella sammanhanget.

Applikationsfunktioner kan användas i sekvensdiagram för att beskriva applikationens interna funktion.



Archimate:

Application function: An application function represents automated behavior that can be performed by an application component.

UAF:

Function: An Activity which is specified in the context to the ResourcePerformer (human or machine) that IsCapableToPerform it.



applikationstjänst





Definitionen motsvarar termerna:

informationstjänst

informationssystemtjänst

digital tjänst



Mekanism för att möjliggöra tillgång till en eller flera applikationsfunktioner genom ett bestämt gränssnitt som följer en tjänstebeskrivning.

Arbetsgivardeklaration
Elektronisk remiss

Nationell Patientöversikt
Elevregister

Ärendehantering
Arkivering

Applikationstjänster levereras och konsumeras med hjälp av informationsteknologi. De kan ha olika typer av gränssnitt som riktar sig till både människor och tekniska system, exempelvis e-tjänster eller API:er. 

Tjänster bör namnsättas olika beroende på vad de har för huvudsaklig funktion. De vanligaste varianterna är att namnet ges efter 1) den process eller verksamhetsfunktion tjänsten stödjer, 2) den information tjänsten tillhandahåller, eller 3) den generella, återanvändbara funktion tjänsten tillhandahåller.

Applikationstjänster kan ha samma namn som verksamhetstjänster, men representerar då den tekniska implementationen av dessa. Det kan också vara så att flera applikationstjänster behövs för att realisera en verksamhetstjänst och en applikationstjänst kan vara del i realiseringen av flera verksamhetstjänster.

Applikationstjänster realiseras av applikationer och dessas funktioner. Arkitekturen kan beskriva applikationerna som svarta lådor, dvs utan interna funktioner. I detta fall kopplas tjänsterna direkt till applikationerna. Det är också möjligt att koppla tjänsterna till applikationer via funktioner. Detta görs om det finns behov av att beskriva vilken funktion som realiserar vilken tjänst och om arkitekten vill bryta ner applikationen i funktioner.

Både producenter och konsumenter av tjänster realiserar dessa. Om tjänsten har producent- eller konsumentspecifika gränssnitt modelleras dessa separat och kopplas därefter till producerande respektive konsumerande applikation. 

Detaljer om applikationstjänster kan beskrivas med hjälp av elementen som är definierade i sektionen tjänsteutökning nedan. Exempelvis kan gränssnitt, tjänstefunktion och det datainnehåll som utbyts med tjänsten beskrivas. Dessa detaljer kallas sammanslaget för tjänstebeskrivning och vägleder utformandet av tekniska tjänstekontrakt eller API:er som kan tolkas av IT systemen.





Archimate:

Application Service: An application service represents an explicitly defined exposed application behavior.

TOGAF:

Information System Service: The automated elements of a business service. An information system service may deliver or support part or all of one or more business services.

UAF:

ServiceSpecification: The specification of a set of functionality provided by one element for the use of others.

ActualService: An instance of a ServiceSpecification.

VLDS:

Tjänst: Mekanism för att möjliggöra tillgång till en eller flera funktioner genom ett bestämt gränssnitt där implementationen överensstämmer med de riktlinjer som är specificerade i tjänstebeskrivningen.

OASIS SOA Reference Model:

ServiceA mechanism to enable access to one or more capabilities, where the access is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service description.



applikationsgränssnitt

Accesspunkt och beskrivning av sätt att interagera med en applikationstjänst.

Deklarationshanterare

Remissproducent



Engagemangsindex

Elevregisterproducent



Ärendedistributör

Arkivfrågehanterare

Ett applikationsgränssnitt kan representera och beskriva accesspunkter, protokoll, kommandon, operationer och datainnehåll som utbyts mellan applikationer som producerar och konsumerar tjänster.

En applikationstjänst kan innehålla flera olika gränssnitt för olika teknologier, interaktionsmönster eller delar av tjänsten. Exempelvis kan det finnas ett gränssnitt för att administrera innehåll och ett annat för att konsumera.

Gränssnitt namnges med fördel med en kombination av ämnet eller informationsmängden (Exvis Ärende) som gränssnittet hanterar och rollen det har i processen (Exvis Distributör). 



Archimate:

Application Interface: A point of access where application services are made available to a user, another application component, or a node.

UAF:

ServiceInterface: A contract that defines the ServiceMethods and ServiceMessageHandlers that the ServiceSpecification realizes.

SOA RM:

Service Interface: The service interface is the means for interacting with a service. It includes the specific protocols, commands, and information exchange by which actions are initiated that result in the real world
effects as specified through the service functionality portion of the service description.



Teknikrelaterade element









nod



Definitionen motsvarar termerna:

teknisk komponent (TOGAF: Technology Component)

teknikkomponent

infrastrukturkomponent









Logisk eller fysisk resurs som manipulerar, interagerar med eller innehåller andra logiska eller fysiska resurser.

Logiska:

  • Databashotell

  • Applikationsserver

  • Filserver

  • Brandvägg

Fysiska:

  • Microsoft SQL Server

  • Apache Tomcat

  • Windows File Server

  • Big IP Brandvägg



  • HAN-ADM-012



Noder är aktiva element som exekverar and bearbetar artefakter vilka i sig är representationen av komponenter och dataobjekt.

Noder används exempelvis för att modellera applikationsservrar, databasservrar eller klienter.

En nod är ofta en kombination av en eller flera maskinvaror  och systemprogramvaror som ger en komplett miljö för exekvering. 

En nod kan bestå av andra noder.

Man kan  använda ett attribut för att skilja på logisk och fysisk nod/teknikkomponent.

Det är möjligt att modellera olika versioner av noder, exempelvis MS SQL Server 2012 och 2017. I sådant fall rekommenderas att modellera dessa som två olika element. Detta gör det möjligt att beskriva utveckling över tid.

Noder realiseras av utrustning och systemprogramvara och de realiserar teknikfunktioner, tekniska gränssnitt och tekniska tjänster. De använder sig av kommunikationsvägar  som är kopplade mot nätverk. 





Archimate: 

Node: A node represents a computational or physical resource that hosts, manipulates, or interacts with other computational or physical resources.

TOGAF: 

Logical Technology Component: An encapsulation of technology infrastructure that is independent of a particular product. (A class of technology product; for example, supply chain management software as part of an Enterprise Resource Planning (ERP) suite, or a Commercial Off-The-Shelf (COTS) purchase request processing enterprise service.)

TOGAF:

Physical technology component: A specific technology infrastructure product or technology infrastructure product instance. For example, a particular product version of a Commercial Off-The-Shelf (COTS) solution, or a specific brand and version of server.

UAF:

Skiljer inte på Application och Technology components på det sätt som TOGAF gör. Resource Artifacts och Resource Performers används för båda. ActualResource används för faktiska (fysiska) resurser.



utrustning

Specialisering av nod som representerar en fysisk resurs vilken har kapacitet att göra beräkningar.



  • Server

  • Router

  • PC

  • Smartphone

  • Smart givare


  • Dell PowerEdge R730



Utrustning används för att modellera maskinvara såsom stordatorer, PC, nätverkskomponenter med mera.

En utrustning är ofta del av en nod tillsammans med en eller flera programvaror.

En utrustning kan bestå av andra utrustningar.

Utrustning har ofta relationer till kommunikationsnätverk och använder dessa. Utrustning realiserar noder.

Systemprogramvara knyts i regel till utrustning eftersom den exekveras på en utrustning. 













systemprogramvara 





Programvara som tillgängliggör eller bidrar till en miljö för lagring, beräkning och användning av programvaran eller av den data som programvaran hanterar.

Operativsystem
Applikationsserver
Databas-server
Integrationsplattform

Systemprogramvara är en specialisering av en nod som används för att modellera den programvarumiljö som applikationer exekverar i.

Ofta kombineras systemprogramvara med en utrustning för att formera en komplett nod.

Systemprogramvara kan knytas till annan systemprogramvara för att beskriva lager av programvara som exekverar ovanpå varandra. 

Systemprogramvara använder kommunikationsnätverk. De används av utrustning och realiserar noder.





kommunikationsnätverk



Struktur som innehåller utrustningar och skapar kommunikationsvägar.



Nätverk och subnät

Ett kommunikationsnätverk knyter samman två eller flera utrustningar och möjliggör dirigering och överföring av data inklusive databaserad kommunikation för exempelvis video och röstöverföring. I sin enklaste form är det en  länk mellan två utrustningar men det kan bestå av multipla länkar och associerad nätverksutrustning.

Kommunikationsnätverk realiserar en eller flera kommunikationsvägar. Det representerar den fysiska realiseringen av den logiska länken mellan två noder. De används av systemprogramvara.

Kommunikationsnätverk har egenskaper som exempelvis bandbredd och fördröjning,

Ett kommunikationsnätverk kan bestå av subnät. Det kan aggregera enheter och systemprogramvara för att exempelvis modellera routrar, switchar och brandväggar som en del av nätverksinfrastrukturen.







kommunikationsväg 



Länk som möjliggör informationsutväxling mellan två eller flera noder.



Länk mellan två noder.

I mindre avancerade fall modelleras en kommunikationsväg med hjälp av en relation mellan noder som beskriver hur noderna använder sig av varandra. Om behov finns att göra mera avancerad modeller kan elementtypen kommunikationsväg användas. Exempelvis om det är fler än två noder som använder samma kommunikationsväg.

En kommunikationsväg binder samman två eller flera noder.

Elementet används för att modellera den logiska kommunikationen och relationen mellan noder. Den realiseras av ett eller flera kommunikationsnätverk vilka representerar de fysiska kommunikationslänkarna. 

En kommunikationsväg kan aggregera noder. Egenskaper, som exempelvis bandbredd och fördröjning, är vanligtvis aggregerade från underliggande nätverk.





teknisk tjänst 



Teknisk mekanism för att möjliggöra tillgång till en eller flera noder genom ett bestämt gränssnitt.



  • Filöverföring

  • Meddelandehantering

  • Lagring

  • Katalogtjänst

  • DNS

  • Central inloggningstjänst

En distinkt (funktionell) tjänst som erbjuds via ett eller flera tekniskt gränssnitt.

En teknisk tjänst uppvisar funktionaliteten hos en nod.

En nod exponerar en teknisk tjänst genom att knyta tekniska gränssnitt till sig.

En teknisk tjänst kan bestå av andra tekniska tjänster.

En teknisk tjänst realiseras av en nod och/eller en teknikfunktion samt har tekniskt gränssnitt.







teknikfunktion

Tekniska beteenden hos en nod.



  • Datalagring

  • Kryptering

  • Sessionshantering

  • Användarhantering

  • Certifikathantering

  • Autentisering.



En teknikfunktion beskriver en nods interna beteende. För användaren av en teknikfunktion är detta beteende osynligt. Om dess beteende exponeras externt sker detta alltid genom en eller flera tekniska tjänster.

Funktionen kan vara på valfri nivå utifrån det sammanhang som den förekommer i.

En teknikfunktion kan realisera en teknisk tjänst.Tekniska tjänster som hör till en viss teknikfunktion kan användas av andra teknikfunktioner.

En nod kan kopplas till en teknikfunktion vilket innebär att noden realiserar och utför teknikfunktionen.







tekniskt gränssnitt 



Representerar en åtkomstpunkt för en teknisk tjänst som erbjuds av en nod.

Typer av interface/protokoll:

  • (S)FTP

  • DHCP

  • LDAP

instanser:

Det tekniska gränssnittet exponerar en teknisk tjänst för sin omgivning. Samma tjänst kan uppvisas genom andra tekniska gränssnitt. 

Ett teknisk gränssnitt kan vara del av en nod vilket innebär att gränssnittet realiseras och erbjuds av noden och kan nyttjas av andra noder.

Det tekniska gränssnittet specificerar hur andra noder kan få åtkomst till en nods teknisk tjänst.







Relationer inom lagret



Källelement

Relation

Målelement

Källa

Källelement

Relation

Målelement

Källa

applikationstjänst

del av

applikationstjänst

Archimate (aggregates/composed of)

applikationstjänst

beror av

applikationstjänst

Archimate (aggregates/composed of)

applikationstjänst

har

applikationsgränssnitt

Archimate (composition)

applikationstjänst

realiserar

applikationsfunktion

Archimate (realization)

applikationstjänst

realiseras av

applikation

Archimate (serves)

applikationsgränssnitt

tillhör

applikationstjänst

Archimate (assigned to)

applikationsgränssnitt

realiseras av

applikation

Archimate (serves)

applikationsfunktion

del av

applikationsfunktion

Archimate (aggregates/composed of)

applikationsfunktion

realiseras av

applikation

Archimate (serves)

applikation

del av

applikation

Archimate (aggregates/composed of)

applikation

realiserar

applikationstjänst

Archimate (realizes)

applikation

realiserar

applikationsfunktion

Archimate (realizes)

applikation

realiserar

applikationsgränssnitt

Archimate (realizes)

applikation

exekverar på

nod

Archimate (realises, serves)

nod

exekverar

applikation

Archimate (realises, serves)

nod

del av

nod

Archimate (aggregates/composed of)

nod

realiserar

teknikfunktion

Archimate (realizes)

nod

realiserar

teknisk tjänst

Archimate (realizes)

nod

realiserar

tekniskt gränssnitt

Archimate (realizes)

nod

använder

kommunikationsväg

Archimate (flow)

nod

realiseras av

systemprogramvara

Archimate (serves)

nod

realiseras av

utrustning

Archimate (serves)

teknikfunktion

realiseras av

nod

Archimate (serves)

teknikfunktion

del av

teknikfunktion

Archimate (aggregates/composed of)

teknikfunktion

realiserar

teknisk tjänst

Archimate (realizes)

teknisk tjänst

realiseras av

teknikfunktion

Archimate (serves)

teknisk tjänst

del av

teknisk tjänst

Archimate (aggregates/composed of)

teknisk tjänst

beror av

teknisk tjänst

Archimate (triggers)

teknisk tjänst

realiseras av

nod

Archimate (serves)

teknisk tjänst

har

tekniskt gränssnitt

Archimate (assigned to)

tekniskt gränssnitt

tillhör

teknisk tjänst

Archimate (serves)

tekniskt gränssnitt

realiseras av

nod

Archimate (serves)

kommunikationsväg

del av

kommunikationsväg

Archimate (aggregates/composed of)

kommunikationsväg

används av

nod

Archimate (flow)

kommunikationsväg

realiseras av

kommunikationsnätverk

Archimate (serves)

kommunikationsnätverk

realiserar

kommunikationsväg

Archimate (realizes)

kommunikationsnätverk

del av

kommunikationsnätverk

Archimate (aggregates/composed of)

kommunikationsnätverk

används av

systemprogramvara

Archimate (triggers)

kommunikationsnätverk

används av

utrustning

Archimate (triggers)

utrustning

använder

kommunikationsnätverk

Archimate (triggers)

utrustning

del av

utrustning

Archimate (aggregates/composed of)

utrustning

används av

systemprogramvara

Archimate (triggers)

utrustning

realiserar

nod

Archimate (realizes)

systemprogramvara

realiserar

nod

Archimate (Realizes)

systemprogramvara

del av

systemprogramvara

Archimate (aggregates/composed of)

systemprogramvara

används av

utrustning

Archimate (triggers)

systemprogramvara

använder

kommunikationsnätverk

Archimate (triggers)





Relationer till andra lager

Källelement

Relation

Målelement

Källa

Källelement

Relation

Målelement

Källa

applikation

möjliggör

förmåga

Archimate (Association)

förmåga

möjliggörs av

applikation

Archimate (Association)

applikation

använder

datalager

TOGAF (Logical Application Component uses Logical Data Component)

datalager

används av

applikation

TOGAF (Logical Data Component Used By Logical Application Component)

applikation

använder

dataentitet

Archimate (Access, Association)

dataentitet

används av

applikation

Archimate (Access, Association)

applikationstjänst

använder

dataentitet

TOGAF (Information System Service Uses Data Entity)

Archimate (Access, Association)

dataentitet

används av

applikationstjänst

TOGAF (Data Entity Used By Information System Service)

Archimate (Access, Association)

applikationstjänst

automatiserar

verksamhetstjänst

TOGAF (Information System Service Automates some or all of Business Service)

Archimate (Serve, Trigger, Flow, Association)

verksamhetstjänst

automatiseras av

applikationstjänst

TOGAF (Information System Service Automates some or all of Business Service)

Archimate (Serve, Trigger, Flow, Association)

applikationstjänst

stödjer

process

Archimate (Serve, Trigger, Flow, Association)

process

stöds av

applikationstjänst

Archimate (Serve, Trigger, Flow, Association)

applikationstjänst

möjliggör

förmåga

Archimate (Association)

förmåga

möjliggörs av

applikationstjänst

Archimate (Association)

nod

möjliggör

förmåga

Archimate (Association)

förmåga

möjliggörs av

nod

Archimate (Association)

teknisk tjänst

möjliggör

förmåga

Archimate (Association)

förmåga

möjliggörs av

teknisk tjänst

Archimate (Association)

plats

innehåller

nod

Archimate (Composition)

nod

finns på

plats

Archimate (Association)

Koppling till Archimate

Bifogat finns en excelmatris som beskriver alla relationer som är tillåtna enligt Archimate standarden och hur dessa mappar till TOGAF. Det ingår även kommentarer som visar vilka vi valt att inkludera i ramverket.

Förslag till vidareutveckling

Här dokumenteras förslag till kommande versioner av metamodellen.

  • Service extension som beskriver hur man modellerar metoder, funktioner, meddelanden etc för tjänster. Utgående från Vägledning för Digital Samverkan, OASIS SOA Reference Model etc.

  • Metamodellen beskriver endast statiska samband, inte dynamiska. Utökar man metamodellen med dynamiska relationer, exempelvis "använder", "anropar" och liknande kan den användas för att beskriva dynamiska samband, förslagsvis i form av sekvensdiagram och aktivitetsdiagram. Dessa dynamiska relationstyper skulle även kunna användas i statiska diagram för att översiktligt beskriva att en applikation använder en annan applikation.