FAMOUSO -- Family of Adaptive Middleware for autonomOUs Sentient Objects
FAMOUSO is a communication middleware. It provides event-based communication over different network types, according to the publisher/subscriber paradigm. In contrast to an address-based communication, an anonymous content-based communication is used, where events are exchanged between communication end-points. Publishers as well as subscribers are roles that applications have during the communication. Related to its characteristic as publisher, subscriber, or both, applications specify the kind of events they produce or consume. On that simple scheme, FAMOUSO provides spontaneous and dynamic many-to-many communication without any assumptions about synchrony of events. The communication is always asynchronous, avoiding control flow dependencies and enabling the autonomy of communication participants.
FAMOUSO is especially designed to allow seemless cooperation between smart sensors and actuators on different hardware platforms ranging from 8-bit micro-controllers up to 32-bit PC/Workstations and interaction over a broad variety of communication media like Controller Area Network, 802.15.4, AWDS, UDP-MultiCast. The core functionality is entirely written in C++, however, on application level FAMOUSO offers an unique API that is usable from different programming languages (C/C++, Python, Java, etc.) as well as engineering tools ( Matlab/Simulink, Labview).
Key features of FAMOUSO are:
- Publish/Subscribe middleware
- Uniform addressing of topics
- No control flow dependancies between Publisher and Subscriber
- Abstraction of the concrete underlying communiction media
- Hides heterogeneity
- Portability
- Adaptability
- Configurability
- Deployment of modern software technologies
FAMOUSO is the successor of the COSMIC (COoperating SMart devICes) middleware that was developed within the CORTEX project. Some basic ideas are borrowed from COSMIC but deeply reworked. For example one key feature of FAMOUSO in contrast to COSMIC is its high adaptability in many directions. FAMOUSO adapts to the platform, the network, meaning in the downwards direction and additionally upwards to varying application demands. Furthermore, FAMOUSO supports a composability concept that allows for testing whether quality of service specification can be fullfilled and in case of violations, providing the user with different options to treat it in the right way. A unique feature in this context is the integration of such tests into the compilation phase, which enables detecting sematic inconsistencies as early as possible (see publications ETFA2009 "MLCCA -- Multi-Level Composability Check Architecture for Dependable Communication over Heterogeneous Networks").