ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRẦN VĂN LỄ
ĐỀ TÀI
PHÁT TRIỂN ỨNG DỤNG KẾT NỐI FACEBOOK
TRÊN CƠ SỞ GIAO THỨC OAUTH
(OPEN AUTHENTICATION)
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hải Phòng – 2012
1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRẦN VĂN LỄ
ĐỀ TÀI
PHÁT TRIỂN ỨNG DỤNG KẾT NỐI FACEBOOK
TRÊN CƠ SỞ GIAO THỨC OAUTH
(OPEN AUTHENTICATION)
Ngành
: Công nghệ thông tin
Chuyên ngành : Hệ thống thông tin
Mã số
: 60 48 05
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN HẢI CHÂU
Hải Phòng – 2012
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRẦN VĂN LỄ
ĐỀ TÀI
PHÁT TRIỂN ỨNG DỤNG KẾT NỐI FACEBOOK
TRÊN CƠ SỞ GIAO THỨC OAUTH
(OPEN AUTHENTICATION)
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hải Phòng – 2012
1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRẦN VĂN LỄ
ĐỀ TÀI
PHÁT TRIỂN ỨNG DỤNG KẾT NỐI FACEBOOK
TRÊN CƠ SỞ GIAO THỨC OAUTH
(OPEN AUTHENTICATION)
Ngành
: Công nghệ thông tin
Chuyên ngành : Hệ thống thông tin
Mã số
: 60 48 05
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN HẢI CHÂU
Hải Phòng – 2012
3
Mục lục
Trang
Lời cam đoan
Mục lục
Danh mục các ký hiệu và chữ viết tắt
Danh mục các hình vẽ, đồ thị
MỞ ĐẦU
CHƢƠNG 1. Mạng xã hội FaceBook
1.1. Tổng quan về mạng xã hội ảo
1.1.1. Lịch sử phát triển của mạng xã hội
1.1.2. Tình hình phát triển của mạng xã hội trên thế giới
1.1.3. Các thể loại mạng xã hội phổ biến
1.1.4. Chọn mạng xã hội nào?
1.2. Mạng xã hội Facebook
1.2.1. Lịch sử phát triển
1.2.2. Cơ chế hoạt động của Facebook
1.2.3. Cách thức làm việc
1.2.4. Các dạng ứng dụng trên Facebook hiện nay
1.2.5. Điểm mạnh và yếu của mạng Facebook
1.3. Ứng dụng trên Facebook
CHƢƠNG 2. Xác thực và xác thực bằng OAuth
2.1. Tổng quan về xác thực
2.1.1. Định nghĩa xác thực
2.1.2. Vấn đề xác thực người dùng và tầm quan trọng của nó
2.1.3. Các dạng xác thực
2.1.4. Các giao thức xác thực
2.1.5. Các phương thức về xác thực
2.2. Giao thức xác thực OAuth
2.2.1. Một số khái niêm liên quan
2.2.2. OAuth - phương thức xác thực mở
2.2.3. Cách hoạt động của OAuth
2.2.4. Phân biệt OAuth và OpenID
CHƢƠNG 3. Xây dựng ứng dụng kết nối Facebook (OAuth.F.B.)
3.1. Giới thiệu về Facebook Platform
3.2. Các đối tƣợng nền tảng của Facebook
3.2.1. Facebook API
3.2.2. Các phương thức của API
3.2.3. Data Store API
3.2.4. Thư viện khách
2
3
5
6
7
8
8
8
10
10
11
13
13
14
15
16
17
17
18
18
18
18
19
19
22
23
23
24
25
27
28
28
28
28
29
36
36
4
3.2.5. Ngôn ngữ đánh dấu Facebook - FBML
3.2.6. CSS
3.2.7. Ngôn ngữ truy vấn – FQL
3.2.8. Ngôn ngữ tạo script – FBJS
3.3. Xây dựng ứng dụng OAuth.F.B.
3.3.1. Mô tả môi trường thực nghiệm
3.3.2. Thiết kế OAuth.F.B.
3.3.3. Cơ sở dữ liệu của OAuth.F.B.
3.3.4. Sơ đồ hoạt động của ứng dụng OAuth.F.B.
3.3.5. Một số hàm sử dụng trong OAuth.F.B.
3.4. Sử dụng OAuth.F.B.
3.4.1. Đăng ký sử dụng
3.4.2. Sử dụng ứng dụng
3.4.3. Tính hợp ứng dụng OAuth.F.B.
KẾT LUẬN
TÀI LIỆU THAM KHẢO
36
49
49
52
53
53
54
54
56
58
66
66
69
71
72
73
5
Danh mục các ký hiệu và chữ viết tắt
OAuth
Open Authentication
OA
Open Authentication
WebApp
Web Application
CSDL
Cơ sở dữ liệu
OAuth.F.B.
OAuth FaceBook
FBML
Facebook Markup Language
FQL
Facebook Query Language
LAMP
Linux+Apache+MySql+PHP
CAS
Central Authentication Service
SAML
Secure Assertion Markup Language
WebSSO
Web Single Sign On
6
Danh mục các hình vẽ, đồ thị
Trang
Hình 1.1: Sơ đồ mạng xã hội
9
Hình 1.2: Các mạng xã hội.
12
Hình 1.3: Mô hình web thông thường
14
Hình 1.4: Mô hình web Facebook
14
Hình 1.5: Mô hình web Facebook sử dụng cache
15
Hình 1.6: Cách thức làm việc của Facebook
15
Hình 2.1: Mô hình quá trình xác thực người dùng
20
Hình 2.2: Hệ thống xác thực người dùng của Gmail và Yahoo
21
Hình 3.1: Cách thức làm việc của Facebook API
29
Hình 3.2: Dòng chảy thông tin từ máy chủ ứng dụng đến trình duyệt của người dùng37
Hình 3.3: Sơ đồ hoạt động của OAuth.F.B.
56
Hình 3.4: Sơ đồ đăng ký sử dụng OAuth.F.B.
56
Hình 3.5: Sơ đồ xác nhận đăng ký sử dụng OAuth.F.B.
57
Hình 3.6: Sơ đồ chi tiết hoạt động của OAuth.F.B.
57
Hình 3.7: Trang nền của ứng dụng OAuth. Facebook
66
Hình 3.8: Trang yêu cầu đăng ký sử dụng dịch vụ OAuth. Facebook
67
Hình 3.9: Cập nhật điện thoại để đăng ký sử dụng dịch vụ thành công
67
Hình 3.10: Xác nhận số điện thoại thành công
68
Hình 3.11: Đã hoàn tất đăng ký
68
Hình 3.12: Demo sử dụng chức năngOAuth. FaceBook
69
Hình 3.13: Demo đọc tin mới, sử dụng OAuth.F.B. trên SSH
70
Hình 3.14: Tích hợp OAuth.F.B. lên website bán hàng
71
7
MỞ ĐẦU
Ngày nay, công nghệ thông tin phát triển, các mạng xã hội phát triển, việc trao
đổi thông tin trên mạng xã hội trở lên phổ biến. Bài toán đặt ra là cần có hệ thống có
thể cập nhật thông tin từ một hệ thống bán hàng, hay từ một hệ thống quản lý nội dùng
nào đó gửi nên mạng xã hội nhanh chóng. Hệ thống phải có thể dễ dàng tích hợp trên
nhiều website khác nhau.
Luận văn gồm các nội dụng nhƣ sau:
Mở đầu: Giới thiệu về đề tài luận văn, ý nghĩa và tính khả thi của đề tài.
Chương 1. Mạng xã hội Facebook và cách phát triển ứng dụng Facebook:
Trình bày về mạng xã hội Facebook và các mạng xã hội phổ biến hiện này.
Chương 2. Xác thực và xác thực bằng OAuth: Trình bày về vấn đề xác thực
trong mạng xã hội và trình bày về xác thực mở Open Authentication.
Chương 3. Xây dựng ứng dụng trên Facebook: Trình bày các vấn đề liên quan
đến việc cài đặt và triển khai hệ thống. Kết quả đạt đƣợc khi chạy thử hệ thống.
Kết luận: Trình bày tóm tắt các kết quả đạt đƣợc. Hƣớng mở rộng, phát triển
hệ thống.
8
CHƯƠNG 1. Mạng xã hội FaceBook
1.1. Tổng quan về mạng xã hội ảo
1.1.1. Lịch sử phát triển của mạng xã hội
Mạng xã hội xuất hiện lần đầu tiên năm 1995 với sự ra đời của trang Classmate
với mục đích kết nối bạn học, tiếp theo là sự xuất hiện của SixDegrees vào năm 1997
với mục đích giao lƣu kết bạn dựa theo sở thích.
Năm 2002, Friendster trở thành một trào lƣu mới tại Hoa Kỳ với hàng triệu
thành viên ghi danh, tuy nhiên sự phát triển quá nhanh này cũng là con dao hai lƣỡi:
server của Friendster thƣờng bị quá tải mỗi ngày, gây bất bình cho rất nhiều thành
viên.
Năm 2004, MySpace ra đời với các tính năng nhƣ phim ảnh (embedded video)
và nhanh chóng thu hút hàng chục ngàn thành viên mới mỗi ngày, các thành viên cũ
của Friendster cũng lũ lƣợt chuyển qua MySpace và trong vòng một năm, MySpace
trở thành mạng xã hội đầu tiên có nhiều lƣợt xem hơn cả Google và đƣợc tập đoàn
News Corporation mua lại với giá 580 triệu USD.
Năm 2006, sự ra đời của Facebook đánh dấu bƣớc ngoặt mới cho hệ thống
mạng xã hội trực tuyến với nền tảng lập trình "Facebook Platform" cho phép thành
viên tạo ra những công cụ (apps) mới cho cá nhân mình cũng nhƣ các thành viên khác
dùng. Facebook Platform nhanh chóng gặt hái đƣợc thành công vƣợc bực, mang lại
hàng trăm tính năng mới cho Facebook và đóng góp không nhỏ cho con số trung bình
19 phút mà các thành viên bỏ ra trên trang này mỗi ngày.
*) Cấu thành
Nút (node): Là một thực thể trong mạng. Thực thể này có thể là một cá nhân,
một doanh nghiệp hoặc một tổ chức bất kỳ nào đó
Liên kết (tie): là mối quan hệ giữa các thực thể đó. Trong mạng có thể có nhiều
kiểu liên kết. Ở dạng đơn giản nhất, mạng xã hội là một đơn đồ thị vô hƣớng các mối
liên kết phù hợp giữa các nút. Ta có thể biểu diễn mạng liên kết này bằng một biểu đồ
mà các nút đƣợc biểu diễn bởi các điểm còn các liên kết đƣợc biểu diễn bởi các đoạn
thẳng.
9
Hình 1.1: Sơ đồ mạng xã hội
Ví dụ lan truyền tin: Mạng có 1.000.000 thành viên liên thông, mỗi thành viên
thuộc ít nhất 1 nhóm trung bình khoảng 100 cá thể. Một bản tin A đƣợc đăng lên bởi
thành viên nào đó, lần thứ nhất tin A lan truyền đến 100 thành viên trong nhóm.
Lần thứ 2, mỗi thành viên lại lan truyền tiếp cho các thành viên thuộc nhóm
khác, số thành viên biết A có thể là 100 x 100 = 10.000.
Lần thứ 3, lại lan truyền nhƣ trên, số thành viên biết A có thể là 100 x 10.000 =
1.000.000.
Nhƣ vậy chỉ sau 3 lần lan tin một triệu thành viên có thể biết tin A. Tuy nhiên
thời gian loan tin còn phụ thuộc vào việc các thành viên có online hay không? Nếu
mọi ngƣời đều online thì tin A ngay lập tức tin đƣợc lan toàn mạng.
*) Mục tiêu
Tạo ra một hệ thống trên nền Internet cho phép ngƣời dùng giao lƣu và chia sẻ
thông tin một cách có hiệu quả, vƣợt ra ngoài những giới hạn về địa lý và thời gian.
Xây dựng lên một mẫu định danh trực tuyến nhằm phục vụ những yêu cầu công
cộng chung và những giá trị của cộng đồng.
Nâng cao vai trò của mỗi công dân trong việc tạo lập quan hệ và tự tổ chức
xoay quanh những mối quan tâm chung trong những cộng đồng thúc đẩy sự liên kết
các tổ chức xã hội.
10
1.1.2. Tình hình phát triển của mạng xã hội trên thế giới
MySpace: Phù hợp với mọi lứa tuổi, nhƣng chủ yếu dành cho lứa tuổi thanh
thiếu niên, tuy nhiên một số ca sĩ cũng chọn nơi đây là nơi chia sẽ và lăng xê tên tuổi.
Facebook: Phù hợp với mọi lứa tuổi, nhƣng chủ yếu dành tầng lớp trí thức (bao
gồm sinh viên, các học sinh trung học và các công dân lớn tuổi khác).
Yahoo! 360: Phục vụ cho nhu cầu viết blog nhiều hơn là để giao lƣu.
Ngoài ra còn có: Flickr, Flixster, Fotolog, Friendster, Hi5, imeem, Orkut,
PerfSpot, SS Free, Tagged.com, Windows Live Spaces....
Mạng xã hội là món ăn tinh thần với ngƣời dân trên toàn thế giới, đặc biệt với
các thanh thiếu niên. Trƣớc sự ảnh hƣởng mạnh mẽ của mạng xã hội đối với các bạn
trẻ, một nghiên cứu mang tên “Pew/Internet & American Life” đã ra đời, theo đó mối
quan hệ giữa “teen” và mạng xã hội đã cho thấy những kết quả thú vị.
Pew Internet & American Life là một dự án nghiên cứu về sự ảnh hƣởng của
mạng Internet đối với mọi mặt của cuộc sống ngƣời dân trên toàn thế giới nhƣ gia
đình, giáo dục, sứ khỏe, chính trị…Nghiên cứu này đƣợc thực hiện bởi 4 nhà xã hội
học ngƣời Mỹ là Amanda Lenhart, Mary Madden, Alexandra Rankin Macgill và
Aaron Smith.
1.1.3. Các thể loại mạng xã hội phổ biến
Ego centric. Là mạng xã hội lấy cá nhân làm trung tâm. Các hoạt động xã hội
sẽ xoay quanh bản thân mình, vì thế ngƣời ta gọi loại này là Ego centric. Điển hình
cho dạng này là MySpace, VietSpace và phần nào là Mash của Yahoo, Y360 cũng có
một chút. Đặc điểm là trang chủ càng dễ tùy biến càng tốt, càng nhiều thứ để trƣng bày
càng tốt, nhiều ngƣời lập trình Widget giúp mình trƣng bày càng tốt. Lựa chọn tốt là
MySpace, Mash.
Relationship centric. Mạng xã hội loại này lấy mối quan hệ giữa cá nhân
ngƣời dùng và bạn bè làm trung tâm. Nó giúp chúng ta biết đƣợc bạn mình đang làm
gì, nhóm bạn mình đang làm gì, cũng nhƣ giúp những ngƣời quan tâm tới ta biết ta
đang làm gì. Điển hình cho dạng này là FaceBook, Twitter, Y360, Mash. Việt nam có
một số mạng xã hội loại này đã ra mắt. Đặc điểm của mạng này là mối quan hệ càng
thật, càng thắt chặt càng tốt, các tính năng phải hỗ trợ tối đa các nhu cầu này.
Content centric. Đặc điểm chung của mạng loại này là nhằm trƣng bày content
do mình hoặc nhóm của mình tạo ra cho bạn bè và công chúng (Bài viết, ảnh,
audio/video, v.v...).
Opera (phổ biến ở VN) , LiveSpace (phổ biến ở châu Âu), Y360 (phần My
Page). Loại này giúp dàn trang dễ dàng, có các tính năng cần thiết giúp chúng ta công
khai mọi loại nội dung, một chút kết nối bạn bè và giao tiếp. Có thể nói nó gần nhƣ
phần My Page của Y360, nhƣng linh hoạt hơn, tùy biến cao hơn.
Ning, v.v... Loại này thiên về nội dung nhóm, tạo điều kiện cho một nhóm cùng
công khai, chia sẻ nội dung. Ý tƣởng vậy, nhƣng thực tế các mạng này rất yếu ớt.
11
YouTube, MetaCafe, Clipvn của Việt nam, flickers, ... Các nhóm này gọi là
mạng xã hội có thể là không chính xác, có thể gọi nhóm này là hệ thống chia sẻ nội
dung có tính năng mạng xã hội.
Wordpress, Blogger, TypePad, Y360 blog, Opera Blog, Live Spaces Blog.
Nhóm này có thể gọi là mạng xã hội nhƣng xếp nhóm này vào loại blogging platform
thì chính xác hơn. Nhƣng nhiều ngƣời Việt nam thực chất đang sử dụng blog mà nghĩ
là đang sử dụng mạng xã hội.
Các mạng kết hợp 3 dạng mạng trên chỉ là dạng cơ bản, còn rất nhiều loại mạng
xã hội khác là sự pha trộn giữa các loại này, cũng nhƣ nhắm các mạng chuyên biệt cho
từng mảng nội dung, công nghệ, ....
1.1.4. Chọn mạng xã hội nào?
*) Yahoo 360. Không thể không nhắc tới Yahoo 360 vì đây là hệ thống thống
trị thị trƣờng mạng xã hội Việt nam, đặc biệt là thống trị trên cả 3 phƣơng diện: Ego,
Relationship và content. Tuy vậy trên thế giới Y360 lại gần nhƣ không có địa vị. Lý do
đơn giản, trên internet khi anh cố là mọi thứ anh sẽ không là ai. Và trên từng phƣơng
diện Ego, Relationship hay content, Y360 lại rất yếu ớt, kém hẳn các nền tảng mạng
xác hội khác. Tuy vậy, đặc điểm thị trƣờng Việt nam là ngƣời dùng chƣa khó tính,
cộng với nỗi lo ngại về mất độc giả, mất bạn bè nên Y360 vẫn còn vị trí. Tuy vậy, xu
hƣớng ngƣời dùng chuyển sang Wordpress, Blogger, Opera, Mash và FaceBook bắt
đầu nhận thấy rõ.
Yahoo rời bỏ Y360 là điều không thể tránh khỏi, nhƣng có thể yên tâm rằng
Yahoo đã đảm bảo cho tất cả ngƣời dùng chuyển đổi hoàn hảo, có trách nhiệm.
*) Wordpress. Đây là lựa chọn lý tƣởng cho blogger chuyên nghiệp. Những ai
đặt mối quan tâm hàng đầu vào nội dung viết cho độc giả diện rộng chứ không chỉ giới
hạn cho gia đình, bạn bè. Tự tin rằng nội dung của mình sẽ đƣợc mọi ngƣời theo dõi
mà không cần tới danh sách bạn bè (friendlist) trên Y360.
Cần một nền tảng blogging tạo điều kiện cho việc viết, tƣơng tác với độc giả,
tƣơng tác với blogger cùng mối quan tâm khác thông qua các tính năng tuyệt vời về:
comment, tagging, trackback, blog roll, RSS, social media sharing, và hàng ngàn addon khác phục vụ content blogging.
Tự hosting hoặc host miễn phí trên wordpress. Khả năng xây dựng nhóm
blogger liên quan cùng viết. 5 xu cũng nhƣ một số ngƣời hay viết khác nên ngay lập
tức vứt bỏ Y360 và chuyển sang hệ thống này.
*) Opera, Live Space. Những ai quan tâm nhiều tới viết cho gia đình, bè bạn,
nhật ký cá nhân, album ảnh - có thể cân nhắc việc chuyển sang Opera, LiveSpace. Hai
nền tảng này linh hoạt và dễ cấu hình hơn Y360. Tuy vậy việc chuyển đổi chƣa hẳn là
cần thiết, vì giá trị nhận đƣợc sẽ không lớn bằng việc đánh mất các quan hệ xã hội
đang có. Trừ trƣờng hợp đa số bạn bè của mình đã chuyển sang Opera hoặc
LiveSpace.
12
Nguyên tắc chung: Trừ trƣờng hợp blogger chuyên nghiệp, nguyên tắc căn bản
của việc lựa chọn mạng xã hội là bạn ở đâu thì mình ở đấy. Cũng không nên ngần ngại
việc duy trì song song cùng một lúc 2 hệ thống mạng xã hội, cuối cùng thì tất cả mọi
ngƣời sẽ chạy về nơi phù hợp với mình nhất, vì thế cũng nên thử các loại mạng xã hội
trƣớc khi chọn một loại phù hợp nhất cho riêng mình.
Hình 1.2: Các mạng xã hội.
*) Facebook là một dịch vụ mạng xã hội trực tuyến phổ biến, nó là một sáng
tạo độc đáo dành cho sinh viên và mở ra cho bất cứ ai có thƣ điện tử. Facebook cho
ngƣời dùng một khoảng không gian để tạo profile và kết nối với bạn bè. Facebook có
những tiện ích nhƣ chat, chia sẻ hình ảnh, liên kết, nhóm ƣa thích, status messages và
tin thời sự (feed).
Facebook là một bƣớc tiến lớn của mạng xã hội, ban đầu đƣợc Zuckerberg lập
trình để tạo ra một mạng kết nối hấp dẫn cho bạn bè, sản phẩm này đƣợc sử dụng nội
bộ cho sinh viên ĐH harvard và sau này nhân rộng ra khắp thế giới với hơn 49 triệu
thành viên đang hoạt động. Nó là một nền tảng phát triển giúp cho ngƣời sử dụng có
thể tạo ra những ứng dụng của riêng mình. Ngƣời dùng có thể thêm vào bất kì những
ứng dụng nào mà họ muốn, sau đó tổng hợp và sắp xếp lại trong hồ sơ cá nhân.
13
1.2. Mạng xã hội Facebook
1.2.1. Lịch sử phát triển
Facebook là một website mạng xã hội truy cập miễn phí do công ty Facebook
Inc điều hành và sở hữu tƣ nhân. Ngƣời dùng có thể tham gia các mạng lƣới đƣợc tổ
chức theo thành phố, nơi làm việc, trƣờng học và khu vực để liên kết và giao tiếp với
ngƣời khác. Mọi ngƣời cũng có thể kết bạn và gửi tin nhắn cho họ, và cập nhật trang
hồ sơ cá nhân của mình để thông báo cho bạn bè biết về chúng.
Tên của website nhắc tới những cuốn sổ lƣu niệm dùng để ghi tên những thành
viên của cộng đồng campus mà một số trƣờng đại học và cao đẳng tại Mỹ đƣa cho các
sinh viên mới vào trƣờng, phòng ban, và nhân viên để có thể làm quen với nhau tại
khuôn viên trƣờng.
Facebook mở đầu là một phiên bản Hot or Not của đại học Harvard với tên gọi
Facemash. Mark Zuckerberg, khi đang học năm thứ hai tại Harvard, đã dựng nên
Facemash vào ngày 28 tháng 10 năm 2003. Ngày 4 tháng 2 năm 2004, Zuckerman
thành lập “The Facebook”, ban đầu đặt tại thefacebook.com. Việc đăng ký thành viên
ban đầu giới hạn trong những sinh viên của đại học Harvard, và trong vòng một tháng
đầu tiên, hơn một nửa số sinh viên tại Harvard đã đăng ký dịch vụ này.
Eduardo Saverin (lĩnh vực kinh doanh), Dustin Moskovitz (lập trình viên),
Andrew McCollum (nghệ sĩ đồ họa), và Chris Hughes nhanh chóng tham gia cùng với
Zuckerberg để giúp quảng bá website. Vào tháng 3 năm 2004, Facebook mở rộng sang
Stanford, Columbia, và Yale. Việc mở rộng tiếp tục khi nó mở cửa cho tất cả các
trƣờng thuộc Ivy League và khu vực Boston, rồi nhanh chóng đến hầu hết đại học ở
Canada và Hoa Kỳ.
Tháng 6 năm 2004, Facebook chuyển cơ sở điều hành đến Palo Alto,
California. Công ty đã bỏ chữ The ra khỏi tên sau khi mua đƣợc tên miền
facebook.com vào năm 2005.
Tới tháng 9 năm 2005, Facebook ra mắt phiên bản trung, Zuckerberg gọi nó là
một bƣớc logic tiếp theo. Vào thời gian đó, các mạng của trƣờng trung học bắt buộc
phải đƣợc mời mới đƣợc gia nhập. Facebook sau đó mở rộng quyền đăng ký thành
viên cho nhân viên của một vài công ty, trong đó có Apple Inc và Microsoft.
Tiếp đó vào ngày 26 tháng 9 năm 2006, Facebook mở cửa cho mọi ngƣời trên
13 tuổi với một địa chỉ email hợp lệ. Vào tháng 10 năm 2008, Facebook tuyên bố nó
đã thiết lập một trụ sở quốc tế tại Dublin, Ireland.
14
1.2.2. Cơ chế hoạt động của Facebook
*) Mô hình ứng dụng web thông thường
Hình 1.3: Mô hình web thông thường
Ứng dụng và cơ sở dữ liệu đƣợc đặt trên một máy chủ Web. Ứng dụng sẽ chạy
trên server và ngƣời dùng thực thi ứng dụng bằng cách sử dụng giao thức HTTP thông
qua trình duyệt. Mô hình này sẽ làm việc hiệu quả nếu nhƣ server và client có 1 kết nối
Internet ổn định.
*) Mô hình ứng dụng web Facebook
Hình 1.4: Mô hình web Facebook
Ngƣời dùng truy cập Facebook.com và ứng dụng thông qua trình duyệt Internet.
Tuy nhiên ứng dụng không đƣợc đặt tại máy chủ của Facebook mà đƣợc lƣu trên máy
chủ của chính ngƣời tạo ra ứng dụng đó. Facebook Platform cũng cung cấp một giao
diện cho ngƣời viết ứng dụng.
Với một máy chủ web bình thƣờng trung bình chỉ chịu đƣợc từ 100 tới 500 truy
vấn cùng một lúc. Tuy nhiên với Facebook trung bình mỗi giây phải hiện 600 nghìn
hình ảnh cùng một lúc. Vấn đề đặt ra ở đây là làm thế nào để mỗi giây Facebook hiện
đƣợc 600 ngàn hình ảnh ? Để giải quyết vấn đề này Facebook đã sử dụng vùng lƣu trữ
đệm (cache) và đây cũng chính là trái tim của hệ thống.
15
Hình 1.5: Mô hình web Facebook sử dụng cache
Facebook đã phát triển Haystack – một hệ thống quản lý các tập tin hình ảnh
trung gian để cải tiến sự truy vấn. Trƣớc đây, Facebook đã sử dụng hệ thống 2 tầng:
một tầng chuyên cho việc upload hình ảnh và lƣu trữ vào server. Tầng kia có nhiệm vụ
tìm và lấy hình ảnh từ server để trả lời các truy vấn. Tuy vậy việc xử lý theo cách cổ
điển này là không phù hợp với nhu cầu tăng rất nhanh số lƣợng ngƣời dùng của
Facebook dẫn tới tình trạng nghẽn mạch Input / Output. Haystack sẽ quản lý và lƣu trữ
các hình ảnh trong vùng đệm và từđây sẽ trả lời các truy vấn hình ảnh. Bên cạnh đó
Facebook còn cải tiến các đoạn mã trên webserver để giảm thiểu kích thƣớc tập tin và
thời gian tính toán. Ngôn ngữ lập trình cho từng bộ phận cũng dần đƣợc tối ƣu hóa.
Ngƣời truy cập sẽ đƣợc phân luồng ngẫu nhiên vào các ngân hàng dữ liệu để giảm tải
và các truy vấn của họ sẽđƣợc hệ thống cache trả lời nhanh chóng.
1.2.3. Cách thức làm việc
Hình 1.6: Cách thức làm việc của Facebook
16
1) Trình duyệt của ngƣời dùng yêu cầu http://apps.facebook.com/myapp. Địa
chỉ này trỏ tới một cụm máy chủ trong trung tâm dữ liệu của Facebook. Những server
này sẽ phân tích các yêu cầu , xác định các ứng dụng tƣơng ứng, sau đó tìm kiếm Url
callback mà nhà phát triển ứng dụng cung cấp và thực hiện gọi tới Url đó.
2) Máy chủ của Facebook sẽ gửi yêu cầu tới máy chủ của ngƣời tạo ứng dụng.
Yêu cầu này ngƣời dùng hoàn toàn không biết.
3) Server chứa ứng dụng tạo một lời gọi API tới server của Facebook bằng cách
sử dụng FQL thông qua phƣơng thức fql.query() của API hoặc trực tiếp bằng các hàm
API.
4) Máy chủ chứa ứng dụng sẽ trả về FBML tới máy chủ của Facebook. Kết quả
đạt đƣợc cuối cùng là 1 tài liệu FBML. Tài liệu này sẽđƣợc gửi trả lại server của
Facebook để thực thi.
5) Tài liệu FBML sẽ đƣợc chuyển sang dạng HTML và phục vụ cho ngƣời sử
dụng. Đây là bƣớc cuối cùng trong quá trình thực thi và trả về kết quả cho trình duyệt.
1.2.4. Các dạng ứng dụng trên Facebook hiện nay
Sự phát triển ngày càng lớn mạnh của Facebook đã kéo theo sự ra đời của rất
nhiều các ứng dụng. Theo thống kê hiện nay có khoảng 90.000 ứng dụng trên
Facebook , với sự tham gia của 120 công ty.
Theo thống kê năm 2008 ứng dụng trên Facebook đƣợc chia làm các loại:
Alerts
File sharing
Photo
Business
Food and Drink
Politics
Chat
Gaming
Sports
Classified
Just for fun
Travel
Dating
Messaging
Utility
Education
Mobile
Video
Events
Money
Fashion
Music
Hiện nay ứng dụng hấp dẫn ngƣời dùng trên Facebook vẫn là các game. Dẫn
đầu là game Farmville với số lƣợng ngƣời dùng hàng tháng lên tới 82.580.911 ngƣời.
Thứ 2 là ứng dụng Static FBML do Facebook phát triển với 46.827.021 ngƣời dùng.
Đứng thứ 3 là Birthday Card với 41.904.049 ngƣời dùng hàng tháng.
Tiếp theo là các ứng dụng Café world, Facebook for Iphone, Texas HoldEm
Poker,…
17
1.2.5. Điểm mạnh và yếu của mạng Facebook
*) Ưu điểm
- Là mạng phổ biến hiện nay.
- Tính kết nối cao, chia sẻ cập nhật thông tin hàng ngày mà vẫn bảo vệ đƣợc
quyền riêng tƣ.
- Ứng dụng đƣợc thiết kế khoa học , thao tác nhanh gọn, hỗ trợ tiếng Việt tốt.
- Dễ dàng lƣu trữ và chia sẻ hình ảnh, video clip…
- Nhiều ứng dụng , game, quiz. Ngƣời dùng cũng có thể tạo ra ứng dụng cho
riêng mình.
- Khả năng kết nối, giao lƣu với các thành viên trên các lãnh thổ khác nhau.
- Tính năng viết blog cho phép soạn thảo dễ dàng.
*) Nhược điểm
- Ngƣời dùng không tùy chỉnh đƣợc template để có trang riêng cho mình.
- Nếu là ngƣời mới dùng Facebook sẽ gặp khó khăn về thao tác.
1.3. Ứng dụng trên Facebook
Facebook cung cấp cho ngƣời dùng nền tảng lập trình để có thể phát triển ứng
dụng chạy trên mạng xã hội này. Một số ứng dụng có thể đƣợc cài đặt ngay trong
phạm vi Facebook, những ứng dụng khác lại dễ dàng cài đặt hơn nếu bắt đầu trên trang
web của ứng dụng trƣớc.
Facebook có khoảng 1 tỷ ngƣời dùng và đã thu hút một số lƣợng lớn các nhà
phát triển ứng dụng, trong đó có những ứng dụng thu hút đƣợc hàng chục triệu ngƣời
dùng mỗi tháng và doanh thu đạt hàng chục triệu đô $, điển hình là một loạt game của
hãng phát triển game nổi tiếng Zynga.
Khi ngƣời dùng bắt đầu lập trang trên Facebook, sẽ có vài ứng dụng cơ bản của
Facebook ở cột bên trái. Những ứng dụng này do chính hãng Facebook cung cấp bao
gồm Ảnh (Photos), Phim (Videos), Liên kết (Links), Sự kiện (Events) và Ghi chú
(Notes). Bất cứ ứng dụng nào khác ngƣời dùng cài đặt thêm sẽ là ứng dụng của bên
thứ ba, không phải Facebook tạo ra nó.
Ứng dụng của Facebook cũng bao gồm các trò chơi nhƣ CityVille và Mafia
Wars và một số các ứng dụng khác mà bạn có thể đã thấy nhƣ Give a Hug hoặc
Birthday Calendar.
Vì ứng dụng đƣợc phát triển bởi bên thứ ba, do đó không phải tất cả các ứng
dụng đều hoạt động tốt và đều đáng tin cậy. Ngƣời dùng có thể đã gặp phải một vấn đề
trên Facebook nhƣ các ứng dụng thƣ rác, phá rối hay lừa đảo.
18
CHƯƠNG 2. Xác thực và xác thực bằng OAuth
2.1. Tổng quan về xác thực
2.1.1. Định nghĩa xác thực
Xác thực (Authentication) là một hành động nhằm thiết lập hoặc chứng thực
một cái gì đó (hoặc một ngƣời nào đó) đáng tin cậy, có nghĩa là những lời khai báo do
ngƣời đó đƣa ra hoặc về vật đó là sự thật. Xác thực một đối tƣợng còn có nghĩa là
công nhận nguồn gốc của đối tƣợng, trong khi, xác thực một ngƣời thƣờng bao gồm
việc thẩm tra nhận dạng của họ. Việc xác thực thƣờng phụ thuộc vào một hoặc nhiều
nhân tố xác thực để minh chứng cụ thể.
Xác thực là đặc biệt quan trọng để cho sự hoạt động của hệ thống đƣợc an toàn.
Hệ thống luôn luôn trƣớc tiên xác thực một thực thể khi nó cố thử thiết lập sự liên lạc.
Khi đó nét nhận dạng của thực thể đƣợc dùng để xác định sự truy nhập của nó nhƣ một
đặc quyền hoặc để đạt đƣợc sự sẵn sàng phục vụ. Suốt quá trình thực hiện giao thức
xác thực, hai bên luôn luôn trao đổi bí mật chung, mà nó sẽ đƣợc dùng để đƣa đến sự
bảo mật và toàn vẹn.
2.1.2. Vấn đề xác thực người dùng và tầm quan trọng của nó
Hệ thống xác thực ngƣời dùng đóng vai trò hết sức to lớn trong việc bảo mật
thông tin của ngƣời dùng trong thời kì hiện đại hoá ngày nay. Vậy nếu không có hệ
thống xác thực ngƣời dùng thì làm sao giữ an toàn đƣợc những thông tin bí mật hoặc
làm sao quản lý đƣợc các bí mật trong kinh doanh, thƣơng mại và tài khoản ở ngân
hàng hoặc những nguồn tài nguyên đƣợc chia sẻ ở trên mạng từ một máy chủ?
Với tên và mật khẩu chính xác ngƣời dùng có thể truy cập vào các tệp tin, thƣ
điện tử, tài khoản của mình ở ngân hàng hay những thông tin cá nhân của khác…Mà
ngƣời dùng không muốn một ngƣời dùng nào khác biết đƣợc. Vì vậy có thể nói lợi ích
do hệ thống này mang lại là rất lớn đối với cuôc sống hiện đại ngày nay. Nhƣng các hệ
thống xác thực ngƣời dùng hiện nay cũng gặp phải không ít những vấn đề khó khăn:
Mật khẩu của ngƣời dùng có thể bị đánh cắp bởi những ngƣời dùng trên mạng
internet. Những hacker có rất nhiều công cụ để có thể lấy đƣợc mật khẩu. Do đó đối
với hệ thống xác thực ngƣời dùng để đảm bảo an toàn thì ngƣời dùng phải thay đổi
mật khẩu thƣờng xuyên, do đó sẽ làm cho ngƣời dùng khó nhớ.
Trên thế giới hiện nay phƣơng thức xác thực phổ biến vẫn là sử dụng các ký tự
làm mật khẩu và xu hƣớng đặt mật khẩu của ngƣời dùng có thể là sở thích, tên một
nhân vật nổi tiếng ƣa thích, hoặc ngày sinh nhật… Sẽ làm cho kẻ tấn công sẽ dự đoán
đƣợc. Đối với những mật khẩu thông thƣờng thì ngƣời dùng có thể mô tả đƣợc hoặc
ghi lại đƣợc vì vậy rất dễ bị lộ.
- Xem thêm -