150 likes | 282 Views
CS 603 Naming in Distributed Systems. January 28, 2002. This week: Naming in Distributed Systems. Today: Overview What is a name Issues Examples Wednesday and Friday: Name Resolution Historical (Telephone, mail, …)? DNS? DCE? Others?. What is a name?. An identifier that:
E N D
CS 603Naming in Distributed Systems January 28, 2002
This week:Naming in Distributed Systems • Today: Overview • What is a name • Issues • Examples • Wednesday and Friday: Name Resolution • Historical (Telephone, mail, …)? • DNS? • DCE? • Others?
What is a name? An identifier that: • Identifies a resource • Uniquely? • Describes the resource? • Enables us to locate that resource • Directly? • With help? • Is it really an identifier? • Bijective, persistent
Key issues in Naming • How is name used? • Disambiguate only • Access resource given the name • Build a name to find a resource • Do humans need to use name? • Construct? • Recall?
Key issues in Naming (cont.) • Is resource static? • Never moves • Change in location should change name • Resource may move • Resource is mobile • Performance requirements
Approaches to naming • Globally unique identifier • Ethernet • Solves identification, but not description or location • Hierarchically assigned globally unique identifier • Telephone number, IP address • Solves identification, not description • Helps with location
Approaches to naming • Hierarchically assigned name • Domain Name Service, URL • Solves identification • Helps with description • Still problems with location • Globally unique name • TCP/IP Protocol Ports • Extensibility problems
Approaches to naming • Registries and name spaces • Uniform Resource Name (URN) • Solves identification and location • If we can get to the registry • Helps with description • Registry can describe in detail • Complicated!
URI, URL, URN • URI: Uniform Resource Identifier • IETF meta-standard • Defines naming schemes / protocols • Each naming scheme has it’s own mechanism • URL: Uniform Resource Locator • Uses DNS to map to host • Host knows how to map remainder to resource • URN: Uniform Resource Name • Idea: Permanent URL
URN • Each URN maps to a namespace • Currently 10 formally defined: IETF, ISBN, XMLORG, … • Also informal: (3 current) and experimental (unregistered) • Syntax: “urn:” <Namespace ID> “:” <string> • urn:ISBN:0-13-032071-4 • urn:ietf:rfc:2141 • (Bad) Example: • URN:<assigned number>:<FQDN>:<assigned string> • urn:x-1234:www.cs.purdue.edu:%7eclifton%2Fcs603%2f
Naming: Why an Issue for Application Developers? • DNS is widely accepted standard • Only names machines • Doesn’t handle mobility • URI / URN will become standard • Can be descriptive • Globally unique • Persistent • But expensive to create
Applications that might need custom solutions • Distributed Database • Needs persistence • May be multiple resources for single name (replication) • May need to support mobility • PERFORMANCE! • Small-scale applications • Do you really want to register with IANA? • Is persistence necessary?
Distributed Database Example: R* • R* developed at IBM Almaden Research – first distributed relational database • Wanted mobility of resources • Supports fault tolerance • But movement rare • Performance is critical • Solution: Two components to name • Unique ID assigned by “birthplace” • Local catalog maps ID to: • Birthplace (maintains current location) • Presumed current location
Security Considerations • Does name give away information? • Social Security Numbers • URL • Batched IDs (e.g., Ethernet) • Sequentially assigned IDs • Solution: Define what name SHOULD do • Ensure it meets goals • Look for reasons it doesn’t
Name Resolution:What would you like? • Historical? • Mail • Telephone • DNS? • X.500 / LDAP? • DCE? • ActiveDirectory?