
- •Государственный комитет рф по высшему образованию
- •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.2. Структура ядра системы.
Ядро системы (лист 1) состоит из следующих частей:
подсистема обработки запросов;
хранилище описаний объектов (Interface Repository);
хранилище информации об реализациях объектов (Implementation Repository);
реализация базовых объектов;
реализация базовых функция для всех объектов.
Подсистема обработки запросов является частью, общей с библиотекой для языка C и подробно описана далее.
Хранилище описаний объектовнеобходимо для обеспечения информации о имеющихся на данный момент типах объектов, их атрибутов и методов, параметров методов, а также предоставляет средства для занесения информации о новых типах, которые не были известны системе во время ее составления. Информация в хранилище заносится с помощью специального множества процедур. В будущем планируется написание специального компилятора с языкаCORBA IDL, который должен будет обеспечивать автоматическое заполнение хранилища на основе описания объекта, составленного наIDL.На основании информации, находящейся в хранилище можно получить список всех имеющихся в системе на данный момент объектов, перечень их атрибутов и свойств. Также с помощьюИнтерфейса Динамических Вызовов (Dynamic Invocation Interface)можно подготовить и осуществить вызов к любому объекту, даже если на момент написания программы об этом объекте ничего известно не было. Этой же информацией пользуется и администратор ядра системы. Важной особенностью написанной системы является то, что все функции администрирования могут быть выполнены с помощью вызовов стандартных функций и не используют разного рода недокументированные возможности, что допускает написание полноценного собственного администратора со специализированным назначением.
Для того, чтобы при создании объекта система могла определить положение выполняемых файлов, в которых находится реализация данного объекта, ядро системы предоставляет хранилище информации о реализациях объектов. Методы взаимодействия с этим хранилищем идентичны методам работы с хранилищем описаний объектов.
Естественно, ядро системы включает в себя и реализацию базовых объектов, которые неизменно обязательно присутствуют в системе. Этими объектами являются стандартные объекты, определяемые спецификацией CORBA:
ORB- собственно, сам брокер, который может преобразовывать ссылку на объект в строку являющуюсяУникальной Объектной Ссылкой (Interoperable Object Reference), однозначно определяющую объект и выполнить обратное преобразование. Если несколькоORB-ов связаны между собой, то их пространства объектов могут быть объединены и таким образом допускается преобразование строки в ссылку на любомORB-е, связанном с исходным. ТакжеORB позволяет создавать множествоАдаптеров Объектов(Object Adapters) и как часть стандарта -Основной Адаптер Объектов (Basic Object Adapter - BOA).
BOA - базовый из адаптеров объектов. Главной функцией Основного Адаптера Объекта является управление различными системными сервисами. ТакжеBOA частично принимает участие в управлении хранилищем информации о реализациях объектов.
Псевдообъекты - это с одной стороны объекты, с которыми действия выполняются таким же образом, что и с обычными объектами. С другой стороны список этих объектов приведен в спецификации CORBAи их описание не присутствует в хранилище описаний. Такие объекты не могут быть созданы произвольно, а лишь являться результатом специальных операций. Не все псевдообъекты реализованы в ядре системы - часть реализации псевдообъектов находится в библиотеке для языкаC.
Также в ядре системы находится реализация некоторых функций, которые можно выполнять над каждым объектом и которые позволяют динамически создать запрос к объекту, сделать дубликат ссылки на объект, получить описание интерфейса и реализации для данного объекта, сравнить с другим объектом, а кроме того выполнить некоторые дополнительные действия над объектами.