Mô hình hệ thống

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu xây dựng bản đồ trực tuyến trên nền mã nguồn mở (Trang 53)

- Phía Client –side: chƣ́a trình duyê ̣t web có chƣ́c năng hiển thi ̣ , gƣ̉i yêu cầu đến WebServer và nhận kết quả trả về từ WebServer để hiển thị .

- Phía Server-side: bao gồm các thành phần WebServer , Application Server, WFS Server và Data Server.

o WebServer: đảm nhiê ̣m chƣ́c năng nhâ ̣n yêu cầu tƣ̀ phía trình duyê ̣t , gƣ̉i cho Application Server xƣ̉ lý và nhâ ̣n kết quả tƣ̀ Application

Server để gƣ̉ i trả về cho trình duyê ̣t .

o Application Server : đảm nhiê ̣m chƣ́c năng lấy dƣ̃ liê ̣u tƣ̀ các Server cung cấp dƣ̃ liê ̣u (WFS Server) để tạo ra bản đồ, xƣ̉ lý các yêu cầu tƣ̀ phía trình duyệt và gửi trả kết quả về trình duyệ t thông qua WebServer.

o WFS Server : lấy dƣ̃ liê ̣u không gian tƣ̀ Vector Data cung cấp dƣ̃ liê ̣u dƣới đi ̣nh da ̣ng thống nhất GML khi có yêu cầu tƣ̀ phía Application Server.

o Data Server : đảm nhiê ̣m chƣ́c năng lƣu trữ , quản lý dữ liệu không gian (Vector Data) và thuộc tính (RDBMS).

Cơ chế hoa ̣t đô ̣ng của hê ̣ thống nhƣ sau :

Hình 3.4. Qui trình RSS cập nhật cơ sở dữ liệu thời tiết và yêu cầu từ ngƣời dùng

1) Khi ngƣời dùng lần đầu tiên mở ứng dụng dịch vụ web thời tiết, Webserver sẽ kiểm tra cơ sở dữ liệu trên hệ thống, nếu dữ liệu trên hệ thống là dữ liệu cũ thì chúng sẽ gƣ̉i yêu cầu đến cho RSS .

2) RSS sẽ tìm kiếm và lấy các thông tin về thời tiết, lấy và gửi đến server chứa dữ liệu (Data server).

3) Các dữ liệu này sẽ đƣợc cập nhật vào trong cơ sở dữ liệu.

4) Bất kỳ khi nào ngƣời dùng có nhu cầu tìm kiếm, truy vấn thông tin thì trình duyệt gửi yêu cầu dữ liệu của ngƣời dùng thông qua giao thức HTTP đến Websever.

5) Websever gƣ̉ i yêu cầu đến Application Serv er để phân tích . Nếu yêu cầu có liên quan đến bản đồ chuyển tiếp yêu cầu đến server chứa dữ liệu không gian (data spatial).

6) Các ứng dụng nhận yêu cầu cụ thể và gọi các hàm có liên quan đến để tính toán xử lý. Sau đó gửi yêu cầu dữ liệu đến data exchange server (server trao đổi dữ liệu).

7) Data exchange server nhận yêu cầu dữ liệu và tìm kiếm vị trí của những dữ liệu này. Sau đó gửi yêu cầu đến server chứa dữ liệu (Data server) tƣơng ứng cần tìm. Data server dữ liệu tiến hành truy vấn lấy ra dữ liệu cần thiết và trả dữ liệu này về cho data exchange server.

Web Client Re qu e ss t (1) Request New Data (6) (7) Web Data Server Data Spatial Data Exchange RSS Calling Program

HỆ THỐNG SERVER CỦA TRANGWEB

(3)

CSDL

(2)

(4)

8) Nếu yêu cầu liên quan đến thông tin thuộc tính thì Application Server sẽ kết nối đến RDBMS để lấy dƣ̃ liê ̣u về xƣ̉ lý và trả về phía client. Chu trình cứ thế tiếp tục.

Hình 3.5. Các dạng yêu cầu từ phía Client

Để tận dụng sức mạnh, ƣu thế của 3 công cụ mã nguồn mở này, luận văn kết hợp 3 thành phần Mapserver, C# Mapscript và PostGIS với nhau, đồng thời sử dụng công nghệ RSS để xây dựng chƣơng trình demo “tên đề tài”.

