By Takayuki Kobayashi 2010年5月12日 Leave a Comment

cuculec2

「Cucul EC」とはGoogle Appengine上で動くSaas型ECです。
サーバなどを気にせず、安価にショッピングカートが利用できるものです。

Google Appengineを使用する上で、いくつかのアーキテクトを使用して構成しています。
その構成をいくつか紹介をします。

Slim3
定番。Appengineをやっている人は知らない人はいないのではないでしょうか。
最近、気づいて複数エンティティの取得をinを使って取得することで、パフォーマンスをあげれた。もっといろいろと機能がありそうだ。

Compass
全文検索のモジュール。TOPGATEさんの情報へたどり着き、導入決定。
CompassはJDOを使用しているため、導入をためらったけどやはり全文検索は必須。
格闘をしてました。中身はLuceneであるため、理解は早かった。
最初実装したときは初期化で30秒を超えてしまい、使い物にならなかった。
Compassもいろいろとパラメータがあり、まだまだチューニングができそうです。
今の検索スピードは600ms程度。件数は1000件程度のためまだまだテスト中という感じ。ソート、フィルタ、Limit、Offsetもいけるのである程度いけそう。
後は、大量に投入したとき、どの程度劣化するかですね。
JDOは否定的な意見が多いですが、使い方次第かなというところも少しあります。

Groovy
フロントエンドで使用。インタプリタ言語のため非常に遅い。具体的にはコンパイルに
500ms、実行はJavaなので、数十ms、となっていた。毎回コンパイルが走るものには
限界があります。
なぜGroovyを使っているかというと、GroovyファイルをDataStoreへ保存し、動的に実行することで拡張が可能な形になります。ちょっとForce.comを意識しました^^;
チューニングとしては、ソースはDataStoreにあるのですが、コンパイルされたバイトコードはメモリ上。それもDataStoreに格納するようにし、都度コンパイルをやめました。
パフォーマンスは、ClassLoadに200ms程度、インスタンス作成に数十ms、実行も数十msと、実用に乗るようになりました。
ただ、開発は大変。コードアシストが使えないから・・・

JSONIC
初期データをアップロードする際にシリアライザーとして使用。かなり簡単に利用ができます。

GWT
管理画面はAjaxが定番。JavaでかけるメリットもありGWTを採用。
開発は重い・・・

今後、随時それぞれを細かく紹介していきます。




Sorry, the comment form is closed at this time.

Sorry, the comment form is closed at this time.