SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS EXAMINATION PAPER School Computing and Mathematical Sciences Department Computer Science Level Three TITLE OF PAPER Distributed Information Systems - AC COURSE CODE COMP1305 Date and Time SAMPLE EXAM PAPER This paper contains SIX questions. ALL questions carry the same number of marks. Marks will be awarded for the best FOUR answers. Each Question is Worth 25 marks. Distributed Information Systems – AC COMP1303 Page 1 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS 1. (a) i) Explain the difficulties of detecting deadlock in a distributed environment. [6 marks] The difficulties arise because the actual resources, and processes, and thus the process’state, is distributed across several computers. The local operating system (i.e. at a specific computer) can only ‘see’ a subset of the deadlocked resources, processes, and their state. Located at computer X Resource A Process 1 Process 2 Located at computer Y Resource B Located at computer Z This diagram shows two processes, located on two different computers, deadlocked because of their competition for two resources. The resources are located at separate computers and the deadlock itself involves three computers – no single computer can ‘see’ the entire deadlock. Explanation of the difficulties of detecting deadlock in a distributed environment. [6 marks] Note that discussion of deadlock in a non-distributed context will only receive 1 or 2 marks, depending on the accuracy and relevance. Distributed Information Systems – AC COMP1303 Page 2 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS ii) Show with the aid of diagrams, how phantom deadlocks can occur, and discuss the consequences of this. [6 marks] It takes time to gather the ‘state’ of processes and to determine if a deadlock is present. During the gathering process the state of processes is continually changing, thus it is not possible to achieve a totally consistent global view. Edge-chasing (drawing a wait-for graph) can lead to a cycle reported that never actually existed all at once. Resource A Exists at time T0 only Exists at time T0 and T1 Process 1 Process 2 Exists at time T0 and T1 Resource B Exists at time T1 only The diagram shows that if the state-collection spans both time T0 and time T1 it will ‘detect’ a deadlock which never actually exists – there is no complete cycle at either time T1 or time T2. The consequence of phantom deadlocks is that processes are terminated unnecessarily, and valuable processing resource is wasted – the process must be re-started. Illustration with diagram(s), how phantom deadlocks can occur. Note that omission of a diagram will reduce the mark to a maximum of 2. Discussion of the consequences of phantom deadlocks Distributed Information Systems – AC COMP1303 Page 3 of 22 [4 marks] [2 marks] SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS (b) i) Explain, the need for clock synchronisation services in distributed systems. Provide application examples to illustrate your answer. [6 marks] Each node must have a clock and these need to be kept synchronised (i.e. telling the same time). (Some discussion of relevant issues such as clock skew, clock drift, and Coordinated Universal Time (UTC), perhaps discussion of the differences between physical clocks and logical clocks) Clocks are used to timestamp events and this is important in transactions. It is sometimes very important to know the order in which events occurred. Example situations of the use of time-stamping to determine event order would include financial transactions (e.g. stock buying and selling, back account updates deposits – withdrawals). Replicated database updates require that all replicas remain consistent – one node must not perform event A before event B whilst another performs event B before event A. A telemetry application (at a factory) might ignore the situation where valve X opens before the temperature in tank Y reaches 100 degrees, but signal an alarm if the events are seen to occur in the opposite order. Explanation of the need for clock synchronisation services in distributed systems. [3 marks] Provision of appropriate application examples to illustrate the answer. [3 marks] Distributed Information Systems – AC COMP1303 Page 4 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS ii) Critically discuss ways in which a clock synchronisation service could be implemented. Your answer should highlight the strengths and weaknesses of at least two approaches. [7 marks] The key issues: Updates are subject to message delays – thus absolute synchronisation is not possible. Problems associated with adjusting clocks immediately – better to speed them up or slow them down a small amount and adjust them over a period. Problems associated with setting a fast clock back in time – some timestamps that have already been used will now be in the future – bad. Also timestamps that have been used can be re-used – bad. Highlight the strength and weaknesses of two approaches for achieving clock synchronisation. These could be any two of, for example: Cristian’s method, The Berkeley algorithm The Network Time Protocol (NTP) For example, the strengths and weaknesses of Cristian’s method could be discussed thus: • Intended mainly for use within an Intranet and is not particularly scalable (being server-based and not hierarchical), and not particularly suited to use over networks that have very large delays, or highly variable delays. • Simple for use in LAN environments in which delay is usually short and reasonably stable. • Takes into account the round-trip time (RTT) between the client and server when calculating the time to set at the client’s clock. Only achieves satisfactory synchronisation if the RTT is short with respect to the accuracy required. Critical discussion of the ways in which a clock synchronisation service could be implemented. [3 marks] Highlight / outline the strengths and weaknesses of at least two approaches. [4 marks] Note: one approach covered in good detail might receive 3 marks, but to get full marks there must be at least some detail of each of TWO approaches. Distributed Information Systems – AC COMP1303 Page 5 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS 2. (a) Critically discuss the security implications of the following features of distributed systems: i) Exposed system-level communications. [6 marks] Communication between parts of applications (such as client/server applications) contains system-level information as well as user / application data. Thus an eavesdropper could potentially discover passwords, port numbers, encryption keys, system-management information (such as the location of resources) etc. The system-level information is potentially much more sensitive than the user data because it might enable an attacker to gain access to services and other resources, and to perform a widevariety of attacks such a denial-of-service and masquerade / impersonation of services. An answer similar to the above would achieve full marks [6 marks] ii) Multiple points of execution. [6 marks] Multiple points of execution exist – a process can execute at many different locations, and resources can be executed at many locations. This has both positive and negative impacts on security. The positive impacts include: an attacker may not know in advance where a particular process will execute, or where a particular resource (file, objects, etc) will be located. Thus the attacker relies on luck if they are targeting a specific resource or process. Dynamic relocation of resources further compounds the difficulties faced by this type of attacker. Distribution of resources, such as a database means that if only a single site is attacked (or its transmissions monitored) the attacker might only see a fraction of the actual data passing by. The negative impacts include: Each of the sites must be secured against attacks, but accessible freely to authorised users – this requires a fine balance in the security measures employed. If one site is successfully attacked, the intruder must not be able to extend their attack through (apparently) legitimate internal requests. Detection of attacks in distributed systems can be difficult and complex. An answer similar to the above would achieve full marks [6 marks] (b) i) Explain, with the aid of diagrams, the operation of the Kerberos distributed systems authentication mechanism. [9 marks] See for example the course text (Coulouris, Dollimore and Kindberg) chapter 7, pp291 – 308. In particular the answer should describe the operation of the Authentication Server (AS) and the Ticket-Granting Server (TGS). The use of tickets and authenticators, and the different encryption keys that are used for the various types of messages should be included in the answer. Additional mechanisms to enhance security, such as time-stamping of messages to limit lifetimes and the inclusion of client location in tickets to prevent illegal use from another location etc, should also be discussed. An answer that correctly covered all these issues would receive full marks [9 marks] Distributed Information Systems – AC COMP1303 Page 6 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS ii) Critically discuss the extent of the security provided by Kerberos. [4 marks] Kerberos is itself a distributed application. It provides authentication services for clients and servers – i.e. it can authenticate a client on behalf of a server, but the client can also request that the server be authenticated before any sensitive data is sent to the server (this helps prevent masquerade attacks). Kerberos does not trust / rely on the integrity of workstations. Kerberos provides three different levels of security (with respect to message encryption) – which gives users and administrators considerable flexibility. Kerberos does not transmit the password across the network – not even an encrypted version of it – instead it uses the password as a DES key to decrypt messages containing tickets. One issue is the selection of TGS ticket lifetimes – too long reduces security, too short inconveniences users. See also the course text (Coulouris, Dollimore and Kindberg) page 298. A discussion such as the above would receive full marks Distributed Information Systems – AC COMP1303 Page 7 of 22 [4 marks] SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS 3. (a) Identify the transparency requirements of a distributed file system. Your answer should discuss the relative importance of the various forms of transparency and provide application examples to illustrate and justify your answer. [7 marks] Access and Location transparency are the most important in this context. It is vital that users can access their files regardless of whether they are held locally or remotely, and the user should not have to know where the files are actually held, or to have to do anything different to access the files if they are remote. Failure, Concurrency, Performance and Scalability transparencies are also very important. Users should have reliable error-free access to their files and files should not be corrupted (in particular, multi-user updates should be protected from the lost-update problem). Performance should be predictable (not sporadic) and should be maintained (or degrade gracefully) as the system scale increases. Replication transparency is desirable, as it is a means of increasing robustness, access and performance. The answer should identify the transparency requirements specific to a distributed file system. Just listing all the transparency requirements the course has covered, without relation to distributed file systems will not attract marks. The answer should discuss the relative importance of the various forms of transparency. Some forms of transparency are vital, others perhaps, desirable but not absolutely necessary – the answer should differentiate – as in the sample answer above. [5 marks] An application example (illustrating the need for access and location transparency): Consider an office worker who regularly uses a mixture of files that are located at several different file servers, and some on the local computer (their workstation). It would be inappropriate to ask the user for the location of each file they used, for several reasons: o The user may not know what a file server is! o The user may not realise that the files are held at different locations! o The user may not know at which location their files are held! o The user does not have spare time to keep answering questions or providing information as to the location of their files. o The file system may relocate / redistribute files to perform load balancing – so the user’s knowledge of location could be out-of-date. o The file server might have crashed and a replacement / replica could be in operation. For all these reasons (and several others) it is inappropriate for the user to be expected to know details of the location of their files, and to have to do anything different to access remote files, than they would have to do to access local files. Therefore access and location transparency are vital requirements. An application example(s) to illustrate and justify your answer. [2 marks] Distributed Information Systems – AC COMP1303 Page 8 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS (b) Describe, with the aid of a suitable diagram, the architecture of the NFS distributed file system. In particular you should show how requests for both local and remote files are handled. [8 marks] Application processes System calls Virtual File System Local File Local File System Remote File NFS Client Virtual File System NFS Protocol Operating System Kernel NFS Server Local file system Operating System Kernel The diagram shows how the VFS layer intercepts file requests and determines whether the file is local or remote. Local file requests are passed to the local file system. Remote requests are passed to the NFS client, which passes the request to the NFS server process at the appropriate remote node. The NFS server then passed the request to (its local) VFS layer. The VFS at the remote node then passes the request to (its local) file system. Importantly, the presence of the VFS at the user’s computer hides the remoting activity (and thus provides access and location transparency. Description of the architecture of the NFS distributed file system. The answer should show how requests for both local and remote files are handled (i.e. explain the operation of the VFS layer). [8 marks] Note: answers that do not include a suitable diagram will receive a maximum of 4 marks. Distributed Information Systems – AC COMP1303 Page 9 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS (c) Consider a software development company with Development, Quality Assurance, and Sales departments. Each department is to have its own file server. Sketch out a strategy for making the company’s files available to all users, using NFS. Your answer should include details of the proposed directory tree structure as seen by users, showing the various mount points. [8 marks] Local area network User User workstation User workstation workstation ‘Development’ File server ‘Quality Assurance’ File server ‘Sales’ File server Storage of files Storage of files Storage of files This diagram (above) shows the physical view. Each user workstation can access each physical server via the LAN. A user’s files could be physically located at their own workstation, or at any of the three file servers. client root usr Dev Mount points QA Sales remote mount remote mount remote mount root root exports exports aaa A B Development root nfs bbb C J K ccc L Quality Assurance Distributed Information Systems – AC COMP1303 Page 10 of 22 X Y Sales Z SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS The diagram (above) shows the location of mount points within the directory tree, and details of the file system tree constructed across the four different computers to appear as a single tree by a user at the client workstation. client root usr Dev A B C QA Sales J K L X Y Z This diagram (above) shows the virtual file system, as seen by a user at the client workstation. The answer should differentiate between the physical and virtual ‘views’, i.e. the differences between the actual network configuration and the users’ perception of the files being locally available. Details of the proposed directory tree structure as seen by users, showing the various mount points should be included. [8 marks] Partial answers, lacking diagrams or explanation will receive reduced marks. Distributed Information Systems – AC COMP1303 Page 11 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS 4. (a) Critically discuss the CORBA distributed object architecture. Your answer should describe the operation of both static-invocation and dynamicinvocation, providing examples of the use of each. [12 marks] The discussion should be critical (i.e. state strengths, weaknesses, advantages, disadvantages) and be formed around the following technical material: The Object Request Broker (ORB) - the central component of CORBA Object Implementation Client Request ORB A request being sent through the Object Request Broker (A High-level representation) The ORB facilitates message exchange between objects. Objects use the ORB to make requests to, and receive responses from, other objects. Object Implementation Client Dynamic Invocation IDL Stubs ORB Interface IDL Skeleton Object Adapter ORB CORE ORB-dependent interface Interface identical for all ORB implementations There are stubs and a skeleton for each object type There may be multiple Object Adapters The structure of the ORB interfaces in CORBA Each CORBA object has an object reference which is unique and independent of its name(s). Distributed Information Systems – AC COMP1303 Page 12 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS Object Adapters. Object adapters provide access to ORB services, including: • implementation activation and deactivation • mapping object references to implementations • registration of implementations • generation and interpretation of object references • object activation and deactivation • method invocation Basic Object Adapter (BOA). Every CORBA implementation must provide a BOA which is used by default, additionally special Object Adapters may be provided (for a specific DBMS for example). The Implementation repository is used by the Object Adapter to keep track of classes and their runtime instances (Objects). The Interface repository is a runtime database that contains descriptions of the methods associated with each class. This database is used by the Dynamic Invocation utility to match a suitable server object to a dynamic request message. Critical discussion of the CORBA distributed object architecture. Note that non-discursive, note regurgitation will receive less marks. Distributed Information Systems – AC COMP1303 Page 13 of 22 [4 marks] SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS Static Invocation Interface. Platform 2 (Server / object implementation) Platform 1 (Client) Application 2 Object B Application 1 Object A Request Dynamic Invocation Client IDL Stubs Interface repository Dynamic Skeleton Invocation ORB (Client side) Server IDL Stubs (Skeletons) Implementation repository Object Adapter ORB (Client side) Object Request Broker (Core) Static Invocation (A brief explanation of the operation of static invocation should accompany the diagram). Example of use - the Static Invocation interface is used when the Client object wants to send a message to a specific object, i.e. the target object was known at compile time. This is typical of situations where regular relationships between objects occur – for example a certain bank application business-logic (middle-tier) object is a regular client of a back-end data-manager object which manages storage of the bank account data. Description of the operation of static-invocation, with an example of its use. Note that omission of the example (or a poor example) will reduce the mark. Distributed Information Systems – AC COMP1303 Page 14 of 22 [4 marks] SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS Dynamic Invocation Interface. Platform 2 (Server / object implementation) Platform 1 (Client) Application 2 Object B Application 1 Object A Request Dynamic Invocation Client IDL Stubs Interface repository ORB (Client side) Dynamic Skeleton Invocation Server IDL Stubs (Skeletons) Implementation repository Object Adapter ORB (Client side) Object Request Broker (Core) Dynamic Invocation (A brief explanation of the operation of dynamic invocation should accompany the diagram). Dynamic Invocation is used when the client object requests a service but does not know the specific class of object to satisfy the request. Example of use - the Dynamic Invocation interface is used when the client object wants to interact with a particular type of service (but does not know which object provides this service). This situation usually arises at run time. For example a replicated database service needs to update some data held at all currently active service instances. The number of replica servers that exist at any moment (and their identities) is not knowable at compile time. The interface repository is used to identify server-objects that have interface descriptions / methods that match the description provided by the client object. Description of the operation of dynamic-invocation, with an example of its use. Note that omission of the example (or a poor example) will reduce the mark. Distributed Information Systems – AC COMP1303 Page 15 of 22 [4 marks] SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS (b) Evaluate the extent of the transparencies provided by CORBA, indicating how each form of transparency is achieved. [7 marks] • Access transparency - Object methods are invoked in the same manner whether they are local or remote to the requesting object – achieved partly by the ORB and partly by the use of skeletons, stubs and object adapters. • Location transparency - The location of an object is not known and does not need to be known when invoking that object’s methods – achieved by the ORB and the Implementation repository, which keeps track of runtime instances • Implementation transparency - The way an application is implemented (language, Activation Policy, platform, operating system etc.) is hidden – achieved primarily through the use of IDL. • Distribution transparency - The communications network, specific node - server mappings, and relative locations of communicating objects are hidden – achieved through the use of the ORB and the object adapter (especially the various activation policies it can support) • Configuration transparency – the configuration of the system and of services does not need to be known by applications – this is fundamentally achieved through the provision of Dynamic Invocation, with the Interface Repository which contains descriptions of the methods associated with each class, allowing them to be ‘discovered’ by applications at run-time. CORBA does NOT SPECIFICALLY support replication transparency or concurrency transparency. Evaluation of the extent of the transparencies provided by CORBA [4 marks] Indication of how each form of transparency is achieved / provided. [3 marks] Note that just listing the correct list of transparencies will achieve only 1 or 2 marks. Listing all transparencies that are covered in the course, with no differentiation between the ones provided by CORBA and those not provided, will not receive any marks. Distributed Information Systems – AC COMP1303 Page 16 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS (c) Describe, in outline, the steps required when developing distributed applications using CORBA. Include in your answer a brief explanation of the role of IDL. [6 marks] The CORBA IDL consists of a subset of C++ with additional keywords to support object distribution concepts. Support for several target languages is provided (C, C++, COBOL, ADA, Small Talk and others). IDL provides implementation transparency and allows objects written in different languages to communicate. Client side COBOL C C++ ADA Other Server / Object Implementation side IDL IDL IDL IDL ORB IDL ORB IDL IDL IDL IDL IDL COBOL C C++ ADA Other Interface Deffinition Language (IDL) The steps required are: 1. The interfaces between objects are identified and described using IDL code. This describes the interfaces only – it is language and functionality independent. 2. The IDL compiler generates a client stub, a server implementation skeleton and a header file. 3. The actual client functionality is written in the chosen client-object development language. 4. The actual server functionality is written in the chosen server-object development language. 5. The client is compiled together with the client stub and the header file (from step 2). 6. The server is compiled together with the server skeleton and the header file (from step 2). 7. The client and server objects are deployed into the system. Distributed Information Systems – AC COMP1303 Page 17 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS Identify Objects in System Write IDL Definitions Add Server Object Code Compile Client Applications Interface repository Client IDL Stubs Server Applications Server IDL Stubs (Skeletons) Steps in developing a CORBA application Outline description of the steps required when developing distributed applications using CORBA. [4 marks] Brief explanation of the role of IDL. [2 marks] Distributed Information Systems – AC COMP1303 Page 18 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS 5. (a) Compare and contrast the two-tier and three-tier models for distributed application design. Provide application examples to illustrate the relative advantages and disadvantages of each approach. [13 marks] Presentation Data Network Processing Secondary storage Two-tier application (fat client) Data Network Secondary storage Presentation Processing Two-tier application (fat server) Presentation Presentation Network Processing Processing Processing Network Data Data Data Data Three-tier application Diagrams, such as those shown above, should be provided to illustrate the key differences. In particular the separation of the presentation, business logic and data management functionality should be illustrated and discussed. Strengths and weaknesses should be highlighted. For example, the fat server (two-tier) is less scalable than the thin server – because each client adds significant extra workload on the server. The three tier approach is more flexible because all three aspects of functionality can be separated (and replication can occur in the business logic and the data management entities as required). Comparison of the two-tier and three-tier models for distributed application design. Note the sample answer above details only a subset of the many examples of differences, relative advantages and relative disadvantages. [7 marks] Distributed Information Systems – AC COMP1303 Page 19 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS A departmental server based application does not need the scalability offered by the three-tier approach and thus would be more suitable to a simple client-server design which is much simpler and thus easier to design, install and maintain. A distributed application deployed over an international corporation will need to be highly scalable and robust. This type of application is much more suited to the three-tier approach, as it is inherently more scalable, and can be made robust by replication at several levels. Also the three-tier design approach enables more flexible security, as some users can have access restricted to the only parts of the system they need to access. Provision of application examples to illustrate the relative advantages and disadvantages of each approach (note the answer above provides only a subset of the possible examples that could be given. [6 marks] (b) Show, with the aid of diagrams, how the three-tier model could be applied to the design of a distributed stock-control system. Your answer should include a discussion of the functionality of each tier, with justification. [12 marks] Presentation (user interface) Business logic Data Management (database engine) One copy per user (e.g. Update stock quantity, Check stock price, Move stock) One copy at each warehouse, Deals with local-stock part of the stock database. Tier 1 Tier 2 Tier 2 The three tiers are separated and can be deployed to suit the physical distribution of the company. For example, part of the database can be held at each warehouse (maintaining the data for the local stock) A query to determine the stock held at a specific warehouse would only need to contact the appropriate tier-3 object. However, a stock audit (for example) would need to contact all of the tier-3 objects. The answer should illustrate how the three-tier model could be applied to the design of a distributed stock-control system. The use of a clear, appropriate diagram is important. The functionality of each tier, should be discussed and justified. [12 marks] An answer without a suitable diagram would receive a maximum of 8 marks. Distributed Information Systems – AC COMP1303 Page 20 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS 6. (a) Critically discuss the need for replication in distributed systems. Your answer should address the following issues: What can be replicated? What are the benefits of replication? How can replication be achieved? [12 marks] Several aspects of distributed systems can be replicated, these include: Processes – especially services that need to be highly available and fault-tolerant. For example a web-service could be replicated at several sites to ensure that the service was highly available – even if one site suffered a failure. Data resources such as files and databases can be replicated to ensure that copies are highly available – despite possible failures in some parts of the system. When writable data resources are replicated the issues of update consistency and distributed transaction management must be addressed. Computationally-intense applications can be decomposed to run as parallel applications. The parts are then executed (as replicas) and the results collected. The replication of such applications spreads the load over several processors, and thus reduces responsetime. [4 marks] There are several benefits of replication: Fault-tolerance. If one replica (process or resource) cannot be accessed, another can be contacted. Multiple copies of a resource means that the access requests can be distributed across the replicas. This increases the availability of the resource, reducing the load on any one server and thus reducing access times. Many systems have geographically dispersed users. Spreading copies of resource so that it is geographically near to users reduces the amount of traffic in network systems, reduces the associated costs of long-distance network communication and reduces communication latency. [4 marks] There are several issues to be considered when replication is implemented. Replication should be transparent to users (user applications). Applications should not need to know that resources are replicated, how may replicas there are, or where they are located. If one copy of a resource is unavailable the request should be redirected to another copy without the userapplication’s involvement. Where resources are geographically dispersed, a user’s request should, by default, be automatically directed to the ‘nearest’ instance of the resource. The most common way to achieve this is to provide an additional software layer (service) at each computer which ‘resolves’ requests appropriately and thus provides access and location transparency. [4 marks] Distributed Information Systems – AC COMP1303 Page 21 of 22 SAMPLE EXAMINATION PAPER – SAMPLE ANSWERS (b) Critically evaluate the need for directory services in large, dynamic distributed systems. Provide application examples to illustrate your answer. [6 marks] As systems expand, the number of resources, and the number of possible locations these resources can reside grows exponentially. It is not reasonable to expect applications to keep track of the names and addresses of all the resources (including other applications and core services) that they use. The dynamic reconfiguration of systems – moving resources around to load-balance and to cope with component failures – considerably exacerbates the problem. Directory services provide a convenient solution. An application client contacts the directory service to find the current location of (one copy of) the service they require. The business of ensuring the information is up-to-date is the responsibility of the directory service, not the user application. [3 marks] An example would be a web-browser connecting to a web-server. The user provides a URL, which identifies a service by name (but does not provide location information). The browser contacts a directory service (DNS in the Internet) to translate the domain-name part of the URL into an address. The client then uses the address to establish an HTTP connection to the appropriate web-server. [3 marks] (c) Describe, in outline, the architecture and operation of the Domain Name System (DNS). Your answer should address the following issues: How does an application make a request to DNS? How are names resolved to IP addresses? How does the DNS system achieve scalability? [7 marks] Applications embed a resolver such as ‘GetHostByName’ into the client code. When the client needs to resolve an application name into an address (e.g. from a URL into an IP address) the resolver is invoked and contacts the local DNS server. Local resource names are translated into addresses by the local DNS server. Non-local names are passed up the DNS server hierarchy until a server is reached that can perform the required resolution (i.e. it is local to the requested resource). The address is then passed back down the hierarchy to the local server, which passes it back to the resolver. The scalability of DNS is fundamentally derived from its hierarchical (inverted tree) implementation. Additionally, DNS servers are replicated to ensure that the system is very robust and that requests are handled quickly. The replication enhances scalability. [7 marks] Distributed Information Systems – AC COMP1303 Page 22 of 22
© Copyright 2024