Metamodell Teknik-OLD
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 |
---|---|---|---|---|
Applikationsrelaterade element | ||||
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:
Fysiska:
| 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. |
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. | |
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 Nationell Patientöversikt Ärendehantering | 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: Service: A 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. |
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 | |
Teknikrelaterade element | ||||
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:
Fysiska:
| 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. |
Specialisering av nod som representerar en fysisk resurs vilken har kapacitet att göra beräkningar. |
| 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. | ||
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 | 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. | ||
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. | ||
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 mekanism för att möjliggöra tillgång till en eller flera noder genom ett bestämt gränssnitt. |
| 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. | ||
Tekniska beteenden hos en nod. |
| 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. | ||
Representerar en åtkomstpunkt för en teknisk tjänst som erbjuds av en nod. | Typer av interface/protokoll:
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 |
---|---|---|---|
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 |
---|---|---|---|
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.