понедельник, 21 ноября 2016 г.

Создание распределенного ПО с помощью Franca IDL и CommonAPI C++

Часто "два взаимодействующих квадратика" на уровне модели ПО после генерации кода должны стать двумя объектами, размещенными на различных процессорах/процессах/ядрах и взаимодействующих друг с другом с использованием некого протокола.



Для того чтобы это стало возможным, сгенерированный код обычно использует некую middleware библиотеку, реализующую реальные возможности для взаимодействия. Для каждого квадратика модели генерируется proxy/stub, который реализует удаленное взаимодействия с использованием данной библиотеки.

CommonAPI C++ - пример такой библиотеки от GENIVI Aliance (альянс производителей автомобилей по разработке open source ПО). С использованием данной библиотеки можно создавать код, не привязанный к конкретной механизму взаимодействия.

Проект CommonAPI C++ включает кодо-генератор на основе Franca IDL (см. предыдущий пост). Данный кодо-генератор позволяет генерировать все необходимые stubs и proxy для распределенного взаимодействия объектов.
Краткая характеристика CommonAPI C++
- основана на с++ 11
- реализация с использованием шаблонов 
- тесно интегрирован с GENIVI Franca IDL
- наличие кодо генераторов для proxy и stubs
- интеграция с различными IPC протоколами 
С использованием Franca IDL и Common API C++ прикладной программист создает прикладные компоненты, а механизмы распределенного взаимодействия вынесены на кодо-генерацию и библиотеку Common API C++

 Вот так выглядит вызов сервиса HelloWorld на стороне клиента

А вот так выглядит создание и регистрация сервиса HelloWorld на стороне сервера
См HelloWorld example

Комментариев нет:

Отправить комментарий