AAOS SDV מספק ארכיטקטורה ממוקדת נתונים ומכוונת שירותים. המשתמשים מקיימים אינטראקציה עם המערכת באמצעות ספריית הלקוח של תוכנת הביניים, בעזרת שפת ההגדרה של ממשק שירותי הרכב (VSIDL). כך נסתרים פרטים של תשתית ברמה נמוכה, והמפתחים יכולים להתמקד בתקשורת ברמה גבוהה וביישומי ישויות.
מודלים של תקשורת
התקשורת הלוגית ב-SDV מוגדרת לפי נושאים וערוצים.
נושאים
נושאים משמשים לתקשורת שמבוססת על נתונים (פרסום/הרשמה). במקום לחפש מפרסמים ספציפיים, המשתמשים מתקשרים עם הודעות שפורסמו בנושאים שנקראים בשם.
- מזהה: נושא מזוהה על ידי מחרוזת ייחודית.
- סוג הנתונים: הודעות שמתפרסמות בנושא מוגדרות באמצעות protobuf.
- ניתוק: המנויים מתעניינים בסוג ההודעה ובשם הנושא, ולא בזהות או במיקום של המפרסם. כמה בעלי אתרים יכולים לפרסם באותו נושא, וכך מתאפשרת תקשורת רבים לרבים.
ערוצים
הערוצים משמשים לתקשורת שמבוססת על קריאות לשירות מרוחק (RPC). המשתמשים קוראים לשיטות שירות בערוץ ספציפי בלי לדעת איזה שרת מטפל בבקשה.
- מזהה: ערוץ מזוהה באמצעות שם ייחודי (לדוגמה,
main-control). - סוג השירות: שירותי RPC מזוהים לפי שם השירות המוגדר במלואו ב-protobuf.
- הפשטה: תוכנת הביניים מטפלת במציאת מופע השרת המתאים לשירות ולערוץ נתון.
פריסה ומחזור חיים
הישויות שמוגדרות בקטע הזה קובעות איך התוכנה נארזת, מקבלת הרשאה ומופעלת בסביבת ה-SDV.
חבילת שירותים
חבילת שירותים היא קבוצה של לוגיקה עסקית קשורה שמשרתת שני תפקידים עיקריים:
- יחידת הפריסה: חבילות שירות נפרסות כחלק מחבילת SDV, שהיא קובץ APEX והיחידה הקטנה ביותר של תוכנה שאפשר לעדכן.
- כל חבילת שירות ממופה באופן ייחודי לתהליך לינוקס יחיד במכונה וירטואלית של SDV בזמן הריצה, והיא נקראת מופע של חבילת שירות.
- חבילות השירות מוזכרות במניפסט של חבילת ה-SDV, שמכיל מטא-נתונים כולל שם ומדיניות הרשאות.
- יחידת ההרשאה: ההרשאות ניתנות לחבילת השירותים כולה. חבילת שירותים מורשית לבצע את הפעולות הבאות:
- פרסום או הרשמה לנושאים ספציפיים (עבור סוג הודעה מסוים).
- הצגה או הפעלה של ערוצים ספציפיים (לסוג שירות נתון).
מופע של חבילת שירות
חבילת שירותים היא מופע של חבילת שירותים שנטען בזמן הריצה.
- כל מופע של חבילת שירותים נרשם בנפרד ומזוהה על ידי SDV Lifecycle Manager (LCM).
- הפעלות של מופעי חבילות שירות מופעלות על ידי SDV Orchestrator, ומתחילות ומעקב על ידי SDV LCM.
חבילת SDV
חבילת SDV היא היחידה הקטנה ביותר של תוכנה שניתן לעדכן, והיא:
- קובץ Android Pony EXpress (APEX).
- מכיל חבילת שירות אחת או יותר.
- העדכון מתבצע בבת אחת, כלומר כל חבילות השירות בחבילת SDV מתעדכנות בבת אחת.
כל הקוד בחבילת SDV מגיע מאותו מקור מהימן (אותו מפרסם תוכנה).
יכולות להיות גרסאות שונות של אותו חבילת SDV במכונות וירטואליות שונות של SDV.
פרטי ההטמעה
בקטעים הבאים מפורטים פרטי ההטמעה של שכבת התעבורה של SDV.
רקע: יחידות שירות
מפתחים אמנם מקיימים אינטראקציה בעיקר עם נושאים וערוצים, אבל יחידות שירות נשארות המנגנון הבסיסי לרישום ולגילוי במערך התקשורת של SDV.
יחידת שירות מייצגת נקודת קצה יחידה, כמו שרת RPC או מוציא לאור. ספריית הלקוח של תוכנת הביניים (mw::clientlib) מטפלת ברישום ובגילוי של יחידות השירות האלה מתחת לפני השטח.