thomas fitzgerald.net

Avatar

Macintosh, Apple, Technology, and Design Blog

Why Apple’s “Push Notification Service” is Not Enough to Replace Background Processing

There was much made of the fact that the recent beta 4 of the iPhone 2.1 software which removed until further notice, the much vaunted “push notification service”. The service which was touted by Apple as an “elegant” solution to the lack of background processing allowed by the iPhone SDK. Some were relieved that Apple wasn’t going to push (pardon the pun) out a half baked iPhone feature that could lead to more instability while others were decrying yet another Apple screw up. Overall though the delay was mostly welcomed as it would allow Apple to perfect the service before launching. Yet the news once again stirred mixed feelings about the whole idea of the service in the first place.

The idea behind the push notification service is a pretty novel concept and in many ways it seems like a good idea. If you’re not familiar with the plan, it is basically this: to avoid applications running in the background on the iPhone, and so that you can still get notifications of things like alarms and incoming instant messages, an application developer’s website can send a notification to a server at Apple which can then send a notice to the users iPhone. This is all well and good in theory, but there are some pretty big problems with this concept. First of all, in order for this to work, the developer is going to have to run their own server which collects the relevant data from a users iPhone and then acts on it to provide the notifications. This might be fine for something like instant messaging, where the information already exists online, and you are AOL for example, and already have a large internet service. How many small independent developers, whose apps would benefit from being able to provide notifications to its users, would have the resources to deploy an internet service for possibly hundreds of thousands of users if an app is relatively popular?

What about something like an alarm, or a to-do application that simply wants to tell you that you have a task due. In order for that to work the developer would have to maintain an online service that syncs with your iPhone and can then send the relevant reminders via the push notification service. It is completely ridiculous, that for the simple task of telling you that an appointment is due, for example, an app would have to rely on a complex multi tiered online service. This is complete overkill for something that happens on most other platforms as par for the course.

There are other problems with this too. One of the concerns about allowing apps to run in the background is that of battery life but if, as Apple puts it, they maintain a permanent IP connection to the iPhone, what is that going to do for your battery life? Having push email turned on already shortens the battery life significantly so what happens when there’s a whole bunch of other data flying back and forward as well. Surely a timer running in the background to let you know that an event is due would use less battery life than running the phones data connection the whole time? And then there’s a whole other can of worms when it comes to privacy issues. Will it be secure? Apple haven’t mentioned anything about that end of things? One would presume it would be, but considering MobileMe apparently isn’t secure you just don’t know. They are allowing developers to push text notifications to a users phone via the Apple servers, and what if that contains sensitive information? A task reminder for example, might have meeting details or something similar? Will that info be sent encrypted or in the clear?

And then there is the issue of reliability. A valid concern is Apple’s ability to actually run such a service. It may sound simple on paper but there’s the potential for hundreds of apps trying to send data at any one time to potentially millions of iPhones. What if someone is relying on an app notifying them of something and Apple’s servers go down? What if you miss an important message because Apple’s servers never passed on the message? There’s a huge can of worms waiting to be opened there and given the way MobileMe launch went I suspect many developers have this worry at the back of their mind. (If not they will after reading this!) There’s also the potential for such a system to be venerable to spamming and other such hacker attacks. If a developers server is sending a message to Apple’s service to be pushed to your phone, it’s not inconceivable that someone could spoof that message and flood the service spamming thousands of iPhone users with fake messages. I’m sure Apple will put security in place, but it’s a possibility, and another issue that will need to be tackled by Apple to have a reliable service in place.

I’m not trying to knock the iPhone, and I understand the reasons Apple doesn’t want unlimited background processing, but the push notification service seems like a rube goldberg solution to a problem that really doesn’t need to exist. It is a valid concern that unlimited background processing could lead to your phone becoming locked up or unusable, but then since the 2.0 software was released lots of people have been suffering these problems anyway.

So what about a solution? Rather than put in massive amounts of infrastructure just to get an app running on your phone to be able send you a message, I think Apple should look at some kind of limited background processing, or better still, have a built in notification service, running on the phone rather than a server, that developers can tap into. Rather than having to bounce across the internet, why not have a single process that runs as a service in the background on the phone for handling such notifications. Apps can submit requests to the service that would either give a notification at a certain time, change the badge on an icon or give an alert. It could also allow requests to be submitted that would check an internet address at certain intervals or when an IP connection is already established, much like the way mail works when push is off, and allow it to either notify the user or perform some action based on that data. Surely they could make such an extensible service that allows an app to request a notification be sent to a user at a certain time for example, or to check if a certain event has occurred and then give a report. This has to be easier for everyone than what would be involved in such a complex route as the push notification service.

I’m sure that if Apple is clever enough to come up with something as sophisticated as push notification they can get something simpler but similar to run locally on the iPhone giving developers far fewer headaches and considerably less resources to have to put in place for relatively simple notifications. Push Notification can still have a place for things like IM but Apple should reconsider this being the only option to help users and developers get a better experience in the long run.

