April 23, 2009 at 4:46 pm
Tagged: Internet, Programming, software, Twitter
Imagine you’re running an organization that runs a bunch of applications on a bunch of different computers. These applications need to coordinate or exchange data over a network. So how do you hook them up?
The traditional solution is to hook each application to every other application that it needs to talk to; this architecture is technically known as a Big Ball of Mud. A better solution is to use something like a postal service that accepts standard-sized letters. The post office can handle things like forwarding addresses, queuing letters when mailboxes are full, broadcasting to all mailboxes, etc. This architecture is known as Message-Oriented Middleware.
There are lots of MOMs you can buy and run on your own servers. But if your applications are communicating over the web, there is no good option. (Email is much more complicated than it looks, HTTP requires running web servers all over the place, and nothing else is well-supported.)
Twitter, originally developed for use by humans, is a great option for web-based MOM. It allows an application to push messages out to queues that other applications can poll. It works with a variety of interfaces and there are libraries or example code in most programming languages. Granted, messages are restricted to 140 bytes, but that ought to be enough for anyone.
Ironically, Twitter’s performance sucks because it’s simulating MOM on database-centric architecture. It’s generally accepted that it needs to be rebuilt on a lower-level MOM.
no comments
RSS / trackback