yohei-y:weblog

XML と REST/Web サービス関連の話題が中心の weblog です

2009-02-15

RESTレシピ ―― クールなWebシステムへの道しるべ【最終回】リソースモデリング

2年間 WEB+DB PRESS で連載してきましたが、今回ついに最終回となりました。 正直 REST ネタでこんなにも書くことがあるのかと今でも不思議です。 ほとんどコードが登場しないで文字ばかりという異色な連載を載せ続けてくれた編集部さんに感謝です。 あと毎回締切ギリギリになってすんませんでした。

ところで最終回のネタですが、連載を始める前からずっと書きたかったリソースモデリングについてやっと書くことができました。 まだまだ確立された手法とは言い難いですが、僕なりにまとめてみたものです。 みなさんの Web システムを RESTful にするお手伝いができればいいなと思っています。

ありがとうございました。

photo
WEB+DB PRESS Vol.49
WEB+DB PRESS編集部
技術評論社 2009-02-24

ラベル: ,

2008-04-11

連載読んでても楽しめた。子飼弾のアルファギークに逢ってきた

WEB+DB PRESS 編集長の細谷さんから献本してもらいました。ありがとうございます。

WEB+DB PRESS は毎号もらっているし、弾さんの連載もいつも読んでいるのでそんなに読むところないかなーと思っていたのですが、 意外と(失礼!)楽しく読めて、空いた時間2,3時間でさくっと読了しました。

本書の対象読者は弾さんのまえがきに書いてあります。

世界を変えたいあなた、ギークの世界へようこそ。ギークとなる最短の道は、ギークを知ることです。本書はそんなあなたのためにあります。

自分のことを思い出しても、Web に出会って以来、世の中にいるすごい人々に大いに刺激を受けました。 本書はそんなソフトウェアエンジニアの入り口に立っている若者(には限らないだろうけど、主に)に読んでもらいたい本です。 昔はすごい人と簡単にコミュニケートすることができなかったけれど、今はblogでフラットにつながれるので、 本書を読んだら登場人物のブログをどんどんRSSリーダーに追加していくといいですね。 そういう新米エンジニアさんが羅針盤的に使える本だと思います。

よかった
縦書きは良い。読みやすい
版型も良い。手ごろで読みやすい
きたみさんによる弾さんのインタビューもよかった
もう一歩
登場する人全員の URI リストがあればよかった。今からでもgihyo.jpでOPMLを提供すればいいのでは
せっかくだから注のインデックスも0からはじめればよかった
索引もあればよかったような

それにしても弾さんの写真がいっぱいですw弾さんファンにはたまらないのではないでしょうか。

ラベル:

2008-01-19

RESTful Web サービスの読みどころ: 4章 リソース指向アーキテクチャ(ROA)

t-wada さんも書かれてますが、この4章は本書の一つの山場です。 RESTの制約に基いたWeb技術(HTTP/URI/XML)ベースの具体的な アーキテクチャであるリソース指向アーキテクチャについて説明しています。

先週、池袋のジュンク堂に以下のような POP を置いてきたのですが

この一つ目の質問「URIをメールで送れるのはなぜか?」 についての回答がこの章に書いてあります。 キーワードは「アドレス可能性」と「ステートレス性」そして「統一インターフェース」です。

Web 上のリソースは URI によって「アドレス可能」となります。 すなわち、「このWebページ」とか「この写真」というリソースを URI によって 指し示すことができるようになります。 URI をメールに書くためには、このアドレス可能性という性質は必要不可欠です。 URI が発明される以前は、「example.com というサーバの 80番ポートにアクセスして、GETメソッドを /foo/bar というパスに送る」というように自然言語で書かなければならなかったものが、 統一的な識別子一つでアクセスできるようになりました。

また、HTTPはステートレスなプロトコルです。 ある Web ページを取得するのに、 事前条件やセッション初期化などは(基本的には)必要ありません。 メールでもらった URI をブラウザのアドレス欄に入れるだけでアクセスできるのは ステートレス性のおかげです。

