中年おっさんによる、シンガポールの大学院入学の第一印象

2011/08/22 11:46:16

■シンガポールの大学院に入学した

 シンガポールの大学は8月が新学期である。最初の2週間は静かだったが、今週は新入生を歓迎するイベントやサークルへの勧誘で騒がしかった。今週は“freshman welcome”の週で、キャンパス中机を並べて、サークルへの勧誘で非常ににぎやかだった。この期間は1週間だけなので、来週からは再び、静かなキャンパスに戻るだろう。

 ところで、少々不満なことがある。私も一応新入生なので、18歳の新入生と一緒に勧誘の机を見て回るのだが、どこも私に声をかけてくれない。多分私のことを近所のおっさんか何かと思っているのだろう。

■講義は大きく分けて2種類

 講義は(私が勝手に決めた分類方法だが)大きく分けて2種類ある。1つはバイオそのものを教えてくれるもの。メンデルから、ワトソンとクリックのDNAの分子構造の発見、遺伝子工学、そして最近の第2世代のDNAシーケンス法の話まで、バイオの基本からバイオテクノロジを教えてくれる。これにはグループで行う課題がついてきたりする。

 おそらく簡単な内容なのだろうが、中にはHIVのDNAシーケンスをGenBankから引っ張ってきて、なんか研究ポイことをやらせるような課題もある。今のところは、何をどうやれば良いのかさっぱり分からないが、講義が進むにつれて、分かってくるのだろう。

 こちらでは、半年間で1000ページぐらいの教科書を読むぐらいの勉強をする必要がありそうだ。大量の本を読むのは、今までのプログラム技術習得で何度もやっていることなので、なんとかなると思うのだが、次から次へと専門用語が出てきて、それを覚えていくのはきついしかし、Wikiで意味を理解して、英語の発音はGoogleのTranslateを使って確認しながら、勉強を進めることができる。インターネットの時代は、実に効率よく勉強できてよい。

 さて、もう1種類は、数学やコンピュータサイエンスの話で、アルゴリズムや統計学や確率論などを、医療への応用や生物学の研究への応用をからめて教えてくれる。ある意味、私の専門なので、こちらは授業だけで理解できるかもしれない。指定されている教科書もそれほど厚いものでもないし、内容も専門用語がそれほど多く出るものではないので、かなりのスピードで読める。これこそ、今まで私がコンピュータ技術習得してきた方法をそのまま使える。

■授業の様子

 バイオインフォマティックスのマスタクラスの人数は、25人ぐらい。それぞれの講義には、その25人の他に、学部学生や他の学科の大学院の学生も来るので、かなり大きい。一番大きな講義は、Introduction of Bioinformaticsという授業で、大教室で、教授はマイクを使って授業する。さらに授業を録画して、それを学生がアクセスできるインターネットのサイトにアップロードしてくれる。MITやバークレー、さらにインドのITT、ついでに最近は東大などが、授業を世界に向けて公開しているが、NTUもその流れに乗ろうとしているのだろうか? 今は講義を世界に向けて公開とまではいかないが、多分そのうち、やるのだろう。

 しかし、個人的には、今の教授のBioinformaticsの授業ではそれは無理だと思う。今の教授の授業を世界に向けて公開したら、『シンガポールに留学しても、何を言っているのか分ない講義しかないので、行く意味なし』と、世界の学生が勘違いしてしまうかもしれない。この講義が唯一、シンガポール英語の克服が必要な授業だからだ。しかし、英語圏に向かう世界の留学生のほとんどは中国人で、彼らにとっての今の教授の授業は、分かりやすいのかもしれない。

 それ以外の講義は、比較的小さな教室で、教授もマイクを使わず講義する。我々日本人は、小学校のころは授業で活発に発言していたが、どういうわけか中学生になると、授業で発言しなくなる。少なくとも、私の時代はそうだった(なぜそうなるのか、よく分からないが)。

 こちらの授業では、様子が全然違う。特にインド人(実はクラスメートの8割ぐらいを占める)が、授業中にどんどん発言する。ほとんどは、教授に問われて発言するわけだ。インドでは、『発言しないと×』みたいな教育を受けてきているのかもしれない。自分が分かっているということを、教授にひたすら自己主張する。難しいところになると、静かになるので、そのあたりがよく分かる。こんな環境で授業をできる教授は、結構楽なのではないだろうか。人前で話をしていて、人からの反応がない時ほど話しづらいものはないが、それがうるさいほどある環境、教授にとっては非常に楽なのなのでは、と思う。

