I'm looking for a software that would allow arbitrary applications to share arbitrary data amongst themselves. Data suppliers could communicate with the service to "publish" what data they have available. Consumers can ask the service for what data is available. Consumers do not necessarily work in a "subscribe" model, because there may be a large history of data desired to be downloaded.
Hopefully this would be via some C/C++ library, but if it's an open protocol of some sort, we can write the library for it.
Authentication mechanisms are also needed to ensure applications can only get the subset of data they're authorized to receive. Software would preferably be open source, since we'll almost assuredly need to tweak for our environment. Software will be installed locally, so we can't use a cloud service somewhere else. A lot of the software I've investigated thus far seems to lack at least several of the above requirements.
If there is a software that is close, doesn't meet all the requirements, but is open source, my organization can edit for our needs.