1 / 19

Связующее ПО для систем на платформе QNX

Связующее ПО для систем на платформе QNX. Сергей Зыль СВД Встраиваемые Системы www.kpda.ru. Как правило, системы на базе QNX – это сложные многоуровневые распределённые системы управления. Например, системы типа « Smart Energy » могут включать: Подсистему обеспечения энергосбережения

ownah
Download Presentation

Связующее ПО для систем на платформе QNX

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Связующее ПО для системна платформе QNX Сергей Зыль СВД Встраиваемые Системы www.kpda.ru

  2. Как правило, системы на базе QNX – это сложные многоуровневыераспределённые системы управления • Например, системы типа «Smart Energy» могут включать: • Подсистему обеспечения энергосбережения • Подсистему управления освещением • Подсистему охраны (доступ в помещения и видеонаблюдение) • Подсистему безопасности (утечки газа, возгорания)

  3. Зачем нужно «связующее ПО»? ЧМИ (видео, аудио), Регистрация и учёт Логические уровни АС на базе QNX • Любой уровень может включать: • Унаследованные элементы • Разнородные ОС • Разные архитектуры ЦПУ • Базы данных и знаний • Взаимодействие с внешним миром • Разнородные источники данных • Разные типы вх. и вых. данных • «Связующее ПО» «связывает» (а точнее «разделяет») прикладное ПО и системное ПО • Назначение middleware - сокращение трудоемкости разработки ПО за счет использования типовых компонентов для решения типовых задач • Задачи могут быть "типовыми" в пределах конкретной области (обеспечение распределённого взаимодействия в гетерогенной среде, интеграция мультимедийного контента из разных источников и т.д.) Балансировка нагрузки, Безопасность, Резервирование Управление процессами Управление устройствами Что предлагает платформа QNX?

  4. Штатные механизмы QNXNeutrino • Конечно, ряд задач решается с помощью штатных механизмов Neutrino: • Распределённое взаимодействие на уровне ядра • Распределённый доступ к файлам • Распределённый запуск процессов • Распределённый вызов методов («Родные» сообщения QNX) • Распределённая сигнализация о событиях (Импульсы QNX) • Публикация/подписка с сохранением данных (механизм PPS) • Поиск сервисов в распределённой сети Qnet • пространства имён узлов Qnet • служба глобальных имён (GNS) • Резервирование • Редиректор запросов • Перегрузка префиксов • Мониторинг состояния: • QNX CPM (точки сохранения, восстановление сервисов и соединений) • Полная поддержка “обычных” технологий: • POSIX API и утилиты • Berkeley Socket API (TCP/IPv4, IPv6) • GCC • BSD pkgsrc

  5. Middleware в системах на базе QNX Обычно, когда произносят слово «Middleware»вспоминается коммуникационная технология CORBA или её аналоги/конкуренты, например, Java RMI Вообще, middleware – это любое инфраструктурное ПО, позволяющее повысить уровень абстракции разработки. Например, технология Adobe Flash. Типовые задачи, решаемые middleware на платформе QNX: • Обеспечение взаимодействия машина-машина • (в гетерогенной сети): • Поиск удалённого сервиса • Идентификация/аутенфикация • Удалённый вызов процедур и методов • Удалённое распространение событий • Обеспечение взаимодействия • человек-машина: • Визуальное отображение информации • Воспроизведение звука • Ввод информации «вручную» • Ввод информации голосом • Интеграция информационных потоков

  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 • Плохой отклик пользовательского интерфейса • Неприемлемо для систем реального времени, особенно для критичных к функциональной безопасности RTSJ – Real-Time Specification for Java: • Защита от вытеснения «уборщиком мусора» (scoped, immortal) • Шире диапазон приоритетов, строгое вытеснение • Защита от инверсии приоритетов • Выше точность часов и таймеров (ns) • Доступ к физической памяти • Обработчики асинхронных событий (сигналы, прерывания)

  12. Real-Time Java • GC экономит время разработчиков: • Не нужно явно освобождать память объектов • GC обеспечивает безопасность работы с памятью: • Снижает опасность утечек памяти • Не происходит удаления используемых объектов Сравнение «уборщиков мусора» (GC) Стандартный GC GC в RTSJ (потоки реального времени) GC реального времени(RTGC) – реализация AICAS JamaicaVM (премия BMW «Passion for Innovation»)

  13. classfiles classfiles classfiles objectfile JVMlibrary classfiles classfiles settings Jamaica Builder stand-aloneapplication profilingdata Пример реализации: AICASJamaicaVM • Статический компилятор с профилированием • Повышение быстродействия • Сокращение времени выполнения и пространства памяти • «Smart Linking»- в приложение включаются только нужные компоненты • Детерминированная «Уборка мусора» (RTGC) • GC не прерывает задачи реального времени • Нет пауз при выполнении приложения

  14. Adobe Flash • Основные достоинства технологии: • Быстрота разработки и тестирования сложных графических интерфейсов благодаря мощным инструментам Adobe • Более высокая переносимость кода, чем в Java (нет зависимости от доступности отдельных API) • Использование векторной графики: • Трансформация (вращение, масштабирование и т.п.) без снижения качества • Добавление анимации не приводит к увеличению размера файла • Возможность использования разработанных для настольных систем приложений с минимальными модификациями

  15. Adobe Flash • Особенности поддержки • Adobe Flash в QNX Neutrino: • - Поддержка многооконных приложений на основе менеджера композиции OpenKODE • - Ускоренная перерисовка на основе OpenGL ES • Поддержка «родного» API через интерфейс QNX Action Script Extensions (ASE) • - Возможности удалённого доступа

  16. public boolean equals(Object o) { if (! (o instanceof Hello)) return false; else { return true; } } int i; while(1) { sem_wait(&Sem); sleep(1); } pthread_exit(NULL); mov al,02h clc int 0f2h jnc l1 call __kererr l1 mov al,03h clc int 0f2h jnc l1 call __kererr l1 UML/DSL Assembler C C++, Java Борьба со сложностью ПО –повышение уровня абстракции Уровень абстракции Время

  17. UML-профили в качестве DSL SPT, HIP, MITRE, AUTOSAR, … Эффект 1: Перемещение НОУ-ХАУ из программного кода в шаблоны и «картинки» Эффект 2: Упрощение тестирования и сопровождения ПО • Специфичные стереотипыUML-профиля HIP («HIApexBlackbord», «HIApexBuffer»и др.) обеспечивают отображение на UML-модель APEX-паттернов отказоустойчивой коммуникации (ARINC 653-2) • Реализация APEX-паттернов должна предоставляться фрэймворком

  18. Выводы • Системы на базе QNX,как правило, весьма сложны и часто интегрированы с другими системами • Middleware решает типовые проблемы для различных частей систем и разного класса задач • Middleware позволяет разрабатывать более сложное ПО с прежними людскими ресурсами • Middleware хорошо интегрируется с инструментами MDD (UML-профили ) для повышения уровня абстракции разработки • На платформе QNX помимо мощных штатных механизмов доступно различное ПО middleware, адаптированное для построения АС реального времени

  19. Спасибо за внимание! Прошу задавать вопросыСергей ЗыльООО «СВД Встраиваемые Системы» www.kpda.ru forum.kpda.ru

More Related