■奨学金制度

 最後に、PH.Dを取得できる、スカラシップを授業の中で説明されたので、紹介しておく。年齢制限は基本的にはないが、30以下が推奨されると書いてあるので50歳に手が届く私は、たとえ条件がそろったとししても無理だと思うが……。

■ITエンジニアの皆さん、目指してみては?

 これを読んでいるITエンジニアの方、生物学などやったこともないので無理などと思っているかもしれないが、Bioinformaticsの世界は生物学とコンピュータ技術者そして数学の専門家が協力して進める学問である。ITのプロなら、まったくもってウェルカムなのだ。現に私は、大学院の入学を許可されてしまった。どうせなら、海外に留学してPhDを目指してみてはどうだろうか。

 PhDなら、アメリカの大学が一番良いのだが、私費では相当お金がかかる。スカラシップもかなり難しいだろう。しかし、シンガポールのスカラシップはアメリカに比べて敷居が低そうだ。私が今、受講しているBioinformaticsでトップの成績をとれば、推薦を受けることができて、最大4年間の授業料が無料、ついでに生活費も出るスカラシップを取得できるらしい。

 シンガポールの研究体制は米国には及ばないし、日本の京大などにも及ばないかもしれないが、研究者の世界共通語の英語で、そしてかなりのレベルの研究ができる。シンガポールでのPhD取得スカラシップは、挑戦する価値があるかも。ご存じの通り、シンガポール政府はバイオに力を入れており、最近こんな記事を見つけた。ガン遺伝子の研究者は、米国に帰国するかもしれないが、他にも多くの世界の一流の研究者がシンガポールの研究機関で研究しているものと思う。

 興味のあるかた、私にコンタクトしてください。教授に可能性について問い合わせるぐらいのことはできます。

バイオインフォマティックスでノーベル賞を……

