Набор инструментов JAUS
Набор инструментов JAUS (JTS) — это инструмент разработки программного обеспечения для разработки программных сервисов, используемых в распределенной вычислительной среде . JTS предоставляет графический интерфейс пользователя (GUI) и вспомогательные инструменты для быстрого проектирования, документирования и реализации сервисных интерфейсов, соответствующих стандарту AS5684A Общества инженеров автомобильной промышленности , языку проектирования сервисного интерфейса JAUS (JSIDL). [1] JTS предназначен для поддержки моделирования, анализа, реализации и тестирования протокола для всей распределенной системы .
Обзор
[ редактировать ]Набор инструментов JAUS (JTS) представляет собой набор программного обеспечения с открытым исходным кодом спецификаций и инструментов разработки , сопровождаемый программной средой с открытым исходным кодом для разработки проектов совместной архитектуры для беспилотных систем (JAUS) и совместимых реализаций интерфейса для моделирования и управления роботизированными компонентами в соответствии с SAE- Стандарты AS4. СТС состоит из компонентов:
- Редактор сервисов на основе графического пользовательского интерфейса: Редактор сервисов (называемый в этом документе графическим интерфейсом пользователя) предоставляет удобный интерфейс, с помощью которого разработчик системы может указывать и анализировать формальные спецификации компонентов и сервисов, определенные с использованием языка определения сервисного интерфейса JAUS (JSIDL).
- Валидатор: синтаксический и семантический валидатор обеспечивает оперативную проверку спецификаций, введенных (или импортированных) пользователем, относительно синтаксиса JSIDL , а семантика интегрирована в графический интерфейс пользователя.
- Репозиторий спецификаций: репозиторий (или база данных), интегрированный в графический интерфейс пользователя, который позволяет хранить и поощрять повторное использование существующих формальных спецификаций.
- Генератор кода C++: Генератор кода автоматически генерирует код C++ , который соответствует формальным спецификациям в соотношении 1:1. Сгенерированный код включает в себя все аспекты службы, включая реализации маршаллеров и демаршаллеров для сообщений, а также реализации конечных автоматов для поведения протокола, которые эффективно отделены от поведения приложения.
- Генератор документов: Генератор документов автоматически генерирует документацию для наборов определений услуг. Документы могут быть созданы в нескольких форматах.
- Программная платформа: Программная платформа реализует спецификацию транспортного уровня AS5669A, [2] и предоставляет интерфейсы, необходимые для интеграции автоматически сгенерированного кода C++ с реализацией транспортного уровня. Существующие варианты транспорта включают UDP и TCP в проводных или беспроводных сетях, а также последовательные соединения. Транспортный уровень сам по себе является модульным и позволяет конечным пользователям добавлять дополнительную поддержку по мере необходимости.
- Плагин Wireshark: Wireshark Плагин реализует плагин для популярного анализатора сетевых протоколов под названием Wireshark. Этот плагин позволяет осуществлять захват в реальном времени и автономный анализ обмена сообщениями JAUS во время выполнения. Встроенный репозиторий упрощает повторное использование интерфейсов служб и трафика реализаций по сети.
Набор инструментов JAUS можно загрузить с сайта www.jaustoolset.org. На сайте также доступна пользовательская документация и форум сообщества.
История выпусков
[ редактировать ]После успешного бета-тестирования в июле 2010 года была выпущена версия 1.0 набора инструментов JAUS. Первоначальное предложение было сосредоточено на основных областях пользовательского интерфейса, генерации HTML- документов, генерации кода C++ и программной среды. Обновление версии 1.1 было выпущено в октябре 2010 года. Помимо исправлений ошибок и улучшений пользовательского интерфейса, эта версия содержала несколько важных обновлений, включая улучшения Валидатора, Wireshark подключаемого модуля и сгенерированного кода.
Выпуск JTS 2.0 запланирован на второй квартал 2011 года и в нем дополнительно усовершенствованы функциональные возможности набора инструментов:
- Проверка протокола. В настоящее время JTS обеспечивает проверку создания сообщений, чтобы гарантировать, что пользователи не смогут создавать недопустимые спецификации сообщений. Эта возможность в настоящее время не существует для определений протоколов, но она добавляется. Это поможет гарантировать, что пользователи создадут все необходимые элементы определения службы, и уменьшит количество ошибок пользователей.
- Генерация кода C# и Java. В настоящее время JTS генерирует кроссплатформенный код C++. Однако других языков, включая Java и C#, в распределенных системах резко возрастает, особенно при разработке графических клиентов для встроенных сервисов. использование
- Генерация документов MS Word: поддерживается вывод HTML и JSIDL, но встроенное создание MS Word на основе Office-Open-XML (OOXML) имеет преимущества с точки зрения представления вывода и простоты использования для интеграции с другими документами. Поэтому мы планируем интегрировать MS Word . создание сервисных документов
Кроме того, у команды разработчиков есть несколько дополнительных целей, которые пока не запланированы на конкретное окно выпуска :
- Проверка протокола: включает преобразование определения службы JSIDL в модель PROMELA для проверки с помощью инструмента проверки модели SPIN. Использование PROMELA для моделирования клиентских и серверных интерфейсов позволит разработчикам формально проверять сервисы JAUS.
- Опыт конечного пользователя: мы планируем провести официальное тестирование пользовательского интерфейса. Это включает в себя определение набора задач и вариантов использования, обращение к пользователям с различным уровнем опыта работы с JAUS для выполнения этих задач, а также измерение производительности и сбор отзывов для поиска областей, в которых общее впечатление от пользователя может быть улучшено.
- Улучшенное повторное использование сервисов: JSIDL позволяет наследовать описания протоколов, подобно тому, как объектно-ориентированные языки программирования позволяют дочерним классам повторно использовать и расширять поведение, определенное родительским классом. В настоящее время сгенерированный код «сглаживает» эти конечные автоматы в серию вложенных состояний, что обеспечивает правильное поведение интерфейса, но только в том случае, если каждый отдельный листовой (дочерний) сервис генерируется внутри своего собственного компонента. Это ограничивает повторное использование службы и может привести к копированию одной и той же реализации в несколько компонентов. Команда оценивает другие решения по наследованию, которые позволили бы нескольким конечным (дочерним) службам совместно использовать доступ к общему родительскому сервису, но в настоящее время этого подхода достаточно для удовлетворения требований базового набора служб JAUS. [3]
Домены и приложения
[ редактировать ]Набор инструментов JAUS основан на языке определения сервисного интерфейса JAUS (JSIDL), который изначально был разработан для применения в сообществах беспилотных систем или робототехники . Таким образом, JTS быстро получил признание в качестве инструмента для создания сервисов и интерфейсов, соответствующих публикациям SAE AS-4 «JAUS». Хотя статистика использования недоступна, набор инструментов был загружен представителями армии, флота, морской пехоты США и многочисленными оборонными подрядчиками. Он также использовался в коммерческом продукте под названием JAUS Expansion Module, продаваемом DeVivo AST, Inc.
Однако, поскольку схема JSIDL не зависит от обмениваемых данных, набор инструментов можно использовать для проектирования и реализации сервис-ориентированной архитектуры для любой среды распределенных систем, в которой используется обмен сообщениями в двоичном кодировании. JSIDL построен на двухуровневой архитектуре, которая разделяет уровень приложения и транспортный уровень, эффективно отделяя обмениваемые данные от деталей того, как эти данные перемещаются от компонента к компоненту.
Более того, поскольку сама схема является широко общей, можно определить сообщения для любого количества доменов, включая, помимо прочего, промышленные системы управления , удаленный мониторинг и диагностику , а также веб-приложения .
Лицензирование
[ редактировать ]JTS выпускается под лицензией BSD с открытым исходным кодом . Стандарт JSIDL доступен в SAE. Промежуточное программное обеспечение Jr, на котором основана платформа программного обеспечения (транспортный уровень), имеет открытый исходный код под лицензией LGPL . Другие пакеты, распространяемые вместе с JTS, могут иметь другие лицензии.
Спонсоры
[ редактировать ]Разработку набора инструментов JAUS спонсировали несколько организаций Министерства обороны США :
- Управление заместителя министра обороны по закупкам, технологиям и логистике / беспилотной войне.
- Исполнительный директор программы ВМФ «Литораль и шахта»
- Исполнительный директор программы ВМФ «Беспилотная авиация и ударное вооружение»
- Управление военно-морских исследований
- Исследовательская лаборатория ВВС
Ссылки
[ редактировать ]- ^ SAE AS5684A, «Язык определения сервисного интерфейса JAUS», Комитет по информационному моделированию и определению AS-4C, июль 2010 г.
- ^ SAE AS 5669A, «Транспортная спецификация JAUS/SDP», Сетевой экологический комитет AS-4B, февраль 2009 г.
- ^ SAE AS5710, «Набор основных услуг JAUS», Комитет по информационному моделированию и определению AS-4C, август 2010 г.
Внешние ссылки
[ редактировать ]- jaustoolset.org : домашняя страница набора инструментов JAUS.
- sae.org : Издатели семейства стандартов SAE AS-4 JAUS, включая JSIDL (AS-5684).
- jrmiddleware.org : домашняя страница промежуточного программного обеспечения JR, исходного кода LGPL, используемого JTS Software Framework.