A distributed system is the system in which hardware or software component located at networked computers communicate and coordinate their actions only by passing messages. These hardware or software components may or may not share the same resource but they work together to perform same task.
Goals of distributed system:
Resource Sharing: The primary goal of distributed system is to make to easy for users to access remote resources and to share them with other users in a controlled way. Resources in this case may be data, hardware and software components.
Transparency: The other goal of the distributed system is to be capable of presenting itself to the users and applications as if it was only a single computer system. It means to present the distributed system as a coherent system.
Openness: An open distributed system is a system that offers services according to the published standards that describe the syntax and semantics of those services. Open distributed system unlocks the features such as interoperability, portability and extensibility.
Scalability: A system is said to be scalable if it will remain effective when there is a significant increase in the number of user of resources.
Advantages of distributed system:
Improved availability: In a distributed database management system, a failure at one site of the database or a failure in communication link does not cause failure of the entire system. If a system node fails, the system may be able to reroute the failed node request to another site.
Improved reliability: As data may be replicated so that it exists at more than one site, the failure of a node or communication link does not make the data inaccessible.
Improved performance: As the data is located near the site of 'greatest demand' and given the inherit parallelism of distributed DBMS, speed of the database access may be better than the remote centralized database.
Improved economy: It is more cost efficient to create a system of workstations to a network than to update a mainframe computer.
Modular growth: In distributed system, it is much easier to handle expansion. New sites can be added to the network without affecting previous system.
Improved share ability and local autonomy: In distributed system, data can be placed at the site close to the users who normally use that data. In this way users have local control of the data.
Reflects organizational structure: Many organizations are naturally distributed over several locations. For example different branches of a bank at different locations. So, it is natural for database used in such an application to be distributed over these locations.
Challenges in distribute system:
Security: Many of the information resources that are made available and maintained in distributed systems are sensitive and hence security must be provided to them.
Scalability: The challenge while making the scalable system are controlling the cost of physical resources, controlling the performance loss, avoiding performance bottleneck and preventing software resources from running out.
Openness: Integrating the components written by different programmers and in different platforms is a real challenge.
Failure handling: Each components in the distributed system fail independently of others. Therefore each component needs to be aware of other components it depends and must know what to do when the components fail.
Concurrency: The presence of multiple users in a distributed system is a source of concurrent request to its resources. So, each resource must be designed to be safe in concurrent environment.
Disadvantages of distributed system:
Complexity: A distributed system is more complex than centralized system.
Cost: The procurement and maintenance cost of a distributed system is higher than those of centralized system. The system requires additional hardware to establish connection between sites and also cause extra communication cost and labour cost.
Security: In a centralized system, access to the data can be easily controlled. However in a distributed system, not only does access to replicated data have to be controlled in multiple locations but also network itself has to be controlled.
Lack of standards: There are no standard methodologies to help users to convert a centralized system into a distributed system.
Lack of experienced manpower: There are only a handful of industries using the distributed system to its fullest and the persons experienced are very less compared to the persons experienced in centralized system.
Network saturation: If the network gets saturated, then problems of transmission will occur.
Software: There is currently very less software support.