2011/07/19 0:45:41

 8月から、NTU(南洋理工大学)の大学院でバイオインフォマティックスを勉強することになった。バイオインフォマティックスはコンピュータエンジニアにとって突如現れたサイエンスへの道。もともとサイエンスをやりたかった私は、『これはチャンス』とばかり、その世界に飛び込むことにしたわけだ。

 そして、どうせやるなら、目標は高くノーベル賞を目指したいと思っている。入学前で、現実を知らないからこそ書けることだと思うが、そのあたりについての、素人の考察を書いてみる。現実を知った後の将来の自分や、現在その世界で研究に切磋琢磨している人が見ると、多分『何をあほなことを書いているのか!』と笑われるのだろうが、それはそれで、素人の特権だ。笑われるのを覚悟で書いてみる。

 私の専門はコンピュータサイエンスだ。それゆえそちらの方の準備は不要としても、生物学は30年も前の高校時代に勉強しただけなので、せめて学部レベルの知識ぐらいは準備しておくべきだと思い、生物学を最近ガンガン勉強している。勉強していくと、次から次へとノーベル賞受賞につながった研究成果の紹介が出てくる。それを読み進めるうちに分かってきたのが、ノーベル賞受賞につながる研究内容の傾向。素人が読み散らして得た知識をもとにした内容で、完璧な整理にはほど遠いものだとは思うが書いてみた。

 ノーベル賞につながる研究成果は、世界で行われている同じ分野の研究で、ブレークスルーになるものでなくてはならない。ブレークスルーと言うのは、文字通りの意味で、『世界中の研究現場でぶち当たっている大きな壁を突き崩すもの』という意味だ。それは、今まで説明出来なかった自然現象を説明する画期的な理論だったりすることは当然だが、そのほかに、その分野の実験をするに際しての画期的な方法を編み出したことなども含まれる。

 最初の例、つまり画期的な理論を編み出した例は、DNAの構造を解明して、遺伝情報の複製の仕組みの解明への道筋をつけたワトソン、クリック、ウィルキンスの3氏が受賞した1962年のノーベル生理学賞。

 2番目の例、つまり画期的な実験方法を編み出した例は、DNAの複製と言うか増幅法で画期的な方法、Polymerase Chain Reaction(PCR)、を編み出したキャリー・マリス氏の1993年のノーベル化学賞。PCRのお陰でほんの少しのDNAサンプルさえあれば、その技術を使って大量に複製、つまり増幅し、塩基対情報を読み取ることが出来るようになった。PCRは研究者にとって『夢のような』技術。

 当然ほかにも、多くのノーベル賞があるが、まだ勉強し始めたばかりの生物学の知識では、すべてを挙げるのは到底無理なので、例はこれぐらいにして。

 さて、バイオインフォマティックスで上の2パターンのそれぞれで、ノーベル賞級の研究成果となりえる、生物学の未解明の分野を考えてみた。まず、画期的な理論を見つけて、ノーベル賞をとる道。

 今では多くの生物種のDNAの全塩基配列の読みとりが完了し、種ごとの塩基配列の比較が可能になってきている。その結果分かってきたことが、全塩基対のう ち、突然変異の発生確率から理論的に予測される種間の配列の違いの頻度よりも、配列の違いの頻度が少ない部分の量が意外に多いことだ。

 一般に、生物の生存にとって意味の無い部分に突然変異が起こって塩基対情報が変わったとしても、自然淘汰されず変異の塩基対が残る。それに対して、意味のある部分に発生した突然変異は、大抵の場合は生存に悪い影響を及ぼし、その個体は子孫を残すことなく死に耐える。この事実から推定できることは、現代の時点で読み取ったDNA塩基対で、生物種間での類似性が高い部分は、生物の生存にとって絶対必要な部分だと推定出来るということだ。

 そして今までの研究で、確かに、たんぱく質に変換される部分、つまり遺伝子の部分や、遺伝子の発現を制御する部分は、その理屈通り、生物間での塩基対の違いは少ない。しかし、興味深いのは、違いが少ない部分が、遺伝子や遺伝子の制御部分以外にも大量に見つかったということだ。その部分は明らかに、何か生物の生存にとって重要な機能を持っているのだが、それが何なのか今のところ分かっていない。もし、その未知の機能をバイオインフォマティクスを駆使した研究で明らかに出来れば、たぶんそれはノーベル賞級の研究成果だろう。

 ワトソンとクリックは、有機化学の分子構造の理論、エルヴィン・シャーガフ氏が発見した、DNAの4種類ある塩基でTとAそして、CとGが対になっていると言う事実。そして、ロザリンド・フランクリン氏による、DNAのX線結晶解析法など、他の研究機関の研究成果をもとに、分子模型をレゴブロックのごとく組み合わせて、DNAの構造を解明したわけだ。

 それと同じように、現在、世界中で行われている研究の成果をもとに、コンピュータ上でバイオインフォマティックスを駆使して、そのDNA上にあると推定される未知の機能は解明出来ないだろうか?

 2番目の、画期的な研究のためのツールを編み出してノーベル賞を取得する道についても考えてみよう。現在、たんぱく質のアミノ酸配列はたんぱく質から直接読み取ったり、目的のたんぱく質にトランスレートされるDNA塩基対の情報から、比較的に簡単に解明できる。しかし、たんぱく質の機能は、アミノ酸配列から一意に決まる立体構造で決まる。そして、その立体構造をアミノ酸の塩基配列からコンピュータの計算で求める方法は、まだ部分的にしか成功していない。

 現在のところは、立体構造はX線結晶構造解析や核磁気共鳴分光法などで実際の立体構造から求められているに過ぎない。コンピュータの計算で、立体構造を求めるには膨大な計算量が必要とされ、スーパーコンピュータの活躍が期待される分野だ。最近神戸に完成したという、世界最速のスーパーコンピュータ『京』が、この分野にかなり貢献するだろう。しかし、もし普通のデスクトップレベルのコンピュータで、たんぱく質の立体構造を計算出来るようなアルゴリズムを編み出すことが出来れば、たぶんそれはノーベル賞だろう。

 そんなこんなで、もうすぐ50歳になろうというロートルが戯言を並べているのでした。

大学に合格! オンラインで英会話の特訓

