Tải bản đầy đủ (.doc) (73 trang)

xây dựng mạng xã hội địa điểm trên mobile

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 (3.52 MB, 73 trang )

1
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
XÂY DỰNG MẠNG XÃ HỘI ĐỊA ĐIỂM
TRÊN MOBILE
Sinh viên thực hiện : Lê Mạnh Hùng
Lớp Công nghệ phần mềm
K51
Giáo viên hướng dẫn: ThS. Lê Tấn Hùng
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
2
HÀ NỘI 5-2011
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Lê Mạnh Hùng
Điện thoại liên lạc 01682031542 Email:
Lớp: công nghệ phần mềm Hệ đào tạo: đại học chính quy
Đồ án tốt nghiệp được thực hiện tại: Hà Nội
Thời gian làm ĐATN: Từ ngày 14 / 2 /2011 đến 27/ 05 /2011
2. Mục đích nội dung của ĐATN
Xây dựng mạng xã hội địa điểm trên mobile, cụ thể là trên hệ điều hành Android, kết nối
với các mạng xã hội khác, cụ thể là Facebook.
3. Các nhiệm vụ cụ thể của ĐATN
Xây dựng server của mạng xã hội địa điểm
Xây xưng ứng dụng trên Android cho phép người dùng kết nối Server và Facebook
4. Lời cam đoan của sinh viên:
Tôi Lê Mạnh Hùng cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự


hướng dẫn của thạc sĩ Lê Tấn Hùng
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ
công trình nào khác.
Hà Nội, ngày 27 tháng 5 năm2011
Tác giả ĐATN
Lê Mạnh Hùng
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo
vệ:
Hà Nội, ngày 27 tháng 5 năm 2011
Giáo viên hướng dẫn
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
3
Mục Lục
2
2
Mục Lục 3
LỜI NÓI ĐẦU 6
Chương II Đặc tả hệ thống 26
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
4
Hình 2.1.a mạng xã hội 9
Hinh 2.1.c mạng xã hội kun kun 11
Hình 3.1.2a kiến trúc Android 14
Hình 3.1.2b Activity State trong Android 16
Hình 3.2.1 Location base service 18
Hình 3.4.2 kiến trúc Hibernate 24
Hình 4.2 Biểu đồ USE CASE 29
Hình 4.2.1: biểu đồ tuần tự login 30
Hình 4.2.2: biểu đồ tuần tự tham gia 30
Hình 4.2.3: biểu đồ tuần tự định vị bản thân 31

Hình 4.2.4: biểu đồ tuần tự khám phá xung quanh 32
Hình 4.2.5: biểu đồ tuần tự khám phá địa điểm 32
Hình 4.2.6.a: biểu đồ tuần tự hiển thị profile 33
Hình 4.2.6.b: biểu đồ tuần tự cập nhật thông tin 34
Hình 4.2.7: biểu đồ tuần tự chia sẻ hành động 35
Hình 4.2.8.a: biểu đồ tuần tự định vị bạn bè 36
Hình 4.2.8.b: biểu đồ tuần tự xem trải nghiệm bạn bè 37
Hình 4.2.9: biểu đồ tuần tự bình luận 38
Hình 4.2.10: biểu đồ tuần tự chia sẻ trải nghiệm 39
Hình 4.2.11: biểu đồ tuần tự gửi tin nhắn 40
Hình 4.2.12: biểu đồ tuần tự kết bạn 40
Hình 5.1.1 kiến trúc tổng quan client 41
Hình 5.2.a giao diện menu Bản đồ 42
Hình 5.2.b xem status bạn bè 43
Hình 5.2.c menu Tôi 44
Hình 5.2.d menu danh sách 44
Hình 5.3 biểu đồ lớp 45
Hình 5.4.1 biểu đồ tuần tự định vị bản thân 46
Hình 5.4.2 biểu đồ tuần tự bình luận 47
Hình 5.4.3 biểu đồ tuần tự chia sẻ trạng thái 48
Hình 5.4.4 biểu đồ tuần tự chia sẻ trải nghiệm 49
Hình 5.4.4 biểu đồ tuần tự gửi tin nhắn 49
Hình 5.4.4 biểu đồ tuần tự khám phá địa điểm 50
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
5
Hình 6.1 kiến trúc Server 51
Hình 6.2 biểu đồ lớp server 52
Hình 6.3.1 sơ đồ thực thể liên kết 54
Hình 6.3.2 biểu đồ các bảng dữ liệu 55
Hình 6.3.3.a bảng policy 56

Hình 6.3.3.b bảng place 56
Hình 6.3.3.c bảng notification 56
Hình 6.3.3.d bảng comment 57
Hình 6.3.3.e bảng mycharacter 57
Hình 6.3.3.f bảng message 57
Hình 6.3.3.g bảng image 58
Hình 6.3.3.h bảng history 58
Hình 6.3.3.i bảng friend 58
Hình 6.3.3.j bảng experience 58
Hình 6.4 biểu đồ usecase server 59
Hình 6.5.1 biểu đồ tuần tự login 60
Hình 6.5.2 biểu đồ tuần tự get person location 62
Hình 6.5.3 biểu đồ tuần tự get people in place 63
Hình 6.5.4 biểu đồ tuần tự get person 64
Hình 6.5.5 biểu đồ tuần tự get place experience 65
Hình 6.5.6 biểu đồ tuần tự ping message 66
Hình 6.5.7 biểu đồ tuần tự post comment 66
Hình 6.5.8 biểu đồ tuần tự post status 67
Hình 6.5.9 biểu đồ tuần tự post exprience 68
Hình 8.1 giao diện bản đồ ứng dụng client 69
Hình 8.2 giao diện bản đồ ứng dụng client với status 70
Hình 8.3 giao diện danh sách ứng dụng client 71
71
Hình 8.4 giao diện tôi ứng dụng client 71
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
6
LỜI NÓI ĐẦU
Trong thời đại bùng nổ thông tin hiện nay thì nhu cầu kết nối của con người trở nên
nóng bỏng hơn bao giờ hết. Thực tế cho thấy những ai nắm bắt được cơ hội này đều trở
thành ông lớn trong giới công nghệ thông tin. Facebook và Android là những ví dụ điển

