easyIPC is an Inter-Process Communication that enable us to communicate with various resources in a system as if they where local. It also cover functionality like plug & play for resources & devices, hot-swap, dynamic resource allocation and redundancy as well as a concept of guarantee of service. The intention is that you connect your application to easyIPC and expect things to work.
easyIPC implement a pragmatic version of the OSI model. We do not implement the pure OSI model, but we follow some of the core principles because they are needed.
This comparison between easyIPC layers and OSI model is not exact. Due to the nature of embedded designs we need to keep things as simple as possible while we implement a minimum of infrastructure to secure the functionality we want.
Smart SPI, RS-X and CAN-X are layer 2 links. Their only responsibility is to transport generic data between two nodes and maintain that link.
Stream routing is a small layer that will look-up DID & SID, replace them and forward messages either to a different Link or to an application.
Managing Entity is a database maintaining status over the tree of devices and it’s resources. This is the more complex part where we provide plug & play, dynamic resource allocation, redundancy and all the complex features in easyIPC.
The API is a thin layer interfacing easyIPC into various applications and programming languages. On Linux this will be running as a daemon (Service on Windows) with applications connecting as they start/stop. On an embedded device we use a tighter technique written in C/C++.