2011/06/28 21:56:58

 私は、曲がりなりにも日系企業の駐在員としてイギリス、アメリカに合わせて10年、フリーのエンジニアとしてシンガポールに4年と、かなり長い間日本の外で生活して仕事をしている。多分、普通の日本人から見れば英語も完璧で、海外で現地人の中でバリバリ活躍していると思われていることと思う。

 しかし、実際のところは、英語で苦労している。前のコラムで、TOEFLについて書いた。シンガポールの大学でバイオインフォマティクスを勉強しようと思ったところ、入学願書とともにTOEFLの結果も提出しなければならなかったのでTOEFLを受けたのだ。結果は120点満点中の77点。ちなみに、120点満点中80点が大学院入学に最低必要とされる点数とされており、米国の超一流大学なら学部に入学するのにも100点以上必要になるそうだ。

 実は、願書提出後、この点数では入学は無理かなと思っていたのだが、なんと入学を許可されてしまったので、思い切って点数を公開することにした。入学を許可されたのが、NTU(Nanyan Technology University)イギリスのTIMES HIGHER EDUCATION社が公開している世界の大学ランキングによると、174位。

 同じランキングで、東大が26位、京大が57位、東工大が112位、 130位に大阪大学、132位に東北大学。残念ながら私が卒業した神戸大は200位以内には入っていない。そう考えると、NTUは多分一流大学だろう。自分でも大したものだと思う。49歳のロートル。27年前に卒業した神戸大学理学部物理学科の時の成績では、大学院には当然行けず、高校の物理の先生にもなれなかった。それにもかかわらず、今回は入学を許可されてしまった。もちろん、私も分かっている。海外の大学は、『入りやすいが、出にくい』ゆえ、入学を許可されたのだろう。

 新学期は8月1日から。大学の授業についていけるのか、それだけが不安である。iTunes UAcademic Earth、そしてvideo lecture netなどで、米国やヨーロッパの大学の授業を受けてみると、なんとかついていける。

 しかし、シンガポールに来て4年になるが、いまだに慣れないシンガポールアクセントの英語にどれだけ対応できるか、それがものすごく不安だ。私が今まで一緒に仕事をしてきた日本人を見ていると、語学のセンスのある人でも、まず最初はシンガポールアクセントに悩む。とはいえ、多くの人はどうも2、3ヶ月で慣れるようだ。私はいまだに慣れていないが…。

 さて、77点と言うひどい結果になった私のTOEFLの成績。これではいかんと、一念発起、オンラインの英会話講座を受講することにした。仕事で英語は使っているのだから、今更と言う感じだが、開発者の私が仕事で英語を使う時間は、一日のうちそれほど多くは無い。話す内容も、進捗がどうかだとか、断片的なプログラミングの方法について簡単に説明したり、要件について断片的な内容を確認したりする程度だ。実は普段の仕事で全然英語力は伸びていないのだ。めでたく大学院を卒業できたら、『どこかのバイオの研究グループの中に、コンピュータの専門化としてもぐりこんで』、などと考えているわけで、そのためには論理的で複雑な内容を、人にしっかり説明できるレベルの英語力が必要だと思ったのだ。

 オンラインの英会話講座を受講するもうひとつの理由は、安いということだ。何と1日45分の、マンツーマンの授業を2コマ、毎日受けてたったの月8000円。この種のオンライン英会話、今、日本でどんどん増えているようだが、ダントツに規模が大きいのがRarejob。結局これを受講する事にした。 ということで、今流行のオンライン英会話授業を私がどういうふうに利用しているか、少し説明する。

 

 まず先生の数。これが驚いた。実は、数えられない。あまりに急激に大きくなりすぎたのだろう。先生の英語レベルをしっかり判定できないという理由で、先生は最初はフィリピン大学の在校生、及び卒業生に限ったらしいのだが、フィリピン大学の在校生、卒業生が全員いるのではないかと思うぐらいの講師の数だ。実際に知りたかったら、Rarejobのサイトにアクセスして、確認してほしい。

 講師は、大学の学部や年齢で選べる。適当な講師を自分の都合のいい時間に選んで、授業の予約を入れる。すると、その時間になると講師からスカイプコールが入り、授業が始まるという仕組みだ。

 講師のほとんどは普通の大学生や、大学卒のインテリにすぎない。英語を教えるための特別なトレーニングを受けてはいないということだ。実際、少数の『プロ』の先生もいるみたいだが、なかなか予約を取りづらい。

 英語のレベルがまだ低い人は確かにプロの先生に教えて貰う必要もある。しかし、ある程度のレベルの人にはプロは不要だろう。それより、英語を使う機会、しかも自分主導で英語を使える機会を確保するために、この授業を使うことをお勧めしたい。

 私は、TOEFLのスピーキングの成績が悪かったので、スピーキングのテストのシミュレーションをしようと、講師に科学技術関連の適当な記事を読んでもらい、それを私が聞いた後に私が要約して説明するようなことをやった。TOEFLで、大学の授業を聞いた後、その授業に関する質問に答えるようなスピーキングのテストがあったからだ。

 それを今でも続けているが、非常に集中力が必要で、毎日、45分の授業を2回、この方式でやるのは、続かない。そこで、最近は、事前に私が専門的内容を準備しておき、授業で私が講師に対して英語でそれを説明し、意見を講師から聞くようなことをやっている。これも、確かに事前に話す内容を準備したりと、負担は重い。そこで、講師を変えて、同じ内容を複数回話すようなことをして、負担を減らしている。こうすると、前の講師から教わったより良い表現法を次の講師の時に使うということもできるので、説明技術の向上につながる。そういう具合に授業を受けているので、私が選ぶ講師は生物学や情報工学、物理学、数学などを専攻している学生や卒業生になる。

 色々な講師に、このやり方、特に私が専門的内容を話すことをやっていると、講師によって、私が話すことを簡単に理解してくれる人と、理解が難しい人もいる。これが、コミュニケーション能力の違いかと思う。

 よく理解してくれる先生は、私が説明に困ると、『こう言うことを言いたいのでしよう』と、より良い英語の表現を説明してくれる。色々な先生の授業を受けているうちに、どの先生がよく理解してくれるのかが分かってくる。すると、私が予約を入れる先生が固まってくる。幸いなことに、普通の日本人で、Rarejobを使う人は、やはりプロの英語の先生を求めるようで、私が『良い』と思った先生とは重ならない。私にとって『良い』先生の予約は簡単に取れるのだ。

 日本人が英語を苦手とする原因の1つは、英語に接する機会があまり無いことであるという。それがほんの少しの金額を出すだけで、克服できる。オンラインの英会話、使わない手はないと思う。

