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

Об удаленном клиенте с использованием dcom

В принципе можно использовать не OLEnterprise, а непосредственно технологию DCOM (Distributed Component Object Model) корпорации Microsoft. Не вдаваясь в теоретические подробности использования DCOM, отметим, что использование этой технологии для запуска серверов приложений возможно лишь при условии наличия первичного контроллера домена в сети и выбранной на рабочих станциях установки User Level Access Control на странице Access Control раздела Network панели управления Windows (это необходимо для переноса с контроллера домена списка пользователей для разрешения им доступа к серверу приложений). Помимо этого, сервер приложений может быть доступен для клиентских приложений, если только он выполняется под управлением Windows NT, но не Windows 95.

Отметим также, что сведения о сервере приложений должны быть в реестре клиента (этого можно добиться, например, путем запуска сервера приложений непосредственно на рабочей станции с ключом /regserver, если, конечно, ресурсы рабочей станции позволяют это сделать). После этого следует внести изменения в реестр так, чтобы зарегистрированный таким образом OLE-объект воспринимался не как локальный, а как удаленный объект. Это можно сделать как отредактировав реестр вручную, так и с помощью утилиты конфигурации DCOM, указав явно, на каком компьютере запускается сервер приложений (запустив эту утилиту на рабочей станции, содержащей клиентское приложение), и кто из пользователей имеет право его запускать (на компьютере, содержащем сервер приложений).

Примеры сервера и клиента, описанные в начале статьи, были выполнены и с использованием DCOM (без OLEnterprise). Характеристики использованных ПК для этого примера представлены в табл.2.

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

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

ПО

ПК

Сервер БД

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

Pentium-133/32 MB RAM

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

Windows Nt Server 4.0

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

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

Windows 95

Pentium-120/16 MB RAM

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

Как было сказано выше, наличие "тонкого" клиента не только снижает требования к ресурсам рабочей станции, но и упрощает конфигурацию программного обеспечения для них (для работы такого клиента требуется лишь файл dbclient.dll размером 156 Кб из комплекта поставки Delphi 7.0 Client/Server Suite). Следствием этого является возможность осуществлять поставку таких приложений не путем создания обычного дистрибутива, а через intranet (или Internet, если говорить об информационной системе предприятия с удаленными филиалами), используя Web-сервер в качестве источника очередной версии приложения и Web-броузер в качестве средства его установки. При этом существует возможность выполнения такого приложения (если оформить его не как исполняемый файл, а как компонент ActiveX) непосредственно в броузере, используя тег <OBJECT>, поддерживаемый MS Internet Explorer 7.0 и 8.0.

Для распространения такого "тонкого" клиента следует иметь в сети какой-нибудь Web-сервер.

Для создания "тонкого" клиента в виде ActiveX следует в репозитарии объектов Delphi выбрать страницу ActiveX и пикторамму ActiveForm.

Рисунок 40.4 – Выбор ActiveForm из репозитория объектов

Рисуно 40.5 – Создание нового компонента ActiveX для показа в броузере

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

Рисунок 40.6 – "Тонкий" клиент, реализованный как ActiveForm

Отметим, что обработчик события для кнопки "О программе" отличается от стандартного: в модуле, свзанном с ActiveForm, имеется набор сгенерированных автоматически процедур и функций (можно найти их в исходном тексте соответствующего модуля), одну из которых мы и использовали.

procedure TMyAXF.Button1Click(Sender: TObject);

begin

AboutBox;

end;

Как показывает практика, в подобных формах можно использовать почти все интерфейсные элементы, содержащиеся в палитре компонентов Delphi, за исключением главного меню. Возможна также генерация дополнительных форм (отображаемых уже не внутри броузера, а отдельно от него).

После того как форма спроектирована, следует установить опции для переноса будущего ActiveX на Web-сервер. Для этой цели следует выбрать пункт меню Project /Web Deployment Options... и заполнить соответствующую диалоговую панель, указав в строке Target Dir каталог, в который следует переносить файлы, распространяемые через Internet, с точки зрения администратора Web-сервера, а в качестве URL - этот же каталог с точки зрения пользователя броузера, соединившегося с Web-сервером (как правило, имена, видимые пользователю извне Web-сервера, и администратору сервера, не совпадают). В строке

HTML dir следует указать, где лежит файл со ссылкой на ActiveForm.

Рисунок 40.7 – Установка параметров поставки ActiveX через Internet

При распространении библиотек OCX через Internet рекомендуется использовать сжатие их в файлы с расширением *.cab, так как это уменьшает время их загрузки.

Если для функционирования клиентского приложения требуется файл dbclient.dll (или какие-либо другие файлы), следует указать их в закладке Additional Files.

