Начало тут Под iOS все оказалось до безобразия просто, c клиентской частью мне возиться не пришлось, т.к.
программа-клиент у нас разрабатывается, а про серверную часть
есть подробный tutorial с примером на php, повозиться пришлось только с реализацией ssl-сокета в перле, но когда я разобрался в сертификатах и приватных ключах, все довольно быстро взлетело.
На всякий случай как сгнерить RSA ключ:
openssl rsa -in encrypted_key.pem -out rsa_key.pem
Нужно сформировать бинарную строку определенного формата и просто написать её в сокет.
Механизм - что-то среднее между wp7 и андроидом: окошко уведомления выводить сама ось, как в wp7, серверная часть сделана более интеллектуально - идентификация подписки по id устройства, есть тестовый и "боевой" режимы.
Итого:
windows phone 7 - винда она и в африке винда: подписка может обнулиться надо "клиент" должен периодически переподписываться, какое уведомление отрисовать определяется в запросе с "сервера", обработка ошибок на основе анализа заголовков ответа. Проверки того кто чего шлет "клиенту" нет, можно перехватить адрес подписки и слать пользователю всякие гадости :)
iOS - все в стиле мака "есть только один способ и он единственно правильный", отрисовка уведомления если клиент не запущен происходит средствами оси, если запущен - на усмотрение программиста, дианостики ошибок нет (типа зачем? это же айфон он всегда работает!)
android - авторизация на C2DM-сервере посредством гуглового аккаунта, обработка входящих уведомнений происходит в повешеном на это событие хэндлере, делай чего хочешь