Н. 3, Елманова. C++Builder 3.0, архитектура "клиент/сервер" и Internet
_____________                                       -- ———————————————————————————————— ___^___иа<^—[| ^^^^^в,^^^^ д,,,,,,,^^,^,,,,,,,,^^,,,^^^,,^^ —— Гр-lf ul	
ii' П1 Fnlemme Obied ЕхЫокя - LOCAL REGISTRY                                                                                 ВШ1Н ||	
Registry   Objeei   View   Help	
veliiH^N j§ ^N *j П»П?["р JLl	
I     ;-•»   OptionsCollection Object      _^_	Registry        |   Communications           Interface        |
1     ^  «   OVERVIEW.OLE	
i.    I--»   Paradox 7 Application	, ,                                                                                                          ^
:     t«   Paradox 7 Table	// (ypelib filename: CLEXE
,     !•-• «   PasswordCtl Object	
1     '   *   Photoshop 4.0 Application	uuid({65E50260-7CM-1 1 D1 -8B95-8E508C83F014J),
;     и»   Pinnacle-BPS Graph Contra! '     L- »   PowerPoint.Applicalion.8	versbn(1.0), helpstiing("cl Library")
!       Г  »   ДНЯ	ibiary cl
1     <••• •*   RadioQI Object	
1     ,-.»   RealAudioltm) ActiveX Conti 1     !..*   RefEditCtrl	uuid({65E 5D 261 -7CAA-1 1 D 1 -8B 95-8E5D 8C83F01 4}), version(1 ,0!,
I     j- 9   Scripting.Dictionary	herpstriigf 'Dispatch inteiiace for ppp Object")
!     ! • ••»   Scripting.FileSjistemObject	]
j     !••••*   Scripting.TextStieam	disp'mterface Ippp {                                         ч   : ::
!     ^ •• •   ShockwaveFlash Object	properties:                                                ^Ipl:; methods:
I     i- •• *   Standard Font	[id(O) restricted] void Querylntafacel     ajusei
!     :   *   Standard Font	[in]GUID"riid.                      ЯррЬ
I     ;• •• »   Standard Picture	(out) void" ppvObJ:              Hffsj
•     '•••• $   Standard Picture                _ i     |- »   Text Conferencing Applicatic	[id(1 ), restricted] unsigned long AddReffJ;   : ' i i ; [id(2), restiicted) unsigned long Release!); jid(3). restricted] void GetTypelnioCount([out] unsigned int" pctinfo].
'     : -.*    TextAreaCtl Object	|id(4), restiicted] void GetTypelnfo(
i     j...»   TextCtl Object	[in] unsigned int itinfo.
'     i-- •»   VB Script Language i     (••• »   VBObjTest Menu Click CLas	[in] unsigned long Icid, [out] void" pptinfo};                                                               ^ |
^     !-.*   VCI First Impression Chart      T	J                                                                                                           -I
ч|   ;iV""j :.- ••••J:r	
Fof Help, pras» F,i Г. .»1:эд1:.: is, ...;..,..:,.,                                                  .-              .-   -:, .-,, ..-. : -.                               : •   >к.	
Puc. 8.35. Object Explorer
8.9.2   Создание клиентского приложения с использованием OLEnterprise
В рассмотренном выше примере сервер баз данных, сервер приложений, являющийся клиентом сервера баз данных, и приложение-клиент могли находиться как на одном и том же компьютере, так и на разных компьютерах, имеющих доступ друг к другу по протоколу TCP/IP. В этой ситуации клиентское приложение использует один сервер приложений, выполняющийся на компьютере, указанном в свойстве ComputerName компонента TMIDASConnection (или TRemoteServer).
ДТринеобходимости дублирования серверов приложений с целью подключения клиёнта'к др"уг6~му~сервёр"у гтрйлбжений в случае перегрузки или сбоя используемого сервера единственным на сегодняшний день решением
Создание многозвенных информационных систем с помощью C++Builder 3.0
этой проблемы является применение OLEnterprise в конфигурации, использующей Business Object Broker.
Для применения OLEnterprise следует установить его полную версию (содержащую фабрику объектов - Object Factory) на компьютер, на котором будет запущен сервер приложений, и Run-time-версию - на компьютеры, содержащие приложение-клиент. При установке OLEnterprise следует указать имя компьютера, на котором функционирует Business Object Broker (при использовании MIDAS брокер должен существовать в одном экземпляре). Это может быть как один из компьютеров, содержащих клиентские приложения, так и любой другой компьютер в сети.
На компьютере, который был указан в качестве местоположения Business Object Broker, следует запустить это приложение (рис. 8.36). Business Object Broker обеспечивает поиск сервера для обратившегося к нему клиента и равномерное распределение нагрузки между серверами приложений, если их несколько.
|<broker>  Created directory:   ciSolent/broker/applicatians |<broker> Created directory:   c:\olent/bro!<er/applications/'seruices !<brol<er>  Created directory:   c:\olent/broker/"hosts |<broker>  Root directory:  c:\olentxbroker Kbroker)  Cell лапе:   broker |<feroker>  Seryer protocols registered |Cbroker>   Server endpoints  registered |<broker> Seryer  listening...
•~
Puc. 8.36. Запуск Business ObjectBroker
Далее на компьютерах, содержащих серверы приложений, следует запустить приложение ObjectFactory (рис. 8.37). Это приложение должно запускаться автоматически при перезагрузке операционной системы после установки OLenterprise.
If- Object Factory	ев с I
!<ObjectFactory>  Serue KObjectFaetory)  Serye KObjectFactory> Serye j<ObjectFactoru>  Serye !<ObjectFac tory)  Serye KObjectFactory)  Serye !<Ob,jectFactory> Serue j<ObjectFactory>  Serye	protocols  registered binding  information  exported added to service group endpoints  registered                                                                                         j binding  information  exported                                                                      ; added  to  service  group endpaints  registered                                                                                         I listening. . .
Puc. 8.37. Запуск  ObjectFactory
.Затем на этих компьютерах нужно запустить Object Explorer - утилиту, Предназначенную для межреестрового обмена сведениями о серверах приложений между компьютерами в сети (рис. 8.38).
204
205