2011/08/24

NAS Herder 開発中

ReadyNAS用のWindowsアプリとしてNAS Herder(仮)を開発中です。

見て想像できるとおり、ReadyNASの起動・監視・終了をタスクトレイから行えるソフトです。監視にはNetGear純正のRAIDarと同じプロトコルを利用することができます(追記2にサンプルコードあり)。

起動・終了には基本的にこれ(遠隔から電源オン/オフ)と同じことをしていますが、この機能とWindowsの起動・終了・サスペンド・レジュームを絡めて電源同期ができるのが特徴かなと。

大体完成していますが、電源同期関係はまだテストが必要という状態です。VB.NETで開発するのも3本目なので、慣れてはきましたが、通信機能を4種類実装したり、それをマルチスレッド化したりで、内情的には色々あって……。前と違って季節ものではないので、急いではないのですが。

想定している使用環境は日本に限らないので、全部英語です。多言語化も難しくはないのですが、正直そこにあまり手間をかけたくないということもあり。まあ需要次第ということで。

[追記1] 参考

必ずしも直接参考にしたわけではないですが、先人への敬意を込めて。

[追記2] RAIDarプロトコルのサンプルコード

移動しました(RAIDar Protocol Sample)。

[追記3]

関連スレッド: ReadyNAS Remote Monitoring Tool?

[追記4]

Beta版を公開しました。

2011/08/02

電気アラート(続)

電気アラートに関する続きです。

[追記] 新しい情報はSourceForge.jpのプロジェクトサイトにまとめています。

1. 電力会社の更新タイミング


電力会社(東京電力、東北電力、関西電力、九州電力)は5分ごとの使用量データを5分に1回更新していますが、タイムラグを短くしようとすると、この更新をどう追いかけるかが問題になります。

単純に力技でいいなら、より短い間隔でアクセスし続ければ更新を引っ掛けやすくなるわけですが、それはあまりうまくないと思うので、アクセスも5分に1回とすると、そのタイミングが重要になります。

ということで、電気アラートの動作検証と平行して、また自作ソフトで電力会社の更新タイミングを調べた結果が以下です。7/28~8/2の5日間、3秒間隔で更新をチェックしたものですが、ソフトの開発で中断していた時間も長いので、網羅的なものではありません(更新回数は1000回強)。

見てのとおり、東北電力と関西電力は鋭い山が1つだけで、更新タイミングはほぼ固定されています。

九州電力は3つの山ができていて、3つのタイミングがあることが分かります。ただ、どの順番でどのタイミングになるかという法則性は、元の更新時刻を見てもよく分かりませんでした。

で、東京電力は前半に低い山並みができてますが、これには理由があります。例として、7/31の19:00~21:00の更新時刻を挙げます。
東京電力の更新時刻(7/31 19:00~21:00)
CSVファイルが
更新された時刻
(日付 時:分:秒)
5分刻みの
時刻との差
(秒)
UPDATEに
記載された時刻
(日付 時:分)
新しく追加された
データの時刻
(日付 時:分)
2011/7/31 19:01:00602011/7/31 18:552011/7/31,18:55
2011/7/31 19:06:35952011/7/31 19:002011/7/31,19:00
2011/7/31 19:12:061262011/7/31 19:052011/7/31,19:05
2011/7/31 19:17:011212011/7/31 19:102011/7/31,19:10
2011/7/31 19:22:201402011/7/31 19:152011/7/31,19:15
2011/7/31 19:25:21212011/7/31 19:202011/7/31,19:20
2011/7/31 19:30:37372011/7/31 19:252011/7/31,19:25
2011/7/31 19:36:26862011/7/31 19:302011/7/31,19:30
2011/7/31 19:41:36962011/7/31 19:352011/7/31,19:35
2011/7/31 19:47:131332011/7/31 19:402011/7/31,19:40
2011/7/31 19:52:301502011/7/31 19:452011/7/31,19:45
2011/7/31 19:55:18182011/7/31 19:502011/7/31,19:45
2011/7/31 20:00:40402011/7/31 19:552011/7/31,19:55
2011/7/31 20:06:05652011/7/31 20:002011/7/31,20:00
2011/7/31 20:11:37972011/7/31 20:052011/7/31,20:05
2011/7/31 20:17:051252011/7/31 20:102011/7/31,20:10
2011/7/31 20:22:301502011/7/31 20:152011/7/31,20:15
2011/7/31 20:25:19192011/7/31 20:202011/7/31,20:20
2011/7/31 20:30:32322011/7/31 20:252011/7/31,20:25
2011/7/31 20:36:18782011/7/31 20:302011/7/31,20:30
2011/7/31 20:41:37972011/7/31 20:352011/7/31,20:35
2011/7/31 20:46:531132011/7/31 20:402011/7/31,20:40
2011/7/31 20:52:211412011/7/31 20:452011/7/31,20:45
2011/7/31 20:55:13132011/7/31 20:502011/7/31,20:50

更新タイミングは早い時刻から始まって、1回の更新ごとに20~30秒遅れていき、これを5~6回繰り返した後に元に戻るというパターンになっています。かつ、それぞればらつきが大きいので、集計してみると低い山の連続になるというわけです。

また、東北電力、関西電力、九州電力のそれぞれの山の中に谷がありますが、これも理由があって、大まかに休日と平日の差によるものです。

以下は電気アラートのコマンドラインオプションを使って「内部時刻」と「更新状況」を表示させたものです。この「更新状況」は上で使ったソフトのサブセットで、30分間、3秒間隔で更新をチェックします。

これは7/31のものですが、更新タイミング(表中の「差」の列)は大体124秒です。これが8/2になると、

更新タイミングは大体140秒になります。つまり平日は休日より遅くなるわけで、同じ傾向は関西電力、九州電力にも見られ、平日は10~20秒遅くなります。

2. 電気アラートでの対応


以上を考慮して、電気アラートではアップデートのためにアクセスするタイミングを、電力会社ごとのプリセット値として持っています(Ver.0.8.0)。

東北電力の例では、上の7/31の時点では140秒=2分20秒としていて、これは「内部時刻」の「アップデート」の「次回」時刻に反映されています。が、平日は遅くなることが分かったので、下の8/2の時点では150秒=2分30秒に変更しています。

この場合、23:07:17に更新されたデータを23:07:30にアクセスして見に行こうとしている直前で、データの時刻から電気アラートに反映されるまでのタイムラグは2分30秒ということになります。まあ、これほどタイムラグを短くできるのは、データが出てくるのが速く、更新タイミングが安定している東北電力ならではですが。

一方、この更新タイミングがずっと同じかは不明なので、タイムラグがどうも長い……というときは、「更新状況」で更新タイミングを確かめた上で(その間のアクセスが増えるのは目を瞑ってもらうとして)、コマンドラインオプションでアップデートのタイミングを指定することで調整できます。