Mục tiêu chính của luận văn là nghiên cứu và xây dựng ứng dụng giám sát hành trình trên điện thoại di động. Để thực hiện mục tiêu này, đầu tiên cần phân tích và đánh giá sự phát triển của điện thoại di động và thị trường điện thoại di động hiện nay, từ đó đánh giá môi trường phát triển ứng dụng trên hai nền tảng phổ biến hiện nay là Android và iOS, so sánh để có thể lựa chọn nền tảng phát triển phù hợp nhất.
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ HOÀNG THU TRANG NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG GIÁM SÁT HÀNH TRÌNH TRÊN ĐIỆN THOẠI DI ĐỘNG Ngành: Công nghệ thông tin Chuyên ngành: Hệ thống thơng tin Mã số: 62.48.01.04 TĨM TẮT LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN Hà Nội – 2017 MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG I: GIỚI THIỆU Nghiên cứu trạng ứng dụng Mục đích phạm vi nghiên cứu CHƯƠNG II: NGHIÊN CỨU GIẢI PHÁP CÔNG NGHỆ 2.1 Lựa chọn tảng hệ điều hành 2.2 Các giải pháp kỹ thuật sử dụng phía máy chủ Xây dựng máy chủ tảng Node.js Hệ quản trị sở liệu PostgreSQL CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG Phân tích yêu cầu Yêu cầu chức ứng dụng Thiết kế hệ thống 10 Thiết kế kiến trúc 10 Biểu đồ Use Case 11 Thiết kế sở liệu 17 CHƯƠNG IV: CÀI ĐẶT HỆ THỐNG VÀ KẾT QUẢ ĐẠT ĐƯỢC 19 Quy trình xây dựng 19 Thử nghiệm 19 Đánh giá kết thử nghiệm 24 KẾT LUẬN 25 LỜI MỞ ĐẦU Trong năm gần đây, thiết bị di động thơng minh có tăng trưởng phát triển mạnh mẽ với đời liên tục loạt máy tính bảng đại, điện thoại thơng minh có tính cạnh tranh cao, thị trường xây dựng ứng dụng thiết bị trở nên vô màu mỡ Hai gian hàng ứng dụng phổ biến App Store (hệ điều hành iOS) Google Play (hệ điều hành Android) Tại Việt Nam năm gần có tăng trưởng nhanh chóng rõ rệt lĩnh vực thiết bị di động thông minh, đứng thứ hạng cao khu vực Thái Bình Dương Với tăng trưởng phát triển mạnh mẽ vậy, thấy lĩnh vực phát triển ứng dụng di động lĩnh vực tiềm Do thiết bị di động nên chúng có đặc trưng nhỏ gọn, người dùng dễ dàng mang theo bên Với đặc tính này, thiết bị di động thơng minh phần lớn tích hợp GPS để xác định vị trí người dùng Dựa vào phát triển phổ biến công nghệ này, nhiều ứng dụng tiện ích đời theo nhu cầu người dùng Người dùng xác định vị trí lúc nơi, dựa vào xác định vị trí tương ứng đồ Những ứng dụng GIS thiết bị di động mà trở nên khả thi, mang lại nhiều lợi ích cho người dùng Với phát triển đó, việc nghiên cứu xây dựng ứng dụng giám sát hành trình thiết bị di động trở thành ứng dụng thiết thực CHƯƠNG I: GIỚI THIỆU Nghiên cứu trạng ứng dụng Khái niệm “Giám sát hành trình” việc chia sẻ, giám sát vị trí người dùng theo thời gian thực Với chức chia sẻ vị trí giám sát hành trình, có số ứng dụng tiếng phát triển Find My Friends, Life360, hay Glympse,… Mỗi ứng dụng lại xây dựng với ưu nhược điểm riêng Các ứng dụng sử dụng phổ biến, phục vụ nhiều đối tượng người dùng khác thành viên gia đình, nhóm bạn bè,… Đối với ứng dụng giám sát hành trình, ngồi chức chia sẻ vị trí người dùng/nhóm người dùng, ứng dụng cần có chức tiện ích phù hợp yêu cầu người dùng như: thiết lập địa điểm đến cho nhóm, đường đến điểm đến thiết lập hỗ trợ tải hình ảnh gắn lên đồ theo vị trí Ứng dụng Find My Friends [8]: ứng dụng phát triển Apple, với chức chia sẻ vị trí Ứng dụng sử dụng số điện thoại AppleID để tìm bạn bè người thân chia sẻ vị trí với đối tượng này, người dùng tùy chọn ẩn/hiện vị trí muốn Tuy nhiên, nhược điểm ứng dụng dừng lại với chức chia sẻ thông tin vị trí với người dùng khác mà khơng tích hợp nhiều chức tiện ích khác để hỗ trợ người dùng sử dụng Ứng dụng Glympse [9]: Ứng dụng ngồi việc chia sẻ thơng tin vị trí người dùng có thêm chức tạo nhóm bạn bè Ứng dụng Life360 [10]: Đây ứng dụng phát triển với nhiều chức tích hợp cho người dùng chia sẻ thơng tin vị trí với nhóm đối tượng riêng, hỗ trợ chat nhóm, thiết lập địa điểm đến,…Nhược điểm ứng dụng chưa hỗ trợ tiếng Việt nên nhóm người dùng trẻ em sử dụng gặp nhiều khó khăn Bên cạnh đó, mục đích giám sát hành trình việc đính kèm tập tin ảnh lên đồ theo lộ trình thời gian thực để chia sẻ nhu cầu cần thiết, nhiên chức chưa ứng dụng khác hỗ trợ Với trạng ứng dụng di động chia sẻ vị trí phổ biến phân tích, thấy nhiều tính tiện ích hỗ trợ việc giám sát hành trình cịn chưa khai thác hết Việc xây dựng ứng dụng giám sát hành trình điện thoại di động hướng đến nhiều đối tượng người dùng khác nhau, bổ sung số chức cần thiết để hỗ trợ người dùng đáp ứng đầy đủ so với ứng dụng có Mục đích phạm vi nghiên cứu Mục tiêu luận văn nghiên cứu xây dựng ứng dụng giám sát hành trình điện thoại di động Để thực mục tiêu này, cần phân tích đánh giá phát triển điện thoại di động thị trường điện thoại di động nay, từ đánh giá mơi trường phát triển ứng dụng hai tảng phổ biến Android iOS, so sánh để lựa chọn tảng phát triển phù hợp Tiếp theo, luận văn nghiên cứu giải pháp công nghệ phục vụ việc xây dựng ứng dụng (công nghệ phát triển ứng dụng iOS, máy chủ Node.JS, hệ quản trị CSDL PostgreSQL) Cuối thiết kế xây dựng ứng dụng thực nghiệm giám sát hành trình thiết bị di động Đối với ứng dụng giám sát hành trình, chức xây dựng cụ thể sau: - Xác định hiển thị vị trí người dùng - Tạo nhóm riêng chia sẻ vị trí với thành viên nhóm - Thiết lập địa điểm đến cho thành viên nhóm - Tìm đường ngắn đến địa điểm cho trước - Đính kèm ảnh đồ theo lộ trình Về phía client, thơng tin vị trí ngưởi dùng xác định nhờ thiết bị định vị GPS điện thoại hiển thị lên đồ cần có độ xác cao Ngoài kết hiển thị đến người dùng cần nhanh chóng xác CHƯƠNG II: NGHIÊN CỨU GIẢI PHÁP CÔNG NGHỆ 2.1 Lựa chọn tảng hệ điều hành Hiện ứng dụng điện thoại phát triển chủ yếu tảng Android iOS Có thể thấy số lượng điện thoại thông minh chạy hệ điều hành Android iOS phát triển mạnh, chiếm đến 99% thị trường điện thoại di động thông minh nay, điều cho thấy phát triển mạnh mẽ Android iOS xu hướng người dùng Nếu so sánh số lượng thiết bị di động, tảng Android vượt trội hẳn iOS đa dạng phân cấp, hãng sản xuất,…Mặc dù vậy, đánh giá mặt ưu, nhược điểm nhà phát triển xây dựng ứng dụng hai tảng iOS có nhiều lợi định Khi phát triển ứng dụng iOS, số lượng thiết bị không bị phân mảnh, nhà phát triển cần đảm bảo ứng dụng chạy hồn chỉnh mượt mà số lượng giới hạn thiết bị, nhiên với Android lại khác, với số lượng lớn thiết bị, nhiều kích thước hình với độ phân giải khác nhau, chủng loại phần cứng khác nhau, nhà phát triển gặp phải nhiều vấn đề phát triển bảo trì cập nhật ứng dụng Ngồi ra, với số lượng lớn phiên cập nhật, với việc nhiều thiết bị cập nhật chạy phiên khác điểm trừ nhà phát triển xây dựng ứng dụng Ngược lại, tốc độ cập nhật hệ điều hành thiết bị iOS nhanh đồng đều, số lượng máy cập nhật lớn Từ ưu trên, thấy việc xây dựng ứng dụng tảng iOS mang lại nhiều lợi ích cho nhà phát triển Với ưu điểm phân tích, phạm vi nghiên cứu, lựa chọn xây dựng phát triển ứng dụng dựa tảng di động iOS 2.2 Các giải pháp kỹ thuật sử dụng phía máy chủ Xây dựng máy chủ tảng Node.js a) Giới thiệu Node.js Node.js môi trường mã nguồn mở, phát triển vào năm 2009 Ryan Dahl để chạy đoạn mã viết JavaScript máy chủ, với nhiệm vụ giải vấn đề mà tảng gặp phải hiệu suất thời gian truyền thông mạng, thời gian xử lý yêu cầu phản hồi web Node.js tảng xây dựng dựa Chrome’s V8 JavaScript runtime, với mục đích xây dựng ứng dụng mạng nhanh có khả mở rộng Node.js sử dụng event-driven, I/O non-blocking để làm ứng dụng nhẹ có hiệu cao hơn, phù hợp với ứng dụng thời gian thực chạy thiết bị phân tán [6] b) Các đặc trưng Node.js: - Đơn luồng (single thread):Node.js chủ yếu sử dụng để xây dựng ứng dụng máy chủ Web Node.js xử lý nhiều kết nối đồng thời với single-thread (đơn luồng) Điều giúp hệ thống tốn RAM chạy nhanh tạo thread cho truy vấn sử dụng PHP - Non-blocking: Sự khác biệt lớn Node.js PHP hầu hết hàm chức PHP bị block (các lệnh thực sau lệnh trước hoàn thành), hàm chức Node.js thiết kế non-blocking (các lệnh thực thi song song mà không cần chờ thao tác trước thực xong) Điều đồng nghĩa với việc Node.js thực thi nhiều yêu cầu đồng thời, không lãng phí chu kỳ tuần hồn (clock cycle) mà máy chủ thực Cụ thể, ứng dụng Node.js cần thực thao tác, gửi nhiệm vụ đến vòng lặp kiện, tạo hàm callback, sau tiếp tục xử lý thao tác khác Vòng lặp kiện theo dõi thao tác này, thực thi hàm callback thao tác hoàn thành trả lại kết cho ứng dụng [4] - Hệ quản trị sở liệu: Nodejs hỗ trợ kết nối tốt với loại sở liệu khác (Mysql, Postgresql, Oracle, SQL server, ) thông qua module hỗ trợ Anydb, pg-promise, node-oracle,… Các module cài đặt thông qua npm (node package manager) cách đơn giản c) Ưu điểm Node.js Hiện nay, Node.js trở nên phổ biến thường nhà phát triển lựa chọn làm giải pháp phát triển backend Có nhiều lý cho phổ biến Node.js nên sử dụng Node.js để phát triển server-side: - Hiệu cao: Với đặc điểm đơn luồng non-blocking, máy chủ Node.js phục vụ nhiều kết nối lúc mà có thời gian phản hồi nhanh Với cách tiếp cận sử dụng đơn luồng, Node.js cung cấp mơi trường phát triển ứng dụng có hiệu suất cao, tốn có khả mở rộng - Ngôn ngữ JavaScript thông dụng: Với phổ biến JavaScript, cộng đồng nhà phát triển lớn ngày tăng trưởng, hàng ngàn module có sẵn miền phí, việc phát triển ứng dụng Node.js phía máy chủ đơn giản mang lại nhiều hiệu với nhà phát triển - Môi trường phát triển đơn giản, thời gian phát triển nhanh: Đối với Node.js, nhà phát triển cần tải Node qua npm, sau xây dựng ứng dụng ln cách dễ dàng Node.js đơn chạy tảng mở HTML Javascript nên xây dựng ứng dụng Node.js, không cần cài thêm phần mềm bên thứ ba để chạy ứng dụng Với ưu điểm tôc độ xử lý, hiệu hệ thống, đa dạng module mở rộng, giải pháp tối ưu hệ thống thời gian thực, thời gian phát triển nhanh, sử dụng ngôn ngữ JavaScript thông dụng Node.JS lựa chọn làm mơi trường phát triển phía máy chủ Hệ quản trị sở liệu PostgreSQL PostgreSQL hệ quản trị sở liệu quan hệ đối tượng, mã nguồn mở, dựa Postgres phiên 4.2, phát triển khoa Khoa Học Máy Tính thuộc trường Đại học California Berkeley [3] Hệ quản trị sở liệu PostgreSQL có khả toàn vẹn liệu tốt, ổn định độ tin cậy cao, hỗ trợ toàn vẹn Unicode Ngoài ra, PostgreSQL hệ quản trị sở liệu hỗ trợ mạnh cho việc lưu trữ xử lý liệu không gian kết hợp với module PostGIS, đặc điểm quan trọng PostgreSQL Với ưu điểm bật này, hệ quản trị sở liệu PostgreSQL thường sử dụng để lưu trữ quản lý liệu không gian ứng dụng đồ hay Web GIS (thông qua PostGIS) Việc kết nối đến hệ quản trị sở liệu PostgreSQL để xử lý đọc liệu thực thơng qua module "pg-promise" Module cung cấp hỗ trợ đầy đủ việc kết nối thực truy vấn đến sở liệu PostgreSQL, kết nối hỗ trợ chuẩn an ninh SSL CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG Phân tích yêu cầu Yêu cầu chức ứng dụng Bảng 3.1: Bảng danh sách tác nhân STT Tác nhân Người dùng Mô tả Những người sử dụng ứng dụng qua thiết bị di động Bảng 3.2: Bảng chức cần có ứng dụng: STT Tên nhóm chức Tên chức Mơ tả Nhóm chức - Đăng nhập khởi động ứng dụng Chức có nhiệm vụ thêm người dùng vào hệ thống đăng nhập lần đầu Hệ thống không yêu cầu người dùng sử dụng mật mà yêu cầu nhập số điện thoại email sau đăng nhập thành công - Tải hiển thị Chức tải đồ Google Maps, tự động đồ zoom đến vị trí người dùng - Hiển thị vị trí Chức hiển thị vị trí người dùng đồ dạng Marker Marker có chứa ảnh đại diện người dùng (nếu có) để thuận tiện cho việc theo dõi đồ Người dùng tạo nhóm (có thể nhóm bạn bè, gia đình, đồng nghiệp, ) Nhóm chức - Tạo nhóm nhóm người dùng - Thêm người dùng vào nhóm Chức cho phép người tạo nhóm thêm người dùng vào nhóm qua số điện thoại email Ngồi người khơng phải người tạo nhóm chủ động tham gia vào nhóm biết mã nhóm Chức cho phép thành viên nhóm chủ động rời khỏi nhóm - Rời nhóm Nhóm chức - Cập nhật thông Chức cho phép cập nhật thông tin quản lý tin người dùng cá nhân người dùng thông tin người - Tải ảnh đại diện Hỗ trợ việc tải ảnh đại diện người dùng dùng Nhóm chức - Hiển thị vị trí Chức hiển thị thơng tin vị trí khác người dùng người dùng nhóm nhóm đồ Những người dùng khác phân biệt ảnh đại diện khác (nếu có) đồ - Tạo điểm đến Tạo điểm đến (điểm đích) chung cho cho nhóm thành viên nhóm đồ - Hiển thị đường Hiển thị đường ngắn từ vị trí ngắn đến người dùng đến điểm đến nhóm điểm đích - Tải ảnh lên Chức cho phép người dùng chụp (hoặc đồ chọn ảnh có sẵn) tải ảnh lên đồ vị trí Ngồi yêu cầu chức ứng dụng phía client, hệ thống cần hỗ trợ việc quản lý người dùng quản lý ảnh người dùng tải lên: Quản lý người dùng: Bên cạnh chức thêm người dùng vào nhóm, cho phép người dùng rời nhóm, hệ thống cần quản lý phân quyền người dùng nhóm trưởng (người tạo nhóm), người thực thêm thành viên vào nhóm, loại bỏ thành viên khỏi nhóm Quản lý ảnh: lưu trữ, quản lý ảnh người dùng tải lên hệ thống Để giảm tải cho việc lưu trữ truy vấn với server, lựa chọn sử dụng server Amazon S3 cho việc lưu trữ tập tin ảnh, CSDL ảnh người dùng tải lưu đường dẫn đến ảnh lưu Amazon S3 Với việc sử dụng server Amazon S3, ảnh người dùng tải lên quản lý server Thiết kế hệ thống Thiết kế kiến trúc Hình 3.1: Mơ hình kiến trúc tầng 10 Tầng Client: thiết bị di động sử dụng hệ điều hành iOS đóng vai trị client, chứa ứng dụng xây dựng ngơn ngữ Swift Có nhiệm vụ xác định vị trí nhờ thiết bị GPS điện thoại, truyền nhận liệu với server thực thao tác hiển thị lên thiết bị di động kết cho người dùng Tầng ứng dụng: tầng đảm nhận nhiệm vụ tương tác với client qua việc nhận liệu, sau gọi xuống tầng liệu để thực truy vấn, cuối gửi lại liệu kết cho client Tầng liệu: lưu trữ thực thao tác truy cập, quản lý, truy vấn đến sở liệu, đóng vai trị trung gian tầng ứng dụng sở liệu Ở tầng liệu lưu trữ thông tin người dùng, nhóm người dùng, hình ảnh tải lên người dùng Biểu đồ Use Case Dựa vào chức liệt kê, xây dựng biểu đồ Use Case sau: Hình 3.2: Biểu đồ Usecase nhóm chức Đăng nhập hệ thống a) Đăng nhập Tác nhân chính: Người dùng Mơ tả: Chức có nhiệm vụ thêm người dùng vào hệ thống đăng nhập lần đầu Hệ thống không yêu cầu người dùng sử dụng mật mà yêu cầu nhập số điện thoại email đăng nhập lần đầu Điều kiện bắt đầu: Người dùng cài ứng dụng điện thoại di động Điều kiện sau hoàn thành: Người dùng đăng nhập ứng dụng thành cơng, sử dụng chức ứng dụng hỗ trợ Kịch sử dụng chính: Trường hợp đăng nhập lần đầu: Hệ thống hiển thị hình yêu cầu người dùng nhập thông tin Người dùng nhập thông tin yêu cầu gửi lên máy chủ 11 Hệ thống thêm người dùng theo thông tin nhận vào sở liệu Kịch sử dụng phụ: - Người dùng nhập thiếu thông tin số điện thoại email, ứng dụng hiển thị thơng báo lên hình - Các thông tin số điện thoại email người dùng nhập vào trùng với số điện thoại email có hệ thống, ứng dụng hiển thị thông báo b) Tải hiển thị đồ Tác nhân chính: Người dùng Mơ tả: Tải đồ Google Maps, tự động zoom đến vị trí người dùng Điều kiện bắt đầu: Người dùng đăng nhập vào ứng dụng Điều kiện sau hoàn thành: Hiển thị đồ thành công Kịch sử dụng chính: Dựa vào vị trí người dùng, ứng dụng tải đồ tự động zoom đến khu vực người dùng, sau hiển thị đồ lên thiết bị c) Hiển thị vị trí Tác nhân chính: Người dùng Mơ tả: Chức hiển thị vị trí người dùng đồ dạng Marker Marker có chứa ảnh đại diện người dùng để thuận tiện cho việc theo dõi đồ Điều kiện bắt đầu: Người dùng đăng nhập vào ứng dụng Điều kiện sau hồn thành: Ở hình ứng dụng hiển thị vị trí người dùng đồ Kịch sử dụng chính: - Từ thơng tin vị trí người dùng, ứng dụng hiển thị vị trí lên đồ đánh dấu Marker Kịch sử dụng phụ: Trường hợp người dùng chưa bật chức định vị điện thoại, ứng dụng hiển thị thơng báo u cầu kích hoạt chức để tiếp tục sử dụng ứng dụng 12 Hình 3.3: Biểu đồ Usecase nhóm chức Nhóm người dùng d) Tạo nhóm Tác nhân chính: Người dùng Mô tả: Chức cho phép người dùng tạo nhóm Điều kiện bắt đầu: Người dùng đăng nhập thành công vào hệ thống Điều kiện sau hồn thành: Tạo nhóm thành cơng Kịch sử dụng chính: Người dùng chọn chức tạo nhóm mới, sau điền thơng tin theo yêu cầu Hệ thống thêm nhóm người dùng vào sở liệu sau gửi thơng báo thêm thành công e) Thêm người dùng vào nhóm Tác nhân chính: Người dùng Mơ tả: Chức cho phép người tạo nhóm thêm người dùng vào nhóm qua số điện thoại email Ngồi người khơng phải người tạo nhóm chủ động tham gia vào nhóm biết mã nhóm Điều kiện bắt đầu: - Nếu người dùng người tạo nhóm: Người dùng tạo nhóm thành cơng trước - Nếu người dùng khơng phải người tạo nhóm: Những đối tượng người dùng này cần biết mã nhóm muốn tham gia trước Điều kiện sau hồn thành: Thêm người dùng thành cơng vào nhóm Kịch sử dụng chính: - Đối với người dùng người tạo nhóm: Người dùng chọn nhóm chọn chức thêm người vào nhóm Hiển thị hình cho phép người dùng nhập thơng tin email số điện thoại để thêm bạn vào nhóm Người dùng chọn chức Thêm bên cạnh tên người muốn thêm vào nhóm Hệ thống thực việc thêm gửi thông báo thành công đến người dùng - Đối với người dùng khơng phải người tạo nhóm: Người dùng chọn chức Tham gia vào nhóm Hệ thống hiển thị hình u cầu người dùng nhập mã nhóm muốn tham gia Người dùng nhập thông tin lựa chọn Hồn thành, thơng tin gửi lên máy chủ 13 Hệ thống thực thêm người dùng vào nhóm chọn, đưa thơng báo đến người dùng f) Rời nhóm Tác nhân chính: Người dùng Mô tả: Chức cho phép thành viên nhóm (khơng phải người tạo nhóm) chủ động rời khỏi nhóm Điều kiện bắt đầu: Người dùng thành viên nhóm người dùng Điều kiện sau hồn thành: Người dùng rời khỏi nhóm thành cơng Kịch sử dụng chính: Người dùng chọn nhóm muốn rời khỏi, chọn chức Rời nhóm Hệ thống thực xóa người dùng khỏi nhóm gửi thơng báo thành cơng đến người dùng Hình 3.4: Biểu đồ Usecase nhóm chức Quản lý thơng tin người dùng g) Tải ảnh đại diện Tác nhân chính: Người dùng Mô tả: Chức cho phép người dùng tải ảnh từ thư viện điện thoại làm ảnh đại diện Người dùng tải ảnh đại diện khai báo thông tin người dùng lần đăng nhập thực thay đổi thông tin người dùng Điều kiện bắt đầu: Người dùng đăng nhập ứng dụng thành công Điều kiện sau hoàn thành: Người dùng tải ảnh đại diện thành cơng Kịch sử dụng chính: Người dùng chọn chức Ảnh đại diện đăng nhập lần đầu thay đổi thông tin người dùng Màn hình hiển thị Ứng dụng Photos máy di động để người dùng lựa chọn ảnh đại diện cần thay 14 Hệ thống lưu ảnh server Amazon S3 lưu đường dẫn sở liệu Cuối gửi thông báo thành công đến người dùng h) Cập nhật thơng tin người dùng Tác nhân chính: Người dùng Mô tả: Cho phép cập nhật thay đổi thông tin người dùng khai lúc đăng nhập Điều kiện bắt đầu: Người dùng đăng nhập ứng dụng thành cơng Điều kiện sau hồn thành: Người dùng cập nhật thơng tin thành cơng Kịch sử dụng chính: Người dùng chọn chức cập nhật thông tin Menu Hiển thị giao diện cập nhật thông tin người dùng cho phép điền thông tin muốn thay đổi Người dùng nhập thông tin cần thay đổi lưu lại Hệ thống cập nhật thông tin vào sở liệu gửi thông báo cập nhật thành công Trường hợp sử dụng phụ: Nếu thông tin tên người dùng, số điện thoại email cập nhật trùng với thông tin người dùng khác, ứng dụng đưa thơng báo Hình 3.5: Biểu đồ Usecase nhóm chức khác i) Hiển thị vị trí người dùng nhóm Tác nhân chính: Người dùng Mơ tả: Hiển thị thơng tin vị trí thành viên nhóm đồ Điều kiện bắt đầu: Người dùng đăng nhập ứng dụng thành công Điều kiện sau hồn thành: Các thành viên nhóm nhìn thấy vị trí thành viên khác Kịch sử dụng chính: 15 Người dùng chọn nhóm danh sách nhóm tham gia Hệ thống gửi thông tin vị trí thành viên khác nhóm hiển thị đồ (marker gồm ảnh đại diện người dùng) Các thông tin vị trí thành viên khác nhóm tự động cập nhật 30 giây j) Tạo điểm đến cho nhóm Tác nhân chính: Người dùng Mơ tả: Tạo điểm đến (điểm đích) chung cho thành viên nhóm Điều kiện bắt đầu: Người dùng phải người tạo lập nhóm tạo điểm đến chung cho thành viên nhóm Điều kiện sau hồn thành: Tạo điểm đến chung cho nhóm thành cơng hiển thị kết hình Kịch sử dụng chính: Người dùng chọn điểm đến cách chạm vào đồ vị trí mong muốn Hiển thị popup địa điểm cụ thể điểm đến người dùng vừa chọn, đồng thời cho phép người dùng lựa chọn có chắn muốn tạo điểm đến khơng Người dùng chọn đồng ý tạo điểm đến chọn Hệ thống cập nhật thông tin điểm đến chung vào sở liệu, đồng thời gửi thông tin địa điểm đến đến người dùng nhóm Kịch phụ: Vị trí người dùng chạm đồ khơng phải vị trí mong muốn: Luồng kịch xảy đến hết bước thứ 2, sau bước người dùng chọn Hủy Khi kịch lặp lại từ bước để thực tạo điểm đến chung k) Hiển thị đường đến điểm đích Tác nhân chính: Người dùng Mô tả: Hiển thị đường từ vị trí người dùng đến điểm đích nhóm Điều kiện bắt đầu: Nhóm cài đặt điểm đích thành cơng trước Điều kiện sau hồn thành: Hiển thị đường từ vị trí đến điểm đích đồ thành cơng Kịch sử dụng chính: Người dùng chọn chức đường Hệ thống hiển thị đồ đường từ vị trí người dùng đến điểm đích nhóm l) Tải ảnh lên đồ Tác nhân chính: Người dùng 16 Mơ tả: Chức cho phép người dùng chụp tải ảnh có sẵn điện thoại lên đồ vị trí Điều kiện bắt đầu: Người dùng đăng nhập hệ thống thành cơng tham gia nhóm bạn bè Điều kiện sau hoàn thành: Người dùng tải ảnh lên đồ thành công Kịch sử dụng chính: Người dùng chọn chức Upload ảnh Ứng dụng hiển thị giao diện cho phép chụp chọn ảnh có sẵn máy để tải lên đồ Người dùng thực chụp chọn ảnh cần upload chọn đồng ý Hệ thống lưu ảnh vào sở liệu gửi thông báo upload ảnh thành công Thiết kế sở liệu a) Phân tích Dựa chức ứng dụng, sở liệu cần phải lưu trữ thơng tin người dùng, nhóm người dùng, hình ảnh mà người dùng tải lên Đây tương ứng thực thể hệ thống Mỗi thực thể có thuộc tính, đặc trưng mơ tả thực thể Các thuộc tính thực thể cụ thể sau: Người dùng (UserProfile): lưu trữ thuộc tính thơng tin người dùng bao gồm tên, ảnh đại diện, email, số điện thoại tọa độ lat, lon vị trí Nhóm người dùng (Group): lưu trữ danh sách nhóm người dùng bao gồm thơng tin tên nhóm, thơng tin mơ tả nhóm, tọa độ lat, lon điểm đích nhóm Hình ảnh (ImageUpload): lưu trữ ảnh người dùng tải lên hệ thống bao gồm thông tin đường dẫn, tọa độ lat, lon vị trí tải ảnh Quan hệ thực thể: Hình 3.6: Mối quan hệ thực thể Người dùng, Nhóm người dùng Hình ảnh Hình 3.7: Mối quan hệ thực thể Người dùng thực thể Nhóm người dùng b) Thiết kế Từ phân tích thực thể liên kết thực thể nêu trên, mơ tả qua lược đồ quan hệ sau: 17 Lược đồ quan hệ Người dùng: UserProfile(userid, username, userimage, email, lat, lon, phonenumber):trong userid khóa (ở sử dụng deviceid thiết bị làm userid), userimage đường dẫn đến tệp tin ảnh đại diện người dùng, thông tin kinh độ vĩ độ người dùng Lược đồ quan hệ Hình ảnh tải lên: ImageUpload(imageid, url, imagelat, imagelon, userupload, groupid): imageid khóa chính, url đường dẫn đến tệp tin ảnh người dùng tải lên, thông tin kinh độ vĩ độ vị trí tải ảnh, thơng tin mã người dùng tải ảnh lên thuộc nhóm người dùng Lược đồ quan hệ Nhóm người dùng: Group(groupid, groupname, description, destinationlat, destinationlon): groupid khóa chính, thơng tin tọa độ vị trí điểm đến nhóm Từ lược đồ quan hệ nêu trên, xây dựng bảng sở liệu sau: Hình 3.8: Mơ hình bảng sở liệu 18 CHƯƠNG IV: CÀI ĐẶT HỆ THỐNG VÀ KẾT QUẢ ĐẠT ĐƯỢC Quy trình xây dựng Về phía máy chủ: - Hệ thống cài đặt máy chủ host Heroku cung cấp quản lý xử lý liệu - Máy chủ xây dựng sử dụng Node.JS phiên nhất, thực nhiệm vụ tiếp nhận yêu cầu, thực câu truy vấn đến CSDL, sau gửi trả lại kết cho máy khách - Hệ quản trị sở liệu sử dụng PostgreSQL 8.5, PostGIS 1.5 cài đặt Heroku, có nhiệm vụ lưu trữ, xử lý truy vấn liệu - Các liệu người dùng, nhóm người dùng ảnh người dùng tải lên lưu trữ CSDL PostgreSQL server Heroku - Các chức phát triển đầy đủ phân tích - Đối với việc quản lý người dùng: phân quyền chức người dùng làm trưởng nhóm (ở người tạo nhóm), người thực việc thêm thành viên loại bỏ thành viên khác, hay tạo điểm đến chung nhóm Thơng tin người dùng nhóm trưởng lưu bảng Group_UserProfile trường isMaster - Đối với việc quản lý ảnh người dùng tải lên hệ thống: Sử dụng server Amazon S3 để lưu trữ tập tin ảnh Việc lựa chọn sử dụng dịch vụ Amazon S3 để hỗ trợ quản lý lưu file hệ thống mang lại nhiều lợi ích so với việc lưu trữ server cài đặt Heroku Đầu tiên, dịch vụ Heroku cung cấp 100MB để lưu trữ file tài khoản miễn phí, Amazon S3 cung cấp người dùng miễn phí 5GB dung lượng Bên cạnh đó, dịch vụ Amazon S3 số tiện ích hỗ trợ quản lý file ví dụ hỗ trợ lưu hồi phục liệu, cung cấp khả cho phép báo cáo việc sử dụng liệu Amazon S3 tối ưu việc hỗ trợ tải file với tốc độ cao kết hợp với việc đảm bảo toàn vẹn liệu Về phía máy khách: - Ứng dụng di động tảng iOS xây dựng Swift - Về việc xác định vị trí, chip GPS thiết bị di động có nhiệm vụ xác định vị trí người dùng - Ứng dụng build trực tiếp thiết bị thử nghiệm máy ảo (iOS Emulator) Thử nghiệm Kịch thử nghiệm: - Người dùng đăng nhập ứng dụng lần đầu, ứng dụng yêu cầu nhập thông tin cần thiết 19 - Sau đăng nhập hệ thống, hình hiển thị đồ tự động zoom đến vị trí người dùng - Thực chức thêm nhóm người dùng - Sau tạo nhóm người dùng thành cơng, thêm người dùng khác vào nhóm cách tìm kiếm qua địa email số điện thoại - Người dùng thực tạo điểm đến chung cho nhóm, người dùng khác nhóm thấy điểm đến chung - Chọn chức tìm đường, đồ hiển thị đường ngắn từ vị trí đến điểm đến nhóm Sau ảnh chụp hình theo kịch sử dụng ứng dụng: Hình 4.1: Màn hình đăng nhập lần đầu Hình 4.2: Màn hình khai báo thơng tin đăng nhập lần đầu Hình 4.3: Màn hình cho phép cập nhật thơng Hình 4.4: Màn hình hiển thị đồ đến vị tin người dùng trí người dùng 20 Hình 4.5: Màn hình danh sách nhóm người Hình 4.6: Màn hình thêm thơng tin nhóm dùng người dùng Hình 4.7: Màn hình thêm bạn vào nhóm Hình 4.8: Màn hình thêm bạn bè theo số điện thoại email 21 Hình 4.9: Màn hình hiển thị thành viên Hình 4.10: Màn hình cho phép nhập mã để nhóm đồ thêm vào nhóm tham gia nhóm thành cơng Hình 4.12: Màn hình thơng báo nhập mã Hình 4.11: Màn hình thơng báo tham gia nhóm khơng nhóm thành cơng Hình 4.14: Màn hình thơng báo rời nhóm thành cơng Hình 4.13: Màn hình giao diện cho phép rời nhóm 22 Hình 4.15: Màn hình tạo điểm đích cho Hình 4.16: Màn hình hiển thị điểm đích nhóm Hình 4.17: Màn hình hiển thị điểm Hình 4.18: Màn hình hiển thị đường đích vị trí người khác nhóm ngắn từ vị trí đến điểm đích 23 Hình 4.19: Màn hình hiển thị ảnh Hình 4.20: Màn hình hiển thị chi tiết theo vị trí tải lên đồ chức hình ảnh thơng tin (tên) người tải ảnh lên cho phép tải ảnh lên đồ đồ Đánh giá kết thử nghiệm Ứng dụng xây dựng thử nghiệm thành công điện thoại di động tảng iOS, thực đầy đủ chức phân tích So với ứng dụng phát triển nay, ứng dụng xây dựng phạm vi luận văn phát triển thêm chức khác để hỗ trợ người dùng trình sử dụng Bảng 4.1: So sánh chức ứng dụng thực nghiệm với ứng dụng phổ biến Tiêu chí Find my Glympse friends Nền tảng iOS Chia sẻ thơng tin Có hỗ trợ vị trí Tạo nhóm bạn bè Khơng trợ Life360 Ứng dụng thực nghiệm iOS, Android iOS, Android iOS Có hỗ trợ Có hỗ trợ Có hỗ trợ hỗ Có hỗ trợ Có hỗ trợ Có hỗ trợ Thiết lập điểm đến Khơng cho nhóm trợ hỗ Khơng hỗ trợ Khơng hỗ trợ Có hỗ trợ Tìm đường đến Không điểm đến thiết trợ lập hỗ Không hỗ trợ Khơng hỗ trợ Có hỗ trợ Tải hình ảnh gắn Khơng lên đồ theo vị trí trợ hỗ Không hỗ trợ Không hỗ trợ Có hỗ trợ 24 KẾT LUẬN Dựa vào phát triển phổ biến công nghệ GPS thiết bị di động nay, nhiều ứng dụng tiện ích sử dụng cơng nghệ đời Người dùng xác định vị trí lúc nơi, dựa vào xác định vị trí tương ứng đồ Trên kho ứng dụng hai tảng phổ biến iOS Android xuất số ứng dụng di động tiếng với chức chia sẻ vị trí, chủ yếu ứng dụng dừng lại mức chia sẻ vị trí người dùng Với xu hướng đó, việc xây dựng ứng dụng điện thoại di động phục vụ việc giám sát hành trình, cung cấp chức có tính khả thi cao ứng dụng thực tế Về mặt công nghệ, luận văn nghiên cứu tảng hệ điều hành phổ biến, so sánh phát triển ứng dụng tảng để lựa chọn tảng phù hợp để xây dựng ứng dụng Với ưu điểm phân mảnh thiết bị phiên hệ điều hành ít, thời gian phát triển thường ngắn hơn, lợi nhuận mang lại (nếu có) cao hơn, khóa luận lựa chọn phát triển ứng dụng tảng hệ điều hành iOS Về phía máy chủ, lựa chọn xây dựng tảng Node.JS với ưu điểm mã nguồn mở, viết ngôn ngữ JavaScript Bên cạnh đó, máy chủ sử dụng hệ quản trị sở liệu PostgreSQL với ưu điểm bật so với hệ quản trị sở liệu khác có hỗ trợ việc lưu trữ xử lý liệu không gian với module mở rộng PostGIS Về phần thực nghiệm, từ công nghệ nghiên cứu lựa chọn, luận văn thực phân tích thiết kế xây dựng ứng dụng giám sát hành trình điện thoại di động tảng hệ điều hành iOS Ứng dụng xây dựng thử nghiệm thành cơng với chức gồm: tạo nhóm bạn bè, cho phép thêm người có danh bạ vào nhóm, cho phép hiển thị vị trí người dùng người khác nhóm, tạo điểm đến chung cho nhóm đồ hiển thị đường đến điểm đích đó, cho phép tải ảnh lên đồ vị trí người khác nhóm nhìn thấy, Hướng nghiên cứu phát triển từ kết đạt ứng dụng xây dựng luận văn, bổ sung chức khác nâng cao theo nhu cầu người dùng chức chat nhóm, theo dõi lịch sử lộ trình người dùng nhóm 25 ... Mục tiêu luận văn nghiên cứu xây dựng ứng dụng giám sát hành trình điện thoại di động Để thực mục tiêu này, cần phân tích đánh giá phát triển điện thoại di động thị trường điện thoại di động nay,... ứng dụng iOS, máy chủ Node.JS, hệ quản trị CSDL PostgreSQL) Cuối thiết kế xây dựng ứng dụng thực nghiệm giám sát hành trình thiết bị di động Đối với ứng dụng giám sát hành trình, chức xây dựng. .. dụng điện thoại di động phục vụ việc giám sát hành trình, cung cấp chức có tính khả thi cao ứng dụng thực tế Về mặt công nghệ, luận văn nghiên cứu tảng hệ điều hành phổ biến, so sánh phát triển ứng