You are on page 1of 23

3.1.

Kiến trúc phần mềm


3.1.1. Tổng quan về Kiến trúc chính phủ điện tử và vị trí của Hệ thống quản lý
CSDL về KTTV và BĐKH
Hệ thống phần mềm quản lý CSDL về KTTV và BĐKH là một hệ thống thông tin nằm
trong tổng thể và là một bộ phận không thể tách rời của Hệ thống các ứng dụng quản lý
dữ liệu, văn bản điều hành, chỉ tiêu thống kê,... thuộc ngành tài nguyên môi trường. Xây
dựng hệ thống trên phải tuân thủ chặt chẽ các quy định về mô hình tổng thể về xây dựng
hệ thống thông tin của ngành.
Khung Kiến trúc chính phủ điện tử ngành tài nguyên và môi trường đang được xây dựng
với nhiều mục tiêu trong đó có các mục tiêu lớn sau:
- Xác định bản quy hoạch tổng thể về ứng dụng CNTT của Bộ TN&MT. Trong đó có các
thành phần và mối quan hệ giữa chúng, gắn liền ứng dụng CNTT với các hoạt động
nghiệp vụ;
- Tăng cường khả năng kết nối, liên thông, tích hợp, chia sẻ, sử dụng lại thông tin, cơ sở
hạ tầng thông tin;
- Tăng cường khả năng giám sát, đánh giá đầu tư, đảm bảo triển khai ứng dụng công
nghệ thông tin đồng bộ, hạn chế trùng lặp, tiết kiệm chi phí, thời gian triển khai của cơ
quan, đơn vị;
- Nâng cao tính linh hoạt khi xây dựng các thành phần, hệ thống thông tin theo điều kiện
thực tế;
- Tạo cơ sở xác định các thành phần, hệ thống CNTT cần xây dựng và lộ trình, trách
nhiệm triển khai CPĐT tại Bộ TN&MT.
Hệ thống phần mềm quản lý CSDL về KTTV và BĐKH thành phố Hà Nội được xây
dựng cũng không nằm ngoài kiến trúc trên.
Mô hình Khung Kiến trúc chính phủ điện tử ngành tài nguyên môi trường như sau:
Sơ đồ tổng thể Kiến trúc Chính phủ điện tử Bộ TN&MT, phiên bản 1.0
Hệ thống phần mềm quản lý CSDL về KTTV và BĐKH thuộc nhóm Hệ thống thông tin
các tỉnh/thành phố, Sở Tài nguyên và Môi trường được kết nối với các hệ thống khác
trong và ngoài ngành tài nguyên môi trường cũng như trên và ngoài địa bàn thành phố Hà
Nội dựa trên các nền tảng kết nối liên thông các hệ thống thông tin ở Trung ương và địa
phương (NGSP) hoặc nền tảng chia sẻ, tích hợp cấp Bộ, tỉnh (LGSP). Các nền tảng này
bao gồm các dịch vụ, ứng dụng có thể chia sẻ, dùng chung tới cấp quốc gia để kết nối,
liên thông các hệ thống thông tin có thể đạt đến quy mô toàn quốc.
3.1.2. Mô hình ứng dụng
Mô hình kết nối, liên thông giữa Hệ thống CSDL về KTTV và BĐKH với các hệ thống
khác:

Mô hình kết nối giữa hệ thống CSDL về KTTV và BĐKH


Để đáp ứng các mục tiêu đó, hệ thống CSDL về KTTV và BĐKH thành phố Hà Nội được
thiết kế theo hướng đa tầng như sau:
Hệ thống được xây dựng theo kiến trúc 3 tầng, theo hướng bán dịch vụ (semi SOA).
Trong đó, các giao dịch/truy xuất dữ liệu từ các phân hệ phần mềm trong Tầng Ứng dụng
đến Tầng dữ liệu sẽ thực hiện thông qua Tầng công nghệ, dịch vụ, tất cả các giao dịch dữ
liệu khác (cung cấp cho hoặc đến từ các hệ thống khác) sẽ thực hiện theo hướng dịch vụ
(công nghệ webservice).
Tầng ứng dụng:
Cung cấp các chức năng của phần mềm thông qua các giao diện người dùng cuối, để thu
thập thông tin, dữ liệu từ người dùng qua thiết bị ngoại vi (chủ yếu) là bàn phím, sau đó
trình bày, hiển thị lại thông tin, dữ liệu cho người dùng xem, tra cứu. Giao diện thu thập
và hiển thị thông tin, dữ liệu với người dùng tuỳ thuộc vào từng nghiệp vụ mà chức năng
phần mềm đó hỗ trợ.
Trong mô hình trên, là một loạt các giao diện người dùng cuối được gộp nhóm vào thành
04 nhóm chức năng chính của phần mềm:
 Quản trị hệ thống
 Quản lý bản đồ chuyên đề
 Cập nhật dữ liệu khí tượng thủy văn
 Quản lý và cung cấp dịch vụ
Tầng công nghệ, dịch vụ:
Cung cấp các dịch vụ, các thư viện dùng chung cho Tầng Ứng dụng. Với cách tiếp cận
này, Nhà phát triển có thể xây dựng các ứng dụng phần mềm theo nhu cầu quản lý hiện
tại và đáp ứng nhu cầu nâng cấp, mở rộng ứng dụng phần mềm trong tương lai.
Trong mô hình trên, Tầng công nghệ, dịch vụ được chia thành các nhóm:
 Nhóm các Dịch vụ cơ bản: cung cấp các dịch vu cơ bản, cốt lõi nhất trong hệ
