Tải bản đầy đủ (.ppt) (34 trang)

Bài giảng Lập trình mạng RESTful Web Service - GV. Nguyễn Xuân Vinh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (328.24 KB, 34 trang )

TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
1
RESTful Web Service
A complex system that works is invariably found to
have evolved from a simple system that worked
Editor: Nguyễn Xuân Vinh
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
2
Problem










A complex system that works is invariably found to have
A complex system that works is invariably found to have
evolved from a simple system that worked
evolved from a simple system that worked





Systemantics
Systemantics
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
3
HTTP
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
4
HTTP Header
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
5
HTTP transmission
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
6
HTTP request
 !!"####"!$%!&"'
 !!"####"!$%!&"'

%() *)+
%() *)+
,)+# -.!/"'0123&&4546(7"7"89:9;
,)+# -.!/"'0123&&4546(7"7"89:9;
$ "####"
$ "####"
+ #!#<=#!()(=#!>#=#!>#=
+ #!#<=#!()(=#!>#=#!>#=
#!#=?!
#!#=?!
?
?
+)# #.
+)# #.
+)6## 
+)6## 
+) )::/@)&=?=<):
+) )::/@)&=?=<):
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
7
HTTP response
$%!&"&7''A*
$%!&"&7''A*
B -=78-7''/77 8: 8C-
B -=78-7''/77 8: 8C-
 +!&"8"8"D2,(;2E)$!6(;
 +!&"8"8"D2,(;2E)$!6(;

6)-F =':7''878 && //-
6)-F =':7''878 && //-
# G8<:'<)&9)8&'8G
# G8<:'<)&9)8&'8G
) (!4H,I):
) (!4H,I):
)6# &8&
)6# &8&
 
 
JK
JK
JKJK+(%#J!KJ!K
JKJK+(%#J!KJ!K
JK
JK


$=$-6"
$=$-6"
J!K
J!K
J!K
J!K
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
8
RPC Style

%A!$%!&"&
%A!$%!&"&
$ ""
$ ""
,)+# 3-6E% 2E&":"C;
,)+# 3-6E% 2E&":"C;
) (!(4H<):
) (!(4H<):
)6# &/:
)6# &/:
 L)
 L)
J(HG&"'GK
J(HG&"'GK
JK
JK
JMKL,%J!MK
JMKL,%J!MK
"""
"""
J!K
J!K
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
9
REST-RPC Hybrid Architectures
http://www.ickr.com/services/rest?
http://www.ickr.com/services/rest?

api_key=xxx&method=ickr.photos.search&tags=penguin
api_key=xxx&method=ickr.photos.search&tags=penguin
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
10
Technologies on the Programmable Web

$%
$%

,E5
,E5

3-6)E%
3-6)E%

A+%
A+%

)?
)?

B6
B6

+B6 +"" E<
+B6 +"" E<


JAX-WS
JAX-WS

JAX-RS
JAX-RS
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
11
WS-* stack

)MF
)MF

)
)

B6
B6

A+%
A+%
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
12
Representational State Transfer (REST)


<<<"
<<<"

$#+%5#
$#+%5#

B8+2+;
B8+2+;
$%!&"&=(##<
$%!&"&=(##<
$%!&"'
$%!&"'
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
13
Why REST?

2#;
2#;

A+%
A+%
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
14
Agenda


E
E

EL#
EL#

E
E

EB
EB

E<
E<

EN""A+%
EN""A+%

EN""A+
EN""A+

A+%(
A+%(

E(
E(
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15

35
15
REST Concept
E
E

R
R


S
S


T
T
<
<
E
E

+
+
style
style
<<
<<

+N)
+N)

A network of web pages (a virtual state-machine),
A network of web pages (a virtual state-machine),
where the user progresses through an application by selecting links (state transitions),
where the user progresses through an application by selecting links (state transitions),
resulting in the next page (representing the next state of the application) being
resulting in the next page (representing the next state of the application) being
transferred to the user and rendered for their use.
transferred to the user and rendered for their use.


TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
16
REST key goals

<
<

<<
<<

5<
5<

5=<
5=<
#
#

TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
17
REST Constraints
O


)
)
O

O
5
O




O

O
N=
O
P2L<=";
O





O
+
O
Q
O


6
6
O

O


2;
2;
O
(<
O


,<5<
,<5<
O

TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35

18
REST Data Elements
O


EE5F
EE5F
O
,<5<2=%,=%A=B6;
O
EA
O
<
HTTP Method CRUD Desc.
%A E+  )
 EE5N E <=5=
%, ,%B+ , 5
B6 B6 B 5
E
O
$-6!3-6!#!R!S
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
19
RESTful operation

E)<
E)<




T

T

ET<<
ET<<
<
<

+
+
#<"
#<"

+<
+<
<
<

##TL
##TL
"2
"2
T#=
T#=
;
;


<
<
L(
L(
)
)
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
20
RESTful web APIs (RESTful web service)
+<=<F
+<=<F
,E5<+%5
,E5<+%5
 !!("!
 !!("!
!
!
5-
5-
<2=%,=%A=B6;
<2=%,=%A=B6;
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
21

Stateful vs Stateless
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
22
REST V.S. SOAP


A+%
A+%
O


A>+%
A>+%
O


E%##F
E%##F
O




O


+<<##

+<<##
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
23
REST V.S. SOAP
E
E
O
U
U
<#<V
<#<V
O


E
E
O


,)<
,)<
O


I2#<;
I2#<;
O



,E5 #<
,E5 #<
O


I<<#
I<<#


A+%
A+%
O
U
U
<#V
<#V
O


+!
+!
O


AW
AW
O



-2<;<
-2<;<
O


6L<#
6L<#
O


I#<#2;
I#<#2;
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
24
REST V.S. SOA
<<<
<<<
O
Service-oriented architecture
Service-oriented architecture
O
U-#V2A+%;
O
B6
O
REST

REST
O
I#<=
#"
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN XUÂN VINHLẬP TRÌNH MẠNG NÂNG CAO
28/05/15
35
25
REST V.S. SOA
SOA principles
O
.

O
6#
O
+
O
E
O
+
O

O
B
O

REST principles
O

,TF<
#,E5
O
,<<

O
M#<
#

O

Correlation
O
E
<A+"

×