www.luxoft.com
Yevhen Beshkarov
C++ developer
Difference in
Architecture Based
on Event Loop and
CommonAPI
www.luxoft.com
General architecture of the majority the automotive projects
HMI
CTRL
SDK
HMI(Human machine interface) - this is our View.
The original source of all events associated with the
user.
CTRL(Controller) - this is our business logic. The
decision about what to do with the information coming
from the user and the SDK we accept on the
controller.
SDK - the lowest level of our architecture. Performs
many tasks to build a route, search, render, etc.
www.luxoft.com
The problem of communication
HMI
CTRL
SDK
Each component have own thread and there is no
way to get a pointer for a direct call. And if it does, it
will not be very safe.
What to do ???
www.luxoft.com
ITC on Event Loop
www.luxoft.com
CommonAPI
● Create a FrancaIDL file with the specification of an interface with methods and attributes.
● Generate code for client and service by starting the CommonAPI code generator.
● Implement the service by implementing the methods in the generated skeleton.
● Implement the client by creating proxies and calling these methods by using the proxy.
www.luxoft.com
ITC on CommonAPI
www.luxoft.com
Event Loop vs CommonAPI
➕ Simplicity
➖ Blocking
➖ Depends on the programming language
➕ Just implement IPC
➕ With fidl we can generate interfaces on
different programming languages
➕ Doesn't affect on runtime
➖ Increases building time
➖ Difficult configurable
www.luxoft.com
So what is the actual difference
• CommonAPI is the common solution for IPC and ITC communication
• CommonAPI can generate his interfaces on different programming languages
• CommonAPI rather cumbersome
www.luxoft.com
Questions

Yevhen Beshkarov "Difference in Architecture Based on Event Loop and CommonAPI"

  • 1.
    www.luxoft.com Yevhen Beshkarov C++ developer Differencein Architecture Based on Event Loop and CommonAPI
  • 2.
    www.luxoft.com General architecture ofthe majority the automotive projects HMI CTRL SDK HMI(Human machine interface) - this is our View. The original source of all events associated with the user. CTRL(Controller) - this is our business logic. The decision about what to do with the information coming from the user and the SDK we accept on the controller. SDK - the lowest level of our architecture. Performs many tasks to build a route, search, render, etc.
  • 3.
    www.luxoft.com The problem ofcommunication HMI CTRL SDK Each component have own thread and there is no way to get a pointer for a direct call. And if it does, it will not be very safe. What to do ???
  • 4.
  • 5.
    www.luxoft.com CommonAPI ● Create aFrancaIDL file with the specification of an interface with methods and attributes. ● Generate code for client and service by starting the CommonAPI code generator. ● Implement the service by implementing the methods in the generated skeleton. ● Implement the client by creating proxies and calling these methods by using the proxy.
  • 6.
  • 7.
    www.luxoft.com Event Loop vsCommonAPI ➕ Simplicity ➖ Blocking ➖ Depends on the programming language ➕ Just implement IPC ➕ With fidl we can generate interfaces on different programming languages ➕ Doesn't affect on runtime ➖ Increases building time ➖ Difficult configurable
  • 8.
    www.luxoft.com So what isthe actual difference • CommonAPI is the common solution for IPC and ITC communication • CommonAPI can generate his interfaces on different programming languages • CommonAPI rather cumbersome
  • 9.