
562 Глава 9. Распределенные системы объектов
Профиль для ПОР идентифицируется соответствующим полем тегового про-
филя и состоит, в свою очередь, из пяти полей.
> Поле версии ПОР определяет версию протокола ПОР, использованную в дан-
ном профиле.
"¥ Поле хоста
—
это строка, идентифицирующая хост, на котором находится
объект. Хост может быть задан либо в виде полного доменного DNS-име-
ни (например, soling.csvu.nl), либо в виде IP-адреса хоста (например,
130.37.24.11).
4-
Поле порта содержит номер порта, с которого сервер объекта ожидает вхо-
дящих сообщений.
4^
Поле ключа объекта содержит информацию, необходимую серверу для
выделения запросов, предназначенных для данного объекта. Так, напри-
мер,
частью этого ключа, как правило, является созданный РОА идентифи-
катор объекта. Этот ключ будет также идентифицировать РОА.
'f И, наконец, поле компонентов может содержать дополнительную инфор-
мацию, необходимую для правильного обращения к объекту, к которому
относится ссылка. Это может быть, например, информация по защите, пока-
зывающая, как должна обрабатываться ссылка или что делать, если указан-
ный в ссылке сервер временно недоступен. Ниже мы еще вернемся к этим
вопросам.
Теперь, когда мы детально рассмотрели ссылки на объекты, будет несложно
понять, как клиент связывается с объектом для последующего вызова его мето-
дов.
Вспомним, что в главе 2 мы говорили, что привязка клиента к объекту
—
это
процесс организации соединения с объектом, выполнив который клиент может
обращаться к методам объекта. Привязка возможна только в том случае, если у
клиента есть ссылка на объект.
Предваряя обсуждение службы именования CORBA, предположим, что кли-
ент запросил службу именования разрешить некое осмысленное (для человека)
имя. В ответ служба именования вернет хранимую ею и зависящую от языка
программирования реализацию ссылки IOR. Подобная реализация может быть
возвращена только в том случае, если клиентский брокер ORB полностью завер-
шил процесс привязки. Это происходит следующим образом.
ORB клиента получает ссылку IOR, возвращенную ему службой именования,
и для проверки идентификатора хранилища, содержащегося в IOR, может по-
местить заместитель на клиента и вернуть указатель р на этот заместитель. Внут-
ри себя ORB сохраняет сведения о том, что р соответствует IOR объекта.
Разные брокеры ORB имеют разную реализацию, но одинаковый сценарий
работы. До передачи р клиенту клиентский брокер ORB проверяет теговые про-
фили, входящие в IOR. Предположим, что объект вызывается по протоколу
ПОР.
В этом случае клиентский брокер ORB может, используя адрес хоста и но-
мер порта, найденные в IOR, установить с сервером объектов соединение по про-
токолу TCP. В этот момент он и передает р клиенту.
Когда клиент обращается к одному из методов объекта, ORB клиента выпол-
няет маршалинг запроса в сообщение Request протокола ПОР. Это сообщение
содержит ключ объекта для данного сервера, который также хранится в IOR.