Understanding Distributed Systems: Architecture, Design, and Components

What is a Distributed System?

An information system where functions are shared across different network areas to achieve organizational objectives.

Elements of a Distributed System

Process Platform: Provides physical resources and basic software (Mainframes, PCs, PDAs, phones).

Connectivity Components: Enables communication and integration (networks and communications).

Data Storage: Includes data and their management systems.

Software Elements: Applications, services, and interfaces. Architectures include centralized, batch, transactional, client/server, and web applications.

Safety: Logical security of data and information.

Management System:

  1. Integrated and coordinated through leadership and management.
  2. Enables coexistence of multiple management centers.

Control Panel:

  1. Tracking Business Objectives: Automated information on business objective progress.
  2. Operating: Centralized administration, supervision, and operation.

Distributed System Design

Creating software applications using services and connectivity for transparent integration across platforms and data storage.

Distributed System Requirements

  1. Aligned with business goals.
  2. Enhance operational efficiency.
  3. Highest performance at the lowest cost.

Objectives

  1. Align technology and business.
  2. Transparency.
  3. Tolerance.
  4. Continuity of operations.

Enterprise Architecture

Roadmap for business and technology development, both new and revolutionary.

Distributed Strategic Plan

Records prerequisites for development and management of distributed systems.

Five Approaches or Perspectives

  1. Business.
  2. Application.
  3. Information.
  4. Management.
  5. Technology.

1. Business

Describes how the company works, including third-party relationships and development plans.

Classical Components

  1. Business processes.
  2. Manual of procedures.
  3. Short, medium, and long-term objectives.
  4. Organizational structures and conditions.
  5. Business functions.
  6. Relationships between components.
  7. Company organization.

2. Application

Defines enterprise applications.

Classical Components

  1. Description of existing applications.
  2. Description of available services.
  3. How to obtain services.
  4. Plans for new applications and reengineering.

3. Information

Defines organizational knowledge needs.

Classical Components

  1. Data description and content.
  2. Dictionary of concepts.
  3. Data models and database structures.
  4. Data management policies.
  5. Data access and manipulation.
  6. Data workflow processes.

4. Management

Defines constraints on management and administration.

Classical Components

  1. Information management locations.
  2. Organizational conditions.
  3. User support policies.
  4. Resource acquisition management.
  5. Hours of availability.
  6. Performance measurement policies.

5. Technology

Proposes basic software, hardware, and networks.

Classical Components

  1. Hardware and software for clients and servers.
  2. Standard adopted by the organization.
  3. Printing resources.
  4. Office automation.
  5. PDAs and mobile phones.

Architecture

Fundamental organization of a system, integrating components and establishing relationships.

Distributed Architecture and Components

Designing information systems using services.

What is a Service?

Mechanism for transparent network access to data and processes provided by specialized servers or agents.

Basic Structure of a Service

The service itself, defined by a specification. Functionality and/or data. Call format (RPC, SOAP, Queue, ODBC). Usage (asynchronous, synchronous, disconnection). Environment tab for parameterized functionality.

Distributed Architecture Client/Server

Division of labor into specialized programs: clients (request services) and servers (provide services).

What is the Customer?

Software and hardware that invokes server services.

What is Server?

Hardware and software that meets client requirements.

Carriers

Collect and transport messages between client and server.

Systems or Platforms

Hardware, operating systems, networking, and communications.

Client/Server Process

Coordinated programs act as a distributed process. Server provides services to multiple clients through C/S dialogue.

Communication Steps

  1. Client requests service.
  2. Server responds with the requested service.

What is C/S?

Functional analysis and requirements. A programming methodology.

Prerequisites of a Distributed Architecture Client/Server

  • Ability to run multiple programs simultaneously.
  • Multi-tasking system.
  • System with multiple computers.
  • Internet platform.
  • Communication and message exchange system.
  • Power clients in process-based applications.

What is not required

  1. Work with multiple computers.
  2. One computer per server.
  3. Broken into different client machines and servers.
  4. Remote communications.
  5. Work in OO paradigm.

Differential Characteristics of Design C/S

  1. Services available in request/response protocol.
  2. Specialization of services.
  3. Shares.
  4. Transparency of location.
  5. Independence of hardware, OS, and communications.
  6. Message-based dialogue.
  7. Scalability.
  8. Reusability of components.

Qualities of a Distributed Design

Advantages

  1. Single system image.
  2. Adaptability to the organization.
  3. Portability between systems.
  4. Reusability.

Infrastructure

Physical realization of the base system.

Infrastructure Elements

  1. Hardware.
  2. Software.
  3. Security elements.
  4. Internet.

Carrier

Responsible for client-server communication.

Carrier Mechanisms

  1. Message receipt and notification.
  2. Message transport.

Middleware

Services to distribute data and processes.

Service Categories

  1. Development services.
  2. Management services.

Main Objective: Transparency.

Location of Services

Services placed on physical infrastructure elements.

Static and Dynamic Location

Static (cold): Servers boot when system elements start.

Dynamic: Administrator activates/deactivates services after boot.

Designer must provide replication, parallelism, and fault tolerance for effective management.

Services of Interest

  • File, data, and printing services.
  • Centralized management of remote communications.
  • Unified Internet access.
  • FTP servers for remote file servers.
  • Integration of remote network points.
  • Unified service management and user authentication.
  • External communications with third parties.

