Design Challenges to Construct Distributed System Ajaykumar.M.V IT Department
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
• 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
Heterogeneity… continued
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 &
integrity3. 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 handlingIn the domain of network & server
How to deal with partial failures?Techniques for failure handling1.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 Transparency2. Location Transparency3. Concurrency Transparency4. Replication Transparency5. Failure Transparency6. Mobility Transparency7. Performance Transparency8. 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