Push. It's not just a verb that sends people careening down a flight of stairs. It's also not just for guys in suits diddling on BlackBerrys. You hear it featured on new iPhone apps every week. So, what is it?
Well, push describes a lot of things. Push is simply an action. Versus, say, pulling. Maybe that's horribly abstract, so try this: If information shows up on your phone or neural implant or messaging program without you (or your wares) asking for it—that's push. The info is pushed to you, versus you pulling it from the source. There are tons of ways push can be (and is) used.
Email's a pretty good starting point for grasping the difference between push and the other stuff. You probably know good ol' POP3—you log into your mail server and pull down new messages. Maybe it's on a frequent schedule, so it feels automatic, even instant, but you're still reaching out to the mail server every time to check and see if there's new mail to download.
IMAP is a little fancier than POP, where all of your folders and email are the same on all of your computers, phones and other gadgets, and any change you make on one shows up on the other, since it's all happening on a remote server somewhere. But with the standard setup, it's still the same deal—your mail program has to log in, see what's new, and pull it down. IMAP does have a pretty neat trick though, an optional feature called IMAP IDLE, that does push pretty well—it's what the Palm Pre uses for Gmail, for instance. Essentially, with IMAP IDLE, the mail server can tell whatever mail app that you've got new messages waiting, without you (or your app) hammering the refresh button over and over. When the app knows there's new messages, it connects and pulls them down, so it gives you just about the speed of push, without matching the precise mechanism.
While different systems do things differently (obvs), what true push services have in common is that they generally insert a middleman between you and the information source.
RIM's setup for the BlackBerry is probably the most sophisticated. When your BlackBerry registers with the carrier (which has to support BlackBerry), the details are handed to RIM's network operating centre, so the NOC knows where to send your mail. The NOC watches your mail server, keeps tabs on the phone's location, and pushes email through to your phone whenever you get new stuff.
What makes it push is that your phone's not actually polling a server for new messages to pull—it only receives them when they hit your inbox, and are then pushed to your phone by RIM's servers. This means you save a lot of battery life that'd be wasted by making the phone constantly hit the servers for updates. The flipside is that when RIM's servers blow up, you don't get email, since it's all routed through their system—hence the other panic that grips dudes in suits once every few months lately.
The other biggie is Microsoft, who has Direct Push, part of Exchange's ActiveSync. It's architected a little bit differently, so it doesn't need the precise kind of data about where your phone is that RIM's NOCs do: The phone or whatever you've got sends an HTTPS with a long lifespan to the Exchange server—if new mail arrives before it dies, the Exchange tells your device there's new stuff, so it should start a sync. After it syncs, the device sends out another long HTTPS request, starting it all over again.
Apple's weak-sauce substitute for multitasking works pretty similarly: The developer has something its wants to send an iPhone, when its application isn't actually running, like an IM. It sends the notification to Apple's push servers, which send the notification to the phone through a "persistent IP connection" the phone maintains with the servers. This connection, which is only maintained when push notifications are turned on, is needed to locate the phone, but still doesn't draw as much power as constantly pinging the mail server.
Of course, those aren't the only push systems around, and it's only getting more and more important as stuff gets shifted to the cloud. We haven't mentioned Android and Google Chrome, but both utilise push (or will) in different ways. Suffice it to say, Google Sync will soon be a major player in this game. But basically, all kinds of different data can be pushed—calendars, browser data, hell, even IM is a kind of push—and they all work more or less the same broad way.
Still something you wanna know? Send questions about pushing, shoving and pancake massacres to [email protected], with "Giz Explains" in the subject line.