Введение

В распределенных вычислениях, брокер запросов объектов (ORB) – это концепция промежуточного программного обеспечения, позволяющая осуществлять вызовы программ с одного компьютера на другой по компьютерной сети, обеспечивая прозрачность местоположения посредством удаленных вызовов процедур. ORB способствуют взаимодействию распределенных объектных систем, позволяя создавать такие системы путем компоновки объектов от различных поставщиков, при этом различные части взаимодействуют друг с другом через ORB. Стандарт Common Object Request Broker Architecture (разработанный Object Management Group) стандартизирует способы реализации ORB.

Обзор

ORB-объекты отвечают за преобразование структур данных, находящихся в обработке, в необработанную последовательность байтов и обратно, которая передается по сети. Этот процесс называется маршалингом или сериализацией. Помимо маршалинга данных, ORB-объекты часто предоставляют множество других функций, таких как распределенные транзакции, службы каталогов или планирование в реальном времени. Некоторые ORB-объекты, например, системы, соответствующие стандарту CORBA, используют язык описания интерфейсов для описания данных, которые должны быть переданы при удаленных вызовах. В объектно-ориентированных языках (например, Java) ORB-объект фактически предоставляет основу, позволяющую использовать удаленные объекты по сети так же, как если бы они были локальными и являлись частью одного процесса. На стороне клиента создаются и вызываются так называемые объекты-заглушки (stub), которые являются единственной видимой и используемой частью внутри клиентского приложения. После вызова методов объекта-заглушки, ORB-объект на стороне клиента выполняет маршалинг данных вызова и пересылает запрос на ORB-объект на стороне сервера. На стороне сервера ORB-объект находит целевой объект, выполняет запрошенную операцию и возвращает результаты. Получив результаты, ORB-объект клиента выполняет демаршалинг и передает результаты обратно в вызванный объект-заглушку, делая их доступными для клиентского приложения. Весь процесс прозрачен, в результате чего удаленные объекты кажутся локальными.