たけまる / 2008-04
2008-04-21 Mon
_ Google App Engine のデータストアは Bigtable をどのように使っているのか [gae][bigtable]



Google App Engine (GAE) が発表されてから2週間ほど経ちます.GFS やBigtable という名前だけはよく耳にするようになりましたが,Bigtable
と GAE のギャップについては話題になっていないように思います.
Bigtable は multi dimensional sorted table と言われるように,
primary key (row key) でソートされたテーブルでしかありません.つま
り,GAE のデータストアが提供するような多様な検索機能は持たないわけ
です.というわけで,GAE のデータストアを実現するために,Bigtable
がどのように使われているのかを考えてみました.
# この件について,もし論文などが発表されていたら教えてくれると嬉しいです.
《続きを読む》
2008-04-16 Wed
_ AtomPub のエラー処理について [atompub]



daiba さんから召還されたので,あんまり書くこともないのですが,AtomPub のエラー処理について簡単に説明します.
エラーについて AtomPub 仕様 が定めていることはほとんどありません.
- HTTP 仕様に従ってステータスコードを正しく使うように
- エラー時は 4xx, 5xx を返すように
- PUT においてバージョン違反 (ETag の不一致など) があったときは
412 Precondition Failed を返す
- 認証やアクセス制御のエラーは 401 Unauthorized や 403
Forbidden を返す
- 人間が読めるようなエラーの説明を含めるべきである
これだけです.レスポンスの書式については何も定めていません.
《続きを読む》
2008-04-10 Thu
_ AtomPub - Catalyst::Controller::Atompub v0.5.0 [atompub][catalyst]



zigorou さんからアドバイスをもらいつつ,Makefile.PL も直してもらいつつ,コレクション URI の変更方法を修正しました.いままでは,コレク
ション URI を変更すると EditURI やサービス文書がおかしくなることが
あったのですが,完全に直っていると思います.
http://svn.coderepos.org/share/lang/perl/Catalyst-Controller-Atompub/trunk
# Atompub の export が多いのは,今さら変更できないということで見逃
# してください ><
一ヶ月近く前に,daiba さんから "URI がおかしい" という報告をもらっ
ていたのですが,わりと面倒な修正だったのと,僕自身は問題になるよう
な使い方をしてなかったので,しばらく放置してしまいました (ぉ.ごめ
んなさい.
問題になっていたのは,ユーザごとに別のコレクションを用意する場合で
す.たとえば,foo さんは /collection/foo で,bar さんは
/collectino/bar という感じです.コレクションを GET するときは認証不
要とし,POST などの書き込みは対応するユーザのみ許可します.また,
/service ではサービス文書を提供します.サービス文書にはコレクション
URI が記載されますが,ユーザに合わせて変更します.
ソースコードの samples/OurBlogs にサンプルがありますので,これを使っ
て簡単に説明します.
《続きを読む》
2008-04-09 Wed
_ AtomPub - サービス文書の記述力 [atompub]



(2008-06-26 追記) その後の動向を [2008-06-26-1] に書きました.ZIGOROu さんと Catalyst::Controller::Atompub をいじっていて,コレク
ション URI をデフォルトから変更したときのあれやこれやを修正したんで
すが (CodeRepos にあります),それについて書く前にサービス文書とその
欠点について簡単にふれておきます.
AtomPub サーバを開発していると,コレクションの設計には力を注いでも,
サービス文書はおざなりという人が多いのではないでしょうか.サービス
文書はとても影が薄いように思います.ひとつはサービス文書がなくても
動作する状況が多いこと,もうひとつは Atom API 時代には存在しなかっ
たことが理由でしょう.
《続きを読む》
