Naming refers to the process of assigning identifiers or labels to entities such as variables, functions, files, or resources, facilitating their identification, reference, and management within software systems or data structures.

Index

Naming Scheme

Naming schemes in computer systems refer to the conventions used to name and identify entities in the system.

A naming model comprises the definition of its name space, the mapping algorithm used to assign names to resources, and the universe of values representing all possible names within the model.

Name Space: The set of all possible names or identifiers that can be assigned to resources within the system.

Name Mapping Algorithm: The algorithm or method used to map names from the name space to specific resources or entities within the system.

Universe of Values: The set of all possible values that can be assigned to names within the name space.

Scheme

Here's a table outlining different naming models in distributed systems:

Naming Model Description Examples
Flat Naming Assigns a unique name to each resource without any hierarchical structure, allowing direct and simple naming but potentially leading to namespace conflicts. UUIDs (Universally Unique Identifiers), GUIDs (Globally Unique Identifiers)
Hierarchical Naming Organizes resources into a hierarchical structure where names are composed of parent-child relationships, facilitating organization and categorization but requiring careful design and management. File system paths (e.g., /usr/bin), LDAP (Lightweight Directory Access Protocol) Distinguished Names
Domain Name System (DNS) Translates domain names into IP addresses and vice versa, providing a distributed and hierarchical naming system for the internet, enabling human-readable addressing and scalable name resolution. www.example.com, google.com
Uniform Resource Identifiers (URIs) Identifies resources on the web by specifying their location and access method using a compact and standardized format, offering a uniform naming scheme for addressing web resources. URLs (Uniform Resource Locators), URNs (Uniform Resource Names), URIs
Service Naming Assigns unique names or identifiers to services within a distributed system, enabling service discovery, invocation, and interaction across different components and nodes. Microservice names, RESTful API endpoints, gRPC services
Content-based Naming Derives names for resources based on their content or characteristics, allowing for dynamic and flexible naming based on properties or attributes of the resource. Content-addressable storage (CAS), Hash-based naming schemes
Semantic Naming Uses meaningful or descriptive names for resources based on their purpose, function, or semantics, enhancing understandability and usability but potentially requiring additional metadata or annotations. Semantic web URIs, Semantic tagging
Dynamic Naming Generates names for resources dynamically at runtime based on contextual information or system state, allowing for flexible and adaptive naming in dynamic environments. Docker container names, AWS EC2 instance identifiers, Dynamic DNS (DDNS)
Persistent Naming Maintains consistent and stable names for resources over time, ensuring reliability and continuity even in the face of system failures or changes, typically using persistent storage or registries. Persistent UUIDs, Database keys, DNS records
Human-readable Naming Employs names or identifiers that are meaningful and understandable to humans, enhancing usability and facilitating communication, but potentially limiting scalability and automation. Meaningful names for files, documents, or entities

Atlas of Naming Scheme

Naming Scheme Description Example
DNS (Domain Name System) Hierarchical naming system translates domain names to IP addresses and vice versa, enabling human-readable online addressing. google.com
IP (Internet Protocol) Addresses Numeric labels assigned to devices in a network, used for identification and communication. IPv4: 192.0.2.1<br>IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
MAC (Media Access Control) Addresses Unique identifiers assigned to network interfaces at the hardware level, used for addressing within the local network. 00:1A:2B:3C:4D:5E
URI (Uniform Resource Identifier) Identifier uniquely identifying a resource on the internet, including URLs and URNs. https://www.example.com/index.html
URN (Uniform Resource Name) Persistent, location-independent identifier for resources, ensuring unique identification regardless of location or access method. urn:isbn:0451450523
URL (Uniform Resource Locator) Specific type of URI indicating means to access a resource on the internet, typically comprising a protocol, domain name, and resource path. https://www.example.com/index.html
GUID (Globally Unique Identifier) 128-bit identifier ensuring uniqueness across space and time, commonly used in software applications. {3F2504E0-4F89-41D3-9A0C-0305E82C3301}
UUID (Universally Unique Identifier) Variant of GUID ensuring uniqueness across distributed systems, often generated using random or time-based algorithms. f47ac10b-58cc-4372-a567-0e02b2c3d479

Atlas of Naming Algorithms

Naming Algorithm Description Example
Sequential Naming Assigns names or identifiers sequentially based on a predefined order or sequence, often incrementing a numeric value or appending suffixes to existing names. File001.txt, File002.txt
Hash-based Naming Generates names or identifiers by applying hash functions to data or attributes of resources, ensuring uniqueness and distribution across the name space. MD5 hash, SHA-256 hash
UUID Generation Generates universally unique identifiers (UUIDs) using algorithms that ensure uniqueness across distributed systems, often based on random or time-based methods. UUID v4 (random UUID), UUID v1 (time-based UUID)
Timestamp-based Naming Incorporates timestamps or time-based values into names or identifiers, providing ordering and temporal context for resources. Log20220407.txt, Image2022-04-18.jpg
Content-based Naming Derives names or identifiers from the content or attributes of resources, such as file contents, metadata, or characteristics, ensuring uniqueness based on resource properties. Content-based hash, Content-based naming conventions
Semantic Naming Uses meaningful or descriptive names based on the semantics or purpose of resources, enhancing understandability and context in naming schemes. Invoice1234.pdf, CustomerRecord_JohnDoe
GUID Generation Creates globally unique identifiers (GUIDs) based on algorithms that guarantee uniqueness across space and time, often using system or network information as input. COMB GUID, Sequential GUID