thống (thông thường hệ thống thông tin tiêu chuẩn nào cũng có các dịch vụ
này.
 Nhóm các thư viện dùng chung: cung cấp các dịch vụ tác nghiệp cho tầng ứng
dụng sử dung nhằm chuẩn hoá và tránh dư thừa mã nguồn.
Tầng dữ liệu:
Tổ chức lưu trữ CSDL, và file dữ liệu. Tầng này thực hiện các nghiệp vụ liên quan đến
lưu trữ và truy vấn dữ liệu từ Tầng công nghệ, dịch vụ. Tầng này sẽ sử dụng các dịch vụ
của các hệ quản trị CSDL để thực hiện nhiệm vụ của mình.
Trong mô hình trên, Tầng dữ liệu được chia thành 02 CSDL phục vụ việc tác nghiệp
thường xuyên là CSDL Quản trị hệ thống và CSDL KTTV và BĐKH.
 CSDL Quản trị hệ thống: Lưu trữ toàn bộ thông tin liên quan đến hệ thống
như: thông tin người dùng hệ thống; thông tin phân quyền về chức năng, dữ
liệu đến từng người dùng (và/hoặc thông qua nhóm người dùng); thông tin
quản lý giao diện hệ thống,...
 CSDL KTTV và BĐKH: lưu trữ toàn bộ các thông tin liên quan đến dữ liệu
KTTV và BĐKH.
3.2. Công nghệ xây dựng và phát triển phần mềm
3.2.1. Hệ điều hành máy chủ
Hệ điều hành máy chủ là một phần mềm hệ thống được thiết kế đặc biệt để làm nền cho
việc vận hành các chương trình, ứng dụng đến từ các máy tính khác nhau trong mạng lưới
các máy tính. Hiện nay có các hệ điều hành phổ biến sau:
Windows Server: là dòng hệ điều hành được sản xuất bởi tập đoàn Microsoft với giao
diện thân thiện, quen thuộc với người dùng vốn đã quen sử dụng Windows.
Linux: là hệ điều hành mã nguồn mở được phát minh bởi Linus Torvalds vào năm 1991.
Hiện nay, Linux được phát triển liên tục bởi các lập trình viên trên thế giới. Điểm mạnh
của Linux là hoàn toàn miễn phí và có độ tin cậy cao.
Mac OS X Server là hệ điều hành máy chủ được sản xuất bới Apple, bao gồm các công
cụ để tạo thuận lợi cho quản lý nhóm làm việc của dòng máy OS X, đồng thời cung cấp
dịch vụ mạng. Hệ điều hành này được dùng trên các máy chủ Mac Pro và Mac Mini chạy
OS X. OS X Server là một ứng dụng máy chủ được thiết kế dành riêng cho cả nhóm thiết
bị OS X và iOS. Chức năng chính của OS X Server là giúp người dùng nhóm thiết bị
Apple đơn giản hoá mọi thao tác chia sẻ thư mục, lên lịch công việc, đồng bộ hoá danh
bạ, tuỳ chỉnh các thiết bị Mac/iPhone/iPad, truy cập mạng từ xa.... Hiện nay, tất cả các
máy tính phục vụ cho các công tác trong phạm vi nhiệm vụ đều sử dụng hệ điều hành
Windows (các phiên bản), không phù hợp với môi trường làm việc của Mac OS X Server,
chính vì vậy trong phạm vi nhiệm vụ này sẽ không xét đến hệ điều hành Mac OS X
Server.
Trước đây, giữa hosting (dịch vụ lưu trữ) Linux và Windows luôn có một sự khác biệt rất
lớn. Danh sách ứng dụng, ngôn ngữ lập trình, cơ sở dữ liệu... được hỗ trợ trong mỗi nền
tảng rất khác nhau. Tuy nhiên, ngày nay, trong xu thế hosting hỗn hợp hiện nay, không có
nhiều điểm thực sự phân cách Linux và Windows.
Điểm khác biệt đầu tiên là cách thức bạn truy cập vào máy chủ. Nói chung, cả hai đều hỗ
trợ FTP, cách truy cập phổ biến nhất hiện nay. Tuy nhiên, chỉ có Linux là hỗ trợ telnet
hoặc ssh. Dù vậy, điểm này không quan trọng với đa số người dùng. Rất ít người cần
telnet hoặc ssh để thực hiện một số lệnh hay sửa đổi trực tiếp trên máy chủ. Hơn nữa, đa
số đều có thể thực hiện sự thay đổi ở máy tính cá nhân, sau đó dùng ftp, telnet hoặc ssh
để chuyển lên máy chủ.
Khác biệt thứ hai là Linux và Windows hỗ trợ các ngôn ngữ khác nhau. Trong khi Linux
thường có xu hướng hỗ trợ PHP, Perl và CGI thì Windows lại đi kèm với ColdFusion,
ASP và .NET. Tương tự với hệ cơ sở dữ liệu, cả hai đều hỗ trợ MySQL. Nhưng nếu dùng
Access hay MS SQL, bạn sẽ phải cần hosting Windows.
Về mặt bảo mật, Khi gặp các vấn đề về lỗ hổng hệ thống, Linux vá lỗi nhanh hơn nhờ
tính miễn phí và nguồn mở của mình. Các hosting Windows thì thường chỉ vá lỗi mỗi khi
có bản Service Pack mới (thường thì mỗi năm mới ra một bản). Ngoài ra, việc bảo mật
còn phụ thuộc vào quản trị mạng. Với một người quản trị tốt thì Website của bạn sẽ luôn
an toàn cho dù bạn dùng hệ điều hành nào đi nữa. Mặt khác vấn đề bảo mật hệ thống sẽ
được nâng cao hơn nữa khi mà hệ thống máy chủ giao tiếp dưới sự giám sát của một hệ
thống tường lửa đủ tin cậy.
Vấn đề bản quyền lợi thế của Linux chính là nền tảng mã nguồn mở và miễn phí trong
khi nếu sử dụng Windows Server sẽ phải đầu tư một khoảng tiền cho việc mua bản quyền
sử dụng. Windows server là một phần mềm thương mại của Microsoft, vì vậy, việc tùy
biến các chức năng theo ý muốn của người sử dụng hoàn toàn phụ thuộc vào sự cho phép
của nhà phát hành. Còn Linux là một phần mềm mã nguồn mở, chỉ cần có sự hiểu biết về
hệ điều hành này là người phát triển hoàn toàn có thể chỉnh sửa dễ dàng theo ý của họ.
Tuy nhiên điều này lại làm cho hệ điều hành Linux Server dễ bị các hacker chuyên
nghiệp đột nhập và thay đổi, điều khiển hệ thống theo hướng bất lợi cho người sử dụng.
Tiêu chí lựa chọn hệ điều hành máy chủ hiện nay không quá quan trọng vào việc so sánh,
lựa chọn theo ưu điểm của từng hệ điều hành, bởi vì mỗi một hệ điều hành máy chủ đều
có những lợi thể nhất định và ngày càng được phát triển để giảm thiểu các bất lợi, nhằm
hướng tới lợi ích đầy đủ nhất cho người dùng. Bởi vậy, việc lựa chọn hệ điều hành máy
chủ trong phạm vi dự án sẽ phụ thuộc vào cơ sở vật chất, điều kiện về trang thiết bị, phần
mềm hiện tại đang sử dụng và trình độ, năng lực người quản trị hệ thống của đơn vị được
giao vận hành hệ thống, ở đây là Trung tâm Công nghệ thông tin – Sở Tài nguyên và Môi
trường thành phố Hà Nội.
Kết quả khảo sát về hạ tầng, trang thiết bị có tại Trung tâm Công nghệ thông tin – Sở Tài
nguyên và Môi trường thành phố Hà Nội như sau:

Tên máy vi Tình trạng


STT Cấu hình
tính hoạt động

CPU: 2x Quad core Inter Xeon Proc E5440


(2.83 Ghz, RAM: 4GB, HDD: 4 x 500 GB,
Máy chủ Monitor Lenovo 17" LCD. OS: Windows Hoạt động
1
IBM Server bình thường

CPU: 2x Quad core Inter Xeon Proc E5440


(2.83 Ghz, RAM: 4GB, HDD: 4 x 500 GB,
Máy chủ Monitor Lenovo 17" LCD. OS: Windows
2 Hoạt động
IBM Server
bình thường

CPU: 2x Quad core Inter Xeon Proc E5440


(2.83 Ghz, RAM: 4GB, HDD: 500 GB,
Máy chủ Monitor Lenovo 17" LCD. OS: Windows
3 Hoạt động
IBM Server
bình thường
CPU: 2x Quad core Inter Xeon Proc E5440
(2.83 Ghz, RAM: 4GB, HDD: 500 GB,
4 Máy chủ
Monitor Lenovo 17" LCD. OS: Windows
Tên máy vi Tình trạng
STT Cấu hình
tính hoạt động
Hoạt động
IBM Server
bình thường

CPU: Xeon 3.0GHz, RAM 512Mb, HDD:


Máy chủ 150Gb, Monitor: LCD LG 15’’. OS: Hoạt động
5 Windows Server
Dell bình thường

CPU: E5405 Xeon 2.0GHz, RAM: 1Gb,


Máy chủ HDD: 280Gb, Monitor: LCD LG 15’’. OS: Hoạt động
6 Windows Server
CMS bình thường

CPU: E 5430 2.66GHz, RAM: 2Gb, HDD:


Máy chủ 150Gb, Monitor: LCD LG 15’’. OS: Hoạt động
7 Windows Server
IBM bình thường

CPU: 2.26GHz, RAM: 512 Gb, HDD:


Máy chủ
8 36,4Gb, Monitor: HP CRT 15’’. OS: Hoạt động
IBM
Windows Server bình thường

CPU: 2.26GHz, RAM: 512 Gb, HDD:


Máy chủ 36,4Gb, Monitor: HP CRT 15’’. OS: Hoạt động
9 Windows Server
IBM bình thường

Intel xeonR CPU E5440 @2.83Ghz(8CPUs),


Máy chủ ~2.8Ghz, HDD 500GB, Ram 4GB. OS: Hoạt động
10 Windows Server
IBM X3500 bình thường

SoloMon 540 CPU: 2.26GHz, RAM: 512


Máy chủ Gb, HDD: 36,4Gb, OS: Windows Server Hoạt động
11
CMS bình thường

CPU: Intel Xeon Quad Core 2.33GHz, FSB:


Máy chủ 1333MHz, HDD 500GB, Ram 12GB, OS: Hoạt động
12 Windows Server
IBM x3650 bình thường
CPU: Intel Xeon Quad Core 2.33GHz, FSB:
1333MHz, HDD 500GB, Ram 12GB, OS:
13 Máy chủ Hoạt động
Windows Server
IBM x3650
Tên máy vi Tình trạng
STT Cấu hình
tính hoạt động
bình thường

Theo khảo sát hiện trạng về nhân lực máy móc trang thiết bị, phần mềm thương mại phục
vụ các hệ thống công nghệ thông tin tại Trung tâm Công nghệ thông tin, tất cả các máy
chủ được đầu tư từ các dự án trước đều được cài đặt hệ điều hành Windows Server. Kèm
theo đó, các cán bộ của trung tâm cũng được đào tạo hướng dẫn, nâng cao năng lực về
vận hành, quản trị hệ thống trên hệ điều hành này.
Kết luận lại, để phù hợp với yêu cầu kỹ thuật, cũng như trình độ chuyện môn của đơn vị
tiếp nhận vận hành quản trị của hệ thống, hệ điều hành Windows Server (mới nhất là
Windows Server 2016) sẽ được lựa chọn để đầu tư, phục vụ cho quá trình xây dựng hệ
thống. So với các phiên bản trước, Windows Server 2016 có các tính năng mới, ưu việt
hơn, cụ thể như sau:
Storage Spaces Direct
Windows Server 2016 có khả năng tạo một hệ thống lưu trữ hiệu năng cao, sử dụng đĩa
gắn trực tiếp trên mỗi node. Tính nhất quán giữa các node có được là nhờ giao thức
SMB3. Tính năng mới này Microsoft gọi là Storage Spaces Direct (S2D), có thể tận dụng
phần cứng như các đĩa SSD NVMe, trong khi vẫn hỗ trợ những phần cứng lưu trữ cũ hơn
theo chuẩn SATA. Bạn chỉ cần hai node là có thể tạo được một cluster S2D.
Ở phương diện phần cứng, mỗi máy tính trong cluster bạn chỉ cần ổ SSD, ổ cứng HDD
thông thường và NIC có hỗ trợ RMDA, là giao thức tăng tốc độ hoạt động của ổ cứng
truy cập từ xa. Chỉ cần một bộ chuyển mạch (switch) cho mỗi cluster là đủ bởi vì mọi
máy tính đều kết nối trực tiếp đến switch. Bạn chỉ cần chạy một lệnh qua PowerShell
(thực chất là vài lệnh kết hợp, đầu tiên là tạo và sau đó là thêm node vào cluster lưu trữ),
Windows sẽ làm phần việc nặng nhọc còn lại là thêm dung lượng lưu trữ. Sau đó,
Windows Server 2016 sẽ tự động liệt kê ổ cứng mà bạn có, thiết lập caching tier và lưu
trữ hot và cold, và lọc dữ liệu để tăng tối đa khả năng lọc lỗi dữ liệu.
Lưu trữ Hyper-V nhanh hơn với ReFS
Resilient File System (ReFS) là một tính năng khác từng xuất hiện trong Windows Server
2012. Được thiết kế từ đầu với mục đích ngăn dữ liệu hư hại hơn là những hệ thống file
khác, ReFS có nhiều ưu điểm hơn so với NTFS. Microsoft đã kết hợp những mặt mạnh
của cả hai hệ thống file này vào trong Windows Server 2016 bằng cách thiết lập ReFS là
hệ thống mặc định cho các tải Hyper-V.
ReFS tăng tốc độ xử lý rất nhiều cho Hyper-V. Lúc đầu, bạn sẽ thấy tạo máy ảo mới sẽ có
dung lượng cố định theo định dạng VHDX và quá trình tạo rất nhanh, xong ngay khi bạn
nhấn Enter. Những ưu điểm này cũng được Microsoft áp dụng để tạo các file checkpoint
và gộp file VHDX để làm các file backup. Những tính năng này tựa như cách mà Offload
Data Transfer (ODX) thực hiện trên những ứng dụng lưu trữ lớn. Một điểm cần lưu ý là
ReFS phân bổ lưu trữ cho các hoạt động mà không cần khởi chạy nó, vì vậy có thể vẫn sẽ
còn dữ liệu sót đọng lại từ những file trước.
Nâng cấp cuốn chiếu Hyper-V
Nâng cấp lên một hệ điều hành mới luôn gặp phải nhiều thách thức, trên nhiều phương
diện. Trong các phiên bản Windows Server trước đây, ta không thể nâng cấp một cluster
mà không phải tắt nó đi. Và việc tắt một cluster rõ ràng ảnh hưởng đến sản xuất của
doanh nghiệp. Cách làm thông thường là dựng một cluster mới, chạy cập nhật trên cluster
mới ấy, sau đó di dời mọi workload từ cluster cũ sang. Do đó, để làm được cách này thì
doanh nghiệp buộc phải mua phần cứng mới.
Windows Server 2016 hỗ trợ nâng cấp kiểu cuốn chiếu, từ Windows Server 2012 R2 lên,
nghĩa là bạn có thể thực hiện nâng cấp mà không cần tắt cluster hoặc di dời đến phần
cứng mới. Tiến trình này tương tự như từng node đơn trong cluster phải có mọi quyền dời
đến một node khác theo thứ tự để nâng cấp hệ điều hành host. Khác biệt ở đây là mọi
thành phần trong cluster sẽ tiếp tục có thể vận hành ở mức Windows Server 2012 R2 (và
hỗ trợ di dời giữa host cũ và host mới) cho đến khi mọi host chạy được hệ điều hành mới,
và bạn chỉ việc nâng cấp level chức năng cluster lên level mới (bằng cách dùng lệnh ở
PowerShell).
Hyper-V thêm NIC và bộ nhớ trực tiếp
Các phiên bản Hyper-V trước đây không cho phép bạn thêm một thành phần mạng hoặc
bộ nhớ đến một máy ảo. Tắt hệ thống máy ảo khi đang vận hành là điều tối kị nên
Microsoft hiện nay cho phép bạn thực hiện thay đổi cấu hình máy ảo mà không phải tắt
máy. Hai thay đổi quan trọng mà bạn không phải tắt máy ảo là thay đổi bộ nhớ và giao
tiếp mạng.
Trong phiên bản Windows Server 2016 của Hyper-V Manager, bạn có thể tìm thấy mục
Network Adatper trong mục Add Hardware không còn bị "màu xám" vô hiệu nữa. Do
vậy, nhà quản trị có thể thêm các adapter mạng trong khi VM vẫn đang chạy. Tương tự
vậy, bộ nhớ cũng có thể thêm trực tiếp so với bộ nhớ cố định trước đây. Những phiên bản
Hyper-V trước hỗ trợ phân bổ bộ nhớ động để VM sẽ chỉ tiêu tốn bộ nhớ khi chúng cần.
Nhưng nếu ở chế độ phân bổ bộ nhớ động như vậy, bạn không thể điều chỉnh bộ nhớ khi
VM đang chạy.
Những cải tiến về mạng
Hội tụ là yếu tố đáng nói ở đây, với nhiều tính năng mới nhằm giúp doanh nghiệp và nhà
cung cấp host có thể kết hợp nhiều thành phần mạng lại với nhau để giảm thiểu giao tiếp
mạng cho hệ thống. Điều này có thể giảm được số cổng mạng xuống còn phân nửa so với
kiến trúc mạng kiểu cũ. Một khả năng mới khác có tên là Packet Direct, tập trung cải
thiện hiệu năng của các workload trên toàn hệ thống, gồm mọi thứ, từ những gói packet
nhỏ cho đến các gói dữ liệu truyền lớn.
Windows Server 2016 cũng có một role máy chủ mới tên là Network Controller, cung cấp
một điểm tập trung để giám sát và quản lý kiến trúc và các dịch vụ mạng. Những cải tiến
khác chủ yếu hỗ trợ cho tính năng mạng dựa trên phần mềm, gồm một load balancer,
gateway cải tiến để kết nối đến được Azure và các trang web từ xa khác, và một tính năng
mạng tập trung hỗ trợ cả dữ liệu truyền RDMA và truyền tenant.
Một trong những mảng thực sự thay đổi bộ mặt của phiên bản Windows Server 2016 là
cải thiện tính năng mạng dựa trên phần mềm. Điều này có nghĩa là Microsoft muốn đưa
phần mềm vào quản lý mọi thứ, từ cáp, router, bộ chuyển mạch và những thiết bị mạng
khác tương tác với máy tính, ảo hóa chúng, và loại bỏ được phần cứng càng nhiều càng
tốt. Các kết nối và cấu hình mạng có thể thay đổi trực tiếp, tự động mà không phải động
chân động tay trên các rack máy chủ ở trung tâm dữ liệu.
Do đó, hướng cấu hình dựa trên phần mềm đã được Microsoft áp dụng cho Azure. Khi
bạn tạo các nguồn tài nguyên bên trong gói đăng ký Azure, bạn có thể gắn chúng với
nhiều mạng ảo khác nhau. Những hệ thống mạng này có thể thiết lập ở chế độ riêng tư
(private) để các VM kết nối âm thầm đến Azure. Do vậy, bạn có thể tạo ra một hệ thống
mạng riêng biệt hoàn toàn, cấu hình nó thông qua phần mềm, thay đổi ứng dụng bên
trong nó và tinh chỉnh nó một cách thủ công hay tự động hóa nó thông qua các script mã
lệnh với PowerShell. Những hệ thống mạng ảo này là những sandbox biệt lập trên Azure,
hoàn toàn an toàn cho đến khi nào bạn "mở cửa" cho chúng tiếp cận với mạng bên ngoài.
Cập nhật lưu trữ QoS
Storage Quality of Service (QoS) được giới thiệu cùng với Hyper-V từ bản Windows
Server 2012 R2, giúp bạn có thể đưa ra giới hạn về lượng IO mà mỗi VM có thể tiêu tốn.
Bản QoS đầu tiên chỉ hỗ trợ ở mức host Hyper-V. Kết quả là lưu trữ QoS trong Windows
Server 2012 R2 hoạt động rất tốt trong môi trường nhỏ nhưng lại trục trặc khi bạn cần
cân bằng IO trên nhiều host.
Windows Server 2016 cho bạn quản lý tập trung các chính sách Storage QoS theo nhóm
VM và buộc những chính sách này chạy ở cấp cluster. Điều này rất phù hợp trong trường
hợp khi bạn muốn cấu thành một dịch vụ nào đó từ nhiều VM và chúng cần được quản lý
thống nhất. Các dòng lệnh của PowerShell có thể hỗ trợ những tính năng mới này, như
lệnh Get-StorageQosFlow cung cấp một số tùy chọn để giám sát tốc độ liên quan đến
Storage QoS; Get-StorageQosPolicy để hiển thị thiết lập chính sách hiện thời; hay New-
StorageQosPolicy để tạo một chính sách mới.
cmdlet PowerShell mới
PowerShell tiếp tục được Microsoft cập nhật theo từng phiên bản cập nhật của hệ điều
hành. Windows Server 2016 sẽ có một PowerShell rất nhiều cmdlet mới, tập trung vào
chức năng. Thậm chí bạn có thể dùng PowerShell để kiểm tra khác biệt giữa các phiên
bản của chính PowerShell. Như lệnh cmdlets PowerShell Get-Command sẽ liệt kê danh
sách lệnh hiện có mà nó hỗ trợ.
Những cmdlet mới được Microsoft bổ sung gồm 21 lệnh liên quan đến DNS, 11 lệnh cho
Windows Defender, 36 lệnh cho Hyper-V, 17 cho quản trị IIS và 141 lệnh liên quan đến
Network Controller và còn nhiều lệnh khác nữa. Một điểm cộng khác nữa về PowerShell
liên quan đến Desired State Configuration (DSC). Microsoft đã làm việc rất nhiều để
giúp DSC trở thành công cụ cấu hình và quản lý quan trọng không chỉ cho Windows
Server mà còn cho máy chủ Linux. Kết hợp những điều này với việc mở mã nguồn
PowerShell cho Linux và MacOS, cộng thêm gói dịch vụ OneGet, bạn có được vô vàn
tính năng mới mà PowerShell mang lại.
Khi mà thế giới đang đưa nhiều tải việc vào các hệ thống máy ảo trên mây thì điều quan
trọng là cần giảm thiểu các hiệu ứng môi trường cho những hệ thống vật lý chạy máy ảo
và tăng tính bảo mật cho toàn bộ kiến trúc, đưa tự động hóa vào hệ thống. Điều cần thiết
khác là làm sao chuyển được nhiều chức năng từ mặt vật lý sang phần mềm, như các tính
năng quản lý mạng và lưu trữ. Trong Windows Server 2016, Microsoft đã vươn lên trước
trong những yếu tố kể trên.
Bảo vệ truy cập và quyền quản trị
Ngoài những tính năng bảo mật như VM Shielded, Windows Server 2016 còn được thiết
kế để bảo mật danh tính và thông tin đăng nhập, nhất là tài khoản quản trị. Credential
Guard là tính năng giúp chống lại kỹ thuật tấn công pass-the-hash và pass-the-ticket bằng
cách bảo vệ thông tin đăng nhập bằng giải pháp bảo mật ảo hóa. Ngoài ra, Windows
Server 2016 còn có Remote Credential Guard, vận hành tương tự như Credential Guard
nhưng qua RDP, sử dụng đăng nhập một lần. Thứ ba là bảo vệ OS trực tiếp ngay trên đám
mây, Device Guard sẽ so sánh những lệnh thực thi có trong danh sách trắng (whitelist)
mới có thể chạy được.
Cuối cùng, có một số tính năng bên trong PowerShell mà chỉ có Windows Server 2016 hỗ
trợ là Just Enough Administration và Just in Time Administration (JITJEA), sẽ hạn chế
thời gian tài khoản quản trị có thể làm việc được. Nếu bạn chạy tài khoản quản trị ngoài
khung giờ quy định thì tài khoản ấy chỉ có hiệu lực như tài khoản thông thường mà thôi.
Một bổ sung khác là Microsoft cuối cùng cũng đưa công cụ chống malware Windows
Defender vào Windows Server 2016. Thay vì chạy những chương trình bên ngoài như
của Sysmantec hay Trend Micro trên máy chủ và cấu hình cho chúng không quét mailbox
hay thư mục nào đó, bây giờ bạn có sẵn Windows Defender tiện lợi hơn nhiều.
3.2.2. Hệ Quản trị cơ sở dữ liệu
Yêu cầu về CSDL là đặc biệt quan trọng đối với một giải pháp CNTT ứng dụng việc tin
học hóa lĩnh vực KTTV và BĐKH. Các yêu cầu chung là:
- Có khả năng quản lý dữ liệu với dung lượng lớn vừa đủ: Đối với một hệ thống
thông tin cần phải lưu trữ dữ liệu trên địa bàn và kết hợp với nền bản đồ thì cần một hệ
quản trị cơ sở dữ liệu có thể quản lý dữ liệu với độ lớn tương đối, phù hợp với dung
lượng của cơ sở dữ liệu hiện có ban đầu và dữ liệu thu thập hằng năm;
- Tổ chức dữ liệu theo cấu trúc quan hệ và cấu trúc Client/server: Cấu trúc này vừa
đảm bảo khả năng xử lý, lưu giữ và quản lý số liệu dung lượng dủ lớn, vừa đảm bảo việc
sử dụng hữu hiệu và chia sẽ dữ liệu giữa những người sử dụng khác nhau trong mạng
(các Client), đồng thời cũng đảm bảo an toàn dữ liệu;
- Có công cụ để phát triển thích ứng với yêu cầu sử dụng: Các cơ sở dữ liệu nói
chung đều có sẵn các thao tác xử lý chuẩn như: Tìm kiếm, phân loại, sắp xếp, kết xuất
thông tin,… Tuy vậy, do yêu cầu sử dụng khác nhau và trình độ sử dụng cũng rất khác
nhau, việc phát triển thích ứng để tự động hoá một số thao tác thường dùng sẽ nâng cao
rất nhiều hiệu suất sử dụng dữ liệu;
- Đã được kiểm nghiệm nhiều trên thực tế: Dữ liệu được quản lý trong hệ thống CSDL về
KTTV và BĐKH là loại dung lượng dữ liệu lớn, đòi hỏi nhiều công sức và chi phí thu
nhập nên có giá trị cao, cần phải được lưu giữ và sử dụng thường xuyên lâu dài. Vì vậy,
độ tin cậy và an toàn của cơ sở dữ liệu là yêu cầu tối quan trọng. Những đặc điểm này chỉ
có thể được kiểm nghiệm thông qua thực tế sử dụng ở những Hệ thống có quy mô tương
tự.
Hiện nay có các hệ quản trị CSDL phổ biến đáp ứng được các tiêu chí trên bao gồm
MySQL, Oracle, PostgreSQL, SQL Server.
Hệ quản trị CSDL MySQL
MySQL là một trong những cơ sở dữ liệu có khả năng mở rộng phổ biến nhất hiện nay.
Nó giàu các tính năng, là một sản phẩm mã nguồn mở mạnh mẽ trên các website và các
ứng dụng online.
Ưu điểm
Dễ dàng sử dụng: MySQL có thể dễ dàng cài đặt. Với các công cụ bên thứ 3 làm cho nó
càng dễ đơn giản hơn để có thể sử dụng.
Giàu tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ từ một hệ quản
trị cơ sở dữ liệu quan hệ-cả trực tiếp lẫn gián tiếp.
Bảo mật: Có rất nhiều tính năng bảo mật, một số ở cấp cao đều được xây dựng trong
MySQL.
Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý nhiều dữ liệu và hơn thế nữa nó có
thể được mở rộng nếu cần thiết.
Tốc đó làm việc: Việc đưa ra một số tiêu chuẩn cho phép MySQL để làm việc rất hiệu
quả và tiết kiệm chi phí, do đó nó làm tăng tốc độ thực thi.
Nhược điểm
Giới hạn: Theo thiết kế, MySQL không giải quyết được tất cả và nó đi kèm với các hạn
chế về chức năng mà một vào ứng dụng có thể cần.
Độ tin cậy: Cách các chức năng cụ thể được xử lý với MySQL (ví dụ tài liệu tham
khảo, các giao dịch,…) làm cho nó kém tin cậy hơn so với một số hệ quản trị cơ sở dữ
liệu quan hệ khác.
Sự phát triển chậm: Mặc dù MySQL vẫn là một sản phẩm công nghệ mã nguồn mở
phổ biến nhưng tốc độ phát triển lại chậm, kéo theo nhiều yêu cầu hiện tại không thể đáp
ứng được bởi hệ quản trị CSDL này.
Đánh giá:
Bởi vì MySQL không thi hành theo đầy đủ chuẩn của SQL nên công cụ này không hoàn
toàn tuân thủ theo SQL và MySQL có thể thiếu một số tính năng nên việc áp dụng hệ
quản trị CSDL này vào xây dựng hệ thống trong phạm vi giai đoạn I của nhiệm vụ cũng
như việc nâng cấp hệ thống ở giai đoạn 2 của nhiệm vụ là không phù hợp.
Hệ quản trị CSDL Oracle
Oracle cung cấp một hệ quản trị CSDL mềm dẻo nó bao gồm CSDL Oracle, môi trường
cho việc thiết kế các cơ sở dữ liệu (Designer 2000) và các công cụ phát triển (Deverlop
2000)….
Hệ quản trị cơ sở dữ liệu này có tính an toàn, bảo mật cao, tính nhất quán và toàn vẹn dữ
liệu, cho phép các user truy nhập tới CSDL phân tán như một khối thống nhất. Vì vậy, nó
được đánh giá là ưu việt nhất hiện nay.
Ưu điểm:
• Quản lý được cơ sở dữ liệu, hệ thống rất lớn.
• Phần mềm Oracle được tích hợp tất cả các công cụ để quản trị cũng như nhập xuất dữ
liệu nên rất tiện lợi cho người quản trị.
• Có thể cài đặt trên đa hệ điều hành.
Nhược điểm:
• Phí bản quyền rất lớn
• Không tương thích với các công nghệ của Microsoft.
• Công cụ thiết kế và lập trình không phổ biến (Sử dụng ngôn ngữ Java)
Đánh giá:
Hệ Quản trị CSDL Oracle là một hệ quản trị phổ biến và thực sự rất mạnh trong xử lý dữ
liệu lớn, hơn thế nữa lại có tính bảo mật rất cao. Tuy nhiên Oracle lại có chi phí đầu tư rất
lớn, nếu xét trong phạm vi xây dựng hệ thống CSDL về KTTV và BĐKH trên địa bàn
thành phố Hà Nội thì nhiều chức năng có thể không cần thiết phải sử dụng, gây lãng phí
khi đầu tư.
Hệ quản trị CSDL PostgreSQL
PostgreSQL là hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở tiên tiến mà mục
đích chính là tuân thủ theo chuẩn và khả năng mở rông. PostgreSQL hay còn gọi là
Postgree áp dụng chuẩn SQL ANSI/IOS cùng với các phiên bản.
So với các hệ quản trị cơ sử dữ liệu quan hệ khác, PostgreSQL khá khác. Nó hỗ
trợ hướng đối tượng mạnh mẽ và chức năng cơ sở dữ liệu quan hệ. Ví dụ như hỗ trợ hoàn
toàn cho các giao dịch đáng tin cậy như là Atomicity, Consistency, Isolation, Durability
(ACID).
Do có nền tảng công nghệ mạnh mẽ, Postgres có hoàn toàn có khả năng xử lý
nhiều tiến trình rất hiệu quả. Sự hỗ trợ đồng thời đạt được mà không cần đọc các khóa
nhờ vào sự thực hiện của Multiversion Concurrency Control (MVCC), mà nó cũng đảm
bảo việc tuân thủ theo ACID.
Ưu điểm:
Là một chuẩn SQL phù hợp với hệ quản trị cơ sở dữ liệu quan hệ: PostgreSQL là hệ quản
trị cơ sở dữ liệu quan hệ mã nguồn mở, miễn phí và mạnh mẽ.
Cộng đồng mạnh: PostgreSQL được hỗ trợ bởi một cộng đồng nhiệt tình và đầy kinh
nghiệm.
Hỗ trợ mạnh mẽ từ các bên thứ 3: Bất kể các tính năng tiên tiến thì PostgreSQL đều được
hỗ trợ bởi các công cụ tuyệt vời của bên thứ 3 trong việc quản lý cơ sơ dữ liệu
Sự mở rộng: Nó có thể mở rộng lập trình PostgreSQL với các thủ tục lưu trữ, giống như
một RDBMS tiên tiến.
Đối tượng hóa: PostgreSQL không chỉ là một hệ quản trị cơ sở dữ liệu quan hệ, mà nó
còn đối tượng hóa dữ liệu.
Nhược điểm:
Hiệu suất: Đối với các toán tử đơn giản thì PostgreSQL thực hiện kém hiệu quả hơn so
với các hệ quản trị cơ sở dữ liệu quan hệ khác như MySQL. Nhưng đối với toán tử phức
tạp thì PostgreSQL thực hiện tốt hơn rất nhiều.
Đánh giá:
Hạn chế của PostgreSQL nằm ở chỗ xử lý các toán tử đơn giản kém hiệu quả hơn các hệ
quản trị CSDL khác. Tuy nhiên đây không phải là vấn đề quá lớn đối với hệ thống CSDL
về KTTV và BĐKH. PostgreSQL còn mang lại sự yên tâm lớn cho người quản trị CSDL
bởi PostgreSQL đảm bảo được tính toàn vẹn dữ liệu cực tốt. Với một hệ thống CSDL như
trong phạm vi nhiệm vụ thì độ tin cậy và tính toàn vẹn dữ liệu là tuyệt đối cần thiết nên
PostgreSQL là lựa chọn tốt hơn hết.
Trên cơ sở đó, giải pháp về Hệ quản trị CSDL được đưa ra để áp dụng là PostgreSQL.
Dưới đây là chi tiết một số tính năng quan trọng của PostgreSQL, phù hợp với hệ thống
đang hướng tới:
PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ và đối tượng dựa trên POSTGRES,
bản 4.2, được khoa điện toán của đại học California tại Berkeley phát triển. POSTGRES
mở đường cho nhiều khái niệm quan trọng mà các hệ quản trị dữ liệu thương mại rất lâu
sau mới có.
PostgreSQL là hệ quản trị cơ sở dữ liệu được viết theo hướng mã nguồn mở và rất mạnh
mẽ. Hệ quản trị cơ sở dữ liệu này đã có hơn 15 năm phát triển, đồng thời kiến trúc đã
được kiểm chứng và tạo được lòng tin với người sử dụng về độ tin cậy, tính toàn vẹn dữ
liệu, và tính đúng đắn. PostgreSQL có thể chạy trên tất cả các hệ điều hành, bao gồm cả
Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), và Windows.
Do nó hoàn toàn tuân thủ ACID, có hỗ trợ đầy đủ các foreign keys, joins, views, triggers,
và stored procedures (trên nhiều ngôn ngữ). Hệ quản trị này còn bao gồm các kiểu dữ liệu
SQL: 2008 như INTEGER, NUMBER, BOOLEAN, CHAR, VARCHAR, DATE
INTERVAL, và TIMESTAMPs. PostgreSQL cũng hỗ trợ lưu trữ các đối tượng có kiểu dữ
liệu nhị phân lớn, bao gồm cả hình ảnh, âm thanh, hoặc video. Hệ quản trị cơ sở dữ liệu
này được sử dụng thông qua giao diện của các ngôn ngữ C / C + +, Java,. Net, Perl,
Python, Ruby, Tcl, ODBC…
PostgreSQL là một chương trình mã nguồn mở xây dựng trên mã nguồn ban đầu của đại
học Berkeley. Nó theo chuẩn SQL99 và có nhiều đặc điểm hiện đại:
Câu truy vấn phức hợp (complex query)
Khóa ngoại (foreign key)
Thủ tục sự kiện (trigger)
Các khung nhìn (view)
Tính toàn vẹn của các giao dịch (integrity transactions)
Việc kiểm tra truy cập đồng thời đa phiên bản (multiversion concurrency control)
Hơn nữa, PostgreSQL có thể dùng trong nhiều trường hợp khác, chẳng hạn như tạo ra các
khả năng mới như:
Kiểu dữ liệu
Hàm
Toán tử
Hàm tập hợp
Phương pháp liệt kê
Ngôn ngữ theo thủ tục
PostgreSQL được phổ biến bằng giấy phép BSD cổ điển. Nó không quy định những hạn
chế trong việc sử dụng mã nguồn của phần mềm. Bởi vậy PostgreSQL có thể được dùng,
sửa đổi và phổ biến bởi bất kỳ ai cho bất kỳ mục đích nào.
PostgreSQL cũng là hệ quản trị cơ sở dữ liệu hỗ trợ mạnh trong việc lưu trữ dữ liệu
không gian. PostgreSQL kết hợp với module Postgis cho phép người dùng lưu trữ các lớp
dữ liệu không gian. Khi sử dụng PostgreSQL, Postgis kết hợp với các phần mềm GIS hỗ
trợ hiển thị, truy vấn, thống kê hoặc xử lý dữ liệu không gian.
Là một hệ quản trị cơ sở dữ liệu mạnh, PostgreSQL tự hào có các tính năng phức tạp như
kiểm soát truy cập đồng thời nhiều phiên bản (MVCC), khôi phục dữ liệu tại từng thời
điểm (Recovery), quản lý dung lượng bảng (tablespaces), sao chép không đồng bộ, giao
dịch lồng nhau (savepoints), sao lưu trực tuyến hoặc nội bộ, truy vấn phức tạp và tối ưu
hóa, và viết trước các khai báo để quản lý và gỡ lỗi. PostgreSQL hỗ trợ bộ ký tự quốc tế,
hỗ trợ bảng mã nhiều byte, Unicode, và cho phép định dạng, sắp xếp và phân loại ký tự
văn bản (chữ hoa, thường). PostgreSQL còn được biết đến với khả năng mở rộng để nâng
cao cả về số lượng dữ liệu quản lý và số lượng người dùng truy cập đồng thời. Đã từng
có những hệ thống PostgreSQL hoạt động trong môi trường thực tế thực hiện quản lý
vượt quá 4 terabyte dữ liệu.
3.2.3. Công nghệ Gis
Công tác quản lý cơ sở dữ liệu bản đồ tài nguyên môi trường nói chung và dữ liệu về
KTTV và BĐKH nói riêng cần đến một hệ thống GIS (hệ thống thông tin địa lý) tin cậy,
sử dụng thuận tiện, phản ánh toàn diện về hiện trạng các điều kiện tự nhiên, môi trường,
kinh tế xã hội và các quy hoạch phát triển. Có nhất nhiều các ứng dụng của GIS đã và
đang được áp dụng trong lĩnh vực KTTV và BĐKH. Ở mức độ đơn giản GIS giúp quản
lý thông tin bản đồ các trạm KTTV, bản đồ ngập lụt, bản đồ về các đợt thiên tai, … Ở
mức độ phức tạp hơn, GIS được dùng như là một hệ thống đáp ứng nhanh, phục vụ chống
thiên tai như lũ quét ở vùng hạ lưu, xác định tâm bão, dự đoán các luồng chảy, xác định
mức độ ngập lụt, từ đó đưa ra các biện pháp phòng chống kịp thời.
Chuẩn Hệ quy chiếu và hệ toạ độ quốc gia VN-2000 là nền tảng thống nhất về cơ sở quy
chiếu cho dữ liệu thông tin địa lý, chuẩn này cũng sẽ được áp dụng cho CSDL ngành tài
nguyên môi trường nói chung và CSDL về KTTV và BĐKH nói riêng.
Hiện nay, có rất nhiều tổ chức lớn trên thế giới đầu tư phát triển các công nghệ về GIS, có
thể kể đến ESRI có ArcGis, Bentley Systems có Bentley Map ngoài ra còn một số công
nghệ Gis khác nữa như PostGis, OpenLayers, MapServer, QGIS,... Trong các công nghệ
GIS trên, ArcGis và Bentley Map là hai ứng dụng nền tảng cực mạnh, có thể áp dụng với
tất các các yêu cầu của các hệ thống gis hiện nay, tuy nhiên đi kèm theo đó là giá thành
của hai sản phẩm này là rất cao, không phù hợp với một hệ thống quản lý cơ bản về Gis
như hệ thống đang được đề cập trong thuyết minh này. Các công nghệ Gis khác là các
ứng dụng mã nguồn mở, hoàn toàn miễn phí nhưng được sự hỗ trợ và phát triển bởi một
cộng đồng Gis rất đông đảo và mạnh mẽ trên toàn cầu. Các công nghệ trên đều có những
ưu nhược điểm riêng, nhưng tựu chung lại chúng đều có các đặc điểm cơ bản, đáp ứng
được yêu cầu của hệ thống mà chúng ta đang cần xây dựng, cụ thể:
- Hỗ trợ việc hiển thị dữ liệu bản đồ trên mọi trình duyệt hiện nay. Hỗ trợ việc xây dựng
các ứng dụng địa lý trên web. Hỗ trợ các phương pháp chuẩn cho việc truy cập dữ liệu
địa lý, ví dụ như 2 giao thức WMS và WFS của OGC;
- Cho phép người dùng hiển thị nhiều layer khác nhau từ nhiều nguồn khác nhau cùng
một lúc.
- Hỗ trợ các các ngôn ngữ script và môi trường phát triển phổ biến (PHP, Perl, Python,
Ruby, Java, và C#).
- Hỗ trợ nhiều hệ điều hành (Linux, Windows, Mac OS X, …).
Việc đưa ra các tiêu chí so sánh để đánh ra tính ưu việt hơn của các công nghệ GIS mã
nguồn mở như chúng ta đã khoanh vùng là khá khó khăn. Tuy nhiên với các công nghệ
GIS trên, đặc biệt công nghệ PostGis rất phù hợp khi sử dụng để phát triển hệ thống, bởi
vì:
Chúng ta đã lựa chọn Hệ quản trị cơ sở dữ liệu để phát triển hệ thống là PostgreSQL, mã
PostGis lại là một phần mở rộng quan trọng của PostgreSQL được cung cấp miễn phí cho
phép CSDL quản lý các đối tượng GIS. Trên thực tế, PostGIS là một hợp phần quản lý
thông tin không gian của PostgreSQL, nó cho phép quản trị CSDL không gian dùng trong
hệ thống thông tin địa lý (GIS), giống như SDE của ESRI hoặc Oracle’s Spatial
extension. PostGIS hỗ trợ cho OpenGIS vì "tính năng kỹ thuật SQL đơn giản" và đã được
chứng nhận phù hợp với “Kiểu và Chức năng" của OpendGIS.
Một số đặc điểm cơ bản về PostGis
PostGIS là một Nhiệm vụ mã nguồn mở về CSDL không gian đang được nghiên cứu và
phát triển bởi Refractions Research. PostGIS được phát hành theo GNU General Public
License (phát hành miễn phí bản quyền sử dụng và phát triển). Refractions Research tiếp
tục phát triển PostGIS, bổ sung các công cụ giao diện với người dùng, hỗ trợ các
topology cơ bản, chuẩn hóa dữ liệu, chuyển đổi tọa độ, lập trình API và nhiều hơn nữa.
Trong tương lai của Nhiệm vụ sẽ phát triển hỗ trợ topo đầy đủ, hỗ trợ raster, tính toán
mạng lưới và định tuyến, xây dựng bề mặt ba chiều, các đường cong (curves), uốn khúc
(splines) và các tính năng khác.
INCLUDEPICTURE "http://3.bp.blogspot.com/-
6jIxJnPiCjg/Ua31Z0FDAuI/AAAAAAAABc8/YBV0nhB1ydI/s1600/image025.gif" \*
MERGEFORMATINET INCLUDEPICTURE "http://3.bp.blogspot.com/-
6jIxJnPiCjg/Ua31Z0FDAuI/AAAAAAAABc8/YBV0nhB1ydI/s1600/image025.gif" \*
MERGEFORMATINET INCLUDEPICTURE "http://3.bp.blogspot.com/-
6jIxJnPiCjg/Ua31Z0FDAuI/AAAAAAAABc8/YBV0nhB1ydI/s1600/image025.gif" \*

MERGEFORMATINET
Vị trí PostGIS trong PostgreSQL
Ưu điểm:
PostGIS - một CSDL không gian có những ưu điểm để xử lý các thông tin về hình dạng
không gian như trả lời các truy vấn về những đối tượng ở gần một vị trí nào đó, những
đối tượng nằm trong phạm vi hoặc ở vùng phụ cận của một đối tượng khác, phạm vi của
một vùng nơi mà có một hoạt động nào đó đang xảy ra là gì, những đối tượng nào nằm
bên trong một đối tượng khác.
PostGIS có khả năng lưu trữ và thao tác với dữ liệu rất tốt. Nó cung cấp những khả năng
xử lý thông tin địa lý bên trong một môi trường cơ sở dữ liệu. Những hàm SQL bao gồm
buffer, intersection, within, distance…Những hàm này lấy dữ liệu hình học từ các cột
trong bảng PostGIS và trả về những hình học mới hoặc những thông tin khác. Ví dụ như
hàm distance sẽ tính toán khoảng cách giữa các đặc điểm (feature) không gian, và hàm sẽ
trả về một hình mới là một đa giác được làm vùng đệm tại một khoảng cách nào đó từ
feature nguồn.
PostGIS cho phép dễ dàng khi kết nối dữ liệu không gian với dữ liệu phi không gian
trong một môi trường dữ liệu không gian và cung cấp đầy đủ sức mạnh của ngôn ngữ
truy vấn cấu trúc (SQL) để thực hiện những phân tích khác chẳng hạn như tính chi phí
trung bình cho một vùng địa lý?, ...
PostGIS còn hỗ trợ thêm GiST-based and R-Tree spatial indexes, đây là điểm riêng biệt
nhất của PostGIS so với các hệ quản trị CSDL khác giúp PostGIS dễ dàng quản lý, lưu
trữ, khai thác và tìm kiếm thông tin không gian.
Một số đối tượng không gian theo chuẩn OGC trong PostGIS
PostGIS hỗ trợ các đối tượng và các hàm được định nghĩa chi tiết trong OGC "Simple
Features for SQL". Với PostGIS ta có thể lưu trữ các điểm, đường, vùng, tập hợp điểm,
tập hợp đường, tập hợp vùng và các thông tin hình học khác. PostGIS mở rộng chuẩn với
sự hỗ trợ cho các tọa độ dạng 3DZ,3DM và 4D.
OpenGIS định nghĩa 2 chuẩn để diễn tả các đối tượng không gian: Well-known Text
(WKT) và Well-Known Binary (WKB). Cả Well-known Text và Well-Known Binary đều
bao gồm thông tin về kiểu của đối tượng và tọa độ của nó.
PostGIS được hiện thực theo bản đặc tả “OGC Simple Feature Specifications” cho chuẩn
SQL. Bản đặc tả này định nghĩa những thuật toán và lược đồ SQL để thêm (insert), truy
vấn (query), thao tác (manipulate) và xóa (delete) những đối tượng không gian. Những
tọa độ của các đối tượng không gian được lưu trữ trong các bảng Feature. Mỗi một bảng
Feature có thể chứa một kiểu đối tượng geometry là điểm (point, multipoint), đường
(linestring, multilinestring), đa giác (polygon, multipolygon và geometry collection).
Những tọa độ của mỗi đối tượng được lưu trữ trong một trường với một kiểu riêng biệt.
Kiểu mô tả một tập hợp tọa độ không gian của đối tượng là WKT (Well Known Text).
Khi những đối tượng không gian được đưa vào cơ sở dữ liệu thì PostGIS sẽ chuyển
chúng từ WKT sang WKB (Well Known Binary) để việc lưu trữ được tốt hơn.
Ví dụ về miêu tả WKT:
 POINT(0 0 0) -- XYZ
 SRID=32632;POINT(0 0) -- XY with SRID
 POINTM(0 0 0) -- XYM
 POINT(0 0 0 0) -- XYZM
 SRID=4326;MULTIPOINTM(0 0 0,1 2 1) -- XYM with SRID
 MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))
 POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0))
 MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1
0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))
 GEOMETRYCOLLECTIONM(POINTM(2 3 9), LINESTRINGM(2 3 4, 3 4
5))
Siêu dữ liệu từ mỗi bảng Feature được tập hợp lại và lưu trữ trong bảng
geometry_columns để tổ chức kiểu và hệ thống tọa độ của dạng geometry được chứa
trong đó.
3.2.4. Nền tảng, ngôn ngữ lập trình
Xây dựng một hệ thống hoàn chỉnh bao gồm 2 công việc chính là thiết kế và lập trình.
Hiện nay, các ngôn ngữ lập trình trang web có nhiều loại khác nhau, phổ biến nhất là
ngôn ngữ PHP, ngôn ngữ lập trình Java, ngôn ngữ JavaScript và ngôn ngữ ASP.NET. Mỗi
loại này đều có những ưu nhược điểm riêng, phân tích được các ưu, nhược điểm này
chúng ta sẽ lựa chọn được ngôn ngữ lập trình để xây dựng hệ thống CSDL về Khí tượng
thủy văn và Biến đổi khí hậu trên địa bàn thành phố Hà Nội.
- Java
Ưu điểm ngôn ngữ lập trình Java: Đây là loại mã nguồn mở, nó hoàn toàn có thể chạy
trên Apache hay IIS. Điểm cộng lớn nhất của Java đó là sự rõ ràng trong mã nguồn, nó
hoàn toàn tách riêng với giao diện HTML. Mặc dù so với hai ngôn ngữ lập trình còn lại
nó có tốc độ chạy chậm hơn, song người lập trình có thể cải thiện vấn đề này bằng
hardware.
Bên cạnh đó, Visual Studio còn có thể sinh ra mã, như vậy nó giúp cho người code web
tiết kiệm được khá nhiều thời gian. Một người khi đã nắm kiến thức cơ bản của HTML
thì không khó để đọc nó. Có thể dựa vào XAMP và Tomcat plugin, vậy nên khi cấu hình
cũng không quá phức tạp. Thường nó sẽ đi cặp cùng Oracle, thích hợp nhất là trên Linux,
tuy nhiên cũng có thể dùng trên IIS – Windows.
Nhược điểm ngôn ngữ lập trình Java: Như đã nói ở trên, điểm trừ của ngôn ngữ lập trình
Java đó là tốc độ chậm, song nó vẫn giữ ở mức chấp nhận được.
-Ngôn ngữ PHP
Ưu điểm ngôn ngữ lập trình PHP: Tương tự như Java, loại ngôn ngữ này được dùng bằng
mã nguồn mỡ, có thể chạy được trên cả Apache và IIS. So với ASP.NET thì nó phổ biến
nhiều hơn, điều đó được minh chứng bằng các website thiết kế ngôn ngữ PHP hiện nay.
Một khi đã biết được HTML, C, bạn hoàn toàn có thể đọc được ngôn ngữ lập trình này,
nó cũng dựa vào XAMP nên không quá khó khăn trong việc cấu hình. Ở thời điểm hiện
tại, lập trình bằng ngôn ngữ PHP có lợi thế nhờ hệ thống CMS miễn phí dùng tương đối
nhiều. Việc nó đi cặp cùng với MySQL cũng không là vấn đề gì quá khó khăn. Dễ dàng
hoạt động được trên Linux hay IIS- Windows, nhưng Linux vẫn là phổ biến hơn cả.
Nhược điểm ngôn ngữ lập trình PHP: Điểm trừ lớn nhất của nó đó là mã nguồn không
được gọn gàng như các Java hay ASP.NET, bên cạnh đó nó chỉ chạy được trên ứng dụng
website mà thôi.
- Ngôn ngữ Javascript
Ưu điểm của JavaScript là được thiết kế độc lập với hệ điều hành. Nó có thể chạy trên bất
kỳ hệ điều hành nào có trình duyệt hỗ trợ JavaScript. JavaScript dễ dàng tương tác, điều
khiển do giảm được việc xử lý từ phía server. JavaScript là ngôn ngữ có độ bảo mật cao
nhất hiện nay.
Nhược điểm của Javascript không có trình biên dịch riêng mà được diễn dịch và
chạy bởi trình duyệt hỗ trợ nó. Chính vì thế, nếu trình duyệt không hỗ trợ, hoặc không bật
JS thì sẽ không chạy được. Javascript có thể làm ứng dụng web của bạn trở nên nặng nề
hơn.
-ASP .NET
Ưu điểm ngôn ngữ lập trình ASP.NET: Có thể khẳng định rằng, mã nguồn này là rõ ràng
nhất, nó được tách riêng cùng với giao diện HTML, chạy với tốc độ nhanh hơn cả PHP.
Visual Studio của ASP.NET hoàn toàn có thể sinh ra mã để rút ngắn thời gian hơn nữa
cho code. Bạn cũng có thể sử dụng C#, VB hay managed C++. ASP.NET có liên kết cùng
với nhiều hệ quản trị CSDL như MSSQL, Oracle, PostgreeSQL.
Nhược điểm ngôn ngữ lập trình ASP.NET: Khi chạy trên hosting Linux cần phả cài đặt
thêm Mono (giúp chạy ứng dụng .NET trên Linux).
Từ các đặc điểm của các ngôn ngữ lập trình thông dụng trên, chúng ta có thể nhận thấy
PHP một ngôn ngữ thiết kế web miễn phí được phát triển cực mạnh hiện nay với tốc độ
làn truyền rất nhanh nhưng ở khía cạnh bảo mật thì PHP thực sự kém hơn các ngôn ngữ
khác rất nhiều. Tương tự xét về vấn đề tốc độ tải trang, thì Java xếp cuối hàng so với các
ngôn ngữ khác. Còn Javascript, tuy là ngôn ngữ có độ bảo mật cao nhất hiện nay nhưng
nó chỉ thích hợp cho các thiết kế của website cỡ lớn, bên cạnh đó tốc độ load trang của
các website Javascript chậm hơn ASP.NET rất nhiều. ASP.NET ra đời sau nên nó đã nhìn
thấy những ưu điểm của Javascript và đã tích hợp vào ngôn ngữ của mình nhưng nó được
tối ưu hóa tốt hơn Javascript. Hơn thế nữa có thể thấy rõ được các ưu điểm vượt trội của
ASP.NET, có thể kể đến như:
- Ưu điểm lớn nhất là tính ổn định và tốc độ tải trang nhanh
- Có khả năng tùy biến tương thích với các công nghệ mới nhất trên thế giới
- Có độ bảo mật cao do được kế thừa nhiều ưu điểm của Javascript
Kết luận: Qua các phân tích, so sánh về ưu nhược điểm của các ngôn ngữ lập trình
thông dụng hiện nay, mặc dù tất cả đều có những ưu thế cũng như các điểm bất lợi riêng,
nhưng theo đánh giá chung nhất thì ngôn ngữ ASP.NET nổi trội hơn cả và sẽ được lựa
chọn làm ngôn ngữ lập trình để xây dựng hệ thống chúng ta đang đề cập.
Sử dụng C# chúng ta có thể xây dựng được các ứng dụng phần mềm chạy trên hệ điều
hành Windows, các ứng dụng web service, các ứng dụng mobile, các ứng dụng về
database và rất nhiều loại dụng khác nữa.

You might also like