Protocols

Rules for network communication. Support the carrier. Embedded in middleware.

Communication Levels

High Level: How applications communicate. Low Level: How signals are transmitted.

Functions of the Protocols

  1. Define physical interfaces.
  2. Set line discipline.
  3. Error detection and correction.
  4. Sequence for data packets.
  5. Establish routing technique.

What is a Cluster?

Coupled computers with shared disk subsystem and software that works as a single system.

Cluster Elements

  1. Process nodes.
  2. Interconnection network.
  3. Shared disk subsystem.

Cluster and Distributed Applications

Assemble distributed applications for service when a server fails. High fault tolerance.

SAN (Storage Area Networks)

Fiber optic network for interconnecting servers and storage resources.

SAN Benefits

  1. No single points of failure.
  2. High performance.
  3. Scalability.
  4. Availability.

Infrastructure Design Considerations

  1. Connection speed and availability.
  2. Autonomy of remote sites.
  3. Communication cost.
  4. Remote administration.

Middleware Architecture

Image

Transport Stack: Transport protocols for end-to-end communication.

Network Operating System: Extends OS options to network devices.

Distributed System Administrator: Manages the distributed system.

Specific Service-Level: Services like RPC, Glues, Mail, ODBC.

Interaccessibility

Interconnected systems are available but not transparent to programs. Requires specific middleware.

Interoperability

Systems are transparently accessible to programs. Requires middleware.

Achieving Interoperability

  1. Buy middleware.
  2. Migrate to interoperable systems.
  3. Encapsulate causes by creating middleware.

Distributed Connectivity and Design

Design distributed applications as pre-integrated, interoperable systems.

Distributed Design

Securing distributed applications on an interoperable platform.

Design Consistency

Recovering from errors and adding functionality.

Physical and Logical Architecture

Physical: Determined by system platform connectivity.

Example: HOST, central servers, departmental servers, PC networks.

Logical: Determined by application resource layers managed through middleware.

Criteria for Logical Structure

  • Interoperability middleware.
  • Business structure.
  • Geographic dispersion.
  • Management policy.
  • Specific application needs.

Distributed Processes

Functionality and/or data can reside anywhere on the platform.

Distributed Processes

Distribution is not transparent and is linked to specific points.

Centralized System

Single CPU, memory, and drive.

Main Problem with a Distributed System

The software base.

Definition of a Distributed System

Multiple interconnected machines that do not share global memory.

High Definition

Machines that do not share global memory but appear as a single computer.

Benefits of a Distributed System

  1. Better performance/price ratio.
  2. More overall speed.
  3. Incremental growth.
  4. Support for distributed services.
  5. Increased reliability and availability.

Features

More profitable to increase power by buying more computers.

Speed

Single processor has physical limits.

Scalability

Add more chips for more power.

Distributed Applications

Many applications are only conceivable as distributed.

Problematic Features of a Distributed System

Communication Problems

  • Reliability (loss, corruption).
  • Security (trust).
  • Cost of communication.

Failures

  • Probability of failure.
  • Local system affected by remote failures.
  • Heterogeneity of nodes.
  • Inability to maintain a global state.

Design Goals of Distributed Services

  1. Transparent behavior.
  2. Support for heterogeneity.
  3. Reliability.
  4. Performance.
  5. Scalability.

1. Transparency

Users do not perceive the distributed nature of the service.

Aspects of Transparency

  • Location.
  • Migration.
  • Replication.
  • Concurrency.

2. Support for Heterogeneity

Allow coexistence of different systems.

3. Reliability

  • Access (availability).
  • Fault tolerance.
  • Integrity.
  • Protection.

4. Yield

Transparency, heterogeneity, and reliability should not penalize performance.

Aspects to Consider

  • Slowness of communications.
  • Cost of protocols.
  • Impact of centralized services.

5. Scalability

Number of nodes can grow without degrading service quality.

Scalability and Decentralization

No machine has complete information. Decisions use local information. Algorithms work even if a machine fails. Algorithms are not based on a global clock.

Administering a Distributed System

Administration becomes more complicated.

Challenges

  • How is a distributed service launched?
  • How do we monitor the service?
  • Do we have permission to act on all servers?

Traditional centralized management is not appropriate.

Failures in a Distributed System

Types of Faults

  • Link failure.
  • Machine failure.
  • Message loss.
  • Software failures.

Impossible to know with certainty if a machine has failed. Fault detection is based on assumptions.

Additional Problem

Temporary disconnections (partitions in the network).

Design Models of Distributed Components

Client-server interaction is natural.

Approaches

  • Processes/Distributed Applications.
  • Distributed Objects.
  • Distributed Services.

Technologies

  • Message passing.
  • Remote Procedure Call (RPC).
  • Calls to remote objects.
  • Web Services (SOAP).

Distributed Systems in Existing Organizations

  1. Systems with barcodes.
  2. Electronic funds transfer.
  3. Electronic Data Interchange.
  4. Frequent customer cards.
  5. Commerce.
  6. Banking and finance.
  7. Voice interface for customer service.

Competitive Advantages of Distributed Systems

  1. Reduce costs.
  2. High cost of change.
  3. Creating difference.
  4. Creation of strategic alliances.
  5. Rivalry among competitors.