Open Source Message Queuing System 350
psicode writes "John Davies has announced AMQ, an effort at JPMorgan Chase & Co. to create an open-source message queuing system that can compete with proprietary message systems like IBM MQSeries and Tibco/RV. The announcement was made at the
annual conference Web
Services on Wall Street during Davies' presentation on February 1. eWeek has an article today with more details and some funny statements about Red Hat, SuSE and Sun possibly integrating AMQ into their "kernel". If JPMorgan Chase & Co. follows through with their announcement and they come up with a suitable open-source license, AMQ could become the Apache of messaging systems."
Web services (Score:4, Funny)
yay
Re:Web services (Score:5, Informative)
Message-oriented middleware (MOM)is broard term encompasing a messaging system that may be sychronous or asynchronous. MQ-Series runs on over 30 platforms and allows developers to integrate apps on wildly differnet systems. How would you get an app on a Tandam-Hymalaya nonstop machine to talk to an AS400, then pass the results off to Linux box as well as supplying an audit trail to a Z/OS Mainframe?
Remember that some of these platforms might not even support TCP/IP at your site.
Hint: Yahoo Instant Messanger will be viewed as a sub-optimal solution.
AC
p.s. I was just made redundant at work yesterday. (The company closed - everyone was let go) Time to stop posting and get another job....
Re:Web services (Score:2)
Re:Web services (Score:5, Informative)
Those who know history (esp. of distributed object systems) are watching SOAP and "Web Services" evolve and just laughing our asses off (or crying, depending on the situation). CORBA has been simplifying while SOAP has been complexifying. SOAP is now more complicated to develop for than CORBA.
Re:Web services (Score:2)
Or maybe I'm just smarting from working on a system where I had to configure network interfaces through CORBA. I still have nightmares about that one.
Re:Web services (Score:3, Insightful)
Re:Web services (Score:3, Interesting)
Active MQ (Score:5, Informative)
CodeHaus rocks, even if they are overly java biased for my tastes.
Re:Active MQ (Score:4, Informative)
Re:Active MQ (Score:4, Informative)
Any Java-centric system is useful to tie Java programs together, but not for firm-wide integration. The same story goes for platform-specific products. Unless your firm uses only one langauge/platform, in which case you're not likely to need queueing...
Re:Active MQ (Score:2, Informative)
Now to be fair, the broker itself was quite stable, and if you were just using java, I assume that everything would be ok. However we were using a bunch of different languages (legacy systems) and some of the adapters for those languages were a joke.
It became our developer in-joke. "Why did the system go down today? Sonic". Memory leaks, random crashing, threading problems, you name it. Caused us months of bug fixing. I'm sure (hope) that things
Re:Active MQ (Score:3, Informative)
Re:Active MQ (Score:3, Interesting)
I agree with the FP ?!?!?! (Score:4, Interesting)
It was cool though, we took about 6 different Apps on TOTALLY Different Platforms, 1 only HP UX, 1 , Two on Solaris ( on on 7 one on 2.51) One on DOS (Yes DOS it only ran there) and a couple on Windows, tied them all together through Vitria then hooked it up to a Web Front end, It was sooo slick the first VC that came to see our Proof of Concept (which was totally functional )gave us 15 Mil in VC
But alas another DotCom fatality, we went from 12 employees to 165 in a year......can you say BAM
Re:I agree with the FP ?!?!?! (Score:3, Funny)
Gee, what a failure. I suppose it went bankrupt from the excessive cash inflow?
Article summary (Score:5, Funny)
Or ObjectWeb? (Score:3, Interesting)
Re:Or ObjectWeb? (Score:3, Informative)
"What Is Message Queuing?" (Score:5, Informative)
From http://www.developer.com/net/asp/article.php/3297
Re:"What Is Message Queuing?" (Score:4, Informative)
Re:"What Is Message Queuing?" (Score:3, Insightful)
<sarcasm>Really hard to do, if it is meant in the MQSeries way.</sarcasm> If MQSeries can't deliver a message, it puts it on a dead.letters.queue. I am not impressed.
Re:"What Is Message Queuing?" (Score:3, Interesting)
Re:"What Is Message Queuing?" (Score:2, Insightful)
Re:"What Is Message Queuing?" (Score:4, Informative)
Re:"What Is Message Queuing?" (Score:2)
Re:"What Is Message Queuing?" (Score:3, Insightful)
From what I've seen of MQ et al, they don't seem to offer that much
Re:"What Is Message Queuing?" (Score:3, Insightful)
Surprise, surprise, this sounds just like SMTP.
Ever had a situation where an SMTP server screws up the mail queue and deletes all the messages? Or the server goes down at the wrong moment and as a result all messages are delivered twice? Or a message gets stuck in a loop and gets sent over and over again, thousands of times until it fills the spool?
If that message happens to trigger a large financial transaction, that would be a bad thing.
Re:"What Is Message Queuing?" (Score:3, Interesting)
1. server screws up the queue - possible on anything with badly coded software
2. messages delivered twice - each message has a unique message-id, allowing the detection of duplicates.
3. message stuck in a loop - possible with any routable store-and-forward system
4. same message repeated multiple times - see #2
5. spool being filled - possible with any store-and-forward system
Sounds like the same issues rehashed, SMT
Re:"What Is Message Queuing?" (Score:5, Insightful)
It's not that this can't be done over SMTP, but that SMTP isn't practical for it - you'd need lots of extra data in the headers, and applications supporting it.
Sure, you can write the support for all of it on top of SMTP, or FTP or SCP or HTTP or any protocol you can think of that can move data from one point to another, but the whole point of message queueing applications is that the heavy lifting has been done for you.
If you don't care about the transactions, or it doesn't matter if your messages can be delivered twice by mistake, or any of the other features of a proper message queuing system, then sure, go ahead and use a mail server - a previous place I worked we used Qmail with good results. It's a trade off, but the difference is huge.
Re:"What Is Message Queuing?" (Score:2)
Isn't this why we should be concerned with transactions, two-phase-commit, transaction managers, and asynchronous commit replies? Submit request, continue processing, and if you don't hear back about your commit for a while, do something about it? I dunno. If you want reliability, you need some way to audit your process to make sure things are actually happening as reported. Admittedly two-phase-commit has issues (
Re:"What Is Message Queuing?" (Score:3, Informative)
Why is that? An async message can be sent to a JMS topic with a durable subscriber... just because the subscriber is offline doesn't mean the message isn't delivered. It's queued for delivery until the subscriber is online again, and the message is removed from JMS when the client explicitly acknowledges receipt.
Re:"What Is Message Queuing?" (Score:3, Insightful)
-molo
Re:"What Is Message Queuing?" (Score:5, Informative)
So, no, not really like SMTP. Though SMTP is, I guess, a loose metaphor for how MQ servers work. That said, Exchange has nothing to do with it. The SMTP/POP3/IMAP model is just a little too much overhead for most message queue applications.
Of course, the real problem with your statement is that asynchronous messaging doesn't in fact preclude reliability, and indeed, the word asynchronous/synchronous and reliability are more or less completely different topics and wholly unrelated.
Most MQ servers persist undeliverable messages until such time as the destination peer (or the whole of the registered subscriber list) is available and ack's receipt of the message in question. All "asynchronous" means is that library A can send a message and continue on without ever caring about -when- the message is delivered.
Using the manufacturing/procurement example again, you can see why it would be stupid for manufacturing to walk their ordering message over to procurement, then wait around for the mail clerk to show up, take the message, and acknowledge it's been received. This would be a "synchronous" message transmission. Surely, it's easier to just leave it in an "inbox" for the clerk to pick up later (send the message asynchronously).
As for reinventing the wheel, I largely agree. Most large scale applications are being rolled out in J2EE or
The only thing I can see as being beneficial is a new MQ implemented with interaction entirely in XML-RPC, etc
See XMLBlaster for message queueing with XML-RPC (Score:3, Informative)
It's been out for five years on freshmeat, and supports CORBA, RMI, XML-RPC, nativ socket, or persistent HTTP.
See the link at http://freshmeat.net/projects/xmlblaster/ [freshmeat.net].
Re:"What Is Message Queuing?" (Score:2)
If you've ever used MQ (or any other message-queueing system, such as Tuxedo queues), you wouldn't misunderstand the problem so badly.
"Asynchronous" means the message is potentially delivered at some future time, not necessarily immediately. "Transactional" means that once the sender has delivered the message to
Re:"What Is Message Queuing?" (Score:3, Interesting)
-molo
Re:"What Is Message Queuing?" (Score:3, Interesting)
Re:"What Is Message Queuing?" (Score:3, Informative)
POPFile::MQ (Score:3, Funny)
John.
Open Source Honesty and Ethics (Score:2, Funny)
MQSeries (Score:2, Troll)
My perception of MQ is that we would be better off throwing it away and FTPing files back and forth while using SAP's job control to kick things off. I cannot imagine how many weeks we have lost in a production environment because of some fiddly piece of junk involved in the MQ process decided to hiccup.
Re:MQSeries (Score:5, Informative)
My perception of MQ is that we would be better off throwing it away and FTPing files back and forth while using SAP's job control to kick things off.
Good luck with writing ACID transaction support, rerouting in case of failure, dead letter handling and enterprise scalability features. Then get busy convincing dozens of sysadmins to bust their firewalls open to allow the antiquated piece of crap that is the FTP protocol to get further than your office router.
Trying to replicate enterprise functionality with naive hacks makes no sense whatsoever. I pity the fool who gets to administer the kludge you leave behind when you switch jobs.
"A suitable open-source license"? (Score:2, Insightful)
If they want to be the Apache, then they'll have to use the Apache license too. Effects have causes.
-russ
I bet this really pisses off the copyright expansi (Score:3, Insightful)
This is what really pisses me off about the copyright expansionists. They don't want people to be able to easily develop software for free. Copyright expansionism, as pushed by groups like the "Progress and Freedom Foundation" is not about freedom, it's about protecting business against hobbyists and other "asymmetric competition." I bet it makes such groups' heads spin to think that one of the biggest corporations on Wall Street is now about to dive head first into open source development and that the result of this development could send shockwaves through a segment of the commercial software industry.
The freedom to write open source software is the same freedom to write closed source software. If you erode the foundation for the former, then you have no right to demand respect for the latter. That is why when the big copyright cartels lobby Congress, I see nothing wrong in doing things like buying academic licenses for software and taking them out into the real world. The copyright holder makes no profit on the academic license, only the seller does.
Re:I bet this really pisses off the copyright expa (Score:2, Insightful)
I really appreciate source code licenses that actually let you use the source code permanently such as BSD.
Copyright expansionist vehicles, such as GPL, end up costing too much in the long run.
Re:I bet this really pisses off the copyright expa (Score:2, Insightful)
GPL = something for something.
a camel (Score:4, Insightful)
Somewhere in IBM's headquarters there is a camel. A straw has just been placed on its back.
Check out TIP (Score:4, Interesting)
-Aaron
Re:Check out TIPC (Score:2)
Savings (Score:4, Insightful)
Re:Savings (Score:2)
Not saying there is anything wrong with, they are a company that
Re:Savings (Score:2)
Not true. Big blue has open sourced bits that act as a loss leader, much like the 'free' items at a store, if it will make them cash longer term. I'd watch for IBM to make a low end 'open source' MQ, and have the connecting libraries match up perfectly with the WebSphere MQ. Much like what they are trying to do with Apache derby (formerly Cloudscape) using the same JDBC dri
Flabbergasted (Score:4, Insightful)
Re:Flabbergasted (Score:4, Insightful)
The same could be said to summarize most of the Slashdot readers' comments.
I guess somebody just needs to say it: the article was crap, and Slashdot was the wrong forum for discussing it.
What about JBoss? (Score:2)
Re:What about JBoss? (Score:2)
According to the project plan [jboss.org] the goal is to have JMS for client-server structure communication, and use JGroups for peer to peer structure communication.
I highly recommend JGroups for your intermachine networking needs!
I think people are getting technologies confused.. (Score:2)
If a company was going to contribute that type of technology to the kernel, that would be awesome.
Pub/Sub & Point to Point (Score:2)
Re:Pub/Sub & Point to Point (Score:2)
Re:Pub/Sub & Point to Point (Score:2)
Horus/Ensemble? (Score:2, Interesting)
Horus is/was used to run the NYSE, and a prototype radar for the Aegis battlecruisers.
Why is it not good enough?
Re:Horus/Ensemble? (Score:2)
My open source message-queuing system! (Score:2)
Licensed under the GPL! Feel free to use it to queue all the messages you want!
(I hate it when people use totally generic terms like "message queuing" when they are actually referring to some much mor
Re:My open source message-queuing system! (Score:2)
And, yes, I do believe that if a software term is non-obvious to me, then it is probably non-obvious to most computer professionals.
please someone explain. (Score:4, Insightful)
"A message queue is a queue onto which messages can be placed."
thanks a fucking lot google
Re:please someone explain. (Score:3, Insightful)
MQ Advantage Is Mainframe Messaging! (Score:3, Interesting)
For distributive->distributive, web services is all you need.
Re:MQ Advantage Is Mainframe Messaging! (Score:2)
Queue Redux (Score:5, Insightful)
And that would be what, exactly? (Score:2)
Re:And that would be what, exactly? (Score:5, Informative)
Here at my workplace, we use "guaranteed messaging" to integrate disparate systems such as SAP R/3, as iSeries/AS400 running BPCS, a bespoke warehousing system. Messages (i.e., details of a transaction, for example an XML doc. containing details of a sales order) are transmitted between systems to keep them in sync. If the target system is down the messages are queued for delivery in the messaging system itself, and delivered later.
Not a great explanation, but I hope it helps.
Re:And that would be what, exactly? (Score:3, Informative)
What does it do? Virtually nothing. Just takes a few buytes of data and sends it from here to there. Thats the easy part - the hard part is that it does so with absolutely guaranteed results - if you send it, you know they will get it. Imagine chains of more or less reliable machines, software stacks and networks all linking together sender
Performance is key on Wall St, so no JMS (Score:2, Interesting)
What these firms all wanted as a key requirement was clean integration with C/C++, and extreme performance. We had to handle thousands of messages (ranging into megabytes each) per second, with full g
Re:Performance is key on Wall St, so no JMS (Score:2)
Re:Performance is key on Wall St, so no JMS (Score:2)
Re:Performance is key on Wall St, so no JMS (Score:2)
The related article about UDDI is more interesting (Score:2)
I have always thought that Discovery is the most interesting area of research on the Internet. The idea of applications seeking out each other, learning about their resources and interfaces, and hooking up and communicating, without any human intervention is fascinating.
What about XML Blaster? (Score:3, Informative)
I have never used it, but it's been available since a long time.
Heh (Score:3, Interesting)
The project was for life insurance industry (for a little known company named Worldinsure that spent over 2.5*10^7 dollars on Aeron chairs and plasma monitors and - surprise, surprise - went belly up.) The app. would ask hundreds of questions that needed to be populated page by page. On some page the app would have to generate a PDF file, and since the Adobe pdf generator would crash the JVM after a couple of uses, we desynchronized it.
I wrote a message queue that was generic enough to start whatever action that was appropriate for the message type. It was not too difficult, a relational db (Oracle) was used as the message storage mechanism and I had 2 different options for message retrieval - message polling from the java code and Oracle triggers. The tricky part was the multithreaded message queue processor that could start any action - a java class in a seperate safe thread. Every message had a status - New, InProgress, Failed. Messages could be setup to be retried with a retry-decrimenting counter, so a message would become 'Failed', once the retry counter reached 0. Message types had priorities assigned to them, so some messages would take priority over others. To make sure that all messages eventually were drained, there was also a priority timeout. Messages could be 'peeked at' and retreived. Once a message queue processor decides to retrieve a message, this message is not deleted, but marked with status 'InProgress', so that other processors would not pick it up as a new message.
The interesting side-effect of this design was that it was possible to run as many message queue processors as one wished, thus an application could spread the load onto multiple computers (this adds redundancy and scalability.)
All of this can be implemented quite easily to follow JMS standard, but JMS standard is even simpler (in terms of functionality) than what this designed allowed.
Re:Heh (Score:2)
Does this project have a web page? (Score:2)
Guaranteed delivery asynchronous messaging is... (Score:2)
Seriously, I would have to think a while to count the projects that I have used ISIS, JMS, etc. for. Asynchronous messaging makes architectures simpler.
ISIS supported "virtual synchrony": guaranteed order of deliver also.
I've used MQSeries a lot (Score:2)
What he neglected to mention was that each of those function calls takes *structures* as arguments...some of those structures had a dozen+ members.
To be fair, MQ is pretty slick; I wrote a connector between the webserver and an ES/9000 mainframe using
open-source message queuing system (Score:3, Insightful)
Why? (Score:3, Insightful)
I bet guys who make MQSeries must be nervous (Score:3, Insightful)
Things like MQ Series are bread-and-butter of many sales reps as there's no serious competition to their solution - I haven't talked to many banks, but those to which I did all use MQSeries.
OSS is moving from the edge to the data center, it's already half-way there. Five more years and banks will be able to get 80% of their apps under GPL license.
Re:"Kernel" (Score:3, Insightful)
Re:"Kernel" (Score:2)
I was thinking the same thing. Why would I want this in the kernel? (At least in the kernel proper.) It's an application. How would this benefit the desktop user? How would this benefit the embedded user? If it doesn't benefit all of these users, then it probably (IMHO) doesn't belong in the kernel. It does sound like it might make a dynamite module that someone might want to load if they have a need to schlepp around lots of data between databases (for example).
Re:"Kernel" (Score:2, Interesting)
Re:Messaging = IMing? (Score:2, Informative)
Re:Messaging = IMing? (Score:2, Funny)
Re:Messaging = IMing? (Score:5, Insightful)
But thanks for your concern. I'm done trolling for now, how about you?
Re:Messaging = IMing? (Score:3, Informative)
Might I suggest exercising your Google skillz?
Try these search terms:
message queuing
MQSeries
MSMQ
Java MQ
what is a message queue?
Thanks for your patience.
Re:Hasn't REST etc trumped these? (Score:2, Informative)
Implementing this across TCP/IP generally requires a lon-lived conenction, as you have seperate read/write/commit/backout operations that belong together. Doing so over HTTP is theoretically feasible, but a long-lived TCP connection makes it a lot easier. Compare to databases... insert/commit isn't over HTTP either.
Aren't both TCP services? (Score:2)
Re:Aren't both TCP services? (Score:2)
Re:I thought that was sendmail? (Score:4, Informative)
Think of it like a database where an application can write a record that can be read and committed by exactly one reader; however, if that reader crashes before committing, another reader can pick up that record and try to commit it, etc.
Financial services firms use this tie their many apps together.
Re:JMS (Score:3, Insightful)
Re:Jabber? (Score:2, Offtopic)
Please mod the TIPC reference further down to page too, it's as much off-topic and flamebait as my post. It's even a plug for his project.
Have a nice day
Re:Strength of Proprietary Systems (Score:2, Interesting)
You're throttled so that you don't kill the system.
Ok, so now put an API ontop where you are sending thousands of messages per second.
Now get really clever and have the API sign up for 1,000,000 AIM handles, pool them and round robin between them.