Gedistribueerde Systemen

Uit Wina Examenwiki
Naar navigatie springen Naar zoeken springen

26 augustus 2011 (voormiddag)

1) Web services (mondeling, 20%).

  • Gegeven bepaalde code, wat zou je doen om hier een web service van te maken:
    • met behulp van een application server;
    • zonder application server.
  • Leg verbanden met je eigen practicum.

2) RMI (mondeling, 20%).

  • Wat zijn Local, Remote en Serializable klassen?
  • Waar heb je die gebruikt in je practicum? Verklaar.
  • Wat gebeurt er als je Serializable ipv Remote gebruikt?

3) Gedistribueerde transacties (mondeling, 15%)

  • Beschrijf adhv gegeven methodes het 2 phase protocol.
  • Waar gebruik je time-outs?
  • Bijvraag: Waarom is er geen time-out voor de haveCommitted-operatie?

4) 3 systemen met hoge beschikbaarheid in cursus. (schriftelijk, 15%)

  • Welke?
  • Leg elk systeem kort uit.
  • Welk systeem zou je gebruiken om een bepaald (gegeven) probleem op te lossen.

5) Cloud Computing (schriftelijk, 15%)

  • Wat is Cloud Computing?
  • Geef de 3 voordelen die besproken zijn in de verplichte paper. Welke service (IaaS, PaaS, SaaS) kan je daarmee linken?
  • Leg elke service uit.

6) Coda (schriftelijk, 15%)

  • Bespreek de basis architectuur van AFS.
  • Wat wordt aan die architectuur toegevoegd om Coda te krijgen?
  • Bespreek caching in Coda.
  • Hoe wordt replicatie ondersteund?
  • Kan je op consistentie checken met Coda? Zo ja, hoe?

22 augustus 2011 (namiddag)

1) Vraag 1

  • Leg AFS uit op 1 blad (focus op belangrijkste!)
  • Leg NFS uit op 1 blad (focus op belangrijkste!)
  • Vergelijk AFS en NFS in verband met 3 dingen: beschikbaarheid, fouttolerantie en ...

2) Vraag 2: 3 systemen met hoge beschikbaarheid in cursus (?Bayou, Coda en Gossip?)

  • Welke?
  • Leg uit en focus op: ... , ... en ... (3 karakteristieken zoals beschikbaarheid, fouttolerantie etc -> die 2 dus al niet :p)
  • Nog een vraagje (weet niet meer welk)

3) Vraag 3: RMI

  • Leg uit: Remote, Local, Serializable
  • Waar in project
  • Wat gebeurd er als je Serializable ipv Remote gebruikt?

4) Vraag 4 : Coda (mondeling)

  • Leg uit
  • Waar heb je multicast in coda nodig?

5) Vraag 5: Transacties (mondeling) (Lees da hoofdstuk slides is door over transacties, dan is dees stuk pretty easy ;) )

  • Wat zijn transacties
  • Hoe duid je deze aan
  • Waar gebruikt in project
  • Geef 3 mogelijke waarden voor TransactionAttribute + wat betekenen ze?
  • Container of bean managed transactions?
  • Iet met 2 phase commit protocol

6) LET OP: dus geen vraag over Cloud computing, maar andere examens mss wel ???

18 januari 2011 (voormiddag)

1) Vergelijk NFS en AFS. (schriftelijk, 20 %)

2) (schriftelijk, 15 %)

  • A. Wat zijn geneste gedistribueerde systemen.
  • B. Bespreek het two-phase commit protocol bij geneste gedistribueerde transacties.
  • C. Wat houden de coördinatoren van subtransacties bij qua info ?

3) Bespreek en vergelijk actieve en passieve replicatie (mondeling, 15 %).

4) Cloud Computing (schriftelijk, 15 %)

  • A. Definieer het begrip "Cloud computing" en geef een motivatie.
  • B. Leg kort het verschil uit tussen IAAS, PAAS en SAAS.
  • C. Stel dat je zelf cloud provider bent en je hebt als klanten Novotel, de Hilton hotelketen en nog een derde hotel. Welke diensten zou je hen aanbieden (geef er minimum 2) ? Welke zou je zelf van derden gebruiken ? Relateer dit aan je antwoord bij vraag B

5) Java RMI ivm je practicum (mondeling, 20 %)

  • A. Wat is "rmi registry" ? Leg uit waar in je practicum je dat overal gebruikt hebt.
  • B. Wat zijn de gevolgen als je vergeet een remote object te registreren ?
  • C. In het practicum werd gevraagd om zelf een NameServer te implementeren. Welke zijn de voor- en/of nadelen van deze aanpak tov rmiregistry.

