
596 Глава 9. Распределенные системы объектов
и более совершенные подобъекты связи, реализующие интерфейсы групповой
рассылки. Некоторые подобъекты связи могут использоваться для организации
надежной связи, в то время как другие в состоянии обеспечить лишь ненадеж-
ную связь.
Очень важным практически для всех распределенных разделяемых объектов
является
подобъект
репликации
{replication
subobject).
Этот подобъект реализует
принятую стратегию распределения объекта. Как и в случае подобъекта связи,
его интерфейс стандартизован. Подобъект репликации отвечает за то, как имен-
но будет выполняться метод, представленный подобъектом семантики. Так, на-
пример, подобъект репликации, реализующий активную репликацию, должен быть
уверен, что все обращения к методам выполняются на каждой реплике в одном
и том же порядке. В этом случае этот подобъект сможет работать в связке с под-
объектом репликации другого локального объекта, представляющего тот же са-
мый распределенный разделяемый объект.
Подобъект
управления
{control subobject)
играет роль прослойки между поль-
зовательским интерфейсом подобъекта семантики и стандартизованным интер-
фейсом подобъекта репликации. Кроме того, он отвечает за экспорт интерфейсов
подобъекта семантики в процессы, работающие с распределенным разделяемым
объектом. Перед передачей подобъекту репликации подобъект управления вы-
полняет маршалинг всех обращений к методам, отправляемых такими процессами.
Подобъект репликации в принципе может позволить подобъекту управления
самому обработать запрос и вернуть результат процессу, обратившемуся к объ-
екту. Точно так же можно передавать подобъекту управления запросы удален-
ных процессов. Будет выполнен демаршалинг такого запроса, после чего подобъект
управления выполнит его и передаст результаты обратно подобъекту реплика-
ции. Рассмотрение деталей мы отложим до обсуждения вопросов репликации
в системе Globe.
Привязка процесса к объекту
в противоположность CORBA и DCOM, система Globe не имеет ни хранилища
интерфейсов, ни аналога хранилища реализаций. Отсутствие этих двух служб
частично связано с той моделью объектов, которая используется в Globe. Так,
в частности, когда происходит привязка процесса к объекту, процесс должен за-
грузить в свое адресное пространство конкретный локальный объект, соответ-
ствующий распределенному разделяемому объекту, к которому выполняется при-
вязка. Рассмотрим, как в Globe происходит привязка процесса к объекту.
Как показано на рис. 9.25, привязка выполняется за пять шагов. Каждый шаг,
за исключением последнего, возвращает информацию, необходимую для сле-
дующего шага. Таким образом, если мы получили информацию для очередного
шага привязки, то этот шаг можно начинать осуществлять. Это повышает эф-
фективность привязки в целом.
Привязка начинается с осмысленного (с позиций человека) имени службе
именования. Это действие обозначено на рисунке как шаг 1. В Globe входит
служба именования на основе DNS, которую мы обсудим чуть ниже. Эта служба
возвращает глобально уникальное имя и не зависящий от местоположения деск-