Upload
ownah
View
80
Download
3
Embed Size (px)
DESCRIPTION
Связующее ПО для систем на платформе QNX. Сергей Зыль СВД Встраиваемые Системы www.kpda.ru. Как правило, системы на базе QNX – это сложные многоуровневые распределённые системы управления. Например, системы типа « Smart Energy » могут включать: Подсистему обеспечения энергосбережения - PowerPoint PPT Presentation
Citation preview
Связующее ПО для системна платформе QNX
Сергей Зыль
СВД Встраиваемые Системы
www.kpda.ru
2
Как правило, системы на базе QNX – это сложные многоуровневыераспределённые системы управления
Например, системы типа «Smart Energy» могут включать:- Подсистему обеспечения энергосбережения- Подсистему управления освещением- Подсистему охраны (доступ в помещения и видеонаблюдение)- Подсистему безопасности (утечки газа, возгорания)
3
Зачем нужно «связующее ПО»?
«Связующее ПО» «связывает» (а точнее «разделяет») прикладное ПО и системное ПО
Назначение middleware - сокращение трудоемкости разработки ПО за счет использования типовых компонентов для решения типовых задач
Задачи могут быть "типовыми" в пределах конкретной области (обеспечение распределённого взаимодействия в гетерогенной среде, интеграция мультимедийного контента из разных источников и т.д.)
ЧМИ (видео, аудио),Регистрация и учёт
Балансировка нагрузки, Безопасность, Резервирование
Управление процессами
Управление устройствами
Лог
ичес
кие
уров
ни
АС
на
баз
е Q
NX
Любой уровень может включать:- Унаследованные элементы- Разнородные ОС- Разные архитектуры ЦПУ- Базы данных и знаний- Взаимодействие с внешним миром- Разнородные источники данных- Разные типы вх. и вых. данных
Что предлагает платформа QNX?
4
Штатные механизмы QNX NeutrinoКонечно, ряд задач решается с помощью штатных механизмов Neutrino:
Распределённое взаимодействие на уровне ядра Распределённый доступ к файлам Распределённый запуск процессов Распределённый вызов методов («Родные» сообщения QNX) Распределённая сигнализация о событиях (Импульсы QNX) Публикация/подписка с сохранением данных (механизм PPS)
Поиск сервисов в распределённой сети Qnet пространства имён узлов Qnet служба глобальных имён (GNS)
Резервирование Редиректор запросов Перегрузка префиксов
Мониторинг состояния: QNX CPM (точки сохранения, восстановление сервисов и соединений)
Полная поддержка “обычных” технологий: POSIX API и утилиты Berkeley Socket API (TCP/IPv4, IPv6) GCC BSD pkgsrc
5
Middleware в системах на базе QNX
Обеспечение взаимодействиячеловек-машина:
- Визуальное отображение информации- Воспроизведение звука- Ввод информации «вручную»- Ввод информации голосом- Интеграция информационных потоков
Обеспечение взаимодействия машина-машина(в гетерогенной сети):
- Поиск удалённого сервиса- Идентификация/аутенфикация - Удалённый вызов процедур и методов- Удалённое распространение событий
Типовые задачи, решаемые middleware на платформе QNX:
Обычно, когда произносят слово «Middleware» вспоминается коммуникационная технология CORBA или её аналоги/конкуренты, например, Java RMI
Вообще, middleware – это любое инфраструктурное ПО, позволяющее повысить уровень абстракции разработки. Например, технология Adobe Flash.
6
Примеры типовых Middleware
CORBA – распределённые вычисления в гетерогенной среде независимо от языка программирования
Java – переносимость кода и распределённые вычисления
Adobe Flash – переносимость GUI
QNX используется в АС реального времени.Поэтому Middleware-технологии для QNX так же ориентированы на АС реального времени.
7
Real-Time CORBA
Назначение CORBA – позволить прикладному программисту вызывать методы объекта независимо от того, где находится сервер, в какой среде функционирует, на каком языке программирования написан.
8
Real-Time CORBA
Своевременность обработкираспределенного запроса
Граф транс-узлового взаимодействия
Проблемы своевременности выполнения распределённого (трансузлового) потока сходны с проблемами обычной многозадачной системы:- Приоритеты выполнения «сегментов»- Распределённая инверсия приоритетов
9
Real-Time CORBA
Спецификация Real-Time CORBA позволяет распространять различные атрибуты клиентских потоков на сервера
10
Причины популярности технологии Java Сокращение «Time-to-Market»
Язык высокого уровня
Богатые API (JFC, JDBC, …)
Надёжность кода Безопасность типов (type-safety)
Безопасность указателей (pointer-safety)
Автоматическая «уборка мусора» (Garbage Collector)
Удобство повторного использования и расширения кода (в том числе компонентное программирование)
Независимость от платформы
Мощные дополнительные инструменты и API: Code Coverage
Eclipse
JUnit
Data Flow Analysis
11
Real-Time Java Ограничения традиционных систем Java
Высокие требования к объёму ОЗУ
Низкая производительность среды исполнения
Паузы выполнения при работе GC
Плохой отклик пользовательского интерфейса
Неприемлемо для систем реального времени, особенно для критичных к функциональной безопасности
Защита от вытеснения «уборщиком мусора» (scoped, immortal) Шире диапазон приоритетов, строгое вытеснение Защита от инверсии приоритетов Выше точность часов и таймеров (ns) Доступ к физической памяти Обработчики асинхронных событий (сигналы, прерывания)
RTSJ – Real-Time Specification for Java:
12
Real-Time Java
Сравнение «уборщиков мусора» (GC)
Стандартный GC
GC в RTSJ(потоки реального времени)
GC реального времени (RTGC) – реализация AICAS JamaicaVM (премия BMW «Passion for Innovation»)
GC экономит время разработчиков: Не нужно явно освобождать память объектов
GC обеспечивает безопасность работы с памятью: Снижает опасность утечек памяти Не происходит удаления используемых объектов
13
Пример реализации: AICAS JamaicaVM Статический компилятор с профилированием
Повышение быстродействия Сокращение времени выполнения и пространства памяти
«Smart Linking» - в приложение включаются только нужные компоненты
Детерминированная «Уборка мусора» (RTGC) GC не прерывает задачи реального времени Нет пауз при выполнении приложения
classfiles
classfiles
classfiles
settings
profiling
data
Jamaica Builder
objectfile
classfiles
classfiles
JVMlibrary
stand-aloneapplication
14
Adobe Flash
Основные достоинства технологии:
Быстрота разработки и тестирования сложных графических интерфейсов благодаря мощным инструментам Adobe
Более высокая переносимость кода, чем в Java (нет зависимости от доступности отдельных API)
Использование векторной графики:
Трансформация (вращение, масштабирование и т.п.) без снижения качества
Добавление анимации не приводит к увеличению размера файла
Возможность использования разработанных для настольных систем приложений с минимальными модификациями
15
Adobe Flash
Особенности поддержкиAdobe Flash в QNX Neutrino:
- Поддержка многооконных приложений на основе менеджера композиции OpenKODE
- Ускоренная перерисовка на основе OpenGL ES
- Поддержка «родного» API через интерфейс QNX Action Script Extensions (ASE)
- Возможности удалённого доступа
16
Борьба со сложностью ПО –повышение уровня абстракции
Уровеньабстракции
Время
Assembler
mov al,02hclcint 0f2hjnc l1call __kererrl1mov al,03hclcint 0f2hjnc l1call __kererrl1
C
int i;while(1){ sem_wait(&Sem); sleep(1);}pthread_exit(NULL);
C++, Java
public boolean equals(Object o) { if (! (o instanceof Hello)) return false; else { return true; }}
UML/DSL
17
UML-профили в качестве DSL
Специфичные стереотипы UML-профиля HIP («HIApexBlackbord», «HIApexBuffer» и др.) обеспечивают отображение на UML-модель APEX-паттернов отказоустойчивой коммуникации (ARINC 653-2)
Реализация APEX-паттернов должна предоставляться фрэймворком
Эффект 1: Перемещение НОУ-ХАУ из программного кода в шаблоны и «картинки»
Эффект 2:Упрощение тестирования и сопровождения ПО
SPT, HIP, MITRE, AUTOSAR, …
18
Выводы
Системы на базе QNX, как правило, весьма сложны и часто интегрированы с другими системами
Middleware решает типовые проблемы для различных частей систем и разного класса задач
Middleware позволяет разрабатывать более сложное ПО с прежними людскими ресурсами
Middleware хорошо интегрируется с инструментами MDD (UML-профили ) для повышения уровня абстракции разработки
На платформе QNX помимо мощных штатных механизмов доступно различное ПО middleware, адаптированное для построения АС реального времени
Прошу задавать вопросы
Сергей Зыль
ООО «СВД Встраиваемые Системы»
Спасибо за внимание!
www.kpda.ruforum.kpda.ru