Update Manager client (umclient)
The UM client is responsible for communication with CM (controller). It uses gRPS as transport. See communication protocol in the updatemanager.proto file. When UM starts, it registers with CM and opens the stream. Then it sends the current update status using the UpdateStatus stream and receives commands from CM using the CMMessages stream. The UM client receives commands from CM and calls the appropriate umhandler API, gets the update status from umhandler and sends it to CM. The update status includes information about all already installed components and their versions as well as information about the components being installed and their versions.
See below a sequence diagram for the CM communication.