Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

4.9. Распределенные двухуровневые клиент‑серверные приложения

4.9.1. ТехнологияCOM/DCOMс использованием сервера транзакцийMTS

В данной технологии используется сервер транзакций MTS, который вхо­дит в поставкуWeb‑сервераPersonalWebServer. Он позволяет орга­ни­зо­вать надежную работу серверовCOMи клиентовCOM(п. 4.8), выпол­няющих­ся на различных компьютерах [2; 7].

4.9.2. ТехнологияCORBA

В данной технологии вместо сервера транзакций MTSиспользуется бро­керCORBA(CommonObjectRequestBrokerArchitecture, общая архи­тек­тура брокеров объектных запросов). Брокеры объектных запросов поз­во­ляют орга­ни­зо­вать работу сер­веровCOMи клиентовCOM(п. 4.8), вы­пол­­няющих­ся на различных ком­пь­ютерах под управлением различных операционных систем (Windows,Unixи др.) [2; 7].

4.10. Распределенные многоуровневые приложения

4.10.1. Технология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со значением свойстваDa­taSet=ClientDataSet1. Подключим модульModul2 кModul1

  4. На форме разместим два компонентаDBTextсо свойствамиDataSource=DataModul2.DataSource1 иDataFieldравнымSumSs,SimFsсоот­вет­ственно и компонентDBGridдля работы с таблицей.

  5. Выполним приложение. На форме появятся два итоговых числа.