Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
HOR / TOTAL.DOC
Скачиваний:
8
Добавлен:
16.04.2013
Размер:
312.83 Кб
Скачать

1.3. Требования, предъявляемые к orb-у.

Теперь можно уточнить постановку задачи. Требуется написать систему, являющуюся реализацией ORB-а. Система должна первоначально работать под управлением операционной системыWindows NT версии 4.0, но при написании необходимо учесть возможность последующего переноса системы в ОСUNIX, Windows 3.1x иWindows 95.Система должна состоять из двух основных частей: дра(ORB core), которое должно быть отдельным приложением и набора библиотек, которые осуществляют взаимодействие с сервером. Должны быть разработаны библиотеки для языков программированияC, C++ иObject Pascal в реализацииDelphi 2.0. В связи с отсутствием отображения для языкаObject Pascal такое отображение необходимо разработать самостоятельно. Библиотеки для языковC++ и Object Pascal должны допускать одновременное взаимодействие из приложений, написанных на соответствующих языках с библиотекой для языкаC++.

Ядро системы должно быть написано на языке C++как на самом переносимом языке высокого уровня на данный момент.Библиотека для языкаC может быть написана на языкеC++. Библиотеки для остальных языков пишутся на этих языках программирования.

2. СпецификацияCorba.

Для дальнейшего изложения необходимо дать краткое описание основных понятий, которые используются в спецификации CORBA. Материал данной главы составлен на основе литературы[3].

2.1. Объектная модель.

Объектная модель определяет представление объектов и используемую терминологию. Объектная модель, используемая OMG в спецификацииCORBA является абстрактной объектной моделью в том смысле, что она не определяет никаких деталей реализации.

Объектная модель с большей подробностью описывает понятия, важные для клиента, такие как создание и использование объектов, порядок вызова методов объектов. Варианты реализации модели имеют рекомендательный характер, что допускает определенную свободу в использовании различных технологий и обеспечения различных вариантов реализации.

Данная объектная модель является частным случаем классической объектной модели, в которой клиент (пользователь объекта) посылает объекту сообщение. Вообще говоря, объект обрабатывает сообщение и решает, какие действия предпринять. В классической модели сообщение состоит из некоторого количества (в том числе и нуля) параметров. В большинстве случаев требуется уникальный первый параметр, который определяет требуемую операцию и интерпретация сообщения заключается в вызове метода, соответствующего запрашиваемому сообщению. Выбор и вызов метода может выполняться как самим объектом, так и Брокером Объектных Запросов.

Объекты.

Система объектов обеспечивает клиента набором сервисов. Клиент способен запросить некоторый сервис. Объект - это нечто, что обеспечивает один или более сервисов, которые клиент может запросить.

Запросы.

Клиент запрашивает сервисы инициированием запросов. Запрос - это событие, то есть действие, происходящее в конкретный момент. С запросом связана информация, состоящая из операции, объекта, у которого запрашивается сервис, нуля или более действительных параметров вызова и необязательный контекст запроса. Форма запроса - это описание или шаблон, который может быть выполнен произвольное количество раз. Форма запроса определяется отображением для конкретного языка программирования. Альтернативной формой запроса является использования Интерфейса Динамических Вызовов, который позволяет создать запрос, добавить аргументы и выполнить запрос. Под значением понимается допустимый параметр запроса. Значение которое определяет объект, называется ссылкой на объект, связанной с конкретным экземпляром объекта. Выполнение запроса вызывает выполнение соответствующего сервиса. После завершения запроса клиенту возвращается результат запроса (если он есть). В случае ненормального завершения запроса клиенту возвращается исключение. Исключение может содержать специфические параметры, специфические для данного типа исключений.

Параметры запросов определяются их позицией. Параметры могут быть входные, выходные и входные и выходные одновременно. Как результат запрос может возвратить одно значение, как, впрочем, и любые выходные параметры. В случае возникновения исключения значение всех выходных параметров не определено.

Типы данных.

Типом называется некий предикат (математическая функция с одним аргументом возвращающее значение логического типа истина/ложь), который определен на множестве всевозможных значений. Значения удовлетворяют этому типу, если результат предиката - истина. Такие значения называются членами типа.

Объектным типом называется тип, членами которого являются объекты, удовлетворяющие данному типу.

Определены следующие основные (базовые) типы данных:

  • 16 и 32 разрядные знаковые и беззнаковые целые типы;

  • 32 и 64 разрядные типы с плавающей точкой в соответствии с IEEE;

  • символьный тип в соответствии с ISO Latin-1 (8859.1);

  • логический тип с множеством значений истина и ложь;

  • 8 разрядный тип, который гарантированно не подвергается никаким изменениям при передаче между различными системами;

  • перечислимые типы, состоящие из последовательности идентификаторов;

  • строковый тип, состоящий из последовательности символов переменной длины, длина строки доступна во время выполнения программы;

  • тип “any”, который может принимать значения всех базовых и составных типов.

Также могут быть определены составные типы:

  • структура, состоящая из упорядочененных пар (имя, значение);

  • объединение, состоящее из дискриминатора и значения типа, связанного с дискриминатором;

  • последовательность, которая является массивом переменной длины значений одного типа, длина последовательности доступна во время выполнения;

  • массив фиксированной длины, элементами которого являются значения одного типа;

  • тип интерфейс, который определяет множество операций, которое должен поддерживать экземпляр этого типа.

Параметры, представленные в запросе должны удовлетворять одному из перечисленных типов, за исключением типа интерфейс, как показано на рисунке 2-1.

Рисунок 2-1. Структура допустимых в качестве параметра запроса типов.

Интерфейсы.

Интерфейс - это описание множества возможных операций, которые клиент может выполнять над объектом. Объект удовлетворяет интерфейсу, если он может быть указан как конечным объектом для каждого потенциального запроса, описанного в интерфейсе.

Типу интерфейса удовлетворяют только объектные типы.

Операции.

Операция представляет сервис, выполнение которого может быть запрошено. Операция определяется идентификатором операции. Операция описывается некоторой сигнатурой, которая задает параметры запроса и возвращаемое значение. В частности сигнатура состоит из:

  • спецификации параметров, требуемых для выполнения операции

  • спецификации возвращаемого значения

  • спецификации исключения, которые могут возникнуть во время выполнения операции и типов данных, которые соответствуют этим исключениям

  • спецификации дополнительной контекстной информации, которая может повлиять на выполнение запроса

  • индикации семантики, которую клиент должен учитывать при выполнении операции.

Параметры.

Параметр характеризуется режимом передачи и своим типом. Режим определяет, должно ли передаваться значение параметра от клиента к серверу (in), от сервера к клиенту (out) или в обоих направлениях (inout).

Возвращаемое значение.

Если есть возвращаемое значение, то оно рассматривается как параметр типа out.

Исключения.

Исключение свидетельствует о том, что операция не была успешно выполнена. Исключение может содержать дополнительную информацию, специфичную для конкретного исключения.

Контекст.

Контекст запроса обеспечивает передачу дополнительной, специфичной для операции информации, которая может повлиять на выполнение запроса.

Соседние файлы в папке HOR