- •Государственный комитет рф по высшему образованию
- •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. Выводы.
2.3. Пример Брокеров Объектных Запросов.
Доступно широкое множество способов реализации конкретных ORB-ов. Далее будут приведены примеры таких реализаций. Следует иметь ввиду, что конкретныйORB может быть реализован сразу несколькими способами.
ORB, включаемый в клиентское и серверное приложение.
Если имеется подходящий механизм коммуникаций, то возможна реализация ORB-а в виде набора подпрограмм как со стороны клиента, так и со стороны реализации объекта. Вызовы методов могут транслироваться в работу со средствами взаимодействия процессов (Inter Process Communication - IPC).
ORB, выполненный в виде сервера.
С целью обеспечения централизованного сбора и управления всевозможной информацией, ORB может быть реализован в виде отдельного приложения. Взаимодействующие приложения устанавливают контакт сORB-ом посредством нормальных механизмовIPC.
ORB как часть системы.
Для повышения надежности, защиты данных и достижения лучшей производительности ORB может быть реализован как часть операционной системы. При этом ссылки на объект могут быть сделаны постоянными, таким уменьшая образом время, необходимое для обработки каждого запроса. При реализацииORB-а как части операционной системы возможны всевозможные виды оптимизации, такие как избежание кодирования и декодирования данных, если клиент и сервер находятся на одной и той же машине.
ORB, основанный на библиотеках.
Если код объекта занимает небольшой объем и не требует никаких дополнительных средств, то он может быть выполнен в виде библиотеки. При этом все заглушки на самом деле будут являться настоящими методами. При этом предполагается, что имея доступ к данным реализации, клиент не разрушит эти данные.
3. Структура системы.
3.1. Уточнение деталей реализации.
Учитывая специфику задачи и возможности операционной системы, разрабатываемая система должна иметь следующую структуру, показанную на рисунке 3-1.
Рисунок 3-1. Структура системы.
Ядро системы реализовано в виде сервиса. В ОСWindows NT под сервисом понимается приложение, которое запускается несколько особым способом и имеющее свои права для доступа к различным ресурсам. Сервис может быть запущен автоматически системой во время старта, либо с помощью специальных системных функций. В последнем случае разрешается запуск с удаленного компьютера. Набор данных характеристик делает реализацию ядра в виде сервиса наиболее оптимальной.
Библиотека для языка C представляет из себя динамически связываемую библиотеку(Dynamic Link Library), которая экспортирует функции и переменные, оговоренные в спецификации отображения для языкаC. Внутренняя часть библиотеки написана на языкеC++. Библиотеки для языковC++ иObject Pascal являются статическими и представляют просто объектную надстройку над библиотекой для языкаC. В результате выбора такой схемы исключается написание избыточного повторяющегося кода для каждого из языков, автоматически гарантируется когерентность всех библиотек и появляется дополнительная возможность взаимодействия с системой приложения, написанного на любом языке программирования, компилятор с которого способен осуществлять вызовы функций из динамически связываемых библиотек.
Имеется утилита администрирования ядра системы, написанная в среде Borland Delphi. Кроме того, для средыDelphi написаны эксперты, облегчающие публикацию имеющегося объекта в системе и импорт объекта в приложение. Эксперты автоматически создают исходный код для выполнения перечисленных действий.