CORBA - Архитектура распределенных объектов

Отображение для языка также определяет порядок взаимодействия между вызовом метода и потоками (тредами - threads) как со стороны клиента, так и со стороны реализации. Обычно обеспечивается синхронный вызов, в котором подпрограмма вызова возвращает управление при завершении выполнения запроса. Допускается определение дополнительных средств, для определения порядка передачи управления и синхронизации клиентского кода с вызовом метода объекта. Типы данных. Типом называется некий предикат (математическая функция с одним аргументом возвращающее значение логического типа истина/ложь), который определен на множестве всевозможных значений. Значения удовлетворяют этому типу, если результат предиката - истина. Такие значения называются членами типа. Объектным типом называется тип, членами которого являются объекты, удовлетворяющие данному типу. Определены следующие основные (базовые) типы данных: ·16 и 32 разрядные знаковые и беззнаковые целые типы; ·32 и 64 разрядные типы с плавающей точкой в соответствии с IEEE; ·символьный тип в соответствии с ISO Latin-1 (8859.1); ·логический тип с множеством значений истина и ложь; ·8 разрядный тип, который гарантированно не подвергается никаким изменениям при передаче между различными системами; ·перечислимые типы, состоящие из последовательности идентификаторов; ·строковый тип, состоящий из последовательности символов переменной длины, длина строки доступна во время выполнения программы; ·тип "any", который может принимать значения всех базовых и составных типов. Также могут быть определены составные типы: ·структура, состоящая из упорядоченных пар (имя, значение); ·объединение, состоящее из дискриминатора и значения типа, связанного с дискриминатором; ·последовательность, которая является массивом переменной длины значений одного типа, длина последовательности доступна во время выполнения; ·массив фиксированной длины, элементами которого являются значения одного типа; ·тип интерфейс, который определяет множество операций, которое должен поддерживать экземпляр этого типа. Параметры, представленные в запросе должны удовлетворять одному из перечисленных типов, за исключением типа интерфейс, как показано на рисунке 2-1. Синтаксис Общего Представления Данных - CDR. CDR - это способ представления всех типов данных, определенных в OMG IDL в виде последовательности восьмиразрядных величин, далее называемых байтами. Поток байт представляет из себя некоторую абстракцию обычно соответствующую буферу данных, который передается между процессами или машинами с помощью средств IPC или сетевого транспорта. Далее считается, что поток байт или просто поток - это последовательность переменной (но конечной) длины величин, состоящих из 8 бит (байт) с четко определенным заголовком. Байты в потоке нумеруются от 0 до n-1, где n - это длина потока. Индекс каждого байта используется для вычисления границ выравнивания, как это описано далее. Протокол GIOP определяет два вида потоков - сообщение и инкапсуляция. Сообщение - это основная единица обмена информацией в протоколе GIOP. Инкапсуляция - это поток, внутри которого любая структура данных, имеющаяся в OMG IDL может быть декодирована независимо от остального контекста сообщения. Инкапсуляция позволяет осуществлять предварительное кодирование сложных типов данных (таких как TypeCode) или обрабатывать части сообщений без требования полного его декодирования. Кодирование базовых типов. Все базовые типы могут быть закодированы как набор байт. При этом допускается использование как представления, в котором первым в поток помещается наиболее значимый или наименее значимый байт. Заголовок сообщения включает в себя флаг, который определяет порядок при кодировании базовых типов в сообщении. Порядок байт внутри любой инкапсуляции может отличаться от порядка байт в сообщении или другой инкапсуляции, внутри которой эта инкапсуляция находится. Изменение порядка байт в случае необходимости возлагается на получателя сообщения.

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...