停電が当たり前の世界

2011/06/24 17:33:59

 最近の日本の報道を見ていると、これから夏に向けてどうやって、夏の電源需要のピークに対応するかという話題が多い。シンガポール在住の私には全然関係ない話ではあるが、過去に色々世界を旅したり、仕事で訪問した時の停電に関する経験を少し書いてみる。

 まず言えることは、日本とたぶんシンガポールそして他の少数の国以外、先進国と呼ばれる国でも、電気が供給されるということが、「ラッキー」と言う世界がいまだに多いということだ。今回は、時系列に、私のいろいろな国での経験を並べてみる。経験は古いものが多いが、「発展途上国」と言われる地域の事情は多分、今もそれほど変わっていないと思う。

 まず、アフリカはケニヤの地方都市。約20年前に訪れたケニヤとタンザニアの国境のナマンガ。もちろんケニヤの首都のナイロビとは比べようはないが、決して山の中ではなく、それなりの人口を抱えた地方の一都市だ。ケニヤとタンザニアの国境にあるわけで交通の要所とも言える。その街は、基本的に電気がなかった。夕方になると、突然町中に響き渡る大きなエンジン音。町のどこか知らないが、大きなエンジンベースの発電機が夜の一定の時間だけ動くようで、それがぶんぶん唸るのだ。私が宿泊したホテルは安宿だった。ホテルの廊下までは、それで明るくなったが、私の部屋までには電気が繋がっていなかった。結局その夜は石油ランプの明かりで過ごした……。 

 4年前に訪れたインドの仏教徒の聖地ブッタガヤ。お釈迦さまが菩提樹の下で、悟りを開いたところだ。とりえず、ちゃんとした発電所からの電気は供給されていることになっている町だった。しかし、私が訪れた2、3日前に大雨があり、その影響で送電線が切れて、電力の供給が町中ストップしていた。私が滞在したのは3日ぐらいだったが、その間、結局電力は来なかった。

 そこからバスで1日ぐらいゆられてたどりつくことができるラージギルと言う町。お釈迦様が悟りを開いた後、説法して回ったところの1つとされる。こちらも発電所からの電気は一応来ていることになっていた。しかし、停電していないことが珍しいぐらいで、明らかに電気が来たら「ラッキー」の町だった。そういう町で、お金のある人や少し高級なホテルはどうするか。2通りの方法がある。停電中、小型エンジンで自家発電するか、それとも電気が来ている間に蓄電池に電気を貯めて置いて、停電の間はその蓄電池の電気を使うかだ。この町では、どうも、蓄電池方式の方が「ハイテク」と思われているようだった。しかし、夜電気が止まった後、町中至るところにある自家発電のエンジンが突然唸り始め、その騒々しさには参った。

 6年前。とあるインドのオフショア開発の会社の横浜オフィスに勤めていた。そして、インドはバンガロールに研修で訪れたことがある。事務所の建物の隣に何やら小さな建物があった。それは、大きな自家発電の施設だった。

 バンガロールは、インド有数の大都市でかつハイテク都市である。今のインドの発展を支えている都市である。たしかに、電気は繋がっており、今まで書いた町のように「電気がくればラッキー」ではなく、かなりの確率で電気は供給されていた。しかし、悲しいかな、「時々止まる」のである。

 普段パソコンに向かって仕事をしている我々は、作業の途中で電気が止まる恐怖をよく知っている。私が昔勤めた東京赤坂のベンチャー企業が借りているオフィスのブレーカーの容量が低かった。夏場、特にSaaSのサーバ群がまだオフィス内にあったころ、ブレーカーが頻繁に飛んだものである。バンガロールではこれと同じことが都市のレベルで起こるのである。

 しかし、当たり前のことだが、そこはしっかりと準備している。大抵のパソコンはUPSに繋がっており、停電してもすぐにはパソコンへの電源が途絶えない。停電になると、何が起こるか?部屋の明かりが消えて、エアコンが止まるのである。使われているエアコンはそんな高級なものでなく、かなりの騒音を出しながら運転するのだが、停電とともに騒音が止まり、オフイスが静寂に包まれることになる。我々はじっと睨んで仕事をしていたパソコンの画面から目を離し、「again?」つぶやいた後、再び仕事に没頭する。4、5分後に突然エアコンが再び唸り始めることになる。

 最近、フィリピン人から聞いた話。フィリピンでは、首都のマニラでも時々停電するらしい。ただし、インドのように1日に何回も停電するわけではない。しかし、停電になることが多いのは、クリスマスのシーズンとのこと。クリスマスが近づくと、夜遅くまでパーティーで明かりをつけている人が多くなり、電力需要が高まるのが原因らしい。

 最後に、先進国のイギリスの例。私は合わせて7年ぐらいイギリスに住んでいたことがある。ロンドンの都心や、郊外のウインザー城の城下町などに住んでいた。停電は年に数回ぐらいはあったと思う。夜、明かりが消えるとまず、家のヒューズが飛んだこと疑う。ブレーカーではない。ヒューズである。私が住んでいたアパートには、ブレーカーなどという「ハイテク」なものはなかった。ヒューズが飛んでいることを発見したが、スペアのヒューズがない。これはかなり危険なのだが、クリップをまきつけてヒューズの代用とした後、近くの電器屋に走ったこともある。ところで、年に数回あったのは、自分の部屋のヒューズが飛んで起こった停電ではなく、ある一定の地域の電力供給が全てストップする本当の停電だが、その区別は窓の外を見て、他の家の明かりが消えているか否かでわかる。

 ところで、現在シンガポールに来て4年を超えたが、今までのところ私の住むアパートで停電になったことはない。勤務するオフィスで、汎用機などの大きな電力を食うハードウェア満載のマシンルームで過負荷になり、私が仕事をしていたオフィスの電源が落ちることが1回あったが、これはシンガポールの電力インフラが原因ではないだろう。

 こういう例と比較して、日本の電力は少なくともここ30年ぐらいは、100%停電はないと思えるほど電力の品質は高かった。原発事故の絡みで、今回日本の電力需要と供給の図が記事に載ることが多い。供給の底辺を支えるのが原子力発電所。24時間365日、一定の電力を供給している。止めるのは簡単だが、再開にコストがかかるという原子力発電の特性からそういう使い方をされるのだろう。

 そして、火力発電や水力発電が変動部分を供給する。日本の電力会社は、夏のピークを迎えてもかなりの余裕があるように電力の供給力を準備している。そして、それが今までの日本の電力の品質が高い理由だろう。

 今回、どうやら、夏に向かって、その余裕の部分がなくなるらしい。つまり、供給力が余裕のない状態で、普通の国と同じになるということだ。普通の国(それはけっして発展途上国ではなく先進国も含まれる)と同じになるだけなのだから、別に大きな問題でないのかもしれない。しかし、日本人は今まで停電は起きないという前提で、生活や仕事をしてきた。電力の不安定さに対する準備が出来ていない。パソコンにUPSには繋げていないし、家庭にロウソクや懐中電灯の備えは無い。自家発電の設備もないし、停電時に備える大きな蓄電池もないのだ。

 隠すことはないだろう。私は、原子力発電推進派だ。この世に100%安全なものなど何もない。風呂に入って溺れる人が、必ず年に何人かいる。自分の家で寝ていて、突然人工衛星や隕石が落ちてくる確率はゼロではない。それにも関らず、今まで、原子力関係者は「原発は100%安全だと言って来た」。100%安全だと言わないと、作らせてもらえなかったからだ。そして、その結果、100%安全なのだからということで、もし万が一事故が起こった時の備えが、疎かにされてきた。その結果が、福島原発危機だ。

 100%安全と言えないから、メンテナンスで停止中の原発の再稼働の許可を出せないと言う、全国の原発を持つ知事。彼らは、同じ間違いを犯そうとしている気がする。

