Từ nhiều thập niên nay, một số lƣợng lớn ứng dụng dịch vụ web đã đƣợc phát triển trong nhiều lĩnh vực nhƣ điều khiển, quản lý tài nguyên, dự báo, trong lĩnh vực quân sự,… Thông thƣờng các dữ liệu này sẽ rất lớn và hao tốn thời gian, công sức để xây dựng. Vấn đề trao đổi tài nguyên dữ liệu đƣợc đặt ra nhằm giảm thiểu chi phí xây dựng và quản lý dữ liệu.
Ví dụ: Dữ liệu bản đồ thời tiết dùng cho nhóm các ứng dụng tra cứu thời tiết trong 1 vùng. Dữ liệu này cũng có thể được dùng cho các nhóm ứng dụng tìm thông tin nơi chốn như địa danh du lịch, khu nghỉ mát, hoặc nhóm ứng dụng liên quan đến hệ định vị toàn cầu, v.v…
Bài toán chia sẻ dữ liệu đƣợc giải quyết bằng 2 chuẩn trao đổi dữ liệu WebGIS do tổ chức OGC (Open Geographic Consortium) định nghĩa.
- Web Map Service/Server (WMS)
WMS là mô ̣t trong các chuẩn phổ biến nhất của OGC . Trong đó Websever sẽ trở thành web map server có service phục vụ cho chia xẻ dữ liệu. Các hoạt động mà client có thể thực hiện thông qua service này gồm : nhận về mô tả các bản đồ, nhận về bản đồ , các thông tin truy vấn các đặc điểm đƣợc thể hiện trên bản đồ . WMS ta ̣o ra các bản đồ dƣới da ̣ng ảnh . Các bản đồ này tự bản thân chúng không chƣ́a dƣ̃ liê ̣u.
Chuẩn này không áp dụng cho việc nhận về dữ liệu thô (dữ liệu chƣa xử lý dạng thuộc tính hay không gian) mà thƣờng nhận về một ảnh bản đồ dạng đồ họa. Những bản đồ này thƣờng đƣợc tạo ra với các dạng nhƣ PNG, GIF, JEPG hoặc cũng có thể là dƣới dạng các yếu tố đồ họa nhƣ SVG (dạng XML) hoặc là định dạng WebCGM (Web Computer Graphics Metafile)
Mô ̣t WMS cơ bản cho phép Client kết nối và lấy bản đồ thông qua các phƣơng thƣ́c:
Hình 3.2. Các chức năng của một Web Map Service
Khả năng hỗ trợ - GetCapabilties (bắt buộc): Client nhận về một mô tả thông tin về WMS, các tham số đƣợc chấp nhận và hỗ trợ, bảng mô tả thƣờng dƣới dạng file XML.
Lấy bản đồ - GetMap (bắt buộc): Client nhận về một ảnh bản đồ phù hợp với tham số mà client gửi lên server. Các tham số có thể đƣợc nhúng vào trong một URL (Uniform Resource Locator) của dịch vụ.
Lấy thông tin đặc điểm - GetFeatureInfo (không bắt buộc): trả về thông tin liên quan đến một đối tƣợng đƣợc hiển thị trên bản đồ tại vị trí X, Y. Phƣơng thức này cho phép Client có thể truy vấn để có thêm thông tin về một đối tƣợng.
Ngoài ra, WMS còn cung cấp cho Client kiểm soát các kiểu hiển thi ̣ bản đồ thông qua Styled Layer Desrciptor (SLD).
- Web Feature Service/Server (WFS)
Đây cũng là chuẩn do OGC đƣa ra. Trong đó Websever giờ đƣợc gọi là Web Feature có service phục vụ việc chia xẻ dữ liệu. Tuy nhiên thay vì trả một ảnh bản đồ dạng đồ họa thì Web Feature Service sẽ gửi trả về thông tin không gian và thông tin thuộc tính có liên quan dƣới dạng file GML (Geography Markup Languge), dạng XML và sau đó client sử dụng file XML này làm dữ liệu để tạo ra ảnh bản đồ. WFS hoàn toàn tƣơng tự nhƣ WMS về các chức năng , cách làm việc chỉ khác nhau dạng dữ liệu trao đổi . Mô ̣t WFS cơ bản cho phép Client kết nối và lấy dƣ̃ liê ̣u về theo các phƣơng thƣ́c :
o GetCapabilities: trả về tài liệu XML mô tả chức năng của WFS.
o DescribeFeatureType: trả về một lƣợc đồ XML định nghĩa các lớp đối tƣợng.
o GetFeature: trả về một tập các đối tƣợng dữ liệu thoả mãn các ràng buộc đƣợc mô tả trong yêu cầu .
Máy Client WMS Khả năng hỗ trợ Thông tin đặc điểm Mô tả Layer Loại yêu cầu Bản đồ
Ngoài ra, WFS còn cho phép Client thƣ̣c hiê ̣n các giao tác ta ̣o , xóa, sƣ̉a các đối tƣơ ̣ng.
3.2.5. Ứng dụng RSS cập nhật mới cơ sở dữ liệu thời tiết
Web bản đồ thời tiết nhắm đến ngƣời sƣ̉ dụng là nhƣ̃ng ngƣời truy câ ̣p web bình thƣờng, không đòi hỏi có kiến thƣ́c nhiều về lĩnh vƣ̣c GIS . Vì thế, hê ̣ thống đƣơ ̣c xây dƣ̣ng dƣ̣a trên kiến trúc Client – Server. Chiến lƣợc phát triển theo hƣớng Server -side đƣợc cho ̣n để giảm thiểu các chức năng phân tích cho phía ngƣời dùng.
Hình 3.3. Mô hình hệ thống
- 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.