Mô hình triển khai cho server

Một phần của tài liệu Phát triển công cụ hỗ trợ thu thập dữ liệu địa điểm du lịch từ cộng đồng (Trang 53)

Hình 3.2. Mô hình MVC triển khai cho server

Triển khai hệ thống server theo mô hình MVC, trong đó :

- View : giao diện của Web Service với thư viện SOAP UI, cung cấp resquest tới Server và trả về response từ Server.

- Controller : các bộ phân tích dữ liệu xml request để triệu gọi các phương thức của Web Service và mã hóa dữ liệu từ thành xml response để trả về client.

- Model : bao gồm cơ sở dữ liệu và các lớp truy vấn dữ liệu của Web Service.

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 54

Hình 3.3. Sơ đồ hoạt động của mô hình MVC cho server 3.1.2. Mô hình triển khai cho client

Hình 3.4. Mô hình 3 lớp triển khai cho client

Mô hình 3 lớp triển khai cho client có khác biệt ở lớp Database, thay vì lưu trữ và truy vấn cục bộ thì chuyển thành triệu hồi từ xa tới server.

Presentation Layer

Business Logic Layer

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 55

Vì client là điện thoại di động, bị giới hạn bộ nhớ và cấu hình, nên việc lưu trữ dữ liệu và truy vấn dữ liệu thông qua việc triệu hồi từ xa các phương thức của Web service.

3.2. Sơ đồ Use Case

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 56

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 57

3.3. Mô hình quan hệ dữ liệu

 Bảng dữ liệu nhóm người dùng

Bảng chứa thông tin tài khoản người dùng, để đăng nhập, đăng tải địa điểm, bình luận, đánh giá, phản hồi về hệ thống...

Tên Kiểu Mô tả

Id Number Khóa chính. Hầu hết các bảng khác có quan hệ với bảng users và thông qua khóa này.

Email Text Dùng để đăng kí, xác thực và thông báo Password Text Dùng để xác thực khi đăng nhập.

Name Text Tên của người dùng.

Longitude Number Giá trị khinh độ của người dùng Latitude Number Giá trị vĩ độ của người dùng

Ac Text Khóa bảo vệ, sử dụng trong các trường hợp cần thiết như quên mật khẩu…

Created Date Ngày đăng ký

Bảng 1 : Bảng Users

 Nhóm địa điểm

Bảng chứa các thông tin về vùng, phân cấp các vùng nhỏ hơn...để chứa các địa điểm.

Tên Kiểu Mô tả

Id Number Khóa chính. Tạo quan hệ với bản Places. Parent_id Number Khóa phụ. Phân cấp các vùng nhỏ hơn. Name Text Tên vùng.

Longitude Number Giá trị khinh độ của vùng Latitude Number Giá trị vĩ độ của vùng

Bảng 2: Bảng Regions

Bảng chứa các địa điểm du lịch của kho dữ liệu. Dữ liệu bao gồm dữ liệu do người dùng đăng tải và của hệ thống cung cấp.

Tên Kiểu Mô tả

Id Number Khóa chính. Hầu hết các bảng khác có quan hệ với bảng places và thông qua khóa này.

Name Text Tên của địa điểm.

Sub_region Text Tên vùng chứa địa điểm.

Region_id Number Khóa ngoại. Mã vùng của địa điểm.

User_id Number Khóa ngoại. Mã người dùng đăng tải địa điểm. Content Text Nội dung của địa điểm.

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 58

Latitude Number Giá trị vĩ độ của địa điểm.

Photo Text Đường dẫn tới hình ảnh của địa điểm Created Date Ngày đăng tải.

Is_system Number Biến hệ thống. Is_del Number Biến xóa.

Bảng 3 : Bảng Places

 Nhóm phân loại và đánh giá

Bảng chứa các bình luần về địa điểm, do người dùng cung cấp.

Tên Kiểu Mô tả

Id Number Khóa chính.

Place_id Number Khóa phụ. Mã địa điểm. User_id Number Khóa phụ. Mã người dùng. Content Text Nội dung bình luận.

Created Date Ngày đăng bình luận cho địa điểm.

Bảng 4 : Bảng Comments

Bảng đánh giá của người về địa điểm.

Tên Kiểu Mô tả

Id Number Khóa chính.

Place_id Number Khóa phụ. Mã địa điểm. User_id Number Khóa phụ. Mã người dùng. Value Number Điểm đánh giá

Bảng 5 : Bảng Rates

Bảng chứa các phản hồi về địa điểm.

Tên Kiểu Mô tả

Id Number Khóa chính.

Place_id Number Khóa phụ. Mã địa điểm. User_id Number Khóa phụ. Mã người dùng. Content Text Nội dung phản hồi.

Bảng 6 : Bảng Reports

 Nhóm hệ thống

Bảng chứa các phản hồi về hệ thống do người dùng đăng tải.

Tên Kiểu Mô tả

Id Number Khóa chính.

User_id Number Khóa phụ. Mã người dùng. Content Text Nôi dung phản hồi.

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 59

Bảng 7 : Bảng SystemReports

Bảng đánh dấu các địa điểm của người dùng

Tên Kiểu Mô tả

Place_id Number Khóa phụ. Mã địa điểm. User_id Number Khóa phụ. Mã người dùng.

Bảng 8: Bảng Users_Places

 Mô hình quan hệ dữ liệu

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 60

3.4. Xây dựng ứng dụng 3.4.1. Xây dựng hệ thống 3.4.1. Xây dựng hệ thống

Đối tượng người dùng 3.4.1.1.

Đối tượng người dùng là tất cả mọi người, được chia thành hai nhóm chính: - Người du lịch : sử dụng hệ thống thông qua ứng dụng được cung cấp trên

điện thoại di động.

- Các nhà phát triển và các công ty : sử dụng hệ thống thông qua các phương thức của Web Service cung cấp để lấy dữ liệu.

Ngƣời du lịch

Chiếm số lượng lớn nhất và được quan tâm nhiều nhất. Các nhu cần của nhóm đối tượng này bao gồm :

- Tìm kiếm địa điểm du lịch, bao gồm không gian, thời gian, theo vị trí người dùng, theo các tiêu chí khác nhau.

- Đăng tải địa điểm để chia sẽ với những người khác. - Đánh giá, bình luận về địa điểm.

Các nhà phát triển

- Nhóm đối tượng này chính là đối tượng thứ 3 trong việc phát triển hệ thống. Hệ thống sẽ cung cấp các phương thức cần thể để đáp ứng nhu cầu của nhóm này:

- Dữ liệu danh sách các địa điểm theo các tiêu chí. - Dữ liệu thống kê về các địa điểm theo thời gian. - Phát triển trên các nền tản khác.

Nhu cầu thực tiễn 3.4.1.2.

Với người dùng chính là người du lịch thì ứng dụng của hệ thống cung cấp trên điện thoại đi động phải giải quyết phần lớn những nhu cầu này.

Người sử dụng khi đi du lịch thì nhu cầu thực tiễn của họ là cần tìm một địa điểm hay để làm mốc đi tới, thay vì dữ liệu khô khan của các hệ thống ( Google MAP, opent stress, foursquare...) chỉ mang tính chất xác định vị trí tọa độ của địa

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 61

điểm trên bản đồ thì kho dữ liệu trực tuyến này sẽ cung cấp các địa điểm đã được chọn lọc và tùy theo vị trí hiện tại của người dùng mà sẽ đưa ra các địa điểm hay xung quanh họ. Lúc này, người du lịch sẽ tham khảo và mang tính phám khá các địa điểm của hệ thống hơn là xác định vị trí các địa điểm.

Một phần nhu cầu thực tiễn của người dùng là chia sẽ những trải nghiệm của mình cho những người dùng khác. Đảm bảo nhu cầu này thì hệ thống đưa ra các chức năng: đăng tải địa điểm, bình luận và đánh giá.

Ngoài ra, xuất phát từ nhu cầu thực tiễn của người dùng thì hệ thống phải đảm bảo những tính chất sau:

- Tính tiện dụng : điều này được đảm bảo tuyệt đối, vì điện thoại di động là một vật dụng nhỏ gọn, là phương tiện luôn luôn đêm theo bên mình của người du lịch.

- Tính chính xác : dữ liệu được thiết kế đảm bảo tính chính xác, khả năng định vị vị trí người dùng chính xác tới phạm vi bán kính 10 mét.

- Tính ổn định : sẽ được đảm bảo xuyên suốt quá trình hoạt động của ứng dụng nói riêng và hệ thống nói chung.

- Tính kết nối : hệ thống được xây dựng cơ bản trên nguyên lý một mạng xã hội để kết nối nhiều người dùng lại với nhau.

- Tính mở rộng : người dùng vừa là người sử dụng vừa là người xây dựng dữ liệu của hệ thống nên dữ liệu hệ thống luôn luôn được mở rộng và phong phú.

