The processes interact by passing messages resulting in
Communication (Information flow)
Coordination (Synchronization)
Reflects that communication takes place with delays
Performance of communication channel
Latency (Message, Network, System)
Bandwidth
Jitter
Variants
Synchronous
Process is executing in a known lower/upper bound time
Message is received within a known bounded time
Known local clock drifts rate
Asynchronous
Process execution speed
Message transmission delay
Clock drift rate
Fault Model
Defines and classifies the faults
Types
Fail Stop
Process halts and remain halted, other processes can detect that process has failed
Crash
Process halts and remain halted, other processes may not be able to detect this state
Omission
Message inserted in an outgoing message buffer never arrives at the other end incoming message buffer
Arbitrary
Process/Channel exhibits arbitrary behavior, it may send/transmit arbitrary messages at arbitrary times, commit missions, a process may stop or take an incorrect step
Timing
Clock drift exceeds allowable bounds
Security Model
Potential threats
Threat to process
Attacker sends a request or response using false identity
Threat to communication channel
Attacker listens to messages and save (Eavedrops)
Denial of service
Attacker overloads a server by making excessive requests
Cryptography and Authentication are often used to provide security
Architectural Models
Deals with organization of components across the network of computers and their relationships
Types
Client-Server Model
Client (Master) and Server (Slave) roles are assigned & changeable
Sever can act as both master & slave => Server calling another server
While server is providing services the client has to wait for results
Gives required result or gives error
Application Layering (Partition)
User interface level
The processing level
Operates on DB and File system
Data level
Client-Server Architecture
Multi-tired
2-tier Architecture
Client & Server machine
Modern Architecture
Vertical distribution
Logically different components are placed in different machines
Horizontal distribution
Clients or Servers are logically distributed in various parts
Peer-to-Peer Model
Does not distinguish between client and server, each node can either be client or server depending on whether the node is requesting or providing services
Each node is considered as peer
Pattern of communication depends on application requirements
Each object is replicated in several computers to further distribute the load
It needs to place and retrieve individual computers making it more complex