H2: Middleware Flashcards
(30 cards)
Hoe werkt Chord Search?
Een chain van remote procedure calls tot dat het gezochte resultaat is gevonden.
Wat is de 4-Tuple van een Berkeley socket?
IP src, port src, ip dst, port dst
Hoe werkt de interactie met Berkeley sockets
sockets -> connect -> accept -> write -> read -> write -> read -> write -> read -> close -> read
Wanneer worden socket, bind en listen gebruikt?
Socket maakt een nieuwe connection endpoint
Bind linkt een lokaal address met de socket (server)
Listen is willing om N connecties te accepteren
Welke extra’s komen er nog bij bij remote invocation die nodig zijn? (5)
Creating sockets
Byte streaming (marshalling)
Fault tolerance
Multi threading
Closing sockets
Uni processor vs Multi-processor vs Multicomputer:
- OS infrastructuur
- Memory access
OS infrastructuur:
- Een simpele machine, 1 kernel, 1 core
- Multiple cores, multi CPU, 1 machine
- Heel verschillend
Memory access:
- Direct memory access
- Direct memory access (Uniform of niet uniform (NUMA))
- Geen directe memory access
Welke 3 taken zitten nog tussen applications en OS Wat is de verzamelnaam?
- RPCs en RMIs
- Request reply protocol
- External data representation
Verzamelnaam: Middleware
Hoe kan je een method invocation via dezelfde address space doen?
Je gaat eerst het Object (Class) verkrijgen met een Object Reference (bv. Pointer) en dan via het Interface (Methodes) de methode aanroepen die je nodig hebt.
Hoe kan je een method invocation doen buiten de address space?
Remote Object (bv. service) eerst localiseren en kunnen bereiken via Remote Object Reference (URL), en dan via de remote interface de juiste methode aanspreken (API)
Wat is een remote object reference? Welke items zitten hierin (5)?
Een ID wat uniek is voor objects in een distributed system over tijd en ruimte.
IP + Port + Creation Time + Object nr + Interface
Wanneer is iets een local invocation en wanneer is iets een remote invocation? Hoe wordt het opgeroepen? Hoe zit het met access? Hoevaak wordt het invoked?
Alleen binnen hetzelfde process is het een local invocation. Opgeroepen met een Local of Remote Object Reference. De externe interface is natuurlijk veel stricter dan de interne. De lokale wordt exact 1 keer geinvoceert, bij extern kan er nog veel meer gebeuren maar weten we het niet omdat we dit niet weten door proxies en andere zaken.
Wat zijn de 5 failure modes van RMI/RPC?
- Lost Request
- Lost Reply
- Client failed voor receiving reply
- Server failed voor execution
- Server crashed tijdens execution, voor de reply
Hoe kan men de failure modes van RMI/RPC oplossen? (3)
- Request opnieuw sturen
- Duplicates filteren
- Reply opnieuw sturen (kan met table of opnieuw runnen)
Wat zijn invocation semantics?
De geranties op het aantal executies na een remote invocation.
Wat zou verborgen moeten zijn bij een remote invocation? (4)
- Location / contact met remote object
- Marshalling
- Fault tolerance measures
- Communications details (sockets)
Wat zou een gebruiker moeten weten bij een remote invocation? (3)
- Of object remote is
- Invocation semantics
- Failures
Welke component zorgt ervoor dat requests naar de juiste remote objects methodes gaan?
Remote reference module
Hoe krijg je de initiele reference voor een remote reference module? (2)
- Server contacteren
- Binding service
Waarom moet je al de middelware code niet schrijven?
Zit in de IDL (interface descriptive language).
Wat is middelware?
De softwarelaag tussen het OS en de applicatie laag die voor communicatie en databeheer tussen systemen zorgt.
Wat is een RPC?
Een Remote Procedure Call is een protocol dat code op een andere machine laat runnen.
Wat is een RMI?
Een Remote Method Invocation is een methode om objects van andere Java Virtual Machines op te roepen.
Wat is een Socket?
Een abstractie voor inter-process communicatie, zet dingen “op de wire”
Wat is een proxy? Wat zijn zijn taken?
Een component die responsible is voor RMI, maar als een lokaal object gedraagd.
- Marshalling
- Forwarding
- Unmarshalling