The iPhone 3 SDK has push support built in. Basically, all messages that need to be pushed (from all apps) go to Apple's server, which maintains a persistent connection to the user's iphone. The upside is that you dont have to worry about it and your app can get updates even when its not running (so like, from the home screen). The downside is that your data has to go through Apple's server.