Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
MỤC LỤC
1
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
DANH MỤC HÌNH ẢNH
Hình 10. Biểu đồ tuần tự - Gửi yêu cầu trợ giúp.......................................................33
Hình 11. Biểu đồ tuần tự - Nhận yêu cầu trợ giúp.....................................................34
Hình 12. Biểu đồ tuần tự - Phản hồi...........................................................................34
Hình 13. Biểu đồ hoạt động – Đăng ký......................................................................35
Hình 14. Biểu đồ hoạt động – Đăng nhập..................................................................35
Hình 15. Biểu đồ hoạt động – Quản lý thông tin cá nhân.........................................35
Hình 16. Biểu đồ hoạt động – Chỉnh sửa thông tin cá nhân......................................35
Hình 17. Biểu đồ hoạt động – Xem địa điểm.............................................................36
Hình 18. Biểu đồ hoạt động – Tra cứu địa điểm........................................................36
Hình 19. Biểu đồ hoạt động – Gửi yêu cầu trợ giúp..................................................37
Hình 20. Biểu đồ hoạt động – Phản hồi trợ giúp.......................................................37
Hình 21. Biểu đồ lớp..................................................................................................38
Hình 22. Mô hình cơ sở dữ liệu quan hệ....................................................................39
Hình 23. Màn hình Home Apps trên Webservice......................................................42
Hình 24. Tạo một Class (Bảng) cho cơ sở dữ liệu.....................................................42
Hình 25. Tạo một cột cho bảng..................................................................................43
Hình 26. Push Notification từ Webservice.................................................................43
Hình 27. Sơ đồ kết nối giữa ứng dụng với Webservice.............................................45
Hình 28. Sơ đồ nhận dữ liệu từ Webservice của ứng dụng........................................46
2
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
DANH MỤC BẢNG
3
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
MỞ ĐẦU
Cuộc sống ngày càng phát triển, các nhu cầu dịch vụ về đời sống cũng ngày
càng tăng lên. Dịch vụ ngày càng nhiều, các hoạt động trong cuộc sống của con
người cũng theo đó tăng lên. Cơ sở vật chất, giao thông ngày càng phát triển để đáp
ứng nhu cầu của con người. Trong đó dịch vụ du lịch là ngành thu hút và mang lại
nhiều tiềm năng
Nhu cầu du lịch của mọi người ngày càng phổ biến. Đặc biệt ngoài các tour
du lịch thì hình thái du lịch cá nhân. Với hình thức này chúng ta sẽ được trải nghiệm
hoàn toàn theo cách của mình, không bị gò bó bởi các nhà quản lý. Đó cũng là
nguyên nhân loại hình này đang phát triển một cách nhanh chóng trong đó có Việt
Nam.
Tuy nhiên hình thức du lịch cá nhân cũng tiềm ẩn một số ít rủi ro. Những địa
điểm du lịch trên khắp đất nước với vị trí. Trong các chuyến đi, xe ô tô và đặc biệt
xe máy là phương tiện được con người lựa chọn để có thể đi tự do khám phá những
nơi thâm sơn cùng cốc. Song, nó cũng là yếu tố đầu tiên tạo nên rủi ro. Tình trạng
hỏng xe, tại nạn khi tham gia xảy ra thường xuyên. Đặc biệt lại ở những nơi vắng
bóng ít người,.
Bên cạnh đó, trong thời đại công nghệ bùng nổ, điện thoại di động thông
minh không còn xa lạ với mọi người mà đã phổ cập tới mọi người, mọi nhà. Hơn
thế nữa ứng dụng trên điện thoại di động đã và đang đóng góp không hề nhỏ trong
đời sống tiêu dùng của mọi người. Điện thoại không đơn thuần là phương tiện liên
lạc, mà trở thành một công cụ giải trí hữu ích với nhiều ứng dụng kèm theo. Điện
thoại giúp chúng ta tìm đường, xác định vị trí nơi ta đang đứng…và còn nhiều lợi
ích khác
Từ đó, nhiều lúc, khi đi trên đường, bất chợt xe có sự cố, hay gặp vấn đề gì
đó nhưng mình không biết nơi nào, có ai gần đó hay không và uy tín để gọi sự trợ
giúp, đặc biệt là lúc đang có vấn đề cực kỳ quan trọng thì gọi trợ giúp rất quan trọng
và bức thiết.
Chính vì vậy, phần mềm trợ giúp khi gặp sự cố trên điện thoại di động với
tên gọi “Người Việt thân thiện” giải quyết vấn đề nêu trên giúp người dùng tìm
kiếm được những người xung quanh và nhận được trợ giúp một cách nhanh chóng
và thuận tiện nhất.
4
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
1.
TỔNG QUAN ĐỀ TÀI
1. GIỚI THIỆU ĐỀ TÀI
Đề tài “Xây dựng ứng dụng trên di động trợ giúp khách du lịch khi gặp sự
cố”.
Cuộc sống ngày càng phát triển, các nhu cầu dịch vụ về đời sống cũng ngày
càng tăng lên. Dịch vụ ngày càng nhiều, các hoạt động trong cuộc sống của con
người cũng theo đó tăng lên. Cơ sở vật chất, giao thông ngày càng phát triển để đáp
ứng nhu cầu của con người. Trong đó dịch vụ du lịch là ngành thu hút và mang lại
nhiều tiềm năng
Nhu cầu du lịch của mọi người ngày càng phổ biến. Đặc biệt ngoài các tour
du lịch thì hình thái du lịch cá nhân. Với hình thức này chúng ta sẽ được trải nghiệm
hoàn toàn theo cách của mình, không bị gò bó bởi các nhà quản lý. Đó cũng là
nguyên nhân loại hình này đang phát triển một cách nhanh chóng trong đó có Việt
Nam.
Tuy nhiên hình thức du lịch cá nhân cũng tiềm ẩn một số ít rủi ro. Những địa
điểm du lịch trên khắp đất nước với vị trí. Trong các chuyến đi, xe ô tô và đặc biệt
xe máy là phương tiện được con người lựa chọn để có thể đi tự do khám phá những
nơi thâm sơn cùng cốc. Song, nó cũng là yếu tố đầu tiên tạo nên rủi ro. Tình trạng
hỏng xe, tại nạn khi tham gia xảy ra thường xuyên. Đặc biệt lại ở những nơi vắng
bóng ít người,.
Bên cạnh đó, trong thời đại công nghệ bùng nổ, điện thoại di động thông
minh không còn xa lạ với mọi người mà đã phổ cập tới mọi người, mọi nhà. Hơn
thế nữa ứng dụng trên điện thoại di động đã và đang đóng góp không hề nhỏ trong
đời sống tiêu dùng của mọi người. Điện thoại không đơn thuần là phương tiện liên
lạc, mà trở thành một công cụ giải trí hữu ích với nhiều ứng dụng kèm theo. Điện
thoại giúp chúng ta tìm đường, xác định vị trí nơi ta đang đứng…và còn nhiều lợi
ích khác
Từ đó, nhiều lúc, khi đi trên đường, bất chợt xe có sự cố, hay gặp vấn đề gì
đó nhưng mình không biết nơi nào, có ai gần đó hay không và uy tín để gọi sự trợ
giúp, đặc biệt là lúc đang có vấn đề cực kỳ quan trọng thì gọi trợ giúp rất quan trọng
và bức thiết.
Chính vì vậy, ứng dụng trợ giúp khách du lịch khi gặp sự cố với tên gọi
“Người Việt thân thiện” giải quyết vấn đề nêu trên giúp người dùng tìm kiếm
được những người xung quanh và nhận được trợ giúp một cách nhanh chóng và
thuận tiện nhất.
5
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
2. MỤC ĐÍCH VÀ Ý NGHĨA
1. Mục đích
Với đề tài luận văn: “Xây dựng ứng dụng trên di động trợ giúp khách du lịch
khi gặp sự cố”, em xác định cho mình các mục đích cần đạt được cho quá trình thực
hiện luận văn như sau:
− Hiểu biết về hệ điều hành iOS, cách thức xây dựng một phần mềm trên hệ
điều hành iOS, cùng các lý thuyết liên quan khác.
− Nắm bắt cách thức cũng như chu trình để xây dựng và phát triển một sản
phẩm phần mềm.
− Xây dựng được một sản phẩm hoàn thiện, có khả năng ứng dụng vào thực
tế.
2. Ý nghĩa
`Ứng dụng di động trợ giúp khách du lịch khi gặp sự cố là một phương
tiện để kết nối với mọi người xung quanh một cách nhanh chóng, ngoài việc gọi
điện trực tiếp hình thức gửi yêu cầu với mọi người xung quanh để nhận sự trợ
giúp sẽ là một giải pháp hữu ích.
Quan trọng hơn ứng dụng sẽ là một phương tiện kết nối con người với
nhau thông qua mỗi sự trợ giúp, chúng ta sẽ giảm bớt sự lo lắng mỗi khi đi trên
đường vì sẽ luôn có người sẵn sàng giúp đỡ khi chúng ta yêu cầu. Đó cũng là ý
nghĩa quan trọng của ứng dụng đem lại.
3. TRIỂN KHAI ĐỀ TÀI
1. Các bước thực hiện
− Phân tích các yêu cầu sử dụng của đề tài.
− Phân tích thiết kế hệ thống.
− Xây dựng cơ sở dữ liệu.
− Xây dựng hệ thống Webservice.
− Xây dựng ứng dụng trên điện thoại đi động iPhone.
− Triển khai hoạt động ứng dụng, đồng thời tiến hành kiểm thử đảm bảo
chất lượng.
− Viết báo cáo tổng kết đề tài và đề ra hướng phát triển.
6
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
2. Mục tiêu cần đạt được
− Xây dựng thành công hệ thống dữ liệu ở Server với Web Service cung
cấp việc giao tiếp giữa điện thoại với server.
− Xây dựng thành công ứng dụng trên điện thoại di động iPhone.
− Triển khai thành công hệ thống chạy trên môi trường thực tiễn, cụ thể
là: internet cho server và trên điện thoại di đông iPhone cho ứng dụng.
4. PHẠM VI
Kho dữ liệu được xây dựng và phát triển trên mạng internet, cung cấp Web
Service và các phương thức để sử dụng, khai thác dữ liệu của kho.
Ứng dụng trên điện thoại di động, trong giai đoạn này được phát triển trên
nền tảng di động iOS của Apple và cụ thể trên điện thoại di động iPhone, iPod
touch, iPad.
5. BỐ CỤC LUẬN VĂN
Bố cục của luận văn bao gồm:
− Chương 1: Tổng quan đề tài
Nội dung chủ yếu của chương này là giới thiệu khái quát về đề tài cần thực
hiện. Các mục tiêu, ý nghĩa mà đề tài hướng tới. Đề ra các phương pháp giải quyết
đi từ khảo sát thực tế, tìm hiểu lý thuyết đến cách thức thực nghiệm. Phần cuối của
chương là giới hạn phạm vi thực hiện đề tài trong thời gian của luận văn tốt nghiệp
− Chương 2: Cơ sở lý thuyết
Nội dung nghiên cứu lý thuyết liên quan đến quá trình thực hiện đề tài bao
gồm: lý thuyết về hệ điều hành iOS, các thiết bị di động, kiến thức về bộ công cụ
lập trình với ngôn ngữ lập trình Objective-C, hệ quản trị cơ sở dữ liệu với dịch vụ
đám mây Parse giao tiếp với ứng dụng thông qua Parse SDK.
Chương 3: Phân tích và thiết kế hệ thống
Nội dung chương Phân tích, thiết kế hệ thống tập trung vào việc hình thành ý
tưởng ứng dụng, phân tích yêu cầu sau đó tiến hành các bước phân tích thiết kế hệ
7
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
thống bao gồm: xác định tác nhân, đặc tả các ca sử dụng, xây dựng biểu đồ tuần tự,
biểu đồ hoạt động, biểu đồ lớp, thiết kế cơ sở dữ liệu.
− Chương 4: Triển khai và thực nghiệm
Chương này trình bày quá trình thực hiện đề tài, các công cụ và phần mềm
sử dụng, các thuật toán cần có. Kết thúc phần là hình ảnh sản phẩm mẫu khi đưa
vào thực nghiệm.
8
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
2.
CƠ SỞ LÝ THUYẾT
1. HỆ ĐIỀU HÀNH IOS
1. Khái niệm
iOS là hệ điều hành chạy trên các thiết bị di động được sản xuất bởi Apple như
iPhone, iPod touch,iPad... Hệ điều hành này quản lý hoạt động của cácthiết bị phần
cứng và cung cấp tiện ích cũng như ứng dụng phục vụ cho hệ thống, ví dụ như: điện
thoại, tin nhắn SMS, email, trình duyệt web Safari…
Hệ điều hành này được tiết lộ tại Hội nghị và Triển lãm Macworld diễn ra vào
tháng 1 năm 2007 và được phát hành vào tháng 9 năm đó. Khi đó, hệ điều hành này
chưa có tên riêng, nên chỉ đơn giản được gọi là “iPhone chạy OS X”. Vào ngày 17
tháng 10 năm 2007, Apple thông báo một bộ phát triển phần mềm đang được xây
dựng và họ dự định sẽ đưa nó đến "tay của các nhà phát triển vào tháng 2". Ngày 6
tháng 3 năm 2008, Apple đã phát hành bản dùng thử đầu tiên, cùng với một cái tên
mới cho hệ điều hành, đó là “iPhone OS”.
Tháng 6 năm 2010, Apple đổi cái tên iPhone OS thành iOS. Nhãn hiệu "IOS" đã
được Cisco dùng để đặt tên cho hệ điều hành của mình. Để trách các vụ kiện cáo,
Apple đã xin giấy phép sử dụng nhãn hiệu iOS từ Cisco.
2. Các đặc tính
Nền tảng di động iOS với điện thoại di động thông minh iPhone, với thiết kế
đẹp, thời trang, cảm ứng mượt mà, màn hình đẹp và sắc nét cùng với tài năng của
"thánh" Steve Jobs đã khiến cho iPhone trở thành hiện tượng trên mọi thị trường,
đặc biệt là ở Mỹ. Doanh số bán ra của iPhone tăng dần qua các năm, và dần dần
thống lĩnh thị trường của nhiều nước. iPhone dù mỗi năm chỉ ra một phiên bản mới
nhưng sức nóng đủ lan tỏa khắp làng di động, do đó, iOS vẫn chưa bao giờ "già".
iOS là hệ điều hành "đóng" hoạt động trên iPhone, iPad, iPod. iOS đã quyết định
rất nhiều đối với sự thành công của Apple, với giao diện bóng bẩy, đẹp mắt, và dễ
sử dụng. Tất cả chỉ là chạm và vuốt để thực thi. Cùng với chính sách hợp lý để thu
hút các lập trình viên viết ứng dụng, kho ứng dụng Appstore ngày càng lớn khiến
cho người dùng càng thêm thích thú, mọi nhu cầu của từng người đều có thể được
đáp ứng. Cũng như việc Apple cũng tung ra cập nhật, vá các lỗi liên tục khi phát
hiện, khiến cho iOS ngày càng trở nên "thông minh" hơn, an toàn hơn.
Nhưng nếu gọi iOS là thống trị năm 2012 thì điều đó cũng là chưa thể. Vì iOS
chỉ được cài giới hạn trên thiết bị của Apple gồm những thiết bị như iPhone, iPad,
iPod... Thị phần của thiết bị Apple trên thế giới nói chung là không lớn, số liệu các
bạn thấy trên các báo đa số chỉ thống kê tại Mỹ, nhưng đã gọi là thống trị thì phải là
thống trị trên thị trường di động toàn thế giới.
9
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
3. Kiến trúc hệ điều hành iOS
Biểu đồ dưới đây thể hiện các thành phần chính của hệ điều hành iOS:
Hình 1. Kiến trúc iOS
1. Tầng Cocoa Touch
Cocoa là tập hợp các framework hướng đối tượng, cung cấp môi trường thực thi
cho các ứng dụng chạy trên các hệ điều hành Mac OS và iOS. Cocoa là môi trường
phát triển ứng dụng phổ biến và hiệu quả trong Mac OS, và là môi trường phát triển
ứng dụng duy nhất trên iOS. Cocoa trong iOS được gọi là Cocoa Touch. Nó bao
gồm các bộ framework chính là:
•
Quản lý vòng đời ứng dụng
•
Đa nhiệm
•
Local notification
•
Nhận diện các thao tác trên màn hình cảm ứng
•
Map Kit: Cung cấp các giao diện lập trình và thư viện để xây dựng các
ứng dụng dựa trên bản đồ, định tuyến, xác định địa điểm hiện tại của
người dùng.
10
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
•
Message UI Framework: Cung cấp thư viện để soạn và gởi email.
•
iAd Framework: Cho phép lập trình viên nhúng các banner quảng cáo
vào ứng dụng.
•
Push notification: Là dịch vụ chạy thường trực trên thiết bị, cho phép
nhận thông báo được gởi bằng Push notification service ngay cả khi ứng
dụng không được chạy.
2. Tầng Media
Cung cấp cho các ứng dụng iOS khả năng xử lí, khai thác hình ảnh, âm thanh,
video, truyền hình. Các framework của tầng này bao gồm:
• Assets Library
• AV Foundation
• Core Audio
• Core Graphics
• Core MIDI
• Core Video
• Media Player
• Quartz Core
• OpenGL ES
3. Tầng Core Service
Đây là tầng chứa các dịch vụ cơ bản của hệ thống mà hầu hết các ứng dụng đều
sử dụng. Các thành phần của lớp này bao gồm:
• High-level Features:
In-app Purchase
SQLite
XML Support
Block object
11
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
• Core Services Framework:
Address Book
Core Data
Core Foundation
Core Location
Core Media
System Configuration
4. Tầng Core OS
Đây là lớp chứa các đặc trưng ở mức thấp (low-level features). Lập trình viên sẽ
ít sử dụng trực tiếp lớp này (trừ khi thao tác với các thiết bị phần cứng khác hoặc
các vấn đề bảo mật) mà sẽ sử dụng gián tiếp thông qua các lớp phía trên. Lớp này
bao gồm các thành phần sau:
• Accelerate framework
• External Accessory framework
• Security framework
• System
2. NGÔN NGỮ LẬP TRÌNH OBJECTIVE – C
1. Giới thiệu
Ngôn ngữ lập trình Objective-C là một ngôn ngữ lập trình
hướng đối tượng được xây dựng chủ yếu dựa trên nền tảng
ANSI C. Ngoài ra nó còn được mở rộng từ Smalltalk, một trong
những ngôn ngữ lập trình hướng đối tượng đầu tiên. ObjectiveC được thiết kế với mục đích đưa vào C các tính năng hướng
đối tượng một các đơn giản và dễ hiểu nhất.
Objective-C được thiết kế bởi Brad Cox khi ông làm việc cho công ty Stepstone
vào đầu những năm 1980. Objective-C được thiết kế để phục vụ mục đích lập trình
hướng đối tượng. Nó hoạt động giống như là một tập hợp các thành phần mở rộng
rất mạnh mẽ của ngôn ngữ C. Objective-C kết hợp các đặc điểm ưu tú nhất của C và
ngôn ngữ SmallTalk. Objective-C khá đơn giản để học và có đầy đủ các khả năng
của một ngôn ngữ lập trình hướng đối tượng.Hiện tại, Objective-C trở nên phổ biến
vì nó được Apple chọn làm ngôn ngữ lập trình cho hệ thống Mac và iPhone.
12
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
2. Các thành phần
Hầu hết các ngôn ngữ lập trình hướng đối tượng đều cung cấp:
•
Một thư viện các Objects.
• Các công cụ phát triển cần thiết
• Hỗ trợ hướng đối tượng và các thư viện liên quan.
Là ngôn ngữ hướng đối tượng nên Objective-C giải quyết các vấn đề lập trình
dựa trên khái niệm các Object. Nó bao gồm 3 phần:
Interface: Interface của một lớp(class) thông thường được định nghĩa trong file
header với đuôi .h. Nó chính là phần khai báo của một lớp.
Implementation: Mã nguồn của chương trình được viết trong phần
implementation của một lớp và được định nghĩa trong một file có đuôi .m. Đây là
nó phần định nghĩa của lớp.
Instantiation: Sau khi khai báo và định nghĩa một lớp, chúng ta có thể thực thể
hóa lớp này bằng việc cấp phát bộ nhớ cho new object của lớp đó.
Tóm lại Objective-C là:
• Thành phần mở rộng của ngôn ngữ lập trình C.
• Là ngôn ngữ lập trình hướng đối tượng đơn giản nhưng mạnh mẽ.
• Là ngôn ngữ được Apple sử dụng để phát triển các ứng dụng cho hệ
thống máy Mac và iPhone.
3. Các thế mạnh
Ngôn ngữ lập trình Objective-C được chọn cho Cocoa framework vì một số lý
do dưới đây:
• Nó là ngôn ngữ lập trình hướng đối tượng và các chức năng cung cấp
bởi Cocoa framework chỉ có thể được mang lại bởi các kỹ thuật hướng
đối tượng.
• Nó là thành phần mở rộng của chuẩn ANSI C vì vậy các chương trình
viết bằng C của framework này sẽ không bị mất đi tính năng nào và
người dùng được hưởng các lợi thế của ngôn ngữ C.Với ngôn ngữ này,
người dùng có thể lựa chọn cả lập trình hướng đối tượng và lập trình thủ
tục khi cần thiết.
13
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
• Nó đơn giản và dễ học bởi cú pháp của nó khá ngắn gọn nên nó giúp
cho lập trình viên đạt được hiệu quả mong muốn mà không gặp nhiều khó
khăn.
• Nó là một ngôn ngữ mạnh bởi vì các quyết định có thể được đưa ra
lúc biên dịch sẽ được trì hoãn cho tới khi chương trình chạy.
• Nó hỗ trợ ràng buộc động và mở tạo ra một cấu trúc đơn giản đối với
giao diện tương tác người dùng.
• Nó cho phép phát triển các công cụ phát triển phức tạp. Một giao diện
cho hệ thống run time tạo điều kiện cho việc tiếp cận các thông tin lúc
run time giúp cho việc monitor ứng dụng viết bằng Objective-C
4. Môi trường lập trình Xcode
Xcode là môi trường phát triển tích hợp (IDE) chứa đầy đủ các công cụng cho
các nhà phát triển, các lập trình viên khi phát triển ứng dụng trên hệ điều hành
MAC OS và nền tảng di động iOS. Được phát hành từ năm 2003 và tới nay đã trải
qua bốn phiên bản với phiên bản cuối cùng là 4.3.2 được cung cấp miễn phí cho các
nhà lập trình thông qua AppStore.
Các thành phần chính của Xcode:
•
Apple LLVM Compiler : trình biên dịch của Xcode, được Apple phát
triển lên từ trình biên dịch GNU trong phiên bản Xcode 3.2. Được hoàn
thiện trong các phiên bản sau này, tốc độ cũng nhưng tính hiệu quả được
tăng cường.
•
Instruments for Performance và Behavior Analysis : công cụ phân tích
hiệu suất và hành vi. Đây là bộ công cụ hỗ trợ cho các lập trình viên có
thể quản lý tài nguyên hệ điều hành hay bộ nhớ của ứng dụng khi vận
hành.
•
iOS Simulator : là thiết bị đi động ảo được tích hợp để giúp cho các nhà
lập trình di động cài đặt và chạy thử trước khi đưa vào thiết bị thật. Công
cụ ảo này có đầy đủ tính năng như thiết bị thật và ngày càng được Apple
phát triển nhằm đem lại những gì tốt nhất cho các lập trình viên.
14
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
3. WEBSERVICE
1. Giới thiệu
Web Services là một cách chuẩn để tích hợp các ứng dụng trên nền web (Webbased applications). Các ứng dụng có thể sử dụng các thành phần khác nhau để tạo
thành một dịch vụ, ví dụ như máy chủ chạy một trang web thương mại điện tử kết
nối với cổng thanh toán điện tử qua một API - Application Programming Interface
( tạo bởi công nghệ .NET thì web services chính là nền máy chủ (IIS - Internet
Information Services), và các thành phần thanh toán, các thành phần .NET được coi
là component (các thành phầm bên ngoài). Các thành phần này được gọi bởi
phương thức SOAP (Khác phương thức POST, GET) nên không bị gặp phải firewall
khi truy xuất các thành phần bên ngoài máy chủ. Và toàn bộ các thành phần đó gọi
là một Web Services.
Các Web Services cho phép các tổ chức thực hiện truyền thông dữ liệu mà
không cần phải có kiến thức về hệ thống IT phía sau tường lửa. Một số Web
Services hiện nay có sẵn miễn phí và càng ngày càng hướng dần vào các doanh
nghiệp.
Một ví dụ về Web Service sẵn có là dịch vụ được cung cấp bởi PayPal cho phép
những người có tài khoản có thể thanh toán hoặc trả một phần hoặc thực hiện các
giao dịch tìm kiếm, và lấy lại các thông tin của từng giao dịch cụ thể.
Ngày này, web service được phát triển trên hầu hết các nên tảng web server hiện
tại, như là :
•
Apache với PHP
•
Tomcat với JSP, Java
•
IIS với .Net, ASP
•
...
Ưu điểm:
• Web service cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần
mềm khác nhau chạy trên những nền tảng khác nhau.
• Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên
văn bản (text), giúp các lập trình viên dễ dàng hiểu được.
• Nâng cao khả năng tái sử dụng.
• Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các
tiến trình/chức năng nghiệp vụ đóng gói trong giao diện Web service.
• Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong
hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán.
• Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành
hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của
các doanh nghiệp khác.
Nhược điểm:
15
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
•
Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Web service,
giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng
cấp, thiếu các giao thức cho việc vận hành.
• Có quá nhiều chuẩn cho Web service khiến người dùng khó nắm bắt.
• Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.
2. Kiến trúc
Web service gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol),
WSDL (Web Service Description Language) và UDDI (Universal Description,
Discovery, and Integration). Hình 3 mô tả chồng giao thức của Web service, trong
đó UDDI được sử dụng để đăng ký và khám phá Web service đã được miêu tả cụ
thể trong WSDL. Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server,
sau đó các ứng dụng SOAP yêu cầu một Web service. Các thông điệp SOAP được
gửi đi chính xác bởi HTTP và TCP/IP.
Hình : Chồng giao thức của dịch vụ Web
Chồng giao thức Web service là tập hợp các giao thức mạng máy tính được sử
dụng để định nghĩa, xác định vị trí, thi hành và tạo nên Web service tương tác với
những ứng dụng hay dịch vụ khác. Chồng giao thức này có 4 thành phần chính:
•
Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp
giữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP,
FTP, JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks
Extensible Exchange Protocol- BEEP).
•
Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng
XML để có thể hiểu được ở mức ứng dụng tương tác với người dùng.
Hiện tại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP
và REST.
•
Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một
Web service cụ thể. WSDL thường được sử dụng cho mục đích này, nó là
16
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML. Web service sẽ
sử dụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao
tác và chức năng mà Web service cung cấp.
•
Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ
đó giúp một Web service có thể dễ dàng khám phá ra những dịch vụ nào
đã có trên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để
tương tác. Một Web service cũng phải tiến hành đăng ký để các dịch vụ
khác có thể truy cập và giao tiếp. Hiện tại, UDDI API thường được sử
dụng để thực hiện công việc này.
3. Hoạt động
Hình : Mô hình hoạt động của Web service
Trong mô hình hoạt động của mỗi Web service, thông thường sẽ có 3 thành phần
tham gia.
• Đầu tiên là các nhà cung cấp dịch vụ, tạm gọi là Provider. Công việc là xây
dựng và cài đặt đối tượng dịch vụ lên 1 web server và cung cấp bản mô tả
dịch vụ để hướng dẫn mọi người cách khai thác. Ngôn ngữ sử dụng cho các
bản mô tả dịch vụ là SDL - Service Description Language, với cấu trúc cú
pháp của XML.
17
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
•
Thành phần thứ 2: các nhà khai thác dịch vụ, tạm gọi là Consumer. Công
việc là xem xét bản mô tả dịch vụ của nhà cung cấp, dựa vào đó để xây dựng
lớp trung gian truy xuất đối tượng dịch vụ, và cuối cùng, thiết kế giao diện
cho ứng dụng.
• Thành phần thứ 3 trong chuỗi là những người dùng cuối, End - user. Họ truy
cập trang web của các nhà khai thác dịch vụ, và sử dụng, một cách gián tiếp,
Web Service của Provider.
18
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
3.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1. PHÂN TÍCH YÊU CẦU
Chương 1 của luận văn đã đề cập đến ý tưởng cũng như các nội dung trọng
yếu của đề tài “Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố”.
Phần này sẽ mô tả chi tiết về các yêu cầu cùng các nội dung cần thực hiện của bài
toán.
1. Mô tả bài toán
Đối tượng
Cho các khách sử dụng iphone
Các nhà phát triển và lập trình viên.
• Mục đích
Tìm kiếm những người xung quanh mình
Gọi trợ giúp khi có vấn đề cần thiết phải gọi người khác giúp đỡ
• Cơ sỡ dữ liệu ( gồm 2 nguồn )
Google Map : cung cấp các địa điểm công cộng ( như bệnh viện, nhà
hàng, khách sạn..) để người du lịch tìm đường và tham khảo. Mang tính
chất dữ liệu cứng.
• Triển khai
Điện thoại di động ( cụ thể là iPhone ) : cài đặt ứng dụng. Nhằm giúp
người du lịch có thể tìm kiếm và hiển thị các địa điểm du lịch.
Server : sử dụng webservice là parse.com
•
2. Phân tích yêu cầu bài toán
1. Người sử dụng
Người sự dụng là đối tượng quan trọng của hệ thống. Mục đích của hệ thống
xây dựng kho dữ liệu nhằm phục vụ nhu cầu của đại đa số người dùng.
− Đối tượng người sử dụng
Người sử dụng iPhone (vì ứng dụng đang được xây dựng trên nền
tảng iPhone)
− Mục đích sử dụng
19
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
Mục đích lớn của hệ thống là hướng tới đại đa số người dùng. Hệ
thống đi kèm với việc xây dựng kho dữ liệu là phát triển một ứng dụng
trên điện thoại di động, cụ thể là iPhone. Và người sử dụng sẽ được:
• Cung cấp các địa điểm theo các tiêu chí khác nhau
•
Tìm kiếm và tra cứu các địa điểm cần đến
•
Gửi yêu cầu trợ giúp cho những người gần nhất
•
Đánh giá và bình luận về người giúp đỡ
Ngoài ra, người cần trợ giúp cũng như người trợ giúp vì không ai luôn đóng vai
trò là người trợ giúp hay cần trợ giúp. Chính vì vậy khi người dung cần phải cung
cấp thông tin
•
Cung cấp chính xác thông tin cần trợ giúp
• Đánh giá, bình luận để thông qua đó hệ thống gửi về thông tin
người dùng khi sử dụng ứng dụng, từ đó người sử dụng có thể
biết được thông tin, độ tin cậy khi có yêu cầu trợ giúp từ người
khác.
2. Kho dữ liệu
− Xây dựng:
Kho dữ liệu được xây dựng dựa theo hai nguồn dữ liệu được cung cấp:
•
Nguồn dữ liệu của hệ thống, là dữ liệu cung cấp ban đầu của hệ thống,
trong quá trình hoạt động
•
Nguồn dữ liệu của người dùng khi đăng ký tài khoản, tạo một sự trợ giúp
mới.
Quá trình xây dựng dữ liệu bao gồm các bước sau:
1. Người dùng đăng ký một tài khoản để sử dụng ứng dụng. Vì đặc thù trợ
giúp nên sẽ có nhiều vấn đề nãy sinh nêu như đăng ký tràn lan. Nên khi
đăng ký người dùng cần phải điền đúng thông tin cá nhân, chấp nhận khi
nhập sai thông tin.
2. Hệ thống sẽ lưu trữ thông tin.
3. Khi người dùng cần trợ giúp, sẽ tạo ra một trợ giúp mới với địa điểm của
mình, mô tả về sự trợ giúp cũng như thêm hình ảnh nếu cần.
4. Hệ thống sẽ tiến hành lưu trữ vào cơ sở dữ liệu của kho dữ liệu, và gửi
yêu cầu tới những người xung quanh gần nhất.
Do môi trường xây dựng dữ liệu chính là điện thoại di động nên dữ liệu phải
được chuẩn hóa theo các tiêu chí sau:
20
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
•
Mã hóa unicode utf-8 (để hiển thị tiếng Việt).
•
Thông tin dữ liệu phải ngắn (phù hợp với trạng thái bộ nhớ của điện
thoại).
Các tham số về vị trí bản đồ, đánh giá phải chính xác
−
Khai thác:
Việc lấy dữ liệu và gọi trợ giúp sẽ thông qua môi trường Internet, như vậy việc
khai thác sẽ là bất cứ ở đâu và bất cứ lúc nào.
Khai tác dữ liệu được diễn ra qua 2 bước:
•
Bước 1 : thông tin được lấy trực tiếp từ server khi có một yêu cầu trợ
giúp mới thông qua webservice và kiểu dữ liệu được truyền tải để kết nối
điện thoại di động với kho là json. Đây là kiểu dữ liệu chuẩn được sử
dụng nhiều trong các nền tản công nghệ lớn.
•
Bước 2 : thông tin nhận được (json) qua bộ phân tích dữ liệu ở ứng dụng
và hiểu thị trực quan cho người trợ giúp.
3. Công nghệ
Công nghệ là yếu tố đưa các thông tin của kho dữ liệu tới với người dùng. Công
nghệ được sử dụng chia thành 2 phần:
• Server
-
Xây dựng hệ thống dữ liệu với nền tảng đám mây Parse. Parse là
một nền tảng đám mây (PaaS & IaaS) cung cấp các API và các
dịch vụ đám mây dành cho các ứng dụng iOS, Android và
Windows®. Parse SDK còn cung cấp thư viện cho JavaScript và
các API REST. • Khi sử dụng Parse API, chúng ta có thể chạy các
ứng dụng di động của mình trên đám mây một cách nhanh chóng
và hao tốn ít tài nguyên.
• Mobile
- Ngôn ngữ lập trình Objective-C
- iPhone SDK iOS
Ngoài ra, hệ thống còn cung cấp các địa điểm công cộng của kho dữ liệu Google
Map thông qua các phương thức của Google Map API.
Việc lựa chọn các công nghệ này để phát triển kho dữ liệu đều dựa trên tính phổ
biến và thông dụng hiện nay. Phần chính là server sẽ cung cấp các phương thức để
truy xuất thông tin từ kho dữ liệu, phần ở điện thoại di động mang tính chất hiển thị
trực quan.
21
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
Công nghệ sử dụng ở điện thoại di động được lựa chọn là nền tảng di động
iPhone, với bộ SDK iOS. Đây là một trong những nền tảng công nghệ mạnh nhất
trong lĩnh vực điện thoại thông minh (smartphone ), bên cạnh đó các thiết bị iOS đã
được chuẩn hóa nên việc ảnh hướng lớn từ thay đổi công nghệ là rất nhỏ.
Vậy, khi công nghệ thay đổi thì với hệ thống ở server thì sẽ cung cấp các
phương thức cần thiết đảm bảo việc viết ứng dụng trên các nên tảng công nghệ
được diễn ra nhanh chóng. Và sự thay đổi về mặt công nghệ sẽ không ảnh hưởng
nhiều tới kho dữ liệu.
4. Phân tích khả thi
− Tính khả dụng:
•
Hệ thống hoàn toàn có thể triển khai trên thực tế.
•
Cộng đồng sử dụng điện thoại thông minh (cụ thể iPhone) rất đông
đảo.
•
Ngoài ứng dụng trên điện thoại di động để khai thác kho dữ liệu thì
các phương thức Web Service của kho dữ liệu còn có thể cung cấp
cho việc phát triển ứng dụng trên các nền tảng khác.
•
Ứng dụng được cung cấp miễn phí cho mọi người dùng và hướng tới
phát triển trên mọi nền tảng di động phổ biến hiện nay.
− Chi phí phát triển:
•
Điện thoại thông mình ngày nay đang phát triển các dòng điện thoại
bình dân, nghĩa là chi phí cho một chiếc điện thoại hỗ trợ đầy đủ các
tính năng mà chương trình yêu cầu thì hoàn toàn không đắt.
•
Chi phí cho Server và Web Service với lượng người dùng ban đầu là
thấp.
Ngoài ra, với việc thu phí cho một số tính năng nâng cao của hệ thống
sau này sẽ là nguồn thu nhằm duy trì và tiếp tục phát triển hệ thống.
3. Yêu cầu phi chức năng
22
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
•
•
Hệ thống Web Service
Tốc độ truy cập nhanh.
Đảm bảo tính bảo mật của người dùng, nếu có vị phạm thì tiến
hành khóa tài khoản và thoát đăng nhập ở ứng dụng.
Một số chức năng yêu cầu đăng nhập chỉ có thể gọi được tại ứng
dụng cho hệ thống cung cấp.
Ứng dụng trên điện thoại di động
Giao diện đơn giản, phù hợp với màn hình điện thoại (nhỏ).
Tối ưu hóa các thao tác trên điện thoại.
Đảm bảo tính ổn định (không chết chương trình quá 5 lần/ 1 tuần).
4. Các chức năng chính của hệ thống
1. Đăng ký, đăng nhập
Mã chức năng
Tên chức năng
M.1.1
Đăng ký
M.1.2
Đăng nhập
Bảng : Bảng các chức năng đăng ký, đăng nhập
2. Quản lý thông tin cá nhân
Mã chức năng
Tên chức năng
M.2.1
Xem thông tin tài khoản
M.2.1
Chỉnh sửa thông tin tài khoản
Bảng : Bảng các chức năng quản lý thông tin cá nhân
3. Gọi trợ giúp
Mã chức năng
Tên chức năng
M.4.1
Cung cấp thông tin về trợ giúp
M.4.2
Gửi yêu cầu trợ giúp
Bảng : Bảng các chức năng gọi trợ giúp
4. Nhận trợ giúp
23
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
Mã chức năng
Tên chức năng
M.6.1
Phản hồi yêu cầu trợ giúp
M.6.2
Chỉ đường
Bảng : Bảng các chức năng trợ giúp
5. Phản hồi
Mã chức năng
Tên chức năng
M.5.1
Phản hồi về người cần trợ giúp cũng người trợ giúp
Bảng : Bảng các chức năng phản hồi
24
Xây dựng ứng dụng di động trợ giúp khách du lịch khi gặp sự cố
2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1. Biểu đồ ca sử dụng:
1. Biểu đồ tổng thể
Hình 4. Biểu đồ ca sử dụng tổng thể
25