Tutorials 1 by 2xX4zA6


									                      Tutorials 1
1. What is the definition of a distributed system?
  1. A distributed system is a collection of independent
     computers that appears to its users as a single
     coherent system.
2. What are the four goals should be met when
   you design a distributed system?
  –   The four important goals are
      •   A distributed system should easily connect users to
      •   It should hide the fact that resources are distributed across
          a network
      •   It should be open.
      •   It should be scalable
               Tutorials 1
3. Explain what is meant by distribution
   transparency, and give examples of
   different types of transparency.
     See Tanenbaum’s book (2002 version) page
        Transparency        Description

                            Hide differences in data representation and how a
                            resource is accessed
        Location            Hide where a resource is located
        Migration           Hide that a resource may move to another location
                            Hide that a resource may be moved to another
                            location while in use
        Replication         Hide that a resource may be replicated
                            Hide that a resource may be shared by several
                            competitive users
        Failure             Hide the failure and recovery of a resource
                            Hide whether a (software) resource is in memory or
                            on disk

              Different forms of transparency in a distributed system.
Definition: A DS that is able to present itself to users and applications as if it
were only a single computer system is said to be transparent
      4. What is an open distributed system and
      what benefits does openness provide?

• An open distributed system is a system that offers
  services according to standard rules that describe the
  syntax and semantics of those services.
• Openness means that the system can easily be
  extended and modified.
• To facilitate the openness, the system should have a
  well defined and well-documented interfaces. These
  interface must declare the services that a component
  offers. And these interfaces are often described in an
  Interface Define Language (IDL)
• A service is an operation that a component performs on
  behalf of a user or another component.
• The interface definition should be complete and neutral.
   – Complete means that everything that is necessary to make an
     implementation has indeed been specified.
              Tutorials 1
5. What is the difference between a
   multiprocessor and multi-computer?
     See Tanenbaum’s book (2002 version) page
     28, second paragraph
                      Tutorials 1
6.   What is the difference between a distributed operating
     system and a network operating system?
       See Tanenbaum’s book (2002 version) page 36. Here you can
       find the main difference is that the Network OS provide the
       collection of independent computers, but does not provide the
       transparency, vice versa Distributed OS provide the
       transparency but not the collection of independent computers.
7.   What is a three-tiered client-server architecture?
8.   What is the difference between a vertical distribution
     and a horizontal distribution?
       See    Tanenbaum’s book (2002 version) page 50~53 to find
       the answers of last two questions.
    Multitiered Architectures (2)
• An example of a server acting as a client.

          Modern Architectures
• An example of horizontal distribution of a Web service.

                  Tutorials 1
9. The client-server application is used to be
   divided into three levels, what are they? Give
   an example.
      See Tanenbaum’s book (2002 version) page 46~50,
      especially page 49.
10. For the two-tiered architecture of client-server
    model, list the possible alternative
    organizations. Can you give an example for
    each case?
      See Tanenbaum’s book (2002 version) page 50~51.
        Processing Level
• The general organization of an Internet
  search engine into three different layers

                  Tutorials 1
11. Name five reasons why to build distributed
     Scalability, openness, heterogeneity, fault-tolerance
     and resource access and sharing.
12. What is the difference between a client/server
    and a distributed system
      In a client/server model, clients use the services
     offered by the server components. In a distributed
     system a server component can be the client
     component of another server component, leading to
     a n-tier architecture.
                       Tutorials 1
13. Is a three-tier architecture a distributed system

14. Why do we not build every system as a distributed
      Not all systems are distributed by nature. In some cases the
      hardware and the implementation language are completely
      homogenous and are all physically based in the same location.,
      in which case no advantages would be gained by building it as a
      distributed system.
15. What is the relationship between requirements
    engineering and distributed systems?
      Requirements engineering is the first step of software
      development for distributed systems. It specifies all the
      functional and non-functional requirements of the application.
                Tutorials 1
16. What are the eight dimensions of
    transparency in distributed systems?
     Access, Location, Migration, Concurrency,
     Replication, Failure, Performance,
17. What can the transparency dimensions
    be used for?
     It hides the complexities of distributed
     systems, offering the user a single
     integrated facility.
                      Tutorials 1
19. What is the difference between location and access
      Access transparency states that method invocations to local
      and remote objects interfaces must seem identical to the user.
      Location transparency states that components should be able to
      be identified in a manner non-dependent on their physical
20. What are the differences between performance and
    scaling transparency?
      Performance transparency is viewed from the perspective of a
      single request, whereas scalability transparency considers how
      the system behaves if more components and more concurrent
      requests are introduced.

To top