1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng mạng xã hội chia sẽ lộ trình du lịch hello world trên nền tảng điện thoại thông minh iphone

77 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 77
Dung lượng 2,3 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

TRƯỜ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 2

LỜ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 3

LỜ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 4

MỤ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 5

II.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 6

DANH 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 7

Hì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 8

MỞ ĐẦ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 10

PHẦ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 12

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: 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 13

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

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 14

Hì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 15

Hì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 16

Hì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 17

Hì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 18

Cụ 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 19

nhà 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 20

Ruby 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 22

có 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 23

Hì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 24

Hì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 25

Mô 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 26

Cá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 28

Hì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 29

Hì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 30

Hì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 31

III.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 32

Hì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 33

Hì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 34

Hì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 35

XHTML, 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 36

Sự 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 37

III.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 …

Ngày đăng: 22/05/2021, 10:20

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w