Middleware

  1. What is its role in distributed systems and advantages/disadvantages.
  2. What is its application in distributed system architectures.

Role

Middleware contains commonly used component and functions in every nodes. Its role is to enhance the distribution transparency that is missing in networking. In other words, middleware aims at improving the single system view that a distributed system should have.

Benefits

Disadvantage

Applicatons

Adaptivity can be increased with interceptor

Networks

  1. Differences between circuit-switched and packet-switched networks
  2. ISO/OSI layers/reference model
  3. TCP vs UDP

Circuit and Packet Network


Circuit-switched Packet-switched


End to end resources reserved for End to end data stream is divided data transmission. into packets.

The number of current users is Allow more users to use network. limited.

Requires a call setup to start. No call setup required.

Line is reserved. Data transmission Line is shared. It may encounter is reliable. congestion and loss or delay of packets.


ISO/OSI Model Layers

  1. Physical: bits get transfered on the circuit and hardware.
  2. Link: data transfer between neighboring network elements.(ATM, Ethernet)
  3. Network: routing of packets from source to destination.(IP)
  4. Transport: message handling and control.(TCP, UDP)
  5. Application: protocol implemented by user processes.(HTTP, FTP)

TCP and UDP


Transmission Control Prorocol User Datagram Protocol


Connection-oriented: need handshake. Connectionless: no setup requried.

Reliable transport: arrival of Unreliable transport: arrival status message is guaranteed. is unknown.

Flow control: order of messages is No flow control: message order maybe guaranteed. reversed.

Header is large. Process is slow. Header is small. Process is fast.


RPCs

Client/Server computing is generally based on a model of transient synchronous communication.

  1. Mechanisms, request-reply protocol
  2. Fault tolerance?
  3. Semantics
  4. Differences between presistent and transient messaging.

Semantics

Copy in/copy out semantics: while procedure is executed, nothing can be assumed about parameter values.

Transient and Persistent

Name Resolution

  1. Pros/cons of iterative and revursive name resolution
  2. What kind of protocol does DNS use?

Iterative and Recursive Resolution

DNS Protocol

DNS uses both recursive and iterative resolution protocols.

DFS

  1. Models (upload/download, remote access)
  2. How is transparency achieved
  3. How are update semantics maintained/provided

Models

Transparency

Transparency is achieved by mounting remote file system to local. File operations are passed to server via RPC. Clients may preform operations on remote files just like local files, so the distrubuted implementation is hidden from clients.

Semantics of File Sharing

Synchronization

Given distributed transaction, is each local history serializable? what is each local history’s serial order? Are the histories globally serializable? What is the global serial order? If not, why not?

Clocks

Pysical clock: Universal Coordinated Time(UTC), is synchronized with a time server.

Logic clock: Lamport’s, is updated when an event happens and syncronized when a message is sent/recieved. It does not guarantee causal order.

Election Algorithms

ACID

ACID are properties of transactions.

2PL and S-2PL

2PL is 2-Phase Locking. 2PL requires a transaction acquires lock before using resource. The transaction cannot request another lock after it has released a lock.

Serializability

An execution of serveral concurrent transactions are serializable if and only if there is an equivalent serial execution of those transactions.

Two operations from different transactions are conflict if the one happen first is write operation.

Timestamp-based Protocol

Let X be an object and T be current transaction.

Replication

  1. Lazy vs. eager?
  2. Data-centric vs client-centric
  3. Quorum protocols, conditions for forming read/write quorum

Data-centric and Client-centric

Fault tolerance

Cloud and Data-Intensive Systems