stringtranslate.com

Прозрачность (взаимодействие человека и компьютера)

Любое изменение в вычислительной системе, такое как новая функция или новый компонент, является прозрачным, если система после изменения максимально придерживается предыдущего внешнего интерфейса , изменяя при этом свое внутреннее поведение. Цель состоит в том, чтобы защитить от изменений все системы (или пользователей-людей) на другом конце интерфейса. Что сбивает с толку, этот термин относится к общей невидимости компонента, а не к видимости внутренних компонентов компонента (как в «белом ящике» или открытой системе ). Термин «прозрачный» широко используется в компьютерном маркетинге вместо термина «невидимый» , поскольку термин «невидимый» имеет плохой оттенок (обычно рассматривается как нечто, что пользователь не может видеть и не может контролировать), в то время как термин « прозрачный» имеет хороший смысл. коннотация (обычно связанная с тем, что ничего не скрывается). В подавляющем большинстве случаев термин « прозрачный» используется ошибочно для обозначения фактической невидимости вычислительного процесса, который также описывается термином «непрозрачный» , особенно в отношении структур данных. [ нужна цитата ] Из-за этого вводящего в заблуждение и нелогичного определения современная компьютерная литература имеет тенденцию предпочитать использование слова «агностик», а не «прозрачный».

Этот термин особенно часто используется в отношении уровня абстракции , который невидим ни для верхнего, ни для нижнего соседнего уровня.

Также временно использовался позже, примерно в 1969 году, в руководствах по программированию IBM и Honeywell. Этот термин относился к определенной технике компьютерного программирования . Код приложения был прозрачным, когда в нем не было деталей низкого уровня (например, управления конкретным устройством) и содержался только логика, решающая основную проблему. Этого удалось добиться за счет инкапсуляции — помещения кода в модули, которые скрывали внутренние детали, делая их невидимыми для основного приложения.

Примеры

Например, сетевая файловая система прозрачна, поскольку она обеспечивает доступ к файлам, хранящимся удаленно в сети, аналогично предыдущему локальному доступу к файловой системе , поэтому пользователь может даже не заметить этого при использовании иерархии папок. Ранний протокол передачи файлов (FTP) был значительно менее прозрачным, поскольку требовал от каждого пользователя научиться получать доступ к файлам через ftp- клиент.

Точно так же некоторые файловые системы допускают прозрачное сжатие и распаковку данных, что позволяет пользователям хранить больше файлов на носителе без каких-либо специальных знаний; некоторые файловые системы прозрачно шифруют файлы. Этот подход не требует запуска утилиты сжатия или шифрования вручную.

В разработке программного обеспечения также считается хорошей практикой разрабатывать или использовать уровни абстракции для доступа к базе данных , чтобы одно и то же приложение могло работать с разными базами данных; здесь уровень абстракции позволяет другим частям программы прозрачно получать доступ к базе данных (см., например, «Объект доступа к данным» ).

В объектно-ориентированном программировании прозрачность обеспечивается за счет использования интерфейсов , которые скрывают реальные реализации, выполненные с использованием различных базовых классов .

Виды прозрачности в распределенной системе

Прозрачность означает, что любая форма распределенной системы должна скрывать свою распределенную природу от пользователей, выглядя и функционируя как обычная централизованная система.

Существует несколько видов прозрачности:

Формальные определения большинства этих концепций можно найти в RM-ODP , эталонной модели открытой распределенной обработки (ISO 10746).

Степень, в которой эти свойства могут или должны быть достигнуты, может широко варьироваться. Не каждая система может или должна скрывать все от своих пользователей. Например, из-за существования фиксированной и конечной скорости света всегда будет большая задержка при доступе к ресурсам, удаленным от пользователя. Если ожидать взаимодействия с распределенной системой в реальном времени, это может быть очень заметно.

Рекомендации