Удаленный клиент с использованием ActiveForm
Удаленный клиент с использованием ActiveForm
Как было сказано выше, наличие "тонкого" клиента не только снижает требования к ресурсам рабочей станции, но и упрощает конфигурацию программного обеспечения для них (для работы такого клиента требуется лишь файл dbclient.dll размером 156 Кб из комплекта поставки Delphi 3.0 Client/Server Suite). Следствием этого является возможность осуществлять поставку таких приложений не путем создания обычного дистрибутива, а через intranet (или Internet, если говорить об информационной системе предприятия с удаленными филиалами), используя Web-сервер в качестве источника очередной версии приложения и Web-броузер в качестве средства его установки. При этом существует возможность выполнения такого приложения (если оформить его не как исполняемый файл, а как компонент ActiveX) непосредственно в броузере, используя тег <OBJECT>, поддерживаемый MS Internet Explorer 3.0 и 4.0.
Для распространения такого "тонкого" клиента следует иметь в сети какой-нибудь Web-сервер (например, Personal Web Server для Windows 95 или Internet Information Server для Windows NT).
Для создания "тонкого" клиента в виде ActiveX следует в репозитарии объектов Delphi выбрать страницу ActiveX и пикторамму ActiveForm.
Рис.9. Выбор ActiveForm из репозитория объектов
Рис.10. Создание нового компонента ActiveX для показа в броузере
После этого автоматически будет предложено создать ActiveX Library (файл с расширением OCX). Помимо главной формы приложения, на которой располагаются интерфейсные элементы (подобные, например, тем, что были использованы в предыдущем примере), следует создать модуль данных с необходимыми компонентами для доступа к данным..
Рис.11. "Тонкий" клиент, реализованный как ActiveForm
Отметим, что обработчик события для кнопки "О программе" отличается от стандартного: в модуле, свзанном с ActiveForm, имеется набор сгенерированных автоматически процедур и функций (можно найти их в исходном тексте соответствующего модуля), одну из которых мы и использовали.
Если же выбран средний или минимальный уровень безопасности броузера, полученный по сети компонент будет зарегистрирован в реестре Windows (в этом можно убедиться, попытавшись найти имя формы в редакторе реестра), а соответствующий файл OCX хранится в каталоге для кэширования сгружаемых компонентов
Рис.13. Сведения о зарегистрированной библиотеке OCX в редакторе реестра
После открытия форма будет видна в броузере (рис.14). Можно убедиться, что все ее интерфейсные элементы работают так же, как и интерфейсные элементы в обычном приложении.
Рис.14. Web-страница с элементом ActiveX - "тонким" клиентом
Технические характеристики ПК, использованных для данного примера, приведены в табл. 3 (локальный вариант) и табл.4 (сетевой вариант). Таблица 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 | -''- |
Сервер БД | 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 |
Если при создании сервера выбрана опция Single Instanse, каждый клиент на сервере может запустить свой процесс. Если же при создании сервера была выбрана опция Multiple Instanse, то каждый клиент может в рамках единого процесса создавать свой поток (то есть создавать свой экземпляр удаленного модуля данных). В этом случае рекомендуется использовать при создании сервера компонент TSession со значением AutoSessionName, равным True, так, чтобы потоки, созданные разными клиентами, не использовали одну и ту же сессию и не мешали друг другу при сбоях. В заключение хотелось бы отметить некоторые особенности Delphi 3.01, связанные с реализацией многозвенных приложений. В палитре компонентов этой версии продукта имеется новый компонент TMidasConnection, который может быть использован вместо TRemoteServer. Если TRemoteServer предназначен главным образом для доступа к серверам приложений посредством DCOM, TMidasConnection обладает свойством ConnectType, позволяющим определить, каким образом осуществляется соединение - посредством DCOM, сокетов TCP/IP или OLEnterprise. Еще одной приятной особенностью новой версии является автоматическая установка параметров HTML-тега <OBJECT> так, чтобы размер изображения ActiveX в броузере соответствовал размерам формы (в прежней версии требовалась ручная правка генерируемой Web-страницы). Автор выражает признательность Сергею Орлику за некоторые полезные идеи, в частности, идею использования ActiveForm для создания "тонкого" клиента, а также Андрею Брындину (АзовИмпекс) за идею создания многопоточного сервера. Последнее обновление - 3 апреля 1998
|