Н. 3. Епманова. C++Builder 3.0, архитектура "клиент/сервер" и Internet
жет осуществляться и иными способами, такими, как модемное соединение или доступ через Internet. Требования к надежности такого соедцнения невысоки, так как при использовании подобной архитектуры активно применяется кэширование данных на рабочей станции, и при этом Применение ConstraintBroker позволяет проверять соответствие изменяемых данных правилам сервера непосредственно на рабочей станции, поэтоМу применение "тонких" клиентов и серверов приложений, управляем^ MIDAS, является наилучшим решением для территориально разбросанн% предприятий, организаций с удаленными филиалами, в том числе в ДРЯих городах и странах.
Отметим, однако, что MIDAS Development Kit позволяет лцшь создавать и отлаживать серверы приложений. Входящий в сго состав ConstraintBroker - ограниченным временем действия, a Business ObjectBroker обладает ограничением на число экспортируемых ОЬЕ-объек[ОВ Только полнофункциональная версия MIDAS позволяет использовать зги брокеры без подобных ограничений (и не нарушать при этом лицензионные соглашения).
Отметим, что возможности создания многозвенных систем огр^ничива-ются не только MIDAS-ориентированными серверами. Наряду с версией C++Builder Client/Server Suite имеется версия C++Builder Enteipr}S?, позволяющая создавать "тонкие" клиентские приложения для сервер! гтриложе-ний Inprise Entera с помощью компонентов TEnteraCenn^ction и TEnteraProvider. Отметим, что Entera существует для большогв количества платформ, что позволяет создавать многоуровневые системы в гетерогенной среде, где не только серверы баз данных, но и серверы прило»;ен^й функционируют на платформах, отличных от Windows (например, нд UNIX-платформах), что позволяет выбрать наиболее оптимальное Д1Я предприятия сочетание удобства, масштабируемости и надежности.
8.3     Создание сервера приложений
Для создания сервера приложений нам потребуются какая-]Иб<о серверная СУБД, клиентом которой будет данный сервер приложенЦ и тестовые таблицы, которые будут перенесены на сервер баз данных. В рассмотренных ниже примерах используются Personal Oracle for Windows 55 и Oracle Workgroup Server 7.2 for Windows NT (90-дневные trial-версищ н,о не возбраняется употреблять в качестве источника данных любуц серверную СУБД (и вообще говоря, даже набор таблиц dBase или Paradox)
Создадим нового пользователя Oracle с правами CONNECT и RESOURCE и от его имени перенесем ? помощью утилиты Data Migration Wizard таблицы CLIENTS.DBF и HOLDINGS.DBF из Sa3bll данных
Создание многозвенных информационных систем с помощью C++Builder 3.0
DBDEMOS, входящей в комплект поставки Delphi 3, в базу данных Personal Oracle for Windows 95 или Oracle Workgroup Server 7.2 for Windows NT. После этого можно приступить к созданию простейшего сервера приложений, являющегося, с одной стороны, клиентом серверной СУБД, а с другой стороны, сервером конечного пользовательского приложения, которое становится при этом так называемым "тонким" клиентом.
Разработку сервера приложений начнем с создания обычной формы (можно небольшого размера, так как основное ее назначение - быть индикатором запущенного сервера приложений) со значением свойства FormStyle равным fsStayOnTop (рис. 8.6), чтобы не потерять это окно среди других открытых окон.
ft Сервер  ШШШ
О
Рис. 8.6 Главная форма сервера приложений
Можно разместить ее где-нибудь в углу экрана. Вообще говоря, появление на экране главной формы в общем случае не является обязательным. Тем не менее, коль скоро она создана, поместим на нее компонент TLabel и установим значение его свойства Caption равным "О" (в дальнейшем в этой метке будет отображаться число подключенных к серверу клиентов). На эту же форму поместим компонент TDataBase, указывающий на серверную СУБД. Для простоты установим свойство LoginPrompt этого компонента равным false, а в свойстве Params укажем имя пользователя, от имени которого будет запущен сервер приложений, и его пароль (рис. 8.7).
Далее из репозитария объектов (доступ к которому осуществляется выбором пункта меню File/New) со страницы New следует выбрать объект Remote Data Module (рис. 8.8).
170
171