hình nhất. Sức mạnh của Facebook nằm trong sức mạnh kết nối con người trong khi sức
mạnh của Android thì hứa hẹn 1 tương lai tươi sáng khi đứng sau nó là ông trùm công
nghệ GOOGLE. Chính từ nhu cầu đó nên em đã tìm hiều và phát triển đề tài xây dựng
mạng xã hội địa điểm trên mobile.
Đề tài nhằm đưa người dùng kết nối với nhau trên mobile dựa theo vị trí địa lý,
điều này khiến mối quan hệ giữa họ thật hơn. Với lực lượng đông đảo người dùng
Facebook hiện nay, có nhiều ứng dụng đã rất thành công khi kết nội với mạng xã hội lớn
này. Xu hướng đó cũng là xu hướng đề tài đi theo xây dựng. Mặc dù đã có cố gắng song đồ
án vẫn không thể tránh khỏi những thiếu sót mong thầy cô giúp đỡ em phát triển hoàn
thiện hơn nữa sản phầm của minh trong tương lại
Em xin cảm ơn sự định hướng và giúp đỡ tận tình của thầy Lê Tấn Hùng trong quá
trình tìm hiểu và thực hiện đồ án này.
Sinh viên thực hiện
Lê Mạnh Hùng
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
7
MỞ ĐẦU
Mục tiêu của đồ án nhằm xây dựng mạng xã hội địa điểm mà ở đó người dùng có thể:
• Định vị được địa điểm của mình cũng như người trên bản đồ số trong sự cho phép
của họ.
• Chia sẻ hoạt động, tâm trạng trên vị trí hiện tại của mình, những địa điểm mà mình
quan tâm hay kể những câu chuyện có hình ảnh hay chú thích có liên quan đến địa
điểm đó. Ngược lại có thể bình luận lên chính những hoạt động này của bạn bè.
• Kết nối được với mạng xã hội Facebook, cho phép thành viên của mạng xã hội này
đăng nhập, kết nối và chia sẻ với người thân của mình trên Facebook hay trong
mạng xã hội địa điểm.
• Phục vụ người dùng trên thiết bị mobile chạy hệ điều hành Android, hỗ trợ GPS
hoặc wireless network.
Bố cục đồ án
• phần 1- đặt vấn đề và giải pháp: nêu các tình huống trong cuộc sống, qua đó thấy

được lợi ích của mạng xã hội địa điểm mang lại. Bên cạnh đó, còn nêu các vấn đề
liên quan cần giải quyết đi kèm các giải pháp đời sống cũng như công nghệ với sự
mô tả lý thuyết và công cụ của công nghệ đó.
• phần 2 - đặc tả hệ thống: mô tả chi tiết kiến trúc hệ thống bao gồm các thành phần,
chức năng với các biểu đồ minh hoạ, đồng thời đưa ra các kết quả đạt được trong
quá trình cài đặt và thực thi. Ngoài ra còn có đánh giá ưu nhược điểm của hệ thống.
• phần 3 - Tổng kết và đánh giá: đánh giá các kết quả đạt được trong quá trình thực
hiện đồ án và định hướng phát triển cũng như hoàn thiện.
• Phần 4- tài liệu tham khảo danh sách các tài liệu tham khảo
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
8
Chương I Đặt vấn đề và giải pháp
1. Các tình huống
Chúng ta lạc đường trong thành phố, muốn tìm lối ra? Chúng ta đi tham quan mà
không có bản đồ của địa điểm đó, hay muốn tìm đường đến những địa điểm như công viên,
viện bảo tàng, rạp phim… 1 bản đồ số là cần thiết và có sẵn trong nếu chúng ta là thành
viên của tham gia mạng xã hội địa điểm.
Chúng ta đang tham gia 1 hội chợ hay đi mua sắm tại siêu thị lớn của Hà Nội hay Sài
Gòn hay đang đi du lịch trên sa mạc Sahara … chúng ta muốn chia sẻ hay gửi tin nhắn kèm
địa điểm cho người thân hay bạn bè hay bất kỳ ai điều đó, bạn chỉ việc post lên mạng xã
hội địa điểm.
Đôi khi nhóm bạn chúng ta tụ tập trong 1 chuyến đi chơi xa, và mong muốn cập nhật vị
trí của họ liên tục của họ tại điểm hẹn hoặc trong hội chợ đông đúc, chúng ta muốn biết có
người thân nào cũng tham gia không hay trong ngày nghỉ ở quê, chúng ta thắc mắc bạn bè
có cùng về quê không? Thêm nữa, chúng ta muốn biết bạn thân đang gần mình không trên
trong thành phố đông dân. Thậm chí chúng ta có thể biết được 1 số thông tin người ngồi
cùng quán ăn hay café nếu họ cập nhật thông tin trên mạng xã hội địa điểm.
Chúng ta muốn kể những kỷ niệm từng trải dưới mái trường hay bất kỳ địa điểm nào
khác với những bức ảnh gắn liền, tại sao không cập nhật trên mạng xã hội địa điểm để mọi
người cảm nhận và bình luận. ngược lại, chúng ta muốn xem những thông tin liên quan về

những địa điểm nổi tiếng với những hình ảnh hay bình luận của người khác, thật đơn giản
nếu chúng ta tham gia mạng xã hội địa điểm và để lại những bình luận của mình.
2. Giải pháp
2.1. Mạng xã hội địa điểm
Mạng xã hội -theo vi.wikipedia thì mạng xã hội, hay gọi là mạng xã hội ảolà dịch vụ
nối kết các thành viên cùng sở thích trên Internet lại với nhau với nhiều mục đích khác
nhau không phân biệt không gian và thời gian.
Mạng xã hội có những tính năng như chat, e-mail, phim ảnh, voice chat, chia sẻ file,
blog và xã luận. Mạng đổi mới hoàn toàn cách cư dân mạng liên kết với nhau và trở thành
một phần tất yếu của mỗi ngày cho hàng trăm triệu thành viên khắp thế giới. Các dịch vụ
này có nhiều phương cách để các thành viên tìm kiếm bạn bè, đối tác: dựa theo group (ví
dụ như tên trường hoặc tên thành phố), dựa trên thông tin cá nhân (như địa chỉ e-mail hoặc
screen name), hoặc dựa trên sở thích cá nhân (như thể thao, phim ảnh, sách báo, hoặc ca
nhạc), lĩnh vực quan tâm: kinh doanh, mua bán
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
9
Hiện nay thế giới có hàng trăm mạng mạng xã hội khác nhau, với MySpace và
Facebook nổi tiếng nhất trong thị trường Bắc Mỹ và Tây Âu; Orkut và Hi5 tại Nam Mỹ;
Friendster tại Châu Á và các đảo quốc Thái Bình Dương. Mạng xã hội khác gặt hái được
thành công đáng kể theo vùng miền như Bebo tại Anh Quốc, CyWorld tại Hàn Quốc, Mixi
tại Nhật Bản và tại Việt Nam xuất hiện rất nhiều các mạng xã hội như: Zing Me, YuMe,
Tamtay…
Hình 2.1.a mạng xã hội
Lịch sử 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ụ 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
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
10
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.
Mạng xã hội địa điểm (location based social network ), có rất nhiều định nghĩa :
Theo ông Vương Quang Khải, Phó Giám đốc VNG, một mạng xã hội địa điểm thường
cung cấp các dịch vụ chính gồm có: địa chỉ, ghi danh (check in), tìm kiếm dựa trên khoảng
cách địa lý, hệ thống điểm/xếp hạng người dùng, và bình luận, đánh giá về địa điểm. Bên
cạnh đó, thông tin về địa điểm giúp cho người dùng có một góc nhìn hoàn toàn mới để có
thể khám phá thông tin và tương tác với nhau. Đây là sự khác biệt lớn nhất của mạng xã
hội địa điểm so với các mạng xã hội truyền thống.
Các mạng xã hội địa điểm thuần tuý có nhược điểm là số lượng người sử dụng thấp và
thường chỉ giới hạn trong tập những người dùng smartphone, sẽ khó cạnh tranh khi các
mạng xã hội truyền thống cung cấp thêm chức năng địa điểm. Ví dụ như Facebook đã bổ
sung thêm Facebook Places hoặc goOnline đang phát triển goLocation. Khi đó, các mạng
xã hội địa điểm thuần tuý sẽ phải thu hẹp lại và trở thành một phần cộng sinh (plugin) cho
mạng xã hội truyền thống (như FourSquare sẽ sống chủ yếu trên nền của Facebook và
Twitter). Xu hướng chung thì các mạng xã hội truyền thống đều sẽ tích hợp thêm chức
năng địa điểm, vì đây là một hướng mở rộng tự nhiên của mạng xã hội và dịch vụ này
mang lại nhiều lợi ích cho người dùng.
Lịch sử phát triển của mạng xã hội địa điểm
Trên thế giới, mô hình mạng xã hội dựa trên địa điểm (location based social networking)