Quản lý hệ thống 3.4.1.3.

Quản lý hệ thống là một phần không thể thiếu. Nó đảm bảo cho hệ thống được hoạt động ổn định. Quản lý hệ thống ban đầu bao gồm quản lý hai phần:

- Hệ thống Server, bao gồm Web Service và Web Admin - Cơ sở dữ liệu hệ thống.

Quản lý cấu hình, gắn kết hoạt động của Web Service, Web Admin và cơ sở dữ liệu. Thường xuyên kiểm tra và lưu trữ để có thể phục hồi hệ thống khi có sự cố . Ngoài ra, đảm bảo tính bảo mật thông tin của người dùng.

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 62

Về cơ sở dữ liệu hệ thống quản lý thông qua trang Web Admin, chia thành các nhóm quản lý chung:

- Quản lý cấu hình Web Admin, hệ quản trị cơ sở dữ liệu. - Quản lý người dùng, người quản lý hệ thống.

- Quản lý địa điểm.

- Quản lý các thông tin phản hồi, bình luận, đánh giá.

Ngoài ra, quản lý thông tin dữ liệu, lọc và loại bỏ các thông tin rác và vi phạm điều khoản của hệ thống hoặc pháp luật hiện hành.

Xây dựng và khai thác kho dữ liệu 3.4.1.4.

Hình 3.8. Sơ đồ xây dựng dữ liệu của hệ thống thông qua đối tƣợng

Dữ liệu được xây dựng dựa trên hai nguồn chính:

- Dữ liệu ban đầu : là dữ liệu được xây dựng sẵn của hệ thống. Cung cấp một loạt các địa điểm cơ bản ở hầu hết các tỉnh/thành phố. Dữ liệu thông qua thu thập của các nhân viên quản lý hệ thống trên khắp các tỉnh/thành phố.

- Dữ liệu người dùng : là nguồn dữ liệu mang tính chất mở và được người dùng đóng góp xây dựng và chọn lọc, đánh giá...thông qua việc

Database Dữ liệu ban đầu Quản lý hệ thống Người sử dụng Dữ liệu người dùng Dữ liệu hệ thống cập nhập Lọc dữ liệu người dùng Dữ liệu cập nhập Dữ liệu cập nhập Dữ liệu cập nhập Dữ liệu tra cứu Dữ liệu mới Dữ liệu mới Dữ liệu ban đầu

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 63

đăng tải các thông tin, bình luận, đánh giá về các địa điểm của kho dữ liệu.

Khai thác dữ liệu được thông qua hai đối tượng chính:

- Người sử dụng: sử dụng ứng dụng do hệ thống cung cấp (trên điện thoại di động iPhone) thì người dùng có toàn quyền khai thác dữ liệu của kho dữ liệu.

- Quản lý hệ thống : là đối tượng chính tạo và lọc dữ liệu của kho dữ liệu. Khai thác dữ liệu vào việc :

 Quản lý hệ thống, bao gồm người dùng, địa điểm và ứng dụng.

 Phân tích và lọc dữ liệu của người dùng để cập nhập vào hệ thống.

3.4.2. Xây dựng Web service và Web admin Xây dựng Web Service Xây dựng Web Service

3.4.2.1.

Web service đóng vai trò giao tiếp giữa điện thoại di động và hệ thống thông qua việc truyền tải dữ liệu trên môi trường internet. Kiểu dữ liệu được sử dụng là XML.

Cài đặt cơ sở dữ liệu

 Bước 1 : Tạo cơ sỡ dữ liệu trên MySQL của server.

 Bước 2 : Import file cơ sở dữ liệu vào MySQL của server, tùy chỉnh các thông tin kết nối cho phù hợp.

Cài đặt webservice thông qua các bước sau :

 Bước 1 : tiến hành thay đổi cấu hình cho phù hợp, cấu hình về cơ sở dữ liệu, cấu hình về Server trên Web Service.

 Bước 2 : tiến hành kết nối Web Service với NetBean, để thêm xóa hoặc sửa các phương thức của Web Service.

 Bước 3 : Sử dụng SOAP UI để chạy thử nghiệm Web Service với dữ liệu xml.

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 64

Hình 3.9. Kết quả chạy Web Service với 1 số phƣơng thức cơ bản đầu tiên