そして統一インターフェースです。 たとえ URI があって、ステートレスでも、 どのようなメソッドを発行すればいいのかがわからなければ、 そのリソースには一生アクセスできません。 HTTP メソッドが固定されているからこそ、URI にアクセスできるのです。

これ意外にも状態の話や表現の話など、盛り沢山ながら比較的ページ数の少い4章は、 REST はだいたい知っているからもっと具体的な設計のことを知りたいよ、 という方にピッタリの章だと思います。

photo
RESTful Web サービス
Leonard Richardson Sam Ruby 山本 陽平 株式会社クイープ
オライリー・ジャパン 2007-12-21

ジュンク堂さんには販促アイテムであるTシャツも飾ってありました。 同じTシャツがプレゼント中です。

ラベル: ,

RESTful Web サービスTシャツプレゼント企画

RESTful Web サービスのTシャツプレゼント企画を始めました。

http://blogs.ricollab.jp/webtech/2008/01/gifts/

詳細はリンク先を見てください。 すでに感想を書いていただいている方ももちろん応募可能です。 どしどしご応募ください。

「RESTful Web サービス」は Amazon でずっと在庫切れしていたのですが、やっと復活したようです。 池袋のジュンク堂にはこの記事を書いている時点で81冊在庫があるみたいです。 なかなか手に入らなかった方もこの機会にぜひ。

ところでジュンク堂といえば、先日池袋店にこの本を宣伝する自筆のPOPを置いてきました。 高橋さんに店員さんを紹介していただき、POP用紙まで送ってもらいました。高橋さんすごいっす。

ラベル: ,

2007-12-20

RESTful Web サービスの読みどころ: 3章 RESTfulサービスの特徴

RWSが本屋さんに並びはじめました。 今日外出のついでに神保町に行ってみたら、 三省堂は10冊、書泉グランデは16冊も平積みにされていて 結構圧巻でした。

今日は3章です。

3章では、きちんと RESTful で広く運用されている 数少いサービスの一つである Amazon S3 の ruby クライアントを作りながら、 RESTful な Web サービスの設計とはどんなことなのか、 そのサービスのクライアントはどう作るのか、を解説します。

僕は S3 について、これまであまり知らなかったのですが、 この章を読んでよく設計されているなー感心しました。 もちろん S3 には接続性という、本書で提唱されている ROA に 則っていない部分があるのですが、 それを差し引いても設計の参考になると思います。 特に S3 の認証と認可の仕組みは サービスそのものに課金を考えた場合にとても参考になるでしょう。

photo
RESTful Web サービス
Leonard Richardson Sam Ruby 山本 陽平 株式会社クイープ
オライリー・ジャパン 2007-12-21

P.S. 3章では ActiveResource の話もありました。

ラベル: ,

2007-12-17

RESTful Web サービスの読みどころ: 2章 Web サービスクライアントの作成

先週金曜日「RESTful Web サービス」が手元に届きました。 こうやって手に取ると実感がわいて嬉しいですね。

写真はこの半年ずっと鞄の中にあってボロボロになってきた原書(右)と金曜に届 いた翻訳版(左)、そしてオライリーの中の人からいただいた原書カバーのT-シャ ツです。

ところで、 先日見た働きマンの第9話で、本の出版には様々な人がかかわっていることを 再認識しました。 著者はもちろん、編集者、印刷所のみなさん、製本所のみなさん、営業担当者 配送に関わる方、書店の方々などさまざまな人が関わっているんですよね。 こうやって本が出て、実際に書店に並んで買えるようになるのはすごいことだ と改めて感じた次第です。

さて、今日ご紹介する2章ですが、この章では del.icio.us のクライアントを 様々な言語で作ってみる、という内容になっています。 del.icio.us の API は RESTful じゃないじゃん、というつっこみへの回答は 書籍に譲るとして、ここでは苦労話をひとつ。

