Gedistribueerde Systemen

Ga naar: navigatie, zoeken

Samenvattingen

Klik hier om de samenvattingen te bekijken

Examenvragen

2016 - 2017

20 januari 2017

1 Services

A) Leg uit NFS (max 1 pagina)

B) Leg uit AFS (max 1 pagina)

C) Bespreek verschil AFS en NFS op vlak van - De basisstrategie die wordt gebruikt voor caching. - De impact van de oplossing om consistentie van de cache te valideren. - De implementatie van de directory service.

2 Distributed deadlocks

A) Principes distributed deadlock detection uitleggen.

B) geef het algoritme van edge chasing en een illustratie

C) wat is het belang van prioriteiten

3 RMI

Je krijgt de code van je project.

A) Waarom maak je iets Remote, Serializable of Local?

B) In welke klasses heb je deze gebruikt en leg uit waarom?

C) Wat gebeurt er als je een Remote klasse Serializable maakt?

4 JEE

De vraag is mondeling en je krijgt ook je code.

A) Wat is een transactie?

B) Hoe gebruik je die in een EJB applicatie? Verschil Bean- en containermanaged (Granulatieit, demarcatie, rollback, ...)

C) Geef 3 transactie attributen en leg ze uit.

D) Gebruik je ze in je project? Argumenteer.

5 Replication

A) Wat is pasieve replicatie? Bespreek het doel, de oplossing, de voor en nedelen. Zijn er variaties? Max 2 pagina's.

B) Vergelijk passieve replicatie en Coda op vlak van doelstelling en op gebied van performance, availability.

2015 - 2016

23 auguestus 2016

1 Services

A) Geef een overzicht van AFS. Max 1 pagina.

B) Bespreek de performantie van AFS op max 1 pagina. Ga hierbij ook dieper in op:

- De basisstrategie die wordt gebruikt voor caching.

- De impact van de oplossing om consistentie van de cache te valideren.

- De implementatie van de directory service.

C) Hoe verbetert Coda AFS?

D) Welke vorm van indirecte communicatie vind men in Coda?

2 Replication

Max 4 pagina's, deze werdt mondeling overlopen.

A) Wat is actieve replicatie? Bespreek het doel, de oplossing, de voor en nedelen. Zijn er variaties? Max 2 pagina's.

B) Wat is pasieve replicatie? Bespreek het doel, de oplossing, de voor en nedelen. Zijn er variaties? Max 2 pagina's.

C) Vergelijk deze op gebied van performance, availability, fout afhandeling en consistentie. Max 1/2 pagina.

3 Distributed transactions

Max 3 pagina's.

A) Leg het 2 phase commit protocol voor gewone transacties uit (niet nested). Je krijgt een tabel met de operaties (canCommit, haveCommitted, ...).

B) Waarvoor wordt getDescision gebruikt?

C) Waar zijn er time outs nodig?

D) Hoe zou je dit protocol uitbrijden als je te maken hebt met gerepliceerde data?

4 RMI

Je krijgt de code van je project.

A) Waarom maak je iets Remote, Serializable of Local?

B) In welke klasses heb je deze gebruikt en leg uit waarom?

C) Wat gebeurt er als je een Remote klasse Serializable maakt?

5 JEE

De vraag is mondeling en je krijgt ook je code.

A) Wat is een transactie?

B) Hoe gebruik je die in een EJB applicatie? (Granulatieit, demarcatie, rollback, ...)

C) Geef 3 transactie attributen en leg ze uit.

D) Gebruik je ze in je project? Argumenteer.


12 januari 2016

  1. AFS en NFS volledig uitleggen (+ caching + vergelijken) op max.4 pagina's
  2. replication: passive replication uitleggen + linearizable vs sequential + gossip uitleggen. max 3 pagina's
  3. distributed deadlocks: wat? + geef het algoritme van edge chasing + waarom met prioriteiten werken. max 3 pagina's
  4. persistence bij GAE vergelijken met persistence bij JEE. Ook toelichten hoe dat in uw project zit. max 2 pagina's
  5. RMI: serialisable vs. remote vs. local. Ook uitleggen welke klassen in uw project wat zijn en waarom. + wat er zou gebeuren als ge meer klassen serialisable maakt.

2013-2014

