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