本書では、ほとんどのサンプルコードは Ruby を使って記述されています。 しかし、本章では Ruby, Python, Java, C#, PHP, JavaScript, curl のサンプルコー ドが、そして ActionScript, C, C++, Common Lisp, Perl のライブラリにつ いての言及がされています。 これをチェックするのが結構大変でした。 Common Lisp の HTTP ライブラリは URL が切れていて、 編集者さんに原著者に問い合わせてもらったりもしました。

photo
RESTful Web サービス
Leonard Richardson Sam Ruby 山本 陽平 株式会社クイープ
オライリー・ジャパン 2007-12-21

本書はおかげさまで予約注文が好調なようで、発売前に増刷が決りました。 感想や不明点を blog やメールでお知らせいただければと思います。

ラベル: ,

2007-12-14

WEB+DB PRESS Vol.42 と7周年記念イベント

来週 20 日に WEB+DB PRESS の7周年記念イベントが開催されます。 関係者枠で招待していただいたので、僕も参加します。 スピーカーがすごい面子で、楽しみですね。連載しててよかった。

ところで次回の WEB+DB PRESS には上記イベントのスピーカーの一人羽生章洋さんと、t-wada こと和田卓人さんと3人で REST に関して鼎談した内容をもとにした記事が特集として載る予定です。

もともとは、編集者さんから、t-wada さんが WEB+DB PRESS を読むときに僕の連載を一番最初に読むと言っていると教えてもらって、 僕の方も和田さんの TDD の記事でたくさん勉強させてもらったので(題材が REST だったし)、 ぜひ和田さんとお話したいと返信したら、話がどんどん大きくなって羽生さんを交えての鼎談になってしまったのでした。

ビデオ収録の鼎談なんて初めての経験だったのでかなり不安だったんですが、 自分の出来はともかくむちゃくちゃ楽しかったです。 鼎談の内容はニコニコ動画で公開されるらしいので、お楽しみに。

photo
WEB+DB PRESS Vol.42
WEB+DB PRESS編集部
技術評論社 2007-12-22

鼎談では URI を Universal Resource Identifier とか間違って喋っていて非常に恥ずかしいので(いつも Uniform か Universal かわからなくなる)、 あんまり DIS らないでください。もちろん記事の方は直っています。

それから和田さんが書いてくれた Restlet をベースに RESTful なシステムを実装する章は必見です。 Java じゃない人でも、実際に RESTful にリソースを設計するというのはどういうことかを学べるすばらしい記事になっていると思います。

ラベル: , ,

2007-12-13

RESTful Web サービスの読みどころ: 1章プログラマブルWebとWebサービス

RESTful Web サービスの発売が近付いてきました。

photo
RESTful Web サービス
Leonard Richardson Sam Ruby 山本 陽平 株式会社クイープ
オライリー・ジャパン 2007-12-21

この章では、いわゆる「Web サービス」の概要を解説します。 Web サービス、およびそれを使って実現されるプログラマブルWebでは どのような技術が使われているのか、それらはどのような関係にあるのか がわかると思います。

本書のタイトルでもある RESTful な Web サービスを実現するためには、 基本的に HTTP, URI, XML, JSON, (X)HTML, 等の知識が必要ですが、 これらの技術を使うだけでは RESTful にはなりません。 単なる XML over HTTP が RESTful でないことがしばしばあります。 Web サービスを RESTful たらしめる本質は何なのでしょうか。

本章では「メソッド情報」と「スコープ情報」というキーワードを使い、 アーキテクチャで Web サービスを分類することでこの問いに答えています。 この二つの情報が、HTTP エンベロープのどこに含まれているかで、 Web サービスは3種類に分類できます(そのうち RESTful なのは一つだけ)。 この分類手法は、自分が作った Web サービスが RESTful かどうかを チェックする簡単な手法になると思います。

ラベル: ,

2007-12-08

RESTful Web サービスの読みどころ: はじめに

すでにオライリージャパンのサイトメールニュースで新刊情報が流れていますが、 以前から何回か紹介してきた RESTful Web Services の翻訳版の監修をさせてもらいました。

すでにさまざまなブックマークサイトで好意的に言及していただいており、とても光栄です。

まだ amazon には掲載されていませんが、12月19日か20日には都内主要書店に並ぶそうです。

