| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <!-- EN-Revision: 13828 -->
- <sect1 id="zend.timesync.introduction">
- <title>Introduction</title>
- <para><classname>Zend_TimeSync</classname> est capable de recevoir une information temporelle depuis un serveur de temps, en
- utilisant les protocoles <emphasis role="strong">NTP</emphasis> ou <emphasis role="strong">SNTP</emphasis>. Avec
- <classname>Zend_TimeSync</classname>, Zend Framework peut fonctionner sans se soucier de la configuration du temps (de la
- date) du serveur sur lequel il tourne.</para>
- <para>Pour se rendre indépendant du temps actuel sur le serveur, <classname>Zend_TimeSync</classname> fonctionne en calculant
- des différences entre le temps du serveur, et le temps réel actuel, en envoyant et recevant des paquets vers un
- serveur de gestion du temps, grâce aux protocoles NTP ou SNTP.</para>
- <note>
- <title>En tâche de fond</title>
- <para><classname>Zend_TimeSync</classname> ne peut pas changer le temps sur le serveur, mais il peut en revanche retourner
- un objet <link linkend="zend.date.introduction">Zend_Date</link> de différence de temps, pour travailler
- avec.</para>
- </note>
- <sect2 id="zend.timesync.introduction.why">
- <title>Pourquoi <classname>Zend_TimeSync</classname> ?</title>
- <para>Pourquoi donc utiliser <classname>Zend_TimeSync</classname> ?</para>
- <para>En théorie, sur un serveur, un service (démon) tourne sur le système d'exploitation, pour s'occuper de la
- synchronisation précise du temps, avec un serveur distant de temps. Cependant il est possible que votre OS ne
- supporte pas ceci, ou que vous n'ayez pas les droits, ou la possibilité de gérer un tel service de
- synchronisation. <classname>Zend_TimeSync</classname> prend alors tout son sens.</para>
- <para>Voici quelques exemples dans lesquels <classname>Zend_TimeSync</classname> est tout à fait adapté et utile :</para>
- <itemizedlist mark="opencircle">
- <listitem>
- <para><emphasis role="strong">Serveur sans service de synchronisation du temps</emphasis></para>
- <para>Si votre application tourne sur un serveur qui ne possède pas de service de synchronisation du
- temps, alors utiliser <classname>Zend_TimeSync</classname> vous permettra de gérer le temps dans votre
- application.</para>
- </listitem>
- <listitem>
- <para><emphasis role="strong">Serveurs de base de données séparés</emphasis></para>
- <para>Si votre serveur de base de données est installé sur un serveur distant, et qu'il n'est pas
- synchronisé temporellement avec votre serveur applicatif, alors vous rencontrerez des problèmes si vous
- utilisez des timestamps.</para>
- </listitem>
- <listitem>
- <para><emphasis role="strong">Serveurs multiples</emphasis></para>
- <para>Si votre application fonctionne au travers de multiples serveurs applicatifs, il est possible que
- ceux-ci ne soient pas synchronisés au niveau du temps, et entre eux. Des problèmes vont alors apparaître
- lorsque des données proviennent de plusieurs serveurs différents, et sont traitées ensemble.</para>
- </listitem>
- <listitem>
- <para><emphasis role="strong">Processus de Batch</emphasis></para>
- <para>Si vous utilisez des fichiers batchs, ou des applications en ligne de commande, et que celles-ci
- nécessitent une synchronisation temporelle absente sur votre système.</para>
- </listitem>
- </itemizedlist>
- <para>Dans tous ces cas là, <classname>Zend_TimeSync</classname> est une solution parfaite lorsque vous ne pouvez
- installer de service sur vos serveurs.</para>
- </sect2>
- <sect2 id="zend.timesync.introduction.ntp">
- <title>Qu'est ce que NTP ?</title>
- <para>Le <code>Network Time Protocol</code> (<emphasis role="strong">NTP</emphasis>) est un protocole utilisé
- pour la synchronisation du temps des systèmes informatiques au travers du réseau. NTP utilise le port UDP 123
- comme couche de transport. Voyez cet <ulink url="http://fr.wikipedia.org/wiki/Network_Time_Protocol"> article
- wikipédia</ulink> pour plus d'informations sur le protocole.</para>
- </sect2>
- <sect2 id="zend.timesync.introduction.sntp">
- <title>Qu'est ce que SNTP?</title>
- <para>Le <code>Simple Network Time Protocol</code> (<emphasis role="strong">SNTP</emphasis>) est un protocole
- utilisé pour la synchronisation du temps des systèmes informatiques au travers du réseau. SNTP utilise le port
- UDP 37 comme couche de transport. Il est très semblable à <code>NTP</code>, mais plus simple (comme son nom
- l'indique).</para>
- </sect2>
- <sect2 id="zend.timesync.introduction.problematic">
- <title>Problèmes courants d'utilisation</title>
- <para>Faites attention avec l'utilisation de <classname>Zend_TimeSync</classname>. Vous devrez garder en tête certains
- détails concernant la structure de la synchronisation temporelle, et du Web lui-même. Les bonnes pratiques pour
- éviter ces problèmes sont décrites ici. Lisez les bien avant d'utiliser <classname>Zend_TimeSync</classname>.</para>
- </sect2>
- <sect2 id="zend.timesync.introduction.decision">
- <title>Décider quel serveur de temps utiliser</title>
- <para>Décider du serveur de temps à utiliser est assez minutieux. Vous devrez prendre en considération les
- paramètres suivants :</para>
- <itemizedlist mark="opencircle">
- <listitem>
- <para>La distance</para>
- <para>Bien entendu la distance entre votre serveur et le serveur de temps est importante. Afin de
- réduire la charge réseau et d'obtenir des réponses plus rapides, veillez à utiliser un serveur de temps
- proche géographiquement de votre serveur applicatif.</para>
- </listitem>
- <listitem>
- <para>La vitesse</para>
- <para>La vitesse à laquelle les serveur de temps vont vous répondre est importante. Certains sont
- souvent saturés. Faîtes des mesures.</para>
- </listitem>
- <listitem>
- <para>Leur nombre</para>
- <para>N'utilisez pas systématiquement le même serveur de temps pour vous synchroniser. Si vous envoyez
- trop de requêtes vers un serveur de temps, celui-ci pourra vous bannir. Utilisez un pool de serveurs
- dont vous assurerez la rotation.</para>
- </listitem>
- </itemizedlist>
- <para>Mais où donc trouver des serveurs de temps ? Déjà, essayez votre LAN. En effet il est possible que vous
- disposiez d'un serveur de temps interne à votre structure. Sinon vous pouvez utiliser l'un des nombreux serveurs
- publics. Il sera alors intéressant d'utiliser un pool de serveurs. Un pool est un serveur vous donnant
- aléatoirement l'adresse d'un serveur de temps, en fonction de critères, comme la distance. C'est une solution
- tout à fait adaptée pour assurer une rotation des serveurs, et éviter tous les problèmes mentionnés
- ci-dessus.</para>
- <para>Voyez <ulink url="http://www.pool.ntp.org">www.pool.ntp.org</ulink> afin de récupérer le pool le plus
- proche de vous. Par exemple pour un serveur en France <code>0.europe.pool.ntp.org</code> pourra faire
- l'affaire.</para>
- </sect2>
- </sect1>
|