Design Challenges to Construct 
Distributed System 
Ajaykumar.M.V 
IT Department
The following are the Challenges to 
construct distributed system 
1. Heterogeneity 
2. Openness 
3. Security 
4. Scalability 
5. Failure handling 
6. Concurrency 
7. Transparency
1. Heterogeneity 
Variety and difference 
-Networks, computer hardware, OS, Programming 
language 
– solutions: middleware is needed (i.e. corba), mobile code, virtual 
machines 
•Networks 
–Ethernet, token ring, etc 
•Computer hardware 
–big endian / little endian 
•Operating systems 
–different API of Unix and Windows 
•Programming languages 
–different representations for data structures 
•Implementations from different developers 
–no application standards
Heterogeneity… continued 
• Middleware 
– applies to a software layer that provides a programming 
abstraction as well as masking the heterogeneity of the 
underlying networks, hardware, OSs and programming 
languages 
– CORBA(common object request broker architecture) 
– Java RMI(remote method invocation) 
• Mobile code 
– is used to refer to code that can be sent from one computer to 
another and run at the destination. 
– Ex) Java applet: JVM(java virtual machine) provides an abstract 
a way of making code executable on any hardware
2. Openness 
– extended and re-implemented in various ways 
• Openness of a computer system 
-- is the characteristic that determines whether the system 
can be extended and re-implemented in various way. 
e.g. Unix 
• Openness of distributed systems 
-- is determined by the degree to witch new resource 
sharing services can be added and be made available for 
use by A variety of client programs. 
e.g. Web
3. Security 
1. Confidentiality 
• protection against disclosure to unauthorized 
individuals, 
2. Integrity 
• protection against alteration or corruption, e.g. 
checksum 
• Cryptography can enhance confidentiality & 
integrity 
3. Availability 
• protection against interference with the means to 
access the resources, 
• e.g. Denial of service 
• Security of mobile code
4. Scalability 
– effective with significant increase in resources 
– cost and performance 
• A system is described as scalable 
– if will remain effective when there is a significant 
increase in the number of resources and the 
number of users 
• A scalable example system: the Internet
5.Failure handling 
In the domain of network & server 
How to deal with partial failures? 
Techniques for failure handling 
1.Detecting Failures : some failures can be detected 
•e.g. checksums can be used to detect corrupted data in a 
message or a file. 
2.Masking Failures : some failures that have been detected ,can be 
hidden. 
two examples of hiding failures 
* messages can be retransmitted when they fail to 
arrive. 
* file data can be written to pair of disks so that if 
one is corrupted, they other may still be correct. 
3. Tolerating Failures :- ignore, timeout 
•e.g. a web browser cannot contact a web server
4. Recovery Failures : Recovery involves the design of 
software so that the state of permanent data can be 
recovered or rollback after a server has crashed. 
• e.g. Roll back 
5. Redundancy in hardware/software 
service can be made available by the use of redundant 
components.
6. Concurrency 
• Both services and applications provide resources that can be 
shared by client in a distributed system. 
• Correctness 
– ensure the operations on shared resource correct in a 
concurrent environment 
• Performance 
– Ensure the high performance of concurrent operations
7. Transparency 
• how to make a collection of computers appear as a 
single computer. 
• Hiding all the distribution from the users as well as 
the application programs. 
• Transparency is defined as the concealment from 
the user and the application programmer of the 
separation of components in a distributed system.
7. Transparency 
1. Access Transparency 
2. Location Transparency 
3. Concurrency Transparency 
4. Replication Transparency 
5. Failure Transparency 
6. Mobility Transparency 
7. Performance Transparency 
8. Scaling Transparency
1. Access Transparency 
• enables local and remote resources to be 
accessed using identical operations 
• Example: SQL Queries 
• Example: File system operations in NFS.
2. Location Transparency 
• enables resources to be accessed without 
knowledge of their physical or network 
location. 
• Example: pages in the web 
• Example: File system operations in NFS 
• Example: Tables in distributed databases
3. Concurrency Transparency 
• enables several processes to operate 
concurrently using shared resources without 
interference between them 
• Example: NFS 
• Example: Automatic teller machine network 
• Example: Database management system
4. Replication Transparency 
• enables multiple instances of resources to be 
used to increase reliability and performance 
without knowledge of the replicas by users or 
application programmers. 
• Example: Distributed DBMS 
• Example: Mirroring Web Pages.
5. Failure Transparency 
• enables the concealment of faults, allowing 
users and application programs to complete 
their tasks despite the failure of hardware or 
software components. 
• e.g., email 
• Example: Database Management System
6.Mobility Transparency 
• allows the movement of resources and clients 
within a system without affecting the 
operation of users or programs. 
• Example: NFS 
• Example: Web Pages 
• Example: mobile phone
7 .Performance Transparency 
• Allows the system to be reconfigured to 
improve performance as loads vary. 
• Example: Distributed make.
8. Scaling Transparency 
• Allows the system and applications to expand 
in scale without change to the system 
structure or the application algorithms. 
• Example: World-Wide-Web 
• Example: Distributed Database
Thank You

