Mantıksal mimari

AAOS SDV, hizmet odaklı ve veri merkezli bir mimari sunar. Kullanıcılar, Araç Hizmetleri Arayüzü Tanımlama Dili (VSIDL) yardımıyla ara katman yazılımı istemci kitaplığı aracılığıyla sistemle etkileşimde bulunur. Bu sayede düşük düzeydeki altyapı ayrıntıları gizlenir ve geliştiriciler üst düzey iletişim ile dağıtım öğelerine odaklanabilir.

İletişim modelleri

SDV'deki mantıksal iletişim konular ve kanallar tarafından tanımlanır.

Konular

Konular, veri odaklı iletişim (yayınlama/abone olma) için kullanılır. Kullanıcılar belirli yayıncıları keşfetmek yerine, adlandırılmış konularda yayınlanan mesajlarla etkileşim kurar.

  • Tanımlayıcı: Bir konu, benzersiz bir dizeyle tanımlanır.
  • Veri türü: Bir konuda yayınlanan mesajlar protobuf kullanılarak tanımlanır.
  • Bağlantıyı kaldırma: Aboneler, yayıncının kimliği veya konumuyla değil, mesaj türü ve konu adıyla ilgilenir. Birden fazla yayıncı aynı konuda yayın yapabilir ve bu sayede çoka çok iletişim sağlanır.

Kanallar

Kanallar, uzak prosedür çağrılarına (RPC'ler) dayalı iletişim için kullanılır. Kullanıcılar, isteği hangi sunucunun işlediğini bilmelerine gerek kalmadan belirli bir kanalda hizmet yöntemlerini çağırır.

  • Tanımlayıcı: Kanallar, benzersiz bir adla tanımlanır (ör. main-control).
  • Hizmet türü: RPC hizmetleri, tam nitelikli protobuf hizmet adlarıyla tanımlanır.
  • Soyutlama: Ara yazılım, belirli bir hizmet ve kanal için uygun sunucu örneğini bulur.

Dağıtım ve yaşam döngüsü

Bu bölümdeki öğeler, yazılımın SDV ortamında nasıl paketleneceğini, yetkilendirileceğini ve örneklendirileceğini tanımlar.

Hizmet paketi

Hizmet paketi, iki temel işlevi olan bir grup ilgili iş mantığıdır:

  1. Dağıtım birimi: Hizmet paketleri, APEX dosyası olan ve yazılım güncellenebilirliğinin en küçük birimi olan SDV paketi kapsamında dağıtılır.
    • Her hizmet paketi, çalışma zamanında bir SDV VM'sindeki tek bir Linux işlemiyle benzersiz şekilde eşlenir ve hizmet paketi örneği olarak adlandırılır.
    • Hizmet paketlerine, ad ve yetkilendirme politikaları gibi meta verileri içeren SDV paketi manifestinde referans verilir.
  2. Yetkilendirme birimi: İzinler, hizmet paketinin tamamına verilir. Bir hizmet paketi şunlar için yetkilendirilir:
    • Belirli konuları (belirli bir mesaj türü için) yayınlayın veya bu konulara abone olun.
    • Belirli kanallara (belirli bir hizmet türü için) hizmet sunma veya bu kanalları çağırma.

Hizmet paketi örneği

Hizmet paketi örneği, hizmet paketinin çalışma zamanında yüklenen bir örneğidir.

  • Her hizmet paketi örneği, SDV Lifecycle Manager (LCM) tarafından ayrı ayrı izlenir ve tanımlanır.
  • Hizmet paketi örneği başlatmaları, SDV Orchestrator tarafından tetiklenir ve SDV LCM tarafından başlatılıp izlenir.

SDV paketi

SDV paketi, yazılım güncellenebilirliğinin en küçük birimidir ve:

  • Android Pony EXpress (APEX) dosyası.
  • Bir veya daha fazla hizmet paketi içerir.
  • Tek seferde güncellenir. Bu, bir SDV paketindeki tüm hizmet paketlerinin tek seferde güncellendiği anlamına gelir.

Bir SDV paketindeki tüm kodlar aynı güvenilir kaynaktan (aynı yazılım yayıncısı) gelir.

Aynı SDV paketinin farklı sürümleri farklı SDV VM'lerinde bulunabilir.

Uygulama ayrıntıları

Aşağıdaki bölümlerde SDV aktarım katmanının uygulama ayrıntıları açıklanmaktadır.

Arka plan: Servis birimleri

Geliştiriciler öncelikle konular ve kanallarla etkileşim kurarken hizmet birimleri, SDV iletişim yığınında kayıt ve keşif için temel mekanizma olmaya devam eder.

Hizmet birimi, bir RPC sunucusu veya yayıncı gibi tek bir uç noktayı temsil eder. Ara katman yazılımı istemci kitaplığı (mw::clientlib), bu hizmet birimlerinin kaydını ve keşfini arka planda gerçekleştirir.