Architektura logiczna

AAOS SDV zapewnia architekturę zorientowaną na usługi i dane. Użytkownicy wchodzą w interakcję z systemem za pomocą biblioteki klienta oprogramowania pośredniczącego, wspomaganej przez język definicji interfejsów usług pojazdu (VSIDL). Ukrywa to szczegóły infrastruktury niskiego poziomu, dzięki czemu programiści mogą skupić się na komunikacji wysokiego poziomu i jednostkach wdrożenia.

Modele komunikacji

Logiczna komunikacja w SDV jest definiowana przez tematy i kanały.

Tematy

Tematy są używane do komunikacji zorientowanej na dane (publikowanie/subskrybowanie). Zamiast wyszukiwać konkretnych wydawców, użytkownicy wchodzą w interakcję z wiadomościami publikowanymi w nazwanych tematach.

  • Identyfikator: temat jest identyfikowany przez unikalny ciąg znaków.
  • Typ danych: wiadomości publikowane w temacie są definiowane za pomocą protokołu protobuf.
  • Oddzielenie: subskrybentów interesuje typ wiadomości i nazwa tematu, a nie tożsamość ani lokalizacja wydawcy. Wielu wydawców może publikować w tym samym temacie, co umożliwia komunikację „wiele do wielu”.

Kanały

Kanały są używane do komunikacji opartej na zdalnych wywołaniach procedur (RPC). Użytkownicy wywołują metody usługi w określonym kanale, nie wiedząc, który serwer obsługuje żądanie.

  • Identyfikator: kanał jest identyfikowany przez unikalną nazwę (np. main-control).
  • Typ usługi: usługi RPC są identyfikowane przez ich pełną i jednoznaczną nazwę usługi protobuf.
  • Abstrakcja: oprogramowanie pośredniczące zajmuje się znajdowaniem odpowiedniej instancji serwera dla danej usługi i kanału.

Wdrażanie i cykl życia

Jednostki w tej sekcji określają, jak oprogramowanie jest pakowane, autoryzowane i tworzone w środowisku SDV.

Pakiet usług

Pakiet usług to grupa powiązanej logiki biznesowej, która pełni 2 główne role:

  1. Jednostka wdrożenia: pakiety usług są wdrażane jako część pakietu SDV, który jest plikiem APEX i najmniejszą jednostką aktualizacji oprogramowania.
    • Każdy pakiet usług jest jednoznacznie mapowany na pojedynczy proces Linux na maszynie wirtualnej SDV w czasie działania i jest nazywany instancją pakietu usług.
    • Pakiety usług są wymienione w pliku manifestu pakietu SDV, który zawiera metadane, w tym nazwę i zasady autoryzacji.
  2. Jednostka autoryzacji: uprawnienia są przyznawane całemu pakietowi usług. Pakiet usług jest autoryzowany do:
    • publikowania lub subskrybowania określonych tematów (dla danego typu wiadomości);
    • obsługiwania lub wywoływania określonych kanałów (dla danego typu usługi).

Instancja pakietu usług

Instancja pakietu usług to instancja pakietu usług wczytywana w czasie działania.

  • Każda instancja pakietu usług jest śledzona i identyfikowana przez menedżera cyklu życia SDV (LCM).
  • Uruchomienie instancji pakietu usług jest wywoływane przez orkiestratora SDV, a uruchamianie i śledzenie odbywa się za pomocą LCM SDV.

Pakiet SDV

Pakiet SDV to najmniejsza jednostka aktualizacji oprogramowania, która:

  • jest plikiem Android Pony EXpress (APEX);
  • zawiera co najmniej 1 pakiet usług;
  • jest aktualizowana w całości, co oznacza, że wszystkie pakiety usług w pakiecie SDV są aktualizowane jednocześnie.

Cały kod w pakiecie SDV pochodzi z tego samego źródła zaufania (tego samego wydawcy oprogramowania).

W różnych maszynach wirtualnych SDV mogą występować różne wersje tego samego pakietu SDV.

Szczegóły implementacji

W sekcjach poniżej opisujemy szczegóły implementacji warstwy transportowej SDV.

Informacje ogólne: jednostki usług

Chociaż programiści wchodzą w interakcję głównie z tematami i kanałami, jednostki usług pozostają podstawowym mechanizmem rejestracji i wykrywania w stosie komunikacyjnym SDV.

Jednostka usługi reprezentuje pojedynczy punkt końcowy, np. serwer RPC lub wydawcę. Biblioteka klienta oprogramowania pośredniczącego (mw::clientlib) zajmuje się rejestracją i wykrywaniem tych jednostek usług.