見出し画像

[#34] ホームサーバーについて思うこと - こんなモノを作ってみました

初出: MacPower 2003年 5月号

今月はまずお礼から。3月6 ~ 8日に渋谷のビール屋さんで行ったプログラマー展「Friends of "X "」、予想を上回る大盛況でした。ご来場くださった皆さん、ありがとうございました。参加してくれたプログラマー仲間の面々も、えらく気合いの入った作品を出展してくださいました。感謝。熱気あふれる会場の雰囲気は、久しく感じたことのなかった高揚感を感じさせてくれました。作り手と観客の距離が近いと、やつばりいいですね。文句なく楽しみました。みなさん、ありがとう。

さて、そんなイベントに自分が出展したのは、「iCon Server & Remote」という作品。サブタイトルが「iMacホームサーバー化計画」というものだ。ブロードバンド時代になって、常時接続もようやく当たり前になってきた。自宅でサーバーを立てる人も少なくはないだろう。Power Mac G4 Cube やiMacは動作音も静かだし、リビングに置いても違和感のないデザイン。ホームサーバーとしてはもってこいの機種だと思う。

だがサーバーを立ち上げたはいいが、そこで何のサービスを提供するのか?だれがどう便利になるんだろうか?[* 1] ホームサーバーというと、最近TV CMでよく見るのが、ビデオサーバー。出先からコントロールしてテレビを予約、べッドルームで寝ころびながらリビングのビデオを無線LAN経由で鑑賞、DVDに録画してバックアップ ……などなど。確かにわかりやすい使い方だ。

でも、ホームサーバーってそんな大袈裟なものなんだろうか?もうちっと気楽な発想で始めてもいいんではないか。例えばオレの場合、iTunesで曲を聴いているのだが、iPodの都合で保存する場所を1台にまとめないといけなくなってしまった。もともとはPowerBookに保存していたのだが、ちゃんとしたスピーカーが繋がっているiMacで聴きたいのだ!とわがままに思っていた。しかし、iMacまでは距離にして3m。ちょいちょい操作するには面倒な距離だ。うーむ、iTunesリモコンが欲しい!音はそっちで鳴るのでいいから、操作だけを手元でしたい!くだらないことだが、これも立派なホームサーバーの使い方だぞ!

そんな強い思い(笑)から作ったのが今回のソフト。ホームサーバー環境を作るために必要な、クライアント側とサーバー側のためのフレームワークのようなモノだ。したいことがあるのに出来ない。ーから全部作る技術もない。技術はあっても根性がない[*2]。そんな状況で止まっているアイデアって結構たくさんあると思う。世の中には変わっ人、面白い人が多いし、そんな人をサポートするツールになれればいいなー、などと夢を抱きながら作ったモノだ。

実際の操作は至極簡単。サーバーアプリケーションを立ち上げ準備を行うと、サービスの待ち受け状態になる。Rendezvousに対応しているので、IPアドレスとかポート番号とか、特に複雑な設定をする必要はない。ソフトが自分で勝手に設定して立ち上がる。もちろんクライアント側もRendezvous対応なので、LANに繋がっているサーバーを見つけてリストアップする。操作したいMacを選んで接続すると、サーバーを操作するリモコンインターフェースが現れる、というわけだ。あとはただ操作するだけ。無事 iTunesが向こうのほうで再生を始めている。うーん、ちょっと感動。

やっていることはつまらないことかもしれないが、ネットを通じてモノを操作できるのを目の当たりにすると、なんか嬉しいモノだ。アプリケーションもさんざん作ったし、もっと複雑なこともこなしてきたはずなのだが、自分のマシンで操作して自分のマシンに結果が現れても、現実世界で何かをしたんだっていう実感はあまりない。でも例えば、ただビープ音だけでもいい。 何か手元の操作の結果がちょっと離れた場所で確認できるというのは、 非常にリアルな操作感を伴うんだなあ、 ということを実感した。面白い体験だった。

仕組みも簡単に説明しておこう。 やっていることは単純なTCP/IP通信だ。クライアント側はiConのフレームワ一クを使ってアプリを作る。コマンドの実行は単にテキストを送信して結果を受け取るだけだ。この部分は全部フレームワーク側で行うので、アプリ側は細かいことを気にすることはない。サーバーのリストアップやつなぐための仕組みも全部用意されている。認証を必要とする場合には、ユーザーとパスワードを入力して、キーチェーンに登録することも出来る。

サーバー側はiConに付属のアプリをそのまま立ち上げるだけでいい。機能の追加は、所定のフォルダーに実行したい内容を記述したAppleScriptファイルを置くことで簡単に拡張できる。AppleScript以外にも、UNⅨのシェルスクリプトでもいいし、Perlでもなんでも構わない。テキストを受け取って何かを実行するモノであれば何でもいいのだ。例えば、「say "Hello"」と書いたスクリプトファイルを用意して、helloという名前で置いておく。そしてクライアント側からhelloを送信してあげると、 サーバー側がしゃべる。 ばかばかしいけど、 簡単に実現できるからなかなか気持ちいい。

考えてみると、 AppleScriptは別のホストのアプリを指定してスクリプトカ書けるので、 これぐらいのことAppleScriptだけでも実現可能なのだ。 だけど、 拡張のしやすさやスクリプトの混在が可能という点では、AppleScriptだけで組むよりは結果的にやりやすかった。単純なTCP/IPを使っているのでクライアント側も機種を選ばない。サーバー側もちょっといじればxmlrpcのサーバーに早変わりだし、 例えばメールでコマンドを送信して結果をメールで返す、ということもできるだろう。 アプリケーション環境に絶対の優位性を持つMacだからこそ可能な、リッチで安定したサーバー環境だと思う。Xserveに載せたいな(笑)。

バスケ (http://www.saryo.org/basuke/
しかし、ビール屋さんでイベントというのは、参加者としては自滅するのがよくわかりました。3日間、ビール呑みっぱなしで、常にヘベレケ状態。お会いした皆さん、普段はあんなではありません。タコの帽子もかぶっていません。もうちょっと静かな男です。よーし、来年もまたやるぜー。

[*1] 便利になるんだろうか? - ホームページとかメールといった、一般的なインターネット標準のサービスは除く。UNIXになったおかげで、こうした一般的なサーバーも、まぁ簡単に立てられる。
[*2] 技術はあっても根性がない - オレも今回のイベント「Friends of “X”」がなかったら作らなかっただろうな。

編集・矢口和則

この記事が気に入ったらサポートをしてみませんか?