không mới. Foursquare có thể xem là hình mẫu thành công đầu tiên của hình thức mạng xã
hội này. Dennis Crowley và Naveen Selvadurai phát triển Foursquare từ năm 2009, đến
năm 2010, sản phẩm này đã có sự phát triển ngoạn mục.
Hình 2.1.b mạng xã hội địa điểm
Ý tưởng về mạng xã hội dựa trên địa điểm manh nha khi điện thoại thông minh với hệ
thống định vị ra đời. Ban đầu, hệ thống định vị giúp người dùng xác định được vị trí của họ
và tìm đường trên bản đồ, hiểu nôm na là tích hợp một bản đồ vào điện thoại di động.
Nhưng nhu cầu của con người không chỉ dừng lại ở đó. Với mạng xã hội địa điểm, người
dùng sau khi đăng nhập ngoài việc tìm kiếm thông tin về địa điểm, có thể tạo ra một mạng
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
11
kết nối với các người dùng khác thông qua việc họ hiển thị đăng nhập và chia sẻ với nhau
các địa điểm mình quan tâm.
Người dùng Foursquare “check-in” tức là vào các đại lộ trên Foursquare bằng cách sử
dụng tin nhắn SMS, website di động hoặc một ứng dụng di động đặc thù. Sau đó họ được
thưởng điểm và đôi khi là “phù hiệu”. Người dùng có thể chọn đăng điểm mình check-in
qua tài khoản của mình trên Twitter, Facebook hoặc cả hai. Trong phiên bản Foursquare
1.3 dành cho iPhone, Foursquare bắt đầu đẩy thông báo của các cập nhật của bạn bè mà họ
gọi là “Ping”.
Trang công nghệ out-smarts đánh giá những mạng xã hội dựa trên địa điểm hàng đầu
trên thế giới hiện nay là: Foursquare, Facebook Places, Loopt, Gowalla và Yelp.
Mạng xã hội địa điểm tại Việt Nam
Ở Việt Nam, mạng xã hội bản đồ được nhắc đến lần đầu tiên khoảng đầu năm 2009, khi
ứng dụng KunKun của hai sinh viên khoa Công nghệ thông tin, đại học Bách Khoa
TP.HCM giành giải nhất cuộc thi Mùa hè sáng tạo (tháng 3/2009).
So với mạng xã hội bản đồ kunkun.vn mới ra mắt của Viettel, ý tưởng có vẻ khá giống
nhau. Mặc dù ra mắt vào thời điểm khá nhạy cảm và được “đồn” là mạng xã hội thay thế
Facebook, nhưng đến nay, KunKun dường như chưa có sự vận động.
Hinh 2.1.c mạng xã hội kun kun
Mạng xã hội bản đồ này dựa trên những chia sẻ từ cá nhân và bạn bè, bên cạnh đó những

gợi ý dành cho người dùng (gợi ý kết bạn, gợi ý địa điểm…) chưa được triển khai nên
khiến cho những người mới vào cảm giác bị… cô lập. Ngoài việc xem bản đồ và thêm địa
điểm của cá nhân, người dùng của kunkun chưa có sự kết nối với nhau. Có vẻ ở giai đoạn
này, Viettel mới chỉ đưa ra KunKun.vn để “xí phần” trên thị trường cung cấp dịch vụ mạng
xã hội dựa trên địa điểm.
Được truyền thông khá rầm rộ từ trước khi ra mắt, ngày 11/1, Yoo! xuất hiện trên thị
trường với một số tính năng định vị được nhấn mạnh. Người dùng đăng nhập Yoo! có thể
nhận được các gợi ý về những thành viên khác ở gần địa điểm của mình, tuy thế, chức
năng cập nhật vị trí tự động có vẻ chưa hoạt động ổn định, người dùng cập nhật địa điểm
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
12
thủ công thì sẽ nhận được nhiều hơn các gợi ý về các thành viên ở gần và địa điểm ở gần.
Đây là sản phẩm do Công ty Cổ phần Công nghệ trẻ (NES) phát triển.
2.2. Các vấn đề liên quan
2.2.1. Quyền bảo mật riêng tư
Đây là vấn đề nhạy cảm mà người dùng là trung tâm khi họ tham gia vào internet nói
chung và mạng xã hội nói riêng và đặc biệt hơn là đến việc chia sẻ vị trí hiện tại hay thông
tin liên quan. sự thật là khi người dùng chia sẻ vị trí hay địa điểm của mình thì họ tự đặt
câu hỏi : liệu mình có bị theo dõi không? những ai có thể biết được thông tin của mình? Rõ
ràng người dùng là nắm đằng lưỡi khi họ tham gia việc chia sẻ vị trí hay mạng xã hội địa
điểm. Vì vậy, nhà phát triển mạng xã hội địa điểm cần phải đảm bảo việc bảo mật riêng tư
cho cộng đồng của mình, cho họ quyền chủ động trong quyết định chia sẻ thông tin nào,
cho ai, và họ có quyền gì đối với thông tin ấy.
Đã có rất nhiều bài học kinh nghiệm về việc mạng xã hội vi phạm quyền bảo mật tính
riêng tư, trong đó có cả các ông lớn như Google, Facebook. Cụ thể có thể nêu ra:
Google Buzz đã sai lầm vì đã vi phạm "lời hứa bảo vệ quyền riêng tư" của khách
hàng. Dịch vụ Google Buzz được ra mắt vào tháng 2/2010 đã chịu sự chỉ trích từ phía
người dùng. Tính năng bị khiếu nại nhiều nhất là cho phép công khai danh sách các liên lạc
thường xuyên của người dùng Gmail. Tính năng này có thể tắt đi, nhưng thiết lập mặc định
lại cho phép tiết lộ danh bạ của các liên lạc cũ. "thủ thuật gian lận" này được sử dụng để

