Für den Server hatte ich lediglich einen
INDY-Client sowie die Zertifikate von Apple genutzt. Damit hatte ich dann die von Dir beschriebene Verbindung zu den Servern von Apple / Google aufgebaut.
Mit Apple habe ich noch nicht gearbeitet, bei GCM braucht man neben dem HTTP Client auch einen eigenen HTTP oder XMPP Server, der die Geräte-Registrierungen mit der Device-ID von Google empfängt und (bei HTTP) auch Nachrichten vom Client.