6) J2EE en EJB (schriftelijk, 15 %) Bespreek JEE Persistence Entities. Zeg ten minste iets over volgende zaken:

  • Waarom maak je iets persistent?
  • Wat zijn de nodige aanpassingen in code + configuratie ? Illustreer indien mogelijk in je practicum van JEE.
  • Hoe interageert dit met transactions ? Wat gebeurt er bv indien twee clients tegelijkertijd een Hotel ekijken en één van beiden een room toevoegt ; ziet de andere dit ?
  • Wat zijn de fetch types en welke zijn er? Wat betekenen ze ?
  • Wat zijn cascade types en welke zijn er? Wat betekenen ze ?

26 januari 2010 (voormiddag)

1) Bespreek de werking van NFS. (2blz)

2) Pas de replicatie technieken van Coda toe op NFS. Bespreek voor- en nadelen t.o.v. van het klassieke Coda-systeem (4blz, mondeling)

3) Bespreek het two-phase commit protocol bij geneste gedistribueerde transacties. Wat is een geneste gedistribueerde transactie? Wat is het verschil met atomic commit protocol? (3blz)

4) Aspect Oriented Compositing bespreken + voordelen ten opzicht van containers.

5) 3 Semantieken van niet-lokale procedure oproepen. Wat gebruikt Java RMI? Hoe zou je dit implementeren met TCP/IP?

6) A) Beschrijf gedetailleerd de stappen die nodig zijn om deze functionaliteit aan te beiden als webservice. Zonder gebruik te maken van een applicatieserver. Met behulp van een applicatieserver. B) Hoe kan een Java client gemaakt worden voor deze webservice? C) Vergelijk A en B met wat je in het practicum over webservices gedaan hebt. Wat moet je aan een standaard Java applicatie aanpassen om het om te zetten naar een JEE applicatie. (15% - mondeling)

public class AirlineReservation{
   public boolean makeReservation(ReservationRequest rr){...}
}

public class ReservationRequest{
  public ReservationRequest(String flightNb){..fligthNb.};
  public String getTravelerName(){...}
  public void setTravelerName(String name){...}
  public String getFlightNb(){...}
  public void setFlightNb(String fnb){...}
  public boolean verifyResquest(){...}
}

7) Bespreek JEE Persistence Entities. Waarom maak je iets persistent? Wat zijn de fetch types en welke zijn er? Wat zijn cascade types en welke zijn er?

22 januari 2010 (namiddag)

  1. Bespreek en vergelijk NFS en AFS. (20% - schriftelijk)
  2. Bespreek het two-phase commit protocol bij geneste gedistribueerde transacties. Wat is een geneste gedistribueerde transactie? Welke info wordt bijgehouden bij coördinatoren van subtransacties? (15% - schriftelijk)
  3. Bespreek waar Coda overal gebruik maakt van groepscommunicatie (multicast). Schets alle mogelijk scenario's en verklaar waarom de multicast nodig is. (15% - mondeling)
  4. Onderstaande code beschrijft summier enkele Java-klassen om reservaties te maken voor een vlucht. (15% - schriftelijk)
    • A) Beschrijf gedetailleerd de stappen die nodig zijn om deze functionaliteit aan te beiden als webservice.
      • Zonder gebruik te maken van een applicatieserver.
      • Met behulp van een applicatieserver.
    • B) Hoe kan een Java client gemaakt worden voor deze webservice?
    • C) Vergelijk A en B met wat je in het practicum over webservices gedaan hebt.
  5. Java RMI (20% - schriftelijk)
    • Leg a.d.h.v. een concreet voorbeeld de stappen uit die gebeuren bij een remote method invocation. Waar komt de RMI middleware tussenbeide?
    • Stel dat je een soort "asynchrone procedure-oproep" zou willen implementeren in RMI. Verklaar de term "asynchrone procedure-oproep" en geef een concreet voorbeeld waar dit nuttig voor kan zijn.
  6. Wat moet je aan een standaard Java applicatie aanpassen om het om te zetten naar een JEE applicatie. (15% - mondeling)
 public class AirlineReservation{
    public boolean makeReservation(ReservationRequest rr){...}
 }
 
 public class ReservationRequest{
   public ReservationRequest(String flightNb){..fligthNb.};
   public String getTravelerName(){...}
   public void setTravelerName(String name){...}
   public String getFlightNb(){...}
   public void setFlightNb(String fnb){...}
   public boolean verifyResquest(){...}
 }