Trong đó, 3 thành phần Mapserver, C# Mapscript và PostGIS dùng để tạo nên một ứng dụng bản đồ số chạy trên nền web. Cho phép ngƣời dùng chỉ cần sử dụng trình duyệt để xem, truy vấn thông tin bản đồ một cách thuận tiện, không phải cài đặt thêm các phần mềm chuyên dụng nào.

Trong khuôn khổ một luận văn, chƣơng trình demo của luận văn chỉ lấy dữ liệu thời tiết từ những nguồn miễn phí. Sau một thời gian tìm hiểu, tác giả nhận thấy hầu hết các trang cung cấp dữ liệu thời tiết miễn phí hiện nay của yahoo, google, microsoft v.v… đều sử dụng định dạng RSS để cung cấp dữ liệu. Chƣơng trình demo xây dựng module RSS để thu thập dữ liệu thời tiết từ trang http://weather.msn.com của Microsoft. Đây là trang cung cấp thông tin thời tiết miễn phí cho 28 tỉnh thành phố của Việt Nam.

3.2.6. Cách thức phối hợp hoạt động của Mapserver, C# Mapscript, PostGIS và RSS xây dựng chƣơng trình demo

- PostgreSQL

Hệ quản trị cơ sở dữ liệu PostgreSQL có module PostGis đƣợc dùng để lƣu trữ 2 loại dữ liệu: thứ nhất là dữ liệu không gian của bản đồ nền, là dữ liệu

không gian của các tỉnh, thành phố trên toàn quốc, thứ hai là thông tin thời tiết, và một số thông tin thuộc tính khác của các tỉnh thành phố.

- Mapserver và C# Mapscript

Để điều khiển bản đồ (phóng to, thu nhỏ, tìm kiếm theo tên tỉnh thành phố), trả lời các truy vấn theo yêu cầu của ngƣời dùng (truy vấn về thời tiết hiện tại của một địa phƣơng, tìm thời tiết theo thời gian), chƣơng trình sử dụng C# Mapscript để lập trình xử lý các yêu cầu đó, chuyển đổi các yêu cầu này thành các lệnh phù hợp và gửi đến phần mềm Mapserver (thực chất là một file mapserver.exe) để Mapserver thực thi, tạo ra ảnh bản đồ. C# Mapscritp sẽ dựa vào các thông tin cấu hình, các yêu cầu của ngƣời dùng và yêu cầu từ bản thân chƣơng trình để điều khiển việc vẽ ra ảnh bản đồ lên trên trang giao diện web.

Khi nhận đƣợc yêu cầu, chƣơng trình sẽ đọc các tham số khởi tạo do ngƣời lập trình đặt ra nhƣ: đƣờng dẫn ảnh bản đồ đƣợc tạo ra ở địa chỉ nào, các layer nào sẽ đƣợc vẽ, phạm vi của bản đồ. Chƣơng trình cũng đọc file định nghĩa thông tin đồ họa của bản đồ, map file, file này định nghĩa màu sắc, các layer, đơn vị đo, định dạng hình ảnh của bản đồ, v.v….

Tiếp đó, chƣơng trình lấy dữ liệu thời tiết ngày hiện tại của từng địa phƣơng có trong cơ sở dữ liệu, ứng với một vùng không gian của mỗi tỉnh, thành phố, chƣơng trình sẽ tạo ra một vùng gọi là tooltip map (vùng cho phép hiển thị thông tin dạng pop up) chứa thông tin thời tiết hiện tại và các thông tin khác của địa phƣơng đó.

Thông tin thời tiết hiện tại này đã có từ trƣớc trong cơ sở dữ liệu. Việc tạo ra thông tin thời tiết hiện tại của các địa phƣơng trong cơ sở dƣ liệu do module RSS của chƣơng trình thực hiện.

- Module RSS

