AAOS SDV предоставляет сервисно-ориентированную и датацентричную архитектуру. Пользователи взаимодействуют с системой через клиентскую библиотеку промежуточного программного обеспечения, поддерживаемую языком определения интерфейса транспортных услуг (VSIDL). Это скрывает низкоуровневые детали инфраструктуры, позволяя разработчикам сосредоточиться на высокоуровневых коммуникационных и развертывающих сущностях.
Модели коммуникации
Логическая коммуникация в SDV определяется темами и каналами.
Темы
Темы используются для коммуникации, ориентированной на данные (публикация/подписка). Вместо поиска конкретных издателей пользователи взаимодействуют с сообщениями, опубликованными в именованных темах.
- Идентификатор: Тема идентифицируется уникальной строкой.
- Тип данных: Сообщения, публикуемые в теме, определяются с использованием протокола protobuf.
- Разделение: Подписчиков интересует тип сообщения и название темы, а не личность или местоположение издателя. Несколько издателей могут публиковать сообщения по одной и той же теме, что обеспечивает связь «многие ко многим».
Каналы
Каналы используются для связи на основе удаленных вызовов процедур (RPC). Пользователи вызывают методы сервиса по определенному каналу, не зная, какой сервер обрабатывает запрос.
- Идентификатор: Канал идентифицируется уникальным именем (например,
main-control). - Тип службы: службы RPC идентифицируются по их полному квалифицированному имени службы protobuf.
- Абстракция: Промежуточное программное обеспечение отвечает за поиск подходящего экземпляра сервера для заданной службы и канала.
Развертывание и жизненный цикл
В этом разделе описаны сущности, определяющие порядок упаковки, авторизации и создания экземпляров программного обеспечения в среде SDV.
пакет услуг
Пакет сервисов — это группа взаимосвязанных элементов бизнес-логики, выполняющая две основные функции:
- Единица развертывания: Пакеты услуг развертываются как часть пакета SDV , который представляет собой файл APEX и является наименьшей единицей обновления программного обеспечения.
- Каждый пакет служб однозначно сопоставляется с одним процессом Linux на виртуальной машине SDV во время выполнения и называется экземпляром пакета служб .
- Ссылки на пакеты услуг содержатся в манифесте пакета SDV, который включает метаданные, в том числе имя и политики авторизации.
- Единица авторизации: Разрешения предоставляются всему пакету услуг. Пакету услуг разрешено:
- Публикуйте сообщения или подписывайтесь на определенные темы (для заданного типа сообщений).
- Обслуживать или вызывать определенные каналы (для заданного типа обслуживания).
экземпляр пакета сервиса
Экземпляр пакета служб — это экземпляр пакета служб, загружаемый во время выполнения.
- Каждый экземпляр пакета услуг отслеживается и идентифицируется индивидуально менеджером жизненного цикла SDV (LCM).
- Запуск экземпляров пакетов сервисов инициируется оркестратором SDV, а запуск и отслеживание осуществляются модулем SDV LCM.
пакет SDV
Пакет SDV — это наименьшая единица обновления программного обеспечения, и он:
- Файл Android Pony Express (APEX) .
- Содержит один или несколько пакетов услуг.
- Обновление происходит одновременно, то есть все пакеты услуг в одном пакете SDV обновляются сразу.
Весь код в пакете SDV поступает из одного и того же источника доверия (от одного и того же издателя программного обеспечения).
В разных виртуальных машинах SDV могут существовать разные версии одного и того же пакета SDV.
Детали реализации
В следующих разделах описаны детали реализации транспортного уровня SDV.
Предыстория: Сервисные подразделения
Хотя разработчики в основном взаимодействуют с темами и каналами, сервисные блоки остаются базовым механизмом регистрации и обнаружения в коммуникационной системе SDV.
Сервисный блок представляет собой отдельную конечную точку, например, RPC-сервер или издателя. Библиотека промежуточного программного обеспечения ( mw::clientlib ) обрабатывает регистрацию и обнаружение этих сервисных блоков.