0% found this document useful (0 votes)
9 views7 pages

Unit 5 Dos

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views7 pages

Unit 5 Dos

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

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.

Desirable Features of a Good Naming System


A good naming system in distributed systems has several desirable features to ensure efficient,
reliable, and user-friendly access to resources across multiple networked locations. Key features
include:

1. Unambiguous Identification: Each resource should have a unique name or identifier to


avoid conflicts and ensure precise access across the system.
2. Location Transparency: Users should be able to access resources without knowing their
physical location, which allows resources to be moved or replicated without impacting
users.
3. Scalability: The naming system should handle growth effectively, both in terms of the
number of resources and the geographical distribution of the system. Techniques like
hierarchical naming and caching are often used for scalability.
4. Fault Tolerance: The system should be resilient to server or network failures. Redundant
naming servers or replicated name databases help maintain access even if parts of the
system fail.
5. Performance and Efficiency: The naming resolution process should be quick,
minimizing delays when users or applications access resources. Caching mechanisms can
reduce lookup times and improve performance.
6. Consistency: The naming system should provide consistent views across the network.
Users should see up-to-date names and identifiers, especially after renaming or relocating
resources.
7. Security and Access Control: The naming system should protect against unauthorized
access and ensure that users can only access resources they’re permitted to use.
Encryption and access control lists help enforce security policies.
8. Ease of Administration: The naming system should be straightforward to configure and
manage. It should also support automated updates and synchronization to keep names
accurate as resources change.
9. Support for Aliasing: A good system may allow multiple names for the same resource
(aliases), making it more flexible for users and applications.
10. Human-Readable Names: Where possible, names should be readable and meaningful to
users, enhancing usability without sacrificing system requirements.

System Oriented Names


In distributed systems, a System-Oriented Name refers to the name or identifier used to classify
and describe the different architectural models and organizational structures of the system.
These names provide a way to categorize distributed systems based on how they organize
resources, manage tasks, and interact across multiple computers or nodes.

In distributed systems, several System-Oriented Names are used to identify different


architectural models and approaches. Here are some common ones:

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


Human-Oriented Names in distributed systems are identifiers designed for humans to easily
understand, remember, and interact with distributed resources and services. Unlike system-
oriented names, which focus on technical organization and architecture, human-oriented names
are typically user-friendly and simplify interaction with complex systems. They are often more
descriptive and meaningful, allowing users to quickly identify and access resources without
needing to understand the underlying infrastructure.

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.

Naming and Security


Naming and Security in distributed systems ensure that resources are easily identifiable and
securely accessed. Key points:

1. Authentication: Verifies the identity of users or services before granting access to


resources.
2. Authorization: Ensures only authorized users can access specific resources based on
permissions.
3. Encryption: Protects data during transmission and storage to prevent unauthorized
access.
4. Secure Name Resolution: Ensures that name lookups (e.g., DNS) are protected from
tampering or spoofing attacks.
5. Access Control Lists (ACLs): Define and enforce access rights for users and services at
a granular level.

These mechanisms collectively strengthen security in distributed systems, protecting resources


from unauthorized access and ensuring reliable name resolution.

Security in DS: Design Principles, Authentication, Access Control,


Digital Signatures
Security in Distributed Systems involves principles and mechanisms that protect resources,
data, and communication across a network. Key elements:

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:

1. Java RMI (Remote Method Invocation)

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:

• Object-Oriented: Allows remote method calls on objects as if they were local.


• Automatic Serialization: Java RMI handles the serialization of objects, allowing
complex data types to be transmitted over the network.
• Dynamic Binding: The client can dynamically discover and invoke methods on remote
objects at runtime.

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.

2. Sun Network File System (NFS)

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:

• Transparency: Provides users with transparent access to remote files.


• Scalability: Can support multiple clients accessing files simultaneously.
• Statelessness: The server does not maintain client state, making it robust and easy to
recover from failures.

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:

• CRUSH Algorithm: Distributes data across nodes based on a pseudo-random hashing


algorithm, ensuring balanced load and fault tolerance.
• Self-Healing: Automatically redistributes data in the event of hardware failures.
• Unified Storage: Supports object, block, and file storage from a single cluster.

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.

4. Google Case Study

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.

You might also like