Module RSS sẽ luôn chạy mỗi khi chƣơng trình thực thi. Nhiệm vụ chính của module RSS là lấy dữ liệu thời tiết từ trang thông tin thời tiết miễn phí http://weather.msn.com của Microsoft, cập nhật thông tin thời tiết lấy đƣợc vào cơ sở dữ liệu PostgreSQL. Đầu tiên module RSS phải kiểm tra xem trong cơ sỡ dữ liệu đã có thời tiết của ngày hiện tại chƣa, nếu có rồi module RSS sẽ không thực thi, nếu chƣa có, module RSS sẽ tạo ra lần lƣợt các truy vấn đến trang http://weather.msn.com, số lần truy vấn ứng với số các tỉnh thành phố cần lấy thông tin thời tiết. Trang http://weather.msn.com sẽ trả lại một tài liệu dạng XML chứa thông tin thời tiết trong đó. Module RSS sẽ phân tích cấu trúc của trang XML kết quả, lấy ra ngày giờ, nhiệt độ hiện tại, nhiệt độ dự báo, v.v… của tỉnh thành phố đang đƣợc truy vấn, lƣu thông tin này vào cơ sở dữ liệu.

Đối với các yêu cầu điều khiển bản đồ nhƣ phóng to, thu nhỏ. Chƣơng trình sẽ thực hiện nhƣ sau: Chuyển đổi tọa độ x, y của con trỏ ngƣời dùng đã chọn trên ảnh bản đồ, sang tọa độ không gian tƣơng ứng, xác định kiểu truy vấn bản đồ là gì: phóng to, thu nhỏ hay dịch chuyển. Tạo ra câu truy vấn với tham số thích hợp, truyền câu truy vấn này đến chƣơng trình mapserver để thực thi.

Mapserver sau khi thực thi các yêu cầu, sẽ tạo ra ảnh bản đồ mới, hiển thị lên trên giao diện web.

3.2.7. Ứng dụng phần mềm cho thiết bị di động

Ngày nay, ngoài việc phát triển các ứng dụng trên server, thì các thiết bị di động cũng đƣợc quan tâm và phát triển khá mạnh mẽ. Tuy nhiên phần mềm của luận văn đƣợc lập trình hoàn toàn ở phía server, sử dụng bộ mapscript của phần mềm mã nguồn mở mapserver để xây dựng ứng dụng. Mapscript hỗ trợ các loại ngôn ngữ: PHP, Python, Perl, Ruby, Java, và .NET. Mapscript phải có kèm theo phần mềm mapserver để hoạt động.

Vì vậy để phát triển sản phẩm ứng dụng trên thiết bị di động, cho phép thiết bị điện thoại di động truy cập và sử dụng bản đồ nhƣ đối với máy tính thông thƣờng thì khi đó các thiết bị di động đóng vai trò nhƣ là máy khách. Và ứng dụng cần phải đóng gói dựa trên nền tảng IIS 7.

3.3. Xây dựng Website dự báo thời tiết 3.3.1. Kiến trúc hệ thống

Hệ thống đƣợc thiết kế với 3 tầng khác nhau nhƣ hình 3.5

Hình 3.6. Kiến trúc hệ thống

- Tầng Client: đƣợc xây dựng bằng JavaScript, HTML và DHTML, thực hiện nhiệm vụ xử lý các thao tác, lƣu trữ thông tin ứng với từng ngƣời sử

Client Layer Máy tính cá nhân Web browse (HTML+JavaScript+DHTML) Application Layer Web Sever

Web Form + MapServer

Data Layer

CSDL quan hệ

dụng, đảm nhận vai trò trung gian, truyền nhận dữ liệu giữa ngƣời sử dụng với Websever.

- Tầng ứng dụng (Applicaton Layer) chia làm 2 phần: WebForm và MapServer. Cả hai đều đƣợc phát triển dựa trên công nghệ .NET (ASP.NET)

o WebForm: đảm nhận trách nhiệm phát sinh giao diện và các đoạn script để tƣơng tác với client, đóng vai trò trung gian giữa client và MapServer, nó sẽ gửi yêu cầu của client tới MapServer và nhận dữ liệu trả ngƣợc về cho client.

o MapServer: xử lý các thao tác về phát sinh bản đồ, phóng to, thu nhỏ, dịch chuyển, tra cứu thông tin trên bản đồ. Nó là thành phần trung gian giữa WebForm và tầng cơ sở dữ liệu, tiếp nhận yêu cầu từ WebForm rồi gọi xuống tầng cơ sở dữ liệu để rút trích thông tin, sau đó tiến hành xử lý rồi trả kết quả về cho WebForm.

- Tầng cơ sở dữ liệu: đóng vai trò trung gian giữa tầng ứng dụng với cơ sở dữ liệu.