18 januari 2010

  1. Bespreek en vergelijk NFS en AFS (max 4 blz)
  2. Bespreek de geschiktheid voor p2p-middleware om een NFS-like bestandensysteem te bouwen.
    • Bespreek in dit verband volgende termen: OceanStore/Tapestry/Hoe maakt oceanstore gebruik van tapestry?
  3. distributed transactions:
    • Tijdens het 2PC-protocol kunnen participants zich in de "prepared" state bevinden. Definieer "prepared". Aan welke voorwaarden moet voldaan zijn om in deze toestand te geraken?
    • Leg de term "distributed nested transaction" uit.
    • Wat zijn de verschillen tussen 2PC en 2PC voor nested transactions?
  4. Vergelijk actieve en passieve replicatie (mondeling).
  5. Webservices: geef in detail de stappen die er moeten gebeuren om zonder JEE/appserver enkele methodes van een object als webservice beschikbaar te maken. Geef ook aan hoe je een client hiervoor zou schrijven. Geef aan welke tools je gebruikt en wat soort input/output deze tools hebben. Staaf met informatie uit je practicum-verslag. (mondeling)
  6. Java RMI:
    • Leg a.d.h.v. een concreet voorbeeld de stappen uit. Waar komt de RMI middleware tussenbeide?
    • Stel dat je een soort "asynchrone procedure-oproep" zou willen implementeren in RMI. Verklaar de term "asynchrone procedure-oproep" en geef een concreet voorbeeld waar dit nuttig voor kan zijn.
  7. JEE/EJB: container-managed transactions bespreek. Verklaar ten minste:
    • Geef het algemene programmeerconcept
    • Welke rol spelen de containers hierbij?
    • Welke mogelijkheden zijn er om transacties te starten? (Required, RequiresNew,...). Geef de mogelijkheden en licht kort toe.
    • Geef voorbeelden van transacties in de broncode van je practicum.

12 januari 2010

Ongeveer zelfde examen als 16 januari 2009

  1. Bespreek het Coda File System (max 4 blz) (mondeling)
    • Basisarchitectuur
    • Replicatie
    • Caching
    • Consistentie
  2. Bespreek het 2 phase commit protocol voor gedistribueerde transacties (max 2 blz)
    • Je krijgt een overzicht van alle methodes zoals doAbort, doCommit, canCommit,...
    • Je moet ook aangeven waarom de getDecision() methode belangrijk is.
    • En wanneer er TimeOuts nodig zijn
  3. Gossip architectuur kort bespreken en de figuur die in het boek staat geven.(max 1 blz)
  4. Aspect- oriented programming: wat is het en wat voor nut kan het hebben om middleware mee te bouwen. (max 2 blz)
  5. Uit welke delen bestaat een WSDL en wat is de functie van elk deel?
    • Illustreer aan de hand van het practicum.
    • Hoe heeft de binding style van de WSDL van het practicum (document literal wrapped) een invloed op de WSDL en op de SOAP berichten. (max 2 blz)
  6. Java RMI bespreken (ook de figuur geven van al de componenten) (max 3 blz)
    • Hoe kan een remote object worden aangeroepen?
    • Wanneer worden er referenties naar een object doorgegeven en wanneer niet?
    • De behaalde transparantie (of eventuele gebreken) tov een gewoon java programma bespreken.
  7. Container-based transactions: (max 2 blz) (mondeling)
    • Leg de term gedistribueerde componenten met transactionele interactie uit.
    • Wat zijn de taken van de container?
    • Welke opties zijn er voor het al dan niet starten van een container-based transaction?
    • Je krijgt de code van het practicum over JEE, waarin je voorbeelden moet aangeven van het gebruik van transacties.

