Architecture

Introduction

Protocol Layers

ISO OSI Protocol

OSI layers

TCP/IP Protocol

Some Alternative Protocols

Networking

Gateways

Packet encapsulation

Connection Models

Connection oriented

Connectionless

Communications Model

Distributed Computing Models

Client/Server System

Client/Server Application

Server Distribution

Component Distribution

Gartner Classification

Example: Distributed Database

Example: Network File Service

Example: Web

Example: Terminal Emulation

Example: Expect

Example: X Window System

Three Tier Models

Fat vs thin

Middleware model

The middleware model is

Middleware

Middleware examples

Middleware functions

Continuum of Processing

Points of Failure

Acceptance Factors

Transparency

Eight fallacies of distributed computing

Sun Microsystems was a company that performed much of the early work in distributed systems, and even had a mantra "The network is the computer." Based on their experience over many years a number of the scientists at Sun came up with the following list of fallacies commonly assumed:

  1. The network is reliable.
  2. Latency is zero.
  3. Bandwidth is infinite.
  4. The network is secure.
  5. Topology doesn't change.
  6. There is one administrator.
  7. Transport cost is zero.
  8. The network is homogeneous.

Many of these directly impact on network programming. For example, the design of most remote procedure call systems is based on the premise that the network is reliable so that a remote procedure call will behave in the same way as a local call. The fallacies of zero latency and infinite bandwidth also lead to assumptions about the time duration of an RPC call being the same as a local call, whereas they are magnitudes of order slower.

The recognition of these fallacies led Java's RMI (remote method invocation) model to require every RPC call to potentially throw a RemoteException. This forced programmer's to at least recognise the possibility of network error and to remind them that they could not expect the same speeds as local calls.