Skip to content

もしもWeb担当者になった一般企業のOLに、矢沢あいの「天使なんかじゃない」を例にしてOracleとMySQLとJSPの関係を説明するとしたら

 

「ねーねー、私、会社のEコマースのWeb担当になったんだけど」

 

ぶほっ、と僕はコーヒーを吹き出す。そして彼女の顔を見た。

 

「君が、Web担当だって?」

 

冗談じゃない。ビデオデッキの録画予約ですらまともにできないような機械音痴の女性をよりにもよってWeb担当にするとは。

 

「なんか前に働いていた会社がIT系だったじゃない?だからその流れで私がWeb担当にされてるんだけど」

「いやいやいやいや・・・前職って、派遣じゃなかった?」

「そう。某電機メーカーで、CEATECの、コンパニオン。展示内容はよく知らないけど。立ってただけだし」

「それは・・・IT系の仕事じゃ・・・ない」

 

それは野球場でビールを売っていた女の子に、野球のコーチを頼むようなものだ。

 

「でもね、これでもけっこう勉強したんだよ。それで、聞きたいことがいくつかあるんだけど」

 

それから彼女の口からはすらすらといろんな言葉が飛び出して来た。

 

「Eコマースのサイトがあるでしょ。それでWebサーバがあってね、それでまあジェイエスピーとかオラクルとか買うじゃない?でもさ、オラクルってなんであんなに高いの?それに、なんのために必要なの?それと、データベースってなに?オラクル以外の選択肢はないの?あと、アパッチってなに?アパッチ族?」

「それはSPA!の読み過ぎだ」

「教えてよー。詳しいんでしょ?パソコン」

「まあね」

「できるだけ簡単に教えて!できればラブストーリーかなんかで」

「無茶苦茶言うなよ」

「矢沢あいのマンガに例えて!NANAで」

「NANAは読んでない」

「じゃ、天ないでいい。天使なんかじゃない、で」

 

かくして、僕は矢沢あいの少女マンガ「天使なんかじゃない」を例にしてデータベースとWebサーバーについて説明することになった。
しかし、こんな無茶な話はない。

ちなみに少年少女読者のために、「天使なんかじゃない」とはなにか説明しておくと

 

明るく元気な女の子、冴島翠(みどり)は、なぜか生徒会に立候補することに。ちょっとワル風なイケメン、須藤晃(あきら)が笑いをさらって生徒会長になり、翠は副会長に。みんな晃は怖い不良だと思ってるけど、翠は偶然、晃が大雨の降る中、捨てられた子犬を拾うところを目撃してしまう。「うふふ。私、知ってるんだ。晃が本当は優しい人だってこと」とかなんとかいって翠は晃にべた惚れ。しかし、晃は高校の美術教師、坂本博子ともなんだか怪しい関係。揺れる翠の女心、そこに幼なじみで元カレでミュージシャンの中川ケンが現れ、翠に告白する。どうする翠!?

 

まあいわゆるひとつのベタベタなラブコメですわ。
愛蔵版もでてるので暇な人はマンガ喫茶で探してみてね。

さあて、困った。

どう説明したもんか。

 

まず、Webサービスの構造について説明しなくてはいけない。

 

だいたい、どのWebサービスでも、こうした構造をもっている。

ブラウザからインターネット経由でWebサーバにアクセスすると、Webサーバでスクリプトが実行されて、スクリプトからデータベースへ情報を格納したり、またはデータベースから情報を読み出したりしてブラウザへ返す。これが最も簡単な仕組み。

たいていの人が疑問に思うのは、なぜWebサーバとデータベースが別れているか、ということだ。

実は、データベースというのは、SDカードのようなもので、もっぱら記憶だけをするために作られている。

それに比べると、スクリプトの方は、EコマースならEコマース、オークションならオークション、ゲームならゲーム、というように目的に応じて作り替える必要がある。

記憶して、検索する、という機能だけは同じだから、そういう部分はできるだけ共通化しましょう、ということでデータベースだけ別になっていることが多い。

 

というのも、データベースが格納するデータは、Eコマースなら、注文情報、銀行なら預金情報といった具合に、絶対に壊れてはいけないし、ミスがあってはならないところだからだ。

 

