Gởi thông điệp user muốn check-in: Hệ thống sẽ thông báo cho
hotel khi user thoải điều kiên check –in
o Input: HotelID
o Output: UserID
o Các bước thực hiện
Server nhận ID của hotel
Kiểm tra tất cả các khách hàng(user) của hotel này xem
có ai check in được
Trả về UserID nếu có user này check in được,ngược lại
trả về -1
51 trang |
Chia sẻ: lylyngoc | Lượt xem: 2476 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng một hệ thống tự động kiểm tra vào khách sạn dựa trên dịch vụ dựa vào vị trí, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
............. 47
Hiện thực: .................................................................................................................................................. 47
Lấy tọa độ user: Server gởi thông báo yêu cầu user cung cấp vị trí cho server. Sau đó User gởi
tọa độ của mình cho server xử lý ............................................................................................................. 47
o Input: UserID .................................................................................................................................... 47
o Output: PositionUser ........................................................................................................................ 47
o Các bước thực hiện: .......................................................................................................................... 47
Server gởi yêu cầu lấy tọa độ đến user. Server không gởi yêu cầu liên tục mà xác định khoảng
thời gian cụ thể để gởi yêu cầu này.......................................................................................................... 47
User gởi lại tọa độ của mình cho server: Khi nhận yêu cầu từ server, user sử dụng GPS để lấy
tọa độ hiện tại của mình (tọa độ ở dạng lat/long) gởi lại cho server...................................................... 47
Server lưu lại tọa độ vào cơ sở dự liệu để thực hiện tính toán ....................................................... 47
Khoảng thời gian để server yêu cầu user gởi tọa độ cho mình được xác định bằng khoảng cách ngắn
nhất mà user đi tới phạm vi của hotel chia cho vận tốc của user. Để bài toán đơn giản,ở đây vận tốc
được giả sử không đổi ............................................................................................................................... 47
Khoảng thời gian t = khoảng cách ngắn nhất / vận tốc........................................................................... 47
Cứ sau một khoảng thời gian t thì server mới yêu cầu user gởi tọa độ ................................................. 48
Kiểm tra tiền điều kiện check-in: Hệ thống kiểm tra user đã vào phạm vi của hotel chưa, và
kiểm tra tính xác thực của user ................................................................................................................. 48
o Kiểm tra user vào phạm vi hotel hay chưa ...................................................................................... 48
Input: PositionUser,PositionHotel,RadiousHotel ........................................................................... 48
Output: true/false .............................................................................................................................. 48
Các bước thực hiện: .......................................................................................................................... 48
Tính khoảng cách của Hotel và User ............................................................................................... 48
Để tính được khoảng cách của hotel và user trên thực tế từ tọa độ lat/long. Ta phải đổi tọa độ lat/long
này sang UTM( Universal Transverse Mercator). Ta sự dụng công thức dưới đây: ............................ 48
Các ký hiệu:....................................................................................................................................... 48
lat : vĩ độ ................................................................................................................................................... 48
long: kinh độ .............................................................................................................................................. 48
long0: kinh tuyến trung tâm của khu vực ................................................................................................. 48
k0:tỉ lệ theo long0 = 0.9996 ....................................................................................................................... 48
e = SQRT(1-b2/a2) = 0.08: độ lệch tâm của mặt cắt ngang trái đất ........................................................ 48
e’2 = (ea/b)2 = e2/(1-e2) = 0.07 .................................................................................................................. 48
n = (a-b)/(a+b) ........................................................................................................................................... 48
rho = a(1-e2)/(1-e2sin2(lat))3/2: bán kính độ cong của trái đất trong mặt phẳng kinh tuyến ........ 48 nu = a/(1-e2sin2(lat))1/2: bán kính độ cong của trái đất vuông góc với mặt phẳng kinh tuyến ..... 48 p = (long-long0) ........................................................................................................................................ 48
Tính toán............................................................................................................................................ 48
Kết quả............................................................................................................................................... 49
Y = northing = K1 + K2p2 + K3p4 với ................................................................................................... 49 K1 = Sk0, .................................................................................................................................................... 49 K2 = k0 nu sin(lat)cos(lat)/2 = k0 nu sin(2 lat)/4 ............................................................................... 49 K3 = [k0 nu sin(lat)cos3(lat)/24][(5 - tan2(lat) + 9e'2cos2(lat) + 4e'4cos4(lat)] .............................. 49
X = easting = K4p + K5p3 với................................................................................................................. 49 K4 = k0 nu cos(lat) ................................................................................................................................... 49 K5 = (k0 nu cos3(lat)/6)[1 - tan2(lat) + e'2cos2(lat)] ........................................................................... 49
Nguồn: ........................................ 49
So sánh khoảng cách này với bán kính phạm vi hotel.................................................................... 49
Trả về true nếu khoảng cách nhỏ hơn hoặc bằng bán kính phạm vi hotel, ngược lại trả về false
49
o Xác thực người dùng ........................................................................................................................ 49
Input: PasscodeUser.......................................................................................................................... 49
Output: true/false .............................................................................................................................. 49
Các bước thực hiện: .......................................................................................................................... 49
Server yêu cầu User nhập passcode của mình để kiểm tra............................................................. 49
User nhập passcode........................................................................................................................... 49
Server so trùng passcode được tạo ra trước đó và passcode user nhập ......................................... 49
Trả về true nếu so trùng thành cồng,ngược lại trả về false ............................................................ 49
Gởi thông điệp user muốn check-in: Hệ thống sẽ thông báo cho hotel khi user thoải điều kiên
check –in .................................................................................................................................................... 50
o Input: HotelID ................................................................................................................................... 50
o Output: UserID .................................................................................................................................. 50
o Các bước thực hiện ........................................................................................................................... 50
Server nhận ID của hotel .................................................................................................................. 50
Kiểm tra tất cả các khách hàng(user) của hotel này xem có ai check in được .............................. 50
Trả về UserID nếu có user này check in được,ngược lại trả về -1 ................................................ 50
Check-in: Hotel sẽ thực hiện việc check-in tự động và thông báo cho user việc check-in đã được
thực hiện .................................................................................................................................................... 50
o Input: UserID .................................................................................................................................... 50
o Output: Gởi gởi báo check in ........................................................................................................... 50
o Các bước thực hiện: .......................................................................................................................... 50
Hotel nhận thông báo từ server có user được quyền check in, và nhận được ID của user đó ..... 50
Thực hiện check in, bằng cách update vào cơ sở dữ liệu user này đã được check in................... 50
Gởi thông báo check in thành công cho user này ........................................................................... 50
Trước tiên, hệ thống sẽ tự động gửi thông báo yêu cầu tọa độ của người dùng. Người dùng sẽ
gửi trở lại tọa độ của mình để hệ thống xử lý. ........................................................................................ 50
Sau đó, hệ thống sẽ kiểm tra khoảng cách của người dùng đối với khách sạn đã thỏa điều kiện
của khách sạn............................................................................................................................................. 50
Nếu điều kiện phạm vi thỏa thì hệ thống sẽ gửi thông tin của người dùng đã kiểm tra thành công
tới khách sạn. ............................................................................................................................................. 50
Cuối cùng khách sạn sẽ thông báo xác nhận tới người dùng và kết thúc quá trình tự động kiểm
tra vào khách sạn. ...................................................................................................................................... 50
5. CHƯƠNG 5:TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN ................................................................... 50
5.1. Tổng kết ............................................................................................................................................ 50
5.2. Hướng phát triển luận văn ............................................................................................................ 50
References: ................................................................................................................................................... 51
[1]. 51
[2]. ................................................................. 51
[3]. .................................................................................... 51
[4]. ........................................................................................ 51
[5]. ....................................................................................... 51
1. CHƯƠNG 1:TỔNG QUAN VỀ ĐỀ TÀI
1.1. Giới thiệu đề tài
Xã hội càng phát triển con người càng phải lao động sáng tạo nhiều hơn, do
đó nhu cầu về vui chơi giải trí thư giãn cũng tăng. Ngành du lịch mà trong
đó là lĩnh vực khách sạn được mọi người quan tâm đầu tư hàng đầu. Trong
một xã hội năng động và hối hả, mọi người đều muốn tiết kiệm thời gian và
công sức trong việc đặt phòng và nhận phòng khách sạn khi họ đi du lịch.
Vì vậy vấn đề được đặt ra là làm sao khách du lịch có thể tiết kiệm được tối
đa thời gian để tiến hành các thủ tục đặt và nhận phòng khách sạn.
Tuy nhiên cùng với sự phát triển mạnh mẽ của công nghệ và Internet, chúng
ta đã dần tìm ra được giải pháp để giải quyết vấn đề trên. Bắt đầu từ hệ
thống kiểm tra vé máy bay trước khi lên máy bay, chúng ta đã có thể xây
dựng một hệ thống kiểm tra trước khi nhận phòng cho khách sạn dựa trên
dịch vụ dựa vào vị trí.
Hệ thống có thể cho phép người sử dụng tiến hành tự động kiểm tra khi vào
khách sạn ở trong phạm vi khoảng cách do khách sạn qui định. Đối với
khách sạn, họ có thể giảm thiểu tối đa thao tác của con người nhưng vẫn
đảm bảo được các qui trình nghiệp vụ cần thiết của khách sạn.
Tuy nhiên, hệ thống này vẫn là một khái niệm mới đối với khách sạn cũng
như khách du lịch nên vẫn còn nhiều bất cập chưa đáp ứng nhu cầu thực tế.
Vì vậy. nhóm thực hiện đề tài này sau khi đã tìm hiểu và nghiên cứu các
nghiệp vụ khách sạn cũng như những hệ thống kiểm tra hiện có để xây dựng
nên hệ thống này.
1.2. Nội dung đề tài
Nội dung của đề tài đó là xây dựng một hệ thống tự động kiểm tra vào
khách sạn dựa trên dịch vụ dựa vào vị trí. Chức năng chính của hệ thống
cho phép người đặt phòng sử dụng điện thoại di động mà đã đăng ký đặt
phòng tại khách sạn được kiểm tra vào một cách tự động khi người sử dụng
đi vào phạm vi bán kính thỏa mãn điều kiện của khách sạn đặt ra. Lúc đó hệ
thống sẽ tiến hành việc xác thực danh tính người đặt phòng và thông tin tới
khách sạn quá trình thành công. Sau đó, khách sạn sẽ xác nhận với người
đặt phòng.
Hệ thống được nhóm hiện thực bảo đảm các yêu cầu sau:
Tuân thủ đúng các nghiệp vụ khách sạn đã nghiên cứu.
Thiết kế hệ thống gồm các Web Service được tích hợp lại với nhau.
Comment [S1]: Huy làm:Giới thiệu về du
lịch..khách sạn,auto check in trong thời điểm
hiện tại.Deadline 25/05/2012
Comment [S2]: Huy làm:Auto checkin giảm chi
phí,công sức,những yêu cầu chương trình cần
phải đảm bảo (nghiệp vụ,hỗ trợ nhân viên,chức
năng hỗ trợ user,admin,hotel,bảo mật..Giới
thiệu tổng quát về các chương tiếp theo.
Deadline 25/05/2012
Phần tiếp theo bao gồm các nội dung:
Chương 2: Trình bày các kiến thức về nghiệp vụ khách sạn một cách
cơ bản nhất. Ngoài ra, nhóm còn trình bày các kiến thức về công
nghệ và kỹ thuật như Web service, framework đa nền tảng để lập
trình mobile (PhoneGap), hệ cơ sở dữ liệu PostGreSql dùng để lưu
trữ dữ liệu vị trí.
Chương 3: Gồm việc phân tích và thiết kế các yêu cầu nghiệp vụ,
trình tự quá trình thực hiện chức năng của hệ thống và các lược đồ
như lược đồ usecase, lược đồ tuần tự và sơ đồ ERD về cơ sở dữ liệu.
Chương 4: Đề xuất mô hình kiến trúc tổng quan và các chức năng cần
thiết cho hệ thống, hiện thực từng chức năng theo mô hình đã đề ra.
Chương 5: tổng kết toàn bộ quá trình xây dựng hệ thống, báo cáo các
ưu nhược điểm của hệ thống và hướng phát triển hệ thống để tối ưu
hiệu suất. Đồng thời cũng trình bày hướng xây dựng thành luận văn
tốt nghiệp sau này.
2. CHƯƠNG 2:CÁC KIẾN THỨC NỀN TẢNG ĐỂ XÂY DỰNG HỆ
THỐNG
2.1. Các nghiệp vụ cơ bản của hệ thống
2.1.1. Một số thuật ngữ
Check in:thủ tục để lấy chìa khóa phòng và cung cấp thẻ tín dụng để đảm bảo
việc chi trả cho quá trình ở tại khách sạn
State Profile (Profile tĩnh): Là profile chứa thông tin cá nhân của client(hay của
hotel) khi sign up
Dynamic Profile (Profile động): Là profile mang thông tin thiết lập các đặc tính
chương trình của client,và bao gồm cả thông tin chi trả.
Early Check In: Check in sớm hơn thời gian quy định
Late Check In:Check in trễ hơn thời gian quy định
2.1.2. Quy trình đăng ký của Hotel
1. Hotel đăng ký tài khoản để lưu thông tin khách sạn trên hệ thống.Tài khoản có
hiệu lực khi xác nhận qua email
2. Điền thông tin hotel.Bao gồm website,địa chỉ,tên khách sạn,chất lượng theo form
của hệ thống
3. Lưu thông tin hotel vào hệ thống
Comment [S3]: Tín làm.done!
4. Nhà quản trị sẽ xác thực lại thông tin này xem có chính xác hay không để phê
duyệt.Nếu thông tin là chấp nhận được thì qua bước 5,nếu không quay lại bước
2.
5. Khi client đăng ký phòng qua website bằng ứng dụng.Nếu hotel có dịch vụ sinh
passcode thì gửi passcode đó cho server,nếu không thì server sẽ sinh passcode
và lưu vào profile
6. Khi client đăng ký phòng tại website khách sạn bằng application thì các thông tin
đã có trong profile sẽ được điền tự động vào các form tương ứng.Sau khi hoàn
tất các bước đăng ký và submit thì thông tin đăng ký sẽ gửi tới khách sạn và
đồng thời code sẽ được server sinh ra.Code này được gửi cho khách sạn lưu và
đồng thời lưu tự động vào trong profile của client.
7. Khi client đến vị trí auto check-in đã được thiết lập trong profile thì server sẽ gửi
thông báo đến hotel thông tin của khách sắp tới kèm theo passcode,khách sạn
so trùng passcode này và chuẩn bị mẫu form và thông tin đầy đủ để client đến và
check in một cách nhanh chóng.Hoàn tất quá trình auto checkin
Đăng ký tài khoản
Thiết lập profile hotel
Lưu thông tin
Nhà quản trị
phê duyệt
Nhận thông tin đăng
ký từ client
Nhận passcode từ
server
Nhận thông báo
check in từ server
Tự sinh
passcode? Gửi passcode cho
server
Hình 1.1 Quy trình đăng ký từ hotel
2.1.3. Quy trình đăng ký và thiết lập của Client
1. Client đăng ký tài khoản để lưu thông tin khách sạn trên hệ thống.Tài khoản có
hiệu lực khi xác nhận qua email.Thông tin tài khoản lúc đăng ký sẽ gọi là profile
tĩnh
a. Bắt buộc:
i. Title
ii. First Name
iii. Middle Name
iv. LastName
v. Email
vi. Mobile
vii. Address
viii. Country
b. Option:
i. Fax
ii. Flight Detail
iii. State
iv. Postal Code
v. Company
2. Thiết lập các profile động,profile này bao gồm cách chi trả và các chế độ nhận tin
warning từ server ,auto check in hay manual.Thông tin chi trả bao gồm:
a. Type Credit Card
b. Card Holder name
c. CC Number
d. CC code
e. Expire Date
3. Đặt phòng trên web của khách sạn qua app,các thông tin trong profile sẽ được
lấy ra và điền tự động vào các form tương ứng trên website.Submit để lưu lại
4. Thiết lập các thuộc tính cho auto check-in :
a. Khoảng cách warning là đã đến gần khách sạn
b. Khoảng cách thực hiện auto check-in
Đăng ký tài khoản
Thiết lập các thuộc
tính profile động
Đặt phòng
Thiết lập các thuộc
tính cho khách sạn
Kết thúc quá trình
thiết lập
Hình 2 Quy trình đăng ký và thiết lập của client
2.1.4. Cách hoạt động của hệ thống
1. Server sử dụng thuật toán để chọn thời điểm kiểm tra vị trí user.
User Server
Hotel
1 . ask position
2 . reply
3.Match!->Set flag on
4 . Auto Checkin
2. User trả về cho server vị trí của mình mỗi khi được yêu cầu.Hệ thống GPS sẽ lấy
vị trí của user
3. Khi vị trí của user đã nằm trong vùng thiết lập của chương trình.Server kiểm tra
user có nằm trong vùng hay không qua web service check distances tính toán
khoảng cách từ tọa độ user và tọa độ hotel,và xác thực user bằng cách sinh
passcode từ những thông tin của use,sau khi hoàn tất server sẽ báo cho hotel
biết rằng khách của mình muốn chuẩn bị checkin
4. Hotel sẽ tự động làm thủ tục checkin cho user và khi user đến khách sạn thì thủ
tục checkin đã hoàn tất.Gửi thông báo check in thành công cho user.
2.2. Những công nghệ phục vụ cho chương trình
2.2.1. Apache Tomcat 6.0
Giới thiệu[1]
Apache Tomcat (hay viết tắt Tomcat,trước đây còn gọi là Jakarta
Tomcat) là một Web Server đồng thời là Servlet Container mã nguồn
mở được phát triển bởi Apache Software Foundation (ASF).Tomcat
hiện thực Java Servlet và Java ServerPages (JSP) chi tiết kĩ thuật từ
công ty Oracle ,và cung cấp một môi trường web giao thức HTTP trên
“Java thuần khiết” để chạy mã Java.Có một điều cần chú ý là không
nên nhầm lẫn Tomcat với Apache web server,là một web server giao
thức HTTP được hiện thực bằng ngôn ngữ C;2 web servers không đi
kèm với nhau ,mặc dù chúng thường xuyên được sử dụng đồng thời
như một phần của web application stack.Apache Tomcat có bao gồm
các công cụ cho việc cấu hình và quản lý,nhưng cũng có thể làm điều
đó bằng cách chỉnh sửa các tập tin XML.
Thành phần
Tomcat 6.0 hiện thực Servlet 2.5 và JSP 2.1 được đặc tả từ Java
Community Proccess bao gồm:[2]
o Catalina:Là serverlet container của Tomcat.Catalina hiện
thực theo đặc tả server và JSP của Sun Microsystem.Trong
Tomcat,1 nhân tố Realm đại diện cho 1 cơ sở dữ liệu gồm
các usernames ,passwords và roles (giống như Unix Group)
được gán cho các users.Các hiện thực khác nhau của Realm
cho phép Catalina tích hợp vào những môi trường mà việc
xác thực thông tin được tạo ra và bảo trì,và sau đó sử dụng
Comment [S4]: Để sau
thông tin này để hiện thực Container Manager Security
được đặc tả trong phần Servlet Specification
o Coyote:Là thành phần kết nối HTTP của Tomcat hỗ trợ
giao thức HTTP 1.1 cho web server và application
container.Coyote lắng nghe những kết nối đang gửi tới trên
một cổng TCP chuyên biệt của web server và chuyển các
yêu cầu cho Tomcat Engine để xử lý và trả kết quả về cho
client.
o Jasper:Là JSP Engine của Tomcat.Jasper duyệt các file
JSP để biên dịch sang code Java như servlet (các file này
được xử lý bởi Catalina).Trong môi trường runtime,Jasper
phát hiện những thay đổi của các file JSP và biên dịch
chúng lại nhiều lần nữa.Tomcat 6.0 sử dụng Jasper 2,được
hiện thực theo đặc tả JSP 2.0 của Sun Microsytem
2.2.2. Apache Axix 2.2
Giới thiệu
Apache Axix 2.2 là một Webservice Framework mã nguồn mở sử
dụng XML.Nó bao gồm các hiện thực Java và C++ của SOAP
server,chứa nhiều tính năng và APIs để tạo và cung cấp các ứng
dụng Web Service.Sử dụng Apache Axis,nhà phát triển có thể tạo
ra các ứng dụng phân tán tương thích với nhiều máy tính khác
nhau.Axis được phát triển dưới sự bảo trợ của Apache Software
Foundation
Axis trong Java
Khi sử dụng phiên bản Java của Axis ,có 2 cách để tiếp xúc với
mã Java như một Web Service.Cách dễ nhất là dùng tập tin Axis
Native JWS (Java Web Service).Một cách khác là sử dụng các
phiên bản tùy chỉnh.Cách thứ 2 cho phép bạn tùy chỉnh các tài
nguyên được sử dụng như Web Service.
JWS
Tập tin JWS bao gồm mã nguồn của các class Java được viết để
tiếp cận web service.Khác biệt chính giữa tập tin java và jws là
phần đuôi tập tin.Một sự khác nhau nữa là tập tin jws được triển
khai như một mã nguồn chứ không biên dịch như class file.
2.2.3. PhoneGap 1.7.0
Giới thiệu:
Phonegap (còn gọi là Apache Callback,nhưng bây giờ được gọi là
Apache Cordova)là một framework mã nguồn mở được phát triển
dành cho điện thoại di động sản xuât bởi Nitobi,và được mua lại
bởi Adobe System.Nó cho phép lập trình viên xây dựng ứng dụng
cho điện thoại di động bằng cách dùng Javascript,HTML5 và
CSS3 thay vì sử dụng các ngôn ngữ cấp thấp như Objective-
C.Các ứng dụng tạo ra là ứng dụng hybrid,tức là chúng không
dành riêng cho bất kì loại điện thoại hay hệ điều hành nào (tất cả
các layout được bố trí và hiện thực thông qua web view thay vì
một UI Framework tĩnh của một platform nào đó) nó cũng không
hoàn toàn dựa trên web (không chỉ là ứng dụng web ,nó có thể
được đóng gói để phân phối trên AppStore, và có thể truy xuất
đến phần giao diện lập trình ứng dụng của thiết bị)
Danh sách các OS được hỗ trợ bởi PhoneGap
2.2.4. Google API
2.2.5. PostgreSQL 9.1
PostgreSQL ,còn được gọi đơn giản là Postgres,là một hệ quản trị cơ sở
dữ liệu mô hình hướng đối tượng (ORDBMS) có thể sử dụng trên nhiều
platform bao gồm Linux,FreeBSD,Solaris,Microsoft Window và Mac
OS X.Được phát hành dưới giất phép của PostgreSQL,là giấy phép
MIT-Style,tức là hoàn toàn miễn phí và là mã nguồn mở.PostgreSQL
được phát triển bởi PostgreSQL Global Development Group, bao gồm
Comment [S5]: Bổ sung thêm cái này nha
Huy hoặc Vĩ
những tình nguyện viên làm trợ thủ đắc lực và được giám sát bởi các
công ty như Red Hat và EnterpriseDB.Nó hiện thực phần lớn dựa trên
tiêu chuẩn của SQL 2008,tuân thủ theo ACID,và hoàn toàn trong suốt
(bao gồm các câu lệnh DDL) chứa các kiểu dữ liệu ,toán tử ,phương
pháp đánh chỉ mục,hàm,ngôn ngữ thủ tục mở rộng và một số lượng rất
lớn các mở rộng được viết bởi third party.
Đa số các bản Linux đều có PostgreSQL sẵn trong các gói cung cấp
được phân phối,bắt đầu từ Lion,sử dụng PostgreSQL server như là một
tiêu chuẩn cho cơ sở dữ liệu mặc định của nó trong các phiên bản
server,và kèm các công cụ PostgreSQL client cho các phiên bản
desktop.
3. CHƯƠNG 3:PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.1. Phân tích các yêu cầu bên phía user
3.1.1. Đăng ký tài khoản
- Mô tả: người dùng tải ứng dụng về và phải đăng ký tài khoản để sử
dụng hệ thống.
- Qui trình:
o Người dùng có thể đăng ký trên website của ứng dụng
o Hệ thống sẽ hiện thị một bảng nhập dữ liệu gồm:
Title
First name
Last name
Email
Mobile number
Address
Credit card type
Credit card number
- Điều kiện: tài khoản do người dùng tạo chưa được tạo ra trước đó.
- Kết quả: hệ thống sẽ xuất thông báo đăng ký tài khoản thành công.
3.1.2. Đăng nhập vào hệ thống
- Mô tả: người dùng muốn đăng nhập vào hệ thống để tiến hành việc
kiểm tra vào khách sạn, thay đổi thông tin cá nhân.
- Qui trình:
o Tại giao diện chính của ứng dụng nhập Username và
Password.
Comment [S6]: Huy làm:Nói sơ lược về các
trang web và chức năng dành cho user .Vd
Đăng ký:user phải nhập gì ,cần nhập gì,thông
tin nhập vào có ý nghĩa gì.Deadline :
26/05/2012
o Nhấp chuột vào nút Submit.
- Điều kiện: người dùng chưa đăng nhập vào hệ thống và nhập đúng
Username và Password.
- Kết quả: nếu đăng nhập thành công thì ứng dụng sẽ tự động tiến
hành qui trình kiểm tra, ngược lại sẽ thông báo lỗi và hiện lại trang
đăng nhập cho người dùng.
3.1.3. Đăng xuất khỏi hệ thống
- Mô tả: người dùng muốn đăng xuất khỏi hệ thống.
- Qui trình: ở màn hình chờ của ứng dụng, người dùng nhấp chuột vào
nút Đăng xuất.
- Điều kiện: người dùng đang ở trạng thái đăng nhập hệ thống.
- Kết quả: hệ thống quay về giao diện chính của ứng dụng.
3.1.4. Kiểm tra thông tin
- Mô tả: người dùng muốn xem thông tin cá nhân như First name, Last
name, Email, Mobile number ….
- Qui trình:
o Người dùng đăng nhập vào hệ thống với Username và
Password.
o Nhấp chuột vào Thông tin cá nhân.
- Điều kiện: người dùng đăng nhập vào hệ thống thành công.
- Kết quả: hệ thống sẽ hiển thị bảng thông tin của người dùng.
3.2. Phân tích các yêu cầu từ hotel
3.2.1. Đăng ký tài khoản
- Mô tả: khách sạn tải ứng dụng và đăng ký tài khoản.
- Qui trình:
o Khách sạn có thể vào website ứng dụng để tiến hành đăng ký
dành cho khách sạn.
o Hệ thống sẽ hiển thị bảng nhập dữ liệu dành cho khách sạn
gồm:
Tên khách sạn
Email
Address
Phone number
- Điều kiện: tài khoản khách sạn đăng ký không được đăng ký trước
đó.
Comment [S7]: Huy làm:tương tự 2 phần kia.
Deadline : 26/05/2012
- Kết quả: hệ thống sẽ xuất thông báo đăng ký thành công.
3.2.2. Đăng nhập hệ thống
- Mô tả: khách sạn muốn đăng nhập hệ thống để quan sát quá trình
kiểm tra vào khách sạn của hệ thống, thay đổi thông tin cá nhân của
khách sạn.
- Qui trình:
o Nhân viên khách sạn nhập Username và Password tương ứng.
o Nhấp chuột vào nút Submit.
- Điều kiện: tài khoản của khách sạn chưa đăng nhập vào hệ thống và
nhập đúng Username và Password.
- Kết quả: nếu đăng nhập thành công hệ thống sẽ chuyển tới giao diện
quản lý quá trình kiểm tra vào khách sạn của khách sạn đó, ngược lại
sẽ thông báo lỗi và hiển thị lại giao diện đăng nhập.
3.2.3. Đăng xuất hệ thống
- Mô tả: khách sạn muốn đăng xuất khỏi hệ thống.
- Qui trình: nhân viên khách sạn nhấp chuột vào nút Đăng xuất.
- Điều kiện: tài khoản khách sạn đang ở trạng thái Đăng nhập.
- Kết quả: hệ thống trả về giao diện chính của ứng dụng.
3.2.4. Quản lý thông tin kiểm tra vào khách sạn của người dùng
- Mô tả: khách sạn muốn xem thông tin người dùng đã kiểm tra vào
thành công.
- Qui trình: sau khi đăng nhập thành công, hệ thống sẽ tự động hiển thị
giao diện quản lý người dùng đã kiểm tra vào thành công cho khách
sạn.
- Điều kiện: khách sạn đã đăng nhập thành công.
- Kết quả: hiển thị thông tin Last name, First name, Email, Mobile
number… của người dùng đã kiểm tra vào khách sạn thành công.
3.2.5. Kiểm tra thông tin
- Mô tả: khách sạn muốn xem thông tin cá nhân của khách sạn.
- Qui trình: nhấp chuột vào nút Thông tin cá nhân.
- Điều kiện: tài khoản khách sạn ở trạng thái đăng nhập.
- Kết quả: hiển thị toàn bộ thông tin cá nhân của khách sạn đó.
3.3. Phân tích các yêu cầu từ nhà quản trị hệ thống
3.3.1. Đăng nhập hệ thống
Comment [S8]: Huy làm:Nói sơ lược về các
trang web và chức năng dành cho admin .Thêm
hotel. Deadline : 26/05/2012
- Mô tả: Admin muốn đăng nhập hệ thống để quản lý thông tin của
khách sạn, người dùng, phân quyền admin.
- Qui trình:
o Admin nhập Username và Password tương ứng.
o Nhấp chuột vào nút Submit.
- Điều kiện: tài khoản của admin chưa đăng nhập vào hệ thống và
nhập đúng Username và Password.
- Kết quả: nếu đăng nhập thành công hệ thống sẽ chuyển tới giao diện
quản lý, ngược lại sẽ thông báo lỗi và hiển thị lại giao diện đăng
nhập.
3.3.2. Đăng xuất hệ thống
- Mô tả: Admin muốn đăng xuất khỏi hệ thống.
- Qui trình: Admin nhấp chuột vào nút Đăng xuất.
- Điều kiện: tài khoản admin đang ở trạng thái Đăng nhập.
- Kết quả: hệ thống trả về giao diện chính của ứng dụng.
3.3.3. Quản lý các thông tin cơ bản của hệ thống
- Mô tả: Admin muốn quản lý các thông tin cấu hình, phân quyền
admin của hệ thống.
- Qui trình: Admin nhấp chuốt vào Tab Quản lý thông tin Admin để
tiến hành quản lý.
3.3.3.1. Chỉnh sửa thông tin nhân viên
- Qui trình:
o Các nút Edit, Remove để sửa hoặc xóa các thông tin của nhân
viên khác.
o Sau khi hoàn thành nhấn nút Submit.
- Điều kiện: tài khoản admin ở trạng thái đăng nhập
- Kết quả: hiển thị lại bảng thông tin quản lý admin với tài khoản nhân
viên mới được chỉnh sửa.
3.3.3.2. Tạo tài khoản nhân viên mới
- Qui trình:
o Nút Create để tạo nhân viên mới.
o Nhập các thông tin cần thiết của nhân viên như Last name,
First name, Mobile number, Day of birth, Address, Email.
o Nhấn nút Submit để hoàn thành thao tác.
- Điều kiện: tài khoản admin ở trạng thái đăng nhập
- Kết quả: hiển thị bảng thông tin quản lý admin với tài khoản nhân
viên mới được tạo.
3.3.4. Quản lý danh sách các user
- Mô tả: Admin muốn quản lý các thông tin cá nhân của user.
- Qui trình:
o Admin nhấp chuốt vào Tab Quản lý thông tin User để tiến
hành quản lý.
o Thao tác Remove để xóa thông tin tài khoản của user tương
ứng.
- Điều kiện: tài khoản admin ở trạng thái đăng nhập
- Kết quả: hiển thị bảng thông tin quản lý user.
3.3.5. Quản lý danh sách các hotel
- Mô tả: Admin muốn quản lý các thông tin cá nhân của khách sạn.
- Qui trình:
o Admin nhấp chuốt vào Tab Quản lý thông tin Khách sạn để
tiến hành quản lý.
o Thao tác Remove để xóa thông tin tài khoản của khách sạn
tương ứng.
- Điều kiện: tài khoản admin ở trạng thái đăng nhập
- Kết quả: hiển thị bảng thông tin quản lý khách sạn.
3.4. Đặc tả use case của hệ thống
3.4.1. Use case Login
1. Mô tả: Đây là use case đăng nhập tài khoản để sử dụng hệ thống
2. Tác nhân: Admin, hotel, user
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân chọn đăng nhập hệ thống.hệ thống hiển thị
giao diện để đăng nhập
Tác nhân nhập username và password và chọn Login
Hệ thống kiểm tra các dự liệu nhập username và
password. Nếu dữ liệu nhập là hợp lệ thì hệ thống
thông báo tác nhân đã đăng nhập thành công
Kết thúc use case login
Ngoại lệ
Comment [S9]: Vĩ điền 3.3 .Deadline
26/05/2012
Tác nhân nhập sai hoặc thiếu thông tin username hoặc
password
Hiển thị thông báo tác nhân đăng nhập không thành
công
Kết thúc use case login
3.4.2. Use case Sign up
1. Mô tả: đây là use case đăng kí tài khoản để sử dụng hệ thống
2. Tác nhân: Admin, hotel,user
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân chọn Sign up, hệ thống hiện thị giao diện
đăng kí tài khoản
Tác nhân nhập các thông tin theo yêu cầu của hệ
thống và chọn Sign Up
Hệ thống kiểm tra các thông tin đã nhập của tác
nhân. Nếu các dự liệu trên phù hợp và đầy đủ thì hệ
thống hiển thị thông báo đăng kí thành công và lưu
tác nhân mới này vào cơ sở dữ liệu phù hợp
Kết thúc use case Sign Up
Ngoại lệ
Tác nhân nhập thiếu thông tin hoặc thông tin không
phù hợp với yêu cầu của hệ thống
Hệ thống thông báo lỗi và yêu cầu tác nhân nhập lại
Kết thúc use case Sign up
3.4.3. Use case Manage Profile
1. Mô tả: Đây là use case quản lý thông tin cá nhân của từng tác
nhân
2. Tác nhân: Admin, hotel,user
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân chọn quản lý thông tin cá nhân và hệ thống
hiện thị ra thông tin của tác nhân
Tác nhân có thể thêm, xóa hoặc chỉnh sửa thông tin
của mình
Hệ thống lưu lại thông tin sau khi thay đổi
Kết thúc use case Manage Profile
Ngoại lệ
Tác nhân thay đổi thông tin không phù hợp với yêu
cầu của hệ thống
Hệ thống thông báo lỗi và không lưu thông tin mới
Kết thúc use case Manage Profile
3.4.4. Use case Auto Check-In
1. Mô tả: Đây là use case quang trọng nhất của hệ thống thực hiện
việc auto check-in
2. Tác nhân:Admin, hotel
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân kiểm tra các tiền điều kiện của việc check
in: kiểm tra user đi vào phạm vi check-in của hotel
chưa, xác thực người dùng
Nếu các tiền điều kiện đã phù hợp thì tác nhận thực
hiện việc check-in
Kết thúc use case Auto Check-in
Ngoại lệ
Tác nhân kiểm tra tiền điều kiện không phù hợp
Hệ thống không thể thực hiện check-in
Kết thúc use case Auto Check-in
3.4.5. Use case Manage Account
1. Mô tả: Đây là use case thực hiện việc quản lý các account của hệ
thống
2. Tác nhân: Admin
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân chọn quản lý các account. Hệ thống hiển
thị giao diện quản lý account
Tác nhân có thể thêm, xóa, thay đổi username hay
password của các account
Hệ thống lưu lại thông tin sau khi thay đổi
Kết thúc use case Manage Account
Ngoại lệ
Hệ thống không kết nối với cơ sở dữ liệu được
Hiện thông báo lỗi
Kết thúc use case Manage Account
3.4.6. Use case Add Profile
1. Mô tả: Đây là use case thêm thông tin cá nhân
2. Tác nhân:Admin, hotel, user
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân chọn add profile, hệ thống hiển thị ra tất cả
các thông tin của tác nhân
Tác nhân điền thông tin của mình vào những mục
còn trống
Hệ thống kiểm tra tính phù hợp. Nếu các thông tin
trên phù hợp thì lưu thông tin lại
Kết thúc use case add profile
Ngoại lệ
Hệ thống kết nối cơ sở dữ liệu không thành công,
hoặc các thông tin tác nhân điền không phù hợp
Hiển thị thông báo lỗi
Kết thúc use case Add Profile
3.4.7. Use case Delete Profile
1. Mô tả: Đây là use xóa các thông tin cá nhân
2. Tác nhân: Admin, hotel, user
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân chọn xóa thông tin cá nhân, hệ thống hiện
thị các thông tin đang có của tác nhân
Tác nhân xóa các thông tin cho phép xóa
Hệ thống lưu lại thông tin sau thay đổi
Kết thúc use case delete Profile
Ngoại lệ
Tác nhân xóa các thông tin không cho phép
Hoặc kết nối cơ sở dữ liệu không thành công
Hiển thị thông báo lỗi
Kết thúc use case delete profile
3.4.8. Use case Update Profile
1. Mô tả: Đây là use case chỉnh sửa lại thông tin cá nhân
2. Tác nhân: admin, hotel, user
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân chọn chỉnh sửa lại thông tin,hiện thị các
thông tin cá nhân của tác nhân
Tác nhân chọn các thông tin cần chỉnh sửa lại, nếu
các thông tin này phù hợp, hệ thống sẽ lưu lại các
thông tin trên
Kết thúc use case update profile
Ngoại lệ
Tác nhân thay đổi thông tin không phù hợp
Hoặc, Hệ thống kết nối cơ sở dữ liệu không thành
công
Hiển thị thông báo lỗi
Kết thúc use case update profile
3.4.9. Use case Create Account
1. Mô tả: đây là use case tạo tài khoản mới cho hệ thống
2. Tác nhân: Admin
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân chọn Create Account
Tác nhân nhập thông tin của account mới tạo
Nếu các thông tin mới tạo đều phù hợp thì hệ thống
sẽ tạo ra một account mới
Kết thúc use case create account
Ngoại lệ
Tác nhân nhập thông tin không phù hợp
Hoặc, Hệ thống kết nối cơ sở dữ liệu không thành
công
Hiện thị thông báo lỗi
Kết thúc use case create account
3.4.10. Use case Edit Account
1. Mô tả: Đây là use case thay đổi tài khoản của hệ thống
2. Tác nhân: admin
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân chọn Edit Account
Hệ thông hiện thị danh sách các account hiện đang
có của hệ thống
Tác nhân chọn account cần thay đổi
Tác nhân thay đổi các thông tin mà mình vừa chọn
Nêu các thông tin phù hợp thì hệ thống lưu thông tin
sau khi thay đổi
Kết thúc use case edit account
Ngoại lệ
Tác nhân thay đổi thông tin không phù hợp
Hoặc, Hệ thống kết nối cơ sở dữ liệu không thành
công
Hiển thị thông báo lỗi
Kết thúc use case edit account
3.4.11. Use case Remove Account
1. Mô tả: Đây là use case xóa account của hệ thống
2. Tác nhân: Admin
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân chọn Remove account
Hệ thống hiển thị danh sách các account đang có của
hệ thống
Tác nhân chọn account muốn xóa
Hệ thống xóa account khỏi danh sách
Kết thúc use case remove account
Ngoại lệ
Hệ thống kết nối cơ sở dữ liệu không thành công
Hiển thị thông báo lỗi
Kết thúc use case remove account
3.4.12. Use case Check Position
1. Mô tả: Đây là use case kiểm tra user có vào phạm vi check-in của
hotel hay chưa
2. Tác nhân: Admin
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân tính khoảng cách của user và hotel
Lấy bán kính của hotel
So sánh khoảng cách này với bán kính check-in của
hotel
Nếu khoảng cách nhỏ hơn bán kính check-in của
hotel, thì thông báo cho hệ thống có thể check-in
được
Kết thúc use case Check position
Ngoại lệ
Xảy ra sai số khi tính toán, hiện tượng tràn số, hoặc
kết nối không thành công với cơ sở dữ liệu
Hiển thị thông báo lỗi
Kết thúc use case check position
3.4.13. Use case Identify User
1. Mô tả: Đây là use case xác thực người dùng
2. Tác nhân: Admin
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân yêu cầu user nhập passcode
So sánh passcode nhập với passcode ban đầu được
tạo ra
Nếu trung thì thông báo người dùng được xác thực
Kết thúc use case Identify User
Ngoại lệ
Passcode so sánh không trùng
Hiển thị thông báo sai passcode
Kết thúc use case Identify User
3.4.14. Use case Check in
1. Mô tả: Đây là use case thực hiện việc check in
2. Tác nhân: Hotel
3. Các luồng sự kiện
Các luồng sự kiện chính
Tác nhân nhận thông báo check in từ server
Truyền thông báo check in cho user
Kết thúc use check in
Ngoại lệ
Không kết nối được với user
Hoặc, kết nối với cơ sở dữ liệu không thành công
Hiển thị thông báo lỗi
Kết thúc use case check in
3.5. Thiết kế use case của hệ thống
3.5.1. Lược đồ use case tổng quát
3.5.2. Lược đồ use case chi tiết
Admin
Manage Account
Hotel
Auto Check-in
User
Manage Profile
Login
Sign up
>
>
>
Comment [S10]: Vĩ điền 3.3 .Deadline
28/05/2012
3.6. Xây dựng lược đồ tuần tự
3.7. Lược đồ quan hệ ERD của hệ thống
Admin
Manage Account
Hotel
Auto Check-in
User
Manage Profile
Create Account Edit Account
Remove Account
Identify User
Check Position
Check-in
Update Profile Delete Profile
Add Profile
>
>
>
>
>
>
>
>
>
Comment [S11]: Vĩ điền 3.3 .Deadline
30/05/2012
Comment [S12]: Tín điền 3.6 – 3.7.Deadline
30/05/2012
Figure 1 Mô hình ERD
Mô hình ERD của hệ thống bao gồm :
1) Thực thể User : đại diện cho ngừoi sử dụng hệ thống
2) Thực thể Hotel : Đại diện cho các khách sạn có trên hệ thống
3) Quan hệ thực thể yếu Has Status :Lưu thông tin trạng thái tương ứng giữa User và Hotel
3.8. Thiết kế cơ sở dữ liệu của hệ thống
Hệ thống cần lưu những thông tin sau trong cơ sở dữ liệu:
a) Thông tin người dùng (User):Chứa các thông tin của người sử dụng hệ thống (bao gồm cả hotel
nếu hotel tham gia vào hệ thống).Thông tin này bao gồm các thông tin tĩnh (duy nhất và ít thay
đổi) và thông tin động(thường xuyên thay đổi và có nhiều giá trị ):
Thông tin tĩnh gồm có:
o Số ID (uid)
o Mật khẩu đăng nhập (password)
o Danh hiệu (title)
o Tên (fname)
o Họ (lname)
o Số điện thoại (Mobile)
o Thư điện tử (email)
o Địa chỉ (Address)
o Quốc tịch (Country)
Figure 2 Bảng SUProfile
Thông tin động gồm có:
o Số ID riêng (duid)
o Mã check in vào khách sạn (passcode)
o Vị trí hiện tại (pos)
o Kiểu thẻ thanh toán (cctype)
o Tên thẻ thanh toán (ccname)
o Số thẻ thanh toán (ccnum)
o Hạn của thẻ thanh toán (ccdate)
Figure 3 Bảng DUProfile
b) Thông tin khách sạn lưu trên server (Hotel) :Chứ một vài thông tin để tham chiếu đến khách sạn
tương ứng:
Số id của khách sạn (hid)
Tên khách sạn (name)
Địa chỉ (address)
Cấp độ (star)
Vị trí khách sạn (pos)
Bán kính auto checkin (radius)
Figure 4 Bảng HProfile
c) Bảng lưu các trạng thái của user so với từng khách sạn được cập nhật liên tục:
Số id của trạng thái (sid)
Vị trí tại thời điểm t của User (ucoord)
Trạng thái check in (status)
Figure 5 Bảng Status
4. CHƯƠNG 4:ĐỀ XUẤT KIẾN TRÚC VÀ HIỆN THỰC HỆ THỐNG
4.1. Kiến trúc tổng quan
Business Tier
Manage Account Manage Profile Auto Check-in
Edit Add
Update
Check Position
Identify Remove
Delete Check-in
Database Tier
Presentation
User Hotel Admin
Comment [S13]: Huy làm:kiến trúc mấy
tầng,tầng nào làm gì.Deadline:28/05/2012
Comment [S14]: Huy làm:kiến trúc mấy
tầng,tầng nào làm gì.Deadline:28/05/2012
Gồm 3 tầng:
i. Tầng giới thiệu: Cung cấp giao diện để người dùng có thể tương tác
với hệ thống.
Đối với người sử dụng: tầng giới thiệu cho phép người dùng quan
sát quá trình kiểm tra vào khách sạn của hệ thống, cũng như thông
tin tài khoản và quản lý tài khoản cá nhân của người dùng đó.
Đối với khách sạn: cung cấp cho khách sạn thông tin những người
đặt phòng đã được kiểm tra vào khách sạn thành công, thông tin
tài khoản của chính khách sạn đó.
Đối với nhân viên quản lý hệ thống: cho phép họ có chức năng
quản lý người dùng cũng như các khách sạn và nhân viên khác,
xem thông tin quá trình kiểm tra vào khách sạn.
ii. Tầng xử lý: giải quyết các yêu cầu của người dùng từ tầng giới thiệu.
Tầng xử lý tiến hành kiểm tra yêu cầu và thực hiện bằng cách truy
vấn tới cơ sở dữ liệu tương ứng với yêu cầu. Ví dụ: người dùng thay
đổi thông tin tài khoản như thay mật khẩu thì tầng xử lý sẽ tiến hành
kiểm tra và xác nhận đúng tài khoản rồi tiến hành thay đổi mật khẩu
và lưu vào cơ sở dữ liệu.
iii. Tầng cơ sở dữ liệu: là nơi chứa toàn bộ cơ sở dữ liệu của hệ thống,
được truy xuất từ tầng xử lý. Ngoài ra, tầng này còn liên kết với các
nhà cung cấp dịch vụ bên ngoài (Location provider và Content
provider) để lấy dữ liệu về xử lý. Ví dụ: khi hệ thống muốn kiểm tra
tọa độ của người dùng để tiến hành qui trình xử lý thì cơ sở dữ liệu sẽ
liên kết tới Content Provider là Google maps để tải dữ liệu về thực
hiện việc tính toán.
4.2. Các chức năng hiện thực
Các chức năng của chương trình được thực hiện thông qua các Web Service
gồm các chức năng thêm, sửa, xóa đối tượng dữ liệu trong hệ thống.
4.2.1. Chức năng chính:
4.2.1.1. Thêm mới dữ liệu: dành cho nhân viên quản lý hệ thống để tạo
mới một đối tượng và lưu vào bảng tương ứng với đối tượng đó.
Kết quả trả về thường là một giá trị bool (true, false).
Comment [S15]: Huy làm :Các chức năng bên
phía user,hotel và server(viết tổng quát vì có
thể trùng phần yêu cầu phía user phần
3.1.Deadline:28/05/2012
4.2.1.2. Sửa dữ liệu: các Web service sẽ nhận những yêu cầu sửa dữ
liệu từ các lời gọi với tham số truyền vào tương ứng với dữ liệu
muốn sửa
4.2.1.3. Xóa dữ liệu: tham số được truyền vào các Web service thông
qua các lời gọi yêu cầu dịch vụ xóa một đối tượng dữ liệu tương
ứng. Dịch vụ sẽ kiểm tra tham số truyền vào với đối tượng được
lưu trong cơ sở dữ liệu và tiến hành xóa đối tượng đó ra khỏi hệ
thống.
4.2.2. Chức năng kiểm tra vào khách sạn:
Là thành phần cơ bản và quan trọng nhất trong hệ thống. Chức năng
kiểm tra vào có nhiệm vụ kiểm tra vị trí người dùng có thỏa điều kiện
phạm vi mà khách sạn đưa ra không, sau đó sẽ tiến hành xác thực người
dùng với thông tin đăng ký của khách sạn. Nếu thành công, hệ thống sẽ
gửi thông báo đến khách sạn và khách sạn sẽ gửi xác nhận đã kiểm tra
tới người dùng.
Hiện thực:
Lấy tọa độ user: Server gởi thông báo yêu cầu user cung cấp vị trí
cho server. Sau đó User gởi tọa độ của mình cho server xử lý
o Input: UserID
o Output: PositionUser
o Các bước thực hiện:
Server gởi yêu cầu lấy tọa độ đến user. Server không
gởi yêu cầu liên tục mà xác định khoảng thời gian cụ
thể để gởi yêu cầu này.
User gởi lại tọa độ của mình cho server: Khi nhận yêu
cầu từ server, user sử dụng GPS để lấy tọa độ hiện tại
của mình (tọa độ ở dạng lat/long) gởi lại cho server
Server lưu lại tọa độ vào cơ sở dự liệu để thực hiện tính
toán
Khoảng thời gian để server yêu cầu user gởi tọa độ cho
mình được xác định bằng khoảng cách ngắn nhất mà
user đi tới phạm vi của hotel chia cho vận tốc của user.
Để bài toán đơn giản,ở đây vận tốc được giả sử không
đổi
Khoảng thời gian t = khoảng cách ngắn nhất / vận tốc
Comment [T16]: Vĩ làm ph n này nhé, mô t
ch c năng này đ c hi n th c th nào ( b t đ u th
nào, nh n input j, output ra sao), ghi chi ti t t ng
b c nha. Deadline th 5 nha mày
Cứ sau một khoảng thời gian t thì server mới yêu cầu
user gởi tọa độ
Kiểm tra tiền điều kiện check-in: Hệ thống kiểm tra user đã vào
phạm vi của hotel chưa, và kiểm tra tính xác thực của user
o Kiểm tra user vào phạm vi hotel hay chưa
Input: PositionUser,PositionHotel,RadiousHotel
Output: true/false
Các bước thực hiện:
Tính khoảng cách của Hotel và User
Để tính được khoảng cách của hotel và user trên thực
tế từ tọa độ lat/long. Ta phải đổi tọa độ lat/long này
sang UTM( Universal Transverse Mercator). Ta sự
dụng công thức dưới đây:
Các ký hiệu:
lat : vĩ độ
long: kinh độ
long0: kinh tuyến trung tâm của khu vực
k0:tỉ lệ theo long0 = 0.9996
e = SQRT(1-b2/a2) = 0.08: độ lệch tâm của mặt cắt
ngang trái đất
e’2 = (ea/b)2 = e2/(1-e2) = 0.07
n = (a-b)/(a+b)
rho = a(1-e2)/(1-e2sin2(lat))3/2: bán kính đ cong c a trái đ t trong m t ph ng kinh tuy n nu = a/(1-e2sin2(lat))1/2: bán kính đ cong c a
trái đ t vuông góc v i m t ph ng kinh tuy n p = (long-long0)
Tính toán S = A'lat - B'sin(2lat) + C'sin(4lat) - D'sin(6lat) + E'sin(8lat) A' = a[1 - n + (5/4)(n2 - n3) + (81/64)(n4 - n5) ...]
B' = (3 tanS/2)[1 - n + (7/8)(n2 - n3) + (55/64)(n4 - n5) ...] C' = (15 tan2S/16)[1 - n + (3/4)(n2 - n3) ...] D' = (35 tan3S/48)[1 - n + (11/16)(n2 - n3) ...] E' = (315 tan4S/512)[1 - n ...]
Kết quả
Y = northing = K1 + K2p2 + K3p4 v i K1 = Sk0, K2 = k0 nu sin(lat)cos(lat)/2 = k0 nu sin(2 lat)/4 K3 = [k0 nu sin(lat)cos3(lat)/24][(5 - tan2(lat) + 9e'2cos2(lat) + 4e'4cos4(lat)]
X = easting = K4p + K5p3 v i K4 = k0 nu cos(lat) K5 = (k0 nu cos3(lat)/6)[1 - tan2(lat) + e'2cos2(lat)]
Nguồn:
So sánh khoảng cách này với bán kính phạm vi hotel
Trả về true nếu khoảng cách nhỏ hơn hoặc bằng bán
kính phạm vi hotel, ngược lại trả về false
o Xác thực người dùng
Input: PasscodeUser
Output: true/false
Các bước thực hiện:
Server yêu cầu User nhập passcode của mình để
kiểm tra
User nhập passcode
Server so trùng passcode được tạo ra trước đó và
passcode user nhập
Trả về true nếu so trùng thành cồng,ngược lại trả về
false
Gởi thông điệp user muốn check-in: Hệ thống sẽ thông báo cho
hotel khi user thoải điều kiên check –in
o Input: HotelID
o Output: UserID
o Các bước thực hiện
Server nhận ID của hotel
Kiểm tra tất cả các khách hàng(user) của hotel này xem
có ai check in được
Trả về UserID nếu có user này check in được,ngược lại
trả về -1
Check-in: Hotel sẽ thực hiện việc check-in tự động và thông báo
cho user việc check-in đã được thực hiện
o Input: UserID
o Output: Gởi gởi báo check in
o Các bước thực hiện:
Hotel nhận thông báo từ server có user được quyền
check in, và nhận được ID của user đó
Thực hiện check in, bằng cách update vào cơ sở dữ liệu
user này đã được check in
Gởi thông báo check in thành công cho user này
Trước tiên, hệ thống sẽ tự động gửi thông báo yêu cầu
tọa độ của người dùng. Người dùng sẽ gửi trở lại tọa độ
của mình để hệ thống xử lý.
Sau đó, hệ thống sẽ kiểm tra khoảng cách của người
dùng đối với khách sạn đã thỏa điều kiện của khách sạn.
Nếu điều kiện phạm vi thỏa thì hệ thống sẽ gửi thông tin
của người dùng đã kiểm tra thành công tới khách sạn.
Cuối cùng khách sạn sẽ thông báo xác nhận tới người
dùng và kết thúc quá trình tự động kiểm tra vào khách
sạn.
5. CHƯƠNG 5:TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN
5.1. Tổng kết
5.2. Hướng phát triển luận văn
References:
[1].
[2].
[3].
[4].
[5].
Các file đính kèm theo tài liệu này:
- bao_cao_thuc_tap_tot_nghiep_v1_2_1843.pdf