đưa dữ liệu cá nhân của người dùng Gmail vào hệ thống mạng. Ngay cả khi người dùng
không còn tham gia Buzz nữa, tính năng này vẫn tồn tại. FTC cho rằng Goolge đã vi phạm
chính sách bảo mật, vì đã sử dụng dữ liệu cá nhân của khách hàng vào dịch vụ khác mà
không báo trước. Trong tháng 11/2010 một số người dùng đã kiện công ty về việc vi phạm
quyền riêng tư. Google đã giải quyết việc này bằng cách lập ra một quỹ hỗ trợ cho "Tổ
chức giáo dục quyền riêng tư và chính sách lướt web" với chi phí 8,5 triệu USD. Đó như là
lời xin lỗi người dùng vì bản thử nghiệm chưa đầy đủ của dịch vụ Buzz.
Qua đó thấy được việc bảo vệ quyền riêng tư của người không những là việc thực thi
pháp luật mà còn ảnh hưởng rất lớn đến thành quả của mạng xã hội. Cần cung cấp quyền
cài đặt cho người dùng thật dễ hiểu, linh động và đưa ra cảnh bảo nếu như họ sẽ chia sẻ
thông tin của mình.
2.2.2. Có quá nhiều mạng xã hội
Các mạng xã hội địa điểm thuần tuý có nhược điểm là số lượng người sử dụng thấp và
thường chỉ giới hạn trong tập những người dùng smartphone, sẽ khó cạnh tranh khi các
mạng xã hội truyền thống cung cấp thêm chức năng địa điểm. Ví dụ như Facebook đã bổ
sung thêm Facebook Places hoặc goOnline đang phát triển goLocation. Khi đó, các mạng
xã hội địa điểm thuần tuý sẽ phải thu hẹp lại và trở thành một phần cộng sinh (plugin) cho
mạng xã hội truyền thống (như FourSquare sẽ sống chủ yếu trên nền của Facebook và
Twitter). Xu hướng chung thì các mạng xã hội truyền thống đều sẽ tích hợp thêm chức
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
13
năng địa điểm, vì đây là một hướng mở rộng tự nhiên của mạng xã hội và dịch vụ này
mang lại nhiều lợi ích cho người dùng.
Sự thành công của Facebook kéo theo hàng loạt bản sao của Facebook như tamtay.vn,
Faceviet.com, Guongmat.com, ZoomBan.vn, YouSecond.com, Thegioiban.com,
Anhyou.vn, truongxua.vn, Noi.vn và nhiều Mạng xã hội vô danh khác. Nhiều Mạng xã hội
sao chép chính xác không khác máy photocopy là mấy, đến nút bấm cũng giống hệt nút
bấm của Facebook. Trên đây chỉ là một ví dụ về sự thiếu đa dạng trong mô hình kinh
doanh của nhiều Mạng xã hội. Tuy nhiên điều nguy hiểm lại nằm ở chỗ hầu hết các Mạng
xã hội tại Việt Nam đều nhái lại Facebook và Myspace và nhắm vào lứa tuổi 15 – 30. Điều

này càng làm tăng số lượng đối thủ cạnh tranh trong một mảnh đất chật hẹp, và người dùng
ngày càng giảm cam kết với các Mạng xã hội.
Hàng loạt Mạng xã hội đã chuyển trọng tâm sang chia sẻ nội dung để hút giới trẻ tham
gia. Nội dung phổ biến là Nhạc, Video, Hình ảnh, Game văn phòng và tin tức. Những site
đã biến dạng mô hình như tamtay.vn, cyvee.vn, yume.vn, yobanbe.vn, faceviet.vn, …
zoomban.com chưa kịp thay đổi thì đã chết thảm. Khá nhiều Mạng xã hội ( hoặc gần giống
Mạng xã hội) sau khi xác định phân khúc và định vị thì gắng đẩy càng nhiều càng ít video
hoặc hình ảnh gợi tình hay tin tức cướp, hiếp, giết lên Site, tiêu biểu là zing.vn, tamtay.vn,
clip.vn. Sự thay đổi này có phải là chiến thuật đúng đắn? Chưa có thành công nổi bật nào
đến từ việc đổi thay, nhưng điều nhìn thấy là các Mạng xã hội lại đồng loạt vác bom lao
vào cuộc chiến mới, cuộc chiến đầu tư Cơ sở hạ tầng, ứng dụng Web, nhân sự và
marketing để quản lý, bảo vệ và phát triển nội dung. Cuộc chiến chỉ dành cho những tổ
chức có nguồn tài chính hoặc có bầu sữa mẹ dồi dào. Nếu ai đó nói, Việt Nam là đất nước
của các trào lưu dựa trên tâm lý bầy đàn, khởi điểm với chó Nhật, rồi Blog, rồi Chứng
khoán, và giờ là Mạng xã hội, Công cụ tìm kiếm cũng không sai nhiều lắm.
Vậy giải pháp mạng xã hội mà đồ án hướng tới là gì? Đúng như phần trên phân tích
thì “các mạng xã hội địa điểm thuần tuý sẽ phải thu hẹp lại và trở thành một phần cộng
sinh (plugin) cho mạng xã hội truyền thống ”. Mạng xã hội địa điểm có thể coi là plugin
cho mạng xã hội truyền thống. Điều này sẽ dễ dàng hơn trong việc thu hút người dùng.
Trong khuôn khổ đồ án hướng tới Facebook như mạng xã hội truyền thống. Như vậy, nếu
như Facebook Place cho phép người dùng tại Việt Nam thì nguy cơ mạng xã hội này khó
có thể thu hút người dùng. Tuy nhiên, mạng xã hội địa điểm hướng tới không phải là 1
plugin đơn thuần của 1 mạng xã hội mà sẽ là nhiều mạng xã hội. Xu hướng tương lai sẽ kết
nối với nhiều mạng xã hội khác như Twitter hay các mạng xã hội truyền thống trong nước.
Điểm mạnh là chúng ta không phải đi hút số lượng người dùng mà chỉ tập trung vào chất
lượng dịch vụ để lôi kéo số người dùng có sẵn trên các mạng xã hội truyền thống trong khi
việc thu hút người dùng có thể coi là gánh nặng đối với các mạng xã hội địa điểm truyền
thống.
3. Công nghệ sử dụng
3.1. Hệ điều hành Android

Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
14
3.1.1. Giới thiệu
Android là hệ điều hành trên điện thoại di động phát triển bởi Google và dựa trên nền
tảng Linux. Trước đây, Android được phát triển bởi công ty liên hợp Android ( sau đó
được Google mua lại vào năm 2005). Theo NPD, thiết bị di động sử dụng hệ điều hành
android bán được tại Mỹ trong quý II năm 2010 xếp vị trí đầu tiên với 33%, thứ 2 là BB os
với 28% và iOS ở vị trí thứ 3 với 22% Android có một cộng đồng những nhà phát triển rất
lớn viết các ứng dụng cho hệ điều hành của mình.Hiện tại có khoảng 70,000 ứng dụng cho
Android os và vào khoảng 100,000 ứng dụng đã được đệ trình, điều này khiến Android trở
thành hệ điều hành di động có môi trường phát triển lớn thứ 2. Các nhà phát triển viết ứng
dụng cho Android dựa trên ngôn ngữ Java. Sự ra mắt của Android vào ngày 5 tháng 11
năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78
công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho
điện thoại di động trong tương lai. Google công bố hầu hết các mã nguồn của Android theo
bản cấp phép Apache. Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệu dòng
XML, 2.8 triệu dòng mã C, 2.1 triệu mã Java và 1.75 triệu dòng mã C++.
3.1.2. Lập trình trên Android
Sơ đồ dưới đây cho thấy các thành phần chính của hệ điều hành Android. Mỗi phần
được mô tả chi tiết hơn dưới đây.
Hình 3.1.2a kiến trúc Android
Các thành phần (component) tạo nên một ứng dụng Android:
• Activity: hiểu một cách đơn giản thì Activity là nền của 1 ứng dụng. Khi khởi động 1
ứng dụng Android nào đó thì bao giờ cũng có 1 main Activity được gọi, hiển thị màn
hình giao diện của ứng dụng cho phép người dùng tương tác.
• Service: thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu, đưa ra
các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy.
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
15
• Content Provider: kho dữ liệu chia sẻ. Content Provider được sử dụng để quản lý và

chia sẻ dữ liệu giữa các ứng dụng.
• Intent: nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các thông báo
đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc bạn mong muốn. VD:
khi mở 1 trang web, bạn gửi 1 intent đi để tạo 1 activity mới hiển thị trang web đó.
• Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới. VD: ta viết 1
chương trình thay thế cho phần gọi điện mặc định của Android, khi đó bạn cần 1 BR để
nhận biết các Intent là các cuộc gọi tới.
• Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừng hoạt
động.
Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần
chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong AndroidManifest .
Android có cơ chế quản lý các process theo chế độ ưu tiên. Các process có priority thấp
sẽ bị Android giải phóng mà không hề cảnh báo nhằm đảm bảo tài nguyên.
• Foreground process: là process của ứng dụng hiện thời đang được người dùng tương
tác.
• Visible process: là process của ứng dụng mà activity đang hiển thị đối với người dùng
(onPaused() của activity được gọi).
• Service process: là Service đang running.
• Background process: là process của ứng dụng mà các activity của nó ko hiển thị với
người dùng (onStoped() của activity được gọi).
• Empty process: process không có bất cứ 1 thành phần nào active.
Theo chế độ ưu tiên thì khi cần tài nguyên, Android sẽ tự động kill process, trước tiên
là các empty process.
Android Activity Life Cycle:
Actitvity là thành phần quan trọng nhất và đóng vai trò chính trong xây dựng ứng
dụng Android. Hệ điều hành Android quản lý Activity theo dạng stack: khi một Activity
mới được khởi tạo, nó sẽ được xếp lên đầu của stack và trở thành running activity, các
Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới được giải phóng.
Activity bao gồm 4 state:
• active (running): Activity đang hiển thị trên màn hình (foreground).

• paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus). VD:
một activity mới xuất hiện hiển thị giao diện đè lên trên activity cũ, nhưng giao diện
này nhỏ hơn giao diện của activity cũ, do đó ta vẫn thấy được 1 phần giao diện của
activity cũ nhưng lại không thể tương tác với nó.
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
16
• stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop
• killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc ưu
tiên. Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng và khi nó
được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng
thái trước đó.
Biểu đồ miêu tả Activity state
Hình 3.1.2b Activity State trong Android
Vòng đời của Activity:
- Entire lifetime: Từ phương thức onCreate( ) cho tới onDestroy( )
- Visible liftetime: Từ phương thức onStart( ) cho tới onStop( )
- Foreground lifetime: Từ phương thức onResume( ) cho tới onPause( )
Android sẽ ship với một bộ các ứng dụng lõi bao gồm một ứng dụng email, lịch
chương trình tin nhắn SMS,, bản đồ, trình duyệt, liên lạc, và những người khác. Tất cả các
ứng dụng được viết bằng cách sử dụng ngôn ngữ lập trình Java.
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
17
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà
phát triển khả năng để xây dựng các ứng dụng vô cùng phong phú và sáng tạo. Các nhà
phát triển được miễn phí để tận dụng lợi thế của các thiết bị phần cứng, thông tin địa điểm
truy cập, dịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo đến các thanh
trạng thái, và nhiều, nhiều hơn nữa.
Các nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sử dụng
bởi các ứng dụng lõi. Kiến trúc ứng dụng được thiết kế để đơn giản hóa việc tái sử dụng
các thành phần; bất kỳ ứng dụng có thể xuất bản các khả năng của mình và ứng dụng nào

khác sau đó có thể làm cho việc sử dụng những khả năng (tùy thuộc vào chế bảo đảm thi
hành theo khuôn khổ). Cơ chế này cũng cho phép các thành phần được thay thế bởi người
sử dụng.
Nằm bên dưới tất cả các ứng dụng là một tập hợp các dịch vụ và hệ thống, bao gồm:
• Một tập phong phú và mở rộng của xem có thể được sử dụng để xây dựng một ứng
dụng, bao gồm các danh sách, lưới, hộp văn bản, các nút, và thậm chí một trình
duyệt web nhúng
• Nhà cung cấp nội dung cho phép các ứng dụng để truy cập dữ liệu từ các ứng dụng
khác (như Contacts), hoặc chia sẻ dữ liệu của riêng mình
• Một quản lý tài nguyên, cung cấp quyền truy cập vào tài nguyên phi mã như dây
bản địa hoá, đồ họa, và bố trí tập tin.
• Một Notification Manager cho phép tất cả các ứng dụng tùy chỉnh để hiển thị cảnh
báo trong thanh trạng thái.
• Một Activity Manager quản lý vòng đời của các ứng dụng và cung cấp một
backstack phổ biến chuyển hướng.
3.2. Location based services
3.2.1. Location based services là gì?
LBS là dịch vụ thông tin hay giải trí cho phép mobile devices kết nối qua mạng di
động và sử dụng vị trí địa lý có thể xác định được của thiết bị đó.
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
18
Hình 3.2.1 Location base service
Dịch vụ này được sử dụng trong rất nhiều lĩnh vực như y tế, công việc , đời sống cá
nhân v.v LBS bao gồm các dịch vụ xác định vị trí của người hoặc vật, chẳng hạn như tìm
kiếm 1 máy rút tiền tự động gần nhất hoặc muốn biết 1 người bạn hay nhân của mình đang
ở đâu hay các dịch vụ theo dõi các phương tiện giao thông hoặc bưu kiện. Bên cạnh đó, nó
còn bao gồm dịch vụ thương mại trên di động khi các doanh nghiệp hướng các quảng cáo
hay các loại vé, phiếu tới các khách hàng hiện tại đang đứng trên vị trí của họ. Các dịch vụ
về thời tiết cá nhân thậm chí là các trò chơi định vị cũng có thể thấy trong LBS. Chúng là 1
ví dụ hội tụ viễn thông

