WEB技術
もともとは、完全な分散システムだった。
成功が始まると、集中化してビジネス化された。
再び、分散化が起こりつつある。
➔ Edge Heavy Computing
1

WWWの生い立ち• Tim Berners-Lee (CERN), 1989年– 高エネルギー物理学資料のハイパーリンク化• ハイパーテキスト技術– マークアップ言語： HTML
– 転送プロトコル ： HTTP

• Mac Andreessen (イリノイ大), 1993年– Mosaic ➔ インターネットの一般化のトリガ• Netscape Navigator, Internet Explorer• WWWコンソーシアム(W3C)
2

URL (Uniform Resource Locator)
スキーム名://ホスト名.ドメイン名:ポート番号/パス/ファイル名

例：http://www.aida.k.u-tokyo.ac.jp:8080/index.html• 「:ポート番号」、「/ファイル名」は省略可能• 「:ポート番号」を省略した場合にはスキームごとの既定値が使用される

3

client-server と peer-peer(1)• クライアント– 能動的にサービス提供を促す側• サーバ– 受動的にサービス提供する側
ClientServer
サービス要求サービス提供通常のWEBコンテンツの流れ“雲の中はどんなデータリンクでも構わない”
Get http://www.hogehoge.com
Original
Contents
Server

USER

SD

ENTERPRISE

450

V70

Sun

ULTRA SPARC
DRIVENPROFESSIONAL WORKSTATIONSDPROFESSIONAL WORKSTATION

W

SD

index
Gif-1
Gif-2

一度のｈｔｔｐリクエストに際し、ファイル形状ごとにそれぞれＴＣＰセッションの確立から始めなければならないため、アクセス数の増加に対しサーバの負荷が指数関数的に増加する

要は、大変たくさんの TCP コネクション

5たくさんの TCP は 嫌だなぁ。。。
➔ Google の 解決法(1)TCP の数 ➔ サーバへの負担(2) Slow-Start (フロー制御, Congestion window control)

QUIC (Quick UDP Internet Connections)a. UDP を使って TCP の問題を解決
b. UDP Socket の上に データフローを多重化
6

JAL ANA<航空会社>JAL ANA

Hyatt Hilton Marriott Hertz Avis

<ホテル>
Hyatt Hilton Marriott<レンタカー>
Hertz Avis
<ホテル>

<航空会社><レンタカー

WEBサービス
ポータルサーバ

ユーザパソコン(a) 既存サービス

ユーザパソコン(b) WEBサービス

図8-2 WEBサービスの基本概念
7

HTMLインタプリタ<<入力>>

コントローラスクリプト言語解釈
Java仮想マシン
グラフィックビューア
ビデオビューア
サウンドプレーヤ

http

smtp

ftp

<<ディスプレイ>>

telnetインターネット

図8-4 WEBブラウザの基本構造
8マークアップ言語• 文書中に タグ を埋め込むことによって、文書の論理構造(表題、段落など)や表示属性(レイアウト、文字サイズ、色など)を規定
する言語

9

タグ
<タグ名 属性名=“属性値”>文字列</タグ名>
開始タグ
終了タグ

• タグ名、属性名の大文字／小文字は区別しない• 終了タグは省略されることもある

10

11

12

13

XML言語の特徴• タグの自由な定義(日本語、データの意味)• 簡素で厳密な言語仕様、終了タグの必須化• 内容情報(XML文書)と表示属性(スタイル)の分離• 業界での共通タグの定義(DTD)• 人間には理解し易く、コンピュータには扱い
易い文書。

14

15

Again….
Native digital vs. Faked digital• Text (ASCII)• PDF• HTML• RDF (Resource Description
Framework)➔ LOD (Linked Open Data)• PostScript• Flush• XML

Bit-Map…..
• BMP• JPEG• MPEG

16

eビジネス と XML• Webサービス、ポータルサービスの始まり• これまで、ばらばらに 個別データ処理していたものを、一つの窓口(これをポータルという) から処理可能に統合化する。 バックエンドには、たくさんの個別システムが存在する。 データのパイプ
ライン処理、並列処理、統合化処理を行う。
• 必要なもの ； データと手続きの統合化– XML言語という共通メタ言語の利用• デジタル＝情報の水平展開– まさに、旅行代理店の仕事。。。。。
– ってことで、じきに、旅行代理店産業は消える運命。。。
17

例7 ： 旅行(＝eビジネスの典型)• 移動手段– 航空券 ： 既に フルデジタル– レンタカー ： ほぼ、デジタル化完了– 電車 ： 最も遅れている業界– 宿泊 ： Webですべてが完了(*) ここまでは、既に ポータルが存在。

• 食事 ： Web検索が普通• 嗜好 ： Web検索で対応可能(含 予約)• お金 ： キャッシュレス化(デジタル化)
18

