A couple of days ago I was inspired by a post that I read online about using instant messaging protocols for building web applications and actually any kind of application that has a client server architecture. It seems like a really good idea.
Rather than writing code to deal with hacking http to behave interactively IM protocols already have that solved. They have servers that are proven to be scalable (think of how many users are logged on to MSN at any one time) and they are immediate. Plus they offer a bunch of other useful features.
Consider that I might want to set up a system where I could farm work off to several task machines. With IM I could send commands in the message to the machine, I could send files, and be notified if the machine goes down (looses presence) and get immediate feed back from the machine when it’s done without having to poll for reports. Building the application in a P2P way rather than client server makes the logic simpler, and with a nice library it’s pretty easy to program.
I’m thinking about how I can work this into my job.