3.2.2. Hệ thống định vị toàn cầu – GPS
Hiện có khá nhiều hệ thống vệ tinh khác nhau nhưng chúng đều có cách hoạt động
khá giống nhau: thiết bị tính toán vị trí của mình từ tín hiệu nhận được từ các vệ tinh GPS.
Các vệ tinh liên tục phát các thông điệp gồm các thông số như thời gian gửi thông điệp,vị
trí của vệ tinh và tình trạng của vệ tinh. Thiết bị nhận sẽ đo thời gian truyền của thông
điệp để tính toán khoảng cách tới từng vệ tinh, từ đó có thể dùng hình học để biết được vị
trí của mình (giao điểm của các đường cầu với tâm là các vệ tinh và bán kính là khoảng
cách tới thiết bị). (United States Coast Guard Navigation Center 1996).
Các thành phần của GPS bao gồm : user, ground và space section
Thành phần không gian (space section) là hệ thống vệ tinh chuyển động quanh trái
đất ở quỹ đạo cao (high orbit) đã để cập ở 2.1.1. Ở quỹ đạo cao các vệ tinh di chuyển
không đều so với tốc độ quay của trái đất nên vị trí của các vệ tinh trên bầu trời đối với
thiết bị nhận sẽ luôn thay đổi. Tuy nhiên hệ thống được thiết kế để lúc nào cũng có 4 vệ
tinh trong tầm nhìn của thiết bị.
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
19
Thành phần mặt đất (ground section) là các trạm điểu khiển và tính toán sái lệch của
vệ tinh từ đó trả về thông tin hiệu chỉnh. Ground section của GPS khác với các hệ thống
tăng cường độ chính xác như LAAS (phần 2.1.4.3.3) ở chỗ tín hiệu của các trạm thuộc
ground section sẽ được dùng để điều chỉnh trực tiếp tín hiệu do vệ tinh GPS phát ra thay vì
chỉ được kết hợp để điều chính độ chính xác trên thiết bị nhận.
Hình 3.2.3.a Hệ thống GPS
Người dùng: là người sử dụng và các thiết bị có nhu cầu định vị, xác định
phương hướng, v.v…
Trên thị trường ngày càng xuất hiện nhiều hơn những chiếc điện thoại di động tích
hợp sẵn chip định vị GPS và được hỗ trợ công nghệ A-GPS.
Trên thực tế, hầu hết các thiết bị cầm tay (điện thoại di động, PDA,…) GPS hiện nay
đều ứng dụng công nghệ A-GPS (Assisted GPS).
Trong nhiều điều kiện thực tế, việc truyền dẫn tín hiệu GPS giữa vệ tinh và thiết bị
nhận trên mặt đất hoạt động rất kém hoặc thậm chí không thể hoạt động, nhất là trong các

thành phố lớn nhiều nhà cao tầng hoặc ở trong không gian kín. A-GPS chính là giải pháp
cho vấn đề này.
Đơn giản, thay cho việc truyền tín hiệu trực tiếp với vệ tinh, A-GPS kết nối tín hiệu
qua một “trạm trung chuyển” là một hệ thống máy chủ hỗ trợ. Hệ thống trung gian này xác
định vị trí của thiết bị so với các trạm thu phát sóng của các mạng điện thoại trung gian
trong khu vực và từ đó tính toán ra vị trí trên hệ thống GPS. Có thể nói, nếu không có sự
hỗ trợ của các trạm trung chuyển qua mạng điện thoại di động này, thiết bị A-GPS vẫn có
thể nhận được tín hiệu từ vệ tinh nhưng không có khả năng giải mã vị trí.
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
20
Hình 3.2.3.b truyền tải tín hiệu GPS
3.2.3. Nguyên lý hoạt động của A-GPS
Một thiết bị tích hợp công nghệ A-GPS điển hình cần có các kết nối dữ liệu (qua
mạng GPRS, 3G hoặc Wi-fi) để có thể truyền tải dữ liệu qua lại với máy chủ trung gian.
Nhiều thiết bị hỗ trợ A-GPS vẫn có thể hoạt động với công nghệ GPS chuẩn không qua hỗ
trợ của mạng truyền dẫn, tuy nhiên trong một số trường hợp, việc xác định vị trí theo thời
gian thực sẽ gặp nhiều khó khăn do thông tin từ vệ tinh đến thiết bị không ổn định.
3.3. Facebook platform
3.3.1. Giới thiệu
Facebook Platform cung cấp 1 tập các hàm API và công cụ cho phép nhà phát triển
thứ 3 tích hợp mạng xã hội mở với ứng dụng của mình trên các website ngoài và các thiết
bị. Được khởi động vào ngày 24 tháng 5 năm 2007, Facebook platform đã lột xác từ việc
chỉ cho phát triển trên trang Facebook.com tới việc hỗ trợ tích hợp với trên các trang web
và nhiều thiết bị.
Theo báo cáo Facebook Platform tháng 5 năm 2010:
• Hơn 1 triệu developer và doanh nghiệp từ hơn 180 nước.
• Hơn 550.000 ứng dụng hoạt động tại thời điểm hiện tại trên Facebook Platform.
• Hàng tháng, hơn 70% người dùng Facebook kết nối tới Facebook Platform.
• Hơn 250.000 trang web tích hợp với Facebook Platform.
• Hơn 100 triệu người dùng Facebook kết nối với Facebook trên các trang website

