Design Issues of Distributed Systems

Estudies4you
Design Issues of Distributed Systems
Design Issues of Distributed Systems
Designing issues of DS
·         Heterogeneity
·         Openness
·         Security
·         Synchronization
·         Absence of global clock
·         Partial failures
·         Scalability
·         transparency
Heterogeneity:
  • The distributed system contains many different kinds of hardware and software working together in cooperative fashion to solve problems.
  • There may be many different representations of data in the system this might include different representations for integers, byte streams, floating point numbers and character sets.
  • There may be many different instructions sets. An application compiled for one instruction set cannot be easily run on a computer with another instruction set unless an instruction set interpreter is provided
  • Components in the distributed system have different capabilities like faster clock cycles, larger memory capacity, bigger disk farms, printers and other peripherals and different services
High Degree of node heterogeneity:
    • High-performance parallel systems (multiprocessors as well as multicomputer)
    • High-end PCs and workstations (servers)
    • Simple network computers (offer users only network access)
    • Mobile computers (palmtops, laptops)
    • Multimedia workstations
High degree of network heterogeneity:
    • Local area gigabit networks
    • Wireless connections
    • Long-haul, high-latency connections
Observation: Ideally, a distributed system must hide these differences
Openness:
  • The openness of a computer system is the characteristic that determines whether the system can be extended and reimplemented in various ways
  • The challenge to designers is to tackle the complexity of distributed systems consisting of many components engineered by different people
  • Open systems are characterized by the fact that their key interfaces are published\
  • Open distributed systems are based on the provision of a uniform communication mechanism and published interfaces for access to shared resources
  • Open distributed systems can be constructed from heterogeneous hardware and software, possibly from different vendors
Security
  • Shared data must be protected
o   Privacy -  avoid unintentional disclosure of private data
o   Security – data is not revealed to unauthorized parties
o   Integrity – protect data and system state from corruption
  • Denial of service attacks – put significant load on the system, prevent users from accessing it
Security in detail concerned in the following areas:
·         Authentication, Authorization/Access control: are the means to identify the right user and user right
·         Critical Infrastructure Protection: CIP is the protection of information systems for critical infrastructures including telecommunications, energy, financial services, manufacturing, water, transportation, health care and emergency services sectors
·         Distributed Trust and Policy Management: designed to address the authorization needs for the next-generation distributed systems. A trust management system is a term coined to refer to a unified framework for the speciation of security policies, the representation of credentials, and the evaluation and enforcement of policy compliances
·         Multicasting security and IPR Protection: defines the common architecture for multicast security(MSEC) key management protocols to support a variety of application, transport, network layer security protocol and the intellectual property rights
·         Multimedia Security: is intended to provide an advanced multimedia application course with its focus on security. two major areas of concern- to ensure secure uses of multimedia data and to use multimedia data for security applications
Ø  Object security (OMG/CORBA security, EJB Security, DCOM/COM Security)
Ø  Privacy: is it a purely political or moral issue?
·         Risk analysis, Assessment, Management: A security policy framework is necessary to support the security infrastructure required for the secure movement of sensitive information across and within national boundaries
Synchronization
·         Concurrent cooperating tasks need to synchronize
o   When accessing shared data
o   When performing a common task
·         Synchronization must be done correctly to prevent data corruption:
o   Example: two account owner; one deposits the money, the other one withdraws; they act concurrently
o   How to ensure the bank account is in “correct” state after these actions?
·         Synchronization implies communication
·         Communication can take a long time
·         Excessive synchronization can limit effectiveness and scalability of distribute system
Absence of Global Clock
  • Cooperating task need to agree on the order of events
  • Each task its own notion of time
  • Clocks cannot be perfectly synchronized
  • How to determine which even occurred first?
Example:
Bank account, starting balance = $100
Client at bank machine A makes a deposit of $150
Client at bank machine B makes a withdrawal of $100
Which event happened first?
Should the bank charge the overdraft fee?
Partial Failures
  • Detection of failures - may be impossible
  • Has a component crashed? Or is it just show?
  • Is the network down? Or is it just slow?
  • If it’s slow – how long should we wait?
  • Handling of failures
  • Re-transmission
  • Tolerance for failures
  • Roll back partially completed task
  • Redundancy against failures
  • Duplicate network routes
  • Replicated databases
Scalability
  • Does the system remain effective as of grows?
  • As you add more components:
  • More synchronization
  • More communication à the system runs slowly.
  • Avoiding performance bottlenecks:
  • Everyone is waiting for a single shared resource
  • In a centrally coordinated system, everyone waits for the co-coordinator
Transparency
Distributed systems designers must hide the complexity of the systems as much as they can. Adding abstraction layer is particularly useful in distributed systems.
Example: While users hit search in google.com, they never notice that their query goes through a complex process before Google shows them a result
  • Concealing the heterogeneous and distributed nature of the system so that it appears to the user like one system
Transparency categories
Access: access local and remote resources using identical operations (NFS or Samba-mounted file systems)
Location: access without knowledge of location of a resource (URL’s, e-mail)
Concurrency: allow several processes to operate concurrently using shared resources in a consistent fashion (two users simultaneously accessing the bank account)
Transparency categories
Mobility: allow resources to move around
Performance: adaption of the system to varying load situations without the user noticing it
Scaling: allow system and applications to expand without need to change structure of applications or algorithms


To Top