3.3.2. Tổ chức dữ liệu dự báo

Sơ đồ logic:

Hình 3.7. Sơ đồ Logic dữ liệu

Trong sơ đồ logic trên thì quan hệ giữa bảng thông tin dự báo và các bảng khác là quan hệ một nhiều, tức là khi có một sự kiện cần phải các thông tin thì chƣơng trình sẽ truy vấn vào bảng thông tin dự báo trƣớc, sau đó dựa vào mã buổi để xác định các thông tin còn lại nhƣ nhiệt độ, độ ẩm,…. đặc biệt là các khóa khác. Từ các khóa này tiến hành truy vấn vào các bảng khác để lấy ra các thông tin cụ thể nhƣ tên buổi, tên khu vực,… để hiển thị lên bản đồ.

Danh sách các bảng:

Bộ dữ liệu này bao gồm các bảng sau: 1- Tỉnh - thành phố

2- Khu vực 3- Các buổi 4- Loại thời tiết 5- Thông tin dự báo

Bảng 3.1. Danh sách các bảng dữ liệu

STT Tên Ý nghĩa Ghi chú

1 Tinh_TP Bảng lƣu trữ thông tin các tỉnh, thành phố

2 KhuVuc Bảng lƣu trữ các khu vực của cả nƣớc

3 Cac_Buoi Bảng lƣu trữ các buổi trong ngày và cả ngày 4 LoaiThoiTiet Bảng lƣu trữ thông tin

phân loại thời tiết

5 ThongTin_DuBao Bảng lƣu trữ thông tin để dự báo thời tiết

Chỉ 1 số thông tin về thời tiết đƣợc quan tâm, không cung cấp đầy đủ các yêu cầu về khí tƣợng thủy văn

Mô tả chi tiết các bảng

- Tên: ThongTin_DuBao

 Ý nghĩa: Thông tin dự báo

Bảng 3.2. Chi tiết bảng ThongTin_DuBao

TT Tên cột Kiểu Ràng buộc Ghi chú

1 Ma_buoi Integer Khóa chính 2 Matinh_TP Varchar(3) Khóa chính 3 MaLoaiThoiTiet Integer Khóa chính 4 MaKhuVuc Varchar(3) Khóa chính 5 Ngày Date 6 NhietdoMax Integer 7 NhietdoMin Integer 8 DoAmTB Varchar(10) 9 KhiApTB Varchar(10) 10 SucGio Varchar(10) 11 Luong_Mua Varchar(20) 12 Sukien_Dacbiet Varchar(256)

13 MoTa Varchar(256) Mô tả thông tin thời tiết bằng lời

- Tên: LoaiThoiTiet

o Ý nghĩa: Loại thời tiết

Bảng 3.3. Chi tiết bảng LoaiThoiTiet

STT Tên cột Kiểu Ràng buộc Ghi chú

1 MaLoaiThoiTiet Integer Khóa chính 1. Nắng

2. Nắng, nhiều mây 3. Mƣa

4. Mƣa dông

5. Mƣa rào và dông 6. Mây thay đổi 7. Ít mây

8. Nhiều mây 2 Ten_Loai Varchar(30)

3 HinhAnh Varchar(30) Chứa tên của các file ảnh tƣơng ứng với từng loại thời tiết

- Tên: Cac_Buoi

o Ý nghĩa: Tên các buổi trong ngày

Bảng 3.4. Chi tiết bảng Cac_Buoi

STT Tên cột Kiểu Ràng buộc Ghi chú

1 Ma_Buoi Integer Khóa chính Ma_Buoi chỉ nhận các giá trị sau: 0: Cả ngày 1: Buổi sáng 2. Buổi trƣa. 3. Buổi chiều 2 Ten_Buoi Varchar(10) - Tên: Khu_Vuc  Ý nghĩa: Khu vực

Bảng 3.5. Chi tiết bảng Khu_Vuc

STT Tên cột Kiểu Ràng buộc Ghi chú

2 MaKhuVuc Varchar(3) Khóa chính 3 TenKhuVuc Varchar(100)

- Tên: Tinh_TP

 Ý nghĩa: Tỉnh - Thành phố

Bảng 3.6. Chi tiết bảng Tinh_TP

STT Tên cột Kiểu Ràng buộc Ghi chú

