Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Примеры [ править ]

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

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

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

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

Типы прозрачности в распределенной системе [ править ]

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

Есть много видов прозрачности:

  • Прозрачность доступа - независимо от того, как доступ к ресурсам и их представление должны выполняться на каждом отдельном вычислительном объекте, пользователи распределенной системы всегда должны получать доступ к ресурсам единым и единообразным образом. Пример: SQL-запросы.
  • Прозрачность местоположения - пользователи распределенной системы не должны знать, где физически расположен ресурс. Пример: страницы в Интернете.
  • Прозрачность миграции - пользователи не должны знать, обладает ли ресурс или вычислительный объект возможностью перемещаться в другое физическое или логическое местоположение.
  • Прозрачность перемещения - если ресурс перемещается во время использования, это не должно быть заметно для конечного пользователя.
  • Прозрачность репликации - если ресурс реплицируется между несколькими местоположениями, он должен отображаться для пользователя как единый ресурс.
  • Одновременная прозрачность - хотя несколько пользователей могут конкурировать за один ресурс и совместно использовать его, это не должно быть очевидным для кого-либо из них.
  • Прозрачность отказов - всегда старайтесь скрыть любые отказы и восстановление вычислительных объектов и ресурсов.
  • Прозрачность постоянства - для пользователя не имеет значения, находится ли ресурс в энергозависимой или постоянной памяти.
  • Прозрачность безопасности - согласование криптографически безопасного доступа к ресурсам должно требовать минимального вмешательства пользователя, иначе пользователи будут обходить безопасность, предпочитая производительность. [ необходима цитата ]

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

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

Ссылки [ править ]