ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Quan Tuấn Vũ
PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ NGƯỜI
DÙNG DỊCH VỤ XE BUÝT TRÊN NỀN ANDROID
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
HÀ NỘI - 2014
I
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Quan Tuấn Vũ
PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ NGƯỜI
DÙNG DỊCH VỤ XE BUÝT TRÊN NỀN ANDROID
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Cán bộ hướng dẫn: TS. Nguyễn Ngọc Hóa
Cán bộ đồng hướng dẫn: ThS. Dư Phương Hạnh
Hệ thống gồm hai phần cơ bản chạy riêng biệt, phần thứ nhất là phía máy chủ
cung cấp các dịch vụ web nhằm thao tác dữ liệu với cơ sở dữ liệu – phần này thuộc
vào phạm vi khóa luận “Phát triển hệ thống quản lý người dùng dịch vụ xe buýt trên
nền tảng Struts2”[31]. Phần thứ hai là phía máy khách dưới dạng ứng dụng Android
cũng được chia thành hai phần nhỏ hơn – là phần chính mà khóa luận này nói đến.
Khóa luận sẽ trình bày xây dựng hai ứng dụng nhằm giải quyết hai bài toán khác
nhau. Ứng dụng quản lý người dùng dịch vụ xe buýt hướng tới việc quản lý khách
hàng trên xe buýt, giải quyết bài toán xác thực người dùng bằng thẻ NFC bằng các kết
quả trả về của dịch vụ web của phần thứ nhất của hệ thống. Ngoài phần máy chủ thuộc
phần một của hệ thống, tôi cũng xây dựng một máy chủ riêng với phạm vi nhỏ hơn,
nhằm giải quyết các vấn đề truy xuất về dữ liệu bản đồ xe buýt của ứng dụng thứ hai.
Ứng dụng hỗ trợ người dùng dịch vụ xe buýt hướng tới việc trợ giúp khách hàng sử
dụng dịch vụ xe buýt, ứng dụng cung cấp cho người sử dụng những thông tin tài
khoản, giao dịch trong giới hạn cũng như một bản đồ xe buýt để người sử dụng có thể
quan sát được vị trí hiện tại của các xe buýt và các trạm dừng của tuyến xe buýt đó
được xây dựng trên dữ liệu trạm xe buýt ở khóa luận “Số hóa hệ thống xe buýt trên
nền Google Maps” [30] và Google API.
Từ khóa: Hệ thống quản lý người dùng dịch vụ xe buýt ,Ứng dụng quản lý người dùng
dịch vụ xe buýt, NFC, Ứng dụng hỗ trợ người dùng dịch vụ xe buýt.
IV
ABSTRACT
Summary: Nowaday, under the rapid growth in urbanization process, the
demond for moving is quick increased. As a result, network bus public transportation
is more and more wide. The problems of user authentication, payment control,
management and support bus service’s customer become to difficult work. This thesis
indicate the part of building user management system in bus service.
Sinh viên
Quan Tuấn Vũ
VI
LỜI CẢM ƠN
Khóa luận tốt nghiệp được hoàn thành tại Đại học Công Nghệ - Đại học Quốc
Gia Hà Nội. Có được kết quả của khóa luận tốt nghiệp này, tôi xin bày tỏ lòng biết ơn
chân thành và sâu sắc đến Đại học Công Nghệ - Đại học Quốc Gia Hà Nội, đặc biệt là
thầy giáo Nguyễn Ngọc Hóa đã nhiệt tình chỉ bảo hướng dẫn, dìu dắt, giúp đỡ và đóng
góp những ý kiến quý báu cho tôi để hoàn thành khóa luận tốt nghiệp này.
Xin gửi lời cảm ơn chân thành toàn thể các thầy cô trường Đại học Công Nghệ đại học Quốc Gia Hà Nội đã dạy dỗ và truyền đạt những kiến thức quí báu cho tôi
trong những năm tháng qua.
Cuối cùng, tôi xin được cảm ơn cha mẹ, bạn bè và người thân, những người đã ở
bên tôi, khuyến khích và động viên tôi trong cuộc sống, học tập.
Trong quá trình hoàn thành khóa luận tốt nghiệp, Tôi mặc dù đã rất cố gắng tuy
nhiên sẽ không tránh khỏi những hạn chế về mặt kiến thức và cũng như kinh nghiệm
mà tự mình không thể nhìn thấy được. Vậy nên, tôi rất mong nhận được sự đóng góp,
phê bình của quý thầy cô, các nhà khoa
Hà Nội, ngày 14 tháng 5 năm 2014
Sinh viên
học, đọc giả và các bạn.
Xin chân thành cảm ơn!
Quan Tuấn Vũ
VII
2.4. Hệ quản trị cơ sở dữ liệu MySQL..............................................................19
2.5. Cơ sở dữ liệu nhúng SQLite ......................................................................19
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG..............................................................22
3.1. Mô hình hệ thống........................................................................................22
3.2. Phân tích và xác định yêu cầu.....................................................................24
3.2.1. Ứng dụng quản lý người dùng dịch vụ xe buýt...................................24
3.2.2. Ứng dụng hỗ trợ người dùng dịch vụ xe buýt ....................................33
3.3. Thiết kế........................................................................................................39
3.3.1. Kiến trúc ứng dụng..............................................................................39
3.3.2. Xác định gói thiết kế............................................................................39
3.3.3. Thiết kế cho từng ca sử dụng...............................................................40
3.3.4. Thiết kế giao diện.................................................................................45
CHƯƠNG 4: THỰC NGHIỆM.............................................................................48
4.1. Môi trường thực nghiệm.............................................................................48
4.1.1. Cấu hình thiết bị...................................................................................48
4.1.2. Các công cụ phần mềm........................................................................49
4.2. Kết quả thực nghiệm...................................................................................49
4.3. Đánh giá và hướng phát triển......................................................................50
CHƯƠNG 5: KẾT LUẬN.....................................................................................51
TÀI LIỆU THAM KHẢO......................................................................................52
Tiếng Anh...........................................................................................................52
Tiếng Việt...........................................................................................................53
IX
BẢNG DANH MỤC TỪ VIẾT TẮT
NFC
XIII
CHƯƠNG 1:
GIỚI THIỆU
Với tốc độ tăng trưởng chóng mặt như hiện nay, các nghành cũng phát triển với
quy mô rộng lớn, đặc biệt với nghành dịch vụ. Một nền kinh tế năng động phải có các
nghành dịch vụ phát triển với nhiều loại hình. Khi kinh tế phát triển, nhu cầu con
người ngày càng cao, xu thế xuất hiện những nhu cầu mới phục vụ những nhu cầu đó
như các dịch vụ khách sạn, du lịch, chăm sóc sức khỏe,… Trong số các nhu cầu đó cần
tính đến nhu cầu di chuyển.
Tại nước ta đặc biệt Hà Nội nhu cầu di chuyển của người dân là rất lớn, vì vậy
dịch vụ xe buýt công cộng hiện nay đang rất sôi động. Theo Tổng công ty Vận tải Hà
Nội, năm 2009 đã có 385 triệu hành khách đi xe buýt chiếm trên 92% sản lượng vận
chuyển của toàn thành phố. Ước tính, trung bình mỗi ngày xe buýt vận hành trên
10.000 lượt xe, vận chuyển được trên 1 triệu lượt hành khách, hạn chế trên 700.000
lượt xe máy tham gia giao thông trên đường phố [32]. Với hệ thống xe buýt bao phủ
khắp Hà Nội đã giảm đáng kể số vụ tai nạn trong thành phố, cũng như giảm tắc đường,
bảo vệ môi trường của thủ đô. Xe buýt không ngừng phục vụ cho những nhu cầu cần
thiết của con người như: đi học, đi làm, …
Tuy nhiên, với số lượng hành khách quá đông như hiện nay, khả năng đáp ứng
của xe buýt là hoàn toàn không đủ và việc xác thực người dùng dịch, kiểm soát thanh
toán trên một chuyến xe cũng như việc hỗ trợ khách hàng là khó thực hiện. Cũng vì lý
do trên, chúng tôi thực hiện đề tài này nhằm xây dựng một hệ thống quản lý người
dùng dịch vụ xe buýt để khắc phục các vấn đề về xác thực người dùng và kiểm soát
thanh toán trên xe buýt và hỗ trợ khách hàng để cải thiện thực trạng hiện nay. Trong
phạm vi khóa luận này, tôi sẽ đi sâu vào các nội dung xung quanh phần thứ hai của hệ
thống là hai ứng dụng: ứng dụng quản lý người sử dụng dịch vụ xe buýt và ứng dụng
Nội dung khóa luận bao gồm 4 chương:
Chương 1 - Giới thiệu: Nêu thực trạng, giới thiệu bài toán, ý tưởng xây dựng và
các vấn đề sẽ được trình bày.
Chương 2 – Các công cụ được sử dụng: Nêu những công cụ, cơ sở lý thuyết được
áp dụng để thực hiện hệ thống.
Chương 3 - Xây dựng hệ thống: Trình bày về mô hình của hệ thống, cấu trúc và
cách giải quyết của từng phần của hệ thống.
Chương 4 – Thực nghiệm: Trình bày về cách sử dụng hệ thống, những kết quả đã
đạt được. Đánh giá và trình bày hướng phát triển tiếp theo của hệ thống.
Chương 5 – Kết luận: Tóm tắt lại quá trình xây dựng, những kết quả đã đạt được,
ý nghĩa thực tiễn của hệ thống.
2
CHƯƠNG 2:
LÝ THUYẾT LIÊN QUAN
2.1. Tổng quan về Android
2.1.1. Giới thiệu chung
Android là một hệ điều hành mã nguồn mở dành cho thiết bị di động như điện
thoại thông minh và máy tính bảng. Được phát triển bởi Liên minh thiết bị cầm tay mở
rộng, dẫn đầu là Google.
Từ quan điểm của nhà phát triển, Android là một hệ điều hành xây dựng trên
nhân Linux. Nó bao gồm giao diện cảm ứng, widgets, camera, … và tập các chức năng
cần thiết để có thể được gọi là điện thoại thông minh. Android là một nền tảng hỗ trợ
các ứng dụng khác nhau, có sẵn trong Google Play Store. Nền tảng Android cũng cho
phép người dùng có thể phát triển, cài đặt và sử dụng ứng dụng của họ. Android
FrameWork được cấp phép theo chứng chỉ Apache.
nghĩ là phù hợp.
2.1.2.3. Phá vỡ ranh giới ứng dụng
Android phá vỡ các rào cản cần thiết nhằm hướng tới xây dựng các ứng dụng
mới và sáng tạo nhờ vào khai thác tối đa chức năng của phần cứng. Ví dụ như, nhà
phát triển có thể xây dựng các ứng dụng chụp ảnh với nhiều đổi mới so với ứng dụng
cốt lõi có sẵn.
2.1.2.4. Phát triển các ứng dụng một cách nhanh chóng và dễ dàng
Các ứng dụng cho Android được phát triển bằng ngôn ngữ Java sử dụng bộ phát
triển phần mềm Android (SDK). SDK bao gồm một bộ đầy đủ các công cụ dùng để
phát triển, gồm có công cụ gỡ lỗi, thư viện phần mềm, bộ giả lập điện thoại dựa trên
QEMU, tài liệu hướng dẫn, mã nguồn mẫu, và hướng dẫn từng bước. Môi trường phát
triển tích hợp (IDE) được hỗ trợ chính thức là Eclipse sử dụng phần bổ sung Android
Development Tools (ADT). Các công cụ phát triển khác cũng có sẵn, gồm có Bộ phát
triển gốc dành cho các ứng dụng hoặc phần mở rộng viết bằng C hoặc C++, Google
App Inventor, một môi trường đồ họa cho những nhà lập trình mới bắt đầu, và nhiều
nền tảng ứng dụng web di động đa nền tảng phong phú.
2.1.2.5. Quản lý bộ nhớ
Android được thiết kế quản lý bộ nhớ (RAM) nhằm giảm tối thiệu tiêu thụ điện
năng. Khi một ứng dụng Android không còn được sử dụng, hệ thống sẽ tự động ngưng
hoạt động của ứng dụng đó, mặc dù thực sự là nó vẫn ở trạng thái mở. Vì điều đó, các
ứng dụng được tạm ngưng không tiêu thụ tài nguyên và được khởi động lại khi cần
4
thiết. Điều này giúp cho Android tăng khả năng đáp ứng người dùng (ứng dụng cần
khởi động lại), mặt khác đảm bảo tối thiệu tiêu hao năng lượng của ứng dụng nền.
Quản lý bộ nhớ được thực hiện một cách tự động: khi bộ nhớ đầy hệ thống sẽ bắt
đầu diệt ứng dụng và tiến trình không hoạt động được một thời gian, sắp theo thời
điểm cuối mà chúng được sử dụng.
các developer phát triển ứng dụng android thông qua tầng Android
Framework. Có thể kể ra đây một số thư viện quen thuộc với các lập trình
viên như: Media Libraries, Surface Manager, LibWebCore, ….
Tầng bốn: Nhân Linux.
5
Hình 2.1. Mô hình kiến trúc phần mềm Android
2.1.4. Các thành phần chính trong một ứng dụng Android:
Một ứng dụng Android thường có các thành phần sau:
-
Activity: là một thành phần của ứng dụng cung cấp một giao diện mà người
-
dùng có thể tương tác vào đó để thực hiện một hành động nào đó.
Service: là một thành phần chạy ngầm trong Android và không có giao diện.
-
Khi được bật. Service dùng để update dữ liệu, đưa ra các cảnh báo
(Notifacation) và không bao giờ hiển thị cho người dùng nhìn thấy.
Broadcast Receiver(BR): là thành phần để thu nhận các Intent thông báo từ hệ
-
điều hành (pin yếu, có sms, có cuộc gọi đến..) hoặc từ chính trong ứng dụng
của chúng ta. BR cũng không có giao diện người dùng.
chiều giữa các thiết bị đầu cuối. Một trong những thể hiện của việc giao tiếp này là
tính năng Android Beam trên thiết bị thông minh Android. Android Beam sử dụng
NFC để bật Bluetooth ở cả hai thiết bị và tự động tăt Bluetooth khi kết thực hiện xong
một công việc nào đó. S-Beam là mở rộng của AndroidBeam, sử dụng NFC để chia sẻ
địa chỉ MAC và IP và thực hiện công việc trực tiếp trên mạng WIFI thay cho
Bluetooth.[3]
Thiết bị NFC có thể sử dụng cho việc thanh toán điện tử, tương tự với các loại
thẻ tín dụng và thẻ điện tử thông minh.Như Google Wallet cho phép người tiêu dùng
lưu trữ thông tin thẻ tín dụng trong một chiếc ví ảo sau đó sử dụng thiết bị NFC với
thiết bị đọc thẻ chấp nhận giao dịch Master Card PayPass.[4] Germany[5], Austria[6],
Finland[7], New Zealand[8] , Italy[9], Iran[10] và Turkey[11] đã có hệ thống vé NFC
cho dịch vụ xe công cộng.
2.2.1.2. Các thông số kỹ thuật của thẻ NFC
NFC là một tập hợp các công nghệ không dây tầm ngắn ( phạm vi 10 cm hoặc ít
hơn ). NFC hoạt động ở tần số 13,56 MHz trên chuẩn ISO/IEC 18000-3 và tốc độ từ
106 kbit/s tới 424 kbit/s. NFC luôn có một đối tượng khởi động và một đối tượng mục
tiêu. Nếu mục tiêu là đối tượng bị động, đối tượng khởi động tạo ra một vùng RF cung
cấp năng lượng cho mục tiêu bị động. Cho nên đối tượng NFC có hình thức đơn giản
7
như : thẻ, thẻ dán, thẻ không cần pin. Nếu cả hai đối tượng đều chủ động thì cả hai
thiết bị đều là đối tượng khởi động (nguồn cung cấp điện) và luân phiên tạo ra các
vùng riêng, thiết bị chờ dữ liệu sẽ vô hiệu hóa trường RF của chính nó. Giao tiếp NFC
pear-to-pear có thể kích hoạt khi hai thiết bị NFC đang bật.[3] Năng lượng RF tập
trung trong phạm vi ±7 KHZ phạm vi băng thông, nhưng đường bao phổ đầy đủ có thể
rộng tới 1.8 MHz khi sử dụng biến điệu ASK.[12]
Thẻ NFC chứa dữ liệu và thường chỉ đọc, và có thể cho phép ghi đè. Thẻ NFC có
thể được tùy chỉnh bởi nhà sản xuất hoặc sử dụng các thông số kỹ thuật được cung cấp
trong diễn đàn NFC. An toàn lưu dữ liệu cá nhân trong thẻ NFC như thẻ ghi nợ và thẻ
chuẩn bị cho quá trình thương mại hóa [16].
GSMA có liên quan đến:
-
Thiết lập tiêu chuẩn: GSMA đang phát triển chứng nhận và thử nghiệm để
đảm bảo khả năng tương tác toàn cầu của dịnh vụ NFC [16].
Xác định cách tiếp cận toàn cầu chung nhất để sử dụng NFC để liên kết các
thiết bị NFC với hệ thống thanh toán không tiếp xúc [17][18].
17/11/2010. AT&T, Verizon và T-Mobile ra mất công ty liên doanh (ISIS)
nhằm phát triển nền tảng duy nhất sử dụng công nghệ NFC để thanh toán di
động. ISIS cho phép thiết bị NFC có chức năng như thẻ tín dụng cho 200
triệu khách hàng.
Diễn đàn NFC: là một hiệp hội phi lợi nhuận được thành lập vào 18/3/2004 bởi
NXP Semiconductors, Sony và Nokia để thúc đẩy việc sử dụng NFC trong thiết bị
điện tử tiêu dùng, thiết bị di động và máy tính. NFC Forum thúc đẩy việc thực hiện và
tiêu chuẩn của công nghệ NFC để đảm bảo khả năng tương tác giữa các thiết bị và
dịch vụ. Tính đến tháng 6 năm 2013, Diễn đàn NFC đã có hơn 190 thành viên.[19]
2.2.1.5. Các khía cạnh an toàn
Mặc dù phạm vi giao tiếp của NFC chỉ giới hạn trong một vài centimet nhưng
công nghệ NFC không đảm bảo thông tin liên lạc được an toàn. Năm 2006, Ernst
Haselsteiner và Klemens Breitfuß đã liệt kê các loại tấn công có thể xảy ra khi sử dụng
thẻ NFC [20]. NFC không cung cấp phòng chống việc nghe trộm thông tin và dễ bị tổn
thương bởi thay đổi dữ liệu. Ứng dụng phải sử dụng các phương thức cao hơn như
giao thức mã hóa để thiết lập an toàn. Các kiểu tấn công khi sử dụng thẻ NFC bao
gồm:
-
-
2.2.2. Android NFC API
Thẻ NFC có độ phức tạp, tinh vi tùy vào loại thẻ. Loại đơn giản chỉ cung cấp đọc
và viết, đôi khi cũng có một số trường trong thẻ được dùng để quy định thẻ chỉ có thể
được đọc. Thẻ phức tạp hơn cung cấp các hoạt động toán học, có phần cứng mã hóa để
phân quyền truy cập vào khu vực của thẻ. Thẻ thiết kế tinh vi nhất cung cấp tương tác
phức tạp với mã thực thi trên thẻ. Dữ liệu trong thẻ NFC thường có chung một định
dạng khung, hầu hết Android NFC API được xây dựng trên chuẩn NDEF (NFC Data
Exchange Format) của diễn đàn NFC. Thiết bị Android hỗ trợ NFC với ba chế độ
chính:
-
Chế độ đọc/ ghi. Cho phép thiết bị đọc và ghi các thẻ, thẻ dán NFC bị động.
Chế độ P2P. Cho phép các thiết bị NFC trao đổi dữ liệu thông qua chức năng
Android Beam.
Chế độ giả lập thẻ. Cho phép thiết bị Android hoạt động như một thẻ NFC.
2.2.2.1. Các vấn đề cơ bản của NFC trong Android
2.2.2.1.1. Hệ thống công văn thẻ
Các thiết bị Android thường tìm kiếm thẻ NFC khi màn hình mở khóa và chế độ
NFC được bật. Hệ thống này thực thi phân tích thẻ đã được thiết bị phát hiện, phân
loại dữ liệu và khởi động ứng dụng quan tâm đến dữ liệu thu nhập được bằng cách:
-
Phân tích thẻ NFC và tìm ra định dạng MIME hoặc URI.
Đóng gói hai định dạng trên vào một intent.
Bắt đầu một hoạt động dựa trên intent.
2.2.2.1.2. Cơ chế ánh xạ NFC tới định dạng MIME, URI
NDEF được đóng gói bên trong một tin nhắn ( NdefMessage ) có chứa các bản
ghi ( NdefRecord ). Mỗi NdefRecord phải được hình thành theo các đặc điểm kỹ thuật
thẻ chứa dữ liệu NDEF. Đây là loại intent được ưu tiên hàng đầu, nó sẽ được
ưu tiên kích hoạt hàng đầu so với hai kiểu intent còn lại.
- ACTION_TECH_DISCOVERED: nếu không có Activity nào đăng kí xử lý
intent ACTION_NDEF_DISCOVERED: hệ thống công văn thẻ sẽ cố gắng
kích hoạt ứng dụng đăng ký xử dụng loại thẻ này. Intent này cũng được kích
hoạt đầu tiên, nếu thẻ quét được không chứa kiểu dữ liệu NDEF.
- ACTION_TAG_DISCOVERED nếu không có Activity nào đăng kí xử lý
ACTION_NDEF_DISCOVERED và ACTION_TECH_DISCOVERED
intent này được kích hoạt.
Các hoạt động cơ bản của hệ thống công văn thẻ hoạt động:
- Cố gắng kích hoạt Activity bởi intent đã được tạo khi quét thẻ NFC
(ACTION_NDEF_DISCOVERED hoặc ACTION_TECH_DISCOVERED).
- Nếu không có Activity nào được kích hoạt, kích hoạt Activity với độ ưu tiên
thấp
nhất
(ACTION_TECH_DISCOVERED
hoặc
ACTION_TAG_DISCOVERED).
- Nếu không ứng dụng nào được kích hoạt. Thì không làm gì.
11
Hình 2.2. Cơ chế hoạt động của Hệ thống công văn Thẻ [22]
2.2.2.1.4. Lấy thông tin từ Intent
NFC intent có thể chứa các thành phần sau của thẻ được quét:
-
EXTRA_TAG: Đối tượng thẻ (tag) đại diện cho thẻ được quét.
EXTRA_NDEF_MESSAGE: Một mảng các NdefMessage phân tích được