Layered Architecture¶
iceoryx2 is organized into a layered architecture, which enables a
clear separation of concerns and modular design. Each layer builds upon
components provided by lower layers.
Software Layers in the Architecture of iceoryx2¶
- Ready-Made Services (
iceoryx2-services) Optional services that applications can build on, such as the discovery service, which provides an interface for applications to be notified when services are created, changed or removed. They run in separate processes or are embedded in applications.
- Link (
iceoryx2-link) Extends
iceoryx2communication beyond its shared memory domain through a backend. The gateway backend connects to other middlewares, and the tunnel backend connects to othericeoryx2systems.- User Toolkit (
iceoryx2-userland) Tools for developing, testing and debugging
iceoryx2applications, such as record and replay.- User API (
iceoryx2) The public interface of
iceoryx2. It provides nodes that represent participants, services that connect them, ports that exchange data according to the messaging pattern of their service, and the waitset that drives application execution. Internally, it combines implementations of the concepts from the layer below into a working deployment.- Concept Abstraction Layer (
iceoryx2-cal) The concepts shared memory communication is built from, such as storage, channels and events. Each concept has multiple implementations, which are combined to make up an
iceoryx2deployment.- Building Blocks (
iceoryx2-bb) Algorithms, containers and utilities that are independent of
iceoryx2and shared memory communication. They form a standard library foriceoryx2that is suitable for certification.- Platform Abstraction Layer (
iceoryx2-pal) The functionality
iceoryx2requires from the platform it runs on. It currently comes in a POSIX flavor, implemented for all supported platforms.Further platforms are supported by implementing the abstraction with their native APIs.
Further Reading¶
Build an intuition for what shared memory communication entails.
Get familiar with the components used to set up communication.
Get familiar with how communication is extended beyond shared memory.