As you know, I’m constantly on the lookout for new messaging technologies that compete or interact with with WebSphere MQ. I recently came across the web site of Boredom Research where they are testing out a new Snail Mail system based on…well…actual snails.
Each snail has a small glass capsule attached to its shell that is capable of storing a digital message. When the snail wanders within 3cm of the sending station, a message is transferred to the snail. At some point the snail will wander within 3cm of the receiver station at which point the message is transferred from the snail for further processing or to be forwarded to it’s final destination.
While at first glance this seems nothing like WebSphere MQ, there are many similarities if you look a little deeper under the covers. Both are types of MOM. WMQ is Message Oriented Middleware while Snail Mail is Message Oriented Molluskware. Both systems can be used to construct an ESB. WebSphere MQ is the preferred transport for WebSphere Enterprise Service Bus. Snail agents are the preferred transport for Enterprise Snail Bus. WebSphere MQ messages contain a header and a body, Snail Mail messages contain an actual head, tail and body. So all we are really talking about here are two varieties of asynchronous messaging.
There are of course many ways in which these messaging systems differ. WebSphere MQ supports a rich set of programming APIs whereas Snail Mail is mostly run with shell commands. Korn shell is preferred. I understand Bash causes major malfunctions, as do Ant scripts. Also, SOAP over WebSphere MQ is natively supported but there are still problems reported with SOAP over Snail. Likewise, WMQ supports all sorts of encryption. Smail Mail on the other hand supports only certain kinds of encryption. Apparently there are issues with any cipherspec that requires salt. What’s up with that?
Which leads me right to security. How secure is Snail Mail? Well, the first thing you notice is that a natural odor makes it resistant to sniffing techniques. Because the protocol operates over relatively small geographic distances, very strong physical security is possible and can make up for the rather primitive instrumentation built into the system. An attacker would have to literally break glass to obtain elevated access. However, once the physical security is breached, it is very easy to implement a mollusk-in-the-middle scenario. Due to long latency, complicated protocols such as a Diffie-Helman key exchange are impractical. The best bet here is to encrypt the payload prior to handing it off as a message. It is also worth noting that Snail agents are vulnerable to a number of viruses and have been known to be buggy at times. Another important consideration when comparing is that WebSphere MQ can automatically requeue poison messages and keep going like nothing ever happened. On the other hand, a poison message would bring a Snail Agent to its knees…that is if it had any.
I mentioned that the Snail Mail system is somewhat primitive compared to WebSphere MQ. For example, there is no automated garbage collection routine. The snail network must be hand-optimized on a regular basis or bugs quickly creep in. Also, consider that WebSphere MQ supports all of the standard messaging patterns. Snail Mail on the other hand, due to it’s long latency is best suited to fire-and-forget messaging. Also troubling is that capacity is somewhat limited in the garden-variety Snail agents. However rumors abound of a new S-Cargo line of Apple Snail Agents which are larger and can carry a bigger payload. These are just rumors but remember, you heard it here first!
In some cases, snail mail is actually more advanced than WebSphere MQ. For example, WebSphere MQ messages require clustering to achieve dynamic routing whereas Snail Mail uses nothing but dynamic routing. Similarly, with WebSphere MQ you need to configure event messages to get auditing whereas Snail Mail agents are configured by default to leave a trail. The Snail Mail system is also architected to grow organically as your network expands. Users will be pleased to note that Snail agents are inherently vertically scalable. They can scale almost any fairly smooth surface at any angle up to and approaching sheer vertical. Snail agents are also naturally horizontally scalable and this functionality is supplied in the base configuration. Within a week or so you may notice that the network is expanding on it’s own, adding new agents almost as if by magic.
Of course, no system is complete without a monitoring solution. WebSphere MQ has Tivoli Omegamon and Snail Mail has the Snail Cam. The Snail Cam does not interface to any of the common network monitors however it has the distinct advantage of an incredibly intuitive user interface. You simply look at the agents and can see where your message is at any given moment. Not that there is any correlation between the agent’s distance from the receiver and the ETA of the message, but it is comforting to be able to ascertain the physical location on demand.
So there you have it. All things considered, Snail Mail will not be giving WebSphere MQ (or any other middleware for that matter) a run for it’s money, but it is a viable alternative for high-latency, low-bandwidth messaging for shops that have more time than money. A LOT more time.