Name and describe 3 types of possible transparency in distributed system.
Answer:
- Location: if the user cannot tell where something is physically in the system.
- Replication: if the user cannot tell if there are multiple copies of something in the system.
- Concurrency: if the user cannot tell if there is one or more other users accessing the same thing.
Other possibilities are Access, Relocation, Migration, Failure and Persistence.
Name 2 techniques to aid scalability of distributed systems. Provide an example for each.
Answer:
- Replication: For the Web, replicate copies of the hosting Web server objects and pages to reduce latency and reduce server load. Akamai (and other CDN's) are examples.
- Distribution: dividing up load among many different nodes, typically in a hierarchical fashion, increasing scalability over a single, centralized server. Name resolution on the Internet, the Domain Name Service (DNS), is an example.
Give an example of a Client-Server system with a "fat" client. What would be the effect of making the client "thin" for this system?
Answer: A Web browser is a "fat" client since most of the computation takes place at the end-user computer. If a Web browser was made "thin" then basic commands, such as data entry, mouse click information, etc. would be transmitted to the server. The server would then have to determine the event, say if a link was clicked, parse the corresponding HTML and send an updated picture of the Web page to the client. It is quite likely latency, in particular, would be more noticeable. In addition, the Web server would likely become a bottleneck to performance. (There are other possible examples.)
Describe a strong cache-consistency mechanism for a distributed file system with a stateless server. Describe a weak cache-consistency mechanism for the same system.
Answer: Since the server is stateless, the client must handle cache consistency. A strong mechanism has the cache, upon a cache hit, communicate with the server to verify the cache copy is up to date, before using the cached data. A weak mechanism has the cache, upon a cache hit, only sometimes communicate with the server to verify the cache copy is up to date. This can happen periodically (e.g., every X seconds) or heuristically based on the last modified times of the cached object.
Briefly describe the tradeoff between consistency and responsiveness in networked games.
Answer: Consistency refers to distributed multi-player computer games having the same state on each game host, at the same time. Responsiveness refers to the reaction of the game in terms of game state and representation to the player to a player's input. In general, in order to achieve better responsiveness, a system must sacrifice some consistency and vice versa.
How can Area of Interest be used to reduce network game traffic?
Answer: A multi-player computer game can use an area of interest computation to determine the state information a game client needs to correctly depict the game for the player. In general, only information in a player's area of interst focus needs to be transmitted to the client. At other times, the player information does not need to be sent since it will not be rendered or otherwise acted upon by the player, thus reducing network traffic.
What is packet replay as a form of cheating? Provide an example. How can it be prevented?
Answer: Packet replay is where a cheater sends duplicate copies of a game packet in order to game some advantage. For example, a game may only allow shooting 1 missile every 5 seconds (it takes a long time to reload). In using packet replay, a cheater would send another copy of the packet generated when the missile was fired, possibly allowing another missile to fire. One way of preventing packet replay is by using sequence numbers. A server can recognize (and discard) a duplicate (replayed) packet because it would have the same sequence number.
For game synchronization, what is meant by simultaneous simulation? How does it help reduce network traffic?
Answer: Simultaneous simulations is where the exact same simulation (i.e., game engine moving objects, etc.) is run on each client, right down to the random number generated. In such a case, since each simulation is the same, no network traffic would need to be generated until a user on one simulation entered an action and changed the course of the simulation.
What "services" does the intrastructure as a service (IaaS) provide in a Cloud? Provide an example.
Answer: The IaaS provides access to virtualized hardware, such as servers, storage or networking. The user is responsible for managing software on top of the hardware (e.g., the operating system) as well as any other development environments. The Amazon EC2 system is an IaaS service, providing a virtualized PC that users install and maintain their own operating system instance on. (There are other possible examples.)
With a P2P file sharing, what are the advantages for a query flooding system like Gnutella over a centralized query system like Napster?
Answer: Having a query flooding system allows the "answer" to a query (e.g., where a file is located) to be located at more than one location. This helps prevent the single point of failure from a centrailzed solution. In addition, having the query processing handled by numerous peers helps prevent possible overload conditions on a centralized system.