SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
存在しなかったウェブ
   なんでこうなった?
   -ウェブプロトコルのムダ知識-




       @tyamadajp
今日のメインテーマ:

「科学コミュニケーション」
   … となれば↓この人↓は外せない…よね?
元ネタ:「存在しなかった惑星」のあらすじ
 万有引力の発見を受け、海王星、冥王星も発見。そして…


 私は予言する!
 水星の内側に、新惑星ヴァルカンがあると!


 しかし、見つからない。その正体は…      ルヴェリエ=キバヤーシ



          E=mc^2 !よってヴァルカンは存在しない!
          物理学はワシが育てた。


賢者 A.E.   太陽の放射エネルギー自体が「惑星 V 」だった
かくして惑星ヴァルカンは
永久に太陽系から追放された…

イントロまとめ:

世界観が変わると、「必要」だった
はずのものが、それである必要が
なくなってしまうことがある。
ウェブプロトコルを巡る「世界観の衝突と転換」

          この辺でウェブの「スケール性」の
          論考とか、「情報空間」 vs 「分散
          オブジェクト」論争とか盛り上がる
1991       2000               2010
       HTTP/1.1 (1999)
               SOAP (2000)
                REST (2001)


実は 1990 年代後半から「手を出しては世界観が
衝突して七転八倒」な時代があった。
今日はその時代の七転八倒具合をご紹介します。

           もはや完全なムダ知識へ GO →
昔々、とある IETF の IPP WG
 “_Dont' Go Postal_”


          “The Use of Post: A Response”
衝突#1:「 __Don't Go Postal__ 」論争

 フフフ… HTTP を POST で乗っ取って
 ネットワークプリントしちゃうもんね~
 あんなことや、こんなこともしちゃうもんね~
                                 IPP 策定中さん


アドミン代表( MS )   「なんでもかんでも POST るな!途中の
                 FW ちゃんとか負担がきついんだぞ!
                プリント一発、情報流出とか管理者を
                泣かせるような真似するなぁぁぁ」
「 __Don't Go Postal__ 」論争の見所:…文体?
<挑戦側 I-D >
  「『メールで流出させることもできるよ』って
    言うだろうけど、別の(流出)方法があるからと
    いって予防しない理由にはならないよね」
  「『みんながやってるし』:こういう傾向こそ
    改めるべきで、これは理由にならないね」

<防衛側 I-D >
  「へぇー、『 PUSH/PRINT 』命令を作れというのに、
   『 (DB)QUERY 』とか『 BUY 』とかは作らないんだ」
  「大体 POST 本文じゃなく命令やヘッダで明示すれば
   安心とは言えないですね。嘘ついても判る訳ない」
   コワイヨーな文体でぶっちゃけまくってます。
   Internet Draft でやるか?一回覗くのオススメ
「 __Don't Go Postal__ 」論争と世界観の対立
ソフトウェア的世界観
   だって req = doc.RequestPrint() って呼びたいし
   req.CancelRequest() ってしたいし何が悪いん?

       サービスには「固有の機能」を体現する API が
       あり、それを細かく詰めるのが「よい」設計
                           (メモ:インタフェース重視)

ネットワーク的世界観
   「俺様の使い方」で穴を開けられても困るんだよ!
   これまでにない使い方をするなら判別できるよう
   PRINT 命令作るとか配慮してくれないと。
       標準化され、明確に定義・分離された形態で
       無駄なく通信をするのが「よい」設計
                           (メモ:管理+通信効率重視)
-そしてウェブ的世界観へ-
ウェブ的世界観
  固有の「 API 」などない。あるのは固有の URI 群。
  それに触ると勝手に固有の処理が進むだけ。

  固有の「命令」も不要。送り先が「プリンタ」なら
  プリント、「ファイル」ならアップロード。
  すべては URI であり、管理するのは「手段」よりも
  「 URI 」という情報(リソース)そのもの。

    「 API 」や「命令」という動詞がほぼ透明に
    なっていて、情報空間に「もの(情報)」だけが
    浮かんでいるのが「よい」設計

    ウェブでの「 API 」はかくして追放された
衝突#2:階層構造 in ハイパーメディア

 フフフ…やる夫様が HTTP を拡張して
 Writable Web 復権させるんだ~
 次世代のファイルサーバーも作っちゃう~


       鼻息荒いけど、大丈夫か?
       じゃあ、まずは質問。コピーって何するの?



そんなの簡単だお!
元と同内容のファイル構成を作るだけだお!


              予想通り次ページでボコボコ
