Aller au contenu

Fonctionnement du Push


jp
 Share

Messages recommandés

Bonjour à tous !

 

Je me posais une question sur la "technologie" Push. J’ai beau chercher sur Internet, je ne trouve pas d'explication technique (ou pseudo-technique) de son fonctionnement. Les seules choses qu'on trouve, c'est l'explication de la différence entre le push et le poll (ça, je crois qu’on a tous compris) :\

 

Est ce que vous avez des informations à ce sujet là ? C'est juste par curiosité.

 

De ce que moi j'ai compris :

- On peut utiliser du Push avec Exchange ActiveSync et MobileMe.

- Il y a un daemon qui tourne en tâche de fond (pléonasme) sur l'iPhone pour gérer le Push ActiveSync et MobileMe.

- Quand on a un compte MobileMe, le daemon de Push MobileMe est connecté en permanence via une connexion IP via Internet (et recréer la connexion si elle est perdue) sur le serveur MobileMe d'Apple. Dès qu'un élément (mail, calendrier, etc.) est changé sur le serveur MobileMe, le serveur envoie l'information sur cette connexion IP établie. Le Daemon demande alors au bon logiciel (ou élément système, peut importe) d'aller charger les informations sur le serveur : si c'est une notification pour un mail, une connexion IMAP est établie, si c'est une notification pour le calendrier, une connexion WebCal est établie. Ces connexions IMAP ou WebCal sont faites temporairement juste pour recevoir le mail ou l'évènement en question.

- Quand on à un compte ActiveSync (hébergé sur un serveur d'entreprise, chez Yahoo, etc.), le principe est le même : le daemon créer une connexion permanente via IP via Internet sur chaque serveur ActiveSync renseigné pour chaque compte Exchange. Ensuite pareil : en cas de modification, le serveur envois un message par la connexion IP établie, et le daemon traite cette demande : récupération des mails, récupération des événements de calendrier, etc.

 

La connexion MobileMe ou ActiveSync sur IP renvoie des messages de temps en temps pour laisser la connexion vivante (éviter un Time Out par exemple).

 

Est ce que je suis loin ?

 

Merci d'avance :)

Lien vers le commentaire
Partager sur d’autres sites

Invité Renaud
Dès qu'un élément (mail, calendrier, etc.) est changé sur le serveur MobileMe, le serveur envoie l'information sur cette connexion IP établie. Le Daemon demande alors au bon logiciel (ou élément système, peut importe)

 

Ce principe-là est le même que l'IDLE IMAP. Mais j'ai déjà lu que l'IDLE IMAP était critiqué parce que ce n'était pas un "vrai" push justement: une fois la notification faite, il fallait une deuxième connexion pour récupérer le contenu. Alors qu'en pur push, ce n'est pas nécessaire.

 

Maintenant la question est de voir si Apple utilise le mot "push" parce que c'est conforme à ce qui est appelé push ou pour des raisons marketing.

 

Mais pour moi la question du push est: est-ce qu'il faudra un compte mobile me pour en profiter, ou bien est-ce que ça fera partie des "bonus" des abo spécifiques iPhone.

Lien vers le commentaire
Partager sur d’autres sites

Ce principe-là est le même que l'IDLE IMAP. Mais j'ai déjà lu que l'IDLE IMAP était critiqué parce que ce n'était pas un "vrai" push justement: une fois la notification faite, il fallait une deuxième connexion pour récupérer le contenu. Alors qu'en pur push, ce n'est pas nécessaire.

Oui je connais l'IDLE (j'en ai entendu parlé pendant mes recherches) : il n'empêche qu'il doit bien y avoir un daemon spécifique pour MobileMe et ActiveSync car avec mon serveur perso IMAP qui gère la commande IDLE, si Mail est pas lancé, les mails entrant ne sont pas affichés.

Et puis la question reste alors ouverte pour WebCal qui n'établis pas de connexion persistante comme IMAP.

 

Maintenant la question est de voir si Apple utilise le mot "push" parce que c'est conforme à ce qui est appelé push ou pour des raisons marketing.

Oui, après savoir si c'est du vrai push ou pas, à la rigueur ça ne m'intéresse pas vraiment.

Je suis plus intéressé par la manière dont c'est implémenté chez Apple. Et pourquoi pas chez RIM aussi.

 

Mais pour moi la question du push est: est-ce qu'il faudra un compte mobile me pour en profiter, ou bien est-ce que ça fera partie des "bonus" des abo spécifiques iPhone.

Je pense que ce sera complètement libre d'utilisation côté utilisateurs. Ça ne me paraît pas viable de demander à l'utilisateur d'avoir un abonnement MobileMe ou un abonnement "iPhone" (je n'ai pas d'abonnement "iPhone" et je peux quand même utiliser le push via Exchange ActiveSync) pour utiliser le push proposé par une application.

 

En tout cas, la vision d'une simple connexion IP permanente expliquerait pourquoi Snow Leopard Server implémentera du push dans le genre MobileMe : on peut imaginer que ce "daemon" dans l'iPhone pourra se connecter à un service intégré à Snow Leopard Server et utilisera alors les services standard installés dessus pour le calendrier et les mails.

 

Ce qui semble se profiler, c'est qu'Apple n'envoie pas des données via la connexion opérateur pour envoyer la notification de push (certains parlaient d'un signal spécifique GSM ou un truc du genre).

Lien vers le commentaire
Partager sur d’autres sites

Invité Renaud
Oui je connais l'IDLE (j'en ai entendu parlé pendant mes recherches) : il n'empêche qu'il doit bien y avoir un daemon spécifique pour MobileMe et ActiveSync

 

Oui oui, mais ce que je voulais signaler, c'est que dans les systèmes push (au sens large), il y avait ceux qui se contentent de notifier au client qu'un changement a été fait (IMAP IDLE), mais qui exigent de lui une action supplémentaire pour avoir les données (par ex CalDAV pour les calendriers, IMAP pour les mails,....) et ceux qui incluaient les données dans le message envoyé par le serveur et les traitent localement (RIM).

 

Dans les deux cas, l'expérience utilisateur est identique, mais la technique derrière est légèrement différente. Et dans les deux cas, il faut un daemon.

 

Ça ne me paraît pas viable de demander à l'utilisateur d'avoir un abonnement MobileMe ou un abonnement "iPhone" pour utiliser le push proposé par une application.

 

Je ne pense pas qu'Exchange soit supporté par tous les opérateurs, il y a donc sans doute une licence à acquérir pour l'opérateur. Quoique maintenant j'ai un doute sur l'époque où j'avais lu ça: peut-être que c'est rendu obselète par les réseaux 3G ou EDGE, qui pourraient permettre des connexions persistantes (pas lu les specs).

 

Pourquoi "pas viable"? dans la tête d'Apple les revenus viennent des abonnements, pas des appareils, d'où ce modèle économique extrêment fermé et des services qui exigent que l'opérateur ait un équipement spécifique, comme la messagerie visuelle. Imposer cette restriction ne serait donc qu'un pas de plus dans la même direction que ce qu'Apple a l'habitude de faire.

 

Dans le même ordre, le push chez RIM ne fonctionne que si l'opérateur a pris la licence adéquate chez RIM. Je pense même qu'il faut aussi que les serveurs de mails aient une extension spécifique. C'est aussi pour cela que RIM est critiqué sur le plan de confidentialité: les notifications doivent passer par leurs serveurs et contiennent les messages eux-mêmes.

Modifié par Renaud
Lien vers le commentaire
Partager sur d’autres sites

Pour info, je suis chez Bouygues et je reçois les mels via notre serveur Exchange (donc en Push) sur mon iPhone Original et ce, depuis un bon moment et je ne pense pas que BT aie pris une licence Exchange alors qu'ils n'avaient pas encore l'iPhone à leur catalogue… A moins qu'ils aient cette licence pour d'autres produits ?

