Công nghệ thông tin<br />
<br />
NGHIÊN CỨU ỨNG DỤNG WEB GIS TRONG QUẢN LÝ DỮ<br />
LIỆU HẠ TẦNG MẠNG THÔNG TIN QUÂN SỰ<br />
Hoàng Tuấn 1*, Nguyễn An Bình2, Phạm Thị Hồng Thanh1<br />
Tóm tắt: Bài báo trình bày kết quả xây dựng hệ thống Web GIS phục vụ quản lý<br />
và điều hành mạng thông tin quân sự. Kiến trúc hệ thống Client-Server sử dụng<br />
Node.js làm máy chủ cung cấp dịch vụ bản đồ, thư viện bản đồ Leaflet kết hợp với<br />
JavaScript và HTML5 Canvas để hiển thị dữ liệu không gian lên bản đồ tile. Cơ sở<br />
dữ liệu GIS được lưu trữ trên SQL Server với hỗ trợ chỉ mục không gian và các lệnh<br />
truy vấn không gian. Ngoài ra, sử dụng nền tảng lập trình giao diện bằng JavaScript<br />
UI cho phép tương tác dữ liệu một cách nhanh chóng, đồng bộ thời gian thực, hiệu<br />
năng cao và dễ sử dụng.<br />
Từ khóa: Web gis; Node.js; Leaflet; Java script; Html5 canvas; Webix; Mạng thông tin.<br />
<br />
1. GIỚI THIỆU CHUNG<br />
Ngày nay, hệ thống thông tin địa lý (GIS) đã có nhiều bước phát triển vượt bậc,<br />
là công cụ hỗ trợ đắc lực cho quá trình tự động hóa và hiện đại hóa công tác quản<br />
lý, điều hành và hỗ trợ quyết định đã được ứng dụng rộng rãi trong hầu hết nhiều<br />
lĩnh vực như quản lý đất đai, quy hoạch xây dựng, hạ tầng kỹ thuật đô thị, môi<br />
trường, hạ tầng viễn thông, du lịch ... [1][2]. Hướng ứng dụng GIS trong lĩnh vực<br />
quân sự đã được triển khai thực hiện hầu hết các nước phát triển trên thế giới, tuy<br />
nhiên đối với Việt Nam vẫn còn là một lĩnh vực mới mẻ cần được tập trung nghiên<br />
cứu và phát triển.<br />
Trong lĩnh vực quản lý hạ tầng mạng viễn thông nói chung, GIS cũng đã được<br />
áp dụng như là một công cụ quản lý hiện đại về cơ sở hạ tầng, quản lý khách hàng,<br />
quy hoạch, thiết kế, giám sát mạng bưu chính viễn thông, và các hoạt động hàng<br />
ngày của các đơn vị và doanh nghiệp ... Tuy nhiên, đối với lĩnh vực hạ tầng mạng<br />
thông tin quân sự cấp Quân khu hiện nay vẫn còn nhiều hạn chế như việc quản lý<br />
còn mang tính chất thủ công, trên giấy, chưa chia sẽ được dữ liệu và thông tin giữa<br />
các phòng ban, cũng như các đơn vị trực thuộc với Quân khu và việc quản lý chưa<br />
đồng bộ ...<br />
Về mặt công nghệ, các nền tảng GIS đã xuất hiện trên máy tính để bàn (GIS<br />
Desktop), mạng truyền tải thông tin (Web GIS) và các thiết bị di động (Mobile<br />
GIS). Trong đó, Web GIS có đầy đủ các chức năng xử lý và phân tích dữ liệu<br />
không gian như một phần mềm GIS Desktop nhưng được chia sẻ trên mạng truyền<br />
tải thông tin phục vụ việc tương tác nhiều người dùng trên một cơ sở dữ liệu<br />
(CSDL) chuẩn hóa và đồng bộ. Thông thường, việc xử lý dữ liệu không gian và<br />
hiển thị kết quả của hệ thống Web GIS thường thông qua một máy chủ bản đồ<br />
(GIS Server) và một thư viện lập trình tương tác bản đồ phía máy khách (Map<br />
Application Interface Program – Map API). Vì vậy, những nghiên cứu về Web GIS<br />
ngoài việc giải quyết các ứng dụng cụ thể còn tập trung vào việc phát triển các<br />
công nghệ mới để tăng cường hiệu suất tương tác của hệ thống.<br />
<br />
<br />
198 H. Tuấn, N. A. Bình, P. T. H. Thanh, “Nghiên cứu ứng dụng … mạng thông tin quân sự.”<br />
Thông tin khoa học công nghệ<br />
<br />
Xuất phát từ nhu cầu thực tế cần phải tự động hóa và hiện đại hóa công tác quản<br />
lý hạ tầng mạng thông tin quân sự, việc ứng dụng Web GIS để xây dựng hệ thống<br />
quản lý hạ tầng mạng thông tin quân sự có ưu điểm là cho phép nhiều người dùng<br />
truy cập cùng một thời điểm, lại quản lý được dữ liệu theo thời gian với dung<br />
lượng lớn thống nhất và không bị trùng lặp, có thể quản lý hạ tầng mạng thông tin<br />
quân sự của đơn vị trên bản đồ một cách trực quan cũng như dễ dàng tra cứu dữ<br />
liệu trên trình duyệt web mà không cần phải yêu cầu cài đặt phức tạp. Điều này<br />
giúp tiết kiệm thời gian, chi phí và đáp ứng kịp thời trong công tác quản lý và khai<br />
thác Mạng thông tin chỉ huy điều hành cấp Quân khu.<br />
Trong phần hai tiếp theo, bài báo sẽ trình bày các công nghệ liên quan gồm<br />
công nghệ dịch vụ máy chủ bản đồ, được thực hiện trong nghiên cứu này sử dụng<br />
Node.js [9], một công nghệ phát triển nền tảng web thế hệ tiếp theo được phát triển<br />
bởi Ryan Dhal trong năm 2009 sử dụng ngôn ngữ JavaScript. Thêm vào đó,<br />
QKGIS sử dụng thư viện bản đồ Leaflet kết hợp với JavaScript và HTML5 Canvas<br />
ở máy khách để xử lý dữ liệu không gian vẽ lên bản đồ theo cấu trúc tile. Đối với<br />
tương tác dữ liệu thuộc tính, QKGIS sử dụng nền tảng lập trình giao diện bằng<br />
JavaScript UI Webix [12] cho phép tương tác dữ liệu một cách nhanh chóng, đồng<br />
bộ thời gian thực, hiệu năng cao. Trong phần ba, bài báo sẽ trình bày phần thiết kế<br />
và thực hiện, sẽ giới thiệu kiến trúc hệ thống triển khai theo mô hình Web GIS,<br />
cách xử lý dữ liệu không gian và thuộc tính hiển thị trên Web GIS và trình bày kết<br />
quả sản phẩm.<br />
2. CÁC CÔNG NGHỆ LIÊN QUAN<br />
Dịch vụ máy chủ bản đồ Node.js<br />
Các công nghệ mới hiện nay cho phép tạo ra các dịch vụ bản đồ mà không cần<br />
sự hỗ trợ của máy chủ bản đồ. Các dịch vụ tự định nghĩa này vẫn tuân thủ theo các<br />
chuẩn không gian địa lý do OGC (Open Geospatial Consortium) – một tổ chức phi<br />
lợi nhuận, dẫn đầu trên thế giới về phát triển các chuẩn dữ liệu địa lý và các dịch<br />
vụ, đã đưa ra các đặc tả về các loại dịch vụ như WMS, WFS, WCS [6]. Các dịch<br />
vụ này có ưu điểm là dễ dàng tùy chỉnh hơn rất nhiều so với các dịch vụ được cung<br />
cấp sẵn từ các phần mềm máy chủ bản đồ.<br />
Node.js là một ứng dụng JavaScript chạy runtime được xây dựng trên nền V8<br />
JavaScript engine - một trình thông dịch JavaScript nổi tiếng bởi hiệu suất sử dụng<br />
rất nhanh do Google phát triển, sử dụng kỹ thuật điều khiển theo sự kiện,<br />
nhập/xuất không đồng bộ [9]. Node.js là một môi trường mã nguồn mở, được phát<br />
triển vào năm 2009 bởi Ryan Dahl để chạy các đoạn mã viết bằng JavaScript tại<br />
máy chủ, với nhiệm vụ giải quyết các vấn đề mà các nền tảng có thể gặp phải về<br />
hiệu suất như thời gian truyền thông mạng, thời gian xử lý các yêu cầu cũng như<br />
phản hồi web. Node.js là một nền tảng được xây dựng để làm ứng dụng nhẹ và có<br />
hiệu năng cao hơn, phù hợp với những ứng dụng thời gian thực chạy trên các thiết<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 199<br />
Công nghệ thông tin<br />
<br />
bị phân tán [4] cũng như khả năng dùng làm máy chủ Web GIS hỗ trợ các dịch vụ<br />
chuẩn OGC [5].<br />
Các dịch vụ web RESTful sử dụng mô hình REST (Representational State<br />
Transfer) như là một kiểu kiến trúc để xây dựng các hệ thống web phân tán quy mô<br />
lớn. Dịch vụ web RESTful được xác định bởi các địa chỉ URI, cung cấp địa chỉ<br />
toàn cầu cho việc truy xuất các tài nguyên và dịch vụ. Các dịch vụ web RESTful<br />
rất nhẹ, dễ dàng thực thi, thay đổi, bao gồm các phương thức GET (lấy thông tin),<br />
PUT (cập nhật), DELETE (xóa) và POST (tạo mới) [10]. Ngoài ra, một trong<br />
những ưu điểm nổi trội của dịch vụ web RESTful là tạo ra các URI truy xuất dữ<br />
liệu độc lập, có nghĩa là có thể xây dựng nhiều hệ thống độc lập với giao diện và<br />
chức năng khác nhau nhưng sử dụng chung một dịch vụ máy chủ.<br />
JavaScript và HTML5 Canvas<br />
Khi các hệ thống CNTT đang phát triển chuyển từ các ứng dụng dựa trên<br />
desktop sang các ứng dụng dựa trên web, đòi hỏi sự tính toán phía Client nhiều<br />
hơn để tăng thời gian đáp ứng từ Server, nhờ các cải tiến trong JavaScript và<br />
HTML5 đã loại bỏ những hạn chế khi sử dụng các trình điều khiển từ phía Server<br />
và cải thiện khả năng sử dụng của các ứng dụng web.<br />
Sức mạnh của JavaScript không chỉ giới hạn trong việc phát triển các<br />
framework giao diện người dùng, mà nó còn mở rộng để phát triển các ứng dụng<br />
mạng phía máy chủ như Node.js. Xu hướng gần đây trong việc sử dụng ứng dụng<br />
di động, internet và trải nghiệm người dùng cuối trên các thiết bị PC, máy tính<br />
xách tay và thiết bị di động, JavaScript và HTML5 đã trở nên phổ biến trong việc<br />
phát triển các ứng dụng độc lập thiết bị.<br />
Như chúng ta đã biết, dữ liệu không gian địa lý là dữ liệu vector bao gồm ba<br />
loại cơ bản: điểm, đường và đa giác. Ngoài ra, mỗi tính năng chứa một số thuộc<br />
tính dữ liệu. Nhược điểm của các công nghệ lập bản đồ truyền thống là tất cả thông<br />
tin thuộc tính và vector hữu ích này đều bị mất trong quá trình chuyển đổi và hiển<br />
thị các điểm, đường thẳng và đa giác đó thành một ảnh tile raster khi hiển thị trên<br />
trình duyệt, khi đó khả năng tương tác với các thông tin trên là không có. Trong<br />
khi đó với công nghệ web hiện nay, các dữ liệu vector không gian có thể kết xuất<br />
dưới dạng vector trên trình duyệt, cho phép người dùng có thể tương tác với các<br />
đối tượng đó trên bản đồ như di chuột, nhấp hoặc nhấn vào vector này và có thể<br />
chỉnh sửa trực tiếp các vector này trong trình duyệt giống như sử dụng các ứng<br />
dụng GIS trên desktop.<br />
Để làm được như vậy, trong nhiều tính năng mà chuẩn HTML5 cung cấp, có<br />
một yếu tố quan trọng để cải thiện GIS đó là HTML5 Canvas [11]. Về cơ bản,<br />
Canvas là một ảnh bitmap được tạo động trong trình duyệt. Hiệu năng kết xuất<br />
vector của nó làm cho nó trở nên hữu ích cho các ứng dụng GIS. Như vậy, việc xử<br />
lý định dạng vector, cộng với tất cả độ phức tạp của ký hiệu và kết xuất sang bản<br />
đồ, bây giờ được chuyển sang phía client để phía server chỉ cần phân phối dữ liệu<br />
<br />
<br />
200 H. Tuấn, N. A. Bình, P. T. H. Thanh, “Nghiên cứu ứng dụng … mạng thông tin quân sự.”<br />
Thông tin khoa học công nghệ<br />
<br />
không gian và thuộc tính mà không phải cần chuyển đổi sang ảnh tile tại Server.<br />
Điều này có nghĩa là các engine xử lý bản đồ trở nên có hiệu quả và đáp ứng tốt<br />
hơn.<br />
Thư viện lập trình tương tác bản đồ<br />
Cùng với sự thay đổi trong lĩnh vực CNTT, cộng đồng GIS cũng đã chấp nhận<br />
những tiến bộ này và phát triển nhiều framework JavaScript để hiển thị bản đồ<br />
trong trình duyệt. GIS và những phân tích của nó chủ yếu phụ thuộc vào khả năng<br />
kết xuất đồ họa và những tính toán hoặc vào phân tích các đối tượng đồ họa (như<br />
là tọa độ) và dữ liệu văn bản.<br />
Leaflets là một trong những thư viện JavaScript mã nguồn mở phổ biến cùng<br />
với nhiều framework JavaScript GIS thương mại khác có sẵn trên thị trường [7].<br />
Đây là thư viện tương tác bản đồ và các chức năng của bản đồ bằng ngôn ngữ<br />
JavaScript và HTML5. Với dung lượng nhẹ, được hỗ trợ gần như đầy đủ các tính<br />
năng truy vấn phân tích GIS, cùng với khả năng tích hợp các bản đồ miễn phí (như<br />
OpenStreetMap), đây là một trong những thư viện được người dùng sử dụng nhiều<br />
và hiện vẫn đang rất phổ biến. Một ưu điểm lớn của Leaflet là có thể được mở rộng<br />
với rất nhiều plugin, có tài liệu hướng dẫn sử dụng đơn giản dễ hiểu, ngoài ra cách<br />
thức lập trình khi sử dụng Leaflet cho phép tạo ra mã nguồn ngắn gọn mà vẫn đầy<br />
đủ các chức năng<br />
Thư viện lập trình JavaScript UI<br />
Các ứng dụng dựa trên nền tảng web thường sử dụng JavaScript cho việc lập<br />
trình ứng dụng. Các nhà phát triển có thể đơn giản việc lập trình các ứng dụng đa<br />
nền tảng bằng cách sử dụng các framework phát triển có sẵn như là Angular,<br />
React, Vue, Webix ... đã được tích hợp sẵn rất nhiều thành phần giao diện và hầu<br />
hết đều tuân thủ theo mô hình lập trình MVC. Việc tích hợp các framework<br />
JavaScript cũng khá đơn giản khi mà chỉ cần thêm tập tin framework JavaScript<br />
vào dự án và tham chiếu đến tập tin đấy trong đoạn mã cụ thể, không cần phải<br />
chỉnh sửa gì môi trường phát triển có sẵn.<br />
Một trong những thư viện lập trình JavaScript UI nổi tiếng là Webix [12], một<br />
framework sử dụng JavaScript và HTML5 để phát triển các ứng dụng đa nền tảng.<br />
Webix được phát triển bởi công ty phần mềm XB Softwares, có trụ sở tại Minsk,<br />
Belarus. Webix cung cấp cho người phát triển khả năng hoàn thiện ứng dụng web<br />
một cách nhanh chóng và tạo cấu trúc hợp lí cho ứng dụng, cho phép xây dựng các<br />
ứng dụng phức tạp ngay trong trình duyệt mà không cần dựa trên Server.<br />
3. THIẾT KẾ VÀ THỰC HIỆN<br />
Bài báo trình bày thiết kế và thực hiện của QKGIS theo bốn phần: kiến trúc<br />
hệ thống, xử lý hiển thị dữ liệu không gian, xử lý dữ liệu thuộc tính và kết quả<br />
sản phẩm.<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 201<br />
Công ngh<br />
nghệệ thông tin<br />
<br />
Kiến<br />
Ki ến trúc hệ thống<br />
Đ<br />
Đểể xây dựng ththành<br />
ành m ột ứng dụng Web GIS ho<br />
một hoàn<br />
àn ch<br />
chỉnh<br />
ỉnh cho QKGIS, bbài ài báo<br />
sử<br />
ử dụng hệ quản trị nội dung (Content Management System - CMS) mã ngu nguồn<br />
ồn mở<br />
mojoPortal [8],<br />
[8], đư<br />
được<br />
ợc phát triển theo hhưướng<br />
ớng đối ttư<br />
ượng<br />
ợng dựa trtrên<br />
ên nền<br />
nền tảng C# vvàà<br />
ASP.NET. Đây là m một<br />
ột trong những CMS thích hợp cho phát triển các ứng dụng<br />
cho các doanh nnghighiệp<br />
ệp vvới<br />
ới khả năng tùy<br />
tùy ch<br />
chỉnh<br />
ỉnh và<br />
và mở<br />
mở rộng cao, khả năng bảo mật<br />
gần<br />
ần nh<br />
nhưư tuyệt<br />
tuyệt đối khi sử dụng trtrên<br />
ên nền<br />
nền tảng ASP.NET vvàà thích hhợp<br />
ợp khi sử dụng<br />
trên nnền<br />
ền tảng máy chủ IIS của Windows Server. Hệ thống CMS nnày ày giúp ti<br />
tiết<br />
ết kiệm<br />
thời gian quản lý, chi phí vận hhành<br />
thời ành và bảo<br />
ảo trì.<br />
tr<br />
<br />
<br />
<br />
<br />
Hình 11. Mô hình ki<br />
kiến<br />
ến trúc Web GIS của bbài<br />
ài báo.<br />
báo<br />
QKGIS ssử ử dụng framework Express của Node.js, mô mô--đun<br />
đun dịch<br />
dịch vụ web nổi<br />
tiếng<br />
ếng nhất trong số các mô mô-đunđun đưđược<br />
ợc đăng ký trong đăng ký npm. Express chịu<br />
trách nhiệm<br />
nhiệm tiếp nhận vvàà trả<br />
tr lời<br />
lời các yêu<br />
yêu ccầu<br />
ầu web, bản thân Node.js cung cấp chức<br />
năng máy ch chủủ web vvàà có ththểể đư<br />
được<br />
ợc thực hiện, tuy nhi<br />
nhiên,<br />
ên, đđểể cấu hhình<br />
ình mômô--đun<br />
đun web<br />
dễễ ddàng,<br />
àng, ch<br />
chẳng<br />
ẳng hạn nh<br />
nhưư ddịch<br />
ịch vụ RESTful, Express llàà mô mô-đunđun phù hhợp<br />
ợp nhất.<br />
Cơ sở<br />
sở dữ liệu QKGIS sử dụng llàà ddữ ữ liệu hạ tầng mạng thô thông<br />
ng tin quân sự sự gồm<br />
dữữ liệu không gian vvàà thu<br />
thuộcộc tính của các đối ttư ượng<br />
ợng như<br />
như Đơn vvị, ị, Tuyến truyền dẫn,<br />
Tủủ hộp, Sợi cáp. Mô hình CSDL QKGIS ssử ử dụng llàà hhệệ quản trị SQL Server vvới ới<br />
đánh chỉchỉ mục tại tr<br />
trường<br />
ờng thuộc tính không gian, có kh khảả năng llưuưu trữ<br />
tr ữ vvàà truy vvấn<br />
ấn<br />
thông tin không gian vvới<br />
thông ới hiệu suất cao. X Xử ử lý hiển thị dữ liệu không gian<br />
Hình 2 thể<br />
thể hiện ssơ<br />
ơ đđồồ xử lý hiển thị dữ liệu không gian của QKGIS llên ên nnền<br />
ền<br />
bản<br />
ản đồ. Khi Client truy ccập ập bản đồ Web GIS bằng tr trình<br />
ình duy<br />
duyệt,<br />
ệt, QKGIS sẽ xác định<br />
kích thước<br />
thước vùng<br />
vùng bbản<br />
ản đồ sẽ hiển tthhịị ở Client vvàà tính toán ra ssố ố lượng<br />
l ợng Tile (kích<br />
thước 256x256) cần hiển thị. QKGIS sử dụng th<br />
thước thư<br />
ư viện<br />
viện Leaflet để tạo ra các Tile<br />
Layer tương ứng, với mỗi Tile Layer ttương ương ứng QKGIS sẽ xử lý dữ liệu không<br />
gian ccủa<br />
ủa Tile Layer đó vvàà vẽ vẽ dữ liệu không gian llên ên nnềnn bbản<br />
ản đồ. Chi ti ết để xử<br />
tiết ử lý<br />
vẽẽ dữ liệu GIS llên<br />
ên m<br />
một<br />
ột Tile Layer thể hiện ở hình 3. 3<br />
Trong Hình 3 thểể hiện ssơ ơ đồ<br />
đồ xử lý th<br />
thành<br />
ành hai kh<br />
khối<br />
ối llàà Client và Server, trong đó<br />
ở Client sẽ tạo các Tile Layer vvàà v vẽẽ dữ liệu vector không gian llên ên Tile Layer, còn ở<br />
Server ssẽẽ là<br />
là cung ccấp<br />
ấp dữ liệu vector không gian gửi cho Client.<br />
<br />
<br />
202 H. Tuấn,<br />
Tuấn, N. A. B<br />
Bình,<br />
ình, P. T. H. Thanh<br />
Thanh,, ““Nghiên<br />
Nghiên ccứu<br />
ứu ứng dụng … mạng sự.””<br />
ạng thông tin quân sự<br />
Thông tin khoa học công nghệ<br />
<br />
<br />
Mở bản đồ<br />
Web GIS Xác định kích thước vùng Tính số lượng Tile<br />
hiển thị bản đồ cần hiển thị<br />
<br />
<br />
Clients Tile Tile Tile<br />
<br />
Tile Tile Tile<br />
<br />
Với mỗi Tile Layer<br />
Tile Tile Tile<br />
(Leaflet.js)<br />
Tile Tile Tile Xử lý vẽ dữ liệu GIS lên Khởi tạo các Tile Layer<br />
một Tile Layer tương ứng tương ứng<br />
<br />
<br />
Clients<br />
<br />
<br />
Hình 2. Sơ đồ xử lý hiển thị dữ liệu không gian lên bản đồ.<br />
Chi tiết xử lý mô tả như sau: đầu tiên QKGIS sẽ kiểm tra xem những Tile<br />
Layer đã có dữ liệu lưu ở cache chưa, nếu Tile Layer nào có dữ liệu lưu ở cache rồi<br />
thì dùng HTML5 Canvas để vẽ lên trên Tile Layer lên bản đồ. Nếu chưa thì sẽ xác<br />
định các Tile Layer lấy dữ liệu từ server và sẽ gửi request XMLHttpRequest thông<br />
qua URI theo định dạng /rest/geodatas/[mapid]/[layerid]/tile/[z]/[x]/[y], trong đó<br />
biến [mapid] là id của bản đồ hiển thị, [layerid] là id của lớp bản đồ hiển thị (ví dụ:<br />
lớp tủ hộp, lớp sợi cáp …), [z] là tỉ lệ zoom, [x] và [y] là tọa độ mảnh tile trong<br />
vùng hiển thị.<br />
CLIENTS SERVER<br />
<br />
<br />
Ur i X M LH t tp R e q u e s t<br />
(XMLHttpRequest) / r es t / g eo d at a s / [ ma p id ] / [ l a y e r i d ] / ti l e / [ z ] / [ x ] / [ y ]<br />
Load dữ liệu GIS Kiểm tra<br />
No Request dữ liệu GIS<br />
cho Tile Layer có cache tile?<br />
của Tile Layer<br />
<br />
<br />
<br />
<br />
Yes<br />
Load dữ liệu cache (Node.js RESTful Service)<br />
của Tile Layer Xử lý Route tham chiếu<br />
Đánh chỉ mục<br />
thuộc tính không gian<br />
<br />
<br />
(HTML5 Canvas) (Node.js Express) Query data<br />
Vẽ lớp nhãn bản đồ Truy vấn dữ liệu<br />
<br />
No CSDL<br />
Tile Tile Tile SQL Server<br />
(HTML5 Canvas) (Node.js Express)<br />
Tile Tile Tile Yes Hiển thị nhãn? Vẽ dữ liệu GIS lên JSON Chuyển đổi dữ liệu trả về Return data<br />
Tile Layer thành Json<br />
<br />
Hiển thị dữ liệu GIS<br />
trên Tile Layer<br />
<br />
<br />
<br />
Hình 3. Sơ đồ chi tiết xử lý vẽ dữ liệu GIS lên một Tile Layer.<br />
Sau khi gửi request đến Server, dịch vụ RESTful của Node.js sẽ nhận được<br />
request URI và ánh xạ đến hàm truy vấn dữ liệu tương ứng như hình 4.<br />
<br />
<br />
<br />
<br />
Hình 4. Hàm xử lý Request URI của dịch vụ RESTful Node.js.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 203<br />
Công nghệ thông tin<br />
<br />
Trong hàm truy vấn dữ liệu sẽ lấy dữ liệu từ CSDL lên, chuyển đổi dữ liệu<br />
thành định dạng Json và gửi dữ liệu Json về Client như hình 5.<br />
<br />
<br />
<br />
<br />
Hình 5. Cấu trúc dữ liệu json trả về Client.<br />
Tại Client, khi nhận được dữ liệu Json từ Server gửi về, QKGIS sẽ dùng<br />
JavaScript và HTML5 Canvas để vẽ dữ liệu vector không gian lên trên Tile Layer,<br />
vẽ xong sẽ kết xuất thành ảnh đối tượng trên lớp bản đồ.<br />
Xử lý dữ liệu thuộc tính<br />
Để xử lý xem/thêm/xóa/sửa đối với dữ liệu thuộc tính, QKGIS sử dụng thư<br />
viện lập trình JavaScript UI Webix với cách xử lý dữ liệu theo sơ đồ ở hình 6.<br />
CLIENTS SERVER<br />
Ur i X M LH t tp R e q u e s t<br />
/rest/geodatas/:featureclass<br />
<br />
Mở bản đồ<br />
Web GIS (XMLHttpRequest) (Node.js RESTful Service)<br />
Get | Post | Push | Delete Xử lý Route tham chiếu<br />
Đánh chỉ mục<br />
Clients thuộc tính không gian<br />
<br />
<br />
(Node.js Express)<br />
Query data<br />
Select|Insert|Update|Delete<br />
CSDL<br />
SQL Server<br />
(Node.js Express)<br />
(Webix Controls)<br />
JSON Chuyển đổi dữ liệu trả về Return data<br />
Xử lý dữ liệu JSON (nếu có)<br />
thành Json (nếu có)<br />
<br />
Hiển thị kết quả<br />
dữ liệu<br />
<br />
<br />
Hình 6. Sơ đồ xử lý dữ liệu thuộc tính dùng JavaScript UI Webix.<br />
Cũng giống như xử lý hiển thị dữ liệu không gian, khi Client gửi một yêu cầu<br />
xem/thêm/xóa/sửa dữ liệu thuộc tính, Webix trong QKGIS sẽ tạo ra các request<br />
URI XMLHttpRequest tương ứng Get/Post/Push/Delete và gửi về Server, dịch vụ<br />
RESTful của Node.js sẽ nhận được request URI và ánh xạ đến hàm xử lý dữ liệu<br />
tương ứng với select/insert/update/delete của SQL Server. Tùy từng lệnh request,<br />
SQL Server sẽ trả về kết quả dữ liệu tương ứng, QKGIS sẽ chuyển đổi sang định<br />
dạng Json và gửi về Client. Tại Client, khi nhận được dữ liệu Json từ Server gửi về,<br />
QKGIS sẽ dùng các trình điều khiển trong thư viện Webix để xử lý và hiển thị dữ<br />
liệu lên trình duyệt.<br />
Kết quả sản phẩm<br />
<br />
<br />
204 H. Tuấn, N. A. Bình, P. T. H. Thanh, “Nghiên cứu ứng dụng … mạng thông tin quân sự.”<br />
Thông tin khoa học công nghệ<br />
<br />
<br />
<br />
<br />
Hình 7. Ứng dụng QKGIS trong hạ tầng mạng thông tin quân sự.<br />
Dữ liệu chuyên đề trong nghiên cứu này bao gồm dữ liệu hạ tầng mạng thông<br />
tin quân sự, các đối tượng không gian quản lý gồm có Đơn vị, Tuyến truyền dẫn,<br />
Tủ hộp, Sợi cáp. Trong hình 7, QKGIS hiển thị các dữ liệu không gian lên bản đồ,<br />
các dữ liệu này được phân loại thành nhiều lớp chi tiết khác nhau được hiển thị<br />
theo hình cây và cho phép lọc ẩn/hiển lớp dữ liệu đó trên bản đồ.<br />
QKGIS cho phép cấu hình định dạng dữ liệu hiển thị không gian khi hiển thị<br />
lên bản đồ và chỉnh sửa trực tiếp trên bản đồ. Hình 8 thể hiện vẽ các tuyến sợi cáp<br />
bám theo đường địa hình.<br />
<br />
<br />
<br />
<br />
Hình 8. Hiển thị dữ liệu không gian trên Tile Layer của Leaflet.<br />
Trong hình 9, QKGIS dùng trình điều khiển TreeTable của Webix để hiển thị<br />
để hiển thị dữ liệu thuộc tính là danh sách các đơn vị với các chức năng<br />
thêm/xóa/sửa dữ liệu đơn vị.<br />
<br />
<br />
<br />
<br />
Hình 9. Hiển thị dữ liệu thuộc tính bằng TreeTable của Webix.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 205<br />
Công nghệ thông tin<br />
<br />
Ứng dụng QKGIS đã đáp ứng các yêu cầu quản lý, cập nhật, chia sẻ, cung cấp<br />
thông tin về hạ tầng mạng thông tin phục vụ công tác quản lý hạ tầng mạng thông<br />
tin quân sự cấp Quân khu. Việc có một cơ sở dữ liệu thông tin đầy đủ về hạ tầng<br />
mạng thông tin quân sự cấp Quân khu chạy trên môi trường mạng truyền số liệu<br />
quân sự đã giúp cho các phòng, ban chuyên môn và cán bộ, nhân viên ngành thông<br />
tin của các đơn vị dễ dàng tra cứu thông tin cần thiết cho công tác tham mưu và<br />
thực hiện các nhiệm vụ được giao một cách nhanh chóng, chính xác. Có thể nói,<br />
việc ứng dụng GIS phục vụ công tác quản lý mạng thông tin quân sự là bước kế<br />
tiếp, tiếp tục làm tốt vai trò thúc đẩy các hệ thống thông tin địa lý khác nối tiếp<br />
nhau ra đời. Từ đó, hình thành nên hệ thống thông tin địa lý ngày càng hoàn thiện<br />
hơn; là tiền đề, động lực thúc đẩy các đơn vị có điều kiện ứng dụng CNTT để hiện<br />
đại hóa công tác quản lý, điều hành.<br />
4. KẾT LUẬN<br />
Bài báo đã đưa ra mô hình xây dựng một Web GIS hoàn chỉnh sử dụng<br />
Node.js làm máy chủ bản đồ. Để hiển thị dữ liệu không gian trên bản đồ, bài báo<br />
cũng đã sử dụng JavaScript và HTML5 Canvas để vẽ trên layer của Leaflet. Ngoài<br />
ra, bài báo cũng đã xây dựng giao diện Web GIS bằng thư viện JavaScript UI<br />
Webix để đưa xử lý giao diện cũng như xử lý hiển thị dữ liệu thuộc tính về phía<br />
Client nhằm giảm bớt công việc xử lý ở Server. Cách tiếp cận xây dựng hệ thống<br />
trên nền tảng mã nguồn mở giúp tiết kiệm chi phí bản quyền phần mềm và các chi<br />
phí bảo trì, nâng cấp phần mềm của nhà cung cấp. Mặc dù các kết quả của còn hạn<br />
chế nhưng đã được ứng dụng vào công tác quản lý và khai thác hạ tầng mạng<br />
thông tin quân sự tại đơn vị thụ hưởng cho thấy sự hiệu quả của việc ứng dụng<br />
công nghệ Web GIS. Đây cũng là tiền đề cho việc mở rộng ứng dụng hệ thống<br />
Web GIS vào quản lý hạ tầng mạng thông tin quân sự về sau.<br />
TÀI LIỆU THAM KHẢO<br />
[1]. H. B. Hùng, “Ứng dụng GIS trong quản lý hạ tầng ngầm cáp viễn thông và<br />
quy hoạch trạm BTS trên địa bàn thành phố Huế”, Đề tài NCKH cấp Bộ<br />
Thông tin và truyền thông, 2011.<br />
[2]. P. T. N. Quyên, “Ứng dụng công nghệ GIS trong quản lý hạ tầng viễn thông<br />
trên địa bàn tỉnh Quảng Nam”, Đề tài NCKH cấp tỉnh Quảng Nam, 2012.<br />
[3]. Boulos, M., Warren, J., Gong, J., and Yue, P. “Web GIS in practice VIII:<br />
HTML5 and the canvas element for interactive online mapping”. International<br />
Journal of Health Geographics, 9 (1), 14, 2010.<br />
[4]. Chhetri, N., “A Comparative Analysis of Node.js (Server-Side JavaScript)”.<br />
Culminating Projects in Computer Science and Information Technology, St.<br />
Cloud State University, 2016.<br />
<br />
<br />
<br />
206 H. Tuấn, N. A. Bình, P. T. H. Thanh, “Nghiên cứu ứng dụng … mạng thông tin quân sự.”<br />
Thông tin khoa học công nghệ<br />
<br />
[5]. Jun, S. H; Doh, K. T, “Design and Implementation of Web GIS Server Using<br />
Node.js”, Journal of KSIS, 21(3):45-53, 2013.<br />
[6]. Li, Z., et al., “An optimized framework for seamlessly integrating OGC Web<br />
Services to support geospatial sciences”. International Journal of<br />
Geographical Information Science, 2011. 25(4): p. 595-613.<br />
[7]. Leaflet, 2018, https://leafletjs.com.<br />
[8]. mojoPortal, https://www.mojoportal.com.<br />
[9]. Node.js, 2018, https://nodejs.org.<br />
[10]. Sheng, Q.Z., et al., “Web services composition: A decade’s overview.<br />
Information Sciences”, 2014. 280: p. 218-238.<br />
[11]. HTML5-A vocabulary and associated APIs for HTML and XHTML,<br />
http://www.w3.org/TR/html5/]<br />
[12]. Webix, 2018, https://webix.com<br />
ABSTRACT<br />
APPLICATION OF WEB GIS TECHNOLOGY IN MILITARY INFORMATION<br />
NETWORK INFRASTRUCTURE DATA MANAGEMENT<br />
This paper presents a Web-based GIS system for military information<br />
network management and operation. The system based on Client-Server<br />
architecture, using Node.js as GIS Server, integrated Leaflet and JavaScript -<br />
HTML 5 Canvas for map tile. GIS database stored in SQL Server with spatial<br />
index supporting and standard spatial query function. In addition, Javascript<br />
UI platform enables to transfer data quickly, real-time data synchronization,<br />
easy to use and high performance.<br />
Keywords: Web gis; Node.js; Leaflet; Javascript; Html5 canvas; Webix; Information network.<br />
<br />
<br />
Nhận bài ngày 28 tháng 6 năm 2018<br />
Hoàn thiện ngày 24 tháng 9 năm 2018<br />
Chấp nhận đăng ngày 05 tháng 11 năm 2018<br />
<br />
1<br />
Địa chỉ: Viện Công nghệ thông tin – Viện KH-CN quân sự - Bộ Quốc phòng;<br />
2<br />
Viện Địa lý Tài nguyên Thành phố Hồ Chí Minh (VAST).<br />
*<br />
Email: hgtuan2003@gmail.com.<br />
<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 207<br />