ウェブのコピーは甘くない!            (当時出た機能面から UI までの議論)


  同じ? CGI が有効なフォルダと無効なフォルダ間で
  「コピー」したらどうなるのが「正しい」の?

  内容の他にも「属性」があるけど、どうなるの?
  コピー先が属性サポートしてなかったら失敗するの?

  フォルダコピーしたいけど、コピー先が別のサーバー
  だったらどうすんの?機能のディスカバリできるの?

  別のサーバーってのも「 /foo/bar 」で「 bar 」が
  別のサーバーってこともあるんだけど?

  フォルダコピーって処理対象の数が判らんから
  無限応答待ちで DoS 状態になるかもよ?

  もし「 /foo/bar/baz 」で「 bar 」だけ未対応の時、
  クライアントはツリー操作画面をどう表示する?
階層構造ネックと不採用メソッド一覧
Q: 階層構造の何が問題なのか?
A: 上位要素の操作=下位要素全部の操作が起きたりする
   ウェブの単一リソースモデルからの離脱


  もうダメだ! HTTP を拡張しよう!
                   × これ POST トンネル
   BATCH        マルチ命令 in 1命令
                   × ムリがあるだろ JK…
  ATOMIC        トランザクション的実行
                   × これって命令数2倍
  COPY+NOT 階層   ハイパーリンク的コピー
                   × 同上
  COPY+BUT 階層   ファイルシステム的コピー

                          etc, etc...
今日の本題:失敗史…ではなく「失敗の効用」

  http://www.w3.org/standards/techs/uri

                        これは階層?
   ここまでの話、多くの人には「どうでもいい」。
   なぜなら「都合の良い幻想を選べる」から。
   が、プロトコルという形で2つの世界観を本気で
   接続しようとすると、とたんにスキマが明らかに。

  重要な点&今日の主題
   「どれが適している」とは別に、この世界観の
   衝突が各種の疑問を生み、今日に繋がったこと。
   境界が思想の土壌となった。
2010 年の境界線: HTTP 拡張からバイパスへ
      SPDY 、 WebSocket と再び活発化してますが…

  衝突の過去・現在
  1.階層構造 vs ハイパーリンク構造
  2. RPC-API vs ドキュメントモデル
  3 . フロー情報 vs ストック (Addressable) 情報
今ココ

  新しい疑問
  結局、1~3とも相手は情報空間モデルで共通。
  1,2とも「アドレシング」がキーだった。
  では、フロー情報の「アドレシング」とは何か?
  ここで送出元が「ウェブ」かどうかは問題なのか?
  ウェブがフォーカスするのは情報そのもののはず。

      アドレス可能性の部分で何か起こる予感…?
まとめ
1.プロトコルは世界(観)をつなぐ

2.問題も思想も境界で生まれる

3.ウェブプロトコルはマニアック
  (普通のプロトコルは「世界の知識が
   どういう形であるべきか」とか語りません)
まとめ:要するに↓オススメ↓ってことです
1.プロトコルは世界(観)をつなぐ

2.問題も思想も境界で生まれる

3.ウェブプロトコルはマニアック
  (普通のプロトコルは「世界の知識が
   どういう形であるべきか」とか語りません)



        by 山本陽平さん( @yohei )

Mais conteúdo relacionado

Mais de Taisuke Yamada

ウェブサイト最適化101 - 正しく測ろうあなたのサイト -
ウェブサイト最適化101 - 正しく測ろうあなたのサイト -ウェブサイト最適化101 - 正しく測ろうあなたのサイト -
ウェブサイト最適化101 - 正しく測ろうあなたのサイト -Taisuke Yamada
 
Quick QUIC Technical Update (2017)
Quick QUIC Technical Update (2017)Quick QUIC Technical Update (2017)
Quick QUIC Technical Update (2017)Taisuke Yamada
 
IoT Deep Dive - Be an IoT Developer for an Hour
IoT Deep Dive - Be an IoT Developer for an HourIoT Deep Dive - Be an IoT Developer for an Hour
IoT Deep Dive - Be an IoT Developer for an HourTaisuke Yamada
 
Pythonではじめるソフトウェア無線
Pythonではじめるソフトウェア無線Pythonではじめるソフトウェア無線
Pythonではじめるソフトウェア無線Taisuke Yamada
 
Getting Started with SDR in Python
Getting Started with SDR in PythonGetting Started with SDR in Python
Getting Started with SDR in PythonTaisuke Yamada
 
VSCode Remoteでも画像コピペがしたいです!
VSCode Remoteでも画像コピペがしたいです!VSCode Remoteでも画像コピペがしたいです!
VSCode Remoteでも画像コピペがしたいです!Taisuke Yamada
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondTaisuke Yamada
 