Azure上で動くWebサービス「スワップスクエア」の構築方法

2011/06/20 14:19:10

 スワップスクエア。聞いたことがない言葉だと思うが、これは前回のコラムで私が紹介した、Microsoftのクラウド、Azure上に私が構築した書籍管理・物々交換のWebサービスである。

 ということで、前回予告したように、本システムについて、技術的に突っ込んで中身を説明してみる。

Azureに関して

 スワップスクエアはクラウドに乗せたシステムだが、実際のアプリジェーションは普通のウェブアプリケーションと基本的に何も変わらない。ASP.NET MVC3+JQuery+NHibernate+SQL Serverで普通にWebアプリケーションを作っている。マイクロソフトの「既存のWeb applicationを容易にAzureに移せるようにする」という方針の賜物だろう。普通、クラウドとくれば、Relational DBを使わずに作るらしいが、AzureはMicrosoftのRelational DBである、SQL Serverをサポートしている。ということで、現状はAzure特有の機能を一切使っていない。しかし、将来使用を考えているものに以下が有る。これらは、基本的にスケーラビリティーが重要になって来る段階で、必要になってくるものと判断している。

構成情報の格納場所を今までのWeb.configから、ServiceDefinition.csdfとServiceConfiguration.cscfgに移す。

 クラウドの大きなメリットの1つとして、Webサーバ数や、ワークロードを処理するサーバ数を簡単に変更できることがある。Azureではサーバ数を自動制御するためのAPIが公開されており、時間帯に応じてサーバ数を自動的に変えることや、実際の負荷をアプリケーション自体が『感じて』サーバ数を変えるようにすることも可能だ。そうやって変えるサーバ数だが、サイトにアクセスするユーザーが大きなものになると、5~10個と増えていくものだと思う。その時、構成情報がWeb.configにあるままだと、サーバ一毎にコピーを載せなければならないうえ、有効にするためにはWebのプロセスを再起動しなければいけないため、メンテナンス工数が大きなものになる。ところが、AzureがサポートするServiceDefinitoin.csdfとServiceConfiguration.cscfgを使うと、すべてのサーバに一斉に、しかもダイナミック、つまりWebのプロセスを再起動することなく変更できる。SeriviceDefintion.csdfとServiceConfiguration.cscfgの違いだ。ServiceDefinition.csdfは、どういう構成情報があるかという構成情報のメタ情報だ。SeriviceConfiguration.cscfgには、実際の構成情報が入る。