19

20

例7 ： 旅行(＝eビジネスの典型)• 移動手段– 航空券 ： 既に フルデジタル– レンタカー ： ほぼ、デジタル化完了– 電車 ： 最も遅れている業界– 宿泊 ： Webですべてが完了(*) ここまでは、既に ポータルが存在。

• 食事 ： Web検索が普通• 嗜好 ： Web検索で対応可能(含 予約)• お金 ： キャッシュレス化(デジタル化)
21

ポータルの次• ブラウザーに、処理機能を プラグイン or
ダウンロード して 動かせばいいんじゃない?
– User Experience(反応遅延)の向上– ユーザの資源を ありがたく利用(搾取)➢実は、これは、昔からあった 考え方です。
「プロセス・マイグレーション」「Java Virtual Machine」
22大規模（WEB)サーバ

23

最近の 傾向 と 手法
1. マルチプロセッサ型の計算機アーキテクチャの導入
分散処理(機能分散、地理的分散)

2. キャッシュ技術の導入
CDN、P2Pなど

3. DMA(Direct Memory Access)の導入
P2P 技術4. 仮想化技術の導入
Virtualization、Overlayネットワーク➔ Migration(移動性) と Scale-Out(収縮・膨張)負荷分散
Webサーバリクエスト
分配スイッチ

データベース

インターネット26

最近の 傾向 と 手法
1. マルチプロセッサ型の計算機アーキテクチャの導入 ・・・ 電気、熱、処理
分散処理(機能分散、地理的分散) ・・・Scale-Out

2. キャッシュ技術の導入
CDN、P2Pなど

3. DMA(Direct Memory Access)の導入
P2P 技術4. 仮想化技術の導入
Virtualization、Overlayネットワーク➔ Migration(移動性) と Scale-Out(収縮・膨張)

CPUの熱密度の推移
10,000太陽の表面

ロケットの噴射口

1,000
熱密度(W/cm2) 100

核反応炉

8086

10

ホット
プレート

286

8008
4004 8080

1
1970

8085

1980

486
386

1990
年代

2000

2010

処理負荷の分散手法
1. 水平分散– 複数のサーバに並列的に処理を実行させる。
– 特定の機能ごとに、専門化したサーバを用意し、適切に Dispatch する。

2. 垂直分散– Proxy機能や Cache機能を提供し、クライアン
トに近い仮想ノード/分身ノードが、データ処理を分担する。
– データの変更時の Consistency の維持が課題となる。

ＷＥＢシステムの歴史と技術チャレンジ

31

WWWサーバ： 基本中の基本• レスポンスが遅いとどうなる ?
• クリックを繰り返す (10秒くらが限度)➔Positive Feedback
たくさんのTCPコネクションがForkされる。。。
計算機資源がcatastrophy的に使用される。。。。
要は、DDOSと同じ状況• 2度とアクセスしない….…
• ビジネスチャンスの喪失
32

WWWサーバ： 基本中の基本動作• GET methodのみを処理する簡単なWebサーバ• コネクションを受け付ける• リクエストラインを入力し、URI（パス名）を取り出す• 適当なステータスラインとヘッダを出力する• URIで指定されたオブジェクトを出力する• 掃除をしてから最初に戻る• レスポンスが遅いとどうなる ?
• クリックを繰り返す (5秒くらが限度?)• 2度とアクセスしない
33

実用サーバのプロセス構造• 基本的な構造– シングルプロセス– コネクションごとにプロセスをforkする– あらかじめ複数のプロセスをforkしておく– 上記+足りなくなったら新しいプロセスをforkする• お得な拡張– マルチスレッドプロセス– 入出力マルチプレキシング・非同期入出力– 出力ヘルパー (e.g.: Squid in http-accelerator mode)34

実用サーバの機能• URLリダイレクション (Remote Redirection)• 他のサーバへ振る• URI 書き換え (Aliasing)• 自身の中で振る

https (暗号化とサイト認証)との戦い ?

• アクセス制御• ACL (ホスト/ネットワーク×URI)• User Authentication• Virtual Hosting (Virtual Server)
35

大規模サーバファームの構築• Webサイトに押し寄せる大量のトラフィック– DNSによる負荷分散– TCPコネクションディスパッチ
– レイヤ7スイッチ• 信頼性の向上• サービスの継続性– ドキュメントアップロード方法• 対攻撃性の確保– DoS(Deny of Service)への対策
36

基本的な手法• 水平分散 (Redirection)• 垂直分散 (キャッシュ)

37

①

②

③

Webサーバ群①③②

Webサーバ群

リダイレクション(Redirection)サーバ① アクセス要求② URL Redirect (リダイレクト)命令③ Redirected (リダイレクト)アクセス要求① アクセス要求② Aliasing(書き換え)命令③ Aliased(書き換え) URLアクセス応答

