Архитектура «клиент-сервер».
Архитектура «клиент-сервер» является доминирующий технологией распределенной обработки данных. Клиентом и сервером будем называть процессы (программы или приложения), работающие одновременно на одном или разных сетевых компьютерах, и взаимодействующих между собой определенным образом. Клиент посылает серверу запрос на получение данных или выполнение какой-либо работы: например запрос к серверу базы данных, задание серверу резервного копирования дисков и т.п. Сервер, получив от клиента запрос, выполняет соответствующие действия и посылает клиенту ответ. Например, сервер базы данных находит нужные записи и посылает их клиенту. Сервер резервного копирования вводит в действие механизм выгрузки данных на магнитную ленту или магнитооптическое дисковое устройство и сообщает клиенту о запуске процедуры. Процедура обмена между клиентом и сервером, состоящая из трех действий: посылка запроса, выполнение запроса, прием ответа, - называется транзакцией. Транзакция называется завершенной, если выполнены все три действия. Если же на одном из трех этапов произошел сбой, транзакция останется незавершенной. Если транзакция не завершилась – происходит откат к состоянию данных до транзакции. За правильное выполнение отката транзакции отвечает сервер. Например, если сервер базы данных получил от клиента запрос на обновление записей в нескольких файлах и перед аварийным отключением электропитания успел выполнить только часть работы, после восстановления ему необходимо восстановить состояние базы данных на момент начала незавершенной транзакции. Топология системы с архитектурой "клиент-сервер", может быть различной: система, состоящая из одного клиента и одного сервера; в системе может быть несколько клиентов, работающих с одним сервером, или несколько клиентов, работающих одновременно с несколькими серверами. Приложение может иметь либо только одну из функций: функцию клиента или сервера, либо обе функции, т.е. выступать и в качестве клиента и в качестве сервера. Приложения, использующие технологию динамического обмена данных DDE, выступают как клиенты или серверы (или одновременно как клиенты и серверы). При этом взаимодействие между ними - это ни что иное, как транзакции. Основные режимы и команды обмена по DDEСостав команд, выполняемых в DDE связях для реализации обмена данными, и их синтаксис определяется назначением и возможностями приложения, поддерживающего обмен по DDE. В общем случае всегда выполняется открытие и закрытие канала, посылка запроса, выполнение запроса и т.д. Выполняемые команды определяют режим DDE связи. Имеется три всегда используемых режима связи:
Каждая команда имеет ряд параметров, отражающих источник или приемник данных, тему обмена, и собственно данные. Кроме этого синтаксис команды зависит от размещения приложений: обмен на локальной машине или сетевой динамический обмен данными. В ТМ5 используется следующий синтаксис параметров команды: <server>|<topic>!<item> <data>. Здесь server – это имя DDE-сервера, topic – тема запроса, item – имя канала, а data – посылаемое значение. Формат для имени сервера зависит от размещения приложений. При локальном обмене здесь записывается RTM<nnn>, где <nnn> - номер узла, к которому адресован запрос, а при сетевом - \\<NAME>\NDDE$, где <NAME> - имя компьютера, где работает МРВ. В качестве темы запроса при локальном обмене в режиме ADVISE указывается GET, а в режимах POKE и REQUEST – обозначения атрибутов каналов, а при сетевом - RTM<nnn>$, где <nnn> - номер узла, к которому адресован запрос. Значение параметра data приводится в формате числа с плавающей запятой. Оно присутствует только в режиме POKE. |