追記(2007-12-08) 掲載されました

photo
RESTful Web サービス
Leonard Richardson Sam Ruby 山本 陽平 株式会社クイープ
オライリー・ジャパン 2007-12-21

そこで、今回から何回かにわたって、発売記念でこの本の「読みどころ」を紹介したいと思います。 今回は初回なので、僕が書いた監訳者まえがきから少し引用して、本書全体の読みどころを紹介します。

本書 「RESTful Web サービス」 は Leonard RichardsonSam Ruby の二人が 世に送る、世界初の REST に関する本格的な解説書です。本書を読めば、REST アーキテクチャスタイルとは何か、それを使ってどのように Web システムを効 率的に構築するか、アーキテクチャが RESTful だと何が嬉しいのか、が理解で きるでしょう。

(中略)

「はじめに」にもある通り、REST に関する設計ノウハウは、Roy Fielding の 博士論文を除けば blog やメーリングリストへの投稿という形でインターネッ ト上に散在している状況です。それらの情報を集めながら学ぶのはとても楽 しくためになる作業ですが、REST の普及の観点からは喜ばしい状況ではありま せん。REST に基づいた Web システムの設計を体系的に学ぶことができるベスト プラクティス集が必要とされていたのです。そして本書はまさにそれを実現し ています。

目次は以下のとおり。

  • はじめに
  • 1章 プログラマブルWebとWebサービス
  • 2章 Webサービスクライアントの作成
  • 3章 RESTfulサービスの特徴
  • 4章 リソース指向アーキテクチャ(ROA)
  • 5章 読み取り専用のリソース指向サービスの設計
  • 6章 読み取り/書き込み可能なリソース指向サービスの設計
  • 7章 サービスの実装
  • 8章 RESTとROAのベストプラクティス
  • 9章 サービスの基本要素
  • 10章 リソース指向アーキテクチャと大Webサービス
  • 11章 RESTクライアントとしてのAjaxアプリケーション
  • 12章 RESTfulサービスのためのフレームワーク
  • 付録A RESTおよびRESTfulリソースの参考文献
  • 付録B 最もよく使用される42のHTTPレスポンスコード
  • 付録C 最もよく使用されるHTTPヘッダー

ちなみに監訳者が付かない本当のまえがきは DHH が書いています(原書は表紙にも DHH の名前が)。こちらも要注目です。

tsupo さんがブックマークでコメントしてくれてますが、12/21のXML開発者の日に本書を持参していただければ、いくらでもサインします :-) (販売の予定はありません...)

ラベル: ,

2007-10-12

AtomPub が RFC 5023 に/日本語訳を公開します

AtomPub がついに RFC になりました!

関係者のブログ

RFC になるまでずいぶんと長かったように感じますが、 その分完成度は上ったのだと思います。 interop もすでに何回も開催されており、その結果も良好です。

AtomPub は全ての、とはいかないまでも、多くの Web サービスのベースとなることが できるプロトコルです。 たとえば blog 、何らかのデータベース、画像/映像リポジトリ、 Wiki、カレンダー、ソーシャルブックマークなど、title/author/updated というメタデー タがあって、その読み書きができるサービスは全て AtomPub ベースの API を 出せる可能性があるでしょう。

さて、そんな AtomPub を会社の同僚と翻訳したので、公開したいと思います。

draft-15 から翻訳を始めたので、比較的長い時間レビューしていますが、 それでもミスや変なところがある可能性はあります。 もし何か問題があれば、ご連絡ください。

AtomPub 実装者の方々の一助となれば幸いです。

追記: 技評さんが gihyo.jp で取り上げてくれた

さらに追記(2007-10-21): WEB+DB PRESS の連載で AtomPub を取り上げています。 今月発売の Vol.41 では AtomPub で導入されたサービス文書やメディアエントリの解説をしています。

photo
WEB+DB PRESS Vol.41
WEB+DB PRESS編集部
技術評論社 2007-10-24

コレクションとエントリの基本を解説した Vol. 40 と合わせてどうぞ。