Technorati Tags: , , ,


2 Comments, Comment or Ping

  1. jameskatt

    The fact that the iPhone is already becoming locked up due to limited memory and resources even without unlimited background processing 3rd party apps argues strongly against allowing 3rd party apps to have background processing.

    Apple is correct in not allowing background processing for 3rd party apps. The iPhone is NOT a destop or laptop computer which can be upgraded in RAM and storage. It is foremost a cell phone. And it has to insure that the cell phone function works at all times.

    The iPhone already struggles with having the iPod function and web surfing running at the same time. Often it can’t handle both apps running simultaneously. It already struggles with phone calls and text messaging while having music play in the background. The iPhone has limited resources - as occurs with a handheld computing platform.

    Yes, the push notification service does not replace background processing. But the risks of background processing seriously outweigh the benefits to the iPhone experience.

    Yes, certain applications cannot be done because background processing is not available. But that is the sacrifice you make when you chose the iPhone.

    When you chose the iPhone, you choose simplicity and clarity over the Byzantine Bizarro world of Windows Mobile. You can have Windows Mobile and run anything you want. But that is not the iPhone way.

    At Apple, design often takes strongly into account what to leave out. It is not the Microsoft way - of adding feature onto feature, of adding everything including the kitchen sink.

    Cry if you might or choose some other platform like Android.

    If you want everything - which means a mess and crashes worse than what we have today, then buy something else.

    I’m going to enjoy my iPhone and everything it has - and not cry about everything it doesn’t have. What it has is THE BEST cellphone experience I have ever had. Period.

    QUOTE:
    It is a valid concern that unlimited background processing could lead to your phone becoming locked up or unusable, but then since the 2.0 software was released lots of people have been suffering these problems anyway.

  2. thomasfitzgerald

    When you chose the iPhone, you choose simplicity and clarity over the Byzantine Bizarro world of Windows Mobile. You can have Windows Mobile and run anything you want. But that is not the iPhone way.

    At Apple, design often takes strongly into account what to leave out. It is not the Microsoft way - of adding feature onto feature, of adding everything including the kitchen sink.

    I wasn’t knocking the iPhone. I even said in the article: “I’m not knocking the iPhone”. I was merely pointing out a flaw in Apple’s planned implementation. I wasn’t saying that the iPhone was a terrible device because it lacked background processing - I was saying thatthe way Apple is planning to get around it has some problems associated with it.

    Crying about it? Really? Where was I crying about the iPhone lacking background processing? Is it because I’m not towing the Apple party line therefore I must be a secret windows lover? Is that it? Do you really feel that I’m going to take you seriously when you resort to such juvenile responses. If you disagree with what I’ve written then say - I disagree and here’s why, but don’t assume anything about my motives or my character. If you took the time to read some other articles on this blog you’d see that I’m very pro Apple and pro the iPhone. I shouldn’t even have to make a statement like that because it sounds ridiculous but then so is:

    I’m going to enjoy my iPhone and everything it has - and not cry about everything it doesn’t have. What it has is THE BEST cellphone experience I have ever had. Period.

    because you’re responding to an assertion that was never there to begin with.

    In case it wasn’t clear, or you couldn’t see what I was trying to say under that simmering rage that someone dare question the mothership, what I was suggesting was not allowing unfettered background processing, but rather that Apple implement a notification service locally rather than remotely. It’s something that they already do for their own apps on the iPhone already.

    Also your suggestion that the iPhone is barely able to do the tasks its currently designed to do:

    The iPhone already struggles with having the iPod function and web surfing running at the same time. Often it can’t handle both apps running simultaneously. It already struggles with phone calls and text messaging while having music play in the background. The iPhone has limited resources - as occurs with a handheld computing platform.

    Is simply not true. The iPhone has no problems receiving calls while music is playing or surfing the web and it’s certainly not due to limited resources. Again, I nor anyone else is suggesting that the iPhone is a desktop computer with unlimited resources. I don’t know where you got that assertion from in my article. But the iPhone is widely recognised to be one of the most powerful mobile platforms out there. If it can handle something as complex as super monkey ball it can handle a single background task to send notifications to the user - oh wait, it already does.

    For what it’s worth, I love my iPhone. Im perfectly happy with it. I wouldn’t change to another platform if you paid me. I never suggested there was anything wrong with the status quo on the iPhone. I just pointed out that push notification has problems and there are other ways to solve the problem. It’s a shame you felt the need to take offence to that when it really wasn’t necessary.

Reply to “Why Apple’s “Push Notification Service” is Not Enough to Replace Background Processing”

You must be logged in to post a comment.

View My Portfolio

subscribe to rss Subscribe To RSS feed

Enter your email address:

Delivered by FeedBurner

Add to Technorati Favorites
image