Операционные системы. Учебное пособие. Марапулец Ю.В. - 200 стр.

UptoLike

Составители: 

вать имена определенных файлов данных электронной таблицы. Элементами сервиса
spreadsheet могут быть ячейки электронной таблицы, а элементами сервиса chart - форма-
ты представления данных, такие как pie (круговая диаграмма) или bar (гистограмма).
Количество тем и элементов ограничивается лишь словарем, который совместно
используется всеми участниками сеанса. Элементы могут представлять собой как про-
стейшие типы данных, например целые числа, так и растровые изображения, метафайлы,
массивы или структурированные записи. В роли информационного элемента может так-
же выступать любой пользовательский тип данных, распознаваемый всеми участниками
диалога.
Возможно ограничение числа сервисов на сервере до одного. В данном случае если
имена сервиса и сервера одинаковы, то клиент, который знает одно имя, автоматически
узнает и второе. Следовательно, он может инициировать диалог, используя заданное имя
ЕХЕ-файла.
Если сервер и сервис имеют разные имена или у сервера в наличии имеется не-
сколько сервисов, приложениям-клиентам (а также их разработчикам) для инициирова-
ния диалога нужна дополнительная информация. Альтернативным вариантом является
создание специального сервиса с каким-либо легко распознаваемым именем (например,
system), который просто сообщает приложениям-клиентам имена сервисов, доступных
на этом сервере.
Кроме того, если приложение-клиент знает и имя сервера (программы), и имя сер-
виса, оно может запустить сервер, например с помощью функции CreateProcess, и вос-
становить связи из предыдущего сеанса.
DDE-диалоги состоят из транзакций трех типов: подключения, принудительных
и командных [6, 12].
В транзакциях подключения, являющихся наиболее распространенными, клиент
запрашивает элемент данных, который находится на сервере. Различают три вида под-
ключения [12].
С необязательным ответом. Такой вид диалога инициируется приложением-
клиентом, посылающим широковещательный запрос WM_DDE_INITIATE, в котором
указывается вызываемое приложение и тип запрашиваемых данных (как первый, так и
второй параметры могут быть пустыми, если приемлемыми считаются любые сервер и
тема). В зависимости от обстоятельств на этот запрос может откликнуться один или не-
сколько серверов, идентифицируя себя для установления диалога. Если сервер не соот-
ветствует запрашиваемому имени или не распознает тему, он просто не откликается, по-
скольку приложение-клиент ожидает поступления только подтверждающих ответов.
После получения данных диалог немедленно завершается.
С полуобязательным ответом. Такой вид диалога подразумевает, что клиент и сервер
"знают" друг друга и сервер имеет новую информацию, которая, как он полагает, заин-
тересует клиента. Обычно клиент посылает серверу сообщение WM_DDE_ADVISE, де-
лая запрос о необходимости обновить тему (и элемент). Сервер подтверждает получение
запроса, но посылает данные только при наличии новой информации.
С обязательным ответом. Такой вид диалога отличается от предыдущего тем, что
клиент ожидает от сервера подтверждения и немедленного ответа. Если информация в
данный момент отсутствует, сервер просто ответит клиенту, что данные недоступны, и
будет ожидать следующего запроса. Сервер не будет передавать информацию до тех
пор, пока не поступит запрос от клиента.
В процессе одного и того же диалога могут чередоваться подключения всех трех
типов. Кроме того, их границы бывают настолько расплывчатыми, что порой трудно оп-
ределить, где заканчивается один тип подключения и начинается другой.
Принудительные транзакции используются для передачи от клиента к серверу
элемента данных, который специально не запрашивался.
202
вать имена определенных файлов данных электронной таблицы. Элементами сервиса
spreadsheet могут быть ячейки электронной таблицы, а элементами сервиса chart - форма-
ты представления данных, такие как pie (круговая диаграмма) или bar (гистограмма).
      Количество тем и элементов ограничивается лишь словарем, который совместно
используется всеми участниками сеанса. Элементы могут представлять собой как про-
стейшие типы данных, например целые числа, так и растровые изображения, метафайлы,
массивы или структурированные записи. В роли информационного элемента может так-
же выступать любой пользовательский тип данных, распознаваемый всеми участниками
диалога.
      Возможно ограничение числа сервисов на сервере до одного. В данном случае если
имена сервиса и сервера одинаковы, то клиент, который знает одно имя, автоматически
узнает и второе. Следовательно, он может инициировать диалог, используя заданное имя
ЕХЕ-файла.
      Если сервер и сервис имеют разные имена или у сервера в наличии имеется не-
сколько сервисов, приложениям-клиентам (а также их разработчикам) для инициирова-
ния диалога нужна дополнительная информация. Альтернативным вариантом является
создание специального сервиса с каким-либо легко распознаваемым именем (например,
system), который просто сообщает приложениям-клиентам имена сервисов, доступных
на этом сервере.
      Кроме того, если приложение-клиент знает и имя сервера (программы), и имя сер-
виса, оно может запустить сервер, например с помощью функции CreateProcess, и вос-
становить связи из предыдущего сеанса.
      DDE-диалоги состоят из транзакций трех типов: подключения, принудительных
и командных [6, 12].
      В транзакциях подключения, являющихся наиболее распространенными, клиент
запрашивает элемент данных, который находится на сервере. Различают три вида под-
ключения [12].
С необязательным ответом. Такой вид диалога инициируется приложением-
клиентом, посылающим широковещательный запрос WM_DDE_INITIATE, в котором
указывается вызываемое приложение и тип запрашиваемых данных (как первый, так и
второй параметры могут быть пустыми, если приемлемыми считаются любые сервер и
тема). В зависимости от обстоятельств на этот запрос может откликнуться один или не-
сколько серверов, идентифицируя себя для установления диалога. Если сервер не соот-
ветствует запрашиваемому имени или не распознает тему, он просто не откликается, по-
скольку приложение-клиент ожидает поступления только подтверждающих ответов.
После получения данных диалог немедленно завершается.
С полуобязательным ответом. Такой вид диалога подразумевает, что клиент и сервер
"знают" друг друга и сервер имеет новую информацию, которая, как он полагает, заин-
тересует клиента. Обычно клиент посылает серверу сообщение WM_DDE_ADVISE, де-
лая запрос о необходимости обновить тему (и элемент). Сервер подтверждает получение
запроса, но посылает данные только при наличии новой информации.
С обязательным ответом. Такой вид диалога отличается от предыдущего тем, что
клиент ожидает от сервера подтверждения и немедленного ответа. Если информация в
данный момент отсутствует, сервер просто ответит клиенту, что данные недоступны, и
будет ожидать следующего запроса. Сервер не будет передавать информацию до тех
пор, пока не поступит запрос от клиента.
      В процессе одного и того же диалога могут чередоваться подключения всех трех
типов. Кроме того, их границы бывают настолько расплывчатыми, что порой трудно оп-
ределить, где заканчивается один тип подключения и начинается другой.
      Принудительные транзакции используются для передачи от клиента к серверу
элемента данных, который специально не запрашивался.


                                         202