photo
WEB+DB PRESS Vol.40
WEB+DB PRESS編集部
技術評論社 2007-08-24

ちなみに Vol. 41 では RFC 5023 という番号を紙面に入れることができました。 正にぎりぎりの修正だったのですが、間に合ってよかった。

ラベル: , ,

2007-08-20

いろいろ改め AtomPub の話と、パターンの話と、消費電力の話と、古くて新しい開発環境の話と、Tim Bray のインタビューと、Dave Thomas のTシャツプレゼントが載ってる WEB+DB PRESS Vol.40

WEB+DB PRESS の Vol. 40 が届きました。どうもありがとうございます。

僕は Atom API 改め AtomPP 改め APP 改め AtomPub/Atompub な Atom Publishing Protocol の解説を REST の連載で書きました。 記事のドラフトではずっと APP で通してきたのですが、 最後の最後で AtomPub に切り替えました。 いろいろ考えたんですが AtomPub で統一して呼んでいこうかと。

今回は 40号記念だからか、すごく充実した内容です。 パターンの特集はここまでまとまってるのは今までなかったし、 サーバの消費電力の話なんて、他にどこで読めるのかわからないような記事でした。 僕はどちらかというとソフトウェアの抽象レイヤをいつも考えているので、 たまにこういう物理的な話を読むととても勉強になります。

それにしても id:naoya 氏はどんだけ記事書いてるんだと小一時間問い詰めたい。 はてなのCTOはよっぽど暇なのかそれとも文章書くのが速いのか。 まあどう考えても後者ですよね。

…という微妙な DIS はともかく、 新人さんとか向けに古くて新しい unix 開発環境を整えさせるにはとてもよい導入記事だと思います。

それからなにげにニュースのところに Tim Bray のインタビュー記事が載ってますが WADL どうよとか聞いていてよいですね(自作自演)。 ちなみに僕は WADL いらない派です。

そしてなんといっても Dave Thomas (とプレゼントの Tシャツ)でしょう。 僕もこれから応募はがき書くところです。 メッセージがまたかっこいい。Tシャツ画像はひろせさんのところで見れます。 プログラミングはやっぱり楽しくなきゃいけないですね。

photo
WEB+DB PRESS Vol.40
WEB+DB PRESS編集部
技術評論社 2007-08-24

ラベル: , ,

2007-06-18

HTTP ステータスコードを正しく使おう

先月、ぐるなび API がリリースされていました。 ぐるなびさんの持っている膨大なデータベースに Web API を通して気軽にア クセスできるようになったのは、非常に喜ばしいし、その英断に感謝したいと 思います。

しかし、Web API 仕様書、特にエラー仕様を見てちょっとがっかりしました。 もう少し上手にデザインすれば、もっとよかったのに…、という思いです。

一度出してしまった API はそう簡単に変えられないと思いますが、 参考までに僕だったらどうするか、を書いてみます。

この仕様の一番の問題はエラーコードです。 以下は 2-2 のエラー仕様に記述されているサンプルです。

<?xml version="1.0" encoding="UTF-8"?>
<gnavi>
 <error>
   <code>602</code>
 </error>
</gnavi>

タグが三つ(gnavi, error, code)出てきます。 重要なのは code だけで、ここにエラーコードが入ります。 602 というコードは Invalid Shop Number を示します。 エラーコード一覧を見ると、現在五つのコードが定義されていることがわかり ます。

よくない点を一言で言うと、エラーコードを再発明してしまっているということです。 たとえば 604 は "Internal Server Error" なんですが、 このフレーズに覚えがありませんか? そう HTTP の 500 Internal Server Error と同じです。HTTP で 500 を返せばいいところを、 独自 XML 形式でしかも 604 という独自のエラーコードを再発明しています。

HTTP/1.1 200 OK
Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8"?>
<gnavi>
 <error>
   <code>604</code>
 </error>
</gnavi>

本来はこうあるべきです。

HTTP/1.1 500 Internal Server Error
Content-Type: text/plain; charset=utf-8

処理中にエラーが発生しました。