september 2009

  1. Bespreek bondig Andrew
    • A.bespreek Coda, architectuur, kenmerken ,hoe gebeurt replicate en caching?
    • B.Vergelijk Andrew met active replicatie.
  2. Gossip architectuur bespreek,waarvoor was het ontwikkeld?Geef een schematisch overzicht ervan en bespreek bondig.
  3. Bespreek het doel van p2p en architectuur ervan. Welke componenten zijn er?
    • B.Bespreek hoe kan je NS implementeren over p2p, hoe ga je aan de slaag?Wat zijn de voor/nadelen van jouw oplossing?
  4. Vergelijk WS met RMI (grootste verschillen) en bespreek hoe kan een klant een WS vinden (mechanisme van UDDI bespreken).
  5. Een vraag over componenten, containers. Bespreek architecuur en elementen ervan,vergelijk met J2EE.
    • A.Welke types van containers bestaan er?
    • B.Hoe wordt transactie managed door een container,bespreek mogelijkheden.
  6. Bespreek Java RMI. Maak een overzichtsfiguur en mogelijkheden, kenmerken van Java RMI.
    • A.Bespreek hoe kan men referentie naar een object doorgeven?
    • B.Hoe kan een object op de server remote toegankelijk gemaakt worden voor de client?
    • C.Bespreek transparantie in de context van Java RMI.
  7. Bespreek 2phase commit protocol bij distributed transacties.Gebruik gegeven operaties (gelijk boek figuur 14-4).
    • A. Bespreek ook geneste transacties in de context hierboven. Hoe moet je 2pcp uitbreiden ?


30 januari 2009

  1. Vergelijk NFS met AFS (max 4 blz)
  2. Gedistribueerde transacties (max 2 blz)
    • A. Beschrijf het two-phase commit protocol voor gedistribueerde transacties. Je mag gebruik maken van de gegeven operaties
    • B. Wat is de rol van de getDecision operatie?
    • C. Waar zijn er time-outs vereist?
  3. Vraag 3. (15%)
    • A. Geef aan en waarom een peer-to-peer systeem meer of minder geschikt is om een bestandssysteem op te bouwen.
    • B. Leg uit hoe OceanStore gebruikt maakt van Tapestry.
  4. Beschrijf en vergelijk actieve en passieve replicatie.
  5. Bespreek RMI(3 bladz)
    • Hoe kan je als server een object beschikbaar maken voor RMI?
    • Hoe roep je als client een methode op een remote object op? (+ wat gebeurt er enzo)
    • Wanneer krijg je stubs en wanneer hele objecten?
    • Hoe zit het met de bereikte transparantie in RMI?
  6. Security in JEE
    • Welk model gebruikt JEE om authenticatie en authorisatie te doen?
    • Hoe kan je dit gebruiken in je EJB's?
    • Pas je practicum aan om een aantal methodes te beveiligen
  7. Bespreek SOAP en WSDL in practicum

26 januari 2009

  1. Leg Coda uit
    • Leg de benodigde dingen van AFS uit
    • De architectuur van Coda
    • Replicatie
    • Caching
  2. Bespreek deadlock detectie voor gedistribueerde transacties (mondeling)
    • Schets bondig de basisprincipes voor gedistribueerde deadlock detectie.
    • Bespreek edge chasing algoritmes.
    • Bespreek de rol van prioriteiten van transacties in de context van deadlock detectie.
  3. Peer-to-peer
    • Wat zijn kenmerken van peer-to-peer?
    • Je moet een nameserver ontwikkelen met peer-to-peer middleware. Hoe pak je dit aan? Wat zijn de voor/nadelen van het uiteindelijke systeem?
  4. Lineariseerbare en serialiseerbare consistentie, wat krijg je bij actieve replicatie?
  5. Practicum web services (mondeling)
    • Welke stappen zijn nodig om van een gewoon Java object de methodes als web services te krijgen? Dus zonder Netbeans of application server.
    • Hoe kan je een Java client maken van een webservice? Welke tools gebruik je en wat gebruiken ze als input en output?
  6. ORB en RMI
    • Hoe kan je als server een object beschikbaar maken voor RMI?
    • Hoe roep je als client een methode op een remote object op? (+ wat gebeurt er enzo)
    • Wanneer krijg je stubs en wanneer hele objecten?
    • Hoe zit het met de bereikte transparantie in RMI?
  7. Security in JEE
    • Welk model gebruikt JEE om authenticatie en euthorisatie te doen?
    • Hoe kan je dit gebruiken in je EJB's?
    • Pas je practicum aan om een aantal methodes te beveiligen