Lien vers le commentaire
Partager sur d’autres sites

Invité Renaud
A moins qu'ils aient cette licence pour d'autres produits ?
Les smartphones sous Windows Mobile ont évidemment la possibilité de synchroniser leurs contenus via Exchange, de même que les séries "profesionnelles" chez Nokia (les E). Certainement d'autres encore, mais en tous cas l'iPhone n'est certainement pas un précurseur dans ce domaine.

 

Mais bon, je n'ai utilisé qu'un conditionnel, donc je ne dis pas que pour Exchange cette licence est recquise.

 

EDIT: comme je n'aime pas avoir des doutes, j'ai un peu cherché. Je suis tombé sur cette page:

 

http://technet.microsoft.com/fr-fr/library/aa997252.aspx

 

Ça intéressera surement JP, même si ça vient de chez Microsoft. Visiblement, tout se passe par "simple" HTTP, pas de config nécessaire chez les opérateurs donc, si ce n'est un abonnement data permettant une connexion permanente. En résumé, le principe est de faire une requête HTTP sur un serveur, avec un time-out de 15 minutes. Si dans l'intervalle, une synchronisation est nécessaire, le serveur répond (la réponse ne contient que le nom du dossier dans lequel le changement est fait, pas du vrai push donc). Si au bout des 15 minutes rien aucun changement n'est nécessaire, le serveur répond aussi pour indiquer que la connexion n'est pas morte. Puis le cycle se répète.

Modifié par Renaud
Lien vers le commentaire
Partager sur d’autres sites

Je n’étais alors effectivement pas loin :)

 

Sinon je disais par viable, car pour moi un utilisateur n'achètera pas (ou en tout cas moins facilement) une application s'il doit s'enregistrer sur MobileMe avant. Et Apple fait de l'argent sur la vent de ces logiciels.

Imposer le VisualVoiceMail à l'opérateur ça permet d'avoir un argument pour vendre plus. Mais s'inscrire sur MobileMe pour avoir les notifications sur son téléphone, c'est juste pénible !

Lien vers le commentaire
Partager sur d’autres sites

Invité Renaud
Mais s'inscrire sur MobileMe pour avoir les notifications sur son téléphone, c'est juste pénible !

 

C'est vrai, je le reconnais, l'idée était stupide. Enfin, pour MobileMe, pas pour l'abo spécifique, ce serait aussi un argument fort pour inciter les méchants-qui-ne-veulent-pas-verser-leur-dime-à-Apple à rentrer dans le rang.

 

En tout cas, je trouve cette manière d'utiliser le HTTP intéressante. Pour faire du "push" sans avoir à se soucier des réglages de proxy, de mappage de ports & cie, et sans devoir mettre à jour une adresse IP.

 

Il y a d'autres services qui fonctionnent de manière similaire?

Lien vers le commentaire
Partager sur d’autres sites

C'est vrai, je le reconnais, l'idée était stupide. Enfin, pour MobileMe, pas pour l'abo spécifique, ce serait aussi un argument fort pour inciter les méchants-qui-ne-veulent-pas-verser-leur-dime-à-Apple à rentrer dans le rang.

 

En tout cas, je trouve cette manière d'utiliser le HTTP intéressante. Pour faire du "push" sans avoir à se soucier des réglages de proxy, de mappage de ports & cie, et sans devoir mettre à jour une adresse IP.

 

Il y a d'autres services qui fonctionnent de manière similaire?

Oui, c'est ce qu'utilise BOSH, une sourcouche permettant d'utilise XMPP (GTalk, Jabber) à travers des proxy sans avoir besoin de configuration, j'avais déjà vu cette méthode utilisée qd j'avais eu à le mettre en place.

 

http://xmpp.org/extensions/xep-0124.html

Lien vers le commentaire
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
 Share

×
×
  • Créer...