なぜエラーコードの再発明は駄目なのでしょうか。それは専用のクライアントが必要になる からです。単なる HTTP クライアントではなく、ぐるなびのエラーコードを実 装した専用クライアントが必要になってしまうからです。専用クライアントが 必要なので、その分余計なコードが必要となって、障害が発生する確立も上り ます。

参考までに、ぐるなび API のエラーコードを HTTP のステータスコードにマッピングしてみました。

gnavi エラーコードHTTP ステータスコード
600 NoShop404 Not Found
601 Invalid Access403 Forbiddden
602 Invalid Shop Number400 Bad Request
603 Invalid Type400 Bad Request
604 Internal Server Error500 Internal Server Error

601 は通常は 401 Unauthorized にしたいところですが、 ぐるなび API は api key 方式を採用しているので 403 にしてみました。 また、この対応により 602 と 603 が 400 にまとめられてしまっていますが、 両者の違いは HTTP のレスポンスボディで記述すればいいでしょう。 もし、この二つを区別する理由が、エラーメッセージを出すためだけであれば、 メッセージそのものをプレーンテキストで返せばいいのです。

HTTP/1.1 400 Bad Request
Content-Type: text/plain; charset=utf-8

指定された店舗の情報が存在しません。
HTTP/1.1 400 Bad Request
Content-Type: text/plain; charset=utf-8

不正なぐるなび店舗IDパラメータが指定されました。

WEB+DB Press の今月号には、まさにこの話を書きました。 本文とコラムが同じくらいのページ数という、一時期の JavaWorld の檜山さ んみたいな構成ですが、 普段なにげなく使っている HTTP のステータスコードは Web API を作る上でどうあるべきか、という話です。

photo
WEB+DB PRESS Vol.39
WEB+DB PRESS編集部
技術評論社 2007-06-22

ラベル: , ,

2007-04-25

Restful Web Services

以前言及したオ ライリーの REST 本 Restful Web Services が Amazon で予約可能になっていました。

この本、とても素晴しい内容です。 レビュアに応募して原稿を見せてもらったのですが、 REST に関する ABC が一通りつまっていて、 何が RESTful なのかについてしっかりと書いてあります。

RESTful でないことについてもちゃんと記述があって、 xml-rpc とか POX over HTTP とかも出てきます。 また、アーキテクチャの面からはRPC(SOA)とREST(ROA)の違いもあったはず。

Ruby (Sam Ruby じゃな くてプログラミング言語 ruby)のコード例なんかも載っていて読む価値十分です。

残念ながら原稿を読むのに時間がかかり過ぎて、後の方の章にした僕のコメント(文字コー ドとか)は反映されてないみたいなんですが、REST を体系的に学びたい方には 超おすすめの1冊です。

photo
Restful Web Services
Leonard Richardson, Sam Ruby
Oreilly & Associates Inc 2007-05

ラベル: ,

2007-04-19

WEB+DB PRESS Vol. 38

WEB+DB PRESS Vol. 38 で REST 周りのことについての連載を始めました。

ちょうど1年前に REST の解説を書いたんですが、 その直後に naoya さんが連載で、と書いてくれて それを見た技評の中の人が mixi で「連載しませんか」というメッセージくれたんだけど、 ちょっと1年続くネタに困りそうなのでやんわりと断ったのでした。 んで、1年後、技評の中の人がもう一度話を持ってきてくれて、 今年は APP もついに RFC になりそうだし、 連載してもいいかなーと思って連載することにしました。 ということで何が言いたいかというと、naoya さんの影響力と 技評の中の人の企画力はすごい、ということでした。

肝心の今回の内容ですが、円グラフで表現すると、こんなかんじです。

べつやくメソッド

photo
WEB+DB PRESS Vol.38
WEB+DB PRESS編集部
技術評論社 2007-04-24

ラベル: , ,

2006-11-30

[図解]東京の地下技術

思わず [これはすごい] タグを付けたくなる内容の本だった。

そもそもなんで自分の Amazon のおすすめリストに入ってきたのかわからないんだけれど、 たぶん鉄関係の本をチェックしているからなんだろう。

本書は書名のとおり東京を例に、土木技術(特に地下および超大規模構造物)を平易な文章と豊富なイラストで紹介したものである。専門家には当たり前すぎてつまらない内容なのかもしれないけれど、建築初心者の僕には丁度よかった。

たとえば東京港臨海道路のトンネル部は4万トンの重さのトンネルブロックを11個、それぞれ海に浮べて引っ張っていき、海に沈めて連結してできた全長1.3km のトンネルである、というような一般人の想像をはるかに越えた現実を知ることができる。いったいどうやって4万トンの物体を海に浮べるのか、そしてそれをどうやって沈めるのか、その手法は知ってしまえば確かにそのとおりと思うのだけれど、それを想像できるかというと僕には自身がなかった。

本書を読むと、トンネルや地下施設というのはそれぞれがオーダーメイドなのだ、ということがよくわかる。シールド機はトンネルにあわせて特注のものが作られるし、その土地の土壌や地盤の性質、あるいは周辺の環境に併せて適宜工法が選択・開発される。

これはやっぱりソフトウェア開発でいうところのデザインパターンや開発手法に近いな、と思った。ソフトウェア開発手法に興味があるのなら、建築関係の本を読むのはやっぱり必要なのかも。

ラベル: ,

2006-11-06

REST 本

オライリーから REST の本が来年5月に出るらしい。

著者は Leonard RichardsonSam Ruby。 Leonard Richardson さんは知らなかったけど、有名な人なんですね。

目次を見るとわかるけど、REST のアーキテクチャスタイルと その実装としての Web をリソース指向アーキテクチャの観点で ruby コード付きで語るという わくわくするような内容です。

日本語版欲しいなあ。誰か訳してくれないかなあ。

[update 2007-09-21] その後出版されました

ラベル: ,

2006-09-21

Webサービスプラットフォームアーキテクチャ

という本が2月に出ていたらしい(結構分厚いので読むのに時間がかかる)。

Webサービスプラットフォームアーキテクチャ
Sanjiva Weerawarana Frank Leymann Donald F. Ferguson
4434073435

原著の著者はみなさんは WS-* の著者欄に名前を連ねている方々(特にIBM)で、 仕様策定のバックグラウンドを語らせたら右に出るものはいないと思われる。 本書ではその著者達が WS-* の各仕様を設計思想から解説しているので 仕様書を読むよりも楽にその背景思想を理解できる、と思う。

ちなみに REST もしっかりとアーキテクチャスタイルとして紹介されていて、 その最大の特徴(Uniform Interface)と WS-* の interface 中心主義との違いが簡単に述べられていた。

さらに、実は本書はエンタープライズ環境の分散コンピューティングの技術の基本をざっと概観するのに適しているのではないかとも思う。 目次を見てもらうとわかるけれど、メッセージングの基礎から、discovery, description, reliability, security 等一通りのことは書いてある。 WS-* からより抽象的な概念に変換する能力は必要だが、このあたりに興味のある方にはお勧めである。

ラベル: ,

2006-08-22

WEB+DB PRESS Vol.34

WEB+DB PRESS Vol.34 が届いたので読んでみました。

内容は naoya さんが書いてるとおり。 かなりいいかんじ。

まず僕が気になった記事は Web 認証 API 特集でした。 かなり基礎から最新動向までコンパクトにまとまった記事なので、 Web の認証まわりにそんなに詳しくない人に説明するのに丁度いいです。 ただ例がはてな認証APIばっかなので :-)、もう少し他の例があると嬉しかったです。

次に、弾さんの DHH インタビューも面白かった。 弾さんのインタビューの仕方がとても上手で、 DHH がいかにエンジニアとしてセンスいいかを引き出している感じでした。

あとは第一特集の性能改善かなあ。 この辺も Web 上を頑張って探せば見つけられるんだろうけど、 こういう風に紙媒体でまとまって読めると人に勧めやすいし、 体系的に書いてあるので自分が知らなかった使い方を発見できます。

これだけ Web に情報が溢れている現在、 紙媒体の従来メディアは存在意義を問われているわけですが、 WEB+DB PRESS さんは自身の立ち位置をちゃんと意識して すごく上手に企画をされていると思いました。

image WEB+DB PRESS Vol.34
WEB+DB PRESS Vol.34
WEB+DB PRESS編集部
技術評論社 2006-08-24

ラベル: ,

2006-07-28

本3冊

しばらく時間が空いてしまいましたが、最近気になった本を3冊紹介します。

まずは Flickr の中の人、Cal Henderson の Building Scalable Web Site。

REST が設計思想からスケーラビリティを攻めているのに対し、この本は実践からいかにスケーラブルなサイトを構築するかを攻めています。 似たような話は古くは LiveJournal の中の人から、 Flickr の中の人まで、 さらに最近は mixi の中の人はてなブックマークの中の人 (ビデオ)、 ライブドアの中の人まで さまざまなテクニックや経験則を公開してくれていて、まさに高速道路建設中なわけですが、 この本はその高速道路のひとつの出口になるんじゃないでしょうか。 ぜひ日本語版もほしい一冊だと思います。

Building Scalable Web Sites
Callum Henderson Cal Henderson
0596102356

2冊目はデータ工学の研究者なら誰でも知っている Data on the Web の翻訳、「XML データベース入門」です。

訳者の国島先生僕も知り合いですが、日本でまじめに XML 関連の研究をなさっている研究者のお一人です。 国島先生の翻訳解説エントリにもあるとおり、 かなり丁寧に翻訳さている印象です。特に XML の解説の章の訳注の入れ方は半端じゃないです。

本書で扱われているトピックは半構造データ(semi-structured data)、特に XML のデータモデルとその問合せ処理についてです。 いわゆる学術書なので、自分には関係ないと思う人も多いかもしれないですが、 現在一般に扱われているデータ RSS, Atom, JSON なんてのはまさに半構造データなわけです。 そういったデータをいかに蓄積し、検索するか。 そんな問題を考えている人は手にとってみるとよいかもしれません。

ただ、一点だけ気になったのは、キーワードが日本語オンリーなところ。 英語も併記してもらえると、特に初学者には理解が進むと思いました。 もし訳語リストがあれば、公開していただけませんか>国島先生。 2006-08-01 追記: コメント欄で索引に訳語リストがあることを教えてもらいました。

XMLデータベース入門
Serge Abiteboul Dan Suciu Peter Buneman
4320121627

最後は翔泳社の Web 2.0 キーワードブックです。 これは僕もお手伝いをしました。REST の章を書いてます。 たぶん、これまで書いた REST の解説の中で一番コンパクトにまとめたものになっています。 あまり Web 技術に詳しくない人にも理解できるように、なるべく平易な記述を心がけたつもりです。

Web 2.0 という言葉はすでに陳腐化してしまった感がありますが、 ギークのそういった気分もいくらか取り込まれていて、特に切込隊長のエピローグには思わずニヤッとしました。

それにしても、献本をもらうまで著者陣を知らなかったのですが、かなり強力ですね。 個人的には自分の原稿がまつもとさん村田さんの間だった のに感動しました。

Web2.0 キーワードブック
SE 編集部
4798111260

ラベル: , ,

2006-04-25

日経SYSTEMS。

日経SYSTEMS 5月号で Web 2.0 関連技術(特にREST)がシステム開発に与える影響についての取材を受けました。 P60に数行だけ僕の発言が引用されていました(下記に引用したので全文)。 僕がしゃべったこととはちょっと違ったのでここで訂正しておきます。

コンテンツを読むだけでなく、簡単に書き込めることが重要。

これはそのとおり。

REST では GET に PUT と DELETE を加えれば Web ブラウザだけでそれが簡単に実現できる。

これは言ってないよー。ブラウザだけで簡単に実現はできないっしょ。少くとも現時点では。

新たに SOAP を覚える必用がない

まあそうかもしれない。ただ、これに相当することを言った覚えはないんですが…。

ラベル: , ,