I'm developing a set of applications that work together to create a system for processing metering data. There's several reasons I want to have them loosely coupled and the system should be extensible by third parties, so the apps will be tied together via messaging.
I'm looking for a messaging system that offers bindings in (at least) C#, Java and Python and supports messaging patterns like Publish-Subscribe, Guaranteed Delivery, Selective Consumer (like Peek in .Net Messaging).
As far as I could find out, there's nothing wrong with JMS or .Net Messaging, it's just that they are for .Net / Java only.
The system should give me control over which transport mechanism (Sockets, Message Queues, etc.) to use when setting up a channel. I want to be able to both scale out to remote machines and speed things up with local transport facilities.
If I can't find anything suitable, I'll have to roll my own. I'd probably use Google's protocol buffers for serialization. If anybody has other recommendations for technology options, fire away.
Oh, yes - and I would like to have optional encryption on a per-channel or per-message basis.
ETA: Thanks for all the quick replies. I'm working my way through the docs & propaganda now. Has anybody used the technologies below, and for what / with what results?
A cross-platform language is developing computer software, which is developed to. work across multiple computing platforms.
Python is a cross-platform, interpreted, object-oriented programming language that is perfectly suited for Rapid Application Development, scripting, and connecting existing components together. Python uses a simple, easy to learn syntax, which focuses on readability to reduce the overall cost of program maintenance.
A Message Broker is a software that allows applications, systems, and services to communicate and exchange data. This is accomplished by the message broker by translating messages between formal messaging protocols.
Java is cross platform because a program's source code is compiled into an intermediate "bytecode" language. The bytecode is then executed by a Java Virtual Machine (Java interpreter) that was written for that particular hardware platform.
activemq
http://activemq.apache.org/cross-language-clients.html
Supports all the following protocols
Thanks Paul
SonicMQ might be a tool you're looking for. I know they are heavy into Progress but that they also support other language alternatives as well and are a leading player in the Messaging sector.
Sonic Software
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With