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í

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

pdf51 trang | Chia sẻ: lylyngoc | Lượt xem: 2476 | Lượt tải: 0download
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 phn này nhé, mô t chc năng này đc hin thc th nào ( bt đu th nào, nhn input j, output ra sao), ghi chi tit tng bc 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 ca trái đt trong mt phng kinh tuyn nu = a/(1-e2sin2(lat))1/2: bán kính đ cong ca trái đt vuông góc vi mt phng kinh tuyn 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 vi 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 vi 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:

  • pdfbao_cao_thuc_tap_tot_nghiep_v1_2_1843.pdf