プログラムも機械も、人間がつくり、人間が操作する以上、絶対に安全、ということはない。

ではどうやってデータベースの安全性を確保するのかというと、ひたすら、繰り返し、テストするしかないのだ。

すると、データベースの価値を決める性能というのは、それそのものの性能ではなく、今までどれくらいテストされてきたか、ということのほうが重要になってくる。

 

どれだけ速くても、またどれだけ安くても、入念にテストされ、長い間使われ続けて来たデータベースの信頼性には勝てないのだ。

たとえば自動車で考えるといい。

何十年も自動車を作り続けて来た会社のクルマと、いきなりそのへんの無職のおじさんが日曜大工で作ったクルマ。

速度が互角として、安全性というものを考えたとき、やっぱり多少性能は落ちても、市販のクルマのほうをみんなが選ぶのではないだろうか。

多くの人が使っていて、長時間入念にテストされたデータベースの方がいいに決まっているのだ。

 

一般に高い信頼性のあるデータベースの開発コストは、少なくとも数億円、それをテストするコストはさらにその十倍はかかると考えられる。

それに対して、Webサービスそのもののであるスクリプトを開発する費用は、ピンキリだが、めちゃくちゃ安い個人事業主みたいなところに頼んだら100万円、きちんとした会社に頼んだら数百万円から数千万円だ。

また、データベースを開発するには時間もかかる。お金だけあればいいというものでもない。

すると、既存のデータベースを買わずに自分で作るとすると、数億円の費用がかかることになる。

これが数百万円で済むのなら、安いものだよ。

 

「でもさ、そうはいっても数百万円じゃん。ライセンス。高すぎない?」

 

彼女は釈然としないようだった。

 

「いや、だから、数億円かけて開発されているものを数百万円で使えるんだよ?」

「んー、でも逆に言えば数億円払えばもうライセンス料払わなくていいわけだ」

「いやいやいや、常にメンテナンスしなきゃいけないからさ。だいたい、オラクルの売上げ知ってる?4兆円だよ?」

「ぎょええええ!」

「4兆円の売上げがある会社に開発力で勝てる下請けがいくつあるか・・・。君の会社、なりは大きいけど当然、社内に開発部隊いないでしょ?」

「うん。でもさ、でもさ、そこまで高くなくていいから、他の選択肢は存在しないの?」

「あるけど・・・」

「それ教えてよ」

「PostgreSQL(ポストグレス)とか、MySQL(マイエスキューエル)とかかな」

「あ、MySQL聞いたことある!それ何?」

「データベースソフト。いま、世界で最も使われていて、最もバグが少ないと言われているデータベースソフトだよ」

「それってオラクルより安いの?」

「ライセンス料だけ見たら断然安いね。1/10くらいじゃないかな」

「それにしようよ!なんでそれにしないのかしら」

「いくつか問題があってね。そもそも、MySQL社はSUNに買収されたんだけど、SUNはオラクルに買収されたんだ」

「ええええっ!?じゃあMySQLもオラクルってこと?」

「そういうこと」

「じゃあ値上げするのかな・・・」

「それは解らないけど・・・」

「それで、天ないに例えるとこれってどういうこと?」

「うーん、晃がSUNで翠がMySQL、博子(美術教師)がオラクルだとすると、翠と晃がくっついて楽しくやっていたら、博子(美術教師)が晃の兄貴と結婚してみんな家族になっちゃったって感じかな」

「よくわかんない!」

「うん。おれも」

「それでジェイエスピーって?」

「それはスクリプト言語の一種だね」

「わからん」

 

JSPが厳密な意味でのスクリプト言語かどうかはともかくとして、Webサーバー側のスクリプト言語にはいろいろある。

有名なところでは、PHP(ピーエッチピー)、Perl(パール)、Ruby(ルビー)、そしてJava(ジャバ)などだ。
なぜ、こんなに沢山の言語があるのかというと、言語を開発した人たちそれぞれの気持ちと事情があったからだ。

それぞれ一長一短があるが、「この言語がいい!」と主張すると他の言語の信奉者から目の敵にされるので、しばしばこれは「宗教戦争」と呼ばれる。

 

完全に独断と偏見で この四つの言語を一刀両断すると、PHPは学生にも使える言語、Perlは年食ったオタクの言語、Rubyは若いオタクの言語、JavaはIT土方と呼ばれるエンジニアの言語、という感じだ。

あ、やばい。いろんな方向から矢が飛んで来た。

どの言語も持ち上げないようにすると、このように全方位から攻撃されるから気をつけよう。
ちなみに僕はどの言語も触ったことがあるし、どの言語も好きだよ♥

 

いい面も挙げておくと、PHPはとにかく覚えやすいから習得が簡単、Perlは一度覚えるといろんなことに使えて便利、Rubyは最先端の言語なのでいろいろと面白い書き方ができて楽しいしコミュニティも活発、Javaは最も潰しがきく言語で、学校で教えたり仕事に使ったりするのに最適で、覚えるべき言語に迷ったらまずJavaをやっておけば間違いない。

あ、褒めても矢が飛んで来た。

 

とまあこんな感じでこの言語が「イイ」とか「ワルイ」とか一概には言えない雰囲気がここにはある。

で、JSPとはなにかというと、Javaの仲間だ。

Javaは、それ自体は汎用言語なので(ちなみにRubyもPerlも同様)、Webサービスを書くにはあまり適していない。
そこでWebサービスを書くのに適した形にしたのがJSP、ことJava サーバページスというわけだ。

 

「わかんない。結局、なんなの?」

「たとえば、Rubyがマミリン、Perlが志乃、PHPがマコだとすると・・・」

「うん」

「女の子なら誰でもいい、という人もいるけど、タキガワマンみたいに志乃(Perl)とつきあっていたけど、マミリン(Ruby)のほうがいいやってなるひともいるってこと。文太はマコ(PHP)が好きだし」

「あのさ、私がそんなに細かく”天使なんかじゃない”の登場人物の相関関係覚えてると思ってる?」

「とにかく、どのスクリプト言語を使うかは、好きずきってことさ」

「確かに、マミリン(Ruby)って、真面目なのに美少女だからオタクに受けそうだもんね」

「そういうこと」

 

コーヒーを飲み欲した。
やっぱり少女マンガに例えるなんてうまくいかないな。

 

「それでもどうしても理解できないのは、やっぱりオラクルって高いよ。どうしてオラクルを使わないといけないの?」

「君のEコマースサイトの会員数って何人くらい?」

「100万人いかないくらい」

「えええっ!?それでクレジットカードとかの情報全部?」

「そう」

「それはオラクルにするなあ」

「えー?どうしてどうして?」

「結局、これって選定した担当者の責任になるからなんだけど、例えば君が社員旅行の幹事になったとしよう」

「うん」

「ちょっと高いけど大手の旅行代理店・・・たとえばJTBみたいなところと、めちゃくちゃ安いけど、聞いたこともないような鶴瓶トラベルっていう代理店だったらどっちにする?」

「うーん、高いのは嫌だけど、社員旅行なら会社から補助もでるし、安くてもボロい宿とかになったらせっかくの旅行が最悪の気分になって、みんなから怒られちゃうからやっぱりJTBかなあ」

「だけどさ、JTBだって絶対にミスをしないわけじゃないぜ?」

「それでもJTBだったらみんな許してくれそうじゃん。仕方ないよって」

「それだよ、まさにそれ」

「あ、なるほど。オラクルならなにかあっても許してもらえるんだ」

「そう。オラクルだったら許してもらえる可能性は高いんだよね。もちろんあくまでそれは社内の話だけど」

「ダイアナ妃がBMWで事故ったとき、BMWがすかさず”ベンツでもあの状況なら助かりません”って声明を出したみたいなものかあ」

「うーん、まあそういうことかも」

 

というわけでお解りいただけたでしょうか?

却って混乱した?

うん、僕もそう思う。

こんどから、少女マンガに例えて説明しろ、と言われたら丁重にお断りすることにします

文・shi3z

 

 

このエントリーをはてなブックマークに追加
はてなブックマーク - もしもWeb担当者になった一般企業のOLに、矢沢あいの「天使なんかじゃない」を例にしてOracleとMySQLとJSPの関係を説明するとしたら
Post to Google Buzz
Share on GREE

No related posts.

Facebook comments:

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*