Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы_РСОИ.doc
Скачиваний:
51
Добавлен:
21.12.2018
Размер:
1.23 Mб
Скачать
  1. Процессы. Клиенты

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

Система X-Windows

Система X-Windows, обычно называемая просто X, используется для управления растровыми терминалами, в состав которых входят монитор, клавиатура и координатное устройство, такое как мышь. Х-ядро (X-kernel) оно содержит все необходимые для управления терминалами драйверы устройств и потому сильно зависит от аппаратной конфигурации. Х-ядро предоставляет относительно низкоуровневый интерфейс для управления экраном и перехвата сообщений, поступающих от клавиатуры и мыши. Этот интерфейс доступен для приложений в виде библиотеки Xlib. Система X различает два типа программ — обычные приложения и менеджеры окон. Нормальные приложения обычно запрашивают (через Xlib) создание на экране окна, которое затем используется для ввода или другой работы. Кроме того, X гарантирует, что если окно приложения активно и указатель мыши находится внутри окна, значит, все сообщение от мыши и клавиатуры будут переданы в приложение.

Менеджер окон {window manager) — это приложение, которому дано особое право на работу со всем экраном. Обычное приложение обязано подчиняться ограничениям на работу с экраном, которые реализованы в менеджере окон. Х-системы имеется интересная особенность, заключающаяся в том, что Х-ядро и приложения, использующие Х-систему, не обязательно должны располагаться на одной и той же машине.

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

Составные документы

Современные пользовательские интерфейсы могут делать значительно больше, чем X-Windows. Так, они позволяют приложениям совместно использовать одно и то же графическое окно и в процессе работы пользователя обмениваться данными через это окно. Дополнительные действия, которые могут выполнять пользователи, включают в себя и то, что обычно называют соответственно операциями перетаскивания (drag-and-drop) и редактирования по месту (in-place editing). Типичным примером функциональности перетаскивания является перемещение представляющего файл А значка в мусорную корзину, приводящее к его удалению.

Ключевая идея, стоящая за пользовательскими интерфейсами, это понятие о составном документе (compound document). Составной документ можно определить как набор документов, возможно различных типов (например, текст, рисунки, электронные таблицы и т. д.), которые интегрируются в одно целое на уровне пользовательского интерфейса. Пользовательский интерфейс, в котором представляется этот документ, скрывает тот факт, что с разными частями документа работают различные приложения. С точки зрения пользователя, все части соединены в одно целое.

Клиентское программное обеспечение, обеспечивающее прозрачность распределения

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

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

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

Маскирование сбоев во взаимодействии с серверами обычно выполняется при помощи клиентского программного обеспечения промежуточного уровня.

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