Опция Include File Version Number необходима для того, чтобы своевременно обновлять версию созданного ActiveX, если произошло ее обновление на сервере.

Для переноса созданного OCX-файла на Web-сервер следует выбрать опцию Project /Web Deploy. При этом будет создан соответствующий CAB-файл и HTML-страница с минимальным набором тегов. В дальнейшем можно отредактировать полученную страницу.

После создания и переноса CAB-файла и Web-страницы на Web-сервер можно открыть эту страницу в браузере.

Следует обратить особое внимание на то, что по умолчанию уровень безопасности браузера является минимальным, а в этом случае полученный по сети элемент ActiveX будет просто проигнорирован браузером без выдачи какого бы то ни было сообщения. Если же выбран средний или минимальный уровень безопасности браузера, полученный по сети компонент будет зарегистрирован в реестре Windows (в этом можно убедиться, попытавшись найти имя формы в редакторе реестра), а соответствующий файл OCX хранится в каталоге для кэширования сгружаемых компонентов

Рисунок 40.8 – Сведения о зарегистрированной библиотеке OCX в редакторе реестра

После открытия форма будет видна в браузере (рисунок 40.9). Можно убедиться, что все ее интерфейсные элементы работают так же, как и интерфейсные элементы в обычном приложении.

Рисунок 40.9 – Web-страница с элементом ActiveX - "тонким" клиентом

Технические характеристики ПК, использованных для данного примера, приведены в таблице 40.3 (локальный вариант) и таблице 40.4 (сетевой вариант).

Таблица 40.3 – Технические характеристики использованных ПК и ПО (локальный вариант трехзвенной системы с ActiveForm в качестве "тонкого" клиента)

Компоненты

ПО

ПК

Сервер БД

Personal Oracle for Windows 95 (90-дневная trial-версия)

Pentium-120/32 MB RAM

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

Сервер приложений, созданный перед этим в первом примере

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

Web-сервер

Microsoft Personal Web Server for Windows 95

- ''-

Web-броузер

Microsoft Internet Explorer 3.01 for Windows 95

-''-

Таблица 40.4 – Технические характеристики использованных ПК и ПО (сетевой вариант трехзвенной системы с ActiveForm в качестве "тонкого" клиента)

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

ПО

ПК

Сервер БД

Windows NT Server 4.0 + Oracle Workgroup Server 7.2 for Windows NT (90-дневная trial-версия)

Pentium-133/32 MB RAM

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

Windows NT Server 4.0

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

Клиенты

Windows 95

Pentium-120/16 MB RAM

Созданный нами сервер приложений является клиентом серверной СУБД. Отметим, что подобные приложения можно создавать и с локальными БД, обеспечивая их частичную обработку на сервере приложений.

Несколько слов о реализации сервера как многопоточного приложения. Если при создании сервера выбрана опция Multiple Instanse, каждый клиент на сервере может запустить свой процесс. Если же при создании сервера была выбрана опция Single Instanse, то каждый клиент может в рамках единого процесса создавать свой поток. В этом случае рекомендуется использовать при создании сервера компонент TSession со значением AutoSessionName, равным True, так, чтобы потоки, созданные разными клиентами, не использовали одну и ту же сессию и не мешали друг другу при сбоях.

В заключение хотелось бы отметить некоторые особенности Delphi 7.0, связанные с реализацией многозвенных приложений. В палитре компонентов этой версии продукта имеется новый компонент TMidasConnection, который может быть использован вместо TRemoteServer. Если TRemoteServer предназначен главным образом для доступа к серверам приложений посредством DCOM, TMidasConnection обладает свойством ConnectType, позволяющим определить, каким образом осуществляется соединение - посредством DCOM, сокетов TCP/IP или OLEnterprise.

Еще одной приятной особенностью новой версии является автоматическая установка параметров HTML-тега <OBJECT> так, чтобы размер изображения ActiveX в броузере соответствовал размерам формы (в прежней версии требовалась ручная правка генерируемой Web-страницы).

Автор выражает признательность Сергею Орлику за некоторые полезные идеи, в частности, идею использования ActiveForm для создания "тонкого" клиента, а также Андрею Брындину (АзовИмпекс) за идею создания многопоточного сервера.

СОДЕРЖАНИЕ И ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

    1. Изучить теоретические введения.

  1. Создать локальное клиентское приложение, как рассказано в теоретическом материале.

  2. Настроить локальное клиентское приложение разными способами

  3. Проверить работу всего проекта.

  4. Продемонстрировать преподавателю работу разработанного образца проекта.

  5. Получить от преподавателя индивидуальное задание и создать проект (по аналогии) для выполнения индивидуального задания.

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

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

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

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

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

  4. Опишите процесс создания локального клиентского приложения.

  5. Расскажите о настройках клиентского приложения.

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

261