Architecture
Introduction
Protocol Layers
-
Communications betweens processes takes place using agreed conventions -
protocols
-
Network communications requires protocols to cover high-level application
communication all the way down to wire communication
-
Complexity handled by encapsulation in protocol layers
ISO OSI Protocol
OSI layers
-
Network layer provides switching and routing technologies
-
Transport layer provides transparent transfer of data between end systems
and is responsible for end-to-end error recovery and flow control
-
Session layer establishes, manages and terminates connections between
applications.
-
Presentation layer provides independance from differences in data
representation (e.g. encryption)
-
Application layer supports application and end-user processes
TCP/IP Protocol
Some Alternative Protocols
-
Firewire
-
USB
-
Bi-directional pipes
-
Pseudo-terminals
Networking
-
A network is a communications system for connecting end systems
called hosts
-
A local area network (LAN) connects computers that are close together,
e.g. by ethernet
-
A Wide Area Network (WAN) connects computers in different cities,
-
A Metropolitan Area Network (MAN) is intermediate in size
-
The Queen St Mall in Brisbane has a wireless network along its
kilometre length. There doesn't seem to be a suitable term yet
apart from "wireless hotspot"
-
An internet is a connection of two or more distinct LANs or WANs
-
An intranet is an internet with all networks belonging to a single
organisation
Gateways
-
A gateway is a generic term for an entity used to connect two or
more networks
-
A repeater operates at the physical level copies the information from
one subnet to another
-
A bridge operates at the data link layer level and copies frames
between networks
-
A router operates at the network level and not only moves information
between networks but also decides on the route
Packet encapsulation
Connection Models
-
Connection oriented
-
Connectionless
Connection oriented
-
A single connection is established for the session
-
Two-way communications flow along the connection
-
When the session is over, the connection is broken.
-
The analogy is to a phone conversation
-
An example is TCP
Connectionless
-
In a connectionless system, messages are sent independant of each other
-
Ordinary mail is the analogy
-
Connectionless messages may arrive out of order
-
An example is the IP protocol
-
Connection oriented transports may be established on top of connectionless
ones - TCP over IP
-
Connectionless transports my be established on top of connection
oriented ones - HTTP over TCP
Communications Model
-
Message passing
-
Event driven
-
Procedure call
-
ordinary procedure call
-
dynamic link library procedure call
-
remote procedure call
-
lightweight remote procedure call
Distributed Computing Models
-
Peer to peer
-
Filter
-
Client Server
Client/Server System
Client/Server Application
Server Distribution
-
Single client, single server
-
multiple clients, single server
-
single client, multiple servers
-
multiple clients, multiple servers
Component Distribution
-
Presentation component
-
Application logic
-
Data access
Gartner Classification
Example: Distributed Database
-
Gartner classification: 1
Example: Network File Service
-
This allows remote clients acess to a shared file system
-
Gartner classification: 2
Example: Web
-
This is a distributed hypertext system, with many additional mechanisms
-
Gartner classification: 3
Example: Terminal Emulation
-
This allows a remote system to act as a normal terminal on a local system
-
Gartner classification: 4
Example: Expect
-
This acts as a wrapper around a classical system, either to provide an
X Window interface or an alternative character-based one
-
Gartner classification: 5
Example: X Window System
-
This decouples application view of windowing and display view of windowing
-
Gartner classification: 5
Three Tier Models
Fat vs thin
-
Clients and servers may be "fat" or "thin" (no normal size?)
-
Fat clients use up space on each client they run on, may have complex
installation requirements, etc (e.g. Netscape or IE - which "has" to be part
of the O/S)
-
Thin clients have reduced functionality, but are easier to manage
-
The network computer model favours thin clients.
Middleware model
The middleware model is
Middleware
-
The network services include things like TCP/IP
-
The middleware layer is application-independent s/w using the network
services
-
Examples of middleware are: DCE, RPC, Corba
-
Middleware may only perform one function (such as RPC) or many (such
as DCE)
Middleware examples
-
Primitive services such as terminal emulators, file transfer, email
-
Basic services such as RPC
-
Integrated services such as DCE, Network O/S
-
Distributed object services such as CORBA, OLE/ActiveX
-
Mobile object services such as RMI, Jini
-
World Wide Web
Middleware functions
-
Initiation of processes at different computers
-
Session management
-
Directory services to allow clients to locate servers
-
remote data access
-
Concurrency control to allow servers to handle multiple clients
-
Security and integrity
-
Monitoring
-
Termination of processes both local and remote
Continuum of Processing
Points of Failure
-
The client side of the application could crash
-
The client system may have h/w problems
-
The client's network card could fail
-
Network contention could cause timeouts
-
There may be network address conflicts
-
Network elements such as routers could fail
-
Transmission errors may lose messages
-
The client and server versions may be incompatable
-
The server's network card could fail
-
The server system may have h/w problems
-
The server s/w may crash
-
The server's database may become corrupted
Acceptance Factors
-
Reliability
-
Performance
-
Responsiveness
-
Scalability
-
Capacity
-
Security
Transparency
- access transparency
- location transparency
- migration transparency
- replication transparency
- concurrency transparency
- scalability transparency
- performance transparency
- failure 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:
-
The network is reliable.
-
Latency is zero.
-
Bandwidth is infinite.
-
The network is secure.
-
Topology doesn't change.
-
There is one administrator.
-
Transport cost is zero.
-
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.