Inspirel banner

YAMI4 Frequently Asked Questions

Go back to the main page.

What is YAMI4?
What does it mean for YAMI4 to be asynchronous?
Are there plans to cover other languages or platforms?
Is YAMI4 available under the LGPL license?
Is YAMI4 useful for the XYZ application domain?
Can you compare YAMI4 to XYZ?


What is YAMI4?

YAMI4 is a message-oriented, asynchronous middleware for distributed systems. YAMI4 can be used as a communication "glue" or a "nervous system" that allows different programs to communicate effectively across the network.

It is a consistent set of libraries written for various programming languages and for several popular system platforms.

YAMI4 was created with distributed control systems in mind, but the resulting properties like small size and good scalability make it an attractive solution for a wide variety of systems. YAMI4 has been used not only in control and monitoring systems, but also as a communication layer for the backend of large and highly scalable website.

Please see the Types Of Middleware article for a more detailed description of where YAMI4 belongs in the ecosystem of middleware products.

What does it mean for YAMI4 to be asynchronous?

YAMI4 is asynchronous in all its data transfer operations, which means that the user code does not have to wait for them to complete and can safely continue processing while the data transfer is being handled in background. The asynchronous approach allows to perform parallel processing of many messages without introducing complexity at the code level with additional user threads and since it is being ensured by the design and construction of all implementation layers, it is also very scalable.

Are there plans to cover other languages or platforms?

YAMI4 is constantly evolving according to the real-life user requirements. It is therefore very likely that with time the YAMI4 set of libraries will be expanded to cover additional programming languages or to ensure portability to other system platforms.

Is YAMI4 available under the LGPL license?

YAMI4 is available with two different licenses (GPL and Boost) that together target a very wide spectrum of user's needs. The GPL packages are freely available for download from the main project webpage, whereas their Boost versions are supposed to drive the development and evolution of the project and are offered to those customers who need dedicated technical support.

The dual-license approach seems to be working very well for YAMI4, where two different sets of users can exist with mutual benefit. On one side the open-source community has access to the solid and proven technology which evolution is driven by real production requirements and on the other hand YAMI4 as a product is exposed to the potentially wide audience than can contribute valuable feedback and stimulate constant improvement of the product.

Is YAMI4 useful for the XYZ application domain?

YAMI4 was designed with distributed control and monitoring systems in mind and this is why it contains a rich set of features to address the specifics of real-time and embedded platforms. But in practice there is nothing particular that would prevent YAMI4 from being successfully used in any other application domain - apart from control systems existing users deal with large-scale social gaming, simulators or financial trading, so if YAMI4 can already support such a wide range of use cases, it can very likely support anything.

Can you compare YAMI4 to XYZ?

There is a separate article that presents a pretty comprehensinve comparison between YAMI4 and ZeroMQ.

Go back to the main page.