Tentamen, Distribuerade System/Programvaruarkitektur 2001-08-24



Relevanta dokument
Distribuerade affärssystem

Tentamen på kursen Distribuerade system. Lycka till!

TENTAMEN FÖR KURS DAV C03, DATAKOMMUNIKATION II 5p Sid 1 av 6 Torsdag kl

Tentamen i Grundläggande programmering STS, åk

Tentamen för DD1370 Databasteknik och informationssystem

Skriftlig tentamen i kursen TDTS04 Datornät och distribuerade system kl. 8 12

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Systemutvecklare SU14, Malmö

Försättsblad Tentamen

Testtentamen i kursen TDTS04 Datornät och distribuerade system vt 2009

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY

IT för personligt arbete F2

Tentamen i Grundläggande programmering STS, åk 1 fredag

Tentamen i Databasteknik

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Tentamen i Grundläggande programmering STS, åk 1 lördag

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Viktigt! Glöm inte att skriva tentamenskod på alla blad du lämnar in.

Tentamen Datastrukturer (DAT037)

An English version of the questions is found at the back of each page.

Tentamen Datastrukturer (DAT036)

TENTAMEN. TDDD12 Databasteknik TDDD46 Databasteknik. 16 augusti 2010, kl 14-18

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det

Skriftlig tentamen i kursen TDTS0604 och TDTS43 Datornät och distribuerade system kl. 8 12

Tentamen *:58/ID100V Programmering i C Exempel 3

Grundläggande datavetenskap, 4p

Tentamen i Programmeringsteknik I, ES,

TDDI TDDI22 Tentaregler

TDDA94 LINGVISTIK, 3 poäng tisdag 19 december 2000

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

F5 Exchange Elektronikcentrum i Svängsta Utbildning AB

Dugga Datastrukturer (DAT036)

Vad är molnet? Vad är NAV i molnet? Vem passar NAV i molnet för? Fördelar med NAV i molnet Kom igång snabbt...

TDIU20 (exempel) TDIU20 Tentaregler

Repetition DK2 Middleware, P2P, Multimediatransport. Stefan Alfredsson 18 Mars 2005

Tentamen I Arkitektur och design av globala applikationer

Försättsblad till skriftlig tentamen vid Linköpings Universitet

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. HT-15 Datum: Tid: kl

Försättsblad Tentamen

TNSL05, Optimering, Modellering och Planering 6 hp, HT2-2011

Tentamen på kurs Makroekonomi delkurs 2, 7,5 ECTS poäng, 1NA821

OBS! Vi har nya rutiner.

TDDI22 (exempel) TDDI22 Tentaregler

LABORATIONSRAPPORT Operativsystem 1 Laboration 1, Ghost, pingpong och Windows 2003 installation

Totalt antal poäng på tentamen: 50 För att få respektive betyg krävs: U<20, 3>=20, 4>=30, 5>=40

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215/TIG091

Tentamen i. Programmering i språket C

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

I Besöker skrivningen Åke Tvrbern [8] Ja kl. ca 9 och 11

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

Försättsblad Tentamen (Används även till tentamenslådan.) Måste alltid lämnas in. OBS! Eventuella lösblad måste alltid fästas ihop med tentamen.

ELLER (fyll bara i om du saknar tentamenskod): Datum: 32 maj Bordsnummer: Kontrollera att du fått rätt tentamensuppgifter

Programkonstruktion. Tentamen,

Sites/GC/FSMO. EC Utbildning AB

Enterprise Java Beans Assignment 1

Tentamen Datastrukturer (DAT036)

Inga hjälpmedel är tillåtna

Tentamen i Grundläggande programmering STS, åk

Kompilatorer och interpretatorer

Tentamen på kurs Nationalekonomi (1-20 poäng), delkurs 1, Mikroekonomisk teori med tillämpningar, 7 poäng, måndagen den 15 augusti 2005, kl 9-14.

OBS! Vi har nya rutiner.

Försättsblad Tentamen

Tentamen i Realtidsprogrammering

Tentamen i: Affärssystem och tjänsteorienterad arkitektur

Kursnamn: Vetenskapsteori och grundläggande forskningsmetod

TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:00-19:00

Objektorienterad programmering, Java, 5p TDBA63

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

Säkerhet. Säker kommunikation - Nivå. Secure . Alice wants to send secret message, m, to Bob.

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

IEK 415 Industriell ekonomi

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00

Tentamen Datastrukturer (DAT036)

Tentamen i Programmering grundkurs och Programmering C

Tentamen för DD1370 Databasteknik och informationssystem

Skriv tydligt. Besvara inte frågor med lösryckta ord, utan sammanhängande och tydligt. Visa även dina beräkningar.

