SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
存在しなかったウェブ
   なんでこうなった?
   -ウェブプロトコルのムダ知識-




       @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 )

Weitere ähnliche Inhalte

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Kürzlich hochgeladen (12)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

The Web That Wasn't - WikiBana #10 LT