Title: Objektorienteret Middleware
1Objektorienteret Middleware
- Presentation 2
- Distributed Systems A brush up, and relations
to Middleware, Heterogeneity Transparency
2Motivation
- We need to establish some common understanding of
concepts - We will use these concepts to measure and compare
the different middleware technologies
3Agenda
- What is a Distributed System?
- We need to have the same definition in mind
- Distributed Systems Characteristics
- Examples of Distributed Systems
- We will extract requirements from these
- Distributed System Common Requirements Concepts
- We shall use these requirements to point out
relevant concepts - Transparency in Distributed System
4What is a Distributed System
- Plenum What is your definition?
5What is a Distributed System?
- You know you have one when the crash of a
computer youve never heard of stops you from
getting any work done. - Leslie Lamport, 1987
6What is a Distributed System?
- A distributed system is a collection of
autonomous hosts (computers) that are connected
through a computer network. Each host executes
components and operates a distribution
middleware, which enables the components to
coordinate their activities in such a way that
users perceive the system as a single, integrated
computing facility. - Wolfgang Emmerich (2000)
We will use this definition in OOMI
7Common Requirements
- What are we trying to achieve when we construct a
distributed system? - Certain requirements are common to many
distributed systems (Emmerich, 2000) - Resource Sharing
- Openness Heterogeneity
- Concurrency
- Scalability
- Fault Tolerance
- Transparency
8Resource Sharing
- Ability to use any hardware, software or data
anywhere in the system - Resource manager controls access, provides naming
scheme and controls concurrency - Resource sharing model (e.g. client/ server or
object-based) describing how - resources are provided,
- they are used and
- provider and user interact with each other.
9Openness Heterogeneity
- Openness is concerned with extensions and
improvements of distributed systems - Most projects requires systems to be easily
extendible and maintainable, this means the
architecture must be open - OO Paradigm is renowned for its openness as is
component models you are already experts - OO middleware thus strives to support openness by
birth - Heterogeneity is about supporting several
hardware and software platforms - Some middleware strives to support heterogeneity,
but not in all areas - Differences in data representation of interface
types on different processors (of different
vendors) have to be resolved (e.g. UNIX vs
Windows) - Heterogeneity is a key concept to remember
10Openness Heterogeneity
- The vision everything works with everything
- Reality highly improbable scenario
C
Java
C
Ada
Web service
CORBA
Mac OS/X
UNIX
Java
Perl
C
Delphi
.NET Remoting
Java RMI
Windows NT
LINUX
11Concurrency
- 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 - This also holds true in non-distributed systems
(using threads processes), but here we often
have more simulations users - gt greater risk of concurrency problems
12Scalability
- Adaption of distributed systems to
- accomodate more users
- respond faster
- Usually done in centralized systems by adding
more and/or faster processors - May be done by allowing several nodes to run the
same components and share the load - Load balancing
- Components should not need to be changed when
scale of a system increases - Design components to be scalable!
13Fault Tolerance
- Hardware, software and networks fail!
- Distributed systems must maintain availability
even at low levels of hardware/software/network
reliability - Fault tolerance is achieved by
- recovery
- redundancy
14Transparency in Distributed Systems
- Distributed systems should be perceived by users
and application programmers as a whole rather
than as a collection of cooperating components - Transparency has different dimensions that were
identified by the ANSA project (now part of an
ISO standard) - International Standard on Open Distributed
Processing (OPD) (ISO, 1996). - These represent various properties that
distributed systems aim at achieving - but only partly implement (a level-of-transpare
ncy) - We shall use these to characterize the various
available middleware products
15Distribution Transparency
Concurrency Transparency
Access Transparency
Location Transparency
We may measure the characteristics of middleware
technologies on their support for the different
dimensions of transparency as shown above.
16Access 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
- Example Distributed Objects
- Makes life easier for the developers
- True when making objects distributed
- There are pitfalls
17Location 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
- Example Objects being moved between servers
- Integral part of replication/migration/scal.
transparency
Server 1 (with object)
Server 1 (with object)
Client Program
Client Program
Hard-coded Reference (e.g. IP)
Hard-coded Reference (e.g. IP)
Server 2
Server 2
Name Server
Not easy to move the object to other server
18Group Work
- At each table 10 minutes
- Discuss the remaining ANSA transparencies
- What are the purpose of each
- When and where are they relevant
- How may they be implemented
- Would you do the implementation yourself in a
project?
19Concurrency Transparency
- Enables several processes to operate concurrently
using shared information objects without
interference between them - We would like it to be handled by the middleware
- Example NFS
- Example Automatic teller machine network
- Example Database management system
20Replication 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
- Relies on location transparency
21Failure Transparency
- Enables the concealment of faults
- Allows users and applications to complete their
tasks despite the failure of other components. - Example Database Management System
- If system automatically recovers from faulty
server by supplying the object from another
server, this is failure transparency
22Migration Transparency
- Allows the movement of information objects within
a system without affecting the operations of
users or application programs - Example NFS
- Example Web Pages
- Also relies on location transparency
23Performance Transparency
- Allows the system to be reconfigured to improve
performance as loads vary. - May be achieved through by employing activation,
caching and similar technologies, thus
automatically boosting performance on critical
resources
24Scaling Transparency
- Allows the system and applications to expand in
scale without change to the system structure or
the application algorithms. - May rely on replication transparency and thus
location transparency for achieving this