16 januari 2009

  1. Leg de werking van Coda uit (max 4 blz).
  2. Bespreek het 2 phase commit protocol voor gedistribueerde transacties (max 2 blz) (mondeling)
    • Je krijgt een overzicht van alle methodes zoals doAbort, doCommit, canCommit,... en adhv die methodes verwacht hij dus dat je het protocol uitlegt.
    • daarnaast moet je ook aangeven waarom de getDecision() methode belangrijk is.
    • En wanneer zijn er TimeOuts nodig (dit deel vond hij heel belangrijk)
  3. Gossip architectuur kort bespreken en de figuur die in het boek staat geven.(max 1 blz)
  4. Ging over aspect- oriented middleware en waarom dat dat beter is dan container managed middleware. (max 2 blz)
  5. Rol en belang van een platform uitleggen dat webservices ondersteund + wat het belang van WSDL daarbij. (max 1 blz)
  6. Java RMI bespreken (ook de figuur geven van al de componenten) (max 2 blz)
    • de behaalde transparantie (of eventuele gebreken) tov een gewoon java programma bespreken.
  7. Container-based transactions: (max 2 blz)(mondeling)
    • Leg de term gedistribueerde componenten met transactionele interactie uit.
    • Hoe moet ondersteunt de middleware dit?
    • Wat zijn dan containers?
    • Wat zijn dan de opties voor container-based transactions?
    • Je krijgt de code van het practicum over JEE, waarin je voorbeelden moet aangeven (vooral van de laatste vraag)

12 januari 2009

  1. Geef een bondig overzicht van het Andrew File System. Mondeling. (max 4 blz) (20%)
  2. Bespreek deadlock detectie voor gedistribueerde transacties (max 2 blz) (15%)
    • Schets bondig de basisprincipes voor gedistribueerde deadlock detectie.
    • Bespreek edge chasing algoritmes.
    • Bespreek de rol van prioriteiten van transacties in de context van deadlock detectie.
  3. Wat is het verschil tussen lineariseerbare en serializeerbare consistentie bij replicatie. Welke vorm van consistentie garandeert actieve replicatie? (max 1 blz) (10%)
  4. Schets bondig de werking van het Needham-Schroeder protocol voor gedistribueerde authenticatie (veronderstellingen + opbouw van het protocol). In welke systemen wordt dit protocol (of een variatie ervan) gebruikt? (max 2 blz) (10%)
  5. Waar staan de afkortingen WSDL en SOAP voor. Leg de elementen, rol, werking en toepassingen van beiden uit. (max 2 blz) (15%)
  6. ORB en RMI. Leg uit en illustreer aan de hand van je code hoe dat programmeren in Java RMI werkt. Mondeling. (Je krijgt je code erbij op de laptop van de prof). (max 1 blz) (15%)
  7. J2EE-EJB-Component Frameworks. Hoe werken container-managed transacties in JEE. (max 4 blz) (15%)

28 januari 2008

Het examen bestaat uit 7 vragen, waarvan 3 over de practica (9 punten) en 4 over de theorie (11 punten). Bij elke vraag staan een verwachte lengte (uitgedrukt in pagina's). Alles opgeteld werden er 16 pagina's verwacht.

Theorie

  • Sun NFS uitleggen
  • Distributed transactions: deadlock probleem en edge chasing algoritme; prioriteiten van transacties in het kader van deadlocks
  • Needham-Schroeder uitleggen en zeggen welk protocol dit in't echt gebruikt
  • ...

Practica

  • Bij RMI en WS moest ge verbeteringen voorstellen voor uw oplossing / ontwerp, uw oplossing krijgt ge erbij
  • Bij JEE moest ge de verschillende soorten componenten beschrijven die bestaan, en dan zeggen waar ge ze had toegepast in uw oplossing (zonder uw oplossing erbij)

General Services

  • [Jan 2006; mondeling] Wat gebeurt er als bij AFS een server reboot of crasht, en daardoor korte tijd niet beschikbaar is.

Coordination

  • [Jan 2006; schriftelijk] Gegeven een non-blocking send()-operatie en een blocking receive() operatie. Hoe kan men hiermee een 'at least once' RPC-mechanisme mee maken? Leg uit. En hoe maakt men een 'maybe'-mechanisme?

Distributed Algorithms

  • [Jan 2006; schriftelijk] Er zijn 4 processen, met als klok in het begin 0. Mutual exclusion using logical clocks [Ricard - Agravela]. Er gebeuren nu deze zaken:
    • P1 en P3 willen tegelijkertijd een lock op iets
    • P2 wil daarna ook een lock terwijl het eerste proces nog bezig is
    • Het eerste proces heeft gedaan met zijn critical section.
    • Beschrijf nu heel uitgebreid wat er allemaal gebeurt (status, queue, boodschappen, ...) op elk moment van de uitvoering van het algoritme

Replication

  • [Jan 2006, schriftelijk] Bij Coda wordt er bij de open-operatie bij iedere server in de AVSG op de CVV gecontroleerd. Wat gebeurt er als je deze situatie zou schrappen? Geef een voorbeeld.