Nắm bắt những thực tế đang xảy ra, tôi nhận thấy rằng cần phải có một mạng xã hội hỗ trợ du khách lập lộ trình du lịch qua các địa danh nổi tiếng và chia sẻ lộ trình với bạn bè của mình
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC
Tel (84-511)3841323 - 3841513, Fax (84-511) 3842953 Website: www.edu.udn.vn E-mail: Education@dng.vnn.vn
KHÓA LUẬN TỐT NGHIỆP
NGÀNH CỬ NHÂN CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI
XÂY DỰNG MẠNG XÃ HỘI HỖ TRỢ NGƯỜI DÙNG
LẬP VÀ CHIA SẺ LỘ TRÌNH DU LỊCH TRÊN NỀN TẢNG ĐIỆN THOẠI THÔNG MINH IPHONE
Trang 2LỜI CẢM ƠN
Tôi xin chân thành cảm ơn các thầy cô trong khoa Tin học cũng như các thầy cô giảng dạy trong trường Đại học Sư Phạm Đà Nẵng đã truyền đạt những kiến thức quý báu cho chúng tôi trong những năm học vừa qua
Đặc biệt, chúng tôi xin chân thành cảm ơn thầy giáo Nguyễn Thanh Tuấn, khoa Tin học, trường Đại học Sư Phạm đã tận tình hướng dẫn, động viên và giúp đỡ tôi trong suốt thời gian thực hiện đề tài
Và để có được kết quả như ngày hôm nay, tôi rất biết ơn gia đình đã động viên, khích lệ, tạo mọi điều kiện thuận lợi nhất trong suốt quá trình học tập cũng như quá trình thực hiện đề tài tốt nghiệp này
Xin chân thành cám ơn giám đốc Ngô Chí Trung, cũng như các anh chị trong Công
ty AsNet đã chân thành giúp đỡ trong những lúc gặp khó khăn và các bạn trong khoa tin học – khóa 08 đã ủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được cho tôi trong quá trình nghiên cứu và thực hiện đề tài
Một lần nữa xin chân thành cám ơn!
Đà Nẵng, tháng 5/2012 Sinh viên thực hiện
Nguyễn Lê Xuân Vinh
Trang 3LỜI CAM ĐOAN
Chúng tôi xin cam đoan :
1 Những nội dung trong luận văn này là do chúng tôi thực hiện dưới sự hướng dẫn trực tiếp của ThS GV Nguyễn Thanh Tuấn
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, chúng tôi xin chịu hoàn toàn trách nhiệm
Đà Nẵng, tháng 5/2012 Sinh viên thực hiện
Nguyễn Lê Xuân Vinh
Trang 4MỤC LỤC
MỞ ĐẦU 8
TỔNG QUAN LÝ THUYẾT 11
I Đặt vấn đề 11
II Giải pháp thực tiễn 11
II.1 Mạng xã hội chia sẻ địa điểm và vạch lộ trình 11
II.2 Các vấn đề gặp phải 17
II.2.1 Khả năng bảo mật 17
II.2.2 Đã có nhiều mạng xã hội 19
III Các công nghệ sử dụng 19
III.1 Tổng quan về Ruby on Rails 19
III.1.1 Giới thiệu 19
III.1.2 Điểm mạnh của Ruby on Rails 20
III.1.3 Kiến trúc mô hình MVC trong Ruby on Rails 22
III.2 Hệ điều hành iOS 27
III.2.1 Giới thiệu 27
III.2.2 Môi trường trình duyệt Safari 28
III.3 Công nghệ Google Maps 29
III.3.1 Hệ thống bản đồ của Google Maps 29
III.3.2 Cách hoạt động của Google Maps API 31
III.4 Các công nghệ khác 31
III.4.1 Công nghệ HTML5 và CSS3 31
III.4.2 Công nghệ jQuery Mobile 33
III.4.3 Định dạng XML 34
III.4.4 JSON 37
III.4.5 RESTful Webservice: 38
PHÂN TÍCH THIẾT KẾ HỆ THỐNG 40
I Phân tích yêu cầu 40
I.1 Hiện trạng vấn đề 40
I.2 Yêu cầu đặt ra 40
I.3 Giải pháp 40
Trang 5II.1 Kiến trúc hệ thống 41
II.2 Các chức năng hoạt động trên hệ thống 43
III Thiết kế hệ thống 44
III.1 Use case của hệ thống 44
III.2 Sơ đồ hoạt động của hệ thống 46
III.3 Sơ đồ tuần tự của các chức năng 47
III.3.1 Chức năng hiển thị bản đồ 47
III.3.2 Chức năng đăng ký thành viên 48
III.3.3 Chức năng đăng nhập 51
III.3.4 Chức năng Add Location 53
III.3.5 Chức năng Directions 54
III.3.6 Chức năng Capture 57
III.3.7 Chức năng Share 58
III.4 Cơ sở dữ liệu của hệ thống 60
III.4.1 Mô tả các bảng 60
III.4.2 Quan hệ giữa các bảng 61
III.5 Cài đặt các công cụ hỗ trợ phát triển hệ thống 61
III.5.1 Công cụ Aptana 61
III.5.2 Công cụ hỗ trợ lập trình web iPhone trên Aptana 62
III.5.3 Cài đặt Framework Ruby on Rails 62
ĐÁNH GIÁ 64
I So sánh chức năng đề tài với các hệ thống khác 64
II Kết quả 65
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 75
I Kết luận 75
I.1 Kết quả đạt được 75
I.1.1 Lý thuyết 75
I.1.2 Thực hành 75
I.2 Những hạn chế của đề tài 76
II Hướng phát triển 76
TÀI LIỆU THAM KHẢO 77
Trang 6DANH MỤC HÌNH
Hình 1: Điện thoại thông minh iPhone 10
Hình 2: Mạng xã hội 12
Hình 3:Các mạng xã hội địa điểm 14
Hình 4: Mạng xã hội Foursquare 15
Hình 5: Mạng xã hội Kunkun 16
Hình 6: Hệ thống lập lộ trình Tourist Eye 17
Hình 7: Mô hình MVC 23
Hình 8: Mô hình tuần tự của MVC 24
Hình 9: Cấu trúc hoạt động của mô hình MVC 25
Hình 10: Hệ điều hành iOS trên iPhone 28
Hình 11: Trình duyệt Safari trên iPhone 29
Hình 12: Google Maps 30
Hình 13: Ứng dụng Google Maps API vào mobile 30
Hình 14: HTML5 32
Hình 15: CSS3 33
Hình 16: jQuery Mobile 34
Hình 17: XML 35
Hình 18: JSON 37
Hình 19: Sơ đồ kiến trúc RESTful Webservice 39
Hình 20: Tổng quan hệ thống 41
Hình 21: Kiến trúc hệ thống 42
Hình 22: Use-case đăng ký và đăng nhập 44
Hình 23: Use-case các chức năng của hệ thống 45
Hình 24: Sơ đồ hoạt động của hệ thống 46
Hình 25: Sơ đồ tuần tự chức năng hiển thị bản đồ 48
Hình 26: Sơ đồ tuần tự chức năng đăng ký 49
Hình 27: Sơ đồ tuần tự chức năng đăng nhập 51
Hình 28: Sơ đồ tuần tự chức năng Add Location 53
Hình 29: Sơ đồ tuần tự chức năng Directions 55
Hình 30: Sơ đồ tuần tự chức năng Capture 58
Hình 31: Sơ đồ tuần tự chức năng Share 59
Trang 7Hình 33: Table Maps 60
Hình 34: Quan hệ giữa các bảng 61
Hình 35: Cửa sổ APTANA 62
Hình 36: Giao diện của hệ thống với các chức năng 65
Hình 37: Đăng ký thành viên 66
Hình 38: Đăng nhập thành viên 67
Hình 39: Hệ thống sau khi đăng nhập 68
Hình 40: Bản đồ hỗ trợ 69
Hình 41: Hiển thị địa danh du lịch qua các biểu tượng 70
Hình 42: Chọn địa danh 71
Hình 43: Lộ trình qua các địa danh 72
Hình 44: Chi tiết lộ trình 73
Hình 45: Chụp ảnh lộ trình 74
Trang 8MỞ ĐẦU
Trong khoảng thời gian gần đây, công nghệ thông tin đã có những bước phát triển vượt bậc Công nghệ thông tin đã làm thay đổi mọi lĩnh vực đời sống của con người Nhiều công việc đòi hỏi sức người, tốn nhiều thời gian trong quá khứ nhưng với sự trợ giúp đỡ của công nghệ thì mọi chuyện đã trở nên đơn giản hơn rất nhiều
Cụ thể sự phát triển công nghệ thông tin trong thời gian gần đây tập trung vào lĩnh vực điện thoại thông minh – smartphone Kể từ khi điện thoại thông minh ra đời vào năm 1993 của IBM với những tính năng vượt trội như giao tiếp bằng giọng nói, màn hình cảm ứng, lịch làm việc, sổ danh bạ Và đến những năm 2000 – 2002 hàng loạt những điện thoại thông minh của các hãng công nghệ Nokia, LG, Palm ra đời với hệ điều hành riêng cùng những tính năng độc đáo Nhưng đến năm 2007, mẫu điện thoại thông minh iPhone của Apple tích hợp Internet và đa phương tiện đã tạo
ra một xu hướng mới trong ngành công nghệ điện thoại thông minh Với màn hình cảm ứng đa điểm và kho ứng dụng bao la Kể từ năm 2007 đến nay điện thoại thông minh của các hãng công nghệ liên tục phát triển với những tính năng vượt trội, dần thay thế cho máy tính PC hay Laptop
Cùng với sự phát triển của công nghệ là nhu cầu kết nối của con người ngày một tăng Với sự ra đời của mạng xã hội Facebook thu hút hơn 600 triệu lượt người
sử dụng cùng nhau chia sẻ mọi thứ cho nhau Những mạng xã hội phục vụ cho công việc như Linked In, mạng xã hội chia sẻ địa điểm Foursquare, tiểu blog Twitter v v đều đã được tích hợp trên điện thoại thông minh
Ở Việt Nam, một đất nước với nhiều danh lam thắng cảnh nổi tiếng, những di sản văn hóa của nhân loại đã và đang thu hút một lượng khách du lịch rất lớn Du khách đến với Việt Nam bằng nhiều hình thức nhưng đều chung mục đích là khám phá vẻ đẹp của Việt Nam, vẻ đẹp pha trộn giữa sự cổ kính và hiện đại
Nắm bắt những thực tế đang xảy ra, tôi nhận thấy rằng cần phải có một mạng
xã hội hỗ trợ du khách lập lộ trình du lịch qua các địa danh nổi tiếng và chia sẻ lộ trình với bạn bè của mình ở khắp nơi trên thế giới
Trang 9Được sự đồng ý của giảng viên hướng dẫn, tôi đã chọn đề tài “Xây dựng
mạng xã hội chia sẻ lộ trình du lịch HelloWorld trên nền tảng điện thoại thông minh iPhone” cho luận văn tốt nghiệp của mình
Luận văn được tổ chức như sau:
Phần 1: Mở đầu
Phần 2: Nội dung đề tài
Chương 1: Cơ sở lý thuyết của vấn đề
Chương 2: Phân tích thiết kế hệ thống
Chương 3: Đánh giá
Phần 3: Kết luận và hướng phát triển
Tài liệu tham khảo
Trang 10PHẦN 2
NỘI DUNG ĐỀ TÀI
XÂY DỰNG MẠNG XÃ HỘI HỖ TRỢ NGƯỜI DÙNG
LẬP VÀ CHIA SẺ LỘ TRÌNH DU LỊCH TRÊN NỀN TẢNG ĐIỆN THOẠI THÔNG MINH IPHONE
Hình 1: Điện thoại thông minh iPhone
Trang 11đi qua những địa danh đó Nhưng có bao giờ, bạn nhận thấy những chuyến đi trên chưa hẳn là tốt nhất, cũng như bạn chưa đi hết tận cùng vẻ đẹp của một địa danh đã phải tiếp tục đi qua một địa danh khác bởi du lịch theo tour đã có sẵn lịch trình Bạn không thể ở quá lâu cho một địa danh Chính vì vậy, trong thời gian gần đây, mọi người bắt đầu sử dụng những hệ thống giúp chia sẻ địa điểm du lịch, vạch lộ trình
du lịch và cả chia sẻ lộ trình du lịch đó với bạn bè
II Giải pháp thực tiễn
II.1 Mạng xã hội chia sẻ địa điểm và vạch lộ trình
Mạng xã hội, hay gọi là mạng xã hội ảo, (tiếng Anh: social network) là 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
Trang 12Hiệ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: 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
Trang 13trở 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
Mạng xã hội chia sẻ địa điểm (location based social network) có rất nhiều
định nghĩa:
Theo đại diện Công ty Cổ phần Công nghệ trẻ (NES) cho biết, mạng xã hội địa điểm là một mạng xã hội kết nối mọi người dựa trên các thông tin về địa điểm thực của người sử dụng để từ đó tìm kiếm bạn bè hay những địa điểm giải trí xung quanh
đó Còn các mạng xã hội truyền thống như Facebook, Zing Me kết nối bạn bè chủ yếu dựa trên thông tin về sở thích chung hoặc quan hệ đời thực (có những người bạn chung với nhau)
Với mạng xã hội địa điểm, người dùng có thể tìm thông tin về quán café mình đang ngồi, tìm các địa điểm giải trí lân cận thay vì phải lên mạng để tìm nhận xét về địa điểm đó hoặc làm quen với những người bạn mới, tìm những người bạn cũ đang
ở gần đó
Trang 14Hình 3:Các 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 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
Mạng xã hội địa điểm Foursquare
Mạng xã hội Foursquare ra mắt tại New York năm 2007 Foursquare cho phép người dùng “check-in” - đây là cách nói chỉ việc thông báo cho Foursquare bạn đang ở đâu Khi bạn “check-in” tại một nơi nào đó, Foursquare sẽ cho bạn bè Foursquare của bạn biết nơi bạn đang ở và khuyên bạn nên đi đến đâu, nên làm những gì ở khu vực đó Mọi người có thể check-in nhiều loại địa điểm khác nhau
như quán cafe, quán bar, nhà hàng, nhà ở, văn phòng
Trang 15Hình 4: Mạng xã hội Foursquare
Khi bạn bè sử dụng Foursquare để check-in, bạn sẽ biết được những địa điểm
mà họ thường hay lui tới và thông tin về các địa điểm này Đây không chỉ là cách tuyệt vời để gặp gỡ những người bạn đang ở gần, mà còn là cách để biết về những địa điểm họ yêu thích cũng như những nơi mới họ đang khám phá
Khi bạn “check-in” ở bất cứ nơi đâu, bạn có thể giành được các điểm hoặc phù hiệu Nếu trở thành khách thăm địa điểm đó thường xuyên nhất, bạn sẽ được tặng vương miện “Thị trưởng” của nơi đó cho đến khi có người khác vượt qua bạn
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
Trang 16Hình 5: Mạng xã hội Kunkun
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
Trang 17Hình 6: Hệ thống lập lộ trình Tourist Eye
Khi sử dụng Touriste Eye bạn chỉ cần nhập điểm bắt đầu và điểm kết thúc chuyến đi, hệ thống sẽ hiển thị những địa danh du lịch nằm giữa điểm bắt đầu và kết thúc Và bạn chỉ việc chọn địa danh phù hợp cho chuyến đi của mình
Cuối cùng bạn có thể download chuyến đi của mình từ hệ thống để có thể sử dụng ngay cả khi không có Internet
II.2 Các vấn đề gặp phải
II.2.1 Khả năng bảo mật
Người dùng Internet đang phải đối mặt với nhiều kẻ theo dõi ẩn mình trong các ứng dụng trực tuyến Đáng ngại là hầu hết các ứng dụng này đang âm thầm chạy trên những thiết bị di động, trong đó có điện thoại thông minh
Foursquare là một trong những mạng xã hội địa điểm được đánh giá rất thành công hiện nay bởi thu hút đông đảo thành viên, trong đó có rất nhiều người dùng
VN Foursquare còn được gọi là mạng xã hội lai game (trò chơi) bởi cách tổ chức giống như một cuộc thi khám phá các địa điểm dành cho người sử dụng máy tính bảng hoặc điện thoại di động thông minh có hỗ trợ định vị toàn cầu GPS
Nguy cơ tiềm ẩn
Trang 18Cụ thể người tham gia sẽ thi đánh dấu các địa điểm mình đang hiện diện bằng cách đăng nhập Foursquare từ điện thoại di động hoặc máy tính bảng và cung cấp các thông tin tùy chọn: tên địa điểm, địa chỉ, hành vi người chơi, tâm trạng Các thông tin này được cập nhật ngay lập tức trong mạng Foursquare và có thể cả trên Facebook, Twitter (dạng thông báo cho bạn bè rằng tôi đang ở đây, làm việc này )
Địa điểm được hiển thị chính xác trên bản đồ nhờ kết hợp dịch vụ định vị GPS Người chơi càng đánh dấu nhiều vị trí thì điểm số càng cao, được chứng nhận nhiều danh hiệu ảo Điểm càng cao càng chứng tỏ người đó đi nhiều, khám phá nhiều, biết nhiều nơi thể hiện “thương hiệu cá nhân” với cộng đồng mạng
Hạn chế sử dụng GPS để tự bảo vệ
Ông Bạch Thành Trung, quản trị diễn đàn VOZ, cho biết hiện chỉ có một cách triệt để nhất là tắt hoàn toàn dịch vụ GPS trên các thiết bị của mình Tuy nhiên, việc này có thể sẽ gây nhiều bất tiện khi không thể sử dụng các dịch vụ liên quan Hơn nữa còn tùy vào việc nhà cung cấp có cho người dùng tự tắt thiết bị hay không Nếu cho phép, thao tác tắt có thể nhờ các trung tâm bảo hành hay hỗ trợ kỹ thuật của các thiết bị hướng dẫn
Nghe qua có vẻ vô hại nhưng theo ông Nguyễn Khoa Hồng Thành, giám đốc Công ty Emerald Digital Marketing, “các thông tin mà những mạng xã hội này thu thập được từ người dùng có thể bị khai thác cho các hoạt động tiếp thị”
Khi đăng ký tham gia Foursquare, người dùng buộc phải đồng ý cho phép nhà cung cấp dịch vụ có quyền truy cập, sử dụng các thông tin liên quan đến tài khoản
cá nhân của họ như: tên, tuổi, giới tính, nơi đang ở, danh sách bạn bè và các thông tin có thể chia sẻ khác Đặc biệt là các thông tin về địa điểm do người chơi đưa lên mạng xã hội địa điểm này
Một doanh nhân hoạt động trong lĩnh vực kinh doanh các dịch vụ số nhận định các nhà cung cấp dịch vụ hoàn toàn có thể theo dõi và thu thập các dữ liệu quý giá thông qua hoạt động đánh dấu của những người chơi: thường xuyên đi mua sắm, ăn uống ở đâu, thích làm gì Những người có số lượng đánh dấu càng nhiều càng giúp
Trang 19nhà cung cấp dịch vụ phân tích rõ ràng hơn về sở thích, khả năng tiêu dùng của họ
Từ đó nhà cung cấp dịch vụ có thể hoặc trực tiếp quảng cáo, tiếp thị đến đúng đối tượng khách hàng, hoặc bán dữ liệu thông tin khách hàng lại cho các công ty quảng cáo, tiếp thị khác
II.2.2 Đã có nhiều mạng xã hội
Sự thành công của Facebook kéo theo hàng loạt bản sao của Facebook như tamtay.vn, thegioiban.com, anhyou.vn, truongxua.vn, noi.vn và nhiều mạng xã hội
vô danh khác 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 Nội dung phổ biến là Nhạc, Video, Hình ảnh, Game văn phòng và tin tức Hiếm có mạng xã hội nào hướng đến một mục tiêu người dùng cụ thể ở Việt Nam Trong khi ở các nước trên thế giới hầu hết đều đã có những mạng xã hội phục
vụ cho một mục tiêu nhất định
Vậy giải pháp cho mạng xã hội mà luận văn hướng đến là gì? Đó chinh là hình thành một mạng xã hội giúp du khách lập lộ trình du lịch và chia sẻ với bạn bè Mạng xã hội lộ trình du lịch chinh là công cụ của du lịch Việt Nam, là nơi quảng bá
du lịch Việt Nam rất tốt
III Các công nghệ sử dụng
III.1 Tổng quan về Ruby on Rails
III.1.1 Giới thiệu
Ruby là một ngôn ngữ lập trình hướng đối tượng được tác giả Yukihiro “Matz” Matsumoto bắt đầu phát triển vào năm 1993 và được phổ biến rộng rãi vào năm
1995 Hiện nay phiên bản mới nhất của Ruby là phiên bản 1.9.3
Ngôn ngữ Ruby là một ngôn ngữ có cú pháp đơn giản, được thừa hưởng từ các ngôn ngữ đã có từ lâu đời như Lisp, Perl, Python, Eiffel hoặc Ada
Trang 20Ruby có một cú pháp sáng sủa và những tính năng riêng mà những ngôn ngữ khác không có được cũng như được tích hợp sẵn thư viện API (Application Programing Interface) của C
Ngoài ra, Ruby vốn là một ngôn ngữ thông dịch nên có thể mềm dẻo sử dụng trên nhiều hệ điều hành khác nhau
Ruby on Rails gọi tắt là Rails là một framework cho phép phát triển ứng dụng web gồm 2 phần cơ bản:
- Phần ngôn ngữ Ruby
- Phần framework Rails bao gồm nhiều thư viện liên kết
Phiên bản mới nhất của Ruby on Rails là 3.2 được phát hành vào năm 2012
III.1.2 Điểm mạnh của Ruby on Rails
Tất cả các ứng dụng web đều liên quan đến cơ sở dữ liệu, cùng những tương tác giữa người dùng và trang web Xuất phát từ vấn đề trên, Ruby on Rails đã trở nên nổi trội vượt bậc trong việc xây dựng ứng dụng phát triển nền tảng web Sức mạnh của Ruby on Rails nằm ở chỗ cung cấp hàng loạt các tiện ích giúp lập trình viên dễ dàng trong việc phát triển web Dưới đây là một số các tiện ích nổi trội trong Ruby on Rails:
- Metaprogramming
Là kỹ thuật sử dụng đặc tả chương trình để xây dựng chương trình Hầu như tất cả mọi ngôn ngữ hiện nay đều áp dụng kỹ thuật này Ruby cũng là một trong những ngôn ngữ có đặc tính trên nhưng lại giúp cho lập trình viên dễ dàng can thiệp hay sửa đổi mã hơn các ngôn ngữ khác
- Active Record
Ruby on Rails đã tự động đưa vào framework khái niệm Active Record dùng
để lưu lại các đối tượng vào cơ sở dữ liệu theo mô hình Design Pattern của Martin Fowler Phiên bản Ruby on Rails của Active Record sẽ tự tìm kiếm các cột trong cơ
sở dữ liệu và liên kết tự động với các đối tượng của ứng dụng bằng kỹ thuật Metaprogramming Nhờ có Active Record giúp lập trình viên truy vấn cơ sở dữ liệu thuận tiện hơn
Trang 21- Scaffolding
Nhờ vào tiện ích này, Ruby on Rails giúp lập trình viên tự động viết mã “tạm thời” cho ứng dụng, nhanh chóng xây dựng được “khung” cho ứng dụng Nhờ vào Scaffolding lập trình viên chỉ việc thêm vào hoặc sửa đổi cho phù hợp với ứng dụng
- Test
Ruby on Rails tạo những phiên thử nghiệm được tự động hóa đơn giản mà lập trình viên có thể dùng để kiểm tra ứng dụng mình trước khi đưa vào sử dụng
- 3 môi trường riêng biệt: Development, Test, Production
Ruby on Rails cung cấp cho lập trình viên 3 môi trường mặc định (3 cơ sở dữ liệu) là development, test và production Mỗi môi trường hoạt động khác nhau đảm bảo tính nhất quán và độc lập cho ứng dụng Chẳng hạn, Ruby on Rails sẽ tự tạo một bản sao chép cơ sở dữ liệu dùng để kiểm tra (test) cho mỗi lần kiểm tra mà không cần thay đổi dữ liệu trong cơ sở dữ liệu phát triển (development)
- AJAX
Ngoài những chức năng trên, Ruby on Rails cũng đã tích hợp AJAX vào bên trong framework giúp cho lập trình viên tạo được những ứng dụng web theo công nghệ Web 2.0
- MVC
Mô hình Design Pattern MVC (Model – View – Controller) được sử dụng trong Ruby on Rails với mục đích là rút gọn sự mắc nối giữa các phần trình bày ứng dụng và phần “lõi” của chương trình Tóm lại là phân bố dữ liệu và phần trình bày
đã được chia làm 3 phần chính
Model: Dùng để quản lý sự tương tác cơ sở dữ liệu
View: Phần giao diện tương tác với người sử dụng
Controller: Dùng để cập nhật thông tin cho Model hay View Controller không thay nhiệm vụ của Model Control không can thiệp vào xử lý cơ sở dữ liệu Nó chỉ
Trang 22có tác dụng xử lý yêu cầu của người dùng và gửi thông điệp đến Model để truy vấn
cơ sở dữ liệu, từ đó hiển thị kết quả cho người sử dụng thông qua View
III.1.3 Kiến trúc mô hình MVC trong Ruby on Rails
Mô hình MVC (Model – View – Controller)
Vào những năm 70 của thế kỷ 20, tại phòng thí nghiệm Xerox PARC ở Palo Alto Sự ra đời của giao diện đồ họa (Graphical User Interface - GUI) và lập trình hướng đối tượng (Object Oriented Programming - OOP) cho phép lập trình viên làm việc với những thành phần đồ họa như những đối tượng đồ họa có thuộc tính và phương thức riêng của nó Không dừng lại ở đó, những nhà nghiên cứu ở Xerox PARC còn đi xa hơn nữa khi họ cho ra đời cái gọi là kiến trúc MVC (viết tắt của Model – View – Controller)
Kiến trúc này ngày càng được phát triển và hoàn thiện nhằm giải quyết các vấn
đề phát sinh cũng như các giải pháp cho quá trình phát triển phần mềm
Kiến trúc mô hình MVC
Trong kiến trúc MVC, một đối tượng đồ họa người dùng (GUI Component) bao gồm 3 thành phần cơ bản: Model, View, và Controller Model có trách nhiệm đối với toàn bộ dữ liệu cũng như trạng thái của đối tượng đồ họa View chính là thể hiện trực quan của Model, hay nói cách khác chính là giao diện của đối tượng đồ họa Và Controller điều khiển việc tương tác giữa đối tượng đồ họa với người sử dụng cũng như những đối tượng khác
Trang 23Hình 7: Mô hình MVC
Khi người sử dụng hoặc những đối tượng khác cần thay đổi trạng thái của đối tượng đồ họa, nó sẽ tương tác thông qua Controller của đối tượng đồ họa Controller sẽ thực hiện việc thay đổi trên Model Khi có bất kỳ sự thay đổi nào ở xảy ra ở Model, nó sẽ phát thông điệp (broadcast message) thông báo cho View và Controller biết Nhận được thông điệp từ Model, View sẽ cập nhật lại thể hiện của mình, đảm bảo rằng nó luôn là thể hiện trực quan chính xác của Model Còn Controller, khi nhận được thông điệp từ Model, sẽ có những tương tác cần thiết phản hồi lại người sử dụng hoặc các đối tượng khác
Trang 24Hình 8: Mô hình tuần tự của MVC Đặc điểm của mô hình MVC
Lợi ích quan trọng nhất của mô hình MVC là nó giúp cho ứng dụng dễ bảo trì, module hóa các chức năng, và được xây dựng nhanh chóng MVC tách các tác vụ của ứng dụng thành các phần riêng lẽ model, view, controller giúp cho việc xây dựng ứng dụng nhẹ nhàng hơn Dễ dàng thêm các tính năng mới, và các tính năng
cũ có thể dễ dàng thay đổi MVC cho phép các nhà phát triển và các nhà thiết kế có thể làm việc đồng thời với nhau MVC cho phép thay đổi trong 1 phần của ứng dụng mà không ảnh hưởng đến các phần khác Sở dĩ như vậy vì kiến trúc MVC đã tách biệt (decoupling) sự phụ thuộc giữa các thành phần trong một đối tượng đồ họa, làm tăng tính linh động (flexibility) và tính tái sử dụng (reusebility) của đối tượng đồ họa đó Một đối tượng đồ họa bấy giờ có thể dễ dàng thay đổi giao diện bằng cách thay đổi thành phần View của nó trong khi cách thức lưu trữ (Model) cũng như xử lý (Controller) không hề thay đổi Tương tự, ta có thể thay đổi cách thức lưu trữ (Model) hoặc xử lý (Controller) của đối tượng đồ họa mà những thành phần còn lại vẫn giữ nguyên
Trang 25Mô hình MVC trong Ruby on Rails
Ruby on Rails đã phân chia cấu trúc ứng dụng của mình thành 3 phần theo mô hình MVC: Model, View, Controller Trong đó Model đại diện cho dữ liệu, View đại diện cho giao diện người dùng và Controller điều khiển các hành động Đối với Ruby on Rails, sức mạnh chủ yếu nằm ở sự kết hợp các yếu tố trong mô hình MVC
Quá trình hoạt động của MVC trong Ruby on Rails
- Người dùng tương tác với giao diện và gây ra một sự kiện (ví dụ như submit một form đăng ký)
- Controller nhận được đầu vào dữ liệu từ sự kiện (ví dụ như dữ liệu được gửi từ một form)
- Controller truy cập đến Model, và cập nhật nó theo một cách nào đó (ví
dụ như tạo một người dùng mới từ những dữ liệu được gửi từ form)
- Controller sẽ làm ra một giao diện cập nhật từ Model đến View (ví dụ như màn hình chào đón người dùng mới)
- Quá trình sẽ được lặp đi lặp lại cho từng sự tương tác của người sử dụng
Hình 9: Cấu trúc hoạt động của mô hình MVC
Trang 26Các lớp mô hình MVC trong Ruby on Rails
- Model: Trong Ruby on Rails, Model đại diện cho cơ sở dữ liệu Với mỗi ứng dụng Ruby on Rails thường được tạo thành bởi nhiều Model, mỗi Model sẽ tương ứng với một bảng trong cơ sở dữ liệu
- Ví dụ một Model có tên là User chính là một bảng trong cơ sở dữ liệu có tên là Users Model User sẽ chịu trách nhiệm cho tất cả những truy cập đến bảng Users trong cơ sở dữ liệu, bao gồm khởi tạo, đọc, cập nhật và xóa Cho nên nếu như lập trình viên muốn làm việc với table, chẳng hạn như tìm kiếm ai đó theo tên thì chỉ cần thao tác với Model thông qua dòng lệnh:
User.find_by_name(‘Linus’)
Để làm được điều này, Ruby on Rails đã sử dụng tiện ích Active Record được tích hợp sẵn để tương tác với database qua các chức năng kiểm tra hợp lệ dữ liệu (validation), quan hệ liên kết giữa các table (association)
và nhiều hơn nữa
- Controller: là lớp chủ đạo trong mô hình MVC Trong Ruby on Rails, Controller cho phép các yêu cầu từ bên ngoài, thực hiện các xử lý cần thiết và kiểm soát các lớp View để hiển thị kết quả Công việc của Controller là yêu cầu thông tin từ Model và sau đó sẽ gửi lại thông tin đến Model để lưu vào cơ sở dữ liệu Có thể hiểu một cách đơn giản, Controller sẽ nhận những yêu cầu từ người sử dụng như khởi tạo, đọc, cập nhật, và xóa một đối tượng trong Model Để trả lời những yêu cầu
đó, Controller sẽ gửi những điều khiển bằng cách sử dụng tiện ích Action Controller đến Model đồng thời thiết lập các biến được sử dụng trong View Kết thúc tiến trình, Controller sẽ hiển thị kết quả của những điều khiển trên View Thông thường Controller sẽ quản lý một khu vực của ứng dụng
- Ví dụ người sử dụng muốn đăng ký thành viên mới sử dụng ứng dụng Điều đầu tiên người sử dụng sẽ gửi yêu cầu khởi tạo thành viên từ form
Trang 27đăng ký Tiếp theo đó, Controller sẽ tiếp nhận yêu cầu khởi tạo này và gửi điều khiển đến Model qua dòng lệnh sau:
def create # logic to create a new user end
Model sẽ kiểm tra trước khi lưu vào cơ sở dữ liệu và phản hồi lại Controller Kết thúc tiến trình, kết quả sẽ được hiển thị trên View thông qua các biến đã được cài đặt bởi Controller
- View: là phần nhìn thấy được trong mô hình MVC Trong các ứng dụng Ruby on Rails, View là khuôn mẫu chứ nội dung của thẻ HTML được hiển thị lên trình duyệt Nói chung View sẽ sử dụng tiện ích Action View
để định dạng và trình bày các đối tượng Model ra ngoài màn hình ứng dụng
- Ví dụ sau khi đăng ký thành công người dùng mới và đã được Model lưu vào cơ sở dữ liệu, việc tiếp theo Model sẽ gửi thông tin đến Controller và thông qua Action View của View để hiển thị câu chào Welcome người dùng mới
III.2 Hệ điều hành iOS
III.2.1 Giới thiệu
iOS còn gọi là iPhone OS là một hệ điều hành đa nhiệm được phát triển bởi tập đoàn Apple Ban đầu hệ điều hành này chỉ được phát triển để chạy trên iPhone, nhưng sau đó nó đã được mở rộng để chạy trên các thiết bị của Apple như iPod touch, iPad và Apple TV
Trang 28Hình 10: Hệ điều hành iOS trên iPhone
Giao diện người dùng của iOS dựa trên cơ sở thao tác bằng tay Người dùng có thể tương tác với hệ điều hành này thông qua rất nhiều động tác bằng tay trên màn hình cảm ứng của các thiết bị của Apple.Phiên bản mới nhất của hệ điều hành iOS
là 5.1
III.2.2 Môi trường trình duyệt Safari
Safari là một trình duyệt web được phát triển bởi tập đoàn Apple và được cài đặt kèm theo hệ điều hành Mac OS X Được phát hành dưới dạng beta vào ngày 7 tháng 1, năm 2003, và là trình duyệt mặc định trong hệ điều hành Mac OS X v10.3
và các phiên bản sau đó Nó cũng là trình duyệt Web được cài đặt mặc định trên các máy iPhone và iPod touch của Apple
Trang 29Hình 11: Trình duyệt Safari trên iPhone
Phiên bản Safari cho hệ điều hành Windows được phát hành vào 11 tháng 6, năm 2007, hỗ trợ Windows XP, Windows Vista và Windows 7 Bản ổn định và mới nhất là Safari 5.0.4, dành cho cả Windows và Mac OS X Trong năm 2011, Safari là trình duyệt được dùng nhiều thứ 4, sau Internet Explorer, Mozilla Firefox và Google Chrome
III.3 Công nghệ Google Maps
III.3.1 Hệ thống bản đồ của Google Maps
Google Maps (trước đây là Google Local) là một ứng dụng dịch vụ bản đồ trực tuyến được cung cấp bởi Google bao gồm cả Google Maps website, Google Ride Finder, Google Transit Google Maps cung cấp bản đồ đường phố, một lộ trình để
đi du lịch bằng chân, xe hơi, xe đạp Hình ảnh vệ tinh Google Maps không được cập nhật theo thời gian thực
Trang 30Hình 12: Google Maps
Google tung ra Google Maps API vào năm 2005 để cho các nhà phát triển tích hợp Google Maps vào các trang web của họ Google Maps API là một dịch vụ miễn phí, không có quảng cáo, nhưng trong tương lai Google sẽ thay đổi điều này
Hình 13: Ứng dụng Google Maps API vào mobile
Năm 2006, Google đã giới thiệu một ứng dụng Java được gọi là Google Maps cho điện thoại di động Đến năm 2007 Google Maps for Mobile 2.0 được phát hành, bao gồm cả tính năng GPS – xác định được vị trí của người sử dụng thông qua điện thoại của họ Cho đến hiện nay Google Maps đã được tích hợp trên nhiều nền tảng của các thế hệ điện thoại thông minh
Trang 31III.3.2 Cách hoạt động của Google Maps API
Tất cả các ứng dụng sử dụng Google Maps API để hiển thị bản đồ Google Maps đều phải dùng một API key Làm thế nào để tạo một API key ?
- Đến trang web https://code.google.com/apis/console và đăng nhập với
tài khoản Google
- Chọn menu Service
- Kích hoạt dịch vụ Google Maps API v3
- Chọn menu API Access để lấy API key
Việc tiếp theo chính là nghiên cứu các tài liệu về Google Maps API để biết cách sử dụng API cho ứng dụng của mình
III.4 Các công nghệ khác
III.4.1 Công nghệ HTML5 và CSS3
HTML5 là một ngôn ngữ cấu trúc và trình bày nội dung cho World Wide Web
và sẽ là công nghệ cốt lõi của Internet trong tương lai không xa, được đề xuất đầu tiên bởi Opera Software Đây là phiên bản thứ 5 của ngôn ngữ HTML và hiện tại vẫn đang được phát triển bởi World Wide Web Consortium và WHATWG Mục tiêu cốt lõi khi thiết kế ngôn ngữ là cải thiện khả năng hỗ trợ cho đa phương tiện mới nhất trong khi vẫn giữ được việc con người và các thiết bị, các chương trình máy tính như trình duyệt web, trình đọc màn hình, v.v có thể đọc, hiểu, hay xử lý một cách dễ dàng HTMl5 vẫn sẽ giữ lại những đặc điểm cơ bản của HTML4 và bổ sung thêm các đặc tả nổi trội của XHTML, DOM, đặc biệt là JavaScript
Trang 32Hình 14: HTML5
Là phiên bản tiếp sau của HTML 4.01 và XHTML 1.1, HTML5 là một phản ứng để đáp lại lời phê bình rằng HTML và XHTML được sử dụng phổ biến trên World Wide Web là một hỗn hợp các tính năng với các thông số kĩ thuật khác nhau, được giới thiệu bởi nhiều nhà sản xuất phần mềm ví dụ Adobe, Sun Microsystems, Mozilla, Apple, Google, và có nhiều lỗi cú pháp trong các văn bản web Đây là một nỗ lực để tạo nên một ngôn ngữ đánh dấu có thể được viết bằng cú pháp HTML hoặc XHTML Nó bao gồm các mô hình xử lý chi tiết để tăng tính tương thích, mở rộng, cải thiện và hợp lý hóa các đánh dấu có sẵn cho tài liệu, đưa ra các đánh đấu mới và giới thiệu giao diện lập trình ứng dụng (application programming interfaces API) để tạo ra các ứng dụng Web phức tạp Cùng một lý do như vây, HTML5 là một ứng cử viên tiềm năng cho nền tảng ứng dụng di động Nhiều tính năng của HTML5 được xây dựng với việc xem xét chúng có thể sử dụng được trên các thiết
bị di động như điện thoại thông minh và máy tính bảng hay không
CSS3
CSS được dùng để miêu tả cách trình bày các tài liệu viết bằng HTML và XHMTL
Trang 33Hình 15: CSS3
CSS hạn chế tối thiểu việc làm rối mã HTML của trang Web bằng các thẻ quy định kiểu dáng (chữ đậm, chữ in nghiêng, chữ có gạch chân, chữ màu ), khiến mã nguồn của trang Web được gọn gàng hơn, tách nội dung của trang Web và định dạng hiển thị, dễ dàng cho việc cập nhật nội dung
CSS tạo ra các kiểu dáng có thể áp dụng cho nhiều trang Web, giúp tránh phải lặp lại việc định dạng cho các trang Web giống nhau
Phiên bản mới nhất của CSS là CSS3 tương thích rất tốt với HTML5 trong việc thiết kế giao diện Hiện nay cả HTML5 và CSS3 đang dần được áp dụng để phát triển các ứng dụng trên điện thoại thông minh
III.4.2 Công nghệ jQuery Mobile
jQuery Mobile là một web framework bằng Javascript hỗ trợ tối ưu việc chạm
đa điểm trong giao diện ứng dụng trên điện thoại thông minh jQuery Mobile là một
dự án được phát triển bởi cộng đồng sử dụng jQuery
Trang 34Hình 16: jQuery Mobile
jQuery có các chức năng nổi bật sau:
- Tương thích với tất cả nền tảng điện thoại di động thông minh cũng như tất cả các trình duyệt trên máy tính để bàn bao gồm iOS, Android, Blackberry, Palm, Symbian, Windows Phone 7 và nhiều hơn nữa
- jQuery Mobile được phát triển từ jQuery, một framework javascript đã quá quen thuộc với lập trình viên cho nên cú pháp câu lệnh hoàn toàn giống với jQuery
- Tối ưu hóa tốc độ truy xuất web
- Tương thích với các công nghệ web như HTML5, AJAX
- Tối ưu hóa giao diện người dùng cảm ứng
Trang 35XHTML, SVG, GML và cXML) được định nghĩa theo cách thông thường, cho phép các chương trình sửa đổi và kiểm tra hợp lệ bằng các ngôn ngữ này mà không cần có hiểu biết trước về hình thức của chúng
XML cung cấp một phương tiện dùng văn bản (text) để mô tả thông tin và áp dụng một cấu trúc kiểu cây cho thông tin đó Tại mức căn bản, mọi thông tin đều thể hiện dưới dạng text, chen giữa là các thẻ đánh dấu (markup) với nhiệm vụ ký hiệu sự phân chia thông tin thành một cấu trúc có thứ bậc của các dữ liệu ký tự, các phần tử dùng để chứa dữ liệu, và các thuộc tính của các phần tử đó Về mặt đó, XML tương tự với các biểu thức S (S-expression) của ngôn ngữ lập trình LISP ở chỗ chúng đều mô tả các cấu trúc cây mà trong đó mỗi nút có thể có một danh sách tính chất của riêng mình
Hình 17: XML
Đơn vị cơ sở của XML là các ký tự theo định nghĩa của Universal Character Set (Bộ ký tự toàn cầu) Các ký tự được kết hợp theo các tổ hợp chuỗi hợp lệ để tạo thành một tài liệu XML Tài liệu này gồm một hoặc nhiều thực thể, mỗi thực thể thường là một phần nào đó của các ký tự thuộc tài liệu, được mã hóa dưới dạng một chuỗi các bit và lưu trữ trong một tệp văn bản (text file)
Các tệp XML có thể dùng cho nhiều loại dữ liệu đa phương tiện RFC3023 định nghĩa các loại "application/xml" và "text/xml", với ý rằng dữ liệu được biểu diễn bằng XML mà không nói gì đến ngữ nghĩa của dữ liệu
Trang 36Sự phổ biến của các phần mềm soạn thảo văn bản (word processor) đã hỗ trợ việc soạn thảo và bảo trì tài liệu XML một cách nhanh chóng Trước XML, có rất ít ngôn ngữ mô tả dữ liệu với các đặc điểm đa năng, thân thiện với giao thức Internet,
dễ học và dễ tạo Thực tế, đa số các định dạng trao đổi dữ liệu thời đó đều chuyên dụng, có tính độc quyền, và có định dạng nhị phân (chuỗi bit thay vì chuỗi ký tự) khó dùng chung giữa các ứng dụng phần mềm khác nhau hay giữa các hệ nền (platform) khác nhau Việc tạo và bảo trì trên các trình soạn thảo thông dụng lại càng khó khăn
Bằng cách cho phép các tên dữ liệu, cấu trúc thứ bậc được phép, và có thể được định nghĩa bởi một giản đồ tùy biến được, XML cung cấp một cơ sở cú pháp cho việc tạo lập các ngôn ngữ đánh dấu dựa XML theo yêu cầu Cú pháp chung của các ngôn ngữ đó là cố định — các tài liệu phải tuân theo các quy tắc chung của XML, bảo đảm rằng tất cả các phần mềm hiểu XML ít ra cũng phải có khả năng đọc (phân tích cú pháp - parse) và hiểu bố cục tương đối của thông tin trong các tài liệu đó Giản đồ chỉ bổ sung một tập các ràng buộc cho các quy tắc cú pháp Các giản đồ thường hạn chế tên của phần tử và thuộc tính và các cấu trúc thứ bậc được phép, ví dụ, chỉ cho phép một phần tử tên 'ngày sinh' chứa một phần tử tên 'ngày' và một phần tử có tên 'tháng', mỗi phần tử phải chứa đúng một ký tự Đây là điểm khác biệt giữa XML và HTML HTML có một bộ các phần tử và thuộc tính không mềm dẻo, chỉ có một tác dụng và nói chung là không thể dùng cho mục đích khác
XML không hạn chế về việc nó được sử dụng như thế nào Mặc dù XML về cơ bản là dạng text, các phần mềm với chức năng trừu tượng hóa nó thành các định dạng khác giàu thông tin hơn đã nhanh chóng xuất hiện, quá trình trừu tượng hóa này được thực hiện chủ yếu qua việc sử dụng các giản đồ định hướng kiểu dữ liệu (datatype-oriented schema) và khuôn mẫu lập trình hướng đối tượng (mà trong đó, mỗi tài liệu XML được thao tác như là một đối tượng) Những phần mềm như vậy
có thể coi XML như là dạng text đã được tuần tự hóa chỉ khi nó cần truyền dữ liệu qua mạng
Trang 37III.4.4 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
Hình 18: JSON 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
Trang 38- Đâ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
III.4.5 RESTful Webservice:
Khái niệm về RESTful Web Services
- REST viết tắt của chữ Representational State Transfer – theo nghĩa cho phép người dùng truy cập tài nguyên – resource (có thể là dữ liệu trước
và sau xử lý hay chức năng của ứng dụng) - của ứng dụng trên web services thông qua url
- Thực hiện cơ chế nói chuyện giữa server và client là điểm đến điểm – point to point
- Dữ liệu được truyền trực tiếp trên HTTP và được truy cập thông qua HTTP theo đúng định dạng MIME mà không cần thông qua dạng SOAP – giảm bớt sự phức tạp – vì đơn giản chúng ta sẽ coi dữ liệu và chức năng như là tham số truyền hay dữ liệu đính kèm trong HTTP
- Cho phép thao tác dữ liệu dưới 4/7 phương thức được định nghĩa trong HTTP đó là GET, POST, PUT, DELETE để qui định rõ cách thao tác dữ liệu trên server, cái nào được truy cập, các nào được sửa đổi, cái nào được hiển thị và dấu ẩn …