図8-7 URLリダイレクション

図8-8 URL書き換え(Aliasing)
38

①
②

DNSサーバ(wide.com)③
サーバサイト#1

IP1 IP2

サーバサイト#2

IP3 IP4

WEBサーバ群

IP5 IP6 IP7WEBサーバ群① DNS query (www.wide.com)② DNS reply メッセージの内容 ;{IP1, IP2, IP3, IP4, IP5, IP6, IP7}
③ IP3 をwww.wide.com のサーバとして選択
図8-9 DNSによる負荷分散

39

①
②

DNSサーバ(wide.com)③
サーバサイト#1

IP1 IP2

サーバサイト#2

IP3 IP4

WEBサーバ群

IP5 IP6 IP7WEBサーバ群① DNS query (www.wide.com)② DNS reply メッセージの内容 ;{IP1, IP2, IP3, IP4, IP5, IP6, IP7}
③ IP3 をwww.wide.com のサーバとして選択
図8-9 DNSによる負荷分散40静的ファイルへのアクセス要求cgi アクセス(インタラクティブ)SD

NetApp F210

SD

NetApp F210

Network Appliance

レイヤ7
スイッチ

Webサーバ群

図8-10 レイヤ7スイッチによる負荷分散

Network Appliance

cgi 用
サーバ

レイヤ7
スイッチ

静的ファイル用サーバ

図8-11処理機能によるアクセスの誘導
41

DNS負荷分散の問題点• システムダウンが外部に見えてしまう• システム構成を短時間で変更することが不可能

42

TCPコネクションディスパッチング (3)• 可能性– ローカルな負荷分散• 同じ処理能力を持つシステムは、大規模な単一システムより小規模な複数のシステムで構成したほうが安価• スケーラビリティ– TCPのコネクション能力の上限を超えられる可能性– 他のテクノロジとの組み合わせによる可能性• サーバリダイレクション+ コネクションディスパッチング

43

地理分散： 大規模サイトのもう一つの形態• サービスの分散配置– 地理的に均一なサービスを提供する• クライアントから見て最も適切なサーバを選択する– ネットワーク距離（メトリック）– 往復時間– アクセスポリシー• 問題– サーバの位置決め（ロケータ）– サーバの選択– 自動化： インターネット的に…
44

大規模サイト構築へのアプローチ
•
•
•

httpd

•

Original

httpd

DNS RoundRobin
ミラーサーバインターネット上に複数のサーバを配置コンテンツの同期問題

internet

httpd
45

トレンド
• Webサービスにおいて常に小さなネットワークレーテンシを確保するためには、 「近く」のサーバへアクセスすればよい– ユーザにサーバを選択させる方法は、あまりにも透過性に欠け、あまりにもインターネット的でない– HTTPリダイレクションの利用• アドレスからドメイン名への逆引きと位置の推測• ネットワーク (IP)層が持っている情報の利用• 実測値の計測と利用• 透過的な負荷分散• サーバのサービス能力の差を隠蔽
46

ＣＤＮの概要- Contents Delivery Network –- Contents Distribution Network 47

CDS/CDNとは？
•CDS– Content(s) Delivery Service/System– Content(s) Distribution Service/System– Web/Streamingなどのrich contentsに対してキャッシュやミラーを積極的に用いた負荷分散システム(サービス)•リバースキャッシュ技術•キャッシュ管理技術•リクエストナビゲーション技術•CDN– Content(s) Distribution Network•CDSの基盤ネットワーク– CDS間のコンテンツピアリングを行う単位•例： A社のαというコンテンツをB社のCDSへ提供する
48

Internetの構造上の問題の回避
オリジン
サーバ
iDC
iDC
IX

IX
IX
ISP

IX

iDC

IX

ISP

ISP

iDC
ISP

ユーザ
ISP

- 遅延の問題- ISPの複雑な経路制御ポリシー
49

Webサービスの構造上の問題 (負荷の集中)
通常のコンテンツ
取得経路

負荷Contents
Contents
Contents 集中
コンテンツプロバイダ

負荷
集中

ISP

Internet
IX

負荷
集中

IX

負荷
集中

iDC
ISP

iDC
ISP

ISP

利用者
50

中継ノード1. キャッシング
2. リバースキャッシュ

オリジナルコンテンツを持つサーバ

図8-12 CDNの全体構造概念図

51

iDC、ISP間のフィルタリングに左右されないサイト A

iDC業者A
iDC業者B

サイト B

ISP-A
ISP-B

IX

ISP-C

ISP-D

52

Webサービスの構造上の問題 (負荷の集中)
通常のコンテンツ
取得経路

