В распределенных вычислениях брокер объектных запросов ( ORB ) — это концепция промежуточного программного обеспечения , которое позволяет выполнять вызовы программ с одного компьютера на другой через компьютерную сеть , обеспечивая прозрачность местоположения посредством удаленных вызовов процедур . ORB способствуют взаимодействию распределенных объектных систем, позволяя строить такие системы путем объединения объектов от разных поставщиков, в то время как различные части взаимодействуют друг с другом через ORB. Common Object Request Broker Architecture (общая архитектура брокера объектных запросов ) стандартизирует способ реализации ORB.
Предполагается, что ORB обрабатывает преобразование структур данных в процессе в необработанную последовательность байтов, которая передается по сети, и из нее. Это называется маршаллингом или сериализацией . В дополнение к маршаллингу данных ORB часто предоставляют множество других функций, таких как распределенные транзакции , службы каталогов или планирование в реальном времени. Некоторые ORB, такие как системы, совместимые с CORBA , используют язык описания интерфейса для описания данных, которые должны передаваться при удаленных вызовах. [1] [2]
В объектно-ориентированных языках (например, Java) ORB фактически предоставляет фреймворк , который позволяет использовать удаленные объекты по сети таким же образом, как если бы они были локальными и являлись частью того же процесса . На стороне клиента создаются и вызываются так называемые объекты -заглушки , служащие единственной видимой и используемой частью внутри клиентского приложения. После вызова методов заглушки клиентский ORB выполняет маршалинг данных вызова и пересылает запрос серверному ORB. На стороне сервера ORB находит целевой объект, выполняет запрошенную операцию и возвращает результаты. Имея результаты доступными, клиентский ORB выполняет демаршалинг и передает результаты обратно в вызванную заглушку, делая их доступными клиентскому приложению. Весь процесс прозрачен, в результате чего удаленные объекты выглядят так, как если бы они были локальными. [1]