Брокер объектных запросов
В распределенных вычислениях брокер объектных запросов (ORB, object requet broker) представляет собой промежуточное программное обеспечение, которое позволяет выполнять программные вызовы с одного компьютера на другой через компьютерную сеть, обеспечивая прозрачность местоположения посредством удаленных вызовов процедур. ORB способствуют взаимодействию распределенных объектных систем, позволяя строить такие системы, собирая вместе объекты от разных поставщиков, в то время как разные части взаимодействуют друг с другом через ORB.
Общее описание
ORB обрабатывают преобразование внутрипроцессных структур данных в структуру данных, пригодных для передачи в другой процесс, между процессами на одном сервере или по сети и обратно. Это называется маршалингом или сериализацией и демаршалингом/десериализацией соответственно. Помимо маршалинга данных, ORB часто предоставляют гораздо больше возможностей, таких как распределенные транзакции, службы каталогов или сервис планировщика реального времени. Некоторые ORB, такие как CORBA-совместимые системы, используют язык описания интерфейса для описания данных, которые должны передаваться при удаленных вызовах[1][2].
В объектно-ориентированных языках ORB фактически предоставляет структуру, которая позволяет использовать удаленные объекты по сети так же, как если бы они были локальными и являлись частью одного и того же процесса. На стороне клиента создаются и вызываются так называемые объекты-заглушки, которые служат единственной видимой и используемой в клиентском приложении частью. После вызова методов заглушки клиентский ORB выполняет маршалинг данных вызова и пересылает запрос на серверный ORB. На стороне сервера ORB находит целевой объект, выполняет запрошенную операцию и возвращает результаты. Получив результаты, клиентский ORB выполняет демаршалинг и передает результаты обратно в вызванную заглушку, делая их доступными для клиентского приложения. Весь процесс прозрачен, в результате удаленные объекты выглядят как локальные[1].
Примеры реализаций
- CORBA - Common Object Request Broker Architecture.
- ICE - Internet Communications Engine
- .NET Remoting - объектная библиотека в составе Microsoft .NET Framework
- Windows Communication Foundation (WCF)
- ORBexpress - брокер реального времени от компании Objective Interface Systems
- Orbix - реализация объектного брокера от компании IONA Technologies
- DCOM - Distributed Component Object Model от Microsoft
- RMI - программный интерфейс вызова удаленных методов в языке Java.
- ORBit - open source объектный брокер CORBA, используемый в GNOME
- ACE ORB - ещё одна реализация брокера CORBA от Distributed Object Computing (DOC) Group
- omniORB - ещё один свободный брокер на базе стандарта CORBA ORB[1]
Примечания
- Object Request Brokers . IBM (5 ноября 2013).
- Overview of CORBA . wustl.edu (28 сентября 2006).