Tentamen i: Affärssystem och tjänsteorienterad arkitektur

Datalogi, grundkurs 1

Försättsblad tentamen Fakulteten för hälsa och samhälle

Tentamen i DD2387 Programsystemkonstruktion med C++

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Administratör IT-system Kursplan

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

F2 Exchange EC Utbildning AB

Operativsystem (IS1350) :00-12:00

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Maximalt antal poäng för hela skrivningen är28 poäng. För Godkänt krävs minst 17 poäng. För Väl Godkänt krävs minst 22,5 poäng.

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Laboration 1 - Grunderna för OOP i Java

Tentamen Datastrukturer, DAT037 (DAT036)

TDDI TDDI22 Tentaregler

Identifikationsnummer:... Tentamen: Vetenskapsteori (2PS010), Psykologprogrammet, Termin 5 Datum:

OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamensinstruktioner. När Du löser uppgifterna

Transkript:

Tentamen, Distribuerade System/Programvaruarkitektur 2001-08-24 FÖRSÄTTSBLAD Inlämnas ifyllt tillsammans med tentan. Skriv namn på samtliga blad. Ange nedan vilka uppgifter du besvarat. Uppgift Besvarad Max. poäng Din poäng Del A 4 B 1 4 B 2 6 B 3 6 B 4 6 B 5 6 B 6 8 SUMMA: 40 Kryssa i kurs Distribuerade System Programvaruarkitektur Kryss NAMN :....................................................... Pers.no. :..................................................... Övrig info. (t.ex. om du tentar om efter att ha gått kursen ett tidigare år eller vid ett annat program än ovanstående) :........................................

Ansvarig lärare: Mats Daniels. Tentamen, Distribuerade System/Programvaruarkitektur 2001-08-24 Skrivningstid: 09 14. Tillåtna hjälpmedel: Papper, penna, radergummi, kalkylator. Maximalt antal poäng: 40. Gränsen för godkänt kommer inte att hamna över 25. NB! The exam questions are available in both Swedish and English. You may answer in either Swedish or English. OBS! Tentafrågorna finns på både svenska och engelska. Du kan svara på antingen svenska eller engelska. 1 (4 p) a) Ge tre anledningar till varför man kan vilja föredra ett distribuerat system framför ett centraliserat system. b) Ange tre nackdelar med ett distribuerat system jämfört med ett centraliserat system. 2 (4 p) a) Beskriv en distribuerad algoritm som ger ömsesidigt uteslutande, och som fungerar även om enstaka noder går ner. b) Ange några tillämpningar där en sådan algoritm är användbar eller t.o.m. nödvändig. 3 (6 p) Request-response-protokoll används ofta för kommunikationen i ett distribuerat system. a) Vad menas med request-response-protokoll? b) I request-response-protokoll kan såväl klient som server antingen blockera medan ett anrop pågår eller inte blockera. Vilka för- och nackdelar finns med de olika alternativen (behandla klient och server separat)? c) Ett specialfall av request-response-protokoll är Remote Procedure Call (RPC). Beskriv vad som menas med Remote Procedure Call, och vilka de semantiska problemen är jämfört med lokala proceduranrop. 4 (6 p) Klocksynkronisering är viktigt i många distribuerade system. Ett fundamentalt problem är att man i ett löst kopplat system inte har en gemensam tidsreferens. a) Beskriv hur klocksynkronisering kan gå till i ett distribuerat system med extern klockreferens (masterklocka). b) Beskriv hur klocksynkronisering kan gå till i ett system utan extern klockreferens (masterklocka). Man bör undvika abrupta omställningar av systemtiden. c) Ange två typer av tillämpningar som inte tål abrupta tidsomställningar då tiden ställs om bakåt, och varför de inte tål det. d) Ange två typer av tillämpningar som inte tål abrupta tidsomställningar då tiden ställs om framåt, och varför de inte tål det. 5 (6 p) I exv. programsystemet ISIS finns två typer av atomär broadcast, ABCAST resp. CBCAST. Båda typerna försöker ordna broadcasts.

