「青写真」としてのシステム開発
2001-7-18 水曜日
去る6月29日、サイトを移転した。
使う側からすると、大した変化には見えないかも知れない。が、実は今までとは、サーバを置いてある場所も回線もOSもアプリも、すべて入れ替わっている。
現在のシステムは、構成からして相当変則的だ。まず、回線にはADSLを使っている。これは、圧倒的にコストが安いからだ。回線料+プロバイダ使用料=2 万円弱そこそこで、最大512Kbpsというのは、一昔前では考えられないスピードである。ADSLは、上り回線と下り回線のスピードに差があり、今回契約した回線の場合、上りは1.5Mbps、下りの512Kbpsの3倍のスピードだ。主にサーバとして使うので、アクセスしてくるお客さんから見れば、版元ドットコムからインターネットへの道はほとんどの場合「下り」となる。つまり、純粋に回線としての選択として見れば、ものすごいムダである。しかし、トータルに見た場合、OCNのISDNによる疑似専用線などよりもはるかに低コスト、高パフォーマンスなのだ。
サーバの選択にいたっては、おそらく専門家に言わせれば「狂っている」としかいいようがないだろう。メインのデータベースにはMacintoshのG4上で動く、ファイルメーカーProを使っている。これを核に、ファイルメーカーのプラグイン機能でファイル書き出し機能を強化し、そこから出てきたファイルをアップルスクリプトで処理し、メールやftpに振り分けたりしている。転送先にはFAXもあるので、FAXゲートウェイも使っている。また、処理を途中で perlのcgiに渡したり、もうなんでもあり、といった感じだ。
なぜファイルメーカーか、というと、最大の理由は開発スピードの問題だ。ファイルメーカーの強みは、スクリプトにしろなんにしろ、マウスでコマンドや部品を選んでいけばだいたいのことは済んでしまう部分が結構あるところだ。私はプロのプログラマではない(というか、アマチュアプログラマですらない。なんとか操れるのはHTMLとかAppleScriptとかTeXとか、その程度のものだ。最近忘れられがちだが、一応本業ではデザインをやっている)ので、 CはおろかPerlもほとんど使えない。だが、ファイルメーカーを使ってのWeb公開ならば今までにいくつかサイトを作ってきた経験がたまたまあった。
いまどきのWebデータベースに関する本や雑誌をひもとけば、やれLinuxでPostgreSQLでPHPでWebアプリだこれぞオープンソースだ、と謳ってあるのが定番だ。それらがファイルメーカーよりもコスト的にも、また潜在的な性能的にも優れていることは言うまでもない。実は、以前のシステムはこれらのOS、アプリを使って作られていた。だがしかし、最後に決め手となったのは、開発スピードと開発に携わる人間のスキルだった。どんなに優秀な材料があっても、それを使いこなす人間がいなければ何にもならない。
そこで、システム開発の専門家でもなんでもない私に白羽の矢が立ったわけだが、最初に指令が下ったのは、単に「本のデータを登録する部分だけを使いやすいカタチにする」ということだった。それがたまたまうまくいってしまった、ということと、最初に開発してもらったシステムについて、これ以上メンテしてもらえそうもない、という事実が徐々に明らかになり、「ならば自前で」という機運が高まってきた。その機運にうまく乗じて、なんとかここまでやってこれた。現在のシステムのもとになっているのは、サイトからもダウンロードできる、
「書籍登録フォーム」(http://www.hanmoto.com/hanmoto-renraku/tourokuform.html)
というやつだ。インターフェース自体がシステムになってしまった、まるでLinuxにおけるGnome(http://www.gnome.org/)のような存在、といったら言い過ぎだろうか。多分言い過ぎだろう。
また、後になってわかったことだが、ファイルメーカーの処理スピードは決して遅くない。むしろ、以前よりも検索の速度などは明らかに向上している(これは、PostgreSQLが悪い、というよりは、純粋にシステムの組み方であるとか、プログラムの仕方によるものと思われる)。以前の業者が使っていたマシンと、現在のマシンはスペック的にはほぼ大差がなく、むしろ現在の方がCPUのクロック数としてはかなり低い。こういった情報は、絶対に本や雑誌には載っていない。そもそも開発している人間が期待していなかったくらいなのだから。(笑)
ファイルメーカーの柔軟さにも改めて驚かされた。ファイルメーカーをWebで公開するためには、CDMLという特別な言語をWebページのファイルに埋め込んでいく。この言語の仕様はいたって貧弱で、しかも1999年にver.4(日本語版)が登場してから、その語彙(機能)はほとんど向上していない。こんなもので、本当にモノが作れるのだろうか、すぐ壁にぶつかってしまうのではないだろうか、という危惧を当初抱いていた。メーリングリストなどで情報を集めても「セキュリティがガタガタ」「仕事で使うなんて無謀」といった論調が多く、着手した当初は本人でさえもファイルメーカーにはあまり期待を抱いていなかった。そのうち「コレとコレがダメなのでもう限界です」というレポートを出して終わりになるんじゃないか、という予想図を密かに描いていたりもした。
しかし、シンプルなのは同時に強みでもある。置き換えタグ、アクションタグという概念がわかってくるにつれ、最終的にHTMLの置き換えに持ち込んでしまえば、ここから先は「業界標準」のインターネットの世界だ、ということがわかってきた。CDMLがどんなに独特な仕様でも、見る側に渡されるのは単なる HTMLとなる。特殊なものが一般化される、この部分に焦点をあてて開発していけばいい、と気づいてからは、かなり開発のスピードが上がったように思う。
この他にも、DNSだメールだWeb(データベースと連動しない、通常のWebページを表示させる)だ、といった普通のサーバも置かなければならない。こちらは素直にLinuxを使っている。こちらに求めるのは「再起動不要」「フリーズ知らず」といった鉄壁の安定性だ。ディストリビューションは完成度に定評のある(あくまでも、ホビーユースレベルの話であるが)Vine Linuxを使っている。おかげで、こちらはシステムに手を加えたりしない限り、まったくノートラブルで運用できている。やることが決まり切っているので、そういう場合は運営側のスキル面に不安があっても、安定している方がいい。事実、こちらのサーバの構築には1週間もかけていない。その後もほとんど手が掛からない、なかなかいい子である。
とはいえ、現在のLinux+ファイルメーカーを動かしているMac一台ずつ、というサーバ構成が完成形とは思っていない。むしろ、いきあたりばったりに開発してきたシステムを、いつかはもう少し「キレイな」システムに作り替えたいというのが偽らざる本音だ。それに、将来的には、やはりもっともっとミッションクリティカルなシステム構成にしていかなければいけないと思っている。そのためには、結局Linux(UNIX)ベースのシステムを選択する日がいつか来るだろう。ADSL回線も、いつかは光ファイバにとって代わる日が来るだろう。だが、システム開発は本来、常に「仮の姿」として存在している、という風に思うことにしている。現在のシステムは将来のシステムのための青写真なのだ。
