Objektorienteret Middleware
Presentation 2:Distributed Systems – A brush up, and
relations to Middleware, Heterogeneity & Transparency
Motivation
• We need to establish some common understanding of concepts
• We will use these concepts to measure and compare the different middleware technologies
Agenda
• 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
What is a Distributed System
• Plenum: What is your definition?
What is a Distributed System?
• “You know you have one when the crash of a computer you’ve never heard of stops you from getting any work done.” - Leslie Lamport, 1987
• 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)
What is a Distributed System?
We will use this definition in OOMI
Common 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
Resource 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.
Openness & 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
Openness & Heterogeneity
UNIX
Windows NT
Mac OS/X
LINUX
Java
C++
C# Delphi
C Java
Perl
Ada
.NET Remoting
CORBAWeb service
Java RMI
• The vision – everything works with everything
• Reality: highly improbable scenario
Concurrency
• 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• > greater risk of concurrency problems
Scalability
• 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!
Fault 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
Transparency 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-transparency”)• We shall use these to characterize the various available
middleware products
Distribution Transparency
Access Transparency
Access Transparency
LocationTransparency
LocationTransparency
ConcurrencyTransparencyConcurrencyTransparency
Migration Transparency
Migration Transparency
Performance TransparencyPerformance Transparency
Scalability Transparency
Scalability Transparency
Replication TransparencyReplication
Transparency
FailureTransparency
FailureTransparency
We may measure the characteristics of middleware technologies on their support for the different dimensions of transparency as shown above.
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• Example: Distributed Objects
• Makes life easier for the developers• True when making objects distributed• There are pitfalls
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• Example: Objects being moved between servers
• Integral part of replication/migration/scal. transparency
ClientProgram
ClientProgram
Server 1(with object)
Server 1(with object)
Server 2Server 2
NameServer
NameServer
Hard-codedReference(e.g. IP)
ClientProgram
ClientProgram
Server 1(with object)
Server 1(with object)
Server 2Server 2
Hard-codedReference(e.g. IP)
Not easy to move the object to other server
Group 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?
Top Related