1 MaTinh_TP Varchar(3) Khóa chính 2 TenTinh_TP Varchar(30)

5 MaKhuVuc Varchar(3)

3.3.3. Xây dựng biểu đồ Use - case

- Duyệt bản đồ.

 Di chuyển bản đồ.

 Phóng to, thu nhỏ bản đồ

 Truy vấn thông tin trên bản đồ

 Tìm vị trí một tỉnh, thành phố, địa danh trên bản đồ.

- Xem thời tiết các ngày trƣớc:

 Xem thời tiết trong ngày và một vài ngày trƣớc.

Xem thời tiết các ngày trước

User

Thống kê tình hình bão, lũ trên các tỉnh Phóng to, thu nhỏ bản đồ

Di chuyển bản đồ

Tìm vị trí tỉnh, tp trên bản đồ

Hình 3.8. Biểu đồ Use – case

- Di chuyển bản đồ.

 Mô tả: Use-case này mô tả cách thức ngƣời dùng di chuyển bản đồ để xem vùng không gian khác trên bản đồ

 Luồng các sự kiện:

 Luồng sự kiện chính: Use - case này bắt đầu khi ngƣời dùng muốn dịch chuyển bản đồ để xem vùng không gian khác trên bản đồ.

2. Hệ thống ghi nhận tình trạng nhấn chuột, thay đổi trạng thái button sang trạng thái đậm. Chuyển trạng thái các button nào đang ở trạng thái đậm vì đƣợc nhấn chuột trƣớc đó về trạng thái bình thƣờng. 3. Ngƣời dùng nhấn chuột lên bản đồ.

4. Hệ thống xác định vị trí nhấn chuột trên bản đồ, dịch chuyển bản đồ theo chiều ngƣợc lại

 Các sự kiện khác: không có.

 Post-condition: Nếu Use Case thực hiện thành công, hệ thống sẽ hiển thị vùng không gian bản đồ mới ra cho ngƣời dùng, ngƣợc lại trạng thái bản đồ không thay đổi.

- Phóng to, thu nhỏ bản đồ

 Mô tả: Use-case này mô tả cách thức ngƣời dùng phóng to hay thu nhỏ bản đồ hiển thị.

 Luồng các sự kiện

 Luồng sự kiện chính: Use-case này bắt đầu khi có ngƣời dùng muốn phóng to, thu nhỏ bản đồ hiển thị.

1. Ngƣời dùng nhấn chuột lên button ZoomIn hay ZoomOut 2. Hệ thống xác định loại button đang chọn, tô đậm button

này để ngƣời dùng biết button đã đƣợc chọn. 3. Ngƣời dùng nhấn chuột lên trên bản đồ.

4. Hệ thống xác định vị trí nhấn chuột, sau đó sẽ tùy theo button đƣợc chọn là ZoomIn hay ZoomOut mà hệ thống sẽ phóng to hay thu nhỏ bản đồ tại vị trí đƣợc nhấn chuột. 5. Ngƣời dùng tiếp tục nhấn chuột lên bản đồ để tiếp tục

phóng to hay thu nhỏ bản đồ.

 Các luồng sự kiện khác: không có.

 Post - conditions: Nếu use case thực hiện thành công hệ thống sẽ hiển thị vùng không gian bản đồ đƣợc phóng to hay thu nhỏ ra cho ngƣời dùng, ngƣợc lại trạng thái bản đồ không gian thay đổi.

- Xem thông tin thời tiết các ngày trước

 Mô tả: Use-case này cho phép một ngƣời dùng tìm kiếm thông tin thời tiết. Ngƣời dùng có thể tìm kiếm thông tin trong quá khứ hay trong tƣơng lai tùy thuộc vào thời gian tìm kiếm ngƣời dùng chọn lựa

 Các luồng sự kiện:

 Luồng sự kiện chính: Use case này bắt đầu khi ngƣời dùng muốn tim kiếm thông tin thời tiết

1. Ngƣời dùng xác định ngày, tháng, năm cần tìm 2. Ngƣời dùng nhấn chuột vào button tìm kiếm

3. Hệ thống sẽ xác định thời gian, sau đó hiển thị kết quả ra

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu xây dựng bản đồ trực tuyến trên nền mã nguồn mở (Trang 53)

Tải bản đầy đủ (PDF)

(70 trang)