Н. 3. Епманова. C++Builder 3.0, архитектура "клиент/сервер" и Internet
Далее следует сохранить проект и скомпилировать приложение.
После этого сервер приложений можно скомпилировать и запустить на выполнение. Это нужно для того, чтобы зарегистрировать его как OLE-сервер в реестре Windows. Рекомендуется убедиться, что оно зарегистрировано в реестре, запустив утилиту Regedit. Если тем не менее по каким-либо причинам этого не произошло, следует запустить наше приложение-сервер с параметром /regserver.
По поводу регистрации сервера следует сделать одно замечание. Автору пришлось наблюдать случай, когда системный администратор сумел настроить операционные системы на компьютерах разработчиков отдела автоматизации одного из московских предприятий таким образом, что у них не было никакой возможности менять что-либо в своих реестрах. При этом, естественно, и серверы приложений также в реестрах не регистрировались. Если при создании сервера приложений он не регистрируется в реестре, возможно, этот случай подобен описанному. А может быть, просто по ошибке вместо удаленного создан обычный модуль данных...
Вообще говоря, серверы приложений такого класса обязаны содержать либо генерировать некий набор SQL-запросов для изменений в базе данных и посылать их на сервер баз данных по команде клиентского приложения. Наш сервер приложений применяет для генерации запросов библиотеку Borland Database Engine. Другие серверы приложений, такие, например, как Inprise Entera, используют иные механизмы генерации запросов, обусловленные в известной степени той платформой, на которой этот сервер приложений функционирует. В любом случае именно набор SQL-запросов является самой главной составляющей функциональности такого сервера приложений. Что же касается пользовательского интерфейса сервера приложений (форма со счетчиком подключений или что-то в этом роде), он совершенно необязателен. В конце концов, сервер приложений может не иметь главной формы или не показывать ее или может быть запущен в виде сервиса. Если же говорить опять об общем случае (когда речь идет не только о серверах приложений, созданных с помощью C++Builder, но и о других подобных серверах приложений, в том числе для других платформ), то ведь не все платформы обладают графическим пользовательским интерфейсом и, следовательно, создание такого объекта, как форма, возможно не на всех платформах. Не стоит обольщаться - самые дорогие серверы приложений нередко просто запускаются из командной строки и не обладают интерфейсом в привычном для пользователей Windows понимании.
В известном смысле сервер приложений и "тонкий" клиент представляют собой разделенное на две части классическое клиентское приложение, называемое в совокупности с клиентом серверной СУБД и библиотеками доступа к данным, такими, как BDE, "толстым" клиентом. Первая часть
Создание многозвенных информационных систем с помощью C++Builder 3.0
(созданный нами сервер приложений) содержит компоненты доступа к данным (и требует наличия BDE и клиента серверной СУБД), а вторая (клиент) должна содержать пользовательский интерфейс (и не требовать наличия BDE и клиентской части серверной СУБД).
8.4     Создание клиентского приложения с доступом по протоколу TCP/IP
Закончив создание сервера, можно приступить к созданию клиентского приложения. Для начала создадим клиентское приложение, использующее протокол TCP/IP для доступа к серверу приложений. Перед этим запустим приложение Borland MIDAS Socket Server scktsrvr.exe, расположенное в каталоге CBuilder3\Bin (рис! 8ЛЗУ.
i В oiland MIDAS Socket Seivei
ifjProperties j Statistics [
jjlj р Port"'"  -• • — ••••••-•
fill	Listen on Port:
Many values of Port ate associated by convention |jh ; with a particular service such as ftp or http. Port is ||| j the ID of the connection pn which the. saver listens |p ; for client requests.
fey Thread Caching     : : y;j_____ • -ati    Thread Cache Size:  По-Ц
Thread Cache Size is the maximum number of threads that can be reused for new client connections.
OK
Cancel
Puc. 8.13.   Borland MIDAS Socket Server
Borland MIDAS Socket Server предоставляет удаленным клиентам доступ Извне к имеющимс}Гй^'д"а1Тном комггьютере_серверам приложений, созданных с Помощью C++Builder 3 и Delphi 3, по протоколу TCP/IP. Отметим, чТо в этом случае любой из имеющихся подобных серверов приложений ^ожет быть запущен с любого компьютера, имеющего доступ к вашему Компьютеру с помощью данного протокола, поэтому при использовании
176
177