ngoài hàng tháng.
Các doanh nghiệp đối tác thứ 3 cung cấp các số liệu ứng dụng, một vài blog đã phản
ứng mạnh mẽ trước các ứng dụng Facebook
Ngày 29 tháng 8 năm 2007, Facebook thay đổi cách thức đánh giá phần lớn các ứng
dụng, chú trọng tới các ứng dụng lôi cuốn hơn, chỉ theo tiêu chí xếp hạng ứng dụng là số
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
21
lượng người cài đặt ứng dụng mà họ đưa ra các ưu điểm. Nỗ lực chính tạo ra các ứng dụng
virus là thuê các nhà phát triển ứng dụng Facebook với số lượng lớn. Đại học Satandford
thậm chí còn đưa ra các đề tài trong lớp Khoa học Máy tính: “sáng tạo ứng dụng web thích
hợp dùng số liệu và học tập trên Facebook”. Rất nhiều ứng dụng được sáng tạo với thành
công cao, và được xếp hạng top các ứng dụng Facebook, với thành quả hơn 3.5 triệu người
dùng trong 1 tháng.
3.3.2. Thành phần
Graph API
Graph API là nhân của Facebook platform, cho phép developer đọc và ghi dữ liệu
tới Facebook. Nó cung xấp cái nhìn đơn giản và nhất quán về mạng lưới xã hội, các đối
tượng được trình bảy với dạng duy nhất (như people, photos, events, và pages) và kết nối
giữa chúng (như , likes, and photo tags).
Authentication
Facebook authentication cho phép người dùng tương tác với Graph API trên các thuộc
tính của người dùng Facebook, và nó cung cấp 1 chữ ký đơn trên cơ chế xuyên ngang web,
mobile, và ứng dụng Desktop.
Social plugins
Social plugins bao gồm các nút Like, Recommendations, và Activity Feed cho
phép developer nhằm đưa ra các trải nghiệm xã hội tới người dùng của họ chỉ với vài dòng
mã HTML. Tất cả các plugin social đều là phần mở rộng của Facebook được thiết kế 1
cách đặt biệt do đó không 1 dữ liệu nào của người dùng được chia sẻ với các trang mà nó
xuất hiện.
Open Graph protocol

Open Graph protocol cho phép developer tích hợp trang của mình vào social graph.
Những trang này đem lại những chức năng của của các đối tượng graph khác bao gồm
đường link profile và dòng update cho người dùng đã kết nối. Ngụ ý rằng, Open Graph có
thể có trên các trang web, điều này liên quan đến ý tưởng của công nghệ tìm kiếm. Trong
khi Google vẫn lôi cuốn người dùng ghé thăm hơn bất kỳ trang web nào khác thì Facebook
là là kẻ về nhì. Thậm chí không có 1 công nghệ tìm kiếm tốt bên trong, Facebook thực sự
được ghé thăm nhiều hơn cho các tìm kiếm đặc biệt là các tìm kiếm mang tính xã hội hơn
chính cả Google. Và trong nỗ lực liên kết Facebook với các trang web , Open Graph được
tạo ra 1 công nghệ tìm kiếm phiên bản mở rộng và tương tác ở mức cao. Đây là điều quan
trọng cần nhắc tới, tuy nhiên Google vẫn nắm giữ phần quan trọng đáng kể trong hệ thống
được sắp xếp, thậm chí là nếu Facebook có vượt qua Google đi nữa, thì Google vẫn tiếp
tục đóng 1 vai trò lớn trên thế giới online.
Facebook Markup Language
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
22
Facebook Markup Language là thành phần con tiến hoá của html với vài thành phần được
gỡ bỏ, cho phép các nhà phát triển ứng dụng Facebook tuỳ chỉnh tính năng“ xem và cảm
nhận” trong ứng dụng của mình tới giới hạn của mình. Đây là cách đặc biệt làm thế nào mã
hoá nội dung để cho máy chủ Facebook có thể đọc và xuất bản nó, điều này là cần thiết để
hệ thống Facebook có thể phân tích nọi dụng và xuất bản nó cụ thể hơn. FBML cài đặt bởi
bất kỳ ứng dụng nào được gọi bởi Facebook cho tới 1 tập API con được gọi thay thế.
Facebook cũng đặc tả Facebook javascript và thư viện.
18 tháng 3 năm 2011, Facebook ngừng các ứng dụng FBML mới , nhưng vẫn tiếp
tục hộ trợ các tabs và ứng dựng FBML trước đó. Facebook khuyến khích dùng iframes cho
việc phát triển các ứng dụng mới.
Facebook Connect
Facebook Connect là 1 tập các hàm API của Facebook cho phép các thành viên
đăng nhập từ website, ứng dụng, thiết bị cầm tay và hệ thống trò chơi thứ 3 với sự xác
nhận của Facebook . Trong khi log in, người dùng có thể kết nới tới bạn bè bằng các
phương thức trên và post nội dung lên profile của mình trên Facebook. Developer có thể

dùng các dịch vụ này để giúp đỡ người dùng chia sẻ và kết nối với bạn bè trong và ngoài
Facebook và tăng tính phù hợp cho các website hay ứng dụng của mình.
Tháng 7 năm 2008, Facebook connect hình thành và sẵn sang vào tháng 12 năm
2008. Theo thời báo NewYork, “một vài quan điểm cho rằng dịch vụ này cho thấy những
suy nghĩ mới mẻ đầy kinh ngạc bên trong thung lũng Silicon. Thay vì cố gắng tích trữ
thông tin về người dùng, các doanh nghiệp Internet (bao gồm Facebook, Google, Myspace
và Twitter) tất cả đều chia sẻ ít nhất một vài dữ liệu giúp người dùng không phải mất công
nhập lại liên tục những thông tin giống nhau trên các site khác nhau.”
Kể từ khi khởi động Facebook Connect, công ty này đã thêm các tính năng liên
quan bao gồm: Translations for Connect;

Facebook Connect Wizard và Facebook Connect
cho Mobile Web.
Facebook Connect không thể sử dụng bởi người dùng tại nơi mà không thể truy
cập vào Facebook( như Trung Quốc), thậm chí là các site của bên thứ 3 cũng không thể
truy cập tại đó.
Microformats
Tháng 2 năm 2011, Facebook bắt đầu dùng hCalendar microformat để đánh dấu các
sự kiện và hCard cho địa điểm hẹn gặp của các sự kiện, cho phép hiển thị chi tiết lên lịch
của người dùng hay ánh xạ sang các ứng dụng.
3.4. Các công nghệ khác
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
23
3.4.1. Spring web MVC
Spring Framework, hay ngắn hơn là Spring, là một cấu trúc dùng để xây dựng chương
trình ứng dụng mã nguồn mở dành cho ngôn ngữ lập trình Java. Phiên bản đầu tiên của nó
do Rod Johnson viết, và đã được ông xuất bản cùng với quyển sách đầu tay Expert One-
on-One Java EE Design and Development (Nhà xuất bản Wrox Press, Tháng 10 năm 2002)
- tạm dịch là "Thiết kế và kiến tạo Java EE - tương giao cá nhân một đối một chuyên
ngành". Phiên bản phần mềm này cũng còn được xuất sang nền tảng .NET (.NET

