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
- Deployment of modern software technologies