Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cross-platform, cross-language messaging system?

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?

like image 571
Hanno Fietz Avatar asked Nov 03 '08 13:11

Hanno Fietz


People also ask

What is a cross-platform language?

A cross-platform language is developing computer software, which is developed to. work across multiple computing platforms.

What is cross-platform in python?

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.

What is a message broker software?

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.

Is Java a cross-platform language?

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.


2 Answers

activemq

http://activemq.apache.org/cross-language-clients.html

Supports all the following protocols

  • OpenWire
  • REST
  • Stomp
  • WS Notification
  • XMPP
  • AMQP

Thanks Paul

like image 112
Paul Whelan Avatar answered Nov 26 '22 19:11

Paul Whelan


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

like image 35
Mat Nadrofsky Avatar answered Nov 26 '22 17:11

Mat Nadrofsky