負荷Contents
Contents
Contents 集中
コンテンツプロバイダ

負荷
集中

ISP

Internet
IX

負荷
集中

IX

負荷
集中

iDC
ISP

iDC
ISP

ISP

利用者
53

処理負荷の分散手法
1. 水平分散– 複数のサーバに並列的に処理を実行させる。
– 特定の機能ごとに、専門化したサーバを用意し、適切に Dispatch する。

2. 垂直分散– Proxy機能や Cache機能を提供し、クライアン
トに近い仮想ノード/分身ノードが、データ処理を分担する。
– データの変更時の Consistency の維持が課題となる。

まとめ： 最近の 傾向 と 手法
1. マルチプロセッサ型の計算機アーキテクチャの導入
分散処理(機能分散、地理的分散)

2. キャッシュ技術の導入
CDN、P2Pなど

3. DMA(Direct Memory Access)の導入
P2P 技術4. 仮想化技術の導入
Virtualization、Overlayネットワーク➔ Migration(移動性) と Scale-Out(収縮・膨張)データセンターで 何が起こっている ?
1.

大規模化が加速✓ MW以下、数十MW、数百MW : “異なる解“2.

オープン化 と “PULL”ビジネス構造化

3.

持続継続・加速する質量増加の中での『爆縮』 現象✓ 継続： ムーアの法則 増加： 密度(回路・電力・熱) ＆ 速度

◼ 不変： 伝搬速度、(冷却・搬送)媒体密度

Innovations in Data Centerarchitecture
1. Open & Transparent , i.e., white xx✓✓

HW : Chip, board, server, switch, router, Electric power, HVAC
SW: Operating system, Middleware , Application

Innovations in Data Centerarchitecture
1. Open & Transparent , i.e., white xx✓✓

HW : Chip, board, server, switch, router, Electric power, HVAC
SW: Operating system, Middleware , Application

Open & Transparent
Not only forserver/switch/router,but also for“facilities”, with DCIM

動作条件の緩和(by ASHRAE)

ASHRAE ： American Society of Heating,動作条件の緩和(by ASHRAE)

コンピュータ・データセンター

冷やす👇

熱を掃(吐)き出す

ASHRAE ： American Society of Heating,要は、、何が起こっているの ?
• モジュール構成の 再定義・再設計– 昔からの課題• パフォーマンス(具体的には、Bandwidth & Latency)
CPU >> メモリネットワーク >> ストレージ– 新しい(けれども昔からの)課題• 『物理的距離』• 『熱』• 『電力使用量・使用料金』

Innovations in Data Centerarchitecture
1. Open & Transparent , i.e., white xx✓✓

HW : Chip, board, server, switch, router, Electric power, HVAC
SW: Operating system, Middleware , Application

2. Data (Storage) Centric✓ Big Data collection and analysis➢➢

Explosion of amount of data
Cross domain data integration✓ Processor/CPU centric ➔ Data/Storage centric➢Migration overhead:data >> processing image(*) Contribution of
1．VM (Software-Defined North Bridge) technology
2. Software-Defined Storage technology

AI新時代：ファンデーション（基盤）モデル

従来AI技術からの不連続な進化
基盤モデル
2020年代深層学習
2010年代機械学習
2000年代資料： SambaNova社

現代AIはデータフローの問題

ソフトウェア 1.0••

コードで書かれている (C++, ...)
ドメインの専門知識が必要

現代AIはデータフロー（ソフトウェア2.0）••

コードではなくデータがモデルを鍛える
ニューラルネットワークの重みで記述
Andrej Karpathy. Scaled ML 2018 talk

資料： SambaNova社

AI半導体の概況
最近のAI演算におけるCPU/GPUの課題はスパ
ース性への対応と消費電力• 演算性能とメモリ性能の乖離– メモリの階層構造によりデータの遅延を隠蔽– キャッシュヒット率に依存– DENSEなGEMM（密行列計算）には最適
な構造– スパース（疎行列）では性能ギャップが露呈• 現代半導体においては、演算に必要な電力消費より、データの移動に必要な電力消費の方が遥かに大きい– いかにデータを近くに配置し、データの移動
距離を短くして演算出来るかが重要

多くのスタートアップが従来方式に代わる「AI半導体」を提案している。

資料： SambaNova社

従来手法とデータフローの違い
データフローアーキテクチャは局所性と並列性を活用
Weights

畳み込みグラフSampleWeights

Conv1

計算カーネル毎にメモリアクセスが必要なため、高速メモリを演算器の近くに配置する必要→ 高速メモリは容量が小さい

Pool

Conv 2

Norm

Sum

外部メモリアクセスが最小化できるので、高速メモリが不要 → メモリ大容量化可能

データが移動しなければ演算が発生しない→ スパース性にも強い

資料： SambaNova社