Different networks, hardware, operating
systems, programming languages, developers.
We set heterogeneities.
Middleware: a software layer that provides a
programming abstraction as well as masking the
heterogeneity.
Mobile code: code that can be sent from one
computer to another and run at the destination.
up protocols to solve these
Openness
DS is determined primarily by the openness
degree to which new resource-sharing services
can be added and be made available for use by
a variety of client programs.
Open systems are characterized by the fact that
their key interfaces are published.
Open DS are based on the provision of a
uniform published interfaces for access to shared communication mechanism and resources.
Open DS can be constrcted from heterogeneous
hardware and software.
Security
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.
Two new security challenges:
Denial of service attacks (DoS).
Security of mobile code.
Scalability
A system is described as scalable if it remains
effective when there is a significant increase in
the number of resources and the number of
users.
Challenges:
Controlling the cost of resources or money.
Controlling the performance loss.
Preventing software resources from running out
Avoiding preformance bottlenecks.
Failure handling
When faults occur in hardware or software,
programs may produce incorrect results or they
may stop before they have completed the
intended computation.
-Techniques for dealing with failures:
Detecting failures
Masking failures
Tolerating failures
Recovering form failures
Redundancy
Concurrency
There is a possibility that several clients
will attempt to access a shared resource
at the same time.
ANY object that represents a shared
resource in a distributed system must be
responsible for ensuring that operates
correctly in a concurrent environment.
Transparency
Transparency is defined as the concealment from
the user and the application programmer of the
separation of components in a distributed
system, so that the system is perceived as a
whole rather than as a collection of independent
components.