InfoQ

News

Flexを使ったオンライン語学アプリのスタートアップ企業がその内部を語る

作者 Moxie Zhang, 翻訳者 編集部 投稿日 2008年4月24日 午後12時35分

コミュニティ
Java
トピック
RIA
タグ
Flex

最近ではスタートアップ企業がRIAテクノロジを使って新しいアイディアやサービスを生み出すことは珍しくなくなった。Adobe FlexをベースにBabbel(Babbel)を作っているスタートアップ企業もその良い例だ。InfoQはBabbel(サイト・英語)を提供しているLesson Nine GmbHのCTOであるThomas Holl氏に、Flexを使ったスタートアップのアーキテクチャがどのようにデザインされ実装されているかについて話を聞いた。

まず、Holl氏はBabbelとは何かを語ってくれた。

Babbelはコミュニティベースのオンライン語学ツールです。ドイツ語、英語、フランス語、イタリア語、そしてスペイン語についてのコースがありますが、Babbelではこれらの語学コースに、面白く効果的にボキャブラリを増やしたり文章を作ったりできるようなツールを使ったソーシャルネットワークの楽しみを加えています。

Babbelを作った理由についてはこう語った。

2006年の終わりに私たちがモダンなオンライン語学ツールを探していた時、Babbelのようなものがなかったことに驚きました。今はちょうど状況が変わり始めているようですが、その時はオンラインで利用できるボキャブラリトレーニングはまだとても基礎的なもので、あまりユーザフレンドリでもありませんでした。それにCD-ROMやDVDで買えるマルチメディアアプリケーションは高いだけでなくコンテンツやテクノロジはもはや時代遅れでした。Babbelのコンセプトのお手本になったのは、楽しく使えとても流行っていたいくつかのゲーム機用学習ソフトでした。

FlexとAJAXについてHoll氏はこう述べた。

最初の時点から明らかだったのは、音やアニメーション、そしてより早く応答するためのバックグラウンドでのデータバッファリングといったモダンなマルチメディアの潜在力を私たちのサイトで利用するべきだということでした。昨年の時点ではBabbelに対して私たちが考えていたことにマッチするテクノロジはFlexフレームワークしかありませんでした。AJAXでもいろいろなことが出来たかもしれませんが、そのためには多くのJavaScriptライブラリを扱わないといけませんし、それでもユーザエクスペリエンスにおいてはFlashアプリケーションに及びません。

Babbelがどのように開発されたのかという質問に対して、Holl氏はこのように教えてくれた。

Babbelを4人の開発者で作っていたときは、2人がFlexクライアントに集中し、2人はAmazon EC2(source)上で動くRuby On Rails(source)ベースのバックエンドの開発を行っていました。2007年の5月にゼロから始めて、最初のパブリックバージョンが出たのが2008年1月ですので、開発期間は約8ヶ月でした。

サーバは12000行のRubyコードからできていて、Flexクライアントは50000行のコード(そのうち7000行はフレームワークで生成されたもの)からできています。

私たちは反復型開発プロセスを採っていますが、自分たちには1週間の長さの反復が一番合っています。そして私たちが使っているのはベストプラクティスとされるツールとプロセスで、例えば、バージョン管理にはSubversion(source)、バグトラッキングやドキュメンテーションやコミュニケーションにはTrac(source)、自動ビルドや自動デプロイにはAnt(source)やCapistrano(source)を使っています。

Holl氏はBabbelの開発で経験した問題についても教えてくれた。

クライアントからバックエンドサービスにアクセスするために、私たちはサービスをシンプルな言語で定義するようにしました(WSDLのようなものを考えてもらえばいいですが、私たちのはJSONベースでもっとシンプルなものです)。そして自分たちで作ったジェネレータによってその定義からActionScriptのメソッドを生成し、サービスから(HTTPで)返ってきた(JSON形式の)データを静的に型付けされたValue Object(これらのクラスもジェネレータが生成します)によってクライアントで扱えるようにしました。しかしこのような方法でデータを変換するのは、ある種の機能(例えば人物サーチ)では正しいやり方ではありませんでした。GUI要素を動的に生成するためのコードを書くのは単なる無駄でした。私たちはRailsがオンザフライでHTMLを生成する機能を利用しようと考えました。しかしFlexでサポートされるHTML要素やスタイルの問題でFlexのHTML表示はかなり制限されているので、私たちはMXMLをRailsで生成してクライアントに表示するようにしました。この方法によってサーバがクライアント側のアクションをキックできるようにもなりました(新しいメッセージが届いたらクライアントに通知を表示するなど)。

