Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Статья5.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
911 Кб
Скачать
☆

2. Взаимодействие клиента и сервера

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

Собственно инструментальную среду qWORD-XML, названную универсальным браузером, предлагается реализовать на Delphi как клиентское приложение к M-серверу. Управление клиентской частью предлагается осуществлять в реальном времени по командам сервера. Управление клиентской частью включает в себя создание объектов – экземпляров классов Delphi, установку их свойств и вызов их методов в реальном времени по командам сервера. Эти классы являются потомками визуальных (соответствующих видимым объектам) и невизуальных классов Delphi.

Для взаимодействия с клиентской частью на сервере создаётся системный класс qARM, который содержит как методы управления клиентской частью, так и методы-обработчики событий клиента.

Управление клиентской частью реализуется с помощью следующих методов класса qARM (табл. 1).

Табл. 1. Управление клиентской частью

Действие

Вызов метода на сервере

Создание объекта класса Delphi

D qARM.wC(<класс>,<имя объекта>,<параметры>)

Вызов метода объекта

D qARM.wM(<имя объекта>,<имя метода>,<параметры>)

Присвоение значения свойству объекта

D qARM.wP(<имя объекта>,<имя свойства>,<значение>)

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

Рис. 3. Схема взаимодействия клиента и сервера

Пользователь производит некоторое действие, требующее реакции системы (нажатие кнопки мыши, клавиши и др.) Происходит событие (1), обработчик события клиентской программы вызывает (2) соответствующий метод-обработчик из класса qARM сервера и передает ему необходимые параметры, например, имя метода, который необходимо выполнить по данному действию пользователя. Обращение к серверу всегда является модальным для клиента, т.е. клиентское приложение ожидает завершения выполнения метода на сервере, прежде чем сможет продолжить выполнение. Благодаря этому уменьшается количество пересылок между клиентом и сервером и увеличивается скорость работы.

В это время на сервере вызванный метод (3) производит некоторые действия и может обращаться к методам wC, wM, wP. Эти методы не вызывают никаких действий на клиенте (он простаивает в ожидании), однако при этом формируется программа для клиента – запись последовательности действий, которые необходимо осуществить на клиенте (4). По окончании выполнения серверного метода работа клиентского приложения продолжается, оно считывает сформированную программу (5) и последовательно её исполняет (6), создавая объекты, присваивая значения их свойствам и вызывая их методы. Пока клиент занят обработкой программы, все действия пользователя ставятся в очередь для последующей обработки.

При программировании на стороне сервера вызываются методы работы с базой данных и методы клиентской части (методы объектов Delphi). Весь вид приложения определяется сервером и создается практически «с нуля» в процессе работы, а универсальный браузер представляет собой универсальное клиентское приложение ко всем построенным в qWORD-XML базам данных.