Cung cấp chức năng quản lý thông tin các địa điểm du lịch, cho phép người dùng sử dụng thêm thông tin vị trí của mình để tìm được các khu ẩm thực, vui chơi gần mình nhất…… Vì thời gian c
Trang 1LỜI CẢM ƠN
Trên thực tế không có sự thành công nào mà không gắn với sự hỗ trợ giúp
đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác.Trong suốt thời gian
từ khi bắt đầu học tập tại trường cho đến nay, em đã nhận được rất nhiều sự quan tâm giúp đỡ của các Thầy Cô, gia đình và bạn bè với lòng biết ơn sâu sắc em xin gửi đến các Thầy Cô ở khoa công nghệ thông tin nói chung và bộ môn mạng máy tính nói riêng đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường
Em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đối với các thầy cô và đặc biệt thầy Trần Phạm Thái Kiên đã nhiệt tình hướng dẫn em hoàn thành tốt bài
đồ án tốt nghiệp này người đã hướng dẫn nhiệt tình chỉ bảo em trong suốt quá trình làm đồ án Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè đã luôn tạo điều kiện,quan tâm, giúp đỡ, động viên em trong suốt quá trình học tập và hoàn thành khoá luận tốt nghiệp
Trang 2LỜI CAM ĐOAN
Em là Cao Thị Điển-Lớp MMT-K10A.Em xin cam đoan đây là công trình nghiên cứu của riêng em và được sự hướng dẫn của Ths.Trần Phạm Thái Kiên Các nội dung và kết quả trong đề tài này là trung thực và chưa công bố dưới bất
kỳ hình thức nào trước đây Những thông tin và bài viết, thống kê số liệu phục vụ cho việc phân tích, nhận xét, đánh giá được tôi thu thập từ các nguồn khác nhau và
có ghi rõ nguồn trong từng bài viết và phần tài liệu tham khảo
Nếu phát hiện có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm
về nội dung đồ án của mình trước mọi người và hội đồng nhà trường
Thái Nguyên, tháng 6 năm 2016
Cao Thị Điển
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH MỤC HÌNH ẢNH 5
LỜI MỞ ĐẦU 7
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 8
1.1 Kiến trúc của nền tảng Android 8
1.1.1 Nhân Linux (Linux kernel) 8
1.1.2.Thư viện Android (Android libraries) và Android Runtime 8
1.1.3 Application Framework 10
1.1.4 Tầng ứng dụng 10
1.2 Các thành phần cơ bản của ứng dụng Android 11
1.2.1 Activity 11
1.2.2 Intent 12
1.2.3 Services 13
1.2.4 Content Providers 14
1.2.5 Broadcast Receivers 15
1.2.6 SQLite 16
1.2.7 Telephony 16
1.3 Web Service 16
1.3.1 Tổng quan Web Service 16
1.3.2 Đặc điểm của dịch vụ Web 17
1.3.3 Hoạt động của Web Service 22
1.4 Google Map API 24
1.4.1 Giới thiệu về Google Map API 24
1.4.2 Cách thiết lập Google Map trong Android 25
Trang 4CHƯƠNG 2 KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 29
2.1 Mô tả bài toán 29
2.2 Giới thiệu du lịch Thái Nguyên 29
2.2.1 Hiện trạng và khó khăn 31
2.2.2 Hướng giải quyết 32
2.3 Khảo sát một số trang Web về du lịch Thái Nguyên 32
2.3.1 Đề xuất đề tài 33
2.3.2 Mục đích thực hiện đề tài 33
2.3.3 Xác định yêu cầu 34
2.3.4 Kết quả dự kiến đạt được 34
2.4 Kiến trúc hệ thống 35
2.5 Phân tích thiết kế hệ thống 36
2.5.1 Các tác nhân và biểu đồ Usecase 36
2.5.2 Biểu đồ hoạt động 40
2.5.3 Biểu đồ trình tự 45
2.5.4 Biểu đồ lớp 53
2.5.5 Biểu đồ thành phần 54
2.5.6 Biểu đồ triển khai 55
CHƯƠNG 3 XÂY DỰNG DEMO CHƯƠNG TRÌNH 57
3.1 Môi trường cài đặt và yêu cầu công nghệ 57
3.2 Xây dựng hệ thống 57
3.2.1 Xây dựng Web Service 57
3.2.2 Xây dựng Client trên Android 60
3.3 Giao diện chính 64
3.4 Một số chức năng chính 65
3.4.1 Chức năng của người dùng (Client) 65
3.4.2 Giao diện người quản trị (Server ) 72
CHƯƠNG 4 KẾT LUẬN 75
Trang 5TÀI LIỆU THAM KHẢO 76
DANH MỤC HÌNH ẢNH Hình 1.1: Kiến trúc của android 8
Hình 1.2: Vòng đời của 1 activity 12
Hình 1.3: Truyền dự liệu cùng intent 13
Hình 1.4: Các phương thức gọi lại của một services 14
Hình 1.5: Mô hình ứng dụng của Web Service 17
Hình 1.6 : Cấu trúc của WSLD 20
Hình 1.7: Kiến trúc của SOAP 22
Hình 1.8: Mô hình hoạt động của Web Service 23
Hình 1.9 : Quá trình thực hiện 24
Hình 2.1: Cổng du lịch Thái Nguyên 32
Hình 2.2: Kiến trúc của hệ thống 35
Hình 2.3: Biểu đồ UC tổng quát 37
Hình 2.4: Biểu đồ UC người quản trị 37
Hình 2.5: Biểu đồ UC quản lý điểm đến 38
Hình 2.6: Biểu đồ UC người dùng 39
Hình 2.7: Biểu đồ hoạt động cho user case đăng nhập 40
Hình 2.8:Biểu đồ hoạt động quản lý thêm điểm du lịch 40
Hình 2.9: Biểu đồ sửa địa điểm du lịch 41
Hình 2.10: Biểu đồ hoạt động xóa địa điểm du lịch 41
Hình 2.11: Biểu đồ hoạt động quản lý thêm thông tin 42
Hình 2.12: Biểu đồ hoạt động quản lý sửa thông tin 42
Hình 2.13: Biểu đồ hoạt động quản lý xóa thông tin 43
Hình 2.14: Biểu đồ hoạt động tìm kiếm của người quản trị 43
Hình 2.15: Biểu đồ hoạt động xem điểm đến của người quản trị 44
Hình 2.16: Biểu đồ hoạt động của người dùng 44
Hình 2.17: Hoạt động của người dùng trên giao diện gmap 45
Hình 2.18: Biểu đồ trình tự đăng nhập 45
Hình 2.19: Biểu đồ trình tự thêm địa điểm du lịch 46
Trang 6Hình 2.21: Biểu đồ trình tự sửa địa điểm du lịch 48
Hình 2.22: Biểu đồ trình tự xem địa điểm du lịch 49
Hình 2.23: Biểu đồ trình tự thêm thông tin 50
Hình 2.24: Biểu đồ trình tự sửa thông tin 51
Hình 2.25: Biểu đồ trình tự xóa thông tin 52
Hình 2.26: Sơ đồ lớp 53
Hình 2.27: Biểu đồ thành phần 54
Hình 2.28: Biểu đồ triển khai 55
Hình 3.1: File API 58
Hình 3.2: Thực hiện xây dựng thêm ,sửa xóa cho điểm đến 59
Hình 3.3 : Diagram client 59
Hình 3.4 : Diagram người quản trị quản trị 60
Hình 3.5: Giao diện xây dựng listview 61
Hình 3.6: Lớp gọi Gmap 61
Hình 3.7: File AndroidManifeft.xml 62
Hình 3.8: File APIUtils 62
Hình 3.9: File Main chính 63
Hình 3.10: Giao diện chính 64
Hình 3.11: Giao diện chọn điểm đến 65
Hình 3.12: Giao diện sau khi chọn tất cả(Cẩm nang) 66
Hình 3.13: Giao diện sau khi chọn điểm đến có tên Cafe 67
Hình 3.14: Giao diện khi chọn ẩm thực 68
Hình 3.15: Chọn địa điểm là quán ốc 69
Hình 3.16: Giao diện sau khi kích vào từng icon trên bản đồ 70
Hình 3.17: Hiện thị bài viết 71
Hình 3.18: Giao diện đăng nhập người quản trị trên web 72
Hình 3.19: Giao diện sau khi đăng nhập vào 72
Hình 3.20: Giao diện làm việc của người quản trị 73
Hình 3.21: Giao diện thêm mới địa điểm du lịch 73
Hình 3.22: Giao diện sửa thông tin của điểm đến 74
Hình 3.23: Giao diện sau khi chọn xóa 74
LỜI MỞ ĐẦU
Hiện nay du lịch đang là một nghành kinh tế mũi nhọn của Việt Nam nói chung và đặc biệt đối với Thái Nguyên nói riêng.Với tiềm năng du lịch như vậy
Trang 7việc xúc tiến quảng bá du lịch và cung cấp thông tin du lịch là điều rất quan trọng
để xây dựng,và đẩy mạnh nền kinh tế mới này
Với sự phát triển nhanh chóng của công nghệ mobile hiện nay mang lại cơ hội quảng bá du lịch và cung cấp thông tin về du lịch một cách thuận tiện nhất cho khách du lịch và hiệu quả mang lại rất cao
Với sự hướng dẫn giúp đỡ của Thầy Trần Phạm Thái Kiên em đã thực hiện
đề tài:”Xây dựng ứng dụng hỗ trợ quảng bá du lịch trên địa bàn tỉnh Thái Nguyên trên nền tảng Android” Phần mềm sản phẩm được viết bằng ngôn ngữ
Java trên nền tảng Android,sử dụng API Web Service, Google map với nội dung trình bày sau đây:
Chương 1: Cơ sở lý thuyết
Chương 2: Khảo sát và phân tích thiết kế
Chương 3:Xây dựng demo chương trình
Phần mềm “Thái Nguyên Travel” sẽ cung cấp thông tin về địa điểm du
lịch chia thành các nhóm: ẩm thực, vui chơi, tham quan, giải trí, trải nghiệm , quảng bá, lễ hội Cung cấp chức năng quản lý thông tin các địa điểm du lịch, cho phép người dùng sử dụng thêm thông tin vị trí của mình để tìm được các khu ẩm thực, vui chơi gần mình nhất……
Vì thời gian cộng với khả năng của bản thân có hạn và đây là một lĩnh vực khá mới mẻ nên chương trình chắc chắn còn nhiều thiếu sót vì vậy em mong nhận được nhiều ý kiến góp ý từ phía thầy cô để chương trình có thể hoàn thiện hơn
Trang 8CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1 Kiến trúc của nền tảng Android
Hệ điều hành Android là một ngăn xếp của các thành phần ứng dụng (stack
of software components), có thể chia thành 5 phần và 4 lớp như trong sơ đồ kiến trúc android dưới đây:
Trang 9Hình 1.1: Kiến trúc của android
1.1.1 Nhân Linux (Linux kernel)
Nằm ở tầng dưới cùng là lớp Linux kernal – Linux 3.6 với khoảng 115 patches Lớp này liên hệ với phần cứng và nó chứa tất cả driver phần cứng cần thiết như camera, bàn phím, màn hình…
1.1.2.Thư viện Android (Android libraries) và Android Runtime
Phía trên tầng Linux kernel là tầng libraries, chứa những thư viện hỗ trợ Một số có thể kể đến như là bộ máy trình duyệt web mã nguồn mở WebKit, thư viện libc, cơ sở dữ liệu SQLite tiện lợi cho việc lưu trữ và chia sẻ dữ liệu, thư viện
hỗ trợ thu phát âm thanh và video, thư viện SSL giúp bảo mật mạng…
Tầng này chứa tất cả các thư viện Java, được viết đặc biệt cho Android như các thư viện framework, các thư viện xây dựng giao diện, đồ họa và cơ sở dữ liệu Dưới đây là một số thư viện quan trọng mà các lập trình viên nên biết:
Android.app : Cung cấp quyền truy cập tới mô hình ứng dụng và là nền tảng của mọi ứng dụng Android applications
Android.content : Cho phép truy cập nội dung, phát hành và tin hắn giữa các ứng dụng và các thành phần trong một ứng dung
Android.database : Được dùng để truy cập vào dữ liệu được đưa ra bởi
bộ phận cung cấp nội dung, bao gồm các lớp quản lý cơ sở dữ liệu SQLite
Android.opengl : Cho phép tương tác với thư viện đồ họa OpenGL ES 3D
Android.os : Giúp ứng dụng truy cập những dịch vụ cơ bản của hệ điều hành bao gồm tin nhắn, dịch vụ hệ thống và liên lạc nội bộ (inter-process communication)
Android.text : Được dùng để vẽ và thao tác văn bản trên màn hình
Android.view : Các khối xây dựng cơ bản của giao diện người dùng
Android.widget : Một tập hợp rất nhiều thành phần giao diện được xây dựng sẵn như nút bấm (button), nhãn (label), danh sách hiển thị (list views), quản
Trang 10Ngoài ra, Android Runtime cũng chứa tập hợp các thư viện quan trọng cho phép người lập trình viết ứng dụng sử dụng ngôn ngữ lập trình Java.
Trang 111.1.3 Application Framework
Application Framework cung cấp nhiều dịch vụ cấp cao dưới dạng các lớp viết bằng Java (Java classes) Lập trình viên được phép sử dụng các lớp này để tạo
ra các ứng dụng
Android framework chứa các dịch vụ quan trọng như:
Activity Manager : Quản lý tất cả các phần của vòng đời (lifecycle) ứng dụng và các hoạt động ngăn xếp (activity stack)
Content Providers : Cho phép ứng dụng phát hành và chia sẻ dữ liệu với ứng dụng khác
Resource Manager : Cho phép truy cập tới những tài nguyên không phải
là mã nguồn như chuỗi, cài đặt màu, bố cục giao diện
Notifications Manager : Giúp ứng dụng hiển thị thông báo và nhắc nhở người dùng
View System : Một tập hợp mở rộng giúp tạo giao diện người dùng
1.1.4 Tầng ứng dụng
Đây là lớp ứng dụng giao tiếp với người dùng, các ứng dụng cơ bản được cài đặt đi liền với hệ điều hành như: gọi điện thoại (phone), quản lý danh bạ (contacts), duyệt web (browser), nhắn tin (sms), lịch làm việc (calendar), đọc email (email-client), bản đồ (map), quay phim chụp ảnh (camera)
Các ứng dụng được cài thêm như các phần mềm (stock), các trò chơi (game), từ điển
Các chương trình có các đặc điểm là:
Viết bằng Java, phần mở rộng là apk
Khi mỗi ứng dụng được chạy, nó có phiên bản Virtual Machine được dựng lên phục vụ cho nó Nó có thể là một Active Program: chương trình có giao diện với người sử dụng hoặc là một background, chương trình chạy nền hay là dịch vụ
Trang 12điểm, có thể có nhiều chương trình chạy một lúc, tuy nhiên, với mỗi ứng dụng thì
có duy nhất một thực thể (instance) được phép chạy mà thôi Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn
Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống
Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động khác, android cho phép một ứng dụng của bên thứ ba được phép chạy nền
1.2 Các thành phần cơ bản của ứng dụng Android
1.2.1 Activity
Activity chính là một cửa sổ chứa giao diện ứng dụng của bạn mà người dùng có thể tương tác với nó Mỗi màn hình trên ứng dụng của bạn sẽ là kế thừa của Activity Activity dùng các View để hiển thị giao diện ứng dụng người dùng
và đáp ứng lại các yêu cầu từ người dùng
Có 3 dạng Activity:
Floating Activity: là dạng Activity nổi, có kích thước không phủ lấ toàn
bộ màn hình
Activity Group: là một nhóm các Activity nhúng trong một Activity khác
Full screen Activity: là Activity phủ kín toàn bộ màn hình, đây là loại Activity thường được sử dụng phổ biến nhất
Vòng đời của một Activity sẽ diễn ra từ lúc khởi động cho đến khi kết thúc vòng đời của nó Hệ thống Android sẽ được bắt đầu thực hiện một Activity tương ứng với từng trạng thái vòng đời của nó Android cung cấp một số sự kiện để quản
lý các trạng thái vòng đời của Activity như sau:
onCreate(): sự kiện này được gọi khi Activity được tạo lần đầu tiên Trong sự kiện này, bạn phải thực hiện những công việc như tạo giao diện, tải dữ liệu Sau sự kiện này là sự kiện onStart() được gọi
onRestart(): sự kiện được gọi khi muốn khỏi động lại một activity đã bị Stop Sau sự kiện này luôn là sự kiện onStart() được gọi
Trang 13 onStart(): sự kiện nà được gọi khi giao diện của Activity hiển thị trên màn hình thiết bị.
onResume(): sự kiện này được gọi khi Activity bắt đầu tương tác với người dùng
onPause(): khi một Activity khác dành quyền hiển thị và trạng thái focus thì Activity hiện hành sẽ gọi sự kiện onPause()
onStop(): sự kiện này được gọi khi Activity bị che khuất hoàn toàn bởi một Activity khác và Activity đó cũng dành được focus
Hình 1.2: Vòng đời của 1 activity
Khi một Activity bị paused hoặc stopped, trạng thái của một Activity vẫn sẽ được giữ lại Điều này là đúng vì mỗi đối tượng Activity vẫn còn được giữ lại trong bộ nhớ khi nó bị paused hoặc stopped Tất cả các thông tin về Activity cũng như trạng thái của nó vẫn còn tồn tại trong Vì vậy, bất cứ thay đổi nào của người dùng đối với Activity vẫn được giữ lại khi nó trở lại trạng thái hoạt động hoặc chế
độ resume
Trang 141.2.2 Intent
Intent là cầu nối giữa các Activity trong ứng dụng android Intent chính là người đưa thư, giúp chúng ta triệu gọi cũng như truyền các dữ liệu cần thiết để thực hiện một Activity từ một Activity khác
Hình 1.3: Truyền dự liệu cùng intent
1.2.3 Services
Các dịch vụ (services) là thành phần chạy nền và không có bất kỳ giao diện nào Chúng có thể thực hiện các hành động tương tự như các hoạt động, nhưng mà không có bất kỳ giao diện người dùng nào Dịch vụ là hữu ích với các hành động (actions) khi mà người dùng cùng một lúc muốn thực hiện trên màn hình nhiều actions Services có thể được sử dụng theo 2 cách:
+ Services có thể được bắt đầu và được phép hoạt động cho đến khi một người nào đó dừng Services lại hoặc Services tự ngắt Ở chế độ này, Services được bắt đầu bằng cách gọi Context.startService() và dừng bằng lệnh Context.stopService() Services có thể tự động ngắt bằng lệnh Service.stopSelf() hoặc Service.stopSelfResult() Chỉ cần một lệnh stopService() để ngừng Service lại cho dù lệnh startService() được gọi ra bao nhiêu lần
+ Service có thể được vận hành theo như đã được lập trình việc sử dụng một giao diện mà nó định nghĩa Người dùng thiết lập một đường truyền đến đối tượng Service mà Services sử dụng và sử dụng đường kết nối đó để thâm nhập
Trang 15vào Service Kết nối này được thâm nhập bằng cách gọi lệnh Context.bindService() và được đóng lại bằng cách gọi lệnh Context.unbind Service() Nhiều người dùng có thể kết nối tới cùng một thiết bị
Nếu Service vẫn chưa được khởi chạy, lệnh bindService() có thể tùy ý khởi động Services
Hai chế độ này thì không tách biệt toàn bộ Có thể kết nối với một Service
mà nó đã được bắt đầu với lệnh startService() Ví dụ, một Service nghe nhạc ở chế
độ nền có thể bắt đầu với lệnh startService() cùng với một đối tượng Intent mà định dạng được âm nhạc để chơi Sau đó, có thể là khi người sử dụng muốn kiểm soát trình chơi nhạc nhạc hoặc biết thêm thông tin về bài hát hiện tại đang chơi, thì
sẽ có một Activity tạo lập một đường truyền tới Service bằng cách gọi bindService()
Trong trường hợp như thế này, stopService() sẽ không thực sự ngừng Service cho đến khi liên kết cuối cùng được đóng lại
Trang 16Hình 1.4: Các phương thức gọi lại của một services
1.2.4 Content Providers
Content Providers là lớp trung gian chia sẻ dữ liệu giữa các ứng dụng Mặc định, Android chạy mỗi ứng dụng trong một khuôn thử của riêng nó để tất cả dữ liệu thuộc về một ứng dụng hoàn toàn độc lập với các ứng dụng khác trong hệ thống Mặc dù một lượng nhỏ dữ liệu vẫn được trao đổi giữa các ứng dụng thông
Trang 17qua các Intent, content providers sẽ tốt hơn và thích hợp nhiều cho việc chia sẻ dữ liệu liên tục giữa các bộ dữ liệu lớn.
Hệ thống Android sử dụng cơ chế này vào mọi lúc Chẳng hạn như Content Providers ở đây trình bày tất cả các dữ liệu liên hệ của người dùng một cách đa dạng trên ứng dụng Settings Provider trình bày việc cài đặt các ứng dụng khác nhau trên hệ thống, bao gồm cả việc xây dựng ứng dụng Settings Media Store chịu trách nhiệm lưu trữ và chia sẻ các phương tiện khác nhau, chẳng hạn như ảnh
và âm nhạc trên các ứng dụng khác nhau
Content Providers là các giao diện tương đối đơn giản với các phương thức tiêu chuẩn như insert(), update(), delete(), and query() Các phương thức này giống như các phương thức chuẩn trong cơ sở dữ liệu
1.2.5 Broadcast Receivers
Broadcast Receivers (có thể gọi là Receiver) là một trong bốn loại thành phần trong ứng dụng Android Chức năng dùng để nhận các sự kiện mà các ứng dụng hoặc hệ thống phát đi
+ Sau khi thực thi xong phương thức này, lifecycle của Receiver kết thúc
+ Ngay khi onReceive() kết thúc, hệ thống coi như receiver đã không còn hoạt động và có thể kill process chứa receiver này bất cứ lúc nào
+ Tránh xử lý các code quá lâu trong onReceive()
Trang 18+ Không có xử lý bất đồng bộ chờ callback trong Receiver (cụ thể như hiển thị Dialog, kết nối các service…).
Trang 191.2.6 SQLite
SQLite là một dạng CSDL tương tự MySQL, PostgreSQL,… Đặc điểm của SQLite là gọn, nhẹ, đơn giản Chương trình gồm 1 file duy nhất vỏn vẹn chưa đến 500kB, không cần cài đặt, không cần cấu hình hay khởi động mà nó có thể sử dụng ngay Dữ liệu database cũng được lưu ở một file duy nhất Không có khái niệm user, password hay quyền hạn trong SQLite database
1.2.7 Telephony
Telephony cũng làm một thành phần tương đối quan trọng trong hệ thống Android Nó cho phép người lập trình có thể lấy các thông tin của hệ thống như thông tin SIM, thông tin thiết bị, thông tin mạng Ngoài ra, chúng ta cũng có thể cài đặt các thông số cho thiết bị nếu các thông số đó có thể thay đổi được Tất cả những điều đó được được quản lý bởi một class Telephony Manager trong Android
1.3 Web Service
1.3.1 Tổng quan Web Service
Web Services là một cách chuẩn để tích hợp các ứng dụng trên nền web (Web-based 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 tở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
Trang 20Services 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ể
Hình 1.5: Mô hình ứng dụng của Web Service
1.3.2 Đặc điểm của dịch vụ Web
1.3.2.1 Đặc điểm
Dịch vụ Web cho phép Client và Server tương tác được với nhau ngay cả trong những môi trường khác nhau Ví dụ, đặt web server cho ứng dụng trên một
Trang 21máy chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành Windows,ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêm yêu cầu đặc biệt để tương thích giữa hai hệ điều hành này.
Phần lớn kĩ thuật của dịch vụ web được xây dựng dựa trên mã nguồn mở và được phát triển từ các chuẩn đã được công nhận, ví dụ như XML
Một dịch vụ web bao gồm có nhiều mô-đun và có thể công bố lên mạng Internet
Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnh vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp, khách hàng, những nhà cung cấp khác và cả những cá nhân thông qua mạng Internet
Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server
Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP, Oracle Application server hay Microsoft.Net…
1.3.2.2 Ưu và nhược điểm
+ 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 dịch vụ web
+ 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
Trang 22Nhược điểm:
+ Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của dịch vụ Web, 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 công việc vận hành
+ Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt.+Phải quan tâm nhiều hơn đến bảo mật
1.3.2.3 Các thành phần của Web Service
Web Service được các thành phần cấu thành lên: XML, SOAP, WSDL….XML ( eXtensible Markup Language)
XML là sự kết hợp nhiều thành phần và dùng các đặc trưng của các thành phần này để giao tiếp với nhau Để giải quyết các vấn đề giao tiếp các thành phần Web Service sử dụng XML là thành phần chính để giao tiếp giữa các thành phần với nhau và là kiến trúc nền tảng để bắt đầu xây dựng Web Service
Khái niệm XML
Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu
Là một ngôn ngữ mô tả văn bản với cấu trúc do người dùng định nghĩaĐặc điểm
XML là một ngôn ngữ đánh dấu độc lập với phần cứng, phần mềm platform
Cho phép các máy tính truyền cấu trúc dữ liệu giữa hệ thống không đồng nhất
Về hình thức XML có cấu trúc giống HTML nhưng không tuân theo một đặc tả như HTML HTML định nghĩa các thành phần được hiện thị như thế nào, còn XML lại định nghĩa các thành phần chứa cái gì
Các thẻ XML không được định nghĩa trước mà do người lập trình tự định nghĩa
Cấu trúc XML
Trang 23Một tài liệu XML bao gồm 2 phần:
Cấu trúc logic: Định nghĩa các phần tử ,các thuộc tính các kiểu dữ liệu…
Cấu trúc vật lý : Chứa dữ liệu và các phần tử chứa dữ liệu như text, image, media…
WSDL (Web Service Description Language)
Khái niệm
Là một ngôn ngữ dựa trên XML để định nghĩa Web Service
WSDL định nghĩa cách mô tả Web Service theo cú pháp tổng quát XML bao gồm các thông tin:
Tên Service
Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm Web Service
Loại thông tin bao gồm thao tác, tham số, nhũng kiểu dữ liệu
Thành phần
WSDL gồm 2 thành phần chính:
Phần giao diện: Mô tả giao diện và giao thức kết nối
Phần thi hành: Mô tả thông tin để truy xuất Web Service
Cấu trúc của WSLD
Trang 24Hình 1.6 : Cấu trúc của WSLD
WSDL định nghĩa các phần tử cơ bản như sau:
Tập tin giao diện – Service Interface
WSDL mô tả 5 loại thông tin chính bao gồm: import, types, message , portType, binding
Types: WSDL định nghĩa các kiểu dữ liệu của thông điệp gửi
Message: Mô tả thông điệp được gửi giữa client và server
Những định nghĩa message được sử dụng bởi phần tử thi hành service Nhiều thao tác có thể tham chiếu tới cùng định nghĩa message
Thao tác và những message được mô hình riêng rẽ để hỗ trợ tính linh hoạt
và đơn giản hóa việc tái sử dụng lại Chẳng hạn, hai thao tác với cùng tham số có thể chia sẻ một định nghĩa message
Port type: WSDL mô tả cách gửi và nhận thông điệp
WSDL định nghĩa bốn kiểu thao tác mà một cổng có thể hỗ trợ :
– One-way: Cổng nhận một message, message đó là message nhập
– Request-response : Cổng nhận một message và gửi một message phản hồi– Solicit-response: Cổng gửi một message và nhận về một message
Trang 25– Notification: Cổng gửi một message, message đó là message xuất.
Mỗi kiểu thao tác có cú pháp biến đổi tùy theo: Thứ tự của các message nhập, xuất và lỗi
Binding: Định nghĩa cách các web services kết hợp với nhau
Một kết hợp bao gồm :
– Những giao thức mở rộng cho những giao tác và những message bao gồm thông tin URN và mã hóa cho SOAP
– Mỗi một kết hợp tham chiếu đến một loại cổng, một kiểu cổng (portType)
có thể được sử dụng trong nhiều mối kết hợp Tất cả các thao tác định nghĩa bên trong kiểu cổng phải nằm trong phạm vi mối kết hợp
Tập tin thi hành – Service Implementation
WSDL mô tả 2 loại thông tin chính bao gồm: Service và Port
Service : Nó sẽ thực hiện những gì đã được định nghĩa trong tập tin giao diện và cách gọi Web Services theo thủ tục và phương thức nào
Port là một cổng đầu cuối, nó định nghĩa như một tập hợp của binding
SOAP được thiết kế đơn giản và dễ mở rộng
Tất cả các message SOAP đều được mã hóa sử dụng XML
SOAP sử dụng giao thức truyền dữ liệu riêng
SOAP Client không giữ bất kì một tham chiếu nào đầy đủ về đối tượng ở xa
Trang 26 SOAP không bị rằng buộc bởi bất kì ngôn ngữ lập trình nào
Vì những đặc trưng này, nó không quan tâm đến công nghệ gì được sử dụng để thực hiện miễn là người sử dụng dùng các message theo đúng định dạng XML
Kiến trúc của SOAP
Hình 1.7: Kiến trúc của SOAP
Thành phần Headers: Chỉ ra địa chỉ Web Service, host, content-Type, content-Length tương tự như một thông điệp HTTP
Thành phần SOAP Envelope: bao trùm toàn bộ nội dung thông điệp SOAP
SOAP header: Phần thưởng được dùng để thêm các thông tin bổ sung phục vụ cho mục đích riêng của trương trình Các thông tin được thêm vào header
là authentication, quản lý transaction… phần header không bắt buộc phải có trong gói tin SOAP
Trang 27 SOAP body: Phần chứa các thông tin về lời gọi hàm (tên hàm, tham số đầu vào, giá trị trả về….) để phục vụ cho việc gọi hàm từ xa.
1.3.3 Hoạt động của Web Service
Một số ứng dụng của Web Service gồm hai phần Client và Server giao tiếp với nhau qua giao thức HTTP
Client gửi các yêu cầu qua các lời gọi hàm thông qua HTTP Request đến Server
Server gửi các kết quả được thực thi ở các hàm thông qua Response
Mô hình hoạt động ứng dụng của Web Server gồm 3 thành phần chính:
UDDI register: Công cụ giúp nhà phát triển Web Service công bố nhũng thông tin về Web Service của mình cho cộng đồng các nhà phát triển ứng dụng Người dùng sẽ dựa vào các thông tin này để sử dụng Web Service trong ứng dụng riêng của mình tạo thành một hệ phân tán
Web Service: Chứa giao thức SOAP định dạng dữ liệu, tài liệu WSDL định nghĩa các hàm trong Web Service, XML để xây dựng ứng dụng phân tán
Application Client: Ứng dụng phía Client sử dụng Web Service xây dựng ứng dụng riêng cho mình
Trang 28Hình 1.8: Mô hình hoạt động của Web Service
Cách thức hoạt động của Web Service có thể được mô tả như sau:
Đầu tiên, Application cần truy vấn đến các mẫu tin UDDI theo một thông tin nào đó (chẳng hạn tên, loại) để xác định Web Service cần tìm Khi nào xác định được Web Service cần cho ứng dụng, Client có thể lấy thông tin về địa chỉ của tài liệu WSDL của web Service này dựa trên mẫu tin UDDI Tài liệu WSDL sẽ mô tả cách thức liên lạc với Web Service, định dạng của gói tin truy vấn và phản hồi Dựa vào những thông tin này Client có thể tạo những gói tin SOAP tương ứng để liên lạc với Server
Trang 29Hình 1.9 : Quá trình thực hiện
1.4 Google Map API
1.4.1 Giới thiệu về Google Map API
Google Map là một dịch vụ ứng dụng vào công nghệ bản đồ trực tuyến trên web miễn phí được cung cấp bởi Google, hỗ trợ nhiều dịch vụ khác của Google đặc biệt là dò đường và chỉ đường, hiển thị bản đồ đường sá, các tuyến đường tối
ưu cho từng loại phương tiện, cách bắt xe và chuyển tuyến cho các loại phương tiện công cộng (xe bus, xe khách ), và những địa điểm (kinh doanh, trường học, bệnh viện, cây ATM ) trong khu vực cũng như khắp nơi trên thế giới
Trang 30hơn và nhiều hơn
Các dịch vụ hoàn toàn miễn phí với việc xây dựng một ứng dụng nhỏ Trả phí nếu đó là việc sử dụng cho mục đích kinh doanh, doanh nghiệp
Trang 311.4.2 Cách thiết lập Google Map trong Android
Google Maps Android API (GMAA) bao gồm các dữ liệu bản đồ được phát
triển bởi Google Inc cho phép lập trình viên tích hợp vào các ứng dụng thông qua các phương thức được cung cấp sẵn
GMAA hỗ trợ các thao tác với giao diện đồ họa của bản đồ bao gồm:
Vẽ biểu tượng trên bản đồ (Marker)
Đồ họa đường thẳng (Polylines)
Đồ họa hình đa giác (Polygons)
Bitmap trên bản đồ (Ground & Tile Overlay)
Google Maps Android API Key: Chuỗi mã hóa được Google cung cấp miễn phí
để quản lý và chứng thực việc truy xuất dữ liệu để quản lý và chứng thực việc truy suất
dữ liệu bản đồ trên ứng dụng ( được lấy trên http://code.google.com/api/console).)
GMAA Key được liên kết thông qua Digital Cerfiticate (DC-Chứng thư số)
và Pakage Name (Tên đóng gói) của ứng dụng
Tạo GMAA Key bao gồm 3 bước chính như sau:
Bước 1: Truy xuất thông tin DC bằng mã SHA-1 (dùng command line hoặc
từ eclipse)
Bước 2: Đăng ký Project trong Google API Console.
Bước 3: Tích hợp Google Map Service vào Project và gửi yêu cầu cấp
GoogleMap:
Trang 32Kết nối đến Google Map Service.
Tải dữ liệu bản đồ theo từng mảng nhỏ (tiles)
Thể hiện dữ liệu bản đồ trên màn hình thiết bị
Thể hiện các điều khiển giao tiếp như thu phóng, la bàn…
Xử lý các tương tác thu phóng, xoay, góc nhìn…
MapFragment: xây dựng giao diện bản đồ bằng cách xây dựng Fragment.MapView: xây dựng giao diện bản đồ như một điều khiển và tương tác với Activity
Truy xuất và sử dụng đối tượng GoogleMap từ thẻ fragment trong XML:GoogleMap map = ((MapFragment)getFragmentManager
MapFragment mapFragment = MapFragment.newInstance();
GoogleMap mMap = mapFragment.getMap();
Trang 33: setMapType(int)
Ta có thể thiết lập các giá trị ban đầu và điều khiển cho GoogleMap bao gồm:
Trang 34 La bàn và điều khiển thu phóng.
Các điều khiển cử chỉ trên bản đồ
Ta thiết lập các giá trị ban đầu và điều khiển cho GoogleMap trong layout XML:
Trang 36CHƯƠNG 2 KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Mô tả bài toán
Hiện nay nhu cầu du lịch của người dân ngày càng nâng cao, chính vì thế số
Trang 37lượng và quy mô các nhà hàng, khách sạn, địa điểm du lịch cũng ngày càng tăng
để thỏa mãn nhu cầu du khách Thái Nguyên một trong những thành phố đang phát triển về du lịch của cả nước nên sự gia tăng của các dịch vụ kèm theo du lịch (nhà hàng, khách sạn, tour du lịch, địa điểm du lịch) ngày tăng Điều quan trọng là các nhà hàng, khách sạn, địa điểm du lịch cần cung cấp thông tin, quảng cáo các dịch
vụ phòng, ăn uống và những dịch vụ bổ sung với mức chất lượng cao tới du khách trong và ngoài nước Mối quan hệ giữa chất lượng với giá cả, phải làm sao cho hợp
lý, đẹp lòng khách mà kinh doanh vẫn đạt được mục tiêu hiệu quả
2.2 Giới thiệu du lịch Thái Nguyên
Đến với Thái Nguyên, là về với Thủ đô gió ngàn - Chiến khu Việt Bắc, về nơi cội nguồn của loài người với Mái đá Ngườm Thần Sa, với núi Đuổm hoang sơ
kỳ vĩ, đắm mình trong câu chuyện tình lãng mạn của nàng Công, chàng Cốc, và trải nghiệm cùng các nghệ nhân xứ chè Tân Cương nổi tiếng…
Thái Nguyên là điểm “chụm đầu” của cả bốn rặng núi cánh cung đá vôi vùng Đông Bắc, khiến Võ Nhai, Định Hóa như “một vùng Hạ Long trên cánh đồng xanh” Từng trái núi đá vôi được những tán rừng che phủ, nên cảnh quan càng trở nên huyền bí, kỳ thú, mang nhiều nét hoang sơ với hang Phượng Hoàng, động Người Xưa, suối Mỏ Gà, Thác Mưa Rơi (Võ Nhai) hay Thác Bảy tầng Khuôn Tát (Định Hóa) nổi tiếng Thái Nguyên còn có cả sườn phía Đông dãy núi Tam Đảo đồ sộ, nơi có khu “rừng quốc gia Tam Đảo” rộng lớn, tạo nên những tiềm năng du lịch sinh thái du lịch nghỉ dưỡng, du lịch thám hiểm, du lịch thể thao Gần sát với chân Tam Đảo là một khu du lịch “Sơn thủy hữu tình” Hồ Núi Cốc nổi tiếng, đầy hấp dẫn với vẻ đẹp nên thơ Liền kề với Hồ là vùng chè đặc sản Tân Cương tựa như những mâm bát úp trùng trùng tiếp nối, búp chè mơn mởn xanh non, khiến cho du khách cảm thấy đâu đó hương trà bay nhẹ dịu làm say đắm lòng người Sự đa dạng về hình thái đa hình đa dạng sinh học chính là điểm lợi thế
về tài nguyên du lịch thiên nhiên của Thái Nguyên
Đến với Thái Nguyên là đến với không gian văn hóa tâm linh Thái Nguyên
Trang 38có 780 di tích được kiểm kê trong đó có 12 di tích khảo cổ học, 479 di tích lịch sử,
16 di tích kiến trúc nghệ thuật, 225 di tích tín ngưỡng, 40 di tích danh thắng Đến nay đã có 33 điểm di tích được xếp hạng “Di tích lịch sử-văn hóa cấp quốc gia” Di tích Đền Đuổm (Phú Lương) gắn với tên tuổi vị anh hùng Dương Tự Minh thời nhà Lý Khu
di tích núi Văn, núi Võ (Đại Từ) gắn liền với danh nhân Lưu Nhân Chú (từ thế kỷ XV) Cụm di tích lịch sử về “Sự kiện khởi nghĩa Thái Nguyên 1917” lưu danh các thủ lĩnh cuộc khởi nghĩa chống thực dân Pháp - Đội Cấn và Lương Ngọc Quyến
Đến với Thái Nguyên cũng chính là tìm về với cội nguồn của lịch sử cách mạng trong cuộc kháng chiến trường kỳ chống thực dân Pháp Thái Nguyên được Trung ương Đảng, Bác Hồ và Chính phủ chọn làm nơi xây dựng An toàn khu (ATK) căn cứ địa cách mạng, trong đó Thái Nguyên có vinh dự ở vào vị trí trung tâm của Thủ đô kháng chiến với các địa danh đã đi vào lịch sử như: Khau Tý, Tỉn Keo, Điềm Mạc, Phú Đình, Bảo Biên, Định Biên (Định Hóa) nơi Chủ Tịch Hồ Chí Minh, các cơ quan Trung uơng Đảng, Chính phủ và Bộ tổng tư lệnh đặt đại bản doanh để lãnh đạo toàn dân kháng chiến chống thực dân Pháp Ngày nay quần thể di tích trên vẫn được gìn giữ, tôn tạo và trở thành thế mạnh cho tiềm năng du lịch lịch sử Tại trung tâm thành phố Thái Nguyên có Bảo tàng Quốc gia về “Văn hóa các dân tộc Việt Nam” giới thiệu một cách sinh động về văn hóa vật thể và phi vật thể của cộng đồng 54 dân tộc anh em trên đất nước ta
Thái Nguyên vào dịp đầu xuân, du khách được tham dự ngày hội Lồng Tồng của người Tày, Nùng, hội vật Thanh Ninh (Phú Bình) các lễ hội Đền Đuổm, hội đình Phương Độ, hội Chùa Hang, hội Đền Giá, hội đền Xương Rồng, đền Mỏ Bạch, lễ hội Chùa Phủ Liễn
Thái Nguyên, du khách được chứng kiến nhiều nét văn hóa đa dạng, phong phú: Từ văn hóa kiến trúc, vặn hóa ẩm thực đến trang phục rồi phong tục về các lễ hội, thờ cúng, ma chay, tập quán về cưới hỏi, đặt tên con của từng dân tộc Những sinh hoạt văn nghệ dân gian cũng phong phú: Người Tày, Nùng hay hát then với cây đàn tính Người Mông hát “Gầu Phềnh” (hát giao duyên) “gầu xống”
Trang 39(hát cưới xin “gầu tú ở” (hát cúng ma) Người Sán Dìu hát “sọong cô” (lối hát đối đáp từng đối nam - nữ chưa vợ, chưa chồng) Người Sán Chay hát “sình ca” cùng với những làn điệu hát trên là những điệu dân vũ truyền thống uyển chuyển độc đáo của từng dân tộc.
Thái Nguyên là tỉnh trung du miền núi, là cửa ngõ nối liền khu Việt Bắc với đồng bằng Bắc Bộ, được xác định là trung tâm các tỉnh vùng Đông Bắc Nơi đây
có nhiều di tích lịch sử cách mạng và danh lam thắng cảnh cùng với đặc điểm về vị trí địa lý là kiện thuận lợi để ngành du lịch của tỉnh phát triển Trong những năm qua cùng với sự phát triển kinh tế - xã hội của cả nước, kinh tế xã - hội của tỉnh từng bước phát triển và ổn định, an ninh chính trị và trật tự an toàn xã hội được giữ vững, đời sống tinh thần của nhân dân các dân tộc từng bước được nâng cao Tiềm năng và thế mạnh của du lịch Thái Nguyên rất phong phú và đa dạng, hấp dẫn nhiều du khách trong và ngoài nước Mảnh đất này được đánh giá như một thảm tranh tuyệt đẹp, khí hậu ôn hoà, con người thân thiện và hiếu khách
2.2.1 Hiện trạng và khó khăn
Thái Nguyên là tỉnh tuy có những tiềm năng về du lịch như: Khu du lịch
Hồ Núi Cốc, ATK Định Hóa, hang Phượng Hoàng, khu du lịch Thần Sa…song việc khai thác còn chưa hiệu quả Năm 2007,Thái Nguyên được chọn làm nơi tổ chức năm du lịch quốc gia với chủ đề “Về Thủ đô gió ngàn-chiến khu Việt Bắc”.Nhưng hiện nay nhận thức của cộng đồng về du lịch cũng còn hạn chế, quá trình khai thác tiềm năng du lịch chưa được đẩy mạnh, công tác quảng bá cũng chưa thực sự được đẩy mạnh, tuy các trang web về quảng bá du lịch Thái Nguyên rất nhiều vẫn còn rất hạn chế về việc tích hợp trên hệ thống thông tin địa lý, chưa cập nhật được hết các diểm du lịch cũng như cơ sở dữ liệu chưa được phong phú
và đa dạng, việc tra cứu gặp nhiều khó khăn
Trang 402.2.2 Hướng giải quyết
Tranh thủ sự quan tâm, ủng hộ của Chính phủ, các ban, bộ, ngành Trung ương, đặc biệt là các cơ quan tu bổ lại các di tích hấp dẫn về lịch sử, văn hóa, cảnh quan, sinh thái, tiện đường đi lại
Vận động dân tham gia làm du lịch cộng đồng: Thu hút khách du lịch trải nghiệm ăn, ngủ, làm nương, cày ruộng, gặt lúa, đồ xôi…tại nhà sàn, đồng quê hương rừng, gió núi
Đào tạo, nâng cao nguồn nhân lực du lịch: Quản lý hướng dẫn viên, khai thác dịch vụ ẩm thực, ca múa dân gian
Tăng cường hệ thống nhà nghỉ, ăn uống, đáp ứng nhu cầu của khách du lịch lưu trú qua đêm Tăng cường tuyên truyền quảng bá về Khu Di tích
Cần đẩy mạnh công tác quảng bá và khai thác tối đa tiềm năng du lịch,xây dựng những ứng dụng tiện lợi và dễ sử dụng cho người sử dụng để việc tra cứu một cách dễ dàng,giảm thiểu một số thao tác thủ công
2.3 Khảo sát một số trang Web về du lịch Thái Nguyên
Trang cổng thông tin du lịch Thái Nguyên: http://thainguyentourism.vn/