導入Zend_TimeSync は、インターネット時刻 あるいはネットワーク時刻をタイムサーバから取得するものです。 プロトコルとして NTP あるいは SNTP を使用します。 Zend_TimeSync を使用すれば、 Zend Framework が稼動しているサーバの時刻設定を気にせずに動作させられるようになります。 サーバの実際の時刻とは独立した立場でいるために、 Zend_TimeSync は内部的に NTP や SNTP 経由の実際の時刻とサーバの時刻との差を考慮して動作します。
なぜ Zend_TimeSync ?いったいなぜ Zend_TimeSync を使うのでしょう? 複数のサーバで運用されている環境では、通常はタイムサーバを用いて 各サーバの時刻を同期させていることでしょう。 そのようなごく普通の環境なら、必ずしも Zend_TimeSync を使う必要はありません。 しかし、タイムサーバを使用できない環境であったり そのようなサービスを実行する権限がなかったりする場合などには便利です。 Zend_TimeSync の使用に適した例をいくつかあげてみます。
これらのすべての場合について Zend_TimeSync は最適なソリューションであり、 サーバ上で何らかのサービスを実行することができない場合にも使用できます。 NTP とは?Network Time Protocol (NTP) は、ネットワーク上のパケット交換によってコンピュータシステムの時刻を同期させるプロトコルです。 NTP は UDP ポート 123 を使用します。このプロトコルについての詳細は » wikipedia の記事 (» 日本語) を参照ください。 SNTP とは?
Simple Network Time Protocol (SNTP)
は、ネットワーク上のパケット交換によってコンピュータシステムの時刻を同期させるプロトコルです。
SNTP は UDP ポート 37 を使用します。 問題のある使用法Zend_TimeSync を使用する際は、 時刻同期の仕組みやウェブ自体の仕組みを考慮するようにしましょう。 問題を回避する方法についてここで説明するので、 Zend_TimeSync を使う前に熟読しておきましょう。 どのサーバを使用するかどのタイムサーバを使用するかは注意して決めなければいけません。 これには、次のような理由があります。
どうやってタイムサーバを見つけたらいいのでしょう? 一般には、どのタイムサーバでも使用できます。 LAN 内にあるものであってもかまいませんし、 公開されているタイムサーバを使用してもかまいません。 公開されているタイムサーバを使用する場合は、サーバプールを使用しましょう。 サーバプールは、公開されているタイムサーバのアドレスをまとめたもので、 そこにリクエストを送るとプール内のアドレスをランダムに取得できます。 これを使用すれば、リクエストを分散させることができます。 公開サーバプールは各地域ごとに用意されているので、 上に挙げたようなような問題が発生することもありません。 まずは » pool.ntp.org で一番近いサーバプールを見つけましょう。たとえばサーバがドイツ国内にあるのなら 0.europe.pool.ntp.org を使用することになるでしょう。
|