Blogg

Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på Twitter

Callista medarbetare Johan Zetterström

Koppling av tillgänglighetskrav mot verksamhetens processer

// Johan Zetterström

För att säkra att rätt tillgänglighetskrav ställs på olika funktioner inom ett system behöver vi titta på krav utifrån de verksamhetsprocesser som nyttjar funktionerna.

På Cadec 2024 höll jag en presentation om design av system med höga krav på tillgänglighet i en distribuerad arkitektur. Presentationen fokuserade på hantering av beroenden som, om de inte hanteras korrekt, riskerar att påverka systemets tillgänglighet negativt.

Typiskt handlar dessa beroenden om tjänster som erbjuder funktionalitet (t.ex. utför en beräkning) via synkrona gränssnitt. Genom att använda resilience-mekanismer kan vi säkra att vårt system på bästa sätt hanterar problem med dessa tjänsters tillgänglighet, genom att t.ex. förhindra att användare behöver vänta på svar från en tjänst som systemet har konstaterat inte är tillgänglig. Men den påverkan en tjänsts frånfälle får på vårt system beror också på huruvida vårt system kan fungera utan tillgång till den funktionalitet som tjänsten tillhandahåller. Kan den process som användaren arbetar i slutföras, eller måste processen avbrytas?

I presentationen nämnde jag behovet av att utgå från verksamhetens processer för att hitta tillgänglighetskraven, och jag tänkte här försöka utveckla resonemanget.

Ett system kan stödja flera verksamhetsprocesser, och dessa processer kan vara av olika karaktär. I min kollega Oves blogg om arkitekturella behovsdomäner beskrivs olika behov inom operativa, taktiska och strategiska domäner. Denna klassificering kan förstås överföras på verksamhetsprocesser, som logiskt relaterar till en behovsdomän. (För enkelhetens skull beskriver vi här relationen som 1:1, men olika delar i en större process kan förstås vara relaterade till olika behovsdomäner.)

Operativa processer är de dagliga värdeskapande processer som verksamheten utför, medan en taktisk process ofta är av mer administrativ art. En process inom den senare kan ha lägre tillgänglighetskrav eftersom den typiskt enbart utförs under kontorstid, och skulle det inte gå att genomföra den vid ett givet tillfälle är det sällan en katastrof för verksamheten. Högre tillgänglighetskrav behöver således generellt sett ställas på de systemfunktioner som nyttjas inom en operativ process, jämfört med systemfunktioner som nyttjas i en taktisk process. Dessa krav måste i sin tur överföras på eventuella tjänster (beroenden) som en systemfunktion nyttjar.

Som nämndes tidigare kan en systemfunktion vara obligatorisk eller valfri i en verksamhetsprocess, men det är också möjligt att en och samma systemfunktion används inom flera verksamhetsprocesser, och att denna funktion är obligatorisk i en process samtidigt som den är valfri i en annan process. Vi behöver därför göra en mappning mellan verksamhetens processer och krav på tillgång till information eller systemfunktionalitet, och i förlängningen koppla det till krav på systemberoenden. Om vi finner att kraven varierar utifrån process måste vi rent konkret designa systemet så att det är medvetet om vilken verksamhetsprocess som utförs, och har förmågan att hantera en otillgänglig tjänst olika beroende på aktuell processkontext.

Figur1

Ovanstående bild visualiserar denna mappning. Bilden visar hur en systemfunktion är definierad som valfri i den operativa processen, men obligatorisk i den taktiska processen. Ett exempel på en sådan funktion skulle kunna vara visning av en kunds köphistorik. I en operativ säljprocess kan tillgången till denna information förbättra processen, men processen kan utföras utan tillgång till informationen, och det är förstås inte heller givet att det finns någon historik. En taktisk process skulle kunna vara en analys av försäljningshistorik på kundnivå, där tillgång till samma systemfunktion blir kritisk för att processen ska kunna genomföras.

Låt oss anta att den tjänst som utgör beroendet för den aktuella systemfunktionen har ett SLA som inte uppfyller de tillgänglighetskrav vi har utifrån vår operativa process. Men eftersom funktionen är valfri kan vi designa systemet så att processen kan genomföras även om funktionen vid ett visst tillfälle inte skulle vara tillgänglig, och därmed leverera tillgänglighet på processnivå i enlighet med vår kravställning. I den taktiska processen är systemfunktionen obligatorisk, och om den inte är tillgänglig måste processen avbrytas. Men eftersom processen i sig har lägre tillgänglighetskrav är detta acceptabelt.

Genom att utföra denna strukturerade analys av tillgänglighetskrav utifrån verksamhetsprocess kan vi säkra att korrekta tillgänglighetskrav identifieras, och att kontextberoende felhantering implementeras vid behov. I slutändan ger det oss förutsättningar att skapa ett system med god feltolerans och hög tillgänglighet.

Tack för att du läser Callistas blogg.
Hjälp oss att nå ut med information genom att dela nyheter och artiklar i ditt nätverk.

Kommentarer