Вспомогательные компоненты – брокеры соединений
Компонент TSharedConnection
Если интерфейс IAppServer удаленного модуля данных имеет метод, возвращающий ссылку на аналогичный интерфейс другого удаленного модуля данных, то первый модуль называется главным, а второй – дочерним (см. гл. 21). Компонент TSharedConnection используется для соединения клиентского приложения с дочерним удаленным модулем данных сервера приложений.
Свойство:
property ParentConnection: TDispatchConnection;
…должно содержать ссылку на компонент соединения с главным удаленным модулем данных сервера приложений. Дочерний удаленный модуль данных определяется свойством:
property ChildName: string;
…которое должно содержать его имя. Если интерфейс главного удаленного модуля данных настроен правильно, то в списке выбора свойства в Инспекторе объектов появляются имена всех дочерних удаленных модулей данных.
Интерфейс IAppServer дочернего удаленного модуля данных возвращает свойство:
property AppServer: Variant;
…или метод:
function GetServer: lAppServer; override;
Методы-обработчики компонента TSharedConnection унаследованы от класса предка TCustomConnection (см. табл. 20.1).
Компонент TConnectionBroker
Компонент TConnectionBroker обеспечивает централизованное управление соединением клиентских наборов данных с сервером приложений. Для этого свойство connectionBroker клиентских наборов данных должно ссылаться на экземпляр компонента TConnectionBroker. Тогда для изменения соединения (например, при переходе с транспорта HTTP на сокеты TCP/IP) нет необходимости изменять значение свойства RemoteServer всех компонентов TClientDataSet, а достаточно изменить свойство:
property Connection: TCustomRemoteServer;
…компонента TConnectionBroker.
Доступ к интерфейсу IAppServer обеспечивает свойство:
property AppServer: Variant;
…или метод:
function GetServer: lAppServer; override;
Методы-обработчики компонента TConnectionBroker полностью соответствуют табл. 20.1.
Резюме
Многозвенные распределенные приложения обеспечивают эффективное взаимодействие большого числа удаленных "тонких" клиентов с сервером БД при помощи ПО промежуточного слоя. Наиболее распространенной моделью является трехзвенная модель, где ПО промежуточного слоя состоит только из сервера приложений.
В Delphi для создания трехзвенных распределенных приложений используются компоненты DataSnap и удаленные модули данных. Все эти инструменты реализованы для различных типов транспортных протоколов.
Также в трехзвенных приложениях применяются компоненты-провайдеры TDataSetProvider и компоненты TClientDataSet, инкапсулирующие наборы данных на клиентской стороне.