技術とアーキテクチャに関するRIA特有の問題について、Holl氏は次のことを思い出し語ってくれた。

時々持ち上がる問題は、クライアントがどれだけの状態を持てるか、どれだけ持つべきかということです。この点で良いバランスを見つけるために私たちは何度も改良とテストを繰り返しました。クライアントに関する変更がサーバ側であった時には、次にクライアントからのリクエストがあった時点でクライアントに伝えます(そのためプッシュ型のアーキテクチャを使う必要はありません)。そのためクライアントはいつサーバと同期すればいいかを自ら決めることができるのです。

Babbelで将来役立ちそうなテクノロジは何だろうか。

私たちはこの語学ツールでよりゲームに近い感覚のユーザエクスペリエンスを実現したいと考えています。次の大きな目標は、音声とビデオによるチャット機能を組み込むことです。そして今評価中のAdobeのエコシステムにはエキサイティングな可能性があります。それにネットワークとコミュニティに関して追加したい機能もたくさんあります。また社内チームのためにも、ユーザがBabbelに寄与してくれる可能性を大きくするためにも、コンテンツ管理についてはもっと力を入れる必要があると思います。さらにBabbelをモバイルへも展開したいと考えているので、ゆくゆくはJ2MEやSymbian、あるいはiPhoneでの開発もすることになるかもしれません。

 原文はこちらです:http://www.infoq.com/news/2008/04/flex-startup-babbel

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

BlazeDSとAMFでWebとデスクトップのアプリケーションを構築する

現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。

業務ソフトに手を加えずに暗号化を実現する~秘文の挑戦~

hibun

ウィルス対策ソフトや情報漏えい防止用のソフトは、いわば影の存在です。ユーザの操作性やGUIを工夫する以上に、いかに目立たない存在となるかにその技術を注ぎ込んでいます。ここでは日立ソフトが開発した「秘文」の事例を紹介します。

Google Chartとgchartrbの紹介

Google Chartは、チャートを作成するためのWebサービスです。本稿では、Google Chartのインターフェースと、Rubyコードから簡単にチャートを生成することができるgchartrbライブラリの説明をします。

SOAを超えて: 動的な業務アプリケーションのための新しいエンタープライズアーキテクチャフレームワーク

全二回からなるこの記事では、ダイナミックビジネスアプリケーション(Dynamic Business Applications:DBAs)の開発についての全体的な眺望を、アーキテクチャと方法論の観点から見ていくことになります。我々のゴールは、「ビジネスの変化や、その他に必要とされる変更に対して、いかにして容易に適応できるアプリケーションを構築していくか」を導きだすことです。

ESB接続形態のオルタナティブ

本稿では、Adrien Louis氏がESBベースのSOAに対する2つの接続形態についての賛否について説明しています。その2つとは、会社での単一のESB対「部門毎」に相互接続するESBによるシステムです。

AjaxプログラマのためのJavaOne2008 -GrizzlyでComet!-

誕生から2年を経てCometは「何が出来るのか」という議論から、「いかに実現するか」という議論に関心が移ってきたように見えます。そこで本稿では同じくJavaOneで数多く取り上げられたNetBeans 6.1とGlassFish v3を使いながら、サンプルを交えてCometを解説していく事にします。

SharePoint Webサービスを始めましょう

この記事では、WSS3とMOSS 2007に難しい設定など一切せず、すぐに利用可能なWebサービスと、Javaと.NETからそのWebサービスを消費する方法に目を向けます。

レトロスペクティブのプライムディレクティブに対する問い

この記事の始まりは、知的で思慮深い人たちの魅力的なグループが食事会を終えて話をしているところです。話はレトロスペクティブ(振り返り)プロセスの要であるプライムディレクティブ(最初の指示)に及んでいます。