Types of Transparency in Distributed System
In distributed systems, transparency is defined as the masking from the user and the application programmer regarding the separation of components, so that the whole system seems to be like a single entity rather than individual components.
Aim of Transparency:
Transparency’s major goal is to make certain features of distribution opaque to application programmers so they may focus on the design of their specific activity.
Types of Transparency in Distributed Systems:
The following are the various kinds of transparency that exist in distributed systems:
- Access Transparency
- Location Transparency
- Concurrency Transparency
- Replication Transparency
- Failure Transparency
- Mobility Transparency
- Performance Transparency
- Scaling Transparency
- Parallelism Transparency
1. Access Transparency: Access Transparency allows the same operations to be used to access local and remote resources. The file distribution must be hidden from the clients. The storing of data on separate servers that are physically separated, and a common set of actions should be available to access both remote and local files. Applications for local files are to be designed such that they should be able to run on remote files as well.
Examples – The File system in Network File System (NFS), SQL queries, and web navigation exhibits the feature of access transparency.
2. Location Transparency: Location Transparency permits access to resources regardless of their physical or network location. There should be a view of a consistent file namespace for the clients. It must possess the feature of moving files such that their pathnames are not to be affected. There is no information regarding the physical location of the object in case of a location transparent name. It is a quite vital and critical feature for facilitating resource movement and service availability. Location and Access Transparency together makes Network transparency.
Examples – NFS file system and the pages of the web.
3. Concurrency Transparency: Concurrency Transparency permits many processes to run in parallel using shared resources without interfering with one another. As we know distributed systems exhibit concurrent environments so the shareable items are all accessed at the same time. It is hard to control Concurrency and implementation.
Example – Automatic Teller Machine (ATM) network.
4. Replication Transparency: Replication Transparency ensures the existence of numerous instances of resources to improve reliability and performance without having to know about replication to the user. In other words, this type of transparency should primarily be applied to distributed file systems, where replication of data over two or more sites exists for increased reliability. The existence of a mirrored copy of data must be unknown to the client.
Example- Distributed DBMS (Database Management System).
5. Failure Transparency: Failure Transparency permits fault abstraction in the background, allowing users and application programs to execute tasks even when hardware and software components fail. The fault tolerance property is exhibited by the procedures that deal with access transparency. The main concern in the distributed system is that they are more prone to failure since any of the components could fail, resulting in a degraded or non-existent/unavailable service. It is quite difficult to tell the difference between a failed and a slow-running operation since the complexities are hidden.
Examples – Database Management Systems (DBMS).
6. Mobility (Migration) Transparency: Mobility Transparency lets a system or resources move around without disrupting user or software processes. It also bolsters the load balancing of any client that may be overburdened.
Examples – Network File System (NFS) and Web pages.
7. Performance Transparency: Performance Transparency enables system reconfiguration to increase or enhance performance.
8. Scaling (Size) Transparency: Scaling Transparency enables systems and applications to scale up without requiring changes to the system architecture or application techniques. The resources that are not of any relevance to the user are hidden from the user and application programmers. The smooth development and evolution with this type of transparency are critical for most businesses. A system should be able to scale down to small surroundings when necessary, as well as be space and/or time-efficient when required.
Example – World Wide Web (WWW)
9. Parallelism Transparency: Parallelism Transparency enables parallel activities to run without users knowing how, where and when it is made possible by the systems.
Note: Access and location transparency are the two most significant types of transparency; their presence or absence has the most impact on how distributed resources are used.
Degree of Transparency:
- It is normally preferable, but it is not always the best option.
- It is not a good idea to keep a physical resource like a printer hidden from its users.
- A trade-off between a high level of transparency and a system’s performance is required.