Посредники запросов к объектам в распределенных вычислениях
Object request broker
Объектный брокер запросов (ORB) в распределенных вычислениях: что это, как работает, стандарты OMG CORBA, сериализация данных и обеспечение взаимодействия.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
В распределенных вычислениях, брокер запросов объектов (ORB) – это концепция промежуточного программного обеспечения, позволяющая осуществлять вызовы программ с одного компьютера на другой по компьютерной сети, обеспечивая прозрачность местоположения посредством удаленных вызовов процедур. ORB способствуют взаимодействию распределенных объектных систем, позволяя создавать такие системы путем компоновки объектов от различных поставщиков, при этом различные части взаимодействуют друг с другом через ORB. Стандарт Common Object Request Broker Architecture (разработанный Object Management Group) стандартизирует способы реализации ORB.
In distributed computing, an object request broker (ORB) is a concept of a middleware, which allows program calls to be made from one computer to another via a computer network, providing location transparency through remote procedure calls. ORBs promote interoperability of distributed object systems, enabling such systems to be built by piecing together objects from different vendors, while different parts communicate with each other via the ORB. Common Object Request Broker Architecture (by Object Management Group) standardizes the way ORB may be implemented.
Обзор
ORB-объекты отвечают за преобразование структур данных, находящихся в обработке, в необработанную последовательность байтов и обратно, которая передается по сети. Этот процесс называется маршалингом или сериализацией. Помимо маршалинга данных, ORB-объекты часто предоставляют множество других функций, таких как распределенные транзакции, службы каталогов или планирование в реальном времени. Некоторые ORB-объекты, например, системы, соответствующие стандарту CORBA, используют язык описания интерфейсов для описания данных, которые должны быть переданы при удаленных вызовах. В объектно-ориентированных языках (например, Java) ORB-объект фактически предоставляет основу, позволяющую использовать удаленные объекты по сети так же, как если бы они были локальными и являлись частью одного процесса. На стороне клиента создаются и вызываются так называемые объекты-заглушки (stub), которые являются единственной видимой и используемой частью внутри клиентского приложения. После вызова методов объекта-заглушки, ORB-объект на стороне клиента выполняет маршалинг данных вызова и пересылает запрос на ORB-объект на стороне сервера. На стороне сервера ORB-объект находит целевой объект, выполняет запрошенную операцию и возвращает результаты. Получив результаты, ORB-объект клиента выполняет демаршалинг и передает результаты обратно в вызванный объект-заглушку, делая их доступными для клиентского приложения. Весь процесс прозрачен, в результате чего удаленные объекты кажутся локальными.
ORBs assumed to handle the transformation of in process data structures to and from the raw byte sequence, which is transmitted over the network. This is called marshalling or serialization. In addition to marshalling data, ORBs often expose many more features, such as distributed transactions, directory services or real time scheduling. Some ORBs, such as CORBA compliant systems, use an interface description language to describe the data that is to be transmitted on remote calls. In object oriented languages (. e. g. java), an ORB actually provides a framework which enables remote objects to be used over the network, in the same way as if they were local and part of the same process. On the client side, so called stub objects are created and invoked, serving as the only part visible and used inside the client application. After the stub's methods are invoked, the client side ORB performs the marshalling of invocation data, and forwards the request to the server side ORB. On the server side, ORB locates the targeted object, executes the requested operation, and returns the results. Having the results available, the client's ORB performs the demarshalling and passes the results back into the invoked stub, making them available to the client application. The whole process is transparent, resulting in remote objects appearing as if they were local.