Tuy nhiên hiện nay, các hệ thống thông tin quản lý thị trường này vẫn chưa thể giải vấn đề về không gian của BĐS cũng như mối quan hệ của nó với đối tượng xung quanh BĐS khác, công trình
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP
Sinh viên thực hiện : Lê Thành Nguyên
TP.HỒ CHÍ MINH, tháng 09 năm 2010
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP
HỆ THỐNG QUẢN LÝ BẤT ĐỘNG SẢN
THÀNH PHỐ HỒ CHÍ MINH
Nguyễn Văn Long Nguyễn Thị Thanh Tuyền Nguyễn Tường Vân
TP.HỒ CHÍ MINH, tháng 09 năm 2010
Trang 3LỜI CẢM ƠN
Khóa luận tốt nghiệp đã khép lại quá trình học tập tại Trường Đại Học Nông Lâm Thành phố Hồ Chí Minh Những kiến thức đã tích lũy trong quá trình 4 năm học tập mà các thầy cô truyền đạt là hành trang giúp chúng em tự tin hơn khi vào đời
Chúng con xin cảm ơn cha mẹ đã không ngại vất vả để cho con được theo đuổi con đường mà mình đã chọn Cảm ơn các anh chị đã hết lòng ủng hộ về mặt vật chất và tinh thần, đó chính là nguồn động viên to lớn giúp chúng em đủ tự tin vượt qua những khó khăn, thử thách
Chúng em xin cảm ơn các thầy, cô khoa Công Nghệ Thông Tin đã trang bị cho chúng em những kiến thức vô cùng quí báu Đặc biệt, chúng em xin chân thành cảm
ơn thầy Phạm Văn Tính, người đã luôn tận tình truyền đạt những kiến thức trong thời gian hướng dẫn chúng em thực hiện đề tài
Cảm ơn thầy Trần Thanh Hùng khoa Bất Động Sản đã nhiệt tình giúp đỡ chúng
em trong quá trình thu thập yêu cầu tại khoa Những kinh nghiệm, những số liệu mà thầy cung cấp là nguồn dữ liệu vô cùng quí giá để hoàn thành đề tài này
Cảm ơn bạn bè, những người thân đã giúp đỡ trong quá trình điều tra cũng như trong quá trình thực hiện đề tài
Xin chân thành cảm ơn!
ồ
Trang 4GVHD: TS Phạm Văn Tính i SVTH: Nguyên, Long, Tuyền, Vân
MỤC LỤC
MỤC LỤC i
DANH SÁCH CHỮ VIẾT TẮT vi
DANH MỤC HÌNH viii
TÓM TẮT xi
CHƯƠNG 1: MỞ ĐẦU 1
1.1 Đặt vấn đề 1
1.2 Mục tiêu nghiên cứu 2
1.3 Phạm vi nghiên cứu của khóa luận 2
1.3.1 Về thời gian 2
1.3.2 Về không gian 2
1.3.3 Về nội dung 2
CHƯƠNG 2: TỔNG QUAN 4
2.1 Tổng quan về WebGIS 4
2.1.1 Các sản phẩm GIS trên thế giới 4
2.1.2 Phát triển của GIS tại việt nam 7
2.2 Tổng quan về Web Portal 9
2.2 Lý do chọn đề tài 10
2.3 Nội dung nghiên cứu 10
CHƯƠNG 3: NỘI DUNG VÀ PHƯƠNG PHÁP 12
NGHIÊN CỨU 12
3.1 Web GIS 12
3.1.1 Mô hình hoạt động WebGIS 12
3.1.2 Kiến trúc của WebGIS 13
3.1.2.1 Kiến trúc thin client 13
3.1.2.2 Kiến trúc thick client 13
3.1.2.3 Web Map Service (WMS) 14
Trang 5GVHD: TS Phạm Văn Tính ii SVTH: Nguyên, Long, Tuyền, Vân
3.1.2.4 Web Feature Service (WFS) 14
3.2 Scalble Vector Graphics (SVG) và Ecma Script 15
3.2.1 SVG 15
3.2.1.1 Ưu điểm 16
3.2.1.2 Nhược điểm 17
3.2.2 ECMAScript 17
3.3 Bản đồ ảnh bitmap & OpenLayer 17
3.3.1 Bản đồ ảnh bitmap 17
3.3.2 OpenLayer 18
3.4 Spatial database: PostgreSQL và phần mở rộng PostGIS 19
3.5 GEO Server 20
3.6 Mashup 21
3.6.1 Khái niệm Mashup 21
3.6.2 Phân loại Mashup 22
3.6.3 Mashup tools 24
3.7 Google Maps API 26
3.7.1 Tạo một bản đồ Google Maps 26
3.7.2 Google Static Maps API 27
3.8 Web Portal 28
3.8.1 Liferay Portal 29
3.8.1.1 Tính năng Liferay Portal 29
3.8.1.2 Những lợi ích cơ bản của Liferay Portal 30
3.8.1.3 Đặc trưng của Liferay Portal 31
3.8.2 Portlet 2.0 32
3.8.3 ICE Face Portlet 33
3.8.3.1 Kiến trúc của ICE Face 33
Trang 6GVHD: TS Phạm Văn Tính iii SVTH: Nguyên, Long, Tuyền, Vân
3.8.3.2 Một số khái niệm 34
3.8.4 Spring Portlet 37
3.8.4.1 Khái niệm 37
3.8.4.2 Một số khái niệm của Spring porlet 37
3.8.4.3 Cấu hình Spring portlet 38
3.8.5 JSP Portlet 40
3.8.5.1 Khái niệm JSP Portlet 40
3.8.5.2 Các bước tạo một portlet JSP 40
3.8.5.3 XML Portlet Request 41
3.9 Hệ thống quản lý thị trường bất động sản 43
3.9.1 Phát biểu bài toán 43
3.9.2 Người dùng và các chức năng chính 43
3.9.2.1 Nhận diện người dùng 43
3.9.2.2 Các chức năng chính 44
3.9.3 Mô hình UseCase 45
3.9.3.1 Mô hình kế thừa của Actor 45
4.3.2 Mô hình UseCase của Guest 45
3.9.3.2 Mô hình UseCase của Member 46
3.9.3.3 Mô hình UseCase của Data Manager 46
3.9.4 Đặc tả UseCase 46
3.9.4.1 Các chức năng trên bản đồ 46
3.9.4.2 Các chức năng bất động sản 51
3.9.4.2.1 Đăng tin rao bán, cho thuê bất động sản 51
3.9.4.2.2 Đăng tin tìm mua, thuê bất động sản 55
3.9.4.2.3 Tìm kiếm các bản tin bất động sản 58
3.9.4.2.4 Đăng ký giao dịch bán, cho thuê 59
Trang 7GVHD: TS Phạm Văn Tính iv SVTH: Nguyên, Long, Tuyền, Vân
3.9.4.2.5 Đăng ký giao dịch mua, tìm thuê 61
3.9.5 Sơ đồ lớp 64
3.9.6 Mô hình cơ sở dữ liệu 66
3.9.7 Lựa chọn công nghệ 66
3.10 Các vấn đề và giải pháp 67
3.10.1 Xây dựng dữ liệu cho bản đồ 67
3.10.1.1.Vấn đề 67
3.10.1.2.Giải pháp 67
3.10.2 Xây dựng bản đồ vector sử dụng SVG 69
3.10.3 Bản đồ ảnh bitmap sử dụng GeoServer 71
3.10.3.1 Cấu hình chọn dữ liệu bản đồ trên GeoServer 72
3.10.3.2 Dùng OpenLayers để hiển thị bản đồ 73
3.10.5 Bản đồ với ảnh nền 75
3.10.5.1 Sử dụng ảnh bản đồ tĩnh để làm ảnh nền 75
3.10.5.2 Sử dụng bản đồ động để làm ảnh nền 77
3.10.6 Tăng tốc bản đồ SVG 79
3.10.6.1 Vấn đề 79
3.10.6.2 Giải pháp 80
3.10.6 Cache bản đồ SVG 83
3.10.6.1.Vấn đề 83
3.10.6.2.Giải pháp 83
3.10.6.3.Kết quả 84
3.10.8 Phóng to, thu nhỏ bản đồ 84
3.10.8.1.Vấn đề 84
3.10.8.2.Giải pháp 85
3.11 Xây dựng ứng dụng theo hướng module hóa 85
Trang 8GVHD: TS Phạm Văn Tính v SVTH: Nguyên, Long, Tuyền, Vân
3.11.1 Mục đích 85
3.11.2 Các thành phần trong phần mềm 86
3.11.3 Chi tiết các thành phần trong phần mềm 86
3.11.3.1.Presentation 86
3.11.3.2.Business Logic 87
3.11.3.3.Data Access 92
CHƯƠNG 4: KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN 96
4.1 Tổng kết 96
4.2 Kết quả đạt được 96
4.3 Hướng phát triển 97
TÀI LIỆU THAM KHẢO 98
PHỤ LỤC 100
Phụ lục 1: Tầng Data Access 100
Phụ lục 2: Bản đồ SVG 117
Phụ lục 3: Các giao diện của phần mềm: 134
Trang 9GVHD: TS Phạm Văn Tính vi SVTH: Nguyên, Long, Tuyền, Vân
DANH SÁCH CHỮ VIẾT TẮT AJAX: Asynchronous Javascript And XML
API: Application Programming Interface
ASP: Active Server Pages
BSD: Berkeley Software Distribution
CGI: Common Gateway Interface
CMS: Content Management System
CSDL: Cơ Sở Dữ Liệu
CSS: Cascading Style Sheets
DHTML: Dynamic HyperText Markup Language
DOM: Document Object Model
DOS: Disk Operating System
D2D: Direct-to-DOM
GML: Geography Markup Language
HTML: HyperText Markup Language
JSF: Java Server Faces
JSON: Javascript Object Notation
JSP: Java Server Pages
JSR: Java Specification Requests
MVC: Model-View-Controller
OGC: Open GIS Consortium
RIA: Rich Internet Applications
RSS: Really Simple Syndication
SLD: Styled Layer Description
SSO: Single Sign On
Trang 10GVHD: TS Phạm Văn Tính vii SVTH: Nguyên, Long, Tuyền, Vân
SVG: Scalable Vector Graphics
TCO: Total Cost of Ownership
TCP: Transmission Control Protocol
URL: Uniform Resource Locator
WebDAV: Web-based Distributed Authoring and Versioning
WCS: Web Coverage Service
WFS: Web Feature Service
WMS: Web Map Service
XML: Extends Markup Language
XSL: Extensible Stylesheet Language
Trang 11GVHD: TS Phạm Văn Tính viii SVTH: Nguyên, Long, Tuyền, Vân
DANH MỤC HÌNH
Hình 1: Giao diện phần mềm MapInfo Professional 7.5 6
Hình 2: Bản đồ trực tuyến của Google Maps 6
Hình 3: Giao diện Google Earth 7
Hình 4 : Bản đồ tại www.nhadatviet.vn 7
Hình 5: Bản đồ tại www.vietbando.com 8
Hình 6: Bản đồ tại www.diadiem.com 8
Hình 7: Mô hình hoạt động của WebGIS 12
Hình 8: Kiến trúc thin client 13
Hình 9: Kiến trúc thick client 14
Hình 10: Mô hình hoạt động của Web Map Services 14
Hình 11: Mô hình Web Feature Service 15
Hình 12: Độ phân giải với raster và vector 16
Hình 13: OpenStreetMap.com sử dụng thư viện OpenLayer 18
Hình 14: Phần mở rộng PostGIS trên PostgreSQL 19
Hình 15: Hoạt động của client-side mashup 24
Hình 16: Một ví dụ bản đồ Google Maps 27
Hình 17: Kiến trúc cơ bản của ICEfaces-enabled 33
Hình 18: Các yếu tố chính của kiến trúc ICEfaces 34
Hình 19: Mô hình Direct-to-DOM 35
Hình 20: Direct-to-DOM Rendering Via Ajax Bridge 35
Hình 21: Synchronous and Asynchronous Updates 36
Hình 22: Server-initiated Rendering (Ajax Push) 36
Hình 23: Partial Submit – Intelligent Form Processing 37
Hình 24: Mô hình kế thừa của Actor 45
Trang 12GVHD: TS Phạm Văn Tính ix SVTH: Nguyên, Long, Tuyền, Vân
Hình 25: Mô hình usecase của Guest 45
Hình 26: Mô hình usecase của member 46
Hình 27: Mô hình uecase của data manager 46
Hình 28: Sơ đồ sequence thực hiện pan 47
Hình 29: Sơ đồ sequence thực hiện zoom in trên đối tượng MapControl 47
Hình 30: Sơ đồ sequence thực hiện zoom in trên đối tượng MainMap 48
Hình 31: Sơ đồ sequence thực hiện Zoom out trên đối tượng MapControl 48
Hình 32: Sơ đồ sequence thực hiện zoom out trên đối tượng MainMap 49
Hình 33: Sơ đồ sequence thực hiện translate trên đối tượng MainMap 49
Hình 34: Sơ đồ sequence thực hiện translate trên đối tượng RefMap 50
Hình 35: Sơ đồ lớp 64
Hình 36: Sơ đồ lớp các đối tượng bản đồ 65
Hình 37: mô hình cơ sở dữ liệu 66
Hình 38: Giao diện chuyển đổi file TAB sang file ESRI Shape của MapInfo 68
Hình 39: Giao diện của shape file PostGIS Importer 68
Hình 40: Một đoạn dữ liệu không gian ở dạng SVG trên PostGIS 69
Hình 41:Bản đồ ảnh SVG 71
Hình 42: Giao diện chọn nguồn dữ liệu PostGIS cho GeoServer 72
Hình 43: Giao diện tạo layer của GeoServer 73
Hình 44: Bản đồ ảnh bitmap sử dụng GeoServer và OpenLayer 75
Hình 45: Google Static Maps 76
Hình 46: Google Static Maps khi load thành nhiều mảnh 77
Hình 47: Kết quả lấy Google Maps làm ảnh nền 79
Hình 48: Cấu trúc thư mục chứa dữ liệu SVG sau khi phân lớp và cắt nhỏ 80
Hình 49: Cấu trúc bảng dữ liệu chứa dữ liệu SVG sau khi cắt 82
Hình 50: Mô hình cache dữ liệu SVG 84
Trang 13GVHD: TS Phạm Văn Tính x SVTH: Nguyên, Long, Tuyền, Vân
Hình 51: Chiều rộng của ranh địa chính ở mức khái quát 85
Hình 52: Chiều rộng của ranh hành chính ở mức zoom lớn hơn 85
Hình 53: Cấu trúc các module trong phầm mềm 86
Hình 54: Sơ đồ lớp của module CSDL 94
Hình 55: Thanh Menu hệ thống 134
Hình 56: Giao diện trang chủ hệ thống 134
Hình 57: Giao diện chức năng tìm đường 135
Hình 58: Giao diện tìm kiếm địa danh 136
Hình 59: kết quả tìm kiếm địa danh 136
Hình 60: Giao diện xem địa điểm 137
Hình 61: Giao diện cập nhật thông tin bản đồ 138
Hình 62|: Giao diện cập nhật địa danh 139
Trang 14GVHD: TS Phạm Văn Tính xi SVTH: Nguyên, Long, Tuyền, Vân
TÓM TẮT
Thị trường bất động sản (BĐS) nước ta sau 20 năm đổi mới đã hình thành và phát triển với tốc độ nhanh, thông tin trên thị trường ngày càng lớn đòi hỏi một phần mềm có thể quản lý thông tin cho thị trường này và giúp người quản lý cũng như các bên tham gia thị trường đưa ra quyết định và cái nhìn đúng đắn về thị trường BĐS trong đầu tư nhất là trong điều kiện môi trường kinh doanh đang mang nhiều rủi ro
và không chắc chắn như hiện nay
Các yếu tố cấu thành giá của BĐS bao gồm nhiều yếu tố trong đó có yếu tố vị thế của BĐS (là yếu tố đo sự mong muốn về mặt xã hội gắn với BĐS đó tại một vị trí xác định trong mối quan hệ với các đối tượng xung quanh) Tuy nhiên hiện nay, các
hệ thống thông tin quản lý thị trường này vẫn chưa thể giải vấn đề về không gian của BĐS cũng như mối quan hệ của nó với đối tượng xung quanh (BĐS khác, công trình, …) vì các hệ thống này chỉ quan tâm đến thuộc tính của BĐS chưa quản lý được mối quan hệ không gian của nó với các đối tượng khác Vì vậy, thực tế đang đòi hỏi một hệ thống quản lý thị trường này kết hợp với WebGIS để giải quyết mối quan hệ không gian nói trên
Hiện nay, do các kỹ thuật triển khai WebGIS trên các nền công nghệ thương mại phải tốn chi phí đầu tư cho công nghệ này là rất tốn kém rất tốn kém làm nhà đầu tư phát triển, nhà quản lý ngại sử dụng các công nghệ thương mại Bên cạnh đó, các hệ thống WebGIS triển khai trên nền các công nghệ mã nguồn mở (MNM) vẫn còn hạn chế: tốc độ đáp chậm do triển khai trên kỹ thuật bản đồ ảnh bitmap, không tối ưu về băng thông, tốc độ, ít hỗ trợ về khả năng tương tác giữa người dùng và bản đồ
Từ những vấn đề trên, thực tế đòi hỏi một đề tài tìm hiểu các kỹ thuật, công nghệ MNM để xây dựng hệ thống thông tin quản lý thị trường BĐS ứng dụng WebGIS hỗ trợ người dùng việc khai thác thông tin về BĐS trong mối quan hệ không gian Đồng thời tìm những giải pháp để tăng tốc độ, tăng khả năng phục vụ người dùng của bản
đồ Theo đó, chúng tôi tiến hành phân tích một số nhược điểm của các hệ thống WebGIS MNM hiện thời cũng như tiếp thu các khả năng, tiện ích hỗ trợ người dùng của các hệ thống đó, trên cơ sở đó đưa ra một số phương pháp nhằm cải thiện tốc độ, tăng khả năng đáp ứng, xây dựng hệ thống quản lý thị trường bất động sản dựa trên công nghệ mã nguồn mở Đề tài tiến hành tìm hiểu một số công nghệ: SVG, Web Map Services, Web Feature Services, Geo Server và bộ thư viện JavaScript OpenLayer để xây dựng hệ thống quản lý thị trường bất động sản trên nền Web
Trang 15GVHD: TS Phạm Văn Tính xii SVTH: Nguyên, Long, Tuyền, Vân
Portal Hệ thống tập trung chủ yếu vào khả năng tương tác với người dùng, áp dụng
cơ chế caching cho việc load dữ liệu bản đồ nhằm giải quyết vấn đề tốc độ mà một
số hệ thống WebGIS đã và đang gặp phải
Từ những tìm hiểu của nhóm và sự hướng dẫn của thầy Phạm Văn Tính, nhóm nghiên cứu đã xây dựng thành công hệ thống quản lý thị trường BĐS bằng ứng dụng WebGIS và các công nghệ mã nguồn mở:
− Với giao diện trực quan và bản đồ vector hỗ trợ tương tác 2 chiều giữa người dùng và bản đồ trong khai thác thông tin cho phép quản lý, cũng như cập thông tin BĐS ở các sàn giao dịch, thông tin thuộc tính của các đối tượng không gian qua thu thập, khảo sát để tạo bộ dữ liệu đầy đủ, chính xác so với thực tế để khai thác trong thẩm định giá BĐS
− Hỗ trợ bản đồ cho người dùng khai thác các tính năng cơ bản: tìm đường, xác định địa điểm(các trung tâm kinh tế, văn hóa, du lịch…)
− Chức năng định giá bằng việc khai thác mối quan hệ không gian và thông tin thuộc tính do người dùng cung cấp
Ngoài ra, để hỗ trợ người dùng xem được vị trí của BĐS ngoài thực địa hệ thống hỗ trợ bản đồ nền từ ảnh vệ tinh của Google Maps
Trang 16
GVHD: TS Phạm Văn Tính 1 SVTH: Nguyên, Long, Tuyền, Vân
Hơn nữa, với quá trình phân khúc theo các đặc điểm văn hóa xã hội dân cư và phân vùng theo không gian thị trường bất động sản có tính cục bộ về cung cầu và giá
cả, làm cho thông tin thị trường ngày càng không minh bạch và thông suốt, là môi trường cho giới đầu cơ lũng đoạn tạo ra các cơn sốt giá, thời kỳ đóng băng, bong bóng giá cả bất động sản gây thiệt hại lớn cho những người tham gia thị trường nói riêng, cũng như sự phát triển ổn định của nền kinh tế nói chung Chính vì vậy, việc quản lý thị trường bất động sản là thực sự cần thiết cho sự cần thiết cho sự phát triển
ổn định của nền kinh tế và đảm bảo quyền lợi của các bên tham gia thị trường
Có thể nói, tính cục bộ từ quá trình phân khúc, phân vùng của thị trường bất động sản suy cho cùng là hệ quả của quá trình phân hóa giai tầng trong xã hội mà không thể san phẳng được bằng các biện pháp chính sách, quy hoạch hay kinh tế Tuy nhiên, có thể giảm thiểu tính cục bộ của thị trường bất động sản bằng việc tạo ra sự thông suốt về thông tin giữa các phân khúc thị trường, thông qua hệ thống thông tin phản ánh thực trạng giao dịch và chỉ số giá cả bất động sản, hỗ trợ cho các nhà kinh doanh và quản lý trong nghiên cứu thị trường ra quyết định, nhất là trong điều kiện môi trường kinh doanh hiện nay mang nhiều rủi ro, không chắc chắn
Như vậy, nhu cầu về một hệ thống thông tin có thể quản lý thị trường BĐS muôn hình đa dáng này đã trở nên cấp thiết để quyết định sự phát triển bền vững của cả thị trường
Trang 17GVHD: TS Phạm Văn Tính 2 SVTH: Nguyên, Long, Tuyền, Vân
1.2 Mục tiêu nghiên cứu
Tìm hiểu các công nghệ mã nguồn mở để xây dựng hệ thống quản lý thị trường BĐS trên các tiêu chí đặc trưng để có thể cung cấp dịch vụ cho các nhà kinh doanh quản lý thị trường phân tích đánh giá thị trường Đề tài tập trung nghiên cứu và giải quyết các vấn đề sau:
− Sử dụng SVG để xây dựng bản đồ hỗ trợ tương tác cho người dùng trong việc truy vấn thông tin của các đối tượng không gian cũng như BĐS
− Sử dụng GeoServer và OpenLayer để phát triển bản đồ ảnh bitmap thay thế bản
đồ SVG khi trình duyệt chưa có plugin hỗ trợ SVG
− Tìm hiểu và phát triển ứng dụng theo chuẩn portlet 2.0 triển khai trên Liferay Portal để đem lại sự tiện lợi và dễ sử dụng cho người dùng
− Tìm hiểu và đưa ra mô hình hoạt động cũng như giải thuật giúp tăng tốc bản đồ tăng khả năng phục vụ cho hệ thống
− Xây dựng module khai thác thông tin thuộc tính và các mối quan hệ của BĐS trong định giá BĐS
− Ứng dụng bản đồ đã xây dựng, phát triển các chức năng cơ bản của bản đồ như tìm đường, địa danh
− Sử dụng ảnh vệ tinh của GoogleMaps để làm ảnh nền cho bản đồ hỗ trợ người dùng xem vị trí của BĐS ngoài thực địa
− Phát triển ứng dụng này theo từng module để mở rộng khả năng tương thích và phát triển của hệ thống
1.3 Phạm vi nghiên cứu của khóa luận
1.3.1 Về thời gian
Đề tài được thực hiện trong khoảng thời gian từ 01/03/2010 đến 15/09/2010 Trong đó, thời gian từ 1/3/2010 đến 15/03/2010 tiến hành thu thập yêu cầu của người dùng Thời gian còn lại tập trung vào hoàn thiện bảng yêu cầu, tiến hành phân tích yêu cầu, xây dựng mô hình cơ sở dữ liệu và hiện thực hệ
1.3.2 Về không gian
Đề tài tiến hành dựa trên yêu cầu thu thập từ Khoa Quản lý đất đai và Bất động sản trường Đại học Nông Lâm TP Hồ Chí Minh và sự hướng dẫn của thầy Phạm Văn Tính khoa Công nghệ Thông tin trường Đại học Nông Lâm TP Hồ Chí Minh
1.3.3 Về nội dung
Đề tài tập trung nghiên cứu các công nghệ MNM để xây dựng bản đồ SVG và bản đồ bitmap: SVG, GeoServer, PostgreSQL & PostGIS, OpenLayer theo hướng
Trang 18GVHD: TS Phạm Văn Tính 3 SVTH: Nguyên, Long, Tuyền, Vân
module hóa và xây dựng các chức năng quản lý thị trường BĐS theo yêu cầu từ Khoa Quản lý Đất đai & Bất động sản trường Đại học Nông Lâm TP HCM trên nền Liferay Portal
Đề tài không nghiên cứu các vấn đề về biên tập bản đồ cũng như các vấn đề nghiệp vụ liên quan về bản đồ và BĐS
Trang 19GVHD: TS Phạm Văn Tính 4 SVTH: Nguyên, Long, Tuyền, Vân
CHƯƠNG 2: TỔNG QUAN
2.1 Tổng quan về WebGIS
GIS (Geographic Information Systems): Hệ thống thông tin địa lý Có nhiều
định nghĩa về GIS:
- GIS là công cụ trên cơ sở máy tính để lập bản đồ và phân tích những hiện
tượng đang tồn tại và các sự kiện xảy ra trên trái đất (Environmental System
Research Institute ESRI – Mỹ)
- GIS là hệ thống phần cứng, phần mềm và các thủ tục được thiết kế nhằm thu thập, quản lý, xử lý, phân tích, mô hình hóa và hiển thị các dữ liệu quy chiếu không gian để giải quyết các vấn đề quản lý và lập kế hoạch (National Center for Geography Information and Analysis NCGIA - Mỹ)
- GIS là một tập hợp các nguyên lý, phương pháp, dụng cụ và dữ liệu quy chiếu không gian được sử dụng để nhập, lưu trữ, chuyển đổi, phân tích, lập mô hình,
mô phỏng và lập bản đồ các hiện tượng, sự kiện trên trái đất, nhằm sản sinh các thông tin thiết thực hỗ trợ cho việc ra quyết định
Một cách tổng quát, GIS thực hiện việc thu thập, quản lý, thao tác và phân tích
dữ liệu địa lý cùng với việc trình bày kết quả dưới hình thức bản đồ và báo cáo WebGIS là hệ thống thống thông tin địa lý được xây dựng trên nền web với mục đích thu thập, quản lý, thao tác và phân tích dữ liệu địa lý và thuộc tính cung cấp cho người dùng truy cập bằng giao thức HTTP
Việc tích hợp công nghệ GIS vào Internet (WebGIS) đã tạo ra cơ hội để mọi người đều có thể sử dụng dữ liệu và các chức năng GIS mà không cần cài đặt bất kỳ một phần mềm GIS chuyên dụng nào
Hiện nay, các phần mềm GIS của các công ty lớn phát triển khá mạnh hỗ trợ chức năng đa dạng từ cơ bản đến phức tạp Có thể liệt kê một số phần mềm GIS hiện nay có trên thị trường phầm mềm như sau:
ArcGIS: là dòng sản phẩm hỗ trợ trong hệ thống thông tin địa lý (GIS) của ESRI Các phiên bản ban đầu là ArcInfo, được cài đặt dưới dạng DOS, ngày nay các sản phẩm này được phát triển lên nhiều phiên bản cao cấp hợp dùng chạy trên nhiều hệ điều hành khác nhau như: Windows, Unix
+ Các dòng sản phẩm:
− ArcGIS gồm ArcInfo, ArcEdito, ArcCatalog
− ArcIMS dùng để đưa dữ liệu GIS lên Web
Trang 20GVHD: TS Phạm Văn Tính 5 SVTH: Nguyên, Long, Tuyền, Vân
− ArcPad dùng cho các thiết bị Mobile
− ArcSDE dùng làm cầu nối truy xuất vào các hệ quản trị cơ sở dữ liệu
− ArcExplore dùng truy cập nguồn dữ liệu trên Web
− ArcGIS server hỗ trợ các chức năng bên phía server cũng như triển khai các ứng dụng qua mạng
+ Các chức năng hỗ trợ:
− ArcGIS hỗ trợ nhiều phần mở rộng gọi là các Extension, mỗi Extension hỗ trợ một số chức năng chuyên biệt như: phân tích không gian, phân tích 3D, phân tích mạng, xử lý dữ liệu, thống kê không gian
− ArcGIS hỗ trợ đọc được nhiều định dạng dữ liệu khác nhau (khoảng 300 định dạng) như shapefile, geodatabase, AutoCad, Raster, Coverage,
− Ngày nay ArcGIS được sử dụng rộng rãi trong các ứng dụng trong Hệ thống thông tin địa lý như quản lý Môi trường, Đất đai, Xã hội, Kinh tế
MapInfo: là phầm mềm GIS do công ty MapInfo (nay là Pitney Bowes) phát triển Phiên bản hiện hành là MapInfo Professional 10.0
+ Các chức năng:
− Hỗ trợ tốt để hiển thị dữ liệu vector với các quan hệ trong hình học topo
− Cho phép chồng xem các định dạng ảnh (raster) làm nền bản đồ
− Hỗ trợ in bản đồ
− Kết nối với Crystal Resport để lập báo cáo dựa trên dữ liệu không gian và thuộc tính của bản đồ
− Lập trình tự động hóa công việc với MapBasic
− MapInfo là phần mềm biên tập bản đồ với nhiều tính năng, tuy nhiên điểm vượt trội của MapInfo so với các phần mềm khác là khả năng biên tập bản
đồ chuyên đề rất tốt với công cụ Create thematic map
− MapInfo có khả năng kết nối với các phần mềm khác rất tốt, thông qua việc
hỗ trợ nhiều định dạng file Thêm vào đó MapInfo hỗ trợ công cụ chuyển đổi định dạng file để tương thích với phần mềm khác băng công cụ
Universal Traslator
Trang 21GVHD: TS Phạm Văn Tính 6 SVTH: Nguyên, Long, Tuyền, Vân
Hình 1: Giao diện phần mềm MapInfo Professional 7.5
Google Maps (Google Local) là một dịch vụ ứng dụng công nghệ bản đồ trực tuyến trên web miễn phí được cung cấp bởi Google và hỗ trợ nhiều dịch vụ dựa vào bản đồ như Google Ride Finder Hệ thống này cho phép hiển thị bản đồ đường đi, những địa điểm kinh doanh trong khu vực cũng như khắp thế giới
Hình 2: Bản đồ trực tuyến của Google Maps
Ngoài sự tiện lợi và lợi ích của dịch vụ này tại trang chủ, Google Maps còn cung cấp API lập trình với Google Maps để có thể nhúng bản đồ này vào một trang web khác với các chức năng tương tự
Google Maps là bản đồ hỗ trợ cho người dùng ở dạng đã được làm phẳng, Google còn cung cấp một hệ thống bản đồ trực quan với tên Google Earth, Google Earth cho người dùng sử dụng bản đồ như một quả địa cầu để bàn Một sản phẩm từ Google là Google Earth là một ứng dụng độc lập dành cho các hệ điều hành Microsoft Windows, Mac OS X và Linux cho phép người dùng thực hiển các tính năng mở rộng từ Google Maps
Trang 22GVHD: TS Phạm Văn Tính 7 SVTH: Nguyên, Long, Tuyền, Vân
Hình 3: Giao diện Google Earth
Với sự phát triển của công nghệ thông tin, công nghệ GIS và ứng dụng ngày càng phong phong phú trong những năm gần đây các công ty phần mềm đã đưa ra các sản phẩm GIS phục vụ nhu cầu trong nước với các sản phẩm tương tự nhau được phát triển trên nền web Các dịch vụ GIS được phát triển chủ yếu để phục vụ các ngành
du lịch, bất động sản, quản lý tài nguyên môi trường… Các sản phẩm GIS thông dụng được biết đến như: www.diadiem.com, www.vietbando.com, www.vietbds.com, www.oneres.net
s
Trang 23GVHD: TS Phạm Văn Tính 8 SVTH: Nguyên, Long, Tuyền, Vân
Cùng với sự phát triển đó, để phục vụ các nhu cầu từ xã hội các đề tài nghiên cứu tại các trường đại học trong nước bắt đầu chuyển sang các đề tài về công nghệ và giải pháp GIS có thể liệt kê một số đề tài sau:
Đề tài “Khảo sát gói thư viện mã nguồn mở Geotools và ứng dụng hiện thực hệ thống thông tin địa lý trên nền Web” – Trần Lê Như Quỳnh và Nguyễn Ngọc Xuân Hồng (khoa Công nghệ Thông tin - Đại học Nông Lâm TP HCM) Đề tài đã tiến hành xây dựng hệ GIS dựa trên gói thư viện mã nguồn mở Geotools, do Geotools
Trang 24GVHD: TS Phạm Văn Tính 9 SVTH: Nguyên, Long, Tuyền, Vân
xây dựng dựa trên công nghệ Java Applet nên tốc độ truy xuất chậm, khả năng đáp ứng không cao, và khả năng tương tác với dữ liệu còn hạn chế do việc đóng gói cứng của Applet
Đề tài “Tìm hiểu công nghệ GML – SVG và ứng dụng” – Trần Thanh Trí và Nguyễn Thị Diệu Nguyện (Khoa Công nghệ Thông Tin – Đại học Khoa học tự nhiên
TP HCM) Đề tài tiến hành tìm hiểu một phần của GML, SVG dùng để ứng dụng vào hệ thống thông tin địa lý, do áp dụng SVG vào hiển thị dữ liệu nên tốc độ truy xuất chậm Tuy nhiên đề tài chỉ dừng lại ở việc hiển thị dữ liệu bản đồ chưa cung cấp khả năng tương tác của người dùng lên đối tượng không gian, đồng thời chưa quan tâm đến việc cải thiện tốc độ của hệ thống
Đề tài “Hệ thống quản lý bất động sản TP Hồ Chí Minh” – Phạm Tuấn Linh, Nguyễn Văn Minh, Đinh Quang Vinh và Phạm Hồng Hạnh(Khoa Công nghệ Thông tin – Đại học Nông Lâm TP HCM) Đề tài đã xây dựng thành công một hệ thống quản lý bất bất động sản ứng dụng SVG vào việc xây dựng bản đồ Tuy nhiên do hệ thống được phát triển mới hoàn toàn nên tốc độ xử lý của bản đồ còn chậm, chưa hỗ trợ đa tỉnh thành, chưa tạo được ảnh nền của bản đồ, bản đồ chỉ mới tương thích với Microsoft Internet Explorer
2.2 Tổng quan về Web Portal
Những năm gần đây, lượng khổng lồ website của các tổ chức, công ty và cá nhân
ra đời dẫn đến hệ quả quá tải thông tin - người sử dụng phải xử lý khối lượng rất lớn thông tin không cần thiết Không đáp ứng được nhu cầu tích hợp ứng dụng và tích hợp hệ thống là hạn chế lớn nhất của các website
Những bất cập trên cùng hàng loạt yêu cầu cấp thiết khác nảy sinh từ thực tế phát triển của mạng Internet cũng như từ cộng đồng người sử dụng đã khai sinh một khái niệm mới, đồng thời cũng là một xu hướng công nghệ mới: Portal (thường được gọi
là cổng giao tiếp điện tử)
Portal, là một điểm truy cập với giao diện web, cho phép người dùng khai thác hiệu quả một khối lượng lớn tài nguyên thông tin và dịch vụ Không chỉ vậy portal còn là một nền tảng công nghệ cho phép tích hợp toàn bộ thông tin và các ứng dụng chạy trên web, đồng thời cung cấp khả năng tuỳ biến cho từng đối tượng sử dụng, cho phép khai thác thông tin hiệu quả nhất, nhanh nhất và thân thiện nhất
Portal là bước phát triển kế tiếp của công nghệ web Sự khác biệt chính giữa Portal và Website là: Website được xây dựng như một đơn vị thông tin độc lập, còn Portal được thiết kế để trở thành trung tâm tích hợp thông tin, ứng dụng và dịch vụ
Trang 25GVHD: TS Phạm Văn Tính 10 SVTH: Nguyên, Long, Tuyền, Vân
mạng Điểm khác biệt này cũng quy định nên sự khác biệt về ứng dụng giữa Portal
và Website Trên thế giới, xu hướng ứng dụng Portal đang ngày càng trở nên phổ biến trong các lĩnh vực như chính phủ điện tử, thương mại điện tử, đào tạo trực tuyến
Xuất phát từ những đòi hỏi của thị trường BĐS: quản lý thông tin, giải quyết vấn đề cục bộ thông tin gây ra những thiệt hại cho những người tham gia thị trường như đã đề cập ở mục 1.1 Đồng thời, giá trị BĐS được cấu thành từ nhiều yếu tố trong đó mối quan hệ không gian luôn được quan tâm hàng đầu Tuy nhiên, các hệ thống quản lý thông tin BĐS hiện nay chưa giải quyết mối quan hệ phức tạp về không gian của BĐS
Bên cạnh đó, các hệ thống WebGIS mã nguồn mở có tốc độ đáp ứng chậm do bản đồ hiển thị ở dạng ảnh bitmap nên khả năng tương tác giữa người dùng và bản
đồ không cao
Như vậy, việc kết hợp tiềm năng to lớn của GIS trong khai thác, quản lý, phân tích thông tin BĐS để áp dụng vào thị trường này là bài toán mới và có khả năng triển khai cao
Xuất phát từ các vấn đề trên, nhóm nghiên cứu đã tìm hiểu và đề ra các giải pháp
sử dụng công nghệ mã nguồn mở (MNM): SVG, PostgreSQL, PostGIS trên nền Java Server Page (JSP) và Liferay Portal xây dựng bản đồ để trở thành công cụ quản lý thị trường bất động sản theo các tiêu chí và yêu cầu của các nhà quản lý và kinh doanh trên cơ sở cách nhìn hợp nhất về hệ thống thị trường bất động sản
Hệ thống thông tin thị trường bất động sản được xây dựng phải thỏa mãn các nhu cầu tác nghiệp của các nhà quản lý và kinh doanh bất động sản
2.3 Nội dung nghiên cứu
Đề tài đã tiến hành tìm hiểu về WebGIS và các công nghệ khác để phát triển hệ thống quản lý thị trường BĐS hỗ trợ việc lưu trữ xử lý và hiển thị dữ liệu không gian trên bản đồ động cùng với các chức năng để quản lý thị trường BĐS gắn liền với việc khai thác thông tin thuộc tính và mối quan hệ của BĐS với khu vực xung quanh Như vậy, đề tài này tìm hiểu xoay quanh các vấn đề sau:
− Tìm hiểu về mô hình, nguyên tắc và các chuẩn hỗ trợ của WebGIS để từ đó xây dựng hệ thống quản lý thị trường BĐS ứng dụng WebGIS
Trang 26GVHD: TS Phạm Văn Tính 11 SVTH: Nguyên, Long, Tuyền, Vân
− Tìm hiểu mô hình, nguyên tắc, cách xử lý, lưu trữ dữ liệu không gian, các hàm xử lý, truy xuất dữ liệu không gian cũng như khả năng tương thích dữ liệu này với các phần mềm lưu trữ cũng như biên tập dữ liệu không gian khác
− Tìm hiểu về Web Portal để triển khai hệ thống với giao diện dễ tùy biến đáp ứng đòi hỏi về giao diện cho người dùng và cung cấp một số dịch vụ từ Web Portal
− Tìm hiểu GeoServer để xây dựng bản đồ ảnh bitmap hỗ trợ người dùng khi trình duyệt chưa có SVG plugin
− Tìm hiểu Google Maps API để sử dụng bản đồ Google Maps trong hiển thị ảnh nền cho bản đồ SVG cũng như bản đồ bitmap
Trang 27GVHD: TS Phạm Văn Tính 12 SVTH: Nguyên, Long, Tuyền, Vân
CHƯƠNG 3: NỘI DUNG VÀ PHƯƠNG PHÁP
NGHIÊN CỨU
WebGIS là một hệ thống phức tạp cung cấp truy cập trên mạng với những chức năng như bắt giữ hình ảnh (capturing), lưu trữ, hợp nhất dữ liệu (intergrating), điều khiển bằng tay (manipulating), phân tích và hiển thị dữ liệu không gian (theo Harder 1998)
WebGIS được xem như là một hệ thống thông tin địa lý được phân bố qua môi trường mạng máy tính để tích hợp, phân phối, truyền tải thông tin địa lý trực diện trên World Wide Web thông qua Internet
Hình 7: Mô hình hoạt động của WebGIS
WebGIS hoạt động theo mô hình Client – Server Mô hình của WebGIS bao gồm các thành phần chính sau:
− Web Server: dùng để nhận yêu cầu từ client và trả kết quả xử lý về cho client
− GIS Server: dùng để xử lý những yêu cầu liên quan đến GIS
− GIS database (GEO Database): là nơi lưu trữ dữ liệu không gian và thuộc tính
− Client: là web browser dùng để gửi và nhận yêu cầu từ Web Server
Khi có một yêu cầu từ Client (Web browser), web server sẽ phân tích yêu cầu đó
và gửi cho GIS server xử lý, GIS server sẽ thực hiện truy vấn các dữ liệu GIS cần
Trang 28GVHD: TS Phạm Văn Tính 13 SVTH: Nguyên, Long, Tuyền, Vân
thiết dưới cơ sở dữ liệu không gian Sau khi xử lý xong GIS server sẽ gửi kết quả cho Web server và Web server sẽ trả về cho Client
WebGIS hoạt động dựa trên hai mô hình chính là web tĩnh và web động
3.1.2 Kiến trúc của WebGIS
3.1.2.1 Kiến trúc thin client
Hình 8: Kiến trúc thin client
Trong kiến trúc này Map Server được xây dựng dựa theo mô hình Web Map Service (WMS) Khi có yêu cầu từ phía client thì MapServer sẽ phân tích yêu cầu đó
và trả về dữ liệu dưới dạng file ảnh Giải pháp này là cách đơn giản nhất để xây dựng một ứng dụng web map có thể chạy trên bất kỳ một trình duyệt chuẩn nào
Các server thường mạnh hơn các client và nó quản lý nguồn tài nguyên tập trung cũng như tập trung tất cả các chức năng chủ yếu Nhược điểm của kiến trúc này là mọi xử lý đều tập trung ở server nên khả năng đáp ứng của server sẽ không cao
3.1.2.2 Kiến trúc thick client
Trong kiến trúc thin client thì chỉ cần một trình duyệt có hỗ trợ các định dạng ảnh như GIF, PNG, JPEG… Tuy nhiên để giải quyết những định dạng dữ liệu khác như
dữ liệu vector, video, clips… cũng như cung cấp một số chức năng xử lý GIS thì chức năng của trình duyệt tại phía client cần được mở rộng, tạo nên kiến trúc thick client
Trong kiến trúc thick client thì Map Server phải được xây dựng dựa trên mô hình Web Feature Service (WFS) Khi có yêu cầu từ phía client gửi đến thì Map Server sẽ phân tích yêu cầu và trả về kết quả theo định dạng GML Với dữ liệu GML cho phép client hoặc là sử dụng luôn để thực hiện các nhiệm vụ phân tích, truy vấn hoặc hiển thị thông tin bản đồ thông qua Java Applet hoặc có thể chuyển đổi sang dạng dữ liệu khác như SVG hiển thị với người dùng Ưu điểm của kiến trúc này là giảm tải phía
Trang 29GVHD: TS Phạm Văn Tính 14 SVTH: Nguyên, Long, Tuyền, Vân
server, do đó tăng khả năng đáp ứng của server Nhược điểm phải có phần mềm hỗ trợ phía client để hiển thị các feature trả về
Hình 9: Kiến trúc thick client 3.1.2.3 Web Map Service (WMS)
Web Map Service (WMS) - một kỹ thuật đại diện cho web tĩnh
WMS đưa ra cơ chế hỗ trợ cho việc phát triển các ứng dụng để cho Client hiển thị dữ liệu GIS nhanh chóng mà không cần bất cứ chi phí nào cho việc chuyển đổi
dữ liệu
WMS sử dụng HttpRequest để gửi yêu cầu đến server Server xử lý yêu cầu và gửi trả kết quả về Client dưới dạng ảnh (PNG, GIF hoặc JPG) WMS chỉ cung cấp hình ảnh chứ không phải là dữ liệu bản đồ thật sự, do đó không thể thao tác lên các đối tượng địa lý cụ thể, giới hạn kiểu dữ liệu, đặc biệt là giới hạn trong việc gán nhãn
và cung cấp ít chức năng
3.1.2.4 Web Feature Service (WFS)
Web Feature Service (WFS) – một kỹ thuật đại diện cho Web động
Trang 30GVHD: TS Phạm Văn Tính 15 SVTH: Nguyên, Long, Tuyền, Vân
Khi sử dụng WFS các feature được mô phỏng như những đối tượng địa lý, nghĩa
là chúng có thể được lưu trữ tương tự như dữ liệu vector
WFS cung cấp cấu trúc và cơ chế cho truy vấn và nhận về geographic feature WFS là một cách phân phối các đặc trưng địa lý thông qua dịch vụ Web đến với ứng dụng phía client Client có thể yêu cầu dữ liệu có chọn lọc để phục vụ cho phạm
vi nhu cầu của mình WFS là một sự chuẩn hóa của việc phân phối dữ liệu vector đến đông đảo người dùng
WFS sử dụng được thông qua Internet hoặc trong một mạng nội bộ (Intranet) WFS request được tạo ra ở Client và được gửi đến Server thông qua giao thức HTTP Các feature thường được chuyển đi trong định dạng GML (Geographic Markup Language) đến phía client Do dữ liệu server trả về là các feature nên việc tương tác của Client lên các đối tượng này là hoàn toàn có thể thực hiện được, đây là
ưu điểm của WFS cung cấp mà Web Map Service không có
3.2.1 SVG
SVG (đồ họa vector khả co) là một chuẩn ra đời vào năm 1999 SVG là một định dạng đồ họa vector hỗ trợ các nhà phát triển mô tả các hình ảnh bằng văn bản Những năm gần đây, các ứng dụng về SVG ngày càng được phát triển trên khắp thế giới, trên hệ thống máy tính để bàn và trên các thiết bị nhúng như trên các thiết bị di động
SVG ngày càng phát triển lớn mạnh, việc kết hợp SVG và GIS sẽ tạo ra một
hệ mới được gọi là SVG GIS Hệ này có các chức năng tìm kiếm, tra cứu thông tin bản đồ đồng thời lại tận dụng được tính ưu việt của SVG SVG GIS cho phép phóng
to bản đồ đến kích cỡ bất kỳ mà không vỡ ảnh SVG có thể được xén theo kích thước tùy ý để truyền tải trên mạng được nhanh chóng
Trang 31GVHD: TS Phạm Văn Tính 16 SVTH: Nguyên, Long, Tuyền, Vân
Một điều cần lưu ý khi phát triển ứng dụng với SVG là tốc độ hiển thị nội dung SVG phụ thuộc vào độ phức tạp của nội dung SVG và tốc độ xử lý của máy tính Do đó đối với ứng dụng bản đồ SVG, người phát triển cần phải chọn giải pháp tối ưu nhất là giảm tối đa kích thước tập tin svg cần hiển thị tại một thời điểm bằng cách xén nội dung SVG bên trong nó
SVG (Scalable Vector Graphics - đồ họa véctơ khả co) là một ngôn ngữ đánh dấu (Markup language) XML và dùng để miêu tả các hình ảnh đồ họa véctơ hai chiều, tĩnh và hoạt hình, thường dành cho ứng dụng trên mạng SVG thuộc tiêu chuẩn mở và được quản lý bởi tổ chức World Wide Web Consortium, một tổ chức quản lý nhiều chuẩn khác như HTML, XHTML Các tập tin có định dạng ".svg" được mặc định hiểu là tập tin SVG SVG có thể phóng to thu nhỏ mọi kích cỡ mà không giảm chất lượng hình ảnh, vì thế nó được dùng nhiều trong các bản đồ, sơ đồ
3.2.1.1 Ưu điểm
File SVG là file có định dạng XML nên dễ dàng thực hiện tìm kiếm các đối tượng bên trong file SVG
Dung lượng file SVG nhỏ, tốc độ truyền tải giữa client-server nhanh
Dùng để miêu tả các ảnh đồ họa vector nên SVG có thể hiển thị ở mọi độ phân giải mà không làm vỡ ảnh
Hình 12: Độ phân giải với raster và vector
Với một kích thước tương tự, file SVG sẽ chứa nhiều thông tin hơn các tập tin hình ảnh ở dạng nhị phân
SVG là một chuẩn mở, nó cho phép việc tùy biến mục đích sử dụng một các dễ dàng Các hình ảnh SVG có thể được dễ dàng chỉnh sửa và phát triển sau này, khác với các ảnh đồ họa raster nhị phân thường là sản phẩm cuối cùng của quá trình xử lý
Trang 32GVHD: TS Phạm Văn Tính 17 SVTH: Nguyên, Long, Tuyền, Vân
ảnh, không chứa mã người các tập lệnh đã thực hiện Các tập tin SVG ở dạng văn
bản, việc chỉnh sửa có thể thực hiện bằng trình soạn thảo văn bản đơn gian nhất
3.2.1.2 Nhược điểm
Vì SVG là mã nguồn mở nên tính bảo mật không cao
Việc xử lý hiển thị dữ liệu file SVG được thực hiện trên trình duyệt nên tốc độ chưa cao
SVG chưa hỗ trợ các truy vấn trên hình học topo
Để hiển thị SVG, một số trình duyệt cần phải có SVG Plugin: Internet Explorer các phiên bản và các trình duyệt tương tự
3.2.2 ECMAScript
Chuẩn ECMA là chuẩn công nghệ được phát triển trên nền công nghệ cơ bản nổi tiếng nhất từ JavaScript (Netscape) và Jscript (Microsoft) Ngôn ngữ này được phát minh bởi Brendan Eich tại Netscape và lần đầu tiên xuất hiện trong trình duyệt Navigator 2.0 Xuất hiện trong tất cả các trình duyệt tiếp theo từ Netscape và trong tất cả các trình duyệt từ Microsoft bắt đầu với Internet Explorer 3.0
Chuẩn ECMA được phát triển và công bố vào tháng 11 năm 1996 Ấn bản đầu tiên của chuẩn này đã được thông qua do Tổng ECMA hội của tháng sáu 1997 ECMAScript được phát triển thành chuẩn của ngôn ngữ kịch bản và được biết đến bằng 2 ngôn ngữ kịch bản nổi tiếng: JavaScript và ActionScript
Với ECMAScript lập trình viên có thể thiết kế Website với khả năng đáp ứng cao vào giao diện phức tạp
3.3 Bản đồ ảnh bitmap & OpenLayer
3.3.1 Bản đồ ảnh bitmap
Ảnh bitmap là công nghệ hiển thị ảnh trên máy tính có thể hiện thị trên các ứng dụng desktop hay ứng dụng web
Bitmaps được ứng dụng trên bản đồ dùng để hiển thị các đối tượng địa lý Chúng
ta có thể sử dụng một bản vẽ bản đồ hoặc thậm chí là một ảnh chụp hình ảnh của trái đất Chúng ta có thể vẽ bản đồ riêng của mình bằng cách sử dụng một map editor Nhưng lưu ý là chúng ta đã hiển thị dữ liệu giống như một bản đồ Đối với máy tính
nó lại xem là một tấm ảnh Có những con đường, các toà nhà nước hoặc những thứ khác trên bản đồ nhưng máy tính chỉ hiển thị nó như các ảnh của một pixel độc lập
Trang 33GVHD: TS Phạm Văn Tính 18 SVTH: Nguyên, Long, Tuyền, Vân
trên màn hình và không quan tâm đến cách chúng ta giải thích nó Đây là một trong những hạn chế lớn nhất khi sử dụng bản đồ ảnh bitmap
Một thuận lợi khi sử dụng bản đồ định dạng bitmap là chúng ta sẽ dễ dàng có được một bản đồ và hiển thị lên trang web bằng các thư viện javascript mà không cần phải cài đặt plugin cho trình duyệt
3.3.2 OpenLayer
OpenLayers là một bộ thư viện JavaScript mã nguồn mở dùng để hiển thị dữ liệu bản đồ động trên trang web và độc lập với server Thư viện OpenLayers có thể hoạt động như một client của một ứng dụng bản đồ AJAX, bao gồm các tính năng hiện đại như "slippy" maps (cắt bản đồ và tải theo từng mảnh nhỏ, chồng nhiều lớp bản
đồ và có thể chuyển đổi giữa chúng)
Hầu hết tất cả các dữ liệu bản đồ đều được hỗ trợ bởi các server chạy trên các phần mềm khác nhau OpenLayers cung cấp một cách thức để kết hợp các dữ liệu đó thành một bản đồ chung
Hình 13: OpenStreetMap.com sử dụng thư viện OpenLayer
OpenLayers hiện thực các phương thức chuẩn để truy xuất dữ liệu địa lý như Web Mapping Service (WMS) và Web Feature Service (WFS) của OpenGIS Consortium Phía bên dưới, OpenLayers được viết bằng JavaScript hướng đối tượng
sử dụng Prototype framework và các thành phần từ thư viện Rico
Sourcecode, tài liệu và các ví dụ được cung cấp trên trang www.openlayers.org OpenLayers ban đầu được tạo bởi MetaCarta, nhưng vào tháng 11 năm 2007 nó trở thành một dự án của Open Source Geospatial Foundation và phân phối theo giấy phép của BSD Tại trang chủ OpenLayers có một danh sách các ví dụ để tham khảo
Nó sẽ giúp lập trình viên cách làm, những ý tưởng về khả năng và cách thức hoạt động của các tính năng
Trang 34GVHD: TS Phạm Văn Tính 19 SVTH: Nguyên, Long, Tuyền, Vân
Spatial database là khái niệm xuất hiện cùng với GIS, là cơ sở dữ liệu được tối ưu hóa để hỗ trợ việc lưu trữ, phân tích truy vấn dữ liệu không gian Trên spatial Database, hỗ trợ các hàm để phân tích, lưu trữ, xử lý dữ liệu dành cho các đối tượng không gian Các hệ quản trị CSDL hỗ trợ dữ liệu không gian như: Oracle spatial, DB2, Microsoft SQL Server 2008, PostgreSQL…
PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ và đối tượng dựa trên PostgreSQL, bản 4.2, được khoa điện toán của đại học Califormia 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à 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
PostgreSQL được phổ biến bằng giấy phép BSD 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
Hình 14: Phần mở rộng PostGIS trên PostgreSQL
PostGIS là 1 phần mở rộng của hệ quản trị CSDL PostgreSQL được cung cấp miễn phí cho phép các đối tượng không gian được lưu trữ trong CSDL PostGIS bao gồm hỗ trợ cho những chỉ mục (index) không gian GiST-based R-Tree cũng như các chức năng phân tích và xử lý các đối tượng GIS
PostgreSQL cùng với PostGIS & GEOS cho phép lưu giữ và truy vấn các dạng hình học như điểm, đường hoặc vùng trong CSDL
PostGIS là một dự án mã nguồn mở về CSDL không gian đang được nghiên cứu
và phát triển bởi Refractions Research
Trang 35GVHD: TS Phạm Văn Tính 20 SVTH: Nguyên, Long, Tuyền, Vân
Với phiên bản hiện tại PostgreSQL 8.4 và PostGIS 1.5, đã có những hỗ trợ import, export dữ liệu không gian bằng công cụ Shape file Loader dễ sử dụng, và nhiều hàm hỗ trợ trên dữ liệu không gian
PostGIS - một CSDL không gian có những thuận lợi khác so với các hệ khác Thuận lợi chính là khả năng thực hiện những sự tính toán không gian phức tạp chẳng hạn như trả 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 vùng phụ cận của một đối tượng khác
PostGIS có thể lưu trữ và xử lý dữ liệu không gian tốt với các loại dữ liệu không gian cơ bản: điểm, vùng, đường Nó cung cấp những khả năng giống một hệ thống 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…
Và sẽ dễ dàng hơn 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
GeoServer là một phần mềm server được viết bằng Java cho phép người dùng xem và chỉnh sửa dữ liệu không gian Sử dụng các chuẩn mở được qui định bởi tổ chức Open Geospatial Consortium (OGC), GeoServer có một tính năng linh hoạt cho việc tạo và chia sẻ dữ liệu bản đồ
GeoServer cho phép hiển thị chia sẻ dữ liệu không gian cho nhiều người thông quan giao thức Web Hiện thực chuẩn Web Map Service (WMS), GeoServer có thể tạo ra các bản đồ ở nhiều định dạng khác nhau Đồng thời OpenLayers, một thư viện bản đồ miễn phí, được tích hợp vào trong GeoServer, giúp tạo ra bản đồ nhanh chóng và dễ dàng GeoServer được xây dựng dựa trên Geotools, một bộ công cụ Java GIS mã nguồn mở
GeoServer hỗ trợ chuẩn Web Feature Service (WFS), nó cho phép chia sẻ và chỉnh sửa dữ liệu được dùng để tạo bản đồ Geo Server có thể chia sẻ dữ liệu cho nhiều dịch vụ web khác dưới dạng dịch vụ
GeoServer là một phần mềm miễn phí Điều này làm giảm đáng kể chi phí cho người sử dụng hơn nếu so với các sản phẩm GIS truyền thống khác Hơn nữa, nó còn
là một phần mềm mã nguồn mở Việc sửa lỗi và cải thiện các chức năng trong phần mềm mã nguồn mở cũng tăng tốc đáng kể khi so với các sản phẩm GIS độc quyền GeoServer có thể đọc dữ liệu không gian từ nhiều nguồn dữ liệu từ các CSDL không gian như: PostGIS, OracleSpatial, ArcSDE, shape files và geotiff Đồng thời
Trang 36GVHD: TS Phạm Văn Tính 21 SVTH: Nguyên, Long, Tuyền, Vân
nó cũng có thể xuất ra bản đồ dưới nhiều định dạng GML, KML, Shape files, GeoRSS, GeoJSon…
3.6 Mashup
Mashup là một thuật ngữ chỉ việc kết hợp nội dung hoặc dịch vụ của hai hay nhiều ứng dụng web lại với nhau Để có thể làm được điều đó, người ta dùng các thành phần sau: XMLHttpRequest, AJAX client side và cuối cùng là các API hay còn gọi là dịch vụ web của những website mà từ đó chúng ta kết hợp nội dung của chúng lại
Ngày càng nhiều website đưa ra những API miễn phí, nhằm khích lệ cho cộng đồng lập trình viên tạo ra những mashup sử dụng nội dung của họ Ví dụ như Google, Yahoo, Facebook, Amazone, eBay đã đưa ra rất nhiều API và mục đích của
họ là nhờ vào các lập trình viên trên thế giới truyền tải và phát tán nội dung, tên tuổi của họ rộng rãi
Mashup thể hiện rõ xu hướng đặc trưng của của Web 2.0 là “cá nhân hoá thông tin” Chẳng hạn, một nhà lập trình có thể tạo website chia sẻ ảnh và video của riêng mình khi kết hợp hai dịch vụ YouTube và Flickr Hay người sử dụng có thể trộn dữ liệu về tình trạng giao thông ở Hà Nội với Google Maps để lập bản đồ các điểm thường xuyên tắc đường trong thành phố…
Các mashup có tiềm năng cho sự đổi mới đáng kể do kết hợp nhiều dịch vụ Internet Nó cũng cung cấp các cơ hội để cung cấp các ứng dụng web một cách nhanh chóng, chi phí thấp và thành phần có thể được sử dụng lại
Càng nhiều các mashup xuất hiện trong cộng đồng các trang web sẽ tạo ra một tiềm năng đáng kể cho sự đổi mới của việc kết hợp nhiều dịch vụ Iternet
Nội dung mashup chính:
- Bản đồ: chẳng hạn người dùng lập bản đồ về bất động sản, cửa hàng quà tặng, trường học, … tại một địa phương trên Google Maps
- Video - ảnh: ví dụ như dùng giao diện lập trình ứng dụng API của Flickr để tạo mashup chia sẻ ảnh trên những site khác
- Tìm kiếm – mua sắm: là việc tích hợp search engine để tra cứu thông tin về
Trang 37GVHD: TS Phạm Văn Tính 22 SVTH: Nguyên, Long, Tuyền, Vân
- Consumer mashup: Trích xuất dữ liệu khác nhau từ nhiều nguồn và được tập hợp lại dưới một giao diện đồ hoạ đơn giản
- Data mashup: trộn dữ liệu cùng loại từ nhiều nguồn, chẳng hạn gộp dữ liệu từ các RSS feed vào một feed đơn nhất
- Business mashup: sử dụng cả hai loại mashup trên; thường là tích hợp data ở
cả trong và ngoài công ty Ví dụ, công ty bất động sản A có thể phân tích thị phần khi so sánh số căn nhà họ bán được tuần qua với danh sách tổng các căn nhà được bán trên thị trường
- Telecom mashup: là ứng dụng viễn thông tở hợp, chẳng hạn kết hợp dịch vụ tin nhắn từ công ty A, nhạc chuông của công ty B, thư thoại (voice mail) của công ty C…
3.6.2 Phân loại Mashup
Mashup thường được thực hiện tại các trình duyệt web, bằng cách “kéo và thả” các ứng dụng từ các nguồn khác nhau với nhau Tuy nhiên, phải có một số cở sở hạ tầng phụ trợ để hỗ trợ mashup
Kiến trúc của ứng dụng mashup gồm ba bên tham gia khác nhau: nhà cung cấp API (như Google, Yahoo, Flickr…), server lưu trữ trang web mashup, và trình duyệt web của người dùng Mashup có thể được thực hiện theo hai cách:
Server-side mashup:
Server-side mashup tích hợp các dịch vụ và nội dung trên server Server hoạt động như một proxy giữa trình duyệt web của người dùng và các trang web tham gia vào mashup Trong server-side mashup, dòng công việc được đẩy từ trình duyệt web của người dùng đến server của trang web mashup:
Trang 38GVHD: TS Phạm Văn Tính 23 SVTH: Nguyên, Long, Tuyền, Vân
và tương tác với trang web của nhà cung cấp API Lớp này được gọi là lớp proxy
4) Các lớp proxy xử lý yêu cầu và mở một kết nối đến trang web của nhà cung cấp API
5) Trang web của nhà cung cấp API nhận yêu cầu, thường ở dạng HTTP GET hoặc HTTP POST, xử lý yêu cầu và trả dữ liệu về cho các lớp proxy
6) Lớp proxy nhận hồi đáp và có thể chuyển nó về định dạng dữ liệu thích hợp với client Nó cũng có thể lưu trữ kết quả đó cho lần request sau
7) Serverlet trả kết quả về cho client
8) Một chức năng callback được đặt trong XmlHttpRequest cập nhật giao diện trang web của client bằng các thao tác Document Object Model (DOM)
Trong server-side mashup, việc tích hợp dịch vụ hoặc nội dung diễn ra trên server của trang web mashup Một server-side mashup còn được gọi là proxy-style mashup vì một thành pần trên server hoạt động như một proxy cho service Tóm lại proxy là một thành phần hoạt động như một trung gian giữa hai bên Trong một server-side mashup, một thành phần trên server của trang web mashup sẽ hoạt động như một proxy giữa trang web cung cấp dịch vụ và một trang trên server mashup
Client-side mashup:
Client-side mashup tích hợp các dịch vụ và nội dung trên client Chúng kết hợp trực tiếp với các dữ liệu hoặc chức năng của các trang web cung cấp dịch vụ Trong một client-side mashup, client có thể gửi một yêu cầu trực tiếp đến các trang cung cấp dịch vụ
Một ví dụ của client-side mashup là Google Maps API
Trang 39GVHD: TS Phạm Văn Tính 24 SVTH: Nguyên, Long, Tuyền, Vân
Mô tả:
1) Trình duyệt của client có một yêu cầu đến server của trang web mashup 2) Server của trang mashup gửi các trang web đến client Các trang đó thường bao gồm một bộ thư viện JavaScript từ trang mashup để bắt đầu sử dụng các dịch vụ của trang mashup Nếu trang đó không bao gồm bộ thư viện JavaScript, ta có thể viết một hàm JavaScript function để tạo đều kiện cho việc mashup
3) Một và hoạt động trên trình duyệt gọi một function trong thư viện JavaScript cho bởi trang web cung cấp dịch vụ hoặc gọi JavaScript function
đã được tạo ra Function đó phải có thẻ <script> chỉ đến trang web cung cấp dịch vụ
4) Dựa trên thẻ <script>, một yêu cầu được gửi đến trang web cung cấp dịch
vụ để tải script đó
5) Trang web cung cấp dịch vụ tải script Thông thường, một local callback trên trang browser sau đó được thực thi với một đối tượng JavaScript Object Notation (JSON) gửi đến như một tham số
Có 3 loại Mashup tools: front end, back end và integrated:
Trang 40GVHD: TS Phạm Văn Tính 25 SVTH: Nguyên, Long, Tuyền, Vân
biểu đồ sử dụng using widgets/gadgets và ít sử dụng kiến thức lập trình (iGoogle, PageFlakes)
cập trên web và các dịch vụ thành những web services hữu dụng hơn và có thể gọi một cách dễ dàng thông qua một REST-ful interface (Kapow, Yahoo pipes)
web end-to-end liên kết web widgets đến dữ liệu và các dịch vụ
Khi đánh giá các mashup tools, chúng ta cần phải xem xét loại mashup mà ta áp dụng:
+ Nếu chúng ta muốn tạo ra một trang web trực quan từ những widgets sẵn
có: Thử một front-end mashup tool Những công cụ này giúp dễ dàng tạo ra
một trang cá nhân có thể theo dõi cổ phiếu, thời tiết địa phương thời gian trong
51 múi giờ…
+ Nếu chúng ta muốn mở một trang web công cụ có thể truy cập (như ebay auctions hoặc linkedin contacts) vào trong một service API: Thử một back-end mashup tool để lấy dữ liệu lập trình mà bạn có thể làm bằng tay
+ Nếu chúng ta muốn tạo ra một end-to-end web app như một bảng điều khiển hoặc một business portal đơn giản: Thử một integrated mashup tool để xây dựng những ứng dụng nhanh chóng và không cần phải lập trình
Một nhân tố cần xem xét là ta có cần phải download và cài đặt bất cứ cái gì để sử dụng nó hay không Mashup tools có thể sử dụng hoàn toàn trên web (như Yahoo pipes hoặc PageFlakes), phải download (Open Kapow) hoặc cả hai dạng (như WaveMaker và IBM Mashup Center)
Sau đây là năm giải pháp mashup miễn phí, mã nguồn mở mà chúng ta có thể xem xét:
+ iGoogle - Front End Mashup Screen Builder Tool: iGoogle là một trang chủ
có thể tuỳ chỉnh được, nó dựa trên công nghệ AJAX và được đưa lên hồi tháng
5 năm 2005 Người sử dụng có thể tự do thêm các feed của các trang web có hỗ
trợ RSS và các gadget
+ Open Kapow - Back End Mashup Service Builder: Trang web là một nơi tuyệt vời
để tìm thông tin, nhưng chúng lại làm cho chúng ta mất thời gian tìm kiếm Làm một chương trình tự động truy cập vào dữ liệu trên web lại hoàn toàn mới