27 januari 2014

  1. Services (max. 4 blz) Deze vraag is mondeling
    1. Vergelijk NFS en AFS op het vlak van performantie; behandel daarbij de volgende elementen uit het ontwerp van beide systemen
      • basisstrategie voor caching
      • impact van de oplossing om de consistentie van gegevens in de cache te valideren
      • implementatie van de directory service
    2. Vergelijk NFS en AFS op het vlak van beschikbaarheid; welke elementen beperken de impact van faling
      • client
      • server
      • communicatie
  2. Gedistribueerde transacties (max. 3 blz) Bespreek deadlock detectie voor gedistribueerde transacties
    1. Schets de basisprincipes voor gedistribueerde deadlock detectie
    2. Bespreek "edge chasing" algoritmes
    3. Bespreek de rol van prioriteiten van transacties in de context van deadlock detectie
  3. Indirecte communicatie (max. 2 blz) Indirecte communicatie onderscheidt zich van directe communicatie door het realiseren van ontkoppeling in tijd en ruimte.
    1. Definieer 'ontkoppeling in tijd', geef aan de hand van een voorbeeldscenario uit een applicatie om auto's te verhuren aan in welke omstandigheden dergelijke ontkoppeling nuttig kan zijn.
    2. Definieer 'ontkoppeling in ruimte', geef aan de hand van een voorbeeldscenario uit een applicatie om auto's te verhuren aan in welke omstandigheden dergelijke ontkoppeling nuttig kan zijn.
    3. Geef een overzicht van drie componenten (soorten systemen) voor indirecte communicatie die beide vormen van ontkoppeling (tijd EN ruimte) realiseren.
      • Geef voor elk van deze systemen aan welke API zij moeten aanbieden aan de ontwikkelaar.
      • Schets kort een strategie om dergelijke systeem te implementeren.
  4. Replicatie (max. 3 blz) Stel dat je een discussieforum moet ontwerpen & implementeren waarbij internationale teams van medewerkers samen discusiëren en werken aan een ontwerp (documenten worden gedeeld, nieuwe documenten en schetsen worden gemaakt, door het systeem becommentarieerd in zo een discussieforum etc.). Dergelijk systeem moet typisch een hoge graad van beschikbaarheid tonen, maar de toepassing is niet dusdanig kritisch dat we foutbestendigheid (fault tolerance) nodig hebben.
    1. Noem de drie systemen met een hoge graad van beschikbaarheid die we in de cursus gedistribueerde systemen besproken hebben.
    2. Schets kort de basisprincipes en onderliggende technieken die deze systemen karakteriseren. Denk hierbij zeker aan (a) consistentie, (b) transparantie en (c) aanpasbaarheid.
    3. Welke technieken zou je kiezen om hogervermeld discussieforum te realiseren? Argumenteer waarom.
  5. JEE (max. 2 blz) Bespreek transacties in de context van JEE. Deze vraag is mondeling. Je mag je practicumoplossing gebruiken.
    1. Wat is transactie-demarcatie (demarcation)?
    2. Hoe gebeurt transactie-demarcatie in EJB? Bespreek grondig de verschillende mogelijkheden.
    3. Illustreer dit in je practicum waar mogelijk.
  6. GAE (max. 2 blz) Bespreek de toepassing van indirecte communicatie in cloud applicaties. Illustreer met je practicumoplossing van Google App Engine (GAE). Structuur je argument als volgt:
    1. Leg (bondig) het concept van indirecte communicatie uit.
    2. Leg uit hoe dit concept kan toegepast worden in cloud applicaties en illustreer dit aan de hand van je practicumoplossing (schrijf in je schriftelijk antwoord naar waar in je oplossing de hogervermelde GAE programmacode voorkomt).
    3. Bespreek voor- en nadelen van indirecte communicatie in de context van cloud computing. Je kan hierbij de applicatie uit de practica gebruiken als voorbeeld.

14 januari 2014

1) NFS en AFS helemaal uitleggen en performantie op verschillende vlakken vergelijken

2) Actieve en passieve replicatie uitleggen + vergelijken

3) 2-phase commit protocol (exact dezelfde vraag die helemaal uitgeschreven stond op Toledo)

4) RMI: Remote/Serializable/Local

5) JEE: alles wat nodig was voor persistence uitleggen + waar heb je die dingen in je practicum gebruikt

6) GAE: wanneer kan je in een inconsistente staat komen met message queues


Vragen 1 & 6 moesten mondeling verdedigd worden.

2012-2013

25 januari 2013

1) CODA, hoe werkt het, bespreek performantie en beschikbaarheid

2) De P2P dingen van SETI, 2 definities (is langsgeweest)

3) Bespreek alle mogelijkheden van indirecte communicatie

