Next:
Preface
Open Distributed Systems
Jon Crowcroft
Preface
Theme and Purpose
Approach
Object Oriented Models
Open Distributed Systems
Distributed Operating Systems
Model for Open Distributed Systems
The Standards Process
Intended Usage
Organization
Contents
List of Figures
List of Tables
Acknowledgements
What are Open Distributed Systems and For What?
Introduction
The Viewpoints
Transparencies
Central Operating System Services
System Interfaces
Distributed Operating Systems
Communications Support
Users
Operating System Facilities
Operating System Support
Open Communications.
Open Distributed Systems
Objects as a modeling concept.
A Worked Example
Objects and Processes
Objects and Distribution.
Summary
Exercises
Modules, Communication and Concurrency
Introduction
Addressing, Naming and Routing
Worked Example of Name Spaces
Concurrent Systems
Time Sequence Diagrams
Interleaving and true parallelism
Interleaving
Atomicity
Scheduling
Shared Resources - Problems with Concurrency
Deadlock
Livelock
Fairness
Mutual Exclusion
Consumers, Producers and Critical Regions
Monitors, Semaphores and Rendezvous
Semaphores
Monitor
The Ada Rendezvous
Distributed System and Concurrency
Shared Memory
Message Passing
Worked Example of Networked Windows
Portability and Network Window Protocols
Window Managers
Remote Procedure Call
RPC and Threads
Interface Compiling
ROS and ASN.1
Naming, Location and Binding
Scaling of Naming/Binding mechanisms.
ANSA Trader
Directory Services
Recursion and Call Back
Concurrency Control
Multicast
Upcalls
Buffering Schemes
Summary
Exercises
Real Time and Reliable Systems
Introduction
Some Definitions.
How things fail
The Object Model and Fault Transparency
Examples
Conventional Hardware and Software Reliability
Example
Software in distributed systems
Contracting for Reliability
Analysing Timing Constraints
Watchdog Timers
Synchronisation Mechanisms
Transactions
Example
Concurrency Control
Locks
Timestamps
Optimistic Concurrency Control
Recovery mechanisms
Failures
A Commit log
2 Phase Commits
More about Multiple readers/single writer and the Object Model
Commitment, Concurrency and Recovery - CCR
Fault Tolerance
Replication/Redundancy
Nested Transactions
Version Management
Replication
Object Migration
Exception handling
Examples
Summary
Exercises
The Nature of Security
Threats and Protection
Access Control and Authentication
Authorization
Access Control Schemes
Trust in a Secure System
General Models of Computer Security
Multi-Level Security
Commercial Security
Cryptography
Secret Key (or Symmetric) Technique
Public Key (or Asymmetric) Technique
Key Distribution
Blocking
Key Distribution
Practical Security Approaches?
Summary
Exercises
Languages and Formal Methods
Why Protocol Description?
Why Protocol Specification?
Some Common Specification Systems
Format and Protocol Languages
Protocol Validation
State Perturbation
Language of Temporal Ordering Specification
Processes
Variables, Values and Expressions and LOTOS
Estelle
Overview
Example of a Specification
Communication Sequential Processes
Process Descriptions
Pictures
Traces
Traces of a Process, and Specifications
Specification
Program transformation
Laws of Then and Choice
Concurrency and Deadlock
Laws of Concurrency
Non Determinism and General Choice
Laws of Non Determinism
Concealment, Refusals, Interleaving and Divergence
Communication - Input, Output and Pipes
Introduction to the Specification Language Z
A Multimedia Conference Specification in Z
Requirements
Motivation
User Interfaces
Distribution
Floor Control
Off-line Components of a Conference
Implementation
Related Work
The User Interface
Readability and Usefulness
How to Show Who Spoke Last, and Who Will be Next
Starting and Continuing the Conference - Attention
Queues and Shows of Hands
Distribution of Contributions
Why is X Appropriate
The Talk model
Star/Mesh Duality and Rings
A General Floor Control Conference Model
Modularity of this Conferencing System
The FLOOR Schema
Useful Functions
Operations on the FLOOR schema
The ASIDE schema
The QUEUE Schema
The ALLOWED Schema
Promoting all the operations to act on the CONFERENCE Schema
More Useful Operations
Pictures of Floors
Negotiations
Off-line Components of a Conference
The Implementation
Conclusions
Conference State
Summary
Exercises
Communications Support
Introduction
Technological Point of View
The Wire
Switching Methodologies
Transmission Shortcomings
Intermediate Devices in a Network
Clocks and Time in Distributed Systems
Communications System Modeling
Protocols
Service Types
Relationships between Services
The ISO Reference Model
Layering
Terminology and Conventions
The Seven Layers
The LAN Lower Layers
Historical Perspective
Naming, Addressing and Routing
Connection Oriented or Connectionless?
Programming Interfaces
OSI Application layer support for Distributed Systems.
Association Control
Remote Operations
Atomic Actions
OSI Presentation Layer Support
ASN.1 Principles
Remote Operations Service
Not Defined in ROS
Event Cycle in a ROS exchange
Octet-Level Encoding of ASN.1
Identifier Classes
ASN.1 Predefined Types
Type Definition
A Distributed System Example
OSI - a critique
Networked Windowing Systems
Portability and the X Protocol
Window Managers
Running X, a window manager and so on
Programming with X
The Libraries
Summary
Exercises
CORBA - An Industrial Approach to Open Distributed Computing
Modeling and Implementing Distributed Multimedia Conferencing
Introduction
Multicast Requirements for Distributed Applications
Conference Servers, Managers and Replication/Notification
Shared Networked Objects and Windows
Shared X
Shared NeWS/Display Postscript
Multicast
Audio
Video
Replicated Applications, Data and Multicast Transactions
Replicated Transaction Ordering: Clock Synchronisation and Timestamps
Classical IPC usage for Multimedia Conference Control.
CAR Conferencing System Components
Applications
Inter-process Communication
Weak RPC
Event Driven Approaches
Related Work
Practical Use of ANSA RPC
Porting to a less pure RPC
Source Changes - Sizes
RPC Types and Buffering Changes
The MICE Design of Conferencing Communications Channel
Requirements
Multicast Internet Conferencing
The MICE Project Requirements
Where current systems fail
Specific requirements
Modularity
A unified user interface
Flexible floor control policies
Scaling from tightly coupled to loosely coupled conferences
The Conference Control Channel (CCC)
CCC Names
address
type
instantiation
Reliability
Ordering
Single Source Reordering
Multiple Source Ordering
A few examples
Unifying user interfaces - session messages in a ``small'' conference
A voice controlled video conference
CCCP Messages
More complex needs
Dynamic type-group membership
Need to know
The Naming Service
Security
Host access security
Encryption
Conference Membership Discovery
CCCP Implementation
Summary
Exercises
Application to Network Management
Introduction
Functions
The agents of a management system
Reference Configurations
Classification of functions
Non-functional requirements
Conceptual Architectures
General Model of a TMN Architecture
Viewpoints of the Architecture
The Enterprise Viewpoint
Aspects of Interoperability
The Interoperable Interface
Shared Conceptual Schema
The Information and Computational Viewpoint
The Single Managed Object View
Principles of Managed Objects
Attributes
Operations on Attributes
Notifications
Behavior
Generic Attributes, Actions, and Notifications
Specification of Managed Object Classes
Registration
The Managed Object Relationships View
Inheritance
Containment Relationships
Group, Service and Other Relationships
Relationship Definition and Representation
The Logical Distribution View
Managed Objects and Relationships to a OS
Authority Relationships
Peer-to-Peer OS Relationships
Abstraction
Management Hierarchies
Authority Domains
The Engineering Viewpoint
The Interoperable Interface and the OS
Communication Protocols
Management Information
Shared Conceptual Schema
Mapping the Service onto the Architecture
Management Protocols
Applying ODP and CORBA directly to Mangement
Distributed Systems for Managing Networks
Embedded Management Functionality
Summary
Exercises
Distributed File Systems
Virtual File System Model
Consequences of Open Model
File (System) Naming
Access Protocols
Replication
Update algorithms
Management
Different Distributed Filesystems
The Network File System
The Network File System
AFS
Media File System
Server
Low Level Storage Server
High Level Storage Server
Object Constructors
Object Time Frame
Object Layout
DMS Client Environment
Security
Summary
Exercises
Load Balancing
Introduction
ODP/ANSA Migration
Monitoring Distributed Systems
Class of information
Dissemination
Accuracy
Problems Inherent in Monitoring Computing Systems
Overview of Existing Systems and Unix Specifics
Solaris SunOS 5.1 Specifics
Migration
Introduction
What is migration?
Existing systems
Motivation
Policy matters
Language support for migration
Systems issues in migration
Communication issues
Message redirection
Message loss prevention
UNIX-based migration mechanisms
General considerations
The Mandelberg and Sunderam approach
Existing non-UNIX mechanisms
The V system
Accent/Spice
Emerald
Summary
Policy--mechanism separation
Mechanism--mechanism independence
Transparency
Preemption
Residual dependencies
Reliability
Efficiency
Scheduling
Introduction
Process Placement versus Process Migration
Load Distribution
Load Sharing
Condor
Load balancing
The Casavant and Kuhl Taxonomy
The Hierarchical Classification
Flat characteristics
Overview of a scheduler
Basic structure
Desirable properties
Efficiency
Instances of load balancing algorithms
The Hac and Jin approach
A microeconomic approach
Summary
Exercises
Future Lessons and Challenges
Introduction
Definitions
Lessons and Challenges
Lessons Generally Accepted as True by Researchers in Distributed Systems
Lessons Still Highly Controversial
Challenges
Micro/Nano/Maxi Kernels - How Small is Beautiful?
Blocking, Synchronous and Asynchronous Interfaces - Easy?
Remote Procedure Call - Latent Potential?
Atomic Group Communication is useful?
Shared address spaces and Distributed Memory Models
Client Server Paradigm
Introduction
Unix - just another program
Caching at the server is good?
File Server Replication - How many, when?
Message passing - too hard for application programmers?
Languages, Objects and Philosophies for Distributed Systems
Does Maths Help?...
Client Caching - is it a good idea?
Atomicity - Useful, but too expensive?
Causal Ordering in multi-party communication
Threads and Processes -kernel and user space
Thread versus Process
Log Structured Filesystems
References
About this document ...
Jon Crowcroft
Fri May 10 14:13:51 BST 1996