1. Q: An alternative definition for a distributed system is that of a collection of independent computers providing the view of being a single system, that is, it is completely hidden from users that there even multiple computers. Give an example where this view would come in very handy.
A: What immediately comes to mind is parallel computing. If one could design programs that run without any serious modifications on distributed systems that appear to be the same as nondistributed systems, life would be so much easier. Achieving a single-system view is by now considered virtually impossible when performance is in play.
2. Q: What is the role of middleware in a distributed system?
A: To enhance the distribution transparency that is missing in network operating systems. In other words, middleware aims at improving the single-system view that a distributed system should have.
4. Q: Explain what is meant by (distribution) transparency, and give examples of different types of transparency.
A: Distribution transparency is the phenomenon by which distribution aspects in a system are hidden from users and applications. Examples include access transparency, location transparency, migration transparency, relocation transparency, replication transparency, concurrency transparency, failure transparency, and persistence transparency.
5. Q: Why is it sometimes so hard to hide the occurrence and recovery from failures in a distributed system?
A: It is generally impossible to detect whether a server is actually down, or that it is simply slow in responding. Consequently, a system may have to report that a service is not available, although, in fact , the server is just down.
6. Q: Why is it not always a good idea to aim at implementing the highest degree of transparency possible?
A: Aiming at the highest degree of transparency may lead to a considerable loss of performance that users are not willing to accept.
7. Q: What is an open distributed system and what benefits does openness provide?
A: An open distributed system offers services according to clearly defined rules. An open system is capable of easily interoperating with other open systems but also allows applications to be easily ported between different implementations of the same system.
8. Q: Describe precisely what is meant by a scalable system.
A: A system is scalable with respect to either its number of components, geographical size, or number and size of administrative domains, if it can grow in one or more of these dimensions without an unacceptable loss of performance.
9. Q: Scalability can be achieved by applying different techniques. What are these techniques?
A: Scaling can be achieved through distribution, replication, and caching.
12. Q: Executing nested transactions requires some form of coordination. Explain what a coordinator should actually do.
A: A coordinator need simply ensure that if one of the nested transactions aborts, that all other subtransactions abort as well. Likewise, it should coordinate that all of them commit when each of them can. To this end, a nested transaction should wait to commit until it is told to do so by the coordinator.