...

プレゼン資料(PDF)

by user

on
Category: Documents
9

views

Report

Comments

Transcript

プレゼン資料(PDF)
REST
アーキテクチャ
スタイル
なんで必要?
牛丼だと
牛めし
@明治時代
某Y、フラン
チャイズ開始
@1973
•
華原朋美
つゆだく発言
•
華原朋美
つゆだく発言
•
吉野家コピペ
国民的人気食へ
欠点&拡張案
•
チーズ牛丼
•
牛丼バーガー
•
チーズ牛丼
•
牛丼バーガー
•
牛丼PC •
チーズ牛丼
牛丼って
ナニ・・?
牛丼を示す
何かが必要
牛丼
アーキテクチャ
スタイル
アーキテクチャ
スタイル
アーキテクチャ
スタイル
制約の集合
HBB Structure
Head
Body
Bowl
制約はメリット
とデメリットを
もたらす
メリット
•
早い(簡単)
•
安い
•
旨い(誰でも調理可能)
デメリット
•
スタイルの固定
牛丼バーガー
拡張
X
牛丼バーガー
拡張
制約が牛丼らし
さを生み出す
アーキテクチャスタイル
•
制約の集合
アーキテクチャスタイル
•
変更の俯瞰・
•
実装を定める
検討
で、web
1990/11/12
WorldWideWeb:
ハイパーテキスト
プロジェクトの提案
by TBL
1990/12/25
1
1995/08
1
1
18,957
1997/04
18,957
18,957
1,000,000
2000/09
1,000,000
1,000,000
20,000,000
利用者の変化
CERN
研究者
CERN
個人・企業・ビジネス
研究者
CERN
運用の変化
1req/page
1req/page
*req/page
問題指摘
改善提案
製品
∩___∩
| ノ ヽ
/ > < |
| //// ( _●_) ミ
彡、 l͡l ノ
/ __ \ \ヽ
. (___) \__)
. O| /
| /\ \
| / ) )
∪ ( \
\,,_)
∩___∩
| ノ ヽ
/ > < |
| //// ( _●_) ミ
彡、 l͡l ノ
/ __ \ \ヽ
. (___) \__)
. O| /
| /\ \
| / ) )
∪ ( \
\,,_)
評価が必要
アーキテクチャ
スタイルの導入
REST
問題点の把握
改善提案の評価
by REST
開発者も
web にマッチし
た開発を促す
より使いやすい、
支持される
アプリケーション
RESTを知ろう
RESTの考え方
スタイル
for what
一発芸人
芸人
ジャンプ
ストーリー
シナリオ
スタイル
REST
for what
分散ハイパーメ
ディアシステム
ハイパーメディア
REST
Representational
State Transfer
Representational State Transfer
Representational State Transfer
State-Machine(状態マシン)
Representational State Transfer
渋谷ランチ
State-Machine(状態マシン)
Representational State Transfer
フォルナーチェ
渋谷ランチ
State-Machine(状態マシン)
Representational State Transfer
フォルナーチェ
渋谷ランチ
今日のリゾット
State-Machine(状態マシン)
Representational State Transfer
フォルナーチェ
渋谷ランチ
State Transition
(状態変遷)
今日のリゾット
State-Machine(状態マシン)
RESTの中身
アーキテクチャ
スタイル
制約の集合
REST の制約を知る
REST を知る
REST の制約
REST の制約
• クライアント・サーバ
REST の制約
• クライアント・サーバ
• ステートレス
REST の制約
• クライアント・サーバ
• ステートレス
• キャッシュ
REST の制約
• クライアント・サーバ
• ステートレス
• キャッシュ
• 統一インタフェース
REST の制約
• クライアント・サーバ
• ステートレス
• キャッシュ
• 統一インタフェース
• 階層化システム
REST の制約
• クライアント・サーバ
• ステートレス
• キャッシュ
• 統一インタフェース
• 階層化システム
• コードオンデマンド
1. Client-Server
クライアント・サーバ
CS: Client-Server
CS: Client-Server
Server
Client
関心を分離する
(インタフェース <-> ストレージ)
2.Stateless
CSS: Client-Stateless-Server
Server
Client
CSS: Client-Stateless-Server
Server
Client
リクエストには、
処理に必要な情報の全てを含む
可視性、信頼性、
スケーラビリティ
Server
Client
可視性、信頼性、
スケーラビリティ
/order?注文=チーズバーガー
Server
Client
/order?注文=チーズバーガー&
ポテト=はい&ドリンク=珈琲
3.Cache
C$SS:
Client-Cache-Stateless-Server
Server
Client
C$SS:
Client-Cache-Stateless-Server
$
Server
Client
$
キャッシュ可能なら
キャッシュする
4.Uniform
Interface
(統一インタフェース)
REST を
特徴づける制約
UC$SS:
Uniform-Client-Cache-Stateless-Server
$
Client
$
$
UC$SS:
Uniform-Client-Cache-Stateless-Server
$
Client
$
$
コンポーネント間の
インタフェースを固定する
5. Layered
System
ULC$SS:
Uniform-Layered-Client-CacheStateless-Server
$
$
$
$
$
$
$
$
ULC$SS:
Uniform-Layered-Client-CacheStateless-Server
$
$
$
$
$
$
$
$
コンポーネントは、
階層を越えて知る事ができない
6. Code-OnDemand
ULCODC$SS:
Uniform-Layered-Code-on-DemandClient-Cache-Stateless-Server
$
$
$
$
$
$
$
$
ULCODC$SS:
Uniform-Layered-Code-on-DemandClient-Cache-Stateless-Server
$
$
$
$
$
$
$
$
クライアントは、実行可能なコードを
ダウンロード&実行する機能を持つ
詳しくは
•
Roy.F論文5章
•
RESTとROA
ありがとうござい
ました
Fly UP