CS 407 Distributed System & Databases
DAY # 13
The Internet enables users to access services and run applications over a heterogeneous collection of
computers and networks. Heterogeneity (that is, variety and difference) applies to all of the following:
computer hardware;
operating systems;
programming languages;
Implementations by different developers.
The term middleware applies to a software layer that provides a programming abstraction as
well as masking the heterogeneity of the underlying networks, hardware, operating systems
and programming languages.
Heterogeneity and mobile code
The term mobile code is used to refer to program code that can be transferred from one
computer to another and run at the destination – Java applets are an example.
The virtual machine approach provides a way of making code executable on a variety of host
computers: the compiler for a particular language generates code for a virtual machine instead
of a particular hardware order code. For example, the Java compiler produces code for a Java
virtual machine, which executes it by interpretation.
Openness is concerned with extensions and improvements of distributed systems.
Detailed interfaces of components need to be published.
New components have to be integrated with existing components.
Differences in data representation of interface types on different processors (of different vendors)
have to be resolved.
Engr. Muhammad Nadeem
Page 1
CS 407 Distributed System & Databases
Many of the information resources that are made available and maintained in distributed systems have a
high intrinsic value to their users. Their security is therefore of considerable importance. Security for
information resources has three components:
Confidentiality (protection against disclosure to unauthorized individuals)
Integrity (protection against alteration or corruption)
Availability (protection against interference with the means to access the resources).
 In a distributed system, clients send requests to access data managed by servers, resources in the
o Doctors requesting records from hospitals
o Users purchase products through electronic commerce
 Security is required for:
o Concealing the contents of messages: security and privacy
o Identifying a remote user or other agent correctly (authentication)
 New challenges:
o Denial of service attack
o Security of mobile code
Both of these challenges can be met by the use of encryption techniques developed
However, the following two security challenges have not yet been fully met:
Denial of service attacks
Another security problem is that a user may wish to disrupt a service for some reason. This can be
achieved by bombarding the service with such a large number of pointless requests that the serious
users are unable to use it. This is called a denial of service attack.
Security of mobile code
Mobile code needs to be handled with care. Consider someone who receives an executable program
as an electronic mail attachment: the possible effects of running the program are unpredictable.
Engr. Muhammad Nadeem
Page 2
CS 407 Distributed System & Databases
DAY # 14
A system is described as scalable if it will remain effective when there is a significant increase in the
number of resources and users. Example: the Internet is one such distributed system.
Challenges in the designing of scalable distributed systems include:
Controlling the cost of physical resources.
For a system with n users to be scalable, the quantity/cost of physical resources to support them
must be at most O(n), i.e., proportional to n. So if a single file server can support 20 users, 2 such
servers should support 40 users.
Controlling the performance loss.
Algorithms that use hierarchic storage structures (e.g. LDAP) scale better than those that use
linear (e.g. flat file data tables) structures. Even with hierarchic structures an increase in size (of
data) will result in some performance loss since the the time taken to access hierarchically
structured data is O(log n), where n is the size of the data set.
Preventing software resources running out.
Lack of scalability is shown by the 32-bit IP addresses. The new version (IP v6) will use 128 bit
Avoiding performance bottlenecks.
Algorithms should be decentralized to avoid performance bottlenecks. E.g. the name table in DNS
was originally kept in a single master file. This became a performance bottleneck. It was then
partitioned between DNS servers located throughout the Internet and administered locally.
Caching and replication can also improve performance of resources that are heavily used.
Failure Handling
Failures in distributed systems are partial – some components fail while others continue to function.
Hence failure handling can be difficult. Techniques can be used to:
Engr. Muhammad Nadeem
Page 3
CS 407 Distributed System & Databases
Detect failures:
E.g. use checksums to detect corrupt data in a file/message. Other times failure can only be
suspected (e.g. a remote server is down) but not detected and the challenge is to manage in the
presence of such failures.
Mask Failures:
Some failures that have been detected can be masked/hidden or made less severe. E.g. messages
can be retransmitted when then fail to be acknowledged. This might not help if the network is
severely congested and in this case even the retransmission may not get through before timeout.
Another e.g. File data can be written to a pair of disks so that if one is corrupted, the other may
still be correct (redundancy to achieve fault-tolerance).
Tolerate Failures:
Most of the services on the Internet exhibit failures and it is not practical to detect or mask all the
possible kinds of failures. In such cases, clients can be designed to tolerate failures. E..g. a web
browser cannot reach a web server it does not make the user wait forever. It gives a message
indicating that the server is unreachable and the user can try later.
Recovery from failures:
This involves the design of software so that the state of permanent data can be recovered or
“rolled back” after a server has crashed. E.g. database servers have a transaction handling ability
that enables them to roll back a transaction that was not completed.
a) There should be at least two different routes between any two routers in the Internet.
b) In the DNS, every name table is replicated in at least two different servers.
c) A database may be replicated in several servers to ensure that the data remains accessible
after the failure of a single server; the servers can be designed to detect faults in their
peers; when a fault is detected in one server, clients are redirected to the remaining
Distributed systems exhibit a high degree of availability in the face of hardware faults. The
availability of a system is a measure of the proportion of time that it is available for use. E.g. if one
server goes down, client requests can be directed to another server and the service continues to
be available.
Engr. Muhammad Nadeem
Page 4
CS 407 Distributed System & Databases
DAY # 15
Components in distributed systems are executed in concurrent processes.
Components access and update shared resources (e.g. variables, databases, device drivers).
Integrity of the system may be violated if concurrent updates are not coordinated.
o Lost updates
o Inconsistent analysis
Distributed systems should be perceived by users and application programmers as a whole rather
than as a collection of cooperating components.
Transparency has different aspects.
These represent various properties that distributed systems should have.
Access Transparency
Enables local and remote information objects to be accessed using identical operations.
Example: File system operations in NFS.
Example: Navigation in the Web.
Example: SQL Queries
Location Transparency
Enables information objects to be accessed without knowledge of their location.
Example: File system operations in NFS
Example: Pages in the Web
Example: Tables in distributed databases
Engr. Muhammad Nadeem
Page 5
CS 407 Distributed System & Databases
Concurrency Transparency
Enables several processes to operate concurrently using shared information objects without
interference between them.
Example: NFS
Example: Automatic teller machine network
Example: Database management system
Replication Transparency
Enables multiple instances of information objects to be used to increase reliability and
performance without knowledge of the replicas by users or application programs
Example: Distributed DBMS
Example: Mirroring Web Pages.
Failure Transparency
Enables the concealment of faults
Allows users and applications to complete their tasks despite the failure of other components.
Example: Database Management System
Mobility Transparency
Allows the movement of information objects within a system without affecting the operations
of users or application programs
Example: NFS
Example: Web Pages
Performance Transparency
Allows the system to be reconfigured to improve performance as loads vary.
Example: Distributed make.
Scaling Transparency
Engr. Muhammad Nadeem
Page 6
CS 407 Distributed System & Databases
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
Lab - TCP Client and Server Application
Engr. Muhammad Nadeem
Page 7

CS 407 Distributed System & Databases