a) Varför vill man ha ordnade broadcasts? Beskriv minst två olika typer av tillämpningar där ordnade broadcasts är önskvärt eller t.o.m. nödvändigt. b) Vilka typer av garantier för ordningen får man med ABCAST respektive CB- CAST? c) Beskriv hur respektive typ av broadcast kan implementeras. 6 (6 p) Quorum-baserade protokoll används i distribuerade system för att kunna uppdatera distribuerade databaser även när inte alla noder kan nås. a) Beskriv hur Quorum-baserade protokoll fungerar. b) För bra prestanda bör det relativa förhållandet mellan läsningar och skrivningar påverka implementationen. Varför, och på vilket sätt bör implementationen påverkas? c) Quorum-system kan modifieras för att tillåta uppdatering även om inte ett tillräckligt antal noder kan nås för skrivning (Tanenbaum: voting with ghosts ). Beskriv hur detta kan gå till. 7 (8 p) Antag att du har ett distribuerat system, ursprungligen optimerat för kommunikation inom ett lokalt nät. Detta system skall nu utvidgas över flera lokala nät genom att sammankoppla dessa med ett långdistansnät (Wide Area Network, exempelvis Internet). Detta långdistansnät har liten bandbredd och lång fördröjning. Dessutom är felfrekvensen (sannolikheten för borttappade paket etc.) högre på långdistansnätet. Vilka speciella problem (d.v.s. vad kan gå fel och vad behöver ändras jämfört med det lokala fallet) medför denna nya situation för: a) kommunikation av typ RPC? b) ordning på händelser? c) uppdatering av distribuerat tillstånd ( databaser )? d) cachning och konsistens i ett distribuerat filsystem?

Tentamen, Distribuerade System DVP/MNP 2001-10-23 FÖRSÄTTSBLAD Inlämnas ifyllt tillsammans med tentan. Skriv namn på samtliga blad. Ange nedan vilka uppgifter du besvarat. Uppgift Besvarad Max. poäng Din poäng Del A 10 B 1 3 B 2 3 B 3 4 B 4 4 B 5 8 B 6 8 Del C 10 SUMMA: 50 NAMN :....................................................... Pers.no. :..................................................... Övrig info. (t.ex. om du tentar om efter att ha gått kursen ett tidigare år eller vid ett annat program än ovanstående) :........................................

Tentamen, Distribuerade System DVP/MNP 2001-10-23 Ansvarig lärare: Mats Björkman. Skrivningstid: 14 19. Tillåtna hjälpmedel: Papper, penna, radergummi, kalkylator (behövs inte). Denna tenta har tre delar. Del A består av 10 st 1-poängsuppgifter. Del B består av större uppgifter. Del C består av 5 st 2-poängsuppgifter på presentationerna. För godkänt på tentan krävs minst 25 poäng. Snälla, skriv tydligt! Jag kan inte ge poäng om jag inte kan tyda svaret... Del A Korta frågor - svara kortfattat A 1 (1 p) Förklara enkelt vad Amdahls Lag säger. Vilka implikationer har den på distribuerade system? A 2 (1 p) Varför är avsaknaden av gemensam klockreferens ett grundläggande problem i distribuerade system? A 3 (1 p) Vad menas med Ordning på händelser i distribuerade system, och varför är det viktigt att ha det? A 4 (1 p) Serialiserbarhet är ett vanligt krav på databastransaktioner. Varför? Vad innebär serialiserbarhet? A 5 (1 p) Ett alternativ till låsning i distribuerade databaser är optimistic concurrency control. Vad menas med det? A 6 (1 p) Vad menas med att en atomär broadcast är ordnad, och hur kan det åstadkomas? A 7 (1 p) I delat-minne-sammanhang, vilka för- och nackdelar har sekventiell konsistens jämfört med svag konsistens för tillämpningsprogrammeraren? A 8 (1 p) I ett system som tillåter lastbalansering/migrering måste det finnas en policy för vart objekt skall flyttas. Detta är mer angeläget i ett system med sändarinitierad flyttning än i system med mottagarinitierad flyttning. Varför? A 9 (1 p) Förklara varför man så gärna vill använda cachning för att öka prestanda i ett distribuerat filsystem. A 10 (1 p) Beskriv kortfattat de delar ett DCE-system består av.