4) Bespreek gedistribueerde transacties, wat is verschil tussen atomic en 2 phase

5) Bespreek Cloud Services (I/P/S) -> mondeling

6) Transactions in JEE, practicum, 3 TransactionTypes, ...

7) Indirecte communiatie: Handig bij cloud services? Gebruikt in practicum? -> mondeling

21 januari 2013 (voormiddag)

1) NFS: Model, performantie en avaiability.

2) P2P: Seti, Napster en Gnutella tov def 1, en dan zelfde ongeveer tov def 2 en leg kort uit hoe werkt.

3) Distributed deadlock detectie: leg edge chasing en prioriteiten hierbij uit.

4) Definieer cloud computig, Paas, Saas, Iaas? En dan je biedt dienst aan voor hotels, welk diensten biedt je aan? wat moet je inkopen? Welk type cloud is dit....

5) Java EE practicum: Persistense uitleggen + verband met transacties

6) GAE practicum: Verschillen in persistense tss JEE en GAE vergelijken, en tonen waar je hier in practicum hebt moeten mee rekening houden. + is dit verschil er ook bij andere cloud providers?

15 januari 2013 (voormiddag)

1) AFS (15% - schriftelijk)

  • AFS uitleggen.
  • Performance karakteristieken uitleggen mbt. het design van AFS.
  • Reliability karakteristieken uitleggen mbt. het design van AFS.

2) P2P (15% - schriftelijk)

  • Chord uitleggen.
  • Gnutella uitleggen.
  • 3 toepassingen worden gegeven, bespreek Chord en Gnutella ivm. deze toepassingen.

3) Distributed deadlock detection (15% - schriftelijk)

  • Principes distributed deadlock detection uitleggen.
  • Bespreek edge chasing.
  • Gebruik van transactieprioriteiten bij edge chasing uitleggen.

4) Replication (15% - mondeling)

  • Active replication uitleggen.
  • Passive replication uitleggen.
  • Active en passive replication vergelijken.
  • Waar en waarom wordt er gebruik gemaakt van groepscommunicatie?

5) Transactions / JEE practicum (20% - schriftelijk)

Waar mogelijk uitleg geven over bean- en container-managed transactions.

  • Uitleggen wat een transactie is.
  • Hoe gebruik je transacties in JEE (demarcation, granularity, rollback, …)?
  • Heb je bean- of container-managed transactions gebruikt in uw JEE practicum? Waarom?
  • Wanneer moet het 2-phase commit protocol gebruikt worden?
  • Geef 3 TransactionAttributes. Leg uit wat ze betekenen.

6) Persistence / GAE practicum (20% - mondeling)

  • Bespreek de persistence mogelijkheden van GAE.
  • Bespreek de persistence mogelijkheden van JEE.
  • Wat verschilt er tussen de twee?
  • Welke van deze verschillen hebben een effect gehad op je (design van je) GAE practicum?
  • Zijn deze verschillen op andere cloud platformen terug te vinden?

2011-2012

27 januari 2012 (voormiddag)

  • 1) Bespreek NFS, Geef ook de eigenschappen ivm Beschikbaarheid en Performantie (mondeling, 15%)
  • 2) Gegeven de definitie van Stoica, bespreek Napster, Seti@home, Gnutella 0.4 ivm met deze definitie. Geef een alternatieve definitie, leg uit hoe de systemen hieraan voldoen. (schriftelijk, 15%)
  • 3) Leg Gedistribueerde transacties uit. Bespreek het Edge-chasing algoritme. Leg uit hoe dit verband houdt met prioriteiten. (schriftelijk, 15%)
  • 4) Leg passieve en actieve replicatie uit. Waar wordt er gebruik gemaakt van groepscommunicatie. Vergelijk passieve en actieve replicatie (schriftelijk, 10%)
  • 5) Leg beknopt Google App engine en MS Azure uit. Wat voor systemen zijn dit (IaaS, PaaS, SaaS) en leg ze kort uit. Wat zijn de verschillen en de gelijkenissen tussen GAE en MS Azure. (schriftelijk, 10%)
  • 6) 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? (schriftelijk, 15 %)
  • 7)Wat zijn transacties. Hoe duid je deze aan. Waar gebruikt in project. Geef 3 mogelijke waarden voor TransactionAttribute + wat betekenen ze? Vergelijk Container of bean managed transactions, welke heb je gebruikt in je practicum en waarom? Wanneer gebruik je 2 phase commit protocol. (mondeling, 20%)


2010-2011

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.