Unit 5 Dos
Unit 5 Dos
Naming Introduction:
In distributed systems, naming refers to the method of identifying and accessing resources
across different networked locations. Key aspects of naming include:
1. Names and Identifiers: Names are human-readable labels (like domain names) for
resources, while identifiers are unique and unambiguous for system processing (like IP
addresses).
2. Naming Conventions: Consistent naming conventions are essential for easy resource
location, as distributed systems may span different networks and platforms.
3. Name Resolution: This is the process of converting names into network addresses (e.g.,
converting a URL to an IP address via DNS) to locate and access resources.
4. Scalability: Naming schemes should scale efficiently as the system grows. This involves
decentralized name servers and caching.
5. Transparency: Naming systems should provide transparency so that resource locations
are abstracted from users, allowing them to interact with resources without needing to
know their physical locations.
1. DOS (Distributed Operating System): Provides a single system image across multiple
networked computers, functioning as if they are a single entity.
2. NOS (Network Operating System): Offers services over a network but treats the
resources of each machine independently, without a single system image.
3. Middleware: Software that sits between applications and the operating system/network,
enabling communication and management in distributed systems.
4. Cluster System: A group of linked computers working together closely, often used for
high availability and load balancing.
5. Peer-to-Peer (P2P): A decentralized model where each node (peer) in the network acts
as both client and server, sharing resources without a central authority.
6. Grid Computing: A distributed system model that shares computational power across
various nodes for high-performance computing tasks.
7. Cloud Computing: A model that provides on-demand access to shared resources (like
computing, storage) over the internet.
8. Client-Server Model: A structure where clients request services and resources from
centralized servers.
Human-Oriented Names in distributed systems are user-friendly identifiers that simplify access
to resources and services. Key examples include:
1. Domain Names: Like example.com, these map to IP addresses, making websites easier
to access.
2. URLs: Readable links (e.g., https://openai.com) to locate resources.
3. Usernames and IDs: Recognizable names for users/accounts in apps.
4. Aliases/Nicknames: Simple names for files or devices (e.g., "Project_Plan").
5. Service Names: Intuitive names like "File Storage" for services.
6. Resource Labels/Tags: Descriptive tags like "production" or "backup."
7. Email Addresses/Handles: Easy-to-remember user contact names.
Object-Locating Mechanisms:
Object-Locating Mechanisms in distributed systems help find the location of objects
(resources, services, or data) across networked nodes. Here are key mechanisms:
1. Broadcasting: Sends requests to all nodes in the network to locate the desired object, but
can be bandwidth-intensive.
2. Forwarding Pointers: Each move of an object updates pointers from its previous
location, creating a chain to its current position.
3. Distributed Hash Tables (DHTs): Maps objects to specific nodes using a hash function,
widely used in peer-to-peer networks.
4. Directory-Based Methods: Maintains a central or distributed directory that tracks object
locations, allowing for direct lookup.
5. Home-Based Approaches: Assigns a “home” node for each object that keeps track of its
current location.
These mechanisms are crucial for efficient data retrieval and resource management in distributed
systems.
Name Caches
Name Caches in distributed systems are temporary storage systems used to store frequently
accessed names or addresses of resources, improving access speed and reducing lookup times.
Key points:
1. Fast Access: Stores commonly used names locally, so repeated lookups are faster.
2. Reduced Load: Minimizes load on central directories by handling repeated queries
locally.
3. Improved Performance: Speeds up resource retrieval in distributed systems.
4. TTL (Time-to-Live): Cached names have a TTL, after which they refresh to ensure up-
to-date data.
5. Example: DNS caching stores website IP addresses locally, avoiding repeated queries to
DNS servers.
Name caches are essential for efficient resource access and load management in large distributed
networks.
1. Design Principles:
o Least Privilege: Grant minimum access required to perform tasks.
o Fail-Safe Defaults: Deny access by default, granting it only when explicitly
allowed.
o Economy of Mechanism: Keep security design simple to reduce vulnerabilities.
o Separation of Privilege: Use multiple checks for sensitive actions, enhancing
security.
2. Authentication:
o Confirms the identity of users or devices, often using methods like passwords,
biometrics, or multi-factor authentication (MFA).
3. Access Control:
o Role-Based Access Control (RBAC): Assigns permissions based on user roles.
o Access Control Lists (ACLs): Lists of users and their access permissions for
resources.
o Mandatory Access Control (MAC): Enforces strict access rules, especially for
sensitive data.
4. Digital Signatures:
o Provides data integrity and non-repudiation, verifying the sender’s identity and
ensuring message authenticity. It uses cryptographic keys to sign data, which can
be verified by the receiver.
These principles and mechanisms collectively secure distributed systems, ensuring safe and
controlled access to resources and data.
Case Study for Students - Java RMI, Sun Network File System, Ceph,
Google Case Study.
Here are concise case studies for students on Java RMI, Sun Network File System, Ceph, and
Google:
Overview: Java RMI is a Java API that allows objects residing in different Java Virtual
Machines (JVMs) to communicate and invoke methods remotely.
Key Features:
Use Case: A distributed chat application where users can send messages to each other. Java RMI
enables real-time communication between clients running on different machines.
Overview: NFS is a distributed file system protocol developed by Sun Microsystems, allowing
users to access files over a network as if they were local.
Key Features:
Use Case: An organization uses NFS to share files between servers and clients, enabling
seamless access to shared data and collaborative work across departments.
3. Ceph
Overview: Ceph is a distributed storage system that provides high performance, reliability, and
scalability for object, block, and file storage.
Key Features:
Use Case: A cloud service provider implements Ceph to manage massive amounts of data across
geographically distributed data centers, providing scalable and reliable storage solutions.
Overview: Google is known for its innovative approaches to distributed systems, particularly in
search engine technology, data storage, and processing.
Key Features:
• MapReduce: A programming model for processing large data sets across distributed
clusters. It enables parallel processing and fault tolerance.
• Bigtable: A distributed storage system designed to manage structured data, used by
Google services like Search and Maps for high availability and scalability.
• Spanner: A globally distributed database that offers strong consistency, high availability,
and horizontal scalability.
Use Case: Google uses MapReduce to analyze search trends and user data, enhancing its
services and providing personalized search results efficiently.
These case studies provide a snapshot of each technology's functionality, key features, and
practical applications in the real world, helping students understand the relevance and impact of
distributed systems in various scenarios.