Nội dung chính của đề tài là nghiên cứu các công cụ mã nguồn mở phục vụ xây dựng ứng dụng GIS; trên cơ sở đó áp dụng xây dựng ứng dụng quản lý vi phạm trật tự xây dựng tại P.Hiệp Bình Ph
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : TS TRẦN TRỌNG ĐỨC
Cán bộ chấm nhận xét 1 :
Cán bộ chấm nhận xét 2 :
Luận văn thạc sĩ được bảo vệ tại:
HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 28 tháng 08 năm 2008
Trang 3ĐẠI HỌC QUỐC GIA TP HCM CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM
Tp HCM, ngày tháng năm
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Chuyên ngành : Bản đồ, viễn thám và hệ thống thông tin địa lý
Khoá (Năm trúng tuyển) : 2006
1- TÊN ĐỀ TÀI: Nghiên cứu xây dựng ứng dụng GIS bằng phần mềm mã nguồn mở Áp dụng xây dựng ứng dụng quản lý vi phạm trật tự xây dựng tại P.Hiệp Bình Phước - Q.Thủ Đức - Tp.Hồ Chí Minh.
2- NHIỆM VỤ LUẬN VĂN:
- Khảo sát các công cụ mã nguồn mở phục vụ xây dựng ứng dụng GIS
- Lựa chọn công cụ mã nguồn mở thích hợp phục vụ cho thiết kế và xây dựng ứng dụng quản lý vi phạm trật tự xây dựng tại P.Hiệp Bình Phước - Q.Thủ Đức - Tp.Hồ Chí Minh
3- NGÀY GIAO NHIỆM VỤ : 21/01/2008
4- NGÀY HOÀN THÀNH NHIỆM VỤ : 30/06/2008
Trang 4LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành đến:
- TS.Trần Trọng Đức, người đã trực tiếp hướng dẫn, góp ý cho tôi rất nhiều trong suốt quá trình học, thực hiện chuyên đề nghiên cứu 1, chuyên đề nghiên cứu 2 và thực hiện luận văn
- Tập thể quý thầy cô giảng dạy lớp cao học GIS 2006 đã trang bị cho tôi nền tảng kiến thức và phương pháp khoa học để tôi có thể nghiên cứu thực hiện luận văn
- UBND, Tổ quản lý vi phạm trật tự xây dựng P.Hiệp Bình Phước, Q.Thủ Đức, Tp.Hồ Chính Minh đã tạo điều kiện, phối hợp và hỗ trợ cho tôi trong quá trình phát triển ứng dụng
- Cộng đồng mã nguồn mở nói chung và cộng đồng MapWindow nói riêng đã
hỗ trợ kỹ thuật cho tôi trong quá trình phát triển ứng dụng
- Các người thân trong gia đình, bạn bè đã giúp đỡ, khuyến khích và động viên tôi trong suốt quá trình học tập, nghiên cứu và thực hiện luận văn
Trang 5TÓM TẮT LUẬN VĂN THẠC SĨ
Phần mềm mã nguồn mở nói chung và phần mềm GIS mã nguồn mở nói riêng ngày càng được quan tâm nghiên cứu phát triển và ứng dụng bởi các lợi ích mà nó mang lại Điều này đặc biệt có ý nghĩa đối với các nước đang phát triển như Việt Nam Hơn nữa, khi Việt Nam gia nhập WTO thì vấn đề sở hữu trí tuệ và bản quyền phần mềm ngày càng được chú trọng Trong khi đó, nhu cầu tin học hoá nhằm nâng cao hiệu quả công tác quản lý hành chính nhà nước với sự hỗ trợ của GIS luôn là mối quan tâm thường trực
Nội dung chính của đề tài là nghiên cứu các công cụ mã nguồn mở phục vụ xây dựng ứng dụng GIS; trên cơ sở đó áp dụng xây dựng ứng dụng quản lý vi phạm trật
tự xây dựng tại P.Hiệp Bình Phước - Q.Thủ Đức - Tp.Hồ Chí Minh
Kết quả của đề tài đã khảo sát các công cụ mã nguồn mở hiện hữu phục vụ xây dựng ứng dụng GIS, nghiên cứu chi tiết phần mềm mã nguồn mở MapWindow và
sử dụng MapWindow ActiveX control, hệ quản trị CSDL mã nguồn mở Firebird cho phát triển ứng dụng desktop GIS trên nền hệ điều hành Microsoft Windows
Trang 6Abstract
The Open Source Software in general and Geo Open Source Software in particular are more and more being researched and developed due to their benefits Moreover, because that Vietnam has joined the WTO, so the problems of intellectual property, software copyright,…are consider more seriously Meanwhile, the needs for computerizing with the supporting of GIS to enhance the effect of the administrative management tasks are growing day by day
For those reasons, the main objects of this thesis are:
the Urban Management Department of the People’s Committee of Hiep Binh Phuoc Ward, Thu Duc District, Ho Chi Minh City base on MapWindow ActiveX control and Firebird DBMS
Trang 7MỤC LỤC
MỤC LỤC 6
Danh sách các hình ảnh 10
Danh sách các bảng biểu 12
Một số khái niệm và thuật ngữ 12
PHẦN 1: GIỚI THIỆU 13
GIỚI THIỆU 14
I ĐẶT VẤN ĐỀ 14
II MỤC TIÊU NGHIÊN CỨU 15
III NỘI DUNG THỰC HIỆN 15
1 Nội dung 1 15
2 Nội dung 2 15
3 Nội dung 3 16
4 Nội dung 4 16
IV SẢN PHẨM CỦA ĐỀ TÀI 16
V PHƯƠNG PHÁP NGHIÊN CỨU 17
VI GIỚI HẠN, PHẠM VI NGHIÊN CỨU 17
1 Về công nghệ 17
2 Về vị trí địa lý 17
VII.CẤU TRÚC LUẬN VĂN 18
PHẦN 2: CƠ SỞ LÝ THUYẾT 19
CHƯƠNG I: CÁC CÔNG CỤ MÃ NGUỒN MỞ PHỤC VỤ XÂY DỰNG ỨNG DỤNG GIS 20
I.1 MỘT SỐ KHÁI NIỆM 20
I.1.1 Phần mềm tự do (Free Software) 20
I.1.2 Phần mềm mã nguồn mở (Open Source Software - OSS) 21
I.1.3 Phần mềm mã nguồn mở - tự do (FOSS) 23
I.1.4 Hệ thống giấy phép cho FOSS 23
I.1.5 Phần mềm GIS mã nguồn mở - GEOFOSS 23
I.1.6 Chuẩn mở cho GIS - OpenGIS 24
I.2 CÁC PHẦN MỀM GIS MÃ NGUỒN MỞ 26
I.2.1 Nhánh C 26
I.2.2 Nhánh Java 29
Trang 8I.2.3 Nhánh Net 31
I.2.4 Nhánh Web 32
I.3 CÁC HỆ QUẢN TRỊ CSDL MÃ NGUỒN MỞ 34
I.3.1 GIỚI THIỆU CHUNG 34
I.3.2 Firebird 34
I.3.3 Ingres 35
I.3.4 MySQL 35
I.3.5 MaxDB 35
I.3.6 PostgreSQL 36
I.3.7 MỘT SỐ ĐẶC ĐIỂM CỦA CÁC DBMS MÃ NGUỒN MỞ 37
I.4 MỘT SỐ ỨNG DỤNG GIS TRÊN NỀN TẢNG MÃ NGUỒN MỞ 40
I.4.1 Ngoài nước 40
I.4.2 Trong nước 40
PHẦN 3: PHÁT TRIỂN ỨNG DỤNG 42
CHƯƠNG II: KHẢO SÁT HIỆN TRẠNG VÀ NHU CẦU QUẢN LÝ 43
II.1 KHẢO SÁT HIỆN TRẠNG 43
II.1.1 Phần cứng 43
II.1.2 Phần mềm 43
II.1.3 Dữ liệu 43
II.1.3.1 Dữ liệu thuộc tính 43
II.1.3.2 Dữ liệu không gian 44
II.1.4 Tổ chức 44
II.1.5 Quy trình 44
II.2 PHÂN TÍCH NHU CẦU 49
CHƯƠNG III: LỰA CHỌN CÔNG CỤ XÂY DỰNG ỨNG DỤNG 51
III.1LỰA CHỌN CÔNG CỤ HIỂN THỊ, XỬ LÝ DỮ LIỆU KHÔNG GIAN 51
III.1.1 Tiêu chí lựa chọn 51
III.1.2 Kết quả lựa chọn 52
III.1.3 Giới thiệu MapWindow 52
III.1.3.1 Giới thiệu chung 52
III.1.3.2 Các thành phần của MapWindow 54
III.2LỰA CHỌN CÔNG CỤ QUẢN LÝ DỮ LIỆU 58
III.2.1 Các phương án quản lý dữ liệu 58
Trang 9III.2.2 Thử nghiệm phương án 1 58
III.2.2.1 Import shapefile vào PostgreSQL/ PostGIS 59
III.2.2.2 Truy xuất dữ liệu không gian từ PostgreSQL/ PostGIS bằng MapWindow Application 63
III.2.2.3 Nhận xét 64
III.2.3 Thử nghiệm phương án 2 65
III.2.3.1 Tiến hành thử nghiệm 65
III.2.3.2 Nhận xét 66
III.2.4 Phân tích các phương án 67
III.2.5 Lựa chọn phương án 68
III.3KẾT LUẬN 68
CHƯƠNG IV: THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG 70
IV.1THIẾT KẾ MÔ HÌNH HỆ THỐNG 70
IV.2THIẾT KẾ CSDL 70
IV.2.1 Mô hình dữ liệu mức ý niệm 72
IV.2.2 Mô hình dữ liệu mức vật lý 77
IV.2.3 Ánh xạ xuống DBMS Firebird 78
IV.3CÁC CHỨC NĂNG CỦA ỨNG DỤNG 87
IV.3.1 Nhóm chức năng hệ thống 88
IV.3.1.1 Cấu hình cơ sở dữ liệu: 88
IV.3.1.2 Đăng nhập ứng dụng 89
IV.3.1.3 Thay đổi mật khẩu 91
IV.3.1.4 Thiết lập mã văn bản 92
IV.3.1.5 Thiết lập giao diện ứng dụng: 94
IV.3.2 Nhóm chức năng danh mục 95
IV.3.3 Nhóm chức năng Bản đồ phường 97
IV.3.3.1 Chức năng tương tác bản đồ 98
IV.3.3.2 Chức năng xem thông tin thửa đất 101
IV.3.3.3 Chức năng Theo dõi lịch sử thửa đất 102
IV.3.3.4 Chức năng tìm kiếm thửa đất 103
IV.3.3.5 Chức năng tạo biên bản vi phạm 104
IV.3.4 Nhóm chức năng Quản lý vi phạm 106
IV.3.5 Nhóm chức năng Tình hình vi phạm 110
KẾT LUẬN VÀ KIẾN NGHỊ 113
I KẾT QUẢ ĐỀ TÀI 113
II Ý NGHĨA CỦA ĐỀ TÀI 113
1 Ý nghĩa khoa học 113
Trang 102 Ý nghĩa xã hội 113
III KIẾN NGHỊ NHỮNG NGHIÊN CỨU TIẾP THEO 114
PHẦN 3: TÀI LIỆU THAM KHẢO VÀ PHỤ LỤC 115
TÀI LIỆU THAM KHẢO 116
PHỤ LỤC 117
I PHỤ LỤC 1: HƯỚNG DẪN CÀI ĐẶT ỨNG DỤNG 117
II. PHỤ LỤC 2: CÁC LOẠI GIẤY PHÉP ĐƯỢC QUẢN LÝ BỞI OSI 120
Trang 11Danh sách các hình ảnh
Hình I.1: Sơ đồ OSS nhánh C [10] 26
Hình I.2: Sơ đồ OSS nhánh Java [10] 29
Hình I.3: Sơ đồ OSS nhánh Net [10] 31
Hình I.4: Sơ đồ OSS nhánh Web [10] 32
Hình I.5: Quá trình phát triển các hệ quản trị CSDL [11] 34
Hình I.6: JVNWebGIS 40
Hình I.7: JVNMobileGIS 41
Hình I.8: Phần mềm mô phỏng địa hình 41
Hình II.1: Quy trình xử lý vi phạm trật tự xây dựng 45
Hình III.1: Giao diện MapWindow Application 53
Hình III.2: Mã nguồn MapWindow Application trong VS.NET 2005 56
Hình III.3: Mã nguồn Plug-in shapefile Editor trong VS.NET 2005 57
Hình III.4: Giao diện Plug-in shapefile Editor trong MapWindow Application 57
Hình III.5: Giao diện Plug-in Shape2Earth trong MapWindow Application 58
Hình III.6: Cấu trúc template_postgis 59
Hình III.7: Tạo mới GIS database trên cơ sở template_postgis 60
Hình III.8: Enable spatial cho NonGISDB - chưa hỗ trợ dữ liệu không gian 60
Hình III.9: Import shapefile vào PostgreSQL/ PostGIS bằng tiện ích shp2pgsql 61
Hình III.10: Import dữ liệu shapefile vào GisDB bằng cách thực thi script thua.sql 62
Hình III.11: Dữ liệu bảng thửa trong pgAdmin III 62
Hình III.12: Load dữ liệu không gian từ PostgreSQL/ PostGIS bằng MapWindow Application 63
Hình III.13: Nhập các thông số đăng nhập vào PostgreSQL/ PostGIS 63
Hình III.14: Chọn lớp dữ liệu không gian cần truy xuất 64
Hình III.15: Tình trạng lỗi font khi load dữ liệu không gian từ PostgreSQL/ PostGIS bằng MapWindow Application 65
Hình III.16: Thử nghiệm tương tác shapefile thửa - bảng dữ liệu thửa 66
Hình IV.1: Mô hình hệ thống 70
Hình IV.2: Mô hình dữ liệu mức ý niệm 72
Hình IV.3: Tạo mô hình dữ liệu mức vật lý từ mô hình dữ liệu mức ý niệm 76
Hình IV.4: Chọn DBMS khi tạo mô hình dữ liệu mức vật lý 76
Hình IV.5: Mô hình dữ liệu mức vật lý 77
Hình IV.6: Tạo script file định nghĩa CSDL từ mô hình dữ liệu mức vật lý 78
Trang 12Hình IV.7: Chọn đường dẫn và đặt tên cho script file 78
Hình IV.8: Tạo CSDL trong IBExpert 79
Hình IV.9: Đăng ký CSDL trong IBExpert 79
Hình IV.10: Thực thi script file định nghĩa CSDL 80
Hình IV.11: Kết quả tạo CSDL 80
Hình IV.12: Sơ đồ chức năng ứng dụng 87
Hình IV.13: Sơ đồ giải thuật cấu hình CSDL 88
Hình IV.14: Giao diện cấu hình CSDL 88
Hình IV.15: Thông tin cấu hình CSDL được quản lý trong registry 89
Hình IV.16: Sơ đồ giải thuật đăng nhập ứng dụng 90
Hình IV.17: Giao diện đăng nhập ứng dụng 90
Hình IV.18: Thông tin về người dùng được lưu trữ trong registry 91
Hình IV.19: Sơ đồ giải thuật thay đổi mật khẩu 92
Hình IV.20: Giao diện thay đổi mật khẩu 92
Hình IV.21: Sơ đồ giải thuật thiết lập mã văn bản 93
Hình IV.22: Giao diện thiết lập mã văn bản 93
Hình IV.23: Sơ đồ giải thuật thiết lập giao diện ứng dụng 94
Hình IV.24: Giao diện thiết lập giao diện ứng dụng 94
Hình IV.25: Thông tin về giao diện được lưu trữ trong registry 95
Hình IV.26: Sơ đồ giải thuật nhóm chức năng danh mục 96
Hình IV.37: Giao diện danh mục khu phố 96
Hình IV.28: Giao diện danh mục Nơi cấp CMND 97
Hình IV.29: Giao diện danh mục loại biến động 97
Hình IV.30: Giao diện Bản đồ phường 98
Hình IV.31: Sơ đồ giải thuật tương tác bản đồ 99
Hình IV.32: Giao diện tương tác bản đồ 99
Hình IV.33: Sơ đồ giải thuật xem thông tin thửa đất 101
Hình IV.34: Giao diện xem thông tin thửa đất 101
Hình IV.35: Sơ đồ giải thuật theo dõi lịch thửa đất 102
Hình IV.36: Giao diện theo dõi lịch sử thửa đất 102
Hình IV.37: Sơ đồ giải thuật tìm kiếm thửa đất 103
Hình IV.38: Giao diện tìm kiếm thửa đất 104
Hình IV.39: Sơ đồ giải thuật tạo biên bản vi phạm tại thửa được chọn 105
Hình IV.40: Giao diện tạo biên bản vi phạm tại thửa được chọn 105
Hình IV.41: Tự động thêm mới biên bản vi phạm và zoom đến thửa được chọn 106
Hình IV.42: Sơ đồ Quản lý vi phạm 107
Trang 13Hình IV.43: Giao diện Quản lý vi phạm 107
Hình IV.44: Sơ đồ giải thuật quản lý biên bản vi phạm 109
Hình IV.45: Giao diện chi tiết biên bản vi phạm 109
Hình IV.46: Giao diện thiết kế mẫu in tờ trình xử phạt 110
Hình IV.47: Sơ đồ giải thuật thống kê tình hình vi phạm 111
Hình IV.48: Giao diện thống kê tình hình vi phạm 111
Hình IV.49: Giao diện xem báo cáo thống kê tình hình vi phạm 112
Danh sách các bảng biểu Bảng I.1: Các OSS nhánh C 26
Bảng I.2: Các OSS nhánh Java 29
Bảng I.3: Các OSS nhánh Net 31
Bảng I.4: Các OSS nhánh Web 32
Bảng I.5: Một số đặc điểm của các DBMS mã nguồn mở 37
Bảng III.1: Phân tích các phương án 67
Một số khái niệm và thuật ngữ
STT Kí hiệu / viết tắt Diễn giải
tự do
5 KML Keyhole Markup Language: chuẩn giao tiếp dữ liệu
Google Map
Trang 14PHẦN 1: GIỚI THIỆU
Trang 15GIỚI THIỆU
I ĐẶT VẤN ĐỀ
Hiện nay phần mềm mã nguồn mở đang phát triển rất mạnh mẽ với một cộng đồng ngày càng lớn mạnh, và ngày càng chứng tỏ là một đối trọng đầy thách thức đối với phần mềm thương mại Lĩnh vực GIS cũng không ngoại lệ trong trào lưu chung đó với hàng trăm dự án xây dựng phần mềm/ công cụ mã nguồn mở hỗ trợ xây dựng ứng dụng GIS
Trong bối cảnh Việt Nam đã gia nhập WTO thì vấn đề sở hữu trí tuệ, vấn đề bản quyền phần mềm thương mại ngày càng được chú trọng Trong khi đó, việc nâng cao hiệu quả quản lý hành chính nhà nước với sự hỗ trợ của phần mềm, đặc biệt với
sự hỗ trợ của GIS là một trong những vấn đề được quan tâm thường trực Với các
ưu điểm về mặt chi phí; khả năng phát triển, mở rộng; khả năng sẵn sàng hỗ trợ bởi một cộng đồng lớn mạnh, việc xây dựng ứng dụng hệ thống thông tin nói chung và ứng dụng GIS nói riêng trên nền tảng các phần mềm mã nguồn mở đang dần trở thành một xu thế và nhu cầu tất yếu
Phường Hiệp Bình Phước, thuộc quận Thủ Đức - Tp.Hồ Chí Minh được thành lập theo nghị định số 03/CP của Chính phủ kí ngày 06/01/1997 về việc thành lập Quận Thủ Đức, Quận 2, Quận 7, Quận 9, Quận 12 và thành lập các phường thuộc các quận mới - thành phố Hồ Chí Minh Theo đó, Phường Hiệp Bình Phước có diện tích
tự nhiên khoảng 766 ha với 12.354 nhân khẩu [1] Việc quản lý vi phạm trật tự xây dựng do Tổ quản lý vi phạm trật tự xây dựng phường đảm trách Với một địa bàn tương đối rộng lớn và tình hình vi phạm trật tự xây dựng diễn ra khá phổ biến và phức tạp, việc xây dựng một công cụ hỗ trợ quản lý hiệu quả và trực quan trên nền GIS theo hướng giảm thiểu chi phí là rất cần thiết trong việc nâng cao hiệu quả công tác quản lý hành chính, tiết kiệm thời gian và nhân lực Đó cũng là mục tiêu nghiên cứu của đề tài
Trang 16II MỤC TIÊU NGHIÊN CỨU
- Nghiên cứu các công cụ mã nguồn mở phục vụ xây dựng ứng dụng GIS
- Áp dụng xây dựng ứng dụng quản lý vi phạm trật tự xây dựng tại P Hiệp Bình Phước - Q Thủ Đức - Tp Hồ Chí Minh
III NỘI DUNG THỰC HIỆN
1) Khảo sát các công cụ mã nguồn mở phục vụ xây dựng ứng dụng GIS 2) Khảo sát hiện trạng và nhu cầu quản lý tại Tổ quản lý vi phạm trật tự xây dựng P Hiệp Bình Phước, Q Thủ Đức, Tp Hồ Chí Minh
3) Lựa chọn công cụ xây dựng ứng dụng
• Khảo sát các DBMS mã nguồn mở thông dụng: PostgreSQL, Ingres, MySQL, Firebird, MaxDB
• Hiện trạng quản lý
Trang 17• Phân tích nhu cầu tin học hoá hỗ trợ tác nghiệp hàng ngày
Cùng với nhiệm vụ 1, kết quả của nhiệm vụ 2 là cơ sở cho việc lựa chọn công cụ thích hợp xây dựng ứng dụng (nhiệm vụ 3) và là cơ sở thiết kế và xây dựng ứng dụng (nhiệm vụ 4 )
3 Nội dung 3
- Tên nhiệm vụ: Lựa chọn công cụ xây dựng ứng dụng
- Mô tả: Trên cơ sở kết quả khảo sát các công cụ mã nguồn mở phục vụ xây dựng ứng dụng GIS (nhiệm vụ 1) và kết quả khảo sát hiện trạng và nhu cầu (nhiệm vụ 2), nhiệm vụ 3 tập trung lựa chọn công cụ thích hợp cho xây dựng ứng dụng
IV SẢN PHẨM CỦA ĐỀ TÀI
1) Báo cáo khảo sát các công cụ mã nguồn mở phục vụ xây dựng ứng dụng GIS
2) Báo cáo khảo sát hiện trạng và nhu cầu quản lý tại Tổ quản lý vi phạm trật
tự xây dựng, P Hiệp Bình Phước, Q Thủ Đức, Tp Hồ Chí Minh
3) Báo cáo lựa chọn công cụ xây dựng ứng dụng
Trang 184) Báo cáo thiết kế hệ thống và thiết kế cơ sở dữ liệu
5) Bộ cài đặt ứng dụng quản lý vi phạm trật tự xây dựng P Hiệp Bình Phước,
Q Thủ Đức, Tp Hồ Chí Minh
V PHƯƠNG PHÁP NGHIÊN CỨU
Đề tài được thực hiện với các phương pháp sau:
1) Thu thập, tổng hợp và phân tích thông tin (khảo sát các công cụ mã nguồn
mở phục vụ xây dựng ứng dụng GIS)
2) Phỏng vấn (khảo sát hiện trạng và nhu cầu)
3) Xây dựng ứng dụng theo mô hình client - server
VI GIỚI HẠN, PHẠM VI NGHIÊN CỨU
Trang 19Khu vực nghiên cứu
VII CẤU TRÚC LUẬN VĂN
Nội dung nghiên cứu của luận văn được trình bày trong 4 phần:
1) Phần một: Giới thiệu
2) Phần hai: Cơ sở lý thuyết
- Chương 1: Các công cụ mã nguồn mở phục vụ xây dựng ứng dụng GIS 3) Phần ba: Phát triển ứng dụng
- Chương 2: Khảo sát hiện trạng và nhu cầu quản lý
- Chương 3: Lựa chọn công cụ xây dựng ứng dụng
- Chương 4: Thiết kế và xây dựng ứng dụng
- Kết luận và kiến nghị
4) Phần bốn: Tài liệu tham khảo và Phụ lục
Trang 20PHẦN 2: CƠ SỞ LÝ THUYẾT
Trang 21CHƯƠNG I: CÁC CÔNG CỤ MÃ NGUỒN
MỞ PHỤC VỤ XÂY DỰNG ỨNG DỤNG GIS I.1 MỘT SỐ KHÁI NIỆM
Bên cạnh các phần mềm GIS thương mại và “đóng”, phần mềm GIS mã nguồn mở ngày càng được quan tâm nghiên cứu vì một số lợi ích dễ thấy sau:
- Cơ hội tiếp cận nghiên cứu và làm chủ công nghệ
- Giảm lệ thuộc vào nhà cung cấp phần mềm
- Tuân thủ các chuẩn công nghệ chung của thế giới
- Được hỗ trợ bởi một cộng đồng lớn mạnh
- Tiết kiệm chi phí phát triển ứng dụng
- Phát triển năng lực của ngành công nghiệp phần mềm địa phương
- Bản địa hoá phần mềm
Phần sau trình bày lịch sử hình thành và phát triển của phần mềm mã nguồn mở nói chung và phần mềm GIS mã nguồn mở nói riêng cũng như các khái niệm liên quan
I.1.1 Phần mềm tự do (Free Software)
Năm 1984, tiến sĩ Richard Stallman khởi đầu dự án GNU, công bố định nghĩa phần mềm tự do (Free Software) và sáng lập quỹ phần mềm tự do FSF (Free Software Foundation) Năm 1989, Richard Stallman sáng lập giấy phép nguồn mở GNU GPL (General Public License) và khái niệm Copyleft (một cách chơi chữ đối lập với Copyright)
Theo Richard Stallmann, một phần mềm tự do - Free Software - phải đảm bảo các quyền tự do sau đây [4]:
- Quyền tự do 0: Tự do chạy chương trình với bất kỳ mục đích gì
- Quyền tự do 1: Tự do nghiên cứu cách làm việc của chương trình và sửa đổi
cho phù hợp với nhu cầu sử dụng Mã nguồn mở là điều kiện tiên quyết cho quyền tự do này
Trang 22- Quyền tự do 2: Tự do phân phối các bản sao cho những người dùng khác có
nhu cầu
- Quyền tự do 3: Tự do cải tiến chương trình và công bố sự cải tiến này cho
cộng đồng cùng hưởng lợi Mã nguồn mở cũng là điều kiện tiên quyết cho quyền tự do này
Cần phân biệt Free Software và Freeware Freeware có nghĩa là “Phần mềm miễn phí” Người sử dụng không phải trả tiền khi dùng Freeware và tất nhiên không được
sử dụng Freeware cho mục đích thương mại (không được bán lại cho người dùng khác); tuy nhiên, tác giả Freeware vẫn giữ bản quyền (Copyright) và mặc dù miễn phí nhưng freeware không nhất thiết phải là mã nguồn mở Stallman nhấn mạnh
“Free” trong khái niệm “Free Software” không phải là “miễn phí” mà là “tự do”, đặc biệt là quyền được thay đổi và đóng góp bởi cộng đồng người dùng thông qua việc truy cập mã nguồn của chương trình
I.1.2 Phần mềm mã nguồn mở (Open Source Software - OSS)
Năm 1998, một nhóm người có quan điểm hơi khác Stallman cho rằng thuật ngữ phần mềm tự do nên được thay thế bằng phần mềm nguồn mở (OSS - Open Source Software) vì thuật ngữ này ít gây nhầm lẫn hơn và dễ sử dụng cho giới doanh nghiệp Hệ quả là sự ra đời của tổ chức OSI (Open Source Initiative - tổ chức "Sáng kiến nguồn mở") và tổ chức này đã công bố OSD - Open Source Definition - định nghĩa nguồn mở Theo đó, một phần mềm mã nguồn mở phải đảm bảo các tiêu chuẩn sau [5]:
1) Tự do tái phân phối (Free Redistribution)
Giấy phép phải cho phép bất cứ ai nhận và sử dụng OSS có thể bán/ tặng cho người khác mà không phải trả chi phí cho người sở hữu giấy phép đầu tiên
2) Mã nguồn (Source Code)
Khi cung cấp OSS phải cung cấp toàn bộ mã nguồn của chương trình
3) Các sản phẩm phát sinh (Derived Works)
Trang 23Giấy phép phải cho phép người dùng sửa đổi OSS và tạo ra những sản phẩm mới trên cơ sở OSS đó Các sửa đổi và sản phẩm phát sinh phải được phân phối dưới cùng những điều kiện như OSS nguyên bản
4) Tính toàn vẹn mã nguồn của tác giả (Integrity of The Author's Source Code)
Giấy phép có thể hạn chế phân phối và hiệu chỉnh mã nguồn với điều kiện phải cho phép phân phối các bản vá (patch files) kèm theo mã nguồn cho mục đích hiệu chỉnh chương trình Giấy phép phải cho phép phân phối phần mềm được xây dựng
từ mã nguồn đã hiệu chỉnh theo cách này Giấy phép có thể yêu cầu các sản phẩm phát sinh mang một tên khác hoặc đánh số phiên bản từ phần mềm nguyên bản
5) Không phân biệt đối xử đối với người dùng (No Discrimination Against Persons or Groups)
Giấy phép không được phân biệt đối xử với bất cứ người/ nhóm người dùng nào
6) Không phân biệt đối xử đối với lĩnh vực sử dụng (No Discrimination Against Fields of Endeavor)
Giấy phép cũng không được hạn chế việc sử dụng trong bất cứ lĩnh vực nào: thương mại, nghiên cứu, giảng dạy…
7) Phân phối giấy phép (Distribution of License)
Các quyền kèm theo phần mềm phải được áp dụng cho tất cả những người dùng được tái phân phối phần mềm
8) Giấy phép không được chuyên biệt cho một sản phẩm (License Must Not Be Specific to a Product)
Nếu một phần mềm được trích từ phần mềm nguyên bản, người dùng được tái phân phối phần mềm này phải có các quyền tương tự như phần mềm nguyên bản
9) Không hạn chế các phần mềm khác (License Must Not Restrict Other Software)
Giấy phép không được hạn chế các phần mềm có bản quyền khác Ví dụ, giấy phép không được đòi hỏi tất cả các phần mềm khác được phân phối trong cùng một môi trường phải là OSS
Trang 2410) Trung dung về công nghệ (License Must Be Technology-Neutral)
Không một điều khoản nào của giấy phép có thể được xác nhận trên nền tảng một công nghệ riêng lẻ
Ý tưởng chủ đạo đằng sau định nghĩa phần mềm mã nguồn mở là: khi người dùng
có thể truy cập, sửa đổi và tái phân phối mã nguồn của một phần mềm, thì phần mềm đó ngày càng phát triển OSI xem trọng giá trị kỹ thuật của việc tạo những phần mềm mạnh, có độ tin cậy cao, mang lại lợi ích thực tiễn và phù hợp với giới doanh nghiệp hơn là quan tâm tới khía cạnh giá trị đạo đức của phần mềm tự do mang lại theo quan điểm của FSF
I.1.3 Phần mềm mã nguồn mở - tự do (FOSS)
Sự kiện OSI công bố khái niệm phần mềm mã nguồn mở đã gây ra những tranh luận giữa 2 trường phái FSF và OSI Tuy nhiên, mặc dù quan điểm của hai trào lưu này tương đối khác nhau, nhưng cả FSF và OSI đều đứng trên lập trường đấu tranh chống các phần mềm đóng và việc cấp bằng sáng chế phần mềm
Để dung hoà hai trường phái này, ngày nay người ta thường dùng khái niệm FOSS (Free Open Source Software) hay FLOSS (Free/ Liber Open Source Software) - Phần mềm mã nguồn mở tự do [6]
I.1.4 Hệ thống giấy phép cho FOSS
Định nghĩa của OSI nhằm thiết lập một sự thống nhất tương đối về phần mềm mã nguồn mở Đây là những chỉ dẫn chung về những điều khoản phải có hoặc không được có trong một giấy phép (license) phần mềm mã nguồn mở Tuy nhiên, miễn là đạt được những yêu cầu tối thiểu này, nhà phát triển phần mềm có thể thêm những điều khoản khác theo ý muốn, và hệ quả là có nhiều loại giấy phép khác nhau Hiện nay có trên 50 loại giấy phép phần mềm mã nguồn mở, được quản lý bởi OSI (xem phụ lục) Do đó, khi nói đến các phần mềm mã nguồn mở phải xem xét đến giấy phép cụ thể mà chúng được công bố
I.1.5 Phần mềm GIS mã nguồn mở - GEOFOSS
Trang 25Là một bộ phận của FOSS, cộng đồng phần mềm GIS mã nguồn mở - GEOFOSS
cũng đã phát triển lớn mạnh với 246 dự án được công bố (http://opensourcegis.org/
- cập nhật ngày 13/11/2007)
Các dự án GIS mã nguồn mở được sự hậu thuẫn của Open Source Geospatial Foundation - OSGeo [7] OSGeo là một tổ chức phi lợi nhuận nhằm hỗ trợ và xúc tiến sự hợp tác phát triển của cộng đồng các nhà phát triển phần mềm GIS mã nguồn mở Ngoài ra, OSGeo còn chủ trì một hội thảo quốc tế thường niên mang tên FOSS4G, thu hút sự tham gia của rất nhiều nhà phát triển thuộc cộng đồng FOSS4G
từ khắp nơi trên thế giới Gần đây là hội thảo FOSS4G2007 diễn ra tại Canada với
120 bài tham luận [8]
I.1.6 Chuẩn mở cho GIS - OpenGIS
Một vấn đề khá quan trọng về quan điểm mở cho phần mềm GIS là xây dựng chuẩn
mở cho GIS - OpenGIS Xây dựng chuẩn tương tác dữ liệu dùng chung cho các phần mềm ứng dụng là một nhu cầu và xu thế tất yếu, đặc biệt trong lĩnh vực GIS với định dạng dữ liệu phong phú, đa dạng và phức tạp
Các chuẩn mở giúp tiết kiệm thời gian, chi phí, nâng cao tính khả chuyển và tính đồng vận hành giữa các hệ thống khác nhau Việc xây dựng và phát triển các chuẩn
mở được đảm trách bởi các tổ chức như: ISO, FGDC, và đặc biệt trong lĩnh vực GIS là OGC (Open Geospatial Consortium, Inc.®)
OGC là một hiệp hội công nghệ quốc tế của 339 công ty, cơ quan chính phủ và các trường đại học cùng tham gia phát triển Đây là một tổ chức phi lợi nhuận, đứng đầu trong việc phát triển các chuẩn cho geospatial và các dịch vụ hướng địa điểm (Location Base Service) Một số thành viên của OGC: US Geological Survey (USGS), US National Aeronautics and Space Administration (NASA), US National Geospatial-Intelligence Agency (NGA), Autodesk Inc, Bentley Systems Inc, Boeing Space & Intelligence Systems (S&IS), ESRI, GeoConnections - Natural Resources Canada, Google, Intergraph Corporation, MapInfo Corporation, Oracle USA…[9] Một số chuẩn OpenGIS được xây dựng bởi OGC:
- Web Mapping Service (WMS)
Trang 26- Web Map Context (WMC)
- Web Feature Service (WFS)
- Web Coverage Service(WCS)
- Simple Features
- Geography Markup Language (GML)
- Simple Features GML 3 (SF GML)
- OpenGIS Location-Based Services (OpenLS)
Việc xây dựng các chuẩn mở làm tăng tính khả chuyển và tính đồng vận hành giữa các phần mềm GIS vốn được phát triển trên nhiều nền tảng công nghệ khác nhau
Hỗ trợ các chuẩn mở này không chỉ là một xu hướng của các phần mềm mã nguồn
mở mà cả các phần mềm thượng mại, các phần mềm nói chung và phần mềm GIS nói riêng Một ví dụ cho xu hướng này là gói phần mềm thương mại ArcGIS phiên bản 9.2 của ESRI được phát hành gần đây có các tính năng đáng chú ý sau:
- Hỗ trợ OGC GML Simple Features data với công cụ ArcGIS OGC Interoperability Add-On
- ArcIMS hỗ trợ chuẩn WMS,WFS
- METADATA: hỗ trợ chuẩn metadata ISO 19139
Trang 27I.2 CÁC PHẦN MỀM GIS MÃ NGUỒN MỞ
Xét về mặt ngôn ngữ lập trình phát triển, phần mềm GIS mã nguồn mở có thể tạm chia thành 4 nhánh: nhánh C, nhánh Java, nhánh Net và nhánh Web [10] Phần sau trình bày một số dự án cơ sở và tiêu biểu của các nhánh này
1 OGR /GDAL GDAL cung cấp các thư viện xử lý dữ
liệu raster
OGR cung cấp các thư viện xử lý dữ liệu vector
MIT http://www.gdal.org
2 Proj4 Cung cấp thư viện hỗ trợ quản lý và
chuyển đổi hệ quy chiếu
MIT - style
“Simple Features for SQL” - OpenGIS
LGPL http://geos.refractions.net
Trang 284 FDO - Feature
Data Objects Là thư viện truy cập dữ liệu được phát triển đầu tiên bởi Autodesk (phục vụ cho
dòng sản phẩm Mapguide và Autodesk Map3D) Năm 2006, Mapguide được phát hành dưới dạng mã nguồn mở, kéo theo FDO cũng được phát hành dưới dạng mã nguồn mở
Ngoài chức năng tương tự như GDAL/OGR là cung cấp các thư viện tương tác với nhiều định dạng dữ liệu raster/vector, FDO hơn hẳn OGR trong các phép tính toán dữ liệu không gian (Distance, Length, Area, Intersection, Union…)
LGPL http://fdo.osgeo.org
Một số ứng dụng tiêu biểu
5 MapGuide Được phát triển trên nền tảng thư viện
Proj4 và GEOS nhằm hỗ trợ xây dựng các ứng dụng và dịch vụ WebGIS
MapGuide có thể hoạt động trên nền Windows hoặc Linux, hỗ trợ Web Server IIS / Apache; hỗ trợ PHP, NET, Java, JavaScript API cho phát triển ứng dụng
LGPL http://mapguide.osgeo.org
6 Mapserver Là một trong những dự án mã nguồn mở
thành công nhất hiện nay với đội ngũ phát triển, bảo trì chuyên nghiệp, hiệu năng cao và cài đặt đơn giản MapServer
hỗ trợ rất nhiều nguồn dữ liệu như Shapefile, PostgreSQL, Oracle Spatial, ArcSDE, Remote WMS layer, GDAL, OGR thông qua các hàm tương tác API như Mapserver CGI (Common Gateway Interface), MapScript Python, MapScript Perl, MapScript PHP, MapScript Java, MapScript NET, C API, OpenGIS WMS, OpenGIS WFS, OpenGIS WCS, OpenGIS SOS
MIT - style http://mapserver.gis.umn.edu
đó được phát hành dưới dạng mã nguồn
mở vào năm 1999 theo giấy phép GPL
GRASS hỗ trợ nhiều định dạng dữ liệu GDAL và OGR GRASS có thể đọc trực tiếp dữ liệu từ PostgreSQL/ PostGIS; hỗ trợ hiệu quả các công cụ mô hình hoá, phân tích dữ liệu phức tạp
GPL http://grass.itc.it
8 QGIS Là ứng dụng desktop hiển thị dữ liệu GIS
chủ yếu trên nền Linux và mở rộng cho
GPL http://www.qgis.org
Trang 29các nền hệ điều hành khác như Win32, OS/X, Solaris
QGIS hỗ trợ các định dạng vector như PostGIS, Shapefile và các định dạng mà OGR hỗ trợ; hỗ trợ các định dạng raster như DEM, ArcGrid, ERDAS, SDST, GeoTIFF,…
GPL http://www.ossim.org
10 TerraLib TerraLib hỗ trợ: Metadata Model, Spatial
Model, Spatial Model to Oracle Spatial, Spatial Model to PostgreSQL, Spatial Model to PostGIS, Application Model, GeoCoding Model, Spatial Statistics Model
Ngoài ra, TerraLib còn bao gồm ứng dụng Terraview, phục vụ cho việc hiển thị, tương tác dữ liệu không gian
GPL http://gmt.soest.hawaii.edu/
12 PostGIS Là một extension của PotgreSQL hỗ trợ
quản lý dữ liệu không gian theo đặc tả Simple Features Specifications For SQL của OGC PostGIS được phát triển trên nền tảng thư viện Proj4 và thư viện GEOS
GPL http://postgis.refractions.net
Trang 30I.2.2 Nhánh Java
Sở đồ OSS nhánh Java:
Hình I.2: Sơ đồ OSS nhánh Java [10]
Bảng I.2: Các OSS nhánh Java
phép Website Thư viện dùng chung
1 JTS (Java
Topology Suite)
Thư viện các hàm tương tác dữ liệu không gian theo đặc tả “Simple Features for SQL” - OpenGIS
LGPL http://www.geotools.org
3 GeoAPI Cung cấp các hàm thư viện API tương tác
dữ liệu không gian trên cơ sở các chuẩn
mở của OGC/ ISO
OGC license
http://geoapi.sourceforge.net
4 WKB4J Là thư viện hỗ trợ tương tác dữ liệu theo
định dạng Well-Known Binary (OpenGIS), và chuyển dữ liệu này sang các đối tượng không gian tương ứng
WKB hỗ trợ JTS, PostGIS, OpenMap…
LGPL http://wkb4j.sourceforge.net/
Trang 31Một số ứng dụng tiêu biểu
5 GeoServer Là một cài đặt các đặc tả máy chủ dịch vụ
Web theo chuẩn OpenGIS (Web Map Server -WMS, Web Feature Server - WFS)
Hỗ trợ Oracle Spatial, ArcSDE, PostGIS, ESRI Shapefile, KML
GPL http://geoserver.sourceforge.net
6 DeeGree Phát triển bởi đại học Bonn, hỗ trợ đặc tả
OpenGIS như WMS, WFS; hỗ trợ Shapefile, RDBMS, WKB và WKT
hệ
GPL http://www.jump-project.org
8 gvSIG Phát triển trên cơ sở GeoTools và JTS
Tương tác dữ liệu theo chuẩn OpenGIS, chạy trên nhiều nền hệ điều hành
GPL http://www.gvsig.gva.es/
9 OpenMap Là một trong những bộ Java Tookit lâu
đời nhất làm cơ sở cho phát triển các ứng dụng GIS nền Java
Hỗ trợ WFS, WMS, Styled Layer Descriptor (SLD), Web Catalog Server (cho phép tìm kiếm nhanh và sử dụng các dịch vụ bản đồ trực tuyến)
Hỗ trợ dữ liệu PostGIS, OracleSpatial, ArcSDE, MySQL
Cài đặt đơn giản, hỗ trợ đa ngôn ngữ, dễ dàng mở rộng
LGPL http://udig.refractions.net
Trang 32I.2.3 Nhánh Net
Các dự án Net được phát triển gần đây với một cộng đồng chưa lớn mạnh bằng nhánh C và Java, nhưng nhờ phát triển trên nền tảng các thư viện cơ sở của cả 2 nhánh (chẳng hạn như NTS phát triển trên cơ sở JTS, Proj.Net phát triển trên cơ sở Proj4), cộng đồng Net hoàn toàn có cơ sở để phát triển nhanh chóng
Sở đồ OSS nhánh Net:
Hình I.3: Sơ đồ OSS nhánh Net [10]
Bảng I.3: Các OSS nhánh Net
phép
Website Các thư viện dùng chung
1 NTS - Net
Topology Suit
NTS cung cấp hầu hết các đặc tính của JTS (Java Topology Suite), và sẵn dùng trực tiếp trong Net
LGPL http://sourceforge.net/projects/nts
2 Proj.Net Được phát triển trên nền tảng các thuật
toán chuyển đổi toạ độ của Proj4
LGPL http://www.codeplex.com/ProjNET
Một số ứng dụng tiêu biểu
3 MapWindow Là ứng dụng desktop GIS được phát
triển trên nền tảng ActiveX control MapWinGIS.ocx MapWindow có thể tương tác với các định dạng dữ liệu mà GDAL hỗ trợ
Mozilla Public License
http://www.MapWindow.com/
4 WorldWind Là ứng dụng hiển thị bản đồ thế giới
dạng 3D tương tự Google Earth; tuy nhiên WorldWin cho phép lập trình phát triển, mở rộng thông qua plug-in
NASA Open Source Agreement
http://worldwind.arc.nasa.gov/
5 SharpMap Là một thư viện Net cho phát triển các LGPL http://www.codeplex.com/Sharp
Map
Trang 33ứng dụng bản đồ trên Web và desktop
SharpMap được phát triển trên nền tảng NTS và Proj.Net ; ngoài ra, SharpMap còn sử dụng OGR/GDAL để truy cập nhiều định dạng dữ liệu không gian khác nhau, và SharpMap hiện được xem là một đối trọng của ESRI MapObjects
I.2.4 Nhánh Web
Sở đồ OSS nhánh Net:
Hình I.4: Sơ đồ OSS nhánh Web [10]
Bảng I.4: Các OSS nhánh Web
phép Website Toolkits
1 MapBuilder Cung cấp công cụ phía client cho hiển
thị và hiệu chỉnh dữ liệu không gian được cung cấp bởi các dịch vụ web theo chuẩn WMC (Wep Map Context - OpenGIS) và mở rộng cho các chuẩn trên cơ sở XML khác
Ngôn ngữ: Javascript / DHTML
LGPL http://mapbuilder.sourceforge.net
2 Ka-Map Cung cấp JavaScript API cho phát triển
các giao diện bản đồ web tương tác cao
Ka-Map gồm javascript web component phía client, PHP component phía server hoạt động theo cơ chế “xếp kề” (tương
tự Google Maps)
Ngôn ngữ: JavaScript / DHTML / PHPMapscript
BSD http://ka-map.maptools.org
Trang 343 OpenLayers OpenLayers cung cấp thư viện thuần
Javascript phía client cho phép nhúng các bản đồ từ Microsoft Virtual Earth, Google Maps, Yahoo Maps, Worldwind, WMS services, Terraserver… vào trang web một cách dễ dàng OpenLayers cũng hoạt động theo cơ chế “xếp kề” (tương
tự Google Maps)
Ngôn ngữ: JavaScript
BSD http://www.openlayers.org/
Frameworks
4 MapBender MapBender được phát triển và sử dụng
chủ yếu ở Đức như một cơ sở hạ tầng dữ liệu không gian cho các trang web bản
đồ MapBender cung cấp giao diện cho quản trị, truy xuất, hiển thị các dịch vụ bản đồ theo chuẩn WMS - OpenGIS
Ngôn ngữ: JavaScript / DHTML / PHP
GPL http://www.mapbender.org
5 CartoWeb CartoWeb là một Web-GIS toàn diện và
sẵn dùng, đồng thời là một framework cho phát triển các ứng dụng tuỳ biến
CartoWeb có tính modul hoá cao nhờ được xây dựng trên nền tảng kiến trúc hướng đối tượng,
Ngôn ngữ: JavaScript / DHTML / PHP
GPL http://www.cartoweb.org
Servers
6 TileCache TileCache đóng vai trò cầu nối trung
gian giữa WMS, Mapserver, ArcIMS…
và OpenLayers, WorldWin… Bằng cách lưu trữ (caching) các yêu cầu truy xuất bản đồ theo cơ chế “xếp kề”, TileCache giúp tăng tốc độ và hiệu năng truy xuất
Ngôn ngữ:Python
BSD http://tilecache.org
7 FeatureServer FeatureServer vẫn đang trong giai đoạn
thử nghiệm nhưng có tiềm năng phát triển mạnh Tuy chức năng tương tư như WFS, nhưng FeatureServer sử dụng các lệnh đơn giản thông qua giao thức HTTP
để điều khiển các tác vụ đọc / ghi (sử dụng HTTP GET, PUT, POST, DELETE) FeatureServer hỗ trợ các định dạng JSON, GML, KML
Ngôn ngữ: Python
BSD http://featureserver.org
Trang 35I.3 CÁC HỆ QUẢN TRỊ CSDL MÃ NGUỒN MỞ
I.3.1 GIỚI THIỆU CHUNG
Quá trình hình thành và phát triển của các hệ quản trị CSDL thông dụng, trong đó
có các hệ quản trị CSDL mã nguồn mở được thể hiện trong hình sau:
Hình I.5: Quá trình phát triển các hệ quản trị CSDL [11]
I.3.2 Firebird
- Hệ điều hành: Windows, Linux, Sun Solaris (Sparc, Intel), HP-UX
(PA-Risc), FreeBSD và MacOS X
- Giấy phép: IPL (InterBase Public License), Initial Developer's public license
Version 1.0
Trang 36Firebird được phát triển từ nềm tảng InterBase (1984) của hãng Borland Năm 2000, Borland quyết định phát hành Interbase (version 6.0) dưới dạng mã nguồn mở (theo giấy phép Mozilla Public License), tạo tiền đề cho sự ra đời của Firebird Đến phiên bản 6.5, Borland rút lại quyết định này, nhưng lúc đó Firebird cũng đã phát triển với một cộng đồng ngày càng lớn mạnh
I.3.3 Ingres
- Hệ điều hành: Windows, Linux, UNIX, Solaris, HP-UX và OpenVMS
- Giấy phép: GNU General Public Licence
Ingres (INteractive Graphics REtrieval System) được ra đời từ dự án nghiên cứu tại University of California, Berkeley vào những năm 1970 Năm 1982, Ingres được thương mại hoá bởi Ingres Corporation Tháng 10/1990, Ingres Corporation được mua lại bởi ASK Corporation Không lâu sau đó, năm 1994, Computer Associates (CA) mua lại ASK/Ingres Năm 2004, CA quyết định phát hành Ingres r3 dưới dạng
mã nguồn mở theo giấy phép CATOSL (CA Trusted Open Source License) Năm
2005, CA tái lập Ingres Corporation và phát hành Ingres 2006 theo giấy phép GNU General Public Licence vào tháng 02/2006
I.3.5 MaxDB
- Hệ điều hành: Windows, Linux, Sun Solaris, HP - UX, HP Tru64 UNIX, IBM AIX
Trang 37- Giấy phép: GNU General Public License và Commercial License
MaxDB được phát triển vào năm 1977 từ một dự án nghiên cứu tại Technical University of Berlin, được thương mại hoá vào năm 1981 bởi Nixdorf Computer, Siemens-Nixdorf, Software AG, với tên thương mại là DDB/4 Vào năm 1993, DDB/4 được Software AG mua lại với tên gọi là Entire SQL DB Server, sau đó đổi tên thành Adabas D Năm 1997, Adabas D được SAP tiếp nhận và đổi tên thành SAP DB Năm 2000, SAP phát hành SAP DB dưới dạng mã nguồn mở theo giấy phép GNU General Public License GPL Năm 2003 SAP AG phối hợp với MySQL
AB và đổi tên SAP DB thành MaxDB
I.3.6 PostgreSQL
- Hệ điều hành: Windows, Linux, FreeBSD, Mac OS X, Sun Solaris, HP-UX,
HP Tru64 UNIX, IBM AIX
- Giấy phép: BSD
PostgreSQL là một hệ quản trị CSDL quan hệ - đối tượng có nguồn gốc từ dự án Ingres tại trường Đại học Berkeley của Đức vào năm 1986 Sau khi dự án kết thúc vào năm 1994, trình thông dịch SQL được bổ sung vào và đổi tên thành Postgres95 Năm 1996 đựơc đổi tên thành postgreSQL
Trang 38I.3.7 MỘT SỐ ĐẶC ĐIỂM CỦA CÁC DBMS MÃ NGUỒN MỞ
Bảng I.5 : Một số đặc điểm của các DBMS mã nguồn mở
THÔNG TIN CHUNG Nhà sáng lập/ bảo trì IBPhoenix CA, Ingres Corp MySQL AB, SAP AG MySQL AB Pervasive Software,
PostgreSQL Inc
Thời điểm phát hành 1984
(2000: open source)
1974 (2004: open source)
1977 (2000: open source)
Hệ điều hành Windows, Linux, Sun
Solaris (Sparc, Intel),
HP-UX (PA-Risc), FreeBSD và MacOS X
Windows, Linux, UNIX, Solaris, HP-UX
và OpenVMS
Windows, Linux, Sun Solaris, HP - UX, HP Tru64 UNIX, IBM AIX
Windows, OS/2, Linux, FreeBSD, Sun Solaris, HP-UX, HP Tru64 UNIX, Mac OS X, IBM AIX, QNX, Novell Netware
Windows, Linux, FreeBSD, Mac OS X, Sun Solaris, HP-UX, HP Tru64 UNIX, IBM AIX
Hỗ trợ Unicode Có (UTF- 8, UTF -16) Có (UCS-2) Có (UTF-16/UCS-2) Có (UTF-8/UCS-2) Có (UTF-8)
Trang 39Hỗ trợ dữ liệu không gian Không Có Không Có (MyISAM) Có
Kết nối dữ liệu ODBC, JDBC, OLE DB,
.NET Data Provider
ODBC, JDBC, NET Data Provider
ODBC, JDBC, SQLDBC,OLE DB, ADO, DAO, RDO, NET
ODBC, JDBC, NET ODBC, JDBC, NET
Programming Interfaces C, C++, Java, Delphi, PHP,
Python, Perl
C, Perl, PHP, Python C/C++ Precompiler, PHP,
Perl, Python, Tcl, Delphi
C, C++, C#, Eiffel, Smalltalk, Java, Lisp, Perl, PHP, Python, Ruby, Tcl
C, C++, Java, Perl, Python, PHP, Ruby, R, Smalltalk, Lisp, Tcl
GIỚI HẠN LƯU TRỮ
Số mẩu tin / bảng 4,294,967,296 (2 32 ) 4,294,690,816 Giới hạn bởi kích thước
Trang 40Kích thước mẫu tin / bảng 64 KB 32 KB 8088 B 8000B 1.6TB
MỘT SỐ CÔNG CỤ HỖ TRỢ QUẢN TRỊ CSDL Công cụ hỗ trợ quản trị - CLI: isql
- GUIs: IB SQL, IBExpert (Windows), Database Workbench, IBAdmin, IBO Console
- Web: IBWebAdmin
CA Visual DBA (Ingres Visual Manager)
- Database Manager (DBMGUI)
(Windows)
- Web Database Manager (DBM)
- DBMCLI
- phpMyAdmin (Web)
- mysqladmin (CLI)
- MySQL Administrator (GUI)