Распределенные многоуровневые приложения
Технология MIDAS
Чаще используется трехуровневая модель: клиентская программа (формирует запросы пользователя и отображает результаты их выполнения), сервер приложений (синхронизирует работу компонентов), сервер базы данных (обрабатывает запросы к данным от сервера приложений). В состав приложения MIDAS входят: удаленные модули данных (серверы COM или CORBA), поставщики данных (объекты, возвращающие по запросу результирующую информацию), компоненты связи, клиентские наборы данных (объекты клиентской программы обработки получаемых данных с использованием MIDAS.DLL). Компоненты технологии MIDAS находятся на одноименной панели [2; 7].
Схема работы приложения MIDAS [2; 7].
Клиентская программа соединяется с сервером приложений и запрашивает данные у сервера.
Сервер приложений обращает к серверу базы за данными, получает, упаковывает их в формате OleVariant(дельта‑наборы),отсылает клиенту.
Клиентская машина распаковывает, отображает данные, корректирует их и посылает новые данные серверу приложений.
Сервер приложений получает, распаковывает данные и передает их серверу базы в виде транзакции. Сервер базы проводит изменения в базу и формирует информацию об ошибках, которая посылается на клиентскую машину сервером приложений.
Пример формирования итоговых полей таблицы строек с итоговыми значениями сметных и освоенных сумм по всем стройкам с использованием технологии MIDAS:
1. Разместим в модуле данных компонент DataSetProvider, который организует обмен данными между клиентскими и внешними наборами данных. В свойстве DataSet укажем имя объекта Stroiki, ранее созданного в модуле базы (п. 3.3).
2. Разместим в модуле данных компонент ClientDataSet, который поддерживает наборы клиента, независимые от типа СУБД и источника данных. Укажем свойство AggregatesActive=True и в свойстве ProviderName укажем имя предыдущего компонента. Через редактор полей (вызывается двойным щелчком по компоненту) добавим два новых итоговых поля SumSs, SumFs типа Aggregate (итоговое) со значением свойства Expression равным Sum(Ss) и Sum(Fs). Могут использоваться еще функции Avg (среднее), Count (число непустых значений поля), Max (максимальное), Min (минимальное). Не допускаются вложения функций и операций с отдельными полями. Укажем Active=True для этих полей.
3. Разместим компонент DataSource со значением свойства DataSet=ClientDataSet1. Подключим модуль Modul2 к Modul1
4. На форме разместим два компонента DBText со свойствами DataSource=DataModul2.DataSource1 и DataField равным SumSs, SimFs соответственно и компонент DBGrid для работы с таблицей.
5. Выполним приложение. На форме появятся два итоговых числа.
Дата добавления: 2016-03-22; просмотров: 633;