Del B Längre frågor - svara uttömmande B 1 (3 p) a) Ange tre fördelar med distribuerade system jämfört med centraliserade system. b) Ange tre nackdelar med distribuerade system jämfört med centraliserade system. B 2 (3 p) I distribuerade system, liksom i andra system, talar vi om katastrofer, d.v.s. fel som vi väljer att inte hantera i systemet. Varför väljer vi bort att hantera vissa fel i systemet? Ange (minst) tre distinkta orsaker till detta. Ge exempel på fel inom respektive kategori. B 3 (4 p) Klocksynkronisering är viktigt i många distribuerade system. Ett fundamentalt problem är att man i ett löst kopplat system inte har en gemensam tidsreferens. a) Beskriv hur klocksynkronisering kan gå till i ett distribuerat system med extern klockreferens (masterklocka). b) Beskriv hur klocksynkronisering kan gå till i ett system utan extern klockreferens (masterklocka). Man bör undvika abrupta omställningar av systemtiden. c) Ange två typer av tillämpningar som inte tål abrupta tidsomställningar då tiden ställs om bakåt, och varför de inte tål det. d) Ange två typer av tillämpningar som inte tål abrupta tidsomställningar då tiden ställs om framåt, och varför de inte tål det. B 4 (4 p) a) Vad menas med processmigrering i ett distribuerat operativsystem? b) Hur kan processmigrering implementeras? Beskriv översiktligt och peka ut ev. svårigheter som måste lösas. c) Ett speciellt problemområde är hur andra processer skall hitta en migrerad process. Förklara varför detta kan vara en källa till problem, och ange hur problemen kan lösas. B 5 (8 p) Request-response-protokoll används ofta i distribuerade system. a) Varför? Ge argument varför request-response-protokoll är tilltalande. En tilltalande egenskap i sammanhanget är att ha tillståndslösa servers. b) Varför? Ge argument varför tillståndslösa servers är tilltalande. (Hur man än vänder sig...) Med tillståndslösa servers kan vi inte implementera s.k. Exactly-once-semantik för vårt request-response-protokoll. c) Varför? Ge argument varför exactly-once-semantik inte kan implementeras i ett system med tillståndslösa servers. Om man har tillstånd i servrarna kan man implementera (åtminstone approximera) Exactly-once. d) Hur kan exactly-once implementeras om man tillåter tillstånd i servrarna? Beroende på vad systemet skall användas till kan det vara vettigt att ge avkall på tillståndslösheten hos servrarna för att kunna implementera exactly-once-semantik. e) Ge exempel på tillämpningar där exactly-once-semantik är viktigare än tillståndslöshet hos servrarna. f) Ge exempel på motsatsen, d.v.s. på tillämpningar där tillståndslöshet hos servrarna är viktigare än exactly-once-semantik.

B 6 (8 p) När man implementerar distribuerade transaktioner kan man välja mellan att använda en enkel 2-phase-commit som kräver att alla kopior av databasen är tillgängliga, eller att använda någon form av Quorum-protokoll, då en eller flera kopior inte behöver vara tillgängliga. a) Ge två enkla algoritmer som kan användas för att implementera 2-phase-commit respektive ett Quorum-protokoll. b) Givet att man försöker få ett så effektivt system som möjligt, ange de viktigaste faktorerna som påverkar huruvida det är kostnadseffektivt eller inte att använda ett Quorum-protokoll, samt hur prestanda påverkas. c) För att ytterligare öka tillgängligheten i quorum-system kan de modifieras för att tillåta uppdatering även om inte ett tillräckligt antal noder kan nås för skrivning (Tanenbaum: voting with ghosts ). Beskriv hur detta kan gå till. d) Vilka är nackdelarna med voting with ghosts jämfört med ett vanligt quorumprotokoll? Del C Presentationsfrågor - svara kortfattat C 1 (2 p) Kerberos: Vad har Kerberos för funktion i ett distribuerat system? C 2 (2 p) JetFile: Vad har man istället för en central filserver i JetFile? C 3 (2 p) Application Servers: Vad finns det för fördelar med att ha en 3-skiktsarkitektur jämfört med en 2-skiktsarkitektur? C 4 (2 p) Peer-to-Peer: Välj Peer-to-Peer eller Client/Server. Argumentera för och emot. Nämn minst två fördelar och två nackdelar. C 5 (2 p) Enterprise Java Beans: Vad heter de tre beståndsdelarna i Enterprise Java Beans, och vad är deras roll i systemet?

Tentamen, Distribuerade System DVP/MNP 2002-01-17 FÖRSÄTTSBLAD Inlämnas ifyllt tillsammans med tentan. Skriv namn på samtliga blad. Ange nedan vilka uppgifter du besvarat. Uppgift Besvarad Max. poäng Din poäng A 1 4 A 2 4 A 3 6 A 4 6 A 5 6 A 6 6 A 7 8 Del B 10 SUMMA: 50 NAMN :....................................................... Pers.no. :..................................................... Övrig info. (t.ex. om du tentar om efter att ha gått kursen ett tidigare år eller vid ett annat program än ovanstående) :........................................