3. challenges

  • 1.
    Design Challenges toConstruct Distributed System Ajaykumar.M.V IT Department
  • 2.
    The following arethe Challenges to construct distributed system 1. Heterogeneity 2. Openness 3. Security 4. Scalability 5. Failure handling 6. Concurrency 7. Transparency
  • 4.
    1. Heterogeneity Varietyand difference -Networks, computer hardware, OS, Programming language – solutions: middleware is needed (i.e. corba), mobile code, virtual machines •Networks –Ethernet, token ring, etc •Computer hardware –big endian / little endian •Operating systems –different API of Unix and Windows •Programming languages –different representations for data structures •Implementations from different developers –no application standards
  • 5.
    Heterogeneity… continued •Middleware – applies to a software layer that provides a programming abstraction as well as masking the heterogeneity of the underlying networks, hardware, OSs and programming languages – CORBA(common object request broker architecture) – Java RMI(remote method invocation) • Mobile code – is used to refer to code that can be sent from one computer to another and run at the destination. – Ex) Java applet: JVM(java virtual machine) provides an abstract a way of making code executable on any hardware
  • 6.
    2. Openness –extended and re-implemented in various ways • Openness of a computer system -- is the characteristic that determines whether the system can be extended and re-implemented in various way. e.g. Unix • Openness of distributed systems -- is determined by the degree to witch new resource sharing services can be added and be made available for use by A variety of client programs. e.g. Web
  • 7.
    3. Security 1.Confidentiality • protection against disclosure to unauthorized individuals, 2. Integrity • protection against alteration or corruption, e.g. checksum • Cryptography can enhance confidentiality & integrity 3. Availability • protection against interference with the means to access the resources, • e.g. Denial of service • Security of mobile code
  • 9.
    4. Scalability –effective with significant increase in resources – cost and performance • A system is described as scalable – if will remain effective when there is a significant increase in the number of resources and the number of users • A scalable example system: the Internet
  • 10.
    5.Failure handling Inthe domain of network & server How to deal with partial failures? Techniques for failure handling 1.Detecting Failures : some failures can be detected •e.g. checksums can be used to detect corrupted data in a message or a file. 2.Masking Failures : some failures that have been detected ,can be hidden. two examples of hiding failures * messages can be retransmitted when they fail to arrive. * file data can be written to pair of disks so that if one is corrupted, they other may still be correct. 3. Tolerating Failures :- ignore, timeout •e.g. a web browser cannot contact a web server
  • 11.
    4. Recovery Failures: Recovery involves the design of software so that the state of permanent data can be recovered or rollback after a server has crashed. • e.g. Roll back 5. Redundancy in hardware/software service can be made available by the use of redundant components.
  • 12.
    6. Concurrency •Both services and applications provide resources that can be shared by client in a distributed system. • Correctness – ensure the operations on shared resource correct in a concurrent environment • Performance – Ensure the high performance of concurrent operations
  • 13.
    7. Transparency •how to make a collection of computers appear as a single computer. • Hiding all the distribution from the users as well as the application programs. • Transparency is defined as the concealment from the user and the application programmer of the separation of components in a distributed system.
  • 14.
    7. Transparency 1.Access Transparency 2. Location Transparency 3. Concurrency Transparency 4. Replication Transparency 5. Failure Transparency 6. Mobility Transparency 7. Performance Transparency 8. Scaling Transparency
  • 16.
    1. Access Transparency • enables local and remote resources to be accessed using identical operations • Example: SQL Queries • Example: File system operations in NFS.
  • 17.
    2. Location Transparency • enables resources to be accessed without knowledge of their physical or network location. • Example: pages in the web • Example: File system operations in NFS • Example: Tables in distributed databases
  • 18.
    3. Concurrency Transparency • enables several processes to operate concurrently using shared resources without interference between them • Example: NFS • Example: Automatic teller machine network • Example: Database management system
  • 19.
    4. Replication Transparency • enables multiple instances of resources to be used to increase reliability and performance without knowledge of the replicas by users or application programmers. • Example: Distributed DBMS • Example: Mirroring Web Pages.
  • 20.
    5. Failure Transparency • enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components. • e.g., email • Example: Database Management System
  • 21.
    6.Mobility Transparency •allows the movement of resources and clients within a system without affecting the operation of users or programs. • Example: NFS • Example: Web Pages • Example: mobile phone
  • 22.
    7 .Performance Transparency • Allows the system to be reconfigured to improve performance as loads vary. • Example: Distributed make.
  • 23.
    8. Scaling Transparency • Allows the system and applications to expand in scale without change to the system structure or the application algorithms. • Example: World-Wide-Web • Example: Distributed Database
  • 24.