セッション情報の格納場所を、Blob storageに移す。

 Azureでも、InProcのセッション、つまりサーバのメモリ上にセッション情報を格納する方式はサポートされる。しかし普通のWebサーバでクラスタを作るときに使われる、StateServer(セッション情報の格納用に特別のサーバを準備)や、SQL Server(SQL Server上にセッション情報を保存)はサポートされない。そこで、Azureで複数のWeb Serverを使う時までに、セッション情報を複数のサーバでシェアする仕組みが必要になってくる。現状、それはBlob storage上に用意するらしい。スワップスクエアでは、セッション管理は1つの独立したクラスで実装しているので、そのクラスを入れ替えるだけで、セッション情報の格納場所を変えることができる

データをTable Storageに移す。

 Relational DBの欠点はスケーラビリティの低さだ、サイトの負荷が増えて、DBの能力の増強が必要になった時に、できることは限られてくる。1つは、単純にDBが乗るサーバの性能を上げること。もう1つは、DBに乗せるデータを分割し、複数台のDBサーバで処理ができるようにすること。最初のオプションは簡単だが、コストの問題がある。また、サーバの性能をあげると言っても、それには限界がある。2番目のソリューションはアプリケーションの構造自体を変える必要があり、難易度が高い。

 そこで、一般に高いスケーラビリティが前提のクラウドコンピューティングでは、Relational DBは使われない傾向にある。その代わりに使うのが、Table storageだ。実際、スワップスクエアがSQL ServerからTable storageに代えないと立ちいけない状態までに負荷が大きくなるのが、いつになるのか分からないが、その時は、多分それほど大きな変更なくTablle Storage使用に切り替えることができると思う。ApplicationのアーキテクチャでDBアクセス層がRepository patternを使いきれいに分離できているからだ。

