Прозрачность (взаимодействие человека и компьютера)
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2019 г. ) |
Любое изменение в вычислительной системе, такое как новая функция или новый компонент, является прозрачным , если система после изменения придерживается предыдущего внешнего интерфейса максимально , изменяя при этом свое внутреннее поведение. Цель состоит в том, чтобы защитить от изменений все системы (или пользователей-людей) на другом конце интерфейса. Что сбивает с толку, этот термин относится к общей невидимости компонента, а не к видимости внутренних компонентов компонента (как в «белом ящике» или открытой системе ). Термин «прозрачный» широко используется в компьютерном маркетинге вместо термина «невидимый» , поскольку термин «невидимый» имеет плохой оттенок (обычно рассматривается как нечто, что пользователь не может видеть и не может контролировать), в то время как термин «прозрачный» имеет хороший смысл. коннотация (обычно связана с тем, что ничего не скрывается). В подавляющем большинстве случаев термин «прозрачный» используется ошибочно для обозначения фактической невидимости вычислительного процесса, который также описывается термином « непрозрачный» , особенно в отношении структур данных. [ нужна ссылка ] Из-за этого вводящего в заблуждение и нелогичного определения современная компьютерная литература имеет тенденцию предпочитать использование слова « агностик », а не «прозрачный».
Этот термин особенно часто используется в отношении уровня абстракции , который невидим ни для верхнего, ни для нижнего соседнего уровня.
Также временно использовался позже, примерно в 1969 году, в руководствах по программированию IBM и Honeywell. [ нужна ссылка ] этот термин относился к определенной технике компьютерного программирования . Код приложения был прозрачным, когда в нем не было деталей низкого уровня (например, управления конкретным устройством) и содержался только логика, решающая основную проблему. Этого удалось добиться за счет инкапсуляции — помещения кода в модули, которые скрывали внутренние детали, делая их невидимыми для основного приложения.
Примеры
[ редактировать ]Например, сетевая файловая система прозрачна, поскольку она обеспечивает доступ к файлам, хранящимся удаленно в сети, аналогично предыдущему локальному доступу к файловой системе , поэтому пользователь может даже не заметить этого при использовании иерархии папок. Ранний протокол передачи файлов (FTP) был значительно менее прозрачным, поскольку требовал от каждого пользователя научиться получать доступ к файлам через ftp- клиент.
Аналогичным образом, некоторые файловые системы допускают прозрачное сжатие и распаковку данных, что позволяет пользователям хранить больше файлов на носителе без каких-либо специальных знаний; некоторые файловые системы прозрачно шифруют файлы. Этот подход не требует запуска утилиты сжатия или шифрования вручную.
В разработке программного обеспечения также считается хорошей практикой разрабатывать или использовать уровни абстракции для доступа к базе данных , чтобы одно и то же приложение могло работать с разными базами данных; здесь уровень абстракции позволяет другим частям программы прозрачно получать доступ к базе данных (см. «Объект доступа к данным , например, »).
В объектно-ориентированном программировании прозрачность обеспечивается за счет использования интерфейсов , скрывающих реальные реализации, выполненные с использованием различных базовых классов .
Виды прозрачности в распределенной системе
[ редактировать ]Прозрачность означает, что любая форма распределенной системы должна скрывать свою распределенную природу от пользователей, выглядя и функционируя как обычная централизованная система.
Существует несколько видов прозрачности:
- Прозрачность доступа. Независимо от того, как доступ к ресурсам и их представление должны осуществляться на каждом отдельном вычислительном объекте, пользователи распределенной системы всегда должны получать доступ к ресурсам единым и унифицированным способом. Пример: SQL-запросы
- Прозрачность местоположения . Пользователи распределенной системы не должны знать, где физически находится ресурс. Пример: страницы в Интернете.
- Прозрачность миграции. Пользователи не должны знать, обладает ли ресурс или вычислительный объект возможностью перемещения в другое физическое или логическое местоположение.
- Прозрачность перемещения. Если ресурс перемещается во время использования, это не должно быть заметно конечному пользователю.
- Прозрачность репликации . Если ресурс реплицируется в несколько мест, он должен отображаться пользователю как один ресурс.
- Одновременная прозрачность. Хотя несколько пользователей могут конкурировать за один ресурс и совместно использовать его, это не должно быть очевидно ни для одного из них.
- Прозрачность сбоев . Всегда старайтесь скрыть любые сбои и восстановление вычислительных объектов и ресурсов.
- Прозрачность постоянства . Для пользователя не должно иметь значения, находится ли ресурс в энергозависимой или постоянной памяти.
- Прозрачность безопасности . Согласование криптографически безопасного доступа к ресурсам должно требовать минимального вмешательства пользователя, иначе пользователи будут обходить безопасность в пользу производительности. [ нужна ссылка ]
Формальные определения большинства этих концепций можно найти в RM-ODP , эталонной модели открытой распределенной обработки (ISO 10746).
Степень, в которой эти свойства могут или должны быть достигнуты, может широко варьироваться. Не каждая система может или должна скрывать все от своих пользователей. Например, из-за существования фиксированной и конечной скорости света всегда будет большая задержка при доступе к ресурсам, удаленным от пользователя. Если ожидать взаимодействия с распределенной системой в реальном времени, это может быть очень заметно.