Я. 3. Елманова. C++Builder 3.0, архитектура "клиент/сервер" и Internet
веры баз данных, библиотеки, содержащие функции API клиентских частей, и др. При использовании доступа посредством ODBC требуется также наличие на рабочей станции соответствующего ODBC-драйвера и ODBC-администратора. Это усложняет технические требования, предъявляемые к аппаратной части клиентской рабочей станции, и в конечном итоге приводит к удорожанию всей системы в целом (рис. 81).
Классический «толстый» клиент
Модуль данных - контейнер
невшуальных компонентов
доступа к данным
(DataAccess)
Borland Database Engini (BDE)
Puc. 8.1.  Классическое клиентскоеприложение
Другим фактором, приводящим к удорожанию эксплуатации информационной системы, является необходимость икталляции и конфигурации BDE, ODBC и клиентской части серверной СУБД, что нередко является весьма трудоемким процессом, особенно при бшылом количестве и неоднородном парке рабочих станций. Отметим, чтопри создании дистрибутива клиентского приложения, как правило, можю включить в него BDE (например, применяя InstallShield Express из комплекта поставки C++Builder 3.0), но в подавляющем болыдинтве случаев в него нельзя включить клиентскую часть серверной СУБД, ж как она должна быть установлена в соответствии с правилами, указаннши в лицензионном соглашении производителя серверной СУБД.
162
Создание многозвенных информационных систем с помощью C++Builder 3.0
Есть и еще один немаловажный фактор: чем сложнее конфигурация, обеспечивающая доступ к данным рабочей станции, тем чаще происходят нарушения в ее работе. По данным некоторых западных источников, перс-конфигурация и сопровождение программного обеспечения, позволяющего рабочим станциям получить доступ к данным, приводит в среднем к четырем дням простоя рабочей станции в год.
Имеется еще один фактор, напрямую связанный с немалой популярностью средств разработки, использующих BDE. На сегодняшний день как на российском, так и на мировом рынке имеется немалое количество различных программных продуктов (в особенности энциклопедий и справочников), при инсталляции которых устанавливается и BDE. В этом случае нет никакой гарантии, что версия BDE, входящая в комплект поставки такого продукта, окажется новее, чем используемая в корпоративной информационной системе, и что программа установки не перепишет файл конфигурации BDE, заменив его своим (это, конечно, противоречит правилам создания дистрибутивов, но такие случаи время от времени случаются даже с неплохими коммерческими продуктами). И то и другое обычно приводит к нарушению работоспособности программного обеспечения, предоставляК>-щего доступ к данным.
Выходом из этой ситуации является создание систем с так называемым "тонким" клиентом, в частности с клиентом, не содержащим в своем составе BDE и клиентскую часть серверной СУБД. В этом случае функциональность, связанная с доступом к данным (а нередко и какая-либо иная функциональность), возлагается на другое приложение, называемое обычно сервером приложений и являющееся клиентом серверной СУБД. В свою очередь, клиентские приложения обращаются не непосредственно к серверной СУБД с помощью вызова функций клиентских API, а к серверу приложений, являющемуся для них источником .данных, при этом собственно клиентская часть серверной СУБД и библиотеки типа BDE на рабочей станции, где используется такое клиентское приложение, присутствовать не обязаны. Вместо них применяется одна-единственная динамически загружаемая библиотека dbclient.dll размером 154 Кб. Таким образом, созданная информационная система становится трехзвенной, а сервер приложений является средним звеном в цепи "тонкий клиент - сервер приложений -сервер баз данных" и, соответственно, относится к классу продуктов middleware (рис. 8.2).
163