ラベル Seasar の投稿を表示しています。 すべての投稿を表示
ラベル Seasar の投稿を表示しています。 すべての投稿を表示

JCMT 2010に参加してきたよ! Cacoo裏側編

0 コメント

はい。先週のブログに書いた通り、
個人的に一番面白いと感じた
「Seasarで動いているWebサービスCacooの裏側」
のセッションについてのメモ等をさらそうかと。

とりあえず、資料はこちらにさらされてます。
一応このブログにも埋め込んでみる。

Tags: Etc

資料内のアジェンダにも書かれてるけど、
今回お話してた内容は、
・Cacooとはなんぞや?
・Cacooが動いてるアーキテクチャの構成
・Cubbyで拡張して何をどう実現してるか
・デザイナーさんとの協業方法
・レスポンスの改善
・質疑応答
って感じでした。

以下、セッションを聞きながらのメモを時系列で。
資料と重複してる部分や、意味不明な所は抜いた・・・はず。

 Cacooはヌーラボが運営・開発している

ヌーラボの仕事
→カクー、Backlog、受託開発を行っている

受託で作ったものをOSSに還元して、
その作ったものをさらに自分たちのサービスで使用している

Cacooとは?
VisioのWeb版
いろいろかけるよ!
・フローチャート
・UML
・ネットーワーク図
・座席配置図

図を描くだけでもなかなかイケてるけど、
リアルタイムコラボレーションもできるよ!

同じオブジェクトを触っている場合先勝ちになる。

別オブジェクトの場合マージされるよ

何のために作ったか?
本社が福岡のため、東京のお客さんとBacklogで文字だけでやり取りするのは結構きつかった
図も使ってたけど、pptで書いてpngにして、と面倒くさかった
ほかの人が編集できなかった
というわけで、図を直接みんなで編集できたりしたらいいなぁということで作った。

図が描けるツールが当時はあまりなかった

最初はUMLをWeb上で書くことができるようなプロトタイプを作った
JSONで情報やりとり

その後FlexやFlashを使えばクロスブラウザ問題を解決できそうだったので
ので社内で利用する為のプロトタイプを作成

社内プロジェクトで運用してみて、いけそうだったので、
Webサービスとして提供した

7ヶ月でユーザー数が現在4万4千超
国数は120カ国以上
ユーザーは英語版が57%以上
英語じゃない問い合わせが来てたりして、ユーザー対応が結構大変・・・

Cubbyで拡張
        ・脱Strutsを目指した
        ・T2も同じ感じ?
  
Plugin
    AOPを使わずに拡張していく  
    それぞれフックできるポイントが提供されている。   

Mayaa
    ・テンプレートの切り替えができる
    Cacooはリリース以前から多言語対応を念頭においていた
    多言語対応用に日本語・英語のリソースをすぐに切り替えられるようにした
  
    1.最初に開発者のみでプロトタイプHTML・機能を作成
    →使いやすさを追求
  
    2.次にイメージを作成
    →イメージをデザイナに伝えて、デザイナにサイトデザインを作ってもらう
  
    3.出来上がったイメージはイラレやPNGだったりするので、デザイナさんに
    それぞれパーツとして切り出してもらい、HTMLコーダーにパーツを渡し、コーディングしてもらう
            id/classのルールが重要
          
            Cacooではs_で始まるid/classは開発者側で使うというルールを規定し、
            それ以外はHTMLコーダーに自由にやってもらった
          
    4.出来上がったHTML/CSSからMayaaで仕上げる
    →動的なコンポーネントを含める
        →JavaScriptでDOMで表示するようなものを含めてもらう
      
    5.日本語の表示が終わったら多言語対応
    →翻訳したい単語・文章をリストアップして、翻訳者に渡す
  
        失敗したと思ったこと。
            翻訳者のCacooへの理解が足りず、翻訳してもらったものが
            ちょっとオカシなものになっていた。
            →実際にユーザーに指摘してもらって修正した

Mayaaとは
    ・最初がはまりやすい
    →公式ドキュメントを参照しましょう
        すでにメーリングリストで質問されている事がたくさんある
       →JSPと同じ考え方で表示しようとするとハマりやすい。
  
    Cubbyのカスタムタグの連携を用意にする拡張もあったりする。
  

レスポンスの改善

    通信速度・距離の問題
    アメリカからCacooやBacklogにアクセスしてみたところ
    画像が表示されないという問題が発生。
  
    サーバーキャッシュ→Ehcacheで解決(主に画像)
    RMIで複数台で分散してキャッシュをするようにしている。
  
    基本はネットワーク通信を減らす・DBアクセスを減らす
  
    ブラウザのキャッシュ
    タイムスタンプが重要

    Mayaaの応用
    InjectionResolverを拡張して、pom.xmlのバージョンを設定、
    JSのバージョン等を動的に変更させるようにした
  
    Hudsonでリリースモジュールを作成することによって、
    リリース漏れをなくすようにした。
  
    回線速度やレイテンシの問題
    →今EC2に乗っけるかどうかを検討している。
  
    現状海外からのアクセスが国内からのアクセスに比べて30倍位遅くなっている。
  
    InjectionResolverを用意しておくことによってEC2に乗り換えたときも
    リソースのパスなどの修正もあまり入らないと考えている

まとめ

CacooはSeasarプロダクトを基盤として動作しています。
  
Seasarを使うことによってサービス開発に集中できました

Seasarを使って魅力的なサービスをじゃんじゃんつくっちゃいましょう!

Javaだって今風なWebアプリ作れるぜ!



質疑応答
・HTML5導入は?
当時検討もしたが、当時はIE優勢だったので、見送った。
HTML5に切り替えればロードが早くなるのは
わかっているので是非やりたいと考えている。
Canvasは早いことはわかっている

英語じゃない質問はどうしてるの?
質問をGoogle翻訳で邦訳し、英語で返答している。

開発チームの人数は?
リリース直前は4名
3,4ヶ月で開発

インフラ構成は?
アプリケーション4台、DB2台?でかなり余裕
現状はたぶん2,3台でまわせる


以上。
最近話題になっているであろうCacooの裏側の事情が聞けて、
非常に興奮しました。

Java Cloud Meeting Tokyo 2010に参加してきたよ!

0 コメント

お久しぶりの更新です。
というわけでJCMT2010に行ってきたので、その所感など。


参加したセッション
1時間目    :    Seasar3がやってくる
2時間目    :    SeasarFoundation社員総会
3時間目    :    デベロッパーのためのAWS講座
4時間目    :    Seasarで動いているWebサービスCacooの裏側
5時間目    :    AWSハンズオンセミナー
6時間目    :    AWSハンズオンセミナー

以上のセッションに参加してきました。
以下、各セッションについての所感

■Seasar3がやってくる
ひがさんが来るべきエンタープライズクラウド時代に向けて、
今後のSeasarをどういう方向で開発していくかをお話してた。
結論から言うと、今のところ考えてるのは、
Springをベースにして、既存のSeasarで行えていたことを
実装していくという方針だとか。
今のところはHotReloadingを
クラスキャストエクセプションが起きないように
実装する、なんてのを考えているらしい。

ただし、これは現段階の考えであって、
今後他の人たちともっと話しをして、
最終的に決めていきたいとのこと。

■SeasarFoundation社員総会
SeasarFoundationとして、
コミュニティの枠を広げていきたいとかどうとか

■デベロッパーのためのAWS講座
一応今日のメイン目的のセッション。
講師がAmazon本社のAWSエヴァンジェリストで、
セッションは翻訳者付で行われた。

基本的にはAWSのサービスの概要説明だとか、
どんなサービスがあるかとかを話していた。
AWSで最近RDSという、クラウドでRDBMSを利用できる
サービスを展開しているが、これはMySQLを
利用しているため、既存のDBがMySQLの場合
簡単に移行できるらしい。

ちょっと驚いたのは、RDSは自動的にログを取っているのだけど、
そのログからDBのバックアップが可能だということ。
そんなのって普通のRDBMSでもできるの?

■Seasarで動いているWebサービスCacooの裏側
タイトルの通り、使ってるアーキテクチャやら、
開発時の苦労話等。
個人的にここが一番濃かったので、
ここについては別で記事をあげようと思う

2010/06/20追記
記事アップしました。
JCMT 2010に参加してきたよ! Cacoo裏側編


■AWSハンズオンセミナー
wktkして行ったけど、ちょっぴりガッカリなセミナーだった。
自分が情報収集しきれてなかったのが悪いのだけど、
アカウント取得前提というのを聞いてなかったので、
実際にハンズオンには参加できなかった。

あと、ガッカリな理由としては、2時間使った割には、
内容がホントの入り口の部分しか触れられなかったところ。
ちょっと前口上というか、AWSについての説明が多かった。
AWSの説明は説明で勉強になったのだけど、
ハンズオンていう位なんだからもうちょっと、
インスタンス作って、あれやこれやイジくって
というセッションにしてほしかったなーなんて思ったり。


以上。そんなとこっす。