Чтобы сделать разработку и интеграцию распределенных прргложений как можно
более простой, основная часть программного обеспечения промежуточного уровня
базируется на некоторой модели, или 7гарадигме, определяющей распределение
и связь. Относительно простой моделью является представление всех наблюдаемых
объектов в виде файлов. Этот подход был изначально введен в UNIX
и строго соблюдался в Plan 9 [353]. В Plan 9 все ресурсы, включая устройства ввода-
вывода, такие как клавиатура, мышь, диск, сетевые интерфейсы и т. д., рассматривались
как файлы. Важно, что удаленные и локальные файлы ничем не отличались.
Приложение открывало файлы, читало и записывало в них байты и
закрывало их. Поскольку файлы могли совместно использоваться несколькими
процессами, связь сокращалась до простого обращения к одному и тому же файлу.
62 Глава 1. Введение
Подобный же подход, но менее строгий, чем в Plan 9, применяется в программном
обеспечении промежуточного уровня, построенном по принципу распределенной
файловой системы {distiibuted file system). Во многих случаях это
программное обеспечение всего на один шаг ушло от сетевых операционных систем
в том смысле, что прозрачность распределения поддерживается только для
стандартных файлов (то есть файлов, предназначенных только для хранения
данных). Процессы, например, часто должны запускаться исключительно на определенных
машинах. Программное обеспечение промежуточного уровня, основанное
на модели распределенной файловой системы, оказалось достаточно легко
масштабируемым, что способствовало его популярности.
Другая важная ранняя модель программного обеспечения промежуточного
уровня основана на удаленных вызовах процедур {Remote Procedure Calls, RPC).
В этой модели акцент делается на сокрытии сетевого обмена за счет того, что
процессу разрешается вызывать процедуры, реализация которых находится на
удаленной машине. При вызове такой процедуры параметры прозрачно передаются
на удаленную машину, где, собственно, и выполняется процедура, после
чего результат выполнения возвращается в точку вызова процедуры. За исключением,
вероятно, некоторой потери производительности, все это выглядит как
локальное исполнение вызванной процедуры: вызывающий процесс не уведомляется
об имевшем место факте сетевого обмена. Мы вернемся к вызовам удаленных
процедур в следующей главе.
По мере того как все более входит в моду ориентированность на объекты, становится
ясно, что если вызов процедуры проходит через границы отдельных машин,
он может быть представлен в виде прозрачного обраще1П1я к объекту, находящемуся
на удаленной машине. Это привело к появлению разнообразных систем
промежуточного уровня, реализующих представле11ие о распределенных объектах
{distributed objects). Идея распределенных объектов состоит в том, что каждый
объект реализует интерфейс, который скрывает все внутренние детали объекта
от его пользователя. Интерфейс содержит методы, реализуемые объектом,
не больше и не меньше. Все, что видит процесс, — это интерфейс.
Распределенные объекты часто реализуются путем размещения объекта на
одной из машин и открытия доступа к его интерфейсу с мрюжества других. Когда
процесс вызывает метод, реализация интерфейса на машрп1е с процессом просто
преобразует вызов метода в сообщение, пересылаемое объекту. Объект выполняет
запрашиваемый метод и отправляет назад результаты. Затем реализация интерфейса
преобразует ответное сообщение в возвращаемое значение, которое передается
вызвавшему процессу. Как и в случае с RPC, процесс может оказаться
не осведомленным об этом обмене.
Как модели могут упростить использование сетевых систем, вероятно, наилучшим
образом видно на примере World Wide Web. Успех среды Web в основном
определяется тем, что она построена на базе потрясаюп^е простой, но высокоэффективной
модели распределенных документов {distributed documents).
В модели, принятой в Web, информация организована в виде документов, каждый
из которых размещен на машине, расположение которой абсолютно прозрачно.
Документы содержат ссылки, связывающие текущий документ с други-
ми. Если следовать по ссылке, то документ, с которым связана эта ссылка, будет
извлечен из места его хранения и выведен на экран пользователя. Концепция документа
не ограничивается исключительно текстовой информацией. Например,
в Web поддерживаются аудио- и видеодокументы, а также различные виды документов
на основе интерактивной графики.
Позже мы еще вернемся к парадигмам промежуточного уровня.
33) Какие из перечисленных служб относятся к стандартным службам
для систем промежуточного уровня?
Именование {naming).
сохранности {persistence).
распределенных транзакций {distributed transactions)
защиты (secuiity)
С.(60 – 65)????
34) Какая информация содержится на уровне пользовательского
интерфейса приложения клиент-сервер?