1.2SOTA Client / Device [DEV]
The Device, also called SOTA Client, interacts with the Core Server to receive, validate, and forward software packages from the Core Server to the Genivi Software Loader Manager.
The Figure below outlines how the SOTA Client integrates into the Genivi Software Management architecture. Green boxes are covered by this Statement of Work. All other components are for information purposes only and may be changed.
Figure 2. SOTA Client Integration into Genivi Software Management architecture.
The SOTA Client directly or indirectly interacts with several Genivi packages and components, as shown in Figure 2. The development of the SOTA Client will give insight and drive requirements on the rest of the Genivi architecture, helping Genivi to prioritise which components to complete first.
The components used by the SOTA Client are:
Connection Manager
The RVI uses the connection manager to setup and tear down WiFi connections.
Software Loading Manager
Used by the SOTA Client to install, upgrade, remove packages. The SOTA Client can also retrieve a report from the Software Loading Manager on the currently installed packages. Finally, the Software Loading Manager will send notifications to the SOTA Client about locally installed components (e.g. through USB sticks), allowing the Client to update the SOTA Server’s database with the new packages.
HMI
The HMI is invoked by the Software Loading Manager to list available software updates and retrieve an acknowledgement / refusal on installing them.
Diagnostics
The Diagnostic Logging and Tracing (DLT) is used to log events, warnings, and errors during the software management process.
Module Loader
The Module Loader interacts with external modules, such as radio tuners and electronic control units to re-flash them with software images received from the SOTA Client.
Package Manager
The Package Manager is used to install, update, and remove packages. It also maintains a database over currently installed software both in the IVI and on external modules flashed by the Module Loader. The Package Manger may also use the Persistence Manager to update the IVI file system with the software update content.
Life Cycle Controller
The Node Startup Controller is used to restart applications and services once they have been updated by the Software Loading Manager. The controller can also be used to reboot the IVI after it has had a kernel update or has been completely reflashed.
Persistence Manager
The Persistence Manager is used when a complete reflash of the IVI is necessary. It works through the file and partition system interface to reflash, validate, and activate a software image.
The interaction between the SOTA Client, the Core Server, and the Software Loading Manager are detailed in the following use cases from Appendix B:
UPDATE_NOTIFICATION [Server -> Client]
A notification indicating that one more software updates are available to be downloaded and installed on the Device.
TRIGGER_TRANSFER_START [Client -> Server]
Request the start of a software update download. Possibly sent after the user confirms the install on the HMI.
TRANSFER_START [Server -> Client]
Initiates the download
TRANFSFER_CHUNK [Server -> Client]
Transmits one block of the download image to the Device. The Device acknowledges all received and stored blocks.
TRANSFER_COMPLETE [Server -> Client]
Finalizes a download and starts the installation process on the Device.
INSTALL_SOFTWARE_UPDATE [Client]
Hands over the received software update to the Software Loading Manager for processing and forwarding to the Package Manager and/or the Module Loader (to update external modules such as Sirius XM tuners).
INSTALL_REPORT [Client -> Server]
Reports the success or failure of the software install, allowing the Server to update its installation tracking tables.
GET_ALL_PACKAGES [Client -> Server]
Allows the server to resynchronize its database tables by requesting a full list of currently installed software on a Device.
Appendix A – Requirement Specification, section DEV formalizes the device requirements surrounding the use cases above.
Share with your friends: |