Transparency, in the context of data and communication systems, refers to the data stream being sent or the output stream being delivered in the exact bit sequence. This means that the output data from one end of the connection should be the same exact data that arrives as the input to the other side of the connection. It also refers to the characteristic of the communication system being perceived by users as a single entity rather than as a collection of autonomous systems in cooperation, with the users being unaware of the processes occurring underneath.
Transparency is an important characteristic of distributed systems, as it makes their operation in the eyes of the user to be more friendly, easy or simply transparent. Users should be unaware of the location of the services, and the transfer from a local to a remote machine should remain transparent to them.
As most communication and distributed systems are very complex, steps have to be taken so that the complexity does not hinder the user from or make the user worry about using the system. Here are the different kinds of transparencies that a system must have in order for it to become truly transparent in the eyes of the user:
Access transparency - Clients and users should be unaware of the distribution of files in terms of specific servers or physical location; the files simply have to be available and accessible whenever they are required.
Location transparency - Files should be seen by clients as a uniform namespace so that, even when they are relocated, the pathnames remain the same. A location transparent name should contain no information about the object’s physical location.
Performance transparency - The system can be reconfigured to improve performance as the load fluctuates but this process should be transparent to the user who is using the system.
Migration transparency - Information and processes can be migrated or moved from one physical server to the next within the system, with the user being unaware that this is going on. This is related to performance transparency as this is often done for load balancing to improve performance.
This definition was written in the context of Data