Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 Практический раздел.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.18 Mб
Скачать

Лабораторная работа №40

Тема: Создание клиентского приложения

Цель работы: Научиться создавать клиентские приложения.

Время работы: 2 учебных часа.

Правила по ТБ: Общие.

Оборудование рабочего места: Практикум, ПК.

Программное обеспечение: Windows, MS Office, Delphi, MySQL.

Вопросы входного контроля:

    1. Дайте определение понятию трехзвенная архитектура.

  1. Перечислите компоненты трехзвенной архитектуры.

  2. Назовите отличия трехзвенной архитектуры от обычной двухзвенной.

  3. Опишите процесс создания сервера приложений.

  4. Расскажите о настройках сервера приложений.

  5. Изобразите схему трехзвенной архитектуры.

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Начало формы

Создание локального клиентского приложения (на том же пк, что и сервер)

Закрыв проект созданного только что сервера, можно приступить к созданию клиентского приложения. Создадим главную форму приложения и обычный модуль данных, который должен быть видим из главной формы (этого можно достичь путем выбора опции: File/Use unit...). В модуль данных поместим один компонент TRemoteServer, два связанных с ним компонента TClientDataSet и два связанных с ними компонента TDataSource.

Рисунок 40.1 – Модуль данных клиентского приложения

Попробуем установить свойство ServerName компонента RemoteServer1 (выбрав его из выпадающего списка или введя вручную). После этого, если в реестре есть соответствующая запись, автоматически будет установлено значение свойства ServerGUID. При этом сервер приложений, созданный ранее, должен автоматически запуститься, о чем будет свидетельствовать появившаяся на экране его главная форма.

После этого можно установить нужные значения свойств ProviderName компонентов TClientDataSet, выбрав их из выпадающего списка (так как сервер приложений выбран, все его доступные через интерфейс свойства становятся видны в среде разработки). После этого можно установить связь master/detail между таблицами по общему полю ACCT_NBR.

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

Рисунок 40.2 – Главная форма клиентского приложения

Теперь можно скомпилировать и запустить приложение. Отметим, что при запуске приложения из среды разработки с сервером приложений соединены два клиента - среда разработки и скомпилированное клиентское приложение. При желании можно с помощью утилиты SQL Monitor проследить, какие именно запросы созданный нами сервер приложений направляет серверу баз данных.

Удаленный клиент с использованием olEnterprise

В рассмотренном выше примере сервер баз данных, сервер приложений и приложение-клиент выполнялись на одном том же компьютере. Более интересным для практического применения представляется случай использования для этой цели разных компьютеров, связанных, например, локальной сетью. В этом случае возникает проблема обмена данными между реестрами сервера приложений и клиента, которая может быть решена различными способами. Одним из таких способов является использование OLEnterprise - составной части MIDAS.

Для использования OLEnterprise следует установить его полную версию (содержащую фабрику классов - Class Factory) на компьютер, на котором будет запущен сервер приложений, и Run-time-версию - на компьютер, содержащий приложение-клиент.

На компьютере, содержащем полную версию OLEnterprise, следует запустить приложение Business Object Broker, обеспечивающее соединение клиента с сервером и равномерное распределение нагрузки между серверами приложений, если их несколько. Далее следует запустить приложение Object Factory. Затем следует запустить Object Explorer - утилиту, предназначенную для межреестрового обмена сведениями о серверах приложений между компьютерами в сети. Далее следует найти созданный ранее сервер приложений среди полученного из реестра данного компьютера списка OLE-серверов и экспортировать его (иногда это называется публикацией объекта), выбрав в меню пункт Object/Export (рисунок 40.3). После этого OLE-сервер можно будет "увидеть" с удаленных компьютеров в сети как доступный для них объект.

Рисунок 40.3 – Публикация объекта с помощью Object Explorer

На рабочей станции, где будет запущено приложение-клиент, следует запустить Object Explorer и соединиться с реестром компьютера, содержащего сервер приложений (Registry/Connect…). Все экспортированные объекты после этого будут видны в списке OLE-серверов удаленного реестра. Далее следует импортировать выбранный сервер приложений (Object/Import), отметив, что приложение будет выполняться на том компьютере, где оно содержится. После этого можно убедиться, что данный OLE-сервер содержится в реестре рабочей станции (например, запустив входящий в состав операционной системы редактор реестра).

Теперь можно слегка изменить клиентское приложение, выбрав значение свойства ComputerName компонента TRemoteServer из списка доступных в локальной сети компьютеров. При попытке установить свойство Connected этого компонента равным True сервер приложений будет найден в реестре и запущен на удаленном ПК.

Отметим, что если пользователь редактирует данные в клиентском приложении, они не переносятся непосредственно на сервер баз данных, а вместо этого кэшируются. Для инициации процесса реального сохранения в базе данных используется метод ApplyUpdates компонента TClientDataSet. В качестве параметра этот метод использует целое число, равное максимально допустимому числу ошибок сервера, после которого следует прекратить попытки физического сохранения данных (значение -1 означает, что следует пытаться сохранить все данные независимо от числа ошибок). Почему предусмотрена возможность ошибок сервера? Ответ очевиден - клиентское приложение может ничего не знать о правилах ссылочной целостности и иных ограничениях, содержащихся на сервере баз данных, и только попытка физического сохранения изменений в базе данных может выявить их нарушения (вспомним, что на клиентской рабочей станции может даже не быть библиотеки BDE).

Отметим также, что установить связи между таблицами можно как на сервере приложений, так и в клиентском приложении, и разработчик может выбрать, что удобнее с точки зрения эффективности работы и функциональности.

Данный пример был выполнен в одном из классов Учебного центра Interface Ltd. Особо хотелось бы обратить внимание на довольно скромные требования к ресурсам как компьютера, содержащего сервер приложений, так и рабочих станций, на которых выполнялись клиентские приложения (таблица 40.1)

Таблица 40.1 – Технические характеристики использованных ПК и ПО при соединении клиента и сервера приложений с помощью OLEnterprise

Компоненты распре-деленной системы

ПО

ПК

Сервер БД

Windows NT Server 4.0 + Oracle Workgroup Server 7.2 (Trial 90-day version) for Windows NT

Pentium-133/32 MB RAM

Сервер приложений

Windows 95

486 DX2-66/16 MB RAM

Клиент 1

Windows NT Server 4.0

Pentium-133/32 MB RAM (тот же самый ПК, на котором запущен сервер БД)

Клиенты 2,3,4

Windows 95

486 DX2-66/16 MB RAM