Chapter 7 Flashcards
(23 cards)
Vad är Discoverability-
att kunna hitta den tjänst man behöver. Om man inte hittar tjänsten och dess beskrivning går den inte att använda. När tjänsten är fördigbyggd och kan användas läggs den på virtuella maskiner.
Vad är Service inventory?
(en samling av tjänster)
Vad är Service registry?
beskrivning av tjänsterna som finns)
Composability & Reusability
återanvända tjänster och designa så att de kan användas tillsammans (dock utan överlappning).
Vem är Service inventory och Service registry viktigt för?
görs tillgängliga för kunden.
Autonomy-
att bygga tjänster som är fristående och oberoende av varandra. Detta kan göras på tre olika sätt-
Shared Database Management System
tjänsterna ligger på olika virtuella maskiner som är oberoende av varandra men som delar på samma databas. Andra tjänster påverkas inte om en maskin går ner, men alla tjänster påverkas om någonting händer med datsabasen.
Shared Server
tjänsterna delar server man inte databas, vilket gör att andra tjänster inte påverkas om en databas går sönder.
Shared Nothing
alla tjänster har helt separerade databaser och maskiner. Detta är den bästa metoden för hög autonomi. I verkligheten kan det vara svårt att uppnå så hög autonomi eftersom det är svårt att komma år data från olika databaser och det ta längre tid att söka igenom.
Hur balaseras Shared Database Management System
Shared Server
Shared Nothing i praktiken?
I praktiken brukar man försöka att hitta en balans balans mellan dessa varianter.
Abstraction
gömma information som inte är nödvändig för att använda tjänsten (ta bort detaljer och fokusera på helheten)
funktionsdelen
kan man abstrahera bort operationer eller metoder för att klienterna inte ska behöva anropa dem i onödan
På programnivå
grupperar man metoder så att man kan anropa alla samtidigt.
På den tekniska delen
abstraherar man bort vilken teknik man använder för att t.ex. inte avslöja vilket programmeringsspråk som används.
Loose coupling-
att ha lös koppling/beroende mellan tjänster.
- tjänsterna ska inte vara beroende av fysisk hårdvara
- meddelanden ska vara asynkrona så att man inte låser sig i väntan på svar
- följa standardprotokoll, XML, http
- abstrahera orelevant information/funktionalitet.
Statelessness/tillståndslös
inte belasta minnesutrymme på tjänsten. Varje request behandlas som att det är orelaterat till alla tidigare request så att kommunikation består av oberoende par av begäran/request och svar/response. I statelessnedd behöver inte servern bibehålla information från sessioner eller statusar under en period med flera request.
Service contract
de avtal och överenskommelser som konsumenter och leverantörer godkänt när man använder en tjänst. Man måste ha rätt teknik för att koppla upp sig till dessa tjänster och man måste följa standarder (WDSL, XML).
Web Service Description Language (WDSL)-
beskriver de metoder eller operationer som en tjänst har.
XML-schema
beskriver informationsstrukturer som tjänsten använder
WS-policy
regler som talar om vilken ordning metoder ska anropas i
Service Level Agreement (SLA)-
affärsmässig beskrivning av vad som händer när tjänsten går ner m.m.
Design-by-contract (DbC)
hur mjukvaruelement i ett system samarbetar med varandra enligt principen av ömsesidiga “obligations and benefits” (skyldigheter och förmåner).
Leverantören ska leverena en viss produkt (skyldighet) och är i sin tur berättigad till en avgift betalad av klienten (förmån).
Klienten måste betala en avgift (skyldighet) och är berättigad till produkten (förmån).
Båda parter måste uppfylla vissa skyldigheter (lagar och regler) som gäller alla kontrakt.
När man talar om mjukvarumoduler (t.ex. komponenter & tjänster) kan
skyldigheter ses som pre-conditions och förmåner som post-conditions för användandet av tjänster.