Hacking Ruby with Python
Hacking Ruby with PythonHacking Ruby with Python
Hacking Ruby with PythonTaisuke Yamada
 
Charity Items from Debian JP Project
Charity Items from Debian JP ProjectCharity Items from Debian JP Project
Charity Items from Debian JP ProjectTaisuke Yamada
 
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and DracutIntroduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and DracutTaisuke Yamada
 
Hadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-updateHadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-updateTaisuke Yamada
 
The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)
The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)
The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)Taisuke Yamada
 
The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)
The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)
The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)Taisuke Yamada
 
201012 cacert-at-tokyodebian
201012 cacert-at-tokyodebian201012 cacert-at-tokyodebian
201012 cacert-at-tokyodebianTaisuke Yamada
 
Nilfs usage-report-and-comparison-at-tokyodebian
Nilfs usage-report-and-comparison-at-tokyodebianNilfs usage-report-and-comparison-at-tokyodebian
Nilfs usage-report-and-comparison-at-tokyodebianTaisuke Yamada
 
Casual Web-browsing with gPXE and SYSLINUX
Casual Web-browsing with gPXE and SYSLINUXCasual Web-browsing with gPXE and SYSLINUX
Casual Web-browsing with gPXE and SYSLINUXTaisuke Yamada
 
Embed Shogiboard - my first mediawiki extension -
Embed Shogiboard - my first mediawiki extension -Embed Shogiboard - my first mediawiki extension -
Embed Shogiboard - my first mediawiki extension -Taisuke Yamada
 
WebDAV, ATOM, and REST
WebDAV, ATOM, and RESTWebDAV, ATOM, and REST
WebDAV, ATOM, and RESTTaisuke Yamada
 

Mais de Taisuke Yamada (18)

ウェブサイト最適化101 - 正しく測ろうあなたのサイト -
ウェブサイト最適化101 - 正しく測ろうあなたのサイト -ウェブサイト最適化101 - 正しく測ろうあなたのサイト -
ウェブサイト最適化101 - 正しく測ろうあなたのサイト -
 
Quick QUIC Technical Update (2017)
Quick QUIC Technical Update (2017)Quick QUIC Technical Update (2017)
Quick QUIC Technical Update (2017)
 
IoT Deep Dive - Be an IoT Developer for an Hour
IoT Deep Dive - Be an IoT Developer for an HourIoT Deep Dive - Be an IoT Developer for an Hour
IoT Deep Dive - Be an IoT Developer for an Hour
 
Pythonではじめるソフトウェア無線
Pythonではじめるソフトウェア無線Pythonではじめるソフトウェア無線
Pythonではじめるソフトウェア無線
 
Getting Started with SDR in Python
Getting Started with SDR in PythonGetting Started with SDR in Python
Getting Started with SDR in Python
 
VSCode Remoteでも画像コピペがしたいです!
VSCode Remoteでも画像コピペがしたいです!VSCode Remoteでも画像コピペがしたいです!
VSCode Remoteでも画像コピペがしたいです!
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
 
Hacking Ruby with Python
Hacking Ruby with PythonHacking Ruby with Python
Hacking Ruby with Python
 
Charity Items from Debian JP Project
Charity Items from Debian JP ProjectCharity Items from Debian JP Project
Charity Items from Debian JP Project
 
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and DracutIntroduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and Dracut
 
Hadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-updateHadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-update
 
The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)
The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)
The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)
 
The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)
The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)
The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)
 
201012 cacert-at-tokyodebian
201012 cacert-at-tokyodebian201012 cacert-at-tokyodebian
201012 cacert-at-tokyodebian
 
Nilfs usage-report-and-comparison-at-tokyodebian
Nilfs usage-report-and-comparison-at-tokyodebianNilfs usage-report-and-comparison-at-tokyodebian
Nilfs usage-report-and-comparison-at-tokyodebian
 
Casual Web-browsing with gPXE and SYSLINUX
Casual Web-browsing with gPXE and SYSLINUXCasual Web-browsing with gPXE and SYSLINUX
Casual Web-browsing with gPXE and SYSLINUX
 
Embed Shogiboard - my first mediawiki extension -
Embed Shogiboard - my first mediawiki extension -Embed Shogiboard - my first mediawiki extension -
Embed Shogiboard - my first mediawiki extension -
 
WebDAV, ATOM, and REST
WebDAV, ATOM, and RESTWebDAV, ATOM, and REST
WebDAV, ATOM, and REST
 

Último

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 

Último (10)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 

The Web That Wasn't - WikiBana #10 LT