Azureの課金について

 他のShared Hostingの費用と比較して、格段に値が張る。現在使っているのが、S(Small)インスタンスという、1,6GHzのSingle coreのサーバで、通常価格が$0.12/Hour。1カ月使い続けるとして、 $87/Month。それとは別に、データ転送、Storage、そしてSQL Serverなども別料金で課金される。合わせると、多分$100/Monthを超えるだろう。少なくとも今の段階のスワップスクエアは趣味レベルで、収入はゼロ。とても、この額は払えない。

 それでも、今回Azureに乗せることにしたのは、パソナテックなどがやっている、6カ月分の使用料のキャッシュバックキャンペーンがあったからだ。マイクロソフト自体も全世界的にキャンペーンをやっている最中で、今年の9月30日まで無料というパッケージもあるが、それはコンピューティングインスタンスがXS(Extra small)と小さい。実際それも試したが、とても実用的な性能を出せるものではなかった。

 ということで、少なくとも6カ月間はAzure上で運用することにした。そして、もし6カ月後、収益が出る状態になっていれば、そのままAuzreを使う。その場合、性能アップの必要性も高まっているはずだ。しかし、収益が出るほどまでユーザー数が増えていなければ、つまり性能を早急に上げる必要がないと判断されれば、6カ月後は、他のHosting Serviceが提供する環境に移すことを考えている。

 $100/Monthの金額、つまり月1万円以下。企業ユーザーなら、課長さんのレベルの判断で決定できるぐらいの額だ。しかも、その額、自分でサーバを立ち上げて、ネット接続環境をと唱えるのにかかる費用と比較して、確かに安いのだろう。しかし、私のように『趣味の開発から、あわよくば大規模サイト』と考えている向きには少し高すぎる。

スワップスクエアが使う外部インターフェイス

 次にスワップスクエアの作りについて少し。プログラムのアーキテクチャや構造を説明すると、長くなるので、アマゾンのWeb serviceと、本に印刷されているISBN情報のバーコードを読み取ってくれる、Katanshiバーコードリーダについて書く。

アマゾンのWeb service

 スワップスクエアでは、書籍の情報はアマゾンが提供するWeb serviceの1つ、“Product Advertize API”を利用している。これを使い、ISBNコードを入力して直接アマゾンから書籍情報を取得して、その情報をスワップスクエアに登録するか、それともキーワードから検索してヒットする書籍の中から該当するものを選択して、それを登録するかのどちらかが可能だ。

 スワップスクエアの収益源の一部として期待しているものに、アマゾンのアフィリエイトがある。Webサイトからアマゾン上の商品へのリンクを貼り、そのリンクからアマゾン上の商品の購入に至った時、売上の何パーセントかが、報酬としてアマゾンから提供されるのが、アフィリエイトだ。それを実現するためにはリンクに、リンク元の情報が含まれていないと行けない。Product APIで取得するリンクにはその情報が含まれており、スワップスクエアからアマゾンへのリンクにはすべてそのリンクを使用している。結果、スワップスクエア経由でアマゾンに至り、そこからアマゾンでの商品購入に至ったユーザーが増えると、アフィリエイトの収益が増えることになる。実際どのくらいの収益になるのか。そこら辺りは、まだ分かっていない。多分、それほど期待できないだろう。

Katanshi バーコードリーダ

 スワップスクエアを作るか否か迷っていた時、一番の課題だったのが、ISBNコードを入力する手間だった。ISBNコードを手入力しなければいけないようでは、手間がかかり過ぎる。そこで、ユーザーに市販のバーコードリーダを購入してもらい、それを使ってISBNコードを入れてもらうことを考慮した。しかし、普通には簡単には手に入らないバーコードリーダを、普通のユーザーが気軽に手に入れてくれるかと思うとそれも疑問があった。

 そして、もしかしたらウェブカムからバーコードの画像情報を読み取って、それからバーコードを出力してくれるソフトウェアがあるのではないかと思い、ネット上のいくつかのソフトを試した。ほとんどは反応が遅すぎるなど、とても実用的に使えるものはなかった。そんな時に、見つけたのがこのKatanshiバーコードリーダ。Far East Russia(極東ロシア)に会社があるらしい。ウラジオストックか、ナホトカか? と思いを馳せたが、そんなことはどうでもいい。実に素早く正確にバーコードを読みとってくれる。しかも無料。ということで、Katanshiのお陰で問題をクリア。開発をスタートさせることができた。

@IT Special 注目企業
@IT Special ラーニング

エンジニアライフ 最新の投稿コラム

@IT自分戦略研究所 新着記事

エンジニアライフ スポンサー

コラムニスト プロフィール

山本保男
シンガポールでフリーのソフトウエア開発をしている経験10年の日本人エンジニアです。シンガポールに来て3年になります。10年間、主にベンチャー企業でSaaSシステムの開発を、少数先鋭のチームを率いて担当してました。現在シンガポールで起業を目指して準備中。

- PR -
@IT Special 注目企業
インデックス

@IT Special ラーニング