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

Для того чтобы это стало возможным, сгенерированный код обычно использует некую middleware библиотеку, реализующую реальные возможности для взаимодействия. Для каждого квадратика модели генерируется proxy/stub, который реализует удаленное взаимодействия с использованием данной библиотеки.
CommonAPI C++ - пример такой библиотеки от GENIVI Aliance (альянс производителей автомобилей по разработке open source ПО). С использованием данной библиотеки можно создавать код, не привязанный к конкретной механизму взаимодействия.
Проект CommonAPI C++ включает кодо-генератор на основе Franca IDL (см. предыдущий пост). Данный кодо-генератор позволяет генерировать все необходимые stubs и proxy для распределенного взаимодействия объектов.

Для того чтобы это стало возможным, сгенерированный код обычно использует некую 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



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