Компонент TSimpleObjectBroker
Компонент TSimpleObjectBroker инкапсулирует список серверов, доступных для клиентов данного многозвенного распределенного приложения. Список серверов создается на этапе разработки. При необходимости (отключение
сервера, его перегрузка и т. д.) компонент соединения клиентского ПО может использовать один из запасных серверов из списка компонента TsimpleobjectBroker непосредственно во время выполнения.
Для этого необходимо заполнить список серверов компонента TSimpleobjectBroker и указать ссылку на него в свойстве objectBroker компонента соединения (см. выше). И тогда при "переоткрытии" соединения имя сервера будет запрашиваться из списка компонента TsimpleobjectBroker.
Список серверов задается свойством
property Servers: TServerCollection;
На этапе разработки список серверов заполняется специализированным редактором (рис. 20.6), который вызывается при щелчке на кнопке свойства в Инспекторе объектов.
Рис. 20.6. Редактор списка серверов компонента TSimpleObjectBroker
Свойство servers представляет собой коллекцию (см. гл. 7) объектов класса TServeritem. Этот класс имеет несколько свойств, позволяющих описать основные параметры сервера (табл. 20.3). При использовании в соединении значения этих свойств подставляются в соответствующие свойства компонента соединения.
Таблица 20.3. Свойства класса TServeritem
Объявление |
Описание |
property ComputerName: string; |
Имя компьютера, на котором функционирует сервер |
property DisplayName: String; |
Содержит имя сервера для представления в списке серверов |
property Enabled: Boolean; |
Управляет доступностью записи о сервере для выбора при подключении. При значении True компоненты соединений могут использовать данную запись списка для подключения |
property HasFailed: Boolean; |
После неудачной попытки использовать данную запись списка при подключении свойству присваивается значение True и в дальнейшем эта запись не используется |
property Port: Integer; |
Содержит номер порта, используемого при подключении к серверу |
Помимо списка серверов компонент имеет лишь несколько вспомогательных свойств и методов.
Метод
function GetComputerForGUID(GUID: TGUID): string; override;
возвращает имя компьютера, на котором зарегистрирован сервер с GUID, заданным параметром.
Метод
function GetComputerForProgID(const ProgID): string; override;
возвращает имя компьютера, на котором зарегистрирован сервер с именем, заданным параметром Progio.
Свойство
property LoadBalanced: Boolean;
управляет выбором сервера из списка. При значении True запись о сервере выбирается случайным образом, иначе для соединения предлагается первая доступная запись о сервере.