Sau khi cài đặt thành công Web Service thì sử dụng SOAP UI để tiến hành thử nghiệm giao tiếp với Web Service. Nếu sử dụng cho điện thoại di động thì tiến hành cài đặt Web Service trên ứng dụng.

Link sử dụng Web Service:

http://localhost/webservice/index.php?wsdl

Kết quả sử dụng cho SOAP UI với một số phương thức cơ bản đầu tiên

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 65

Web Service cung cấp nhiều phương thức để giao tiếp với kho dữ liệu, trong đó mỗi phương thức có thể có 1 hoặc nhiều các request để tiến hành giao tiếp. Cấu trúc mỗi request là tuân thủ theo kiêu dữ liệu xml.

Ví dụ: request cho đăng nhập hệ thống với tài khoản đăng nhập là "admin" với mật khẩu đã được mã hóa md5 (dài 32 ký tự).

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <signin soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SigninRequest xsi:type="web:SigninRequest" xmlns:web="http://localhost/webservice/">

<!--You may enter the following 2 items in any order--> <username xsi:type="xsd:string">admin</username> <password xsi:type="xsd:string">12345678901234567890123456789044</password> </SigninRequest> </signin> </soapenv:Body> </soapenv:Envelope>

Sau khi nhận request thì hệ thống của webservice tự động kiểm tra và tiến hành xử lý với kho dữ liệu, sau đó thì trả về 1 response.

Ví dụ: với đăng nhập trên thì thông tin trả là userID của người dùng là : 1

<SOAP-ENV:Envelope SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP- ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://localhost/webservice/"> <SOAP-ENV:Body> <ns1:signinResponse xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"> <SigninResponse xsi:type="tns:SigninResponse"> <user_id xsi:type="xsd:int">1</user_id> </SigninResponse> </ns1:signinResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 66

Việc phát triển Web Service thông qua IDE Netbean để tiến hành lập trình với ngôn ngữ PHP trên Web Service.

Hình 3.11. Cấu trúc mã nguồn phát triển Web Service trên môi trƣờng NetBean

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 67

Phát triển Web Service sẽ thêm các phương thức thao tác với kho dữ liệu. Các phương thức chia thành các nhóm sau:

 Nhóm người dùng, yêu cầu bảo mật nên cần phải đăng ký tài khoản

 signin : đăng nhập tài khoản

 signup: đăng ký tài khoản

 upDateMyLocation : cập nhập vị trí người dùng

 changePass : cập nhập mật khẩu

 getUserProfile : lấy thông tin người dùng

 forgotPass : quên mật khẩu

 Nhóm địa điểm cá nhân, yêu cầu bảo mật

 createPlace : đăng tải địa điểm

 getPlace : lấy thông tin địa điểm

 editPlace : cập nhập thông tin địa điểm

 deletePlace : xóa địa điểm

 ratePlace : đánh giá điểm số cho địa điểm

 sendCommentPlace : gởi bình luận cho địa điểm

 sendReportPlace : gởi báo cáo vi phạm của địa điểm

 checkPlace : đánh dấu theo dõi địa điểm

 getListPlaceCheck : lấy danh sách các địa điểm đã đánh dấu

 getListPlaceUser : lấy danh sách các địa điểm của người dùng

 Nhóm địa điểm

 getListPlaceSystem : lấy danh sách các địa điểm hệ thống

 getListPlaceNew : lấy danh sách các địa điểm mới nhất

 getListPlaceComment : lấy danh sách các địa điểm bình luận nhiều nhất

 getListPlaceRate : lấy danh sách các địa điểm đánh giá cao nhất

 getListPlaceDistance : lấy danh sách các địa điểm xung quanh người dùng.

 getListPlaceRegion : lấy danh sách các địa điểm của một vùng

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 68

 Nhóm hệ thống

 sendSystemReprot : gởi phản hồi về hệ thống

 getPlaceListReportForTime : lấy báo cáo về các địa điểm trong khoản thời gian cụ thể

Kết quả triển khai Web Service

Luận văn thạc sĩ

Học viên Huỳnh Nguyễn Thanh Phú Trang 69

Đường dẫn tới WSDL

Hình 3.13. Giao diện trả về WSDL

Xây dựng Web admin 3.4.2.2.

Webadmin được xây dựng bằng ngôn ngữ PHP chạy trên server apache. Truy cập Web Admin thông qua đường dẫn :http://localhost/admins

Một phần của tài liệu Phát triển công cụ hỗ trợ thu thập dữ liệu địa điểm du lịch từ cộng đồng (Trang 53)