platform), được gọi là Spring.net.
Kiến trúc của Spring Framework được ra mắt công chúng lần đầu tiên hồi tháng 6 năm
2003 dưới Giấy phép Apache - phiên bản 2.0. Phiên bản 1.0 đánh dấu mốc thành đạt đầu
tiên được xuất bản vào tháng 3 năm 2004, và tiếp đó vào tháng 9 năm 2004, tháng 3 năm
2005.
Tuy Spring Framework không bắt buộc người ta phải tuân theo một mô hình lập trình
(programming model) cụ thể nào, song nó lan truyền rộng rãi trong cộng đồng những
người viết chương trình dùng Java, như một hình thức chủ yếu thay thế cho mô hình
Enterprise JavaBean. Theo thiết kế, bộ khung hình này giải phóng lập trình viên dùng Java,
cho phép họ nhiều quyền tự do hơn, và đồng thời cung cấp một giải pháp tiện lợi, đầy đủ
dẫn chứng bằng tài liệu, dễ dàng sử dụng, phù hợp với những thực hành thông dụng trong
công nghệ phần mềm.
Bên cạnh những đặc trưng nền tảng của Spring Framework là những cái có thể dùng
được trong bất cứ một chương trình ứng dụng Java nào, rất nhiều các mở rộng và tiến bộ
trong việc kiến tạo các trình ứng dụng dành cho nền tảng mạng web (web-based
application) dựa trên nền Java Enterprise cũng tồn tại nữa. Spring Framework nổi tiếng
cũng một phần do chính đặc thù kể trên và được giới thương mại công nhận như một nền
tảng kiến trúc có tầm quan trọng trong chiến lược kiến tạo phần mềm.
3.4.2. Hibernate framework
Hibernate là một trong những ORM Framework
Hibernate framework là một framework cho persistence layer. Như vậy, nhờ có
Hibernate framework mà giờ đây khi bạn phát triển ứng dụng bạn chỉ còn chú tâm vào
những layer khác mà không phải bận tâm nhiều về persistence layer nữa.
Hibernate: là một dịch vụ lưu trữ và truy vấn dữ liệu quan hệ mạnh mẽ và nhanh.
Hibernate giúp bạn phát triển các class dùng để lưu trữ dữ liệu theo cách thức hướng
đối tượng: association, inheritance, polymorphism, composition và collections
Hibernate cho phép bạn thực hiện các câu truy vấn dữ liệu bằng cách sử dụng ngôn ngữ
SQL mở rộng của Hibernate (HQL) hoặc là ngôn ngữ SQL nguyên thủy cũng như là sử
dụng các API.
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm

24
Hình 3.4.2 kiến trúc Hibernate
Hibernate được license theo LGPL (Lesser GNU Public License). Theo đó, bạn có thể
thoải mái sử dụng Hibernate trong các dự án open source hoặc các dự án thương mại
(commercial).
3.4.3. Định dạng JSON
JSON (JavaScript Object Noattion) là 1 định dạng hoán vị dữ liệu nhanh. Chúng dễ
dàng cho chúng ta đọc và viết. Dễ dàng cho thiết bị phân tích và phát sinh. Chúng là cơ sở
dựa trên tập hợp của Ngôn Ngữ Lập Trình JavaScript, tiêu chuẩn ECMA-262 phiên bản 3
– tháng 12 năm 1999. JSON là 1 định dạng kiểu text mà hoàn toàn độc lập với các ngôn
ngữ hoàn chỉnh, thuộc họ hàng với các ngôn ngữ họ hàng C, gồm có C, C++, C#, Java,
JavaScript, Perl, Python, và nhiều ngôn ngữ khác. Những đặc tính đó đã tạo nên JSON 1
ngôn ngữ hoán vị dữ liệu lý tưởng.
JSON được xây dựng trên 2 cấu trúc:
• Là tập hợp của các cặp tên và giá trị name-value. Trong những ngôn ngữ khác
nhau, đây được nhận thấy như là 1 đối tượng (object), sự ghi (record), cấu trúc
(struct), từ điển (dictionary), bảng băm (hash table), danh sách khoá (keyed list),
hay mảng liên hợp.
• Là 1 tập hợp các giá trị đã được sắp xếp. Trong hầu hết các ngôn ngữ, this được
nhận thấy như là 1 mảng, véc tơ, tập hợp hay là 1 dãy sequence.
Đây là 1 cấu trúc dữ liệu phổ dụng. Hầu như tất cả các ngôn ngữ lập trình hiện đại đều
hổ trợ chúng trong 1 hình thức nào đó. Chúng tạo nên ý nghĩa của 1 định dạng hoán vị dữ
liệu với các ngôn ngữ lập trình cũng đã được cơ sở hoá trên cấu trúc này.
3.4.4. RESTful Service
REST xác định một nhóm các nguyên lý kiến trúc, bằng cách đó bạn có thể thiết kế
các dịch vụ mạng, chú trọng vào các tài nguyên hệ thống, bao gồm các trạng thái tài
nguyên được định dạng như thế nào và được chuyển tải qua HTTP thông qua một lượng
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm
25
lớn người dùng và được viết bởi những ngôn ngữ khác nhau. Nếu tính theo số dịch vụ

mạng sử dụng, REST đã nổi lên trong một vài năm qua như là một mô hình thiết kế dịch
vụ chiếm ưu thế. Thực tế là REST đã có những ảnh hưởng lớn đến như vậy đối với mạng
và gần như chiếm vị trí của thiết kế giao diện dựa trên SOAP hay WSDL vì nó là cách thức
đơn giản hơn rất nhiều để sử dụng.
REST không thu hút được nhiều sự chú ý khi lần đầu tiên nó được giới thiệu vào năm
2000 bởi Roy Fielding trong luận án của ông "Architectural Styles and the Design of
Network-based Software Architectures" (Phong cách kiến trúc và thiết kế kiến trúc phần
mềm dựa trên mạng) tại Đại học California. Luận án đã phân tích một loạt các nguyên tắc
kiến trúc phần mềm sử dụng mạng như là một nền tảng tính toán phân tán. Hiện nay, vài
năm sau khi được giới thiệu, các khung làm việc chính đối với REST đã được bắt đầu xuất
hiện và vẫn đang được tiếp tục phát triển, vì nó đang được xem xét đề xuất ví dụ như trở
thành một phần của Java™ 6 thông qua JSR-311.
Trong cách thức đơn thuần nhất ngày nay, khi đã thu hút được nhiều sự chú ý thì việc
thực hiện cụ thể của một dịch vụ mạng REST sẽ tuân theo bốn nguyên lý thiết kế cơ bản
như sau
• Sử dụng các phương thức HTTP một cách rõ ràng
• Phi trạng thái
• Hiển thị cấu trúc thư mục như URls
• Chuyển đổi JavaScript Object Notation (JSON) và XML hoặc cả hai.
Các phần sau đây sẽ mở rộng dựa trên bốn nguyên lý này và đề xuất một nhân tố kỹ
thuật cơ bản giải thích vì sao chúng quan trọng đối với các nhà thiết kế dịch vụ mạng
REST.
Sinh viên thực hiện: Lê Mạnh Hùng 20061454 Khóa 51 Lớp công nghệ phần mềm

×