Vad är servicearkitektur?

Servicearkitektur är en metod för programvarudesign som löser ett problem med en serie autonoma tjänster.

Analogi

En rimlig analogi för servicearkitektur är en organisation som en bank. Banken delar upp arbetet i en mängd olika tjänster som kundtjänst, IT-tjänster och personalhanteringstjänster. Varje tjänst är oberoende och kan distribueras till olika kontor. Kunderna för varje tjänst erbjuds ett kontrakt som anger vad som kan förväntas av tjänsten. Till exempel kan personalhantering hjälpa ett team att rekrytera ny personal med ett formulär som teamet fyller i för att initiera processen. Företagets servicestruktur bryter ner det komplexa problemet med att driva en bank i små hanteringsfunktioner.

Tjänster

Tjänster är enheter av programvara som utföra en funktion. De används för att dela upp komplexa problem i en serie enklare problem. Tjänsterna är också utformade för att distribueras separat. Detta är en stor fördel eftersom det låter dig bygga mycket skalbara och elastiska system.

Resilience

Resilience är en term för programvara som är tillförlitlig under verkliga förhållanden som innehåller olika påkänningar och misslyckanden. Servicearkitektur är en användbar teknik för att bygga system som fortsätter att fungera när saker misslyckas. Detta görs genom att arkitekturerar tjänster för att vara autonoma så att de inte är beroende av varandra. Tjänster kan sedan distribueras till molninfrastruktur och skalas upp och ner efter behov. När en instans misslyckas är tjänsterna tillräckligt smarta för att upptäcka detta och automatiskt hitta en instans som fungerar.

Tjänster jämfört med komponenter

Tjänster och komponenter är två olika sätt att dela upp arbete i hanterbara och återanvändbara bitar. Skillnaden är att tjänster kan distribueras på egen hand. Komponenter distribueras med något annat och är därför inte autonoma. Tjänster kan konstrueras av komponenter. På samma sätt kan komponenter använda tjänster.

Service Oriented Architecture (SOA)

Serviceorienterad arkitektur var en tidig term för servicearkitektur som antogs och marknadsfördes av många stora IT-leverantörer som använde det för att sälja SOA-plattformar och mellanprogram. Detta var en stor modetyp för informationsteknik runt 2005 som såg många top-down-implementeringar som innebar att man köpte en massa programvara och sedan redesignade befintliga system för att passa in i ett SOA-paradigm. Mycket av denna aktivitet missade helt poängen med SOA och projektfel var vanliga. Förvirring regnade när IT-kunskaper antingen främjade eller kritiserade SOA, ofta genom att göra saker så komplexa klingande som möjligt. som omgav SOA på toppen av dess popularitet hindrade inte skickliga arkitekter från att använda sina kärnidéer på effektiva och lätta sätt som gav pålitliga, skalbara, hanterbara och kostnadseffektiva system och applikationer. Detta utvecklades till en ny kultur av programvarudesign som kallas mikrotjänster som är organiserad kring en uppsättning principer för tjänstedesign.

Exempel

Ett telekomföretag utformar ett faktureringssystem som en serie separat distribuerbara tjänster. Varje tjänst ses som en separat produkt som kan utvecklas, underhållas och hanteras av olika människor. Tjänster distribueras till moln och kopplas löst. När en tjänstinstans misslyckas växlar de andra tjänsterna automatiskt till en instans som fortfarande fungerar. Även om problemet med telekomfakturering är extremt komplicerat är ingen enskild tjänst i arkitekturen komplicerad så att var och en är relativt billig att utveckla och hantera. Tjänsterna är i huvudsak självorganiserande. Var och en publicerar ett API till de andra tjänsterna. Alla vet vad de behöver från de andra tjänsterna och är tillräckligt smarta för att röra sig kring misslyckade instanser för att hitta tjänster som svarar. Med andra ord har arkitekturen ingen central styrenhet eller mellanvara.

Översikt: Servicearkitektur
Typ
Definition En metod för design av programvara som löser ett problem med en serie autonoma tjänster.
Relaterade begrepp

Write a Comment

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *