Principen om tjänsteautonomi

Tjänsteautonomi är en designprincip som tillämpas inom det tjänsteorienterade designparadigmet , för att tillhandahålla tjänster med förbättrat oberoende från sina exekveringsmiljöer. Detta resulterar i större tillförlitlighet, eftersom tjänster kan fungera med mindre beroende av resurser som det finns liten eller ingen kontroll över.

Syfte

Det serviceorienterade designparadigmet betonar återanvändning av tjänster enligt principen om återanvändningsdesign för tjänster . Under detta paradigm med en kraftigt återanvänd tjänst blir tillförlitlighet avgörande för att säkerställa tjänstens livslängd. I sin tur beror tjänstens tillförlitlighet på tjänstens operativa kontroll av tjänstelogik och underliggande implementeringsresurser för att minska beroendet av externa resurser som den har liten eller ingen kontroll över, såsom delad tjänstelogik eller en delad databas, som kanske inte är tillgänglig när det krävs av tjänsten.

Traditionell komponentbaserad mjukvaruutveckling möter också samma autonomikrav, tillhandahållandet av autonomi och tillförlitlighet, under sådana omständigheter, överlåts till den faktiska körtidsmiljön, t.ex. genom att tillhandahålla fail-over-stöd eller genom att distribuera en lösning på dedikerade servrar. Inom tjänsteorientering är dock insatserna ännu högre då en tjänsteorienterad lösning kan vara sammansatt av tjänster som finns utanför organisationsgränsen. Så i det här fallet är det utformningen av själva tjänsten som spelar roll och tjänsten måste utformas på ett sätt så att den utövar maximal kontroll över hur den uppfyller sin funktionalitet. Tjänsteautonomiprincipen försöker ge riktlinjer för att utforma autonoma tjänster så att de resulterande tjänsterna blir mer förutsägbara och tillförlitliga.

Ansökan

Tillämpningen av tjänstautonomi involverar två typer av autonomi som möjliggör en ökning av tjänstens totala autonomi, designtidsautonomi och körtidsautonomi.

Design-time autonomi

Design-time autonomi hänvisar till det oberoende med vilket tjänsterna skulle kunna utvecklas utan att påverka deras tjänstekonsumenter. Denna typ av autonomi krävs eftersom tjänstens underliggande äldre resurser kan behöva en översyn eller tjänstens logik kan behöva omstruktureras för att göra den mer effektiv.

Tillämpningen av tjänstens lösa koppling och tjänsteabstraktionsprinciperna hjälper till att uppnå designtidsautonomi eftersom deras tillämpning resulterar i tjänster vars kontrakt är skyddade från deras logik och implementering och därför kan tjänsterna designas om utan att påverka deras tjänstekonsumenter.

Körtidsautonomi

Körtidsautonomi hänvisar till omfattningen av den kontroll som en tjänst har över hur dess lösningslogik bearbetas av körtidsmiljön. Ju mer kontroll en tjänst har över sin körtidsmiljö, desto mer förutsägbar är dess beteende. Körtidsautonomi uppnås genom att tillhandahålla dedikerade bearbetningsresurser till tjänsten. Till exempel, om tjänstelogiken utför minnesintensiva uppgifter kan tjänsten distribueras till en server med reserverade eller bevarade resurser. På liknande sätt, genom att tillhandahålla lokalt cachade kopior av data, där så är tillämpligt, kan tjänstens beroende av en delad fjärrdatabas minskas. Som ett resultat ökar tjänstens övergripande autonomi...

Det finns ett direkt samband mellan körtidsautonomi och designtidsautonomi. Genom att öka designtidens autonomi ökar automatiskt möjligheten att utveckla tjänstens implementeringsmiljö.

Tjänstetyper

Även om det alltid är önskvärt att öka tjänsteautonomi maximalt är det inte alltid möjligt att designa varje tjänst med maximal designtid och körtidsautonomi. Som ett resultat måste tjänsterna prioriteras så att deras autonomi kan hanteras i enlighet med deras värde för verksamheten. Detta kan göras genom att titta på tjänstens funktionella sammanhang. Tjänster vars funktionella sammanhang är oberoende av en viss affärsprocess, t.ex. enhets- och allmännyttiga tjänster, är goda kandidater för att öka sin autonomi. Detta beror på att de erbjuder funktionalitet som är av intresse för olika typer av konsumenter. Å andra sidan är affärsprocessspecifika tjänster, t.ex. uppdragstjänster och orkestrerade uppdragstjänster, mindre återanvändbara och är beroende av den individuella autonomin hos deras sammansatta tjänster.

Överväganden

Tillhandahållandet av tjänsteautonomi kan kräva ytterligare infrastruktur och måste tillämpas efter behov, prioriterad basis. Vid vissa tillfällen kan tjänster behöva isoleras och distribueras i en skräddarsydd och dedikerad miljö, med tonvikt på att utforma det korrekta funktionella sammanhanget eftersom det sannolikt kommer att vara svårt att göra grundläggande förändringar av en sådan tjänst.

Självständigheten för tjänster som kapslar in äldre resurser kan vara svår att förutse och öka. Detta kan kräva ytterligare analys av en del av allmännyttiga tjänster, eftersom graden av autonomi beror på den funktionalitet som tillhandahålls av tjänsten.