- •Государственный комитет рф по высшему образованию
- •0. Введение.
- •0.1. Идея общей интеграции.
- •0.2. Взаимодействие на уровне процедур.
- •0.3. Распределенные объекты.
- •0.4. Почему corba.
- •1. Поддержка на различных платформах.
- •2. Устойчивость стандарта.
- •3. Сложность освоения.
- •4. Поддержка повторного использования кода.
- •1. Постановка задачи.
- •1.1. Классические объекты.
- •1.2. Распределенные объекты в терминах спецификации corba.
- •1.3. Требования, предъявляемые к orb-у.
- •2. СпецификацияCorba.
- •2.1. Объектная модель.
- •2.2. Обзор архитектурыCorba.
- •2.3. Пример Брокеров Объектных Запросов.
- •3. Структура системы.
- •3.1. Уточнение деталей реализации.
- •3.2. Структура ядра системы.
- •3.3. Структура библиотеки.
- •3.4.Структура подсистемы обработки запросов.
- •3.5. Входные и выходные данные.
- •4. Протокол обменаGiop.
- •4.1. Особенности и цели протокола.
- •4.2. Обзор протоколаGiop.
- •4.3. Синтаксис Общего Представления Данных -cdr.
- •4.4. Формат сообщений протокола giop.
- •4.5. Транспорт для протоколаGiop.
- •4.6. Реализация взаимодействия по протоколуGiop.
- •4.7. Поддержка протоколаGiop в рамках отображения дляObject Pascal.
- •5. Разработка отображения для языкаObject Pascal.
- •5.1. Множественное наследование.
- •5.2. Статические экземпляры классов.
- •Initialization
- •Initialization
- •6. Технология написания и отладки приложений, работающих с распределенными объектами.
- •6.1. Этапы разработки программы.
- •6.2. Технология написания сервера объекта.
- •6.3. Технология написания клиента объекта.
- •6.4. Отладочные возможности библиотеки.
- •7. Пример программы, работающей с распределенными объектами.
- •7.1. Последовательность действий при создании объекта.
- •7.2. Объект библиотека.
- •7.3. Сервер объекта.
- •7.3. Клиент объекта.
- •7.4. Окончательный результат.
- •8. Анализ конкурентоспособности программного продукта.
- •8.1. Введение.
- •8.2. Ситуация на рынке.
- •8.3. Программные продукты - конкуренты.
- •8.4. Основные понятия.
- •8.5. Параметры для оценки эффективности.
- •8.6. Расчет эффективности.
- •8.7. Цена.
- •8.8. Конкурентоспособность.
- •8.9. Выводы и прогнозы.
- •9. Вопросы эргономики и их решение для создания комфортных условий труда программистов.
- •9.1. Введение.
- •9.2. Рабочее место программиста.
- •9.3. Вредные факторы, присутствующие на рабочем месте и их классификация.
- •9.4. Вредные производственные воздействия.
- •9.5. Эргономические требования.
- •9.6. Эргономика окружающей среды.
- •9.7. Экологическая безопасность.
- •9.8. Выводы.
3.5. Входные и выходные данные.
В соответствии с предназначением системы входными данными является вызов метода объекта или соответствующей функции, а выходными - результат вызова метода/функции (если имеется) или возникновение исключения. Если операция идет только в одну сторону, то выходных данных нет. При выполнении запроса сервером объекта могут быть выполнены разные побочные действия.
При этом запрос может идти различными способами, в зависимости от типов взаимодействующих объектов5и их местонахождения. При этом есть следующие критерии:
1. Принадлежность. Объекты могут принадлежать (a) одному или(b) разным процессам, как показано на рисунке3-2.
Рисунок 3-2. Объекты и процессы.
2. Язык программирования. Объекты могут быть написаны (a) на одном и том же языке программирования или(b) на разных языках (рисунок3-3).
Рисунок 3-3. Объекты и языки программирования.
При создании объекта клиент производит вызов функций библиотеки, а та в свою очередь делает запрос к серверу. Далее способ взаимодействия зависит от того, где находятся эти два объекта. Если оба объекта принадлежат одному приложению и написаны на одном языке программирования (1a-2a), то сразу после создания объекта объект-клиент может нормально вызывать методы используемого объекта безо всяких посредников. Если же объекты написаны на разных языках (1a-2b), то необходим посредник -proxy-объект написанный на языке клиента. Он будет транслировать вызовы методов в запросы в форматеGIOP и передавать их библиотеке, а та - процедуре динамического выполнения запросов. Эта ситуация иллюстрируется рисунком 3-4.
Рисунок 3-4. Взаимодействие объектов в рамках одного процесса.
Если взаимодействующие между собой объекты находятся в разных выполняемых приложениях, то независимо от того, на каком языке они написаны, взаимодействие происходит либо через сервер, либо через прямое соединение, установленное между двумя библиотеками. В этом случае наличие объекта-proxy обязательно (рисунок3-5).
Рисунок 3-5. Взаимодействие объектов, находящихся в разных процессах.
4. Протокол обменаGiop.
За исключением редкого случая прямых вызовов методов между классами одного и того же языка программирования необходим механизм кодирования вызова метода в некоторую последовательность байт (byte stream) у клиента и декодирования этой последовательности у сервера. Для этой цели спецификацияCORBA определяет Общий Протокол обмена между Брокерами Объектных Запросов(General Inter-Orb Protocol - GIOP). Кроме того, определен протокол передачи сообщений протоколаGIOPповерх транспортного протоколаTCP/IP, являющегося основным видом взаимодействия вInternet, ввиду чего этот протокол получил название Протокола обмена между Брокерами Объектных вInternet (Internet Inter-Orb Protocol - IIOP). ПротоколIIOP должен поддерживаться всеми Брокерами Объектных Запросов независимо от особенностей их реализации, что является главным требованием для обеспечения взаимодействия между произвольнымиORB-ами двух разных и совершенно независимых производителей.