ITアーキテクト Vol.19に記事を書きました

ITシステムを“創る”人のための技術情報誌『ITアーキテクト Vol.19』に記事を書きました。「主要各社のクラウド・サービスに迫る」という特集の中で、Google App Engineに関する部分を担当しています。

ITアーキテクト Vol.19 (IDGムックシリーズ)
ITアーキテクト編集部
アイ・ディ・ジー・ジャパン
売り上げランキング: 1304
また、特集2『主要各社のクラウド・サービスに迫る』では、今日すでにサービスの提供を開始したり、何らかの対応方針を提示したりしているベンダーの中から、特に重要と思われる3社、IBM、アマゾン、グーグルを取り上げ、各社のクラウド・サービスの概要を紹介している。本誌Vol.17ではクラウド・コンピューティングの概要を説明したが、本特集はその続編だ。クラウドの先駆者であるアマゾンと検索サービスの覇者であるグーグルのサービスについてはすでに多くの情報が流通しているが、エンタープライズ向けクラウドを標榜するIBMに関しては、まだ日本語でまとめられた情報が少ない。特に国内のユーザー企業にとって、IBMのクラウド・サービスは気になる存在だろう。彼らが考えるクラウドの方向性を、ぜひ本特集でつかんでいただきたい。

V8 を使って Python で JavaScript を実行する

Google V8 JavaScript Engine の Python バインディングを試してみました。

直近で gumi Platform 上で簡単な OpenSocial ガジェットを動作させるのに使いたかったということが一番の動機ですが、サーバサイドで JavaScript を実行するというのは、これから当たり前の技術になると思っています。今後、モバイル・プラットフォームの台頭とクラウド・コンピューティングの進展により、非力なクライアントと強力なサーバという今までとは違ったパワーバランスになってきます。そこで重要になるのは、いかにクライアント側の処理をシンプルにするかということです。例えば、ブログパーツとかガジェットなんかは静的コンテンツを汎用的に表示させるためだけに JavaScript を使っています。最初からブログエンジン側でこの部分をレンダリングしてあげれば、非力なモバイル端末にとっては負担が減ります。このことは未だムーアの法則から取り残されているバッテリーの持ちにも影響してきます。

さて、早速試してみましょう。まずは、 bitbucket からソースコードをチェックアウトします。

$ hg clone http://www.bitbucket.org/dfdeshom/v8onpython/ v8onpython

次に libv8.so をビルドします。なお、ビルドには scons と Cython が必要ですので予めインストールしておきます。 scons は Ubuntu の場合はパッケージがあるので、 "aptitude install scons" (または apt-get)するだけです。 Cython も Python のパッケージ・システムを使って "easy_install Cython"するだけです。

$ cd v8onpython/v8-src
$ scons library=shared
...
scons: done building targets.

次に Python バインディングのビルドです。

$ cd..
$ python setup.py build_ext --inplace
running build_ext
building 'v8onpython' extension
g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.5
/v8onpython.o -Lv8-src -lv8 -o v8onpython.so
$ mv v8-src/libv8.so .

正常に終了するとカレントディレクトリに v8onpython.so ができているはずです。それでは、実際に使ってみましょう。

$ ipython
Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52) 
Type "copyright", "credits" or "license" for more information.

In [1]: import v8onpython
In [2]: v = v8onpython.Script()
In [3]: v.compile("(function(){return 'Hello World'}())")
Out[3]: 'Hello World'

関連リンク:
» v8 - Google Code
» dfdeshom / v8onpython / source — bitbucket.org