2. The following are the Challenges to
construct distributed system
1. Heterogeneity
2. Openness
3. Security
4. Scalability
5. Failure handling
6. Concurrency
7. Transparency
3.
4. 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
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
8.
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
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
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.
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