Transparency (human–computer interaction)
   HOME

TheInfoList



OR:

Any change in a
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, ...
system, such as a new feature or new component, is transparent if the system after change adheres to previous external interface as much as possible while changing its internal behaviour. The purpose is to shield from change all systems (or human users) on the other end of the interface. Confusingly, the term refers to overall ''invisibility'' of the component, it does not refer to ''visibility of component's internals'' (as in white box or open system). The term ''transparent'' is widely used in computing marketing in substitution of the term ''invisible'', since the term ''invisible'' has a bad
connotation A connotation is a commonly understood cultural or emotional association that any given word or phrase carries, in addition to its explicit or literal meaning, which is its denotation. A connotation is frequently described as either positive ...
(usually seen as something that the user can't see and has no control over) while the term ''transparent'' has a good connotation (usually associated with not hiding anything). The vast majority of the times, the term ''transparent'' is used in a misleading way to refer to the actual invisibility of a computing process, which is also described by the term ''opaque'', especially with regards to data structures. Because of this misleading and counter-intuitive definition, modern computer literature tends to prefer use of "
agnostic Agnosticism is the view or belief that the existence of God, of the divine or the supernatural is unknown or unknowable. (page 56 in 1967 edition) Another definition provided is the view that "human reason is incapable of providing sufficien ...
" over "transparent". The term is used particularly often with regard to an
abstraction layer In computing, an abstraction layer or abstraction level is a way of hiding the working details of a subsystem. Examples of software models that use layers of abstraction include the OSI model for network protocols, OpenGL, and other graphics libr ...
that is invisible either from its upper or lower neighbouring layer. Also temporarily used later around 1969 in IBM and Honeywell programming manuals the term referred to a certain
computer programming Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as anal ...
technique. An application code was transparent when it was clear of the low-level detail (such as device-specific management) and contained only the logic solving a main problem. It was achieved through encapsulation – putting the code into modules that hid internal details, making them invisible for the main application.


Examples

For example, the
Network File System Network File System (NFS) is a distributed file system protocol originally developed by Sun Microsystems (Sun) in 1984, allowing a user on a client computer to access files over a computer network much like local storage is accessed. NFS, lik ...
is transparent, because it introduces the access to files stored remotely on the network in a way uniform with previous local access to a
file system In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
, so the user might even not notice it while using the folder hierarchy. The early
File Transfer Protocol The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and da ...
(FTP) is considerably less transparent, because it requires each user to learn how to access files through an ''ftp'' client. Similarly, some file systems allow transparent compression and decompression of data, enabling users to store more files on a medium without any special knowledge; some file systems encrypt files transparently. This approach does not require running a compression or encryption utility manually. In
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
, it is also considered good practice to develop or use abstraction layers for
database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases ...
access, so that the same application will work with different databases; here, the abstraction layer allows other parts of the program to access the database transparently (see Data Access Object, for example). In
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
, transparency is facilitated through the use of
interfaces Interface or interfacing may refer to: Academic journals * ''Interface'' (journal), by the Electrochemical Society * '' Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Linguistics'' * '' Int ...
that hide actual implementations done with different underlying classes.


Types of transparency in distributed system

Transparency means that any form of
distributed system A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another from any system. Distributed computing is a field of computer sci ...
should hide its distributed nature from its users, appearing and functioning as a normal centralized system. There are many types of transparency: * Access transparency – Regardless of how resource access and representation has to be performed on each individual computing entity, the users of a distributed system should always access resources in a single, uniform way. Example: SQL Queries *
Location transparency In computer networks, location transparency is the use of names to identify network resources, rather than their actual location. For example, files are accessed by a unique file name, but the actual data is stored in physical sectors scattered arou ...
– Users of a distributed system should not have to be aware of where a resource is physically located. Example: Pages in the Web * Migration transparency – Users should not be aware of whether a resource or computing entity possesses the ability to move to a different physical or logical location. * Relocation transparency – Should a resource move while in use, this should not be noticeable to the end user. * Replication transparency – If a resource is replicated among several locations, it should appear to the user as a single resource. * Concurrent transparency – While multiple users may compete for and share a single resource, this should not be apparent to any of them. * Failure transparency – Always try to hide any failure and recovery of computing entities and resources. * Persistence transparency – Whether a resource lies in volatile or permanent memory should make no difference to the user. * Security transparency – Negotiation of cryptographically secure access of resources must require a minimum of user intervention, or users will circumvent the security in preference of productivity. Formal definitions of most of these concepts can be found in RM-ODP, the Open Distributed Processing Reference Model (ISO 10746). The degree to which these properties can or should be achieved may vary widely. Not every system can or should hide everything from its users. For instance, due to the existence of a fixed and finite
speed of light The speed of light in vacuum, commonly denoted , is a universal physical constant that is important in many areas of physics. The speed of light is exactly equal to ). According to the special theory of relativity, is the upper limit fo ...
there will always be more latency on accessing resources distant from the user. If one expects real-time interaction with the distributed system, this may be very noticeable.


References

{{DEFAULTSORT:Transparency (Human-Computer Interaction) Human–computer interaction Distributed computing architecture Software architecture