Franca IDL

Franca IDL — формально определённый текстовый язык описания интерфейсов. Входит в состав фреймворка Franca, предназначенного для определения и трансформации программных интерфейсов. Franca использует методы трансформации моделей для взаимодействия с различными языками описания интерфейсов, такими как язык интроспекции D-Bus, Apache Thrift IDL, Fibex Services.

Общие сведения
Franca IDL
Тип фреймворк для описания интерфейсов
Разработчик Itemis
Написана на Java
Последняя версия 0.13.0 (13 апреля 2018)
Репозиторий github.com/franca/franca
Лицензия Eclipse Public License 1.0
Сайт github.com/franca/franca/

История

Фреймворк Franca применяется для интеграции программных компонентов от различных поставщиков, разработанных с использованием разных сред выполнения, платформ и механизмов межпроцессного взаимодействия (IPC). Ключевым элементом является Franca IDL (Interface Definition Language) — текстовый язык для описания API.

Изначально проект Franca разрабатывался альянсом GENIVI (ныне COVESA, Connected Vehicle Systems Alliance) в 2011 году, как общий язык описания интерфейсов для стандартизации платформы In-Vehicle Infotainment (IVI). Первая публичная версия была выпущена в марте 2012 года и распространялась по лицензии Eclipse Public License версии 1.0. В 2013 году Franca была предложена как официальный проект фонда Eclipse[1]. Основную разработку ведёт немецкая компания Itemis[2].

Возможности

Franca IDL поддерживает ряд функций для спецификации программных интерфейсов:

  • объявление элементов интерфейса: атрибуты, методы, широковещательные сообщения;
  • схема версионирования с указанием основной и дополнительной версии;
  • описание динамического поведения интерфейсов на основе конечного автомата (Protocol State Machines, PSM);
  • хранение метаданных (например, автор, описание, ссылки) в структурированных комментариях;
  • определение пользовательских типов данных (массивы, перечисления, структуры, объединения, отображения, псевдонимы типов);
  • наследование для интерфейсов, перечислений и структур.

Архитектура

Помимо текстового языка IDL для определения интерфейсов, Franca предоставляет генератор документации в формате HTML.

Реализации

В настоящее время Franca реализована на двух платформах, которые описаны ниже.

Реализация на Eclipse

Franca реализована на платформе инструментов Eclipse (ПО). Для определения самого языка Franca IDL используется фреймворк Xtext. Это обеспечивает пользователям Franca целый ряд преимуществ при просмотре и спецификации интерфейсов ПО.

Реализация на JetBrains MPS

Существует также реализация Franca на базе JetBrains MPS — платформы для разработки языков (language workbench), построенной на основе платформы IDEA. Такая интеграция облегчает взаимодействие с предметно-ориентированными языками, разработанными в экосистеме JetBrains MPS. Кроме того, Franca для MPS построена на базе KernelF, что обеспечивает лучшую совместимость с DSL, основанными на KernelF.

Примечания

Ссылки