Tentamen, Distribuerade System DVP/MNP 2002-01-17 Ansvarig lärare: Mats Björkman. Skrivningstid: 8 13. OBS! Jag kommer endast att kunna komma och svara på frågor vid 8.30, läs därför direkt igenom alla uppgifter och kolla att du förstår dem! Tillåtna hjälpmedel: Papper, penna, radergummi, kalkylator (behövs inte). Denna tenta har tre delar. Del A består av blandade uppgifter. Del B består av 5 st 2-poängsuppgifter på presentationerna. För godkänt på tentan krävs minst 25 poäng. Snälla, skriv tydligt! Jag kan inte ge poäng om jag inte kan tyda svaret... Del A Blandade frågor - svara uttömmande A 1 (4 p) a) Ge tre anledningar till varför man kan vilja föredra ett distribuerat system framför ett centraliserat system. b) Ange tre nackdelar med ett distribuerat system jämfört med ett centraliserat system. A 2 (4 p) a) Beskriv en distribuerad algoritm som ger ömsesidigt uteslutande, och som fungerar även om enstaka noder går ner. b) Ange några tillämpningar där en sådan algoritm är användbar eller t.o.m. nödvändig. A 3 (6 p) Request-response-protokoll används ofta för kommunikationen i ett distribuerat system. a) Vad menas med request-response-protokoll? b) I request-response-protokoll kan såväl klient som server antingen blockera medan ett anrop pågår eller inte blockera. Vilka för- och nackdelar finns med de olika alternativen (behandla klient och server separat)? c) Ett specialfall av request-response-protokoll är Remote Procedure Call (RPC). Beskriv vad som menas med Remote Procedure Call, och vilka de semantiska problemen är jämfört med lokala proceduranrop. A 4 (6 p) Klocksynkronisering är viktigt i många distribuerade system. Ett fundamentalt problem är att man i ett löst kopplat system inte har en gemensam tidsreferens. a) Beskriv hur klocksynkronisering kan gå till i ett distribuerat system med extern klockreferens (masterklocka). b) Beskriv hur klocksynkronisering kan gå till i ett system utan extern klockreferens (masterklocka). Man bör undvika abrupta omställningar av systemtiden. c) Ange två typer av tillämpningar som inte tål abrupta tidsomställningar då tiden ställs om bakåt, och varför de inte tål det. d) Ange två typer av tillämpningar som inte tål abrupta tidsomställningar då tiden ställs om framåt, och varför de inte tål det.

A 5 (6 p) I exv. programsystemet ISIS finns två typer av atomär broadcast, ABCAST resp. CBCAST. Båda typerna försöker ordna broadcasts. a) Varför vill man ha ordnade broadcasts? Beskriv minst två olika typer av tillämpningar där ordnade broadcasts är önskvärt eller t.o.m. nödvändigt. b) Vilka typer av garantier för ordningen får man med ABCAST respektive CB- CAST? c) Beskriv hur respektive typ av broadcast kan implementeras. A 6 (6 p) Quorum-baserade protokoll används i distribuerade system för att kunna uppdatera distribuerade databaser även när inte alla noder kan nås. a) Beskriv hur Quorum-baserade protokoll fungerar. b) För bra prestanda bör det relativa förhållandet mellan läsningar och skrivningar påverka implementationen. Varför, och på vilket sätt bör implementationen påverkas? c) Quorum-system kan modifieras för att tillåta uppdatering även om inte ett tillräckligt antal noder kan nås för skrivning (Tanenbaum: voting with ghosts ). Beskriv hur detta kan gå till. A 7 (8 p) Antag att du har ett distribuerat system, ursprungligen optimerat för kommunikation inom ett lokalt nät. Detta system skall nu utvidgas över flera lokala nät genom att sammankoppla dessa med ett långdistansnät (Wide Area Network, exempelvis Internet). Detta långdistansnät har liten bandbredd och lång fördröjning. Dessutom är felfrekvensen (sannolikheten för borttappade paket etc.) högre på långdistansnätet. Vilka speciella problem (d.v.s. vad kan gå fel och vad behöver ändras jämfört med det lokala fallet) medför denna nya situation för: a) kommunikation av typ RPC? b) ordning på händelser? c) uppdatering av distribuerat tillstånd ( databaser )? d) cachning och konsistens i ett distribuerat filsystem? Del B Presentationsfrågor - svara kortfattat B 1 (2 p) Kerberos: Vad har Kerberos för funktion i ett distribuerat system? B 2 (2 p) JetFile: Vad har man istället för en central filserver i JetFile? B 3 (2 p) Application Servers: Vad finns det för fördelar med att ha en 3-skiktsarkitektur jämfört med en 2-skiktsarkitektur? B 4 (2 p) Peer-to-Peer: Välj Peer-to-Peer eller Client/Server. Argumentera för och emot. Nämn minst två fördelar och två nackdelar. B 5 (2 p) Enterprise Java Beans: Vad heter de tre beståndsdelarna i Enterprise Java Beans, och vad är deras roll i systemet?