Linda Rising氏による「誰を信頼しますか?」
Agile2008の3日目、8/6(水)午前中の、Linda Risingによるセッションです。セッションの冒頭、Linda Risingはとてもゆったりとしたきれいな、わかりやすい英語で話し始めました。
作者 Jonathan Allen, 翻訳者 菅野 裕 投稿日 2008年7月3日 午後12時44分
RESTを使っている際、既存のデータの更新にPUTメソッドを使うと何が起こるのがふさわしいだろうか?Astoriaチームはこの問いについて考え、1つの結論を出した。
AstoriaベースのWebサービスにおいて、PUTメソッドを受けた際の更新処理の扱い方には、2通りの方法が考えられる。1つは、既存のデータを置き換える方法。そしてもう1つは、新しい値と古い値をマージする方法である。AtomPubとの互換性を維持するために、Microsoftは、PUTメソッドはデータを置き換えるべきだと決断した。
このことは当然ながら、マージ操作をどう表現すればよいかという問題を残した。この問題の解決策には、MERGEという新しい動詞の導入や、新しいカスタムヘッダーの導入が挙がった。Pablo Castro氏は(リンク・英語)、以下のように説明している。
私たちは、新しいHTTPメソッドの導入というアイデアにあまり乗り気ではありません。とはいえ、特別なヘッダーをつけたPUTのオーバーロードには非常に問題があるように思えます。ヘッダーを介した「マージ」をサポートしないサーバは、PUTをただの「置き換え」のリクエストだと考えるでしょう。そして、その操作はクライアントが期待するものとは異なるものなのです。それ以外にもまずい点があります。たとえばサーバがMERGEリクエストを受け取り、しかしそれを処理できなかった場合は、405レスポンス、つまり「サポートされていないメソッドです」と返されてしまいます。
彼らが検討した別の選択肢には、PATCHメソッドもあった。残念ながら、PATCHの仕様はMicrosoftが必要とする期日までに完成されなかった。そのためMicrosoftは、最終的に仕様に互換性がなくなるかもしれないリスクの伴うPATCHを使うか、非推奨かもしれないことを認めた上でMERGEを使うか、という気の進まない状況に立たされた。1つ目の選択肢はクライアントを壊したり、仕様から外れることになる可能性があるため、結局彼らはMERGEを使うことを選んだ。
クライアントといえば、.NETクライアントはデフォルトで「マージ」として扱うことを知っておくべきだ。この方法が選ばれた理由は、.NETクライアントが必ずしもサーバにあるすべてのフィールドを知っているわけではなく、またサーバにしてみても、フィールドが意図的に空欄になっているのか、それとも単にクライアントが知らなかったのかを判別する手段がないためである。
また、AJAXクライアントもデフォルトで「マージ」として扱う。そして、AJAXクライアントも.NETクライアントと同様に「置き換え」を優先させるためのオプションパラメータを持っている。
原文はこちらです:http://www.infoq.com/news/2008/06/Merge-Replace-Patch
Agile2008の3日目、8/6(水)午前中の、Linda Risingによるセッションです。セッションの冒頭、Linda Risingはとてもゆったりとしたきれいな、わかりやすい英語で話し始めました。
Web2.0 に対する関心は、引き続き高いものがあります。 ただ、その関心は、新しいビジネス・モデルと、プログラミング・スタイルの二つの分野に集中しているように思えます。 今回のセミナーでは、Google のサービスの基礎である分散処理技術に注目します。
Jean Tabaka氏の書いた書籍では、会議などのチーム活動において、ファシリテーションの手法とツールについて具体的かつ実践的に説明しています。8/8(金)、Agile2008の最終日の朝のセッションでは、Jean Tabaka氏自身が本の内容をベースとしたセッションを行いました。
Agile2008の4日目となる8/6(木)の8:30から、Hubert Smits氏による「ゲーム・デザイン・ワークショップ」がおこなわれました。ゲームと言っても単なる遊びではなく、「フレームゲーム」と呼ばれる、グループでの情報収集や意志決定、また教育やトレーニングの教材として使えるいろいろなゲームです。
eBayが日々挑んでいる主要なアーキテクチャの勢力は、スケーラビリティです。これはアーキテクチャや設計に関するあらゆる意思決定を特徴づけたり、駆り立てたりします。
Bean Validationフレームワークの初期ドラフトに関する以前の記事に続き、InfoQは専門家グループが求めているコミュニティの関与と提案について理解を深めるため、Emmanuel Bernard氏と対談しました。
ポーカーは他のトピックにも広く適用できるような数少ない教えを私にもたらしてくれたと信じています。実際私はソフトウェアを開発すればするほど、これら二つの仕事は非常に似ていると言う確信の度合いを深めています。
恒例の「バーチャルパネルセッション」で、InfoQは新しいOASIS BPEL4People技術委員会の代表と対談をし、この作業が何故必要であるかについて彼らのフィードバックを得る機会を得ました。
No comments
返信