アンケートご協力のお願いgihyo.jpでは,2010年度に向けて豪華プレゼントが当たる読者属性アンケートを実施しております。ご協力ください。

gihyo.jp » LIFESTYLE STAGE » 連載 » プロジェクト Wassr 挑戦者たち » 第2回 Wassr開発の舞台裏

プロジェクト Wassr 挑戦者たち

第2回 Wassr開発の舞台裏

モバイルファクトリーの技術者の松野です。

今回はWassr(ワッサー)の技術的な側面についてのお話をさせていただきます。

フレームワーク

Wassr開始以来,「WassrってRailsでできてるんですか?」とよく聞かれるのですが,WassrはRailsではなくSledgeというフレームワークでできています。Sledgeはlivedoorが公開しているフレームワークで,弊社では創業以来一貫してSledgeを使いつづけています。Sledgeの魅力はその柔軟性にあり,公開されてから数年たった今の現状でも十分実用に耐えるフレームワークです。

サーバ構成

Wassrは2007年6月20日現在,16台構成で動いています。詳細は図1を参照してください。使用しているソフトウェアはすべてオープンソースです。これは,何か問題が起きたときや,そのソフトウェアについていない機能を追加したいときなどに,自分で対応したいからです。

図1 Wassrのシステム構成

図1 Wassrのシステム構成

実際,弊社で利用しているロードバランサのPerlbalには,2のプラグインを追加して運用しており,両方ともオープンソースで提供しています。

アプリケーションサーバはApache 1.3+mod_perl,静的コンテンツの配信にApache 2,ロードバランサにPerlbalを使って配信しています。ごくごくありふれた構成です。

データベースにはMySQL 5を使っています。弊社では初の5系の採用でしたが,とくに問題なく運用できています。

キャッシュ用のサーバとしてmemcachedを使っています。かなり高速に動き,複数アプリケーションサーバでキャッシュを共用できるため便利に使っています。非常に高速に動くので,セッションの保存用サーバとしても利用しています。

非同期な処理を行うためにTheSchwartzというライブラリを用いています。これはSixApartがオープンソースとして提供しているJobQueueシステムです。MySQLを使用した素朴な実装となっているため非常に扱いやすいです。

Wassrでは,RSSの生成やIMでの通知,ブログパーツ用の画像の合成などに利用しています。これらのものはほぼ静的なコンテンツなので,アプリケーションサーバで毎回生成するのも馬鹿馬鹿しいですし,キャッシュするにしても初回はアプリケーションサーバで処理することになってしまうため,ヒトコトが更新されるタイミングでJobQueueにenqueueして,TheSchwartzの常駐プロセスが随時処理する構成にしています。

API

WassrはAPIをサービス開始時から備えています。APIを用意することにより,クライアントソフトやマッシュアップサービスの登場を期待することができます。すでにいくつかのサービスで利用されています。

JSONP,JSON,RSS,CSVの各フォーマットに対応しており,Webサービスで使いやすい仕様になっています。

また,一部APIにおいては,Twitterとの互換性を持っています。これにより,Twitter向けのアプリケーションの移植はAPIのURLを変えるだけで良いので,非常に容易になっています。

絵文字

Wassrでは絵文字を非常に重視しています。

絵文字は3キャリア+ウィルコムに対応しています。絵文字は3キャリアで,同じ意味の絵文字があるものは相互変換しています。

この処理にはEncode::JP::MobileというPerlのライブラリを使っています。これはSixApartのmiyagawaさんが開発されたライブラリですが,相互変換機能は私が追加してcommitした機能です。

図2 Wassrで絵文字を活用

図2 Wassrで絵文字を活用

SLのAPI

SecondLife用のAPIも用意しています。SecondLifeでは,RSSなどを読むことはできませんので,SecondLifeで扱いやすいCSV形式でフィードを配信しています。

また,そのAPIを利用した公式のSecondLife用HUD(ヘッドアップディスプレイ)も配布しています。一般ユーザに提供しているAPIをそのまま使っていますので,一般ユーザも同等のものを作成することができます。

SecondLife用APIに機能を追加する場合には,APIのほうを先にリリースし,公式HUDへの機能追加を少し時間を空けて行うことにより,API開発者のモチベーションアップを図っています。

図3 SecondLifeとWassrの連携

図3 SecondLifeとWassrの連携

著者プロフィール

松野徳大(まつのとくひろ)

株式会社モバイルファクトリー システム開発部所属。携帯向けアフィリエイトサービスの開発運用,PodCastingサービスの開発運用,ブログ広告システムの開発運用を経て,ワッサーの開発を行った。フレームワーク関連の技術に興味があり,日本で最初にRailsによるオープンソースの掲示板システムイナモデレーダー6を開発公開した。

ブログはhttp://d.hatena.ne.jp/tokuhirom/など。

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

読むウェブ ~本とインタラクション

ディスプレイで読む活字とそのインタラクション(interaction:相互作用)について,最新Webを紹介しながら読み解いていく。

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

Windows phoneアプリケーション開発入門

Windows Marcketplace for Mobileがサービス開始され,作成したアプリケーションを個人でも世界をターゲットに公開できる環境が整ってきました。これを機にWindows phoneアプリケーションの開発をしてみませんか?

ここは知っておくべき!Windows Server 2008技術TIPS

5年ぶりのサーバOSとなったWindows Server 2008が出荷されて早2年。2009年にはR2が出荷され,再び注目を集めています。発売前から実施したトレーニングによって感じた,インフラエンジニアの方々に知っておいていただきたい機能を中心にご紹介します。

キーパーソンが見るWeb業界

本連載はWeb Site Expert/gihyo.jpとの連動企画です。阿部淳也, 長谷川敦士, 森田雄のお三方による,Web業界をテーマにした座談会です。

きたみりゅうじの聞かせて珍プレー

ソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。みなさんからの投稿もお待ちしてます!

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

まだ間に合う「ITパスポート」受験対策 原山先生の短期合格塾

この連載では,4月18日のITパスポート試験の受験に向けて,短い期間で効率良く受験対策を行う方法や,確実に得点するための裏ワザなどを伝授していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス