Distributed system

Chapter 12

A distributed system is a system where the information processing is distributed over several computers rather than confined to a single machine. Advantages of distributed system are coming from several important characteristics of distributed systems. These advantages are:

  1. Resource sharing
  2. Openness
  3. Concurrency
  4. Scalability
  5. Fault tolerance

However, there are (as usual) some disadvantages:

  1. Complexity
  2. Security
  3. Manageability
  4. Unpredictability

The design challenge is to create the software and hardware to provide desirable distributed system characteristics and, at the same time, minimise the problems that are inherent in these systems.

Two generic types of distributed systems are:

  • Client-server architectures. The system may be thought of as a set of services that are provided to clients that make use of these services. Servers and clients are treated differently. The simplest client-server architecture is called a two-tier client-server architecture, where an application is organised as a server (or multiple servers) and a set of clients. The client might be thin (when all of the application processing and data management is carried out on the server, and the client is just presenting data) or fat (where client implements the application logic and interactions with user, and server is responsible for data management)
  • Distributed object architectures. There is no distinction between servers and clients, and the system may be thought of as a set of interacting objects whose location is irrelevant. There is no distinction between a service provider and a user of these services. A more general approach to distributed system design is to remove the distinction between client and server and to design the system architecture as a distributed object architecture. Objects may be distributed across a number of computers on a network and communicate through middleware. This middleware is called an object request broker.

The simplest model of a distributed system is a multiprocessor system where the software system consists of a number of processes that may (but need not) execute on separate processors. This approach is widely used in large real-time systems.

Peer-to-peer (p2p) systems are decentralised systems where computations may be carried out by any node on the network and, in principle at least, no distinctions are made between clients and servers. The overall system is designed to take advantages of the computational power and storage available across a potentially big network of computers.

My thoughts

Our Monopoly game is an example of client-server architecture with a thin client. We have one server which is responsible for all computations and data management, and client is only a GUI. This is the easiest way for us, because technically one program will do everything and another will only show that. It is also better in terms of security.

 
software_engineering/distributed_system.txt · Последние изменения: 2009/09/17 03:31 От freetonik
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki