- •1.1.Распределенные системы и приложения
- •1.2.Понятие о рсои
- •1.2.1Понятие распределенной системы
- •1.2.2Определение распределенной системы. Программные компоненты
- •1.3.Примеры рсои
- •1.4.Нефункциональные требования к рсои
- •Разделение ресурсов
- •Отказоустойчивость
- •1.5.Прозрачность в рсои
- •Масштабируемость
- •Открытость
- •Неоднородность
- •1.6.Организация распределенных объектов
- •Сохранные и нерезидентные объекты
- •Способы определения местонахождения ро
- •1.7.Общие сведения о технологии corba
1.6.Организация распределенных объектов
Распределенный объект (РО) – такой объект, реализация которого располагается на сервере, а взаимодействие клиентов с ним происходит через определенный интерфейс.
В адресное пространство клиента загружается реализация этого интерфейса – заместитель (proxy). Клиент непосредственно взаимодействует именно с заместителем.
Процесс формирования интерфейса и заместителя – привязка клиента к РО. Системы с РО предоставляют ссылки на объекты, уникальные в пределах системы. Такие ссылки могут передаваться между процессами, запущенными на разных машинах. Виды привязки:
Неявная (автоматическая) – клиент прозрачно связывается с объектом в момент разрешения ссылки (это когда по имени объекта получаем ссылку на него).
Явная – клиент должен вызвать специальную функцию для привязки к объекту.
Адаптер объектов – механизм группирования объектов в соответствии с политикой их активизации. Контролирует один или несколько объектов.
Скелетон – образ клиента на сервере (заглушка сервера).
Клиент через заместителя вызывает определенный метод объекта и задает параметры этого метода. Заместитель формирует и упаковывает сообщение (маршалинг) и отправляет его на сервер. В этом сообщении содержится ссылка на объект, метод и значения параметров. Сервер получает сообщение, и передает его соответствующему скелетону. Скелетон распаковывает сообщение (демаршалинг) и непосредственно вызывает определенный метод объекта с заданными клиентом параметрами. Если предполагается, что метод что-нибудь возвращает, то скелетон упаковывает результат и отправляет его заместителю.
Сохранные и нерезидентные объекты
Сохранный – объект продолжает существовать, даже не находясь постоянно в адресном пространстве серверного процесса. То есть, объект всегда можно воссоздать из памяти независимо от наличия процесса.
Нерезидентный – существует, пока им управляет сервер. Когда сервер завершает работу, это объект прекращает существование.
Способы определения местонахождения ро
Именование – управление пространствами имен, представляющими собой наборы связей между именами объектов и ссылками на них.
Трейдинг – определение местонахождения объектов исходя из предоставляемых ими функций и качества обслуживания.
1.7.Общие сведения о технологии corba
CORBA (common object request broker architecture) – технология удаленной работы с объектами. CORBA, в отличие от RMI, обеспечивает взаимодействие между объектами, написанными на разных языках. Для этого используется брокер объектных запросов (ORB), который работает и на клиенте, и на сервере.
Сначала описывается интерфейс на языке IDL. Потом это описание компилируется в классы-заглушки и вспомогательные классы на целевых языках. Затем реализуются и компилируются объекты-серверы, после чего они регистрируются в программе-сервере (наиболее удобны способ регистрации – использование службы имен CORBA, аналогичной реестру RMI). После этого уже можно создавать программу-клиент и запускать клиент и сервер.
