1 / 107

ITEC801 Distributed Systems

ITEC801 Distributed Systems. Naming & Name Services Coulouris Chapter 9. Important Things. What is a Name? Why are names important? What is binding? When can it happen? Name resolution Approaches to navigating name servers Example systems DNS. X.500, LDAP. Use of Names.

zagiri
Download Presentation

ITEC801 Distributed Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ITEC801Distributed Systems Naming & Name Services Coulouris Chapter 9

  2. Important Things • What is a Name? • Why are names important? • What is binding? When can it happen? • Name resolution • Approaches to navigating name servers • Example systems • DNS. X.500, LDAP Naming

  3. Use of Names • A name identifies what you want. • names are used to refer to resources • Services • Nodes • network attachment • Paths • Files • objects within services Naming

  4. Other Related terms • Address: An address identifies where the named entity is. • Route: A route identifies a way to get there. • Binding: Binding is the process of mapping a name to a address. • Context: A context is a particular set of bindings. • Each context has an associated naming • convention Naming

  5. Other Related terms • Naming System: Connected set of contexts of the same type and provides a common set of operations • name service: A service that provides a binding function. • Name space: Set of names in the naming system Naming

  6. Scope • Some names valid only for a particular service • File for file service • Process id for process server • Some beyond a single service • User name • Computer name • Service name • In internet naming is potentially global in scope Naming

  7. Addresses (Access Points) , Names, • All named entities can be operated upon. • Printer • Network connection • To operate on an entity, we need to access it. • Access Point: each entity can be accessed using its access point called an address. • Address: An address identifies where the named entity is. • Route: A route identifies a way to get there. Naming

  8. Identifiers • Identifier • At most one entity • At most one identifier • Always the same entity • Identifier includes or can be transformed to an address for an object • E.g. NFS file handle, Corba remote object reference Naming

  9. Identifiers • A name • Is human readable • Can be resolved to an identifier or an address • These are not the same Naming

  10. Names and Addresses • An address is just a special kind of a name?? • Why do we need both a name and an address to refer to an entity • An entity can have more than one address (access point) • An entity can change its addresses in the course of time. • Addresses usually not human friendly. • Clarity • Location Independence Naming

  11. Identifiers and Names • For many purposes, names are preferable to identifiers • Binding can be changed: • Human Friendly nature: • machine readable form Naming

  12. More Terms • A name is resolved when it is translated into data about the named resource • The association between a name and an object is called a binding • Simplest form of binding • Distributed Systems Naming

  13. URL http://www.cdk3.net:8888/WebExamples/earth.html file Socket Web server Composed naming domains used to access a resource from a URL DNS lookup Resource ID (IP number, port number, pathname) 138.37.88.61 8888 WebExamples/earth.html ARP lookup (Ethernet) Network address 2:60:8c:2:b0:5a Naming *

  14. Interpreting Names • Names are usually used to look up collections of names in a table (directory, name server) to yield the value. • Context: A context is a particular set of bindings. • A name only has meaning relative to some context. Naming

  15. Interpreting Names • A name service stores a collection of one or more naming contexts • The major service of a name server is to resolve a name • Creation of new bindings • Deletion of bindings • Listing of bound names • Addition and deletion of contexts Naming

  16. Ideal Name Service Should • Handle an arbitrarily large collection of names and administrative organisations • Have a long life time • Have high availability • Be fault tolerant • Not rely on components being trusted by all clients Naming

  17. Uses of Names • The above is a bit glib • there are many uses of naming in distributed systems • they are not necessarily catered for by the same naming structure and common naming mechanism • Machine to service mapping. Naming

  18. Name Spaces • A name space: A context within which the names of all objects must be unambiguously resolvable. • Collection of all valid names recognised by a name server • A valid name does not necessarily correspond to an actual something • Name spaces require a syntactic definition of a valid name • Internal Structure versus flat • Pure and non pure names Naming

  19. Flat Name Space • Name is assigned to an address. • Name a sequence of characters without structure. • May or may not have a common section. • Issues with scaling. • Unambiguously resolvable requirement Naming

  20. Scaling • Distributed systems: • Indefinite number of machines for naming. • Not prudent to redesign the system: • the name space should be managed rather than scale disasters avoided • a prominent feature is the use of hierarchy to avoid accidental non-uniqueness of names Naming

  21. Hierarchies • Uniqueness and scaling through hierarchy • Hierarchical solution quite popular. • this leads to multi-part names which resemble (and thus need to be carefully distinguished from) names in such systems as Unix • Assures Uniqueness Naming

  22. Hierarchical Names • compound name • Divided into different sub parts. • Subname Space • Uniqueness necessary only in subname space: To be unambiguously resolvable • So same name may be reused in different contexts. • Example: Unix path names: /etc/passwd, /oldetc/passwd, different machines. • Name space potentially limitless in size • scale to extremely large networks • Example: DNS systems in Internet Naming

  23. Name Resolution • A name is presented to a context • The context maps the name into data about the named resource or object. • Data : A set of primitive attributes. • Attribute: Most common is address. • Examples: • DNS • X.500 • Corba Naming service Naming

  24. URL http://www.cdk3.net:8888/WebExamples/earth.html DNS lookup Resource ID (IP number, port number, pathname) 55.55.55.55 8888 WebExamples/earth.html Web server Network address file 2:60:8c:2:b0:5a Socket Domain Name Resolution Naming

  25. Name Servers • No large service will store all information on a single machine • Such a machine would be • Single point of failure • Bottleneck • Any heavily used name service uses replication and/or partitioning Naming

  26. Name Server • Local name server stores naming data for the local domain • Data is therefore partitioned amongst the servers • The local name server cannot answer all enquiries • It may store some data from outside (responsible for more than domain, caching) but won’t store all Naming

  27. Navigation • The process of locating naming data from more than one name server • The client name resolution software does this for the client • Various approaches • Iterative navigation • Multicast navigation • Non-recursive server controlled navigation • Recursive server controlled navigation Naming

  28. Iterative Navigation • Used by DNS and NFS • NFS due to its Symbolic links. • Naming Client presents name to local server • If result is another context, client presents next part of name to that server and so on. • Queries to be satisfied locally NS2 2 Name servers 1 Client NS1 NS3 3 Naming

  29. Multicast navigation • Client multicasts name to all servers • Only server holding named attributes replies • Unbound name gets no reply – which is the same result for a bound name held by a down server • Cheriton and Mann Extension • Used in discovery services Naming

  30. Non-recursive Server Controlled • Naming Client presents name to local server • Server then communicates iteratively or recursively with its peers to resolve name NS2 2 Name servers 1 Client NS1 4 NS3 3 Naming

  31. Recursive Server Controlled • Naming Client presents name to local server • Name is passed recursively to servers until resolved, and then back. • Client controlled and non recursive schemes are restricted. NS2 2 1 Client NS1 3 4 5 Name servers NS3 Naming

  32. Distributed Systems • what's different about distributed systems? • they are not centralised • if there is anywhere in the system that necessarily has to have global information, it is not really distributed Naming

  33. Bindings • there is more naming in distributed systems because there is more binding • that is, there is more that can change, for example • binding machines to addresses • binding services to machines Naming

  34. Binding types • An important issue in binding is that of when the binding takes place. • static binding: essentially a hard-coded binding. • Least flexible • Example: Static cache for address resolution • dynamic binding: have some mechanism for resolving the name on demand. • early binding: Binding performed some time before the binding is needed. • late binding: binding is performed on demand, just before use. Naming

  35. Bindings • conventional wisdom in distributed systems holds that early binding is to be avoided • in practice this is not always followed • some programs which should consult name servers will have addresses hard coded into them, which can lead to services failing • Late Binding is more flexible. Naming

  36. Caching • Systems cache results of previous lookups • Name servers in DNS • ARP cache • Caching assists performance and availability • Response times reduced. • Elimination of some servers from navigation path. • Widely used in name servers • Successful because naming data rarely changes • Can still lead to incorrect results being returned Naming

  37. Replicated Name Servers • Useful for reliability and availability • Can give problems of consistency • The following is generally true of any replication • Consistency important. • Immediate: Cost • Long term. Naming

  38. Names and resources • Currently, different name systems are used for each type of resource: resource name identifies • file pathname file within a given file system • process process id process on a given computer • port port number IP port on a given computer Naming

  39. Uniform Resource Identifier • Uniform Resource Identifiers (URI) offer a general solution for any type of resource. There two main classes: • URL Uniform Resource Locator • typed by the protocol field (http, ftp, nfs, etc.) • part of the name is service-specific • resources cannot be moved between domains • URN Uniform Resource Name • requires a universal resource name lookup service - a DNS-like system for all resources Naming

  40. Uniform Resource Locators • Scale to unlimited number of web resources • Are addresses of web resources • If resource deleted or moved and URL still used no, or incorrect, information returned Naming

  41. Uniform Resource Name • Idea is for web resource to have a URN that persists even if resources moves • Need URN lookup service • Resource registered with lookup service • Service translates URN to URL • New URL registered if resource moves Naming

  42. More on URNs • format: urn:<nameSpace>:<name-within-namespace> • examples: • urn:ISBN:021-61918-0 • urn:dcs.qmul.ac.uk:TR2000-56 Naming *

  43. URN Resolution: • send a request to nearest ISBN-lookup service - it would return whatever attributes of a book are required by the requester • send a request to the urn lookup service at dcs.qmul.ac.uk • it would return a url for the relevant document Naming

  44. Directory and Discovery Service • Allow look up on more than just names • DNS • Allow look up on one or more attribute • X.500 Directory • Names are treated as just another attribute • We will now discuss DNS and X.500 Directory service Naming

  45. DNS: History • Before 1980, ARPANET: A few hundred networked computers • Single file (Hosts.txt) for name to address mapping: • SRI (NIC) in Menlo Park California. • Other hosts copied this file as and when required • As ARPANET increased in size, problems surfaced • Hosts.txt: became too large • needed to be updated more than once a day • Traffic bottleneck and Flat name space problem • Solution: Creation of DNS (RFCs 882,1035) • DNS: Hierarchical Name Space Naming

  46. Some concepts regarding Hierarchy • directory or naming network: A set of catalogs that may include other directories • naming hierarchy: A naming network organized in a tree-structured form. • Pathname • Root • Examples: • /etc/passwd • ftp.cs.vu.nl Naming

  47. Hierarchy Name Space Distribution • Typically a single root node. • Global layer • Nodes at Highest levels: • Stability • Administrative layer • Organization specific • Represent groups • Managerial Layer • Nodes that typically change regularly. • Shared files, user defined Naming

  48. DNS • Hierarchical client/server-based systems • Application layer functionality • Purpose: Translation • Clients: resolvers • servers: name servers (NS) • Analogous to a Telephone book • Resolvers: Passing requests between application and NS • NS: take requests and resolves names to addresses Naming

  49. Name Space and Names • DNS name space is hierarchical • Domain name consists of one or more strings called name components or labels • No delimiter at beginning or end of name • Root sometimes referred to as ‘.’ • Names cannot contain ‘.’ and must printable • Not case sensitive Naming

  50. Domains • DNS a collection of domain names • A domain’s name is the suffix of the names within it • Sometimes difficult to distinguish a domain name from the name of a computer Naming

More Related