The surprising thing, to me at the least, whenever there’s a huge story all over the technology pages of the BBC or the Guardian about the BlackBerry Messenger/email services being down for huge periods of time, is that people are surprised at this.
The internet has flourished and works so very well because it is decentralized, based on open protocols, and systems working together to let people communicate. Let’s just compare standard email with the BlackBerry flavour for a moment.If you send an email, your email client talks to a server in a protocol called SMTP, the Simple Mail Transfer Protocol. The server will then take that SMTP request and talk to the server which the target domain has nominated to be the mail server for that domain. This is found out using the open Domain Name System, and supports simple load balancing and failover by virtue of multiple MX records and priorities. The servers then have a quick conversation via SMTP, and at some point (assuming all goes to plan), your email is now sat in someone’s mailbox. Their client will talk to the server regularly (using POP3 or IMAP) and will pick up on the new email that just came in, and tell them about it.
These protocols are all completely standard, simple and free to implement. They run over the standard TCP/IP network layer that makes up the internet, and there’s no centralization (except in the case of DNS, which is still massively decentralized compared to BBM). Everything supports full end-to-end encryption using the secure socket layer, a much more robust system for securing transmissions than BlackBerry’s unencrypted transports and symmetric keying.
Now let’s look at a typical BlackBerry user and compare them to an Android user (or iPhone, or Windows Phone, or even Palm Pilots – the protocols existed back then). Both are trying to send and receive emails. Most people rely on a free provider for their email, like Gmail or Hotmail, but many people run their own mail servers or use organizational servers (university mail servers, your office’s mail server, and so on). There’s a vast web of servers, all cooperating together to make things work. Enter the BlackBerry- you now remove those protocols from the device and instead put them into a mail server at the other end. This server talks SNMP to the rest of the world, and even speaks IMAP/POP to your mail server, behind the scenes- but access to your mails from your device requires the BlackBerry go-between to be functional. If that single point of failure fails, it’s all over- no connectivity for you.
So why would, on paper, you want to use the BlackBerry service? Well, BBM is an additional feature- group messaging based on… the BlackBerry equivalent of MAC addresses? Huh. Okay, so we’ve got a comms methodology from the 90s which basically implements a dumbed-down version of IRC or Jabber for your phone. Not like we’ve had that on other platforms for as long as I can remember – I was using Jabber on my phone years ago to talk to people on the other side of the world about EVE Online fleet operations instead of paying attention in maths lessons. Again, things like IRC and Jabber are open standard protocols, free to implement, and implemented in a manner that is widely distributed with little to no single points of failure. IRC was designed for the days of acoustic couplers, and is still used widely by millions of people. The BBM protocols aren’t even secure- they’re encrypted, but the key used for encryption is shared amongst all phones. It’s a bog standard symmetric crypto cipher. This means if you can convince a phone that it’s actually another phone, you can read any other person’s messages and send messages as them. Contrast with IRC – the network is still assumed secure (just as with BBM) and unencrypted, but links between servers and links between client and server can all use the secure socket layer- a very secure protocol.
On top of this we’ve got the push email feature – which lets you get emails sort-of-instantly (actually delayed unless your organization runs a BlackBerry Messaging Server, as I understand it) pushed to your phone instead of having to have the phone fetch new emails. Granted, that’s quite a nice feature. But it’s not a game-changer to the extent where I’d be willing to sacrifice my email connectivity on my device to have it- for days at a time, no less. In addition, there’s open tools that will do this for you on Android and iPhone. I remember back when I was first using a Windows Mobile PDA, I set up push email in the course of a few days of hacking around with an off-the-shelf product. This was back in the days of the XDA, when push email was just kicking off, and it wasn’t too hard to make work. These days it’s even easier.
BlackBerry falls over because they are a quite heavily centralized company and their infrastructure is not designed for the modern age. Note that the BlackBerry announcement about their recent outages referred to “Europe, the Middle East and Africa”. One problem can hit all those users. That’s not a well-designed system, it’s a legacy system shoehorned in from the days when BlackBerry Messaging Server was the sort of thing you ran if you were a big company. It is bound to fail and when it fails it pisses off many millions of users.
The question of why people decided to go with BlackBerry remains a mystery to me- I honestly don’t know why people would choose a BlackBerry over any other phone. I have spent countless hours debugging and fixing broken BlackBerries for friends, and many more hours still trying to explain how to use them to other friends (who inevitably end up sending them back and getting a ‘droid). Perhaps there’s some secret feature I’m not seeing, but it just seems to me that the hardware’s mediocre, the software’s awful at best, and the infrastructure is flaky. Why choose that over solid and varied hardware choice, great software with flexibility, and open infrastructure with no reliance on single providers or services? I know which one of these combinations has given me years of flawless service with not one day without email.