Luận văn Tìm hiểu về dịch vụ web cho ứng dụng GIS và xây dựng ứng dụng minh họa khai thác dịch vụ

Vào thời đại ngày nay, việc phát triển phần mềm không đơn thuần chỉlà ngồi gõ chương trình nhưthời buổi ban đầu. Ngày nay, nhu cầu phát triển và mởrộng phần mềm ngày càng đòi hỏi cao hơn, nhanh hơn và chuyên nghiệp hơn. Người sửdụng phần mềm không chỉlà những người dùng bình thường mà còn là những nhà xây dựng, phát triển phần mềm khác. Người phát triển phần mềm không còn xây dựng phần mềm của mình từchỗkhông có gì, họsẽsửdụng lại cac phần mềm của những nhà phát triển khác. Từ đó, nhu cầu đóng gói, trao đổi và mua bán các gói phần mềm ngày càng tăng cao. Vào thời đại ngày nay, với sựphát triển của Internet cùng với các công nghệhướng Net khác kèm theo, việc trao đổi, mua bán các gói phần mềm và việc thực thi chúng ngày càng thuận lợi và nhanh chóng hơn. Từ đó, dẫn đến sựra đời của nhiều giải pháp phát triển phần mềm khác nhau, chẳng hạn như DCOM, RMI, CORBRA, Nhưng trong đó, nổi bật và chiếm nhiều ưu điểm nổi trội phải kể đến giải pháp phát triển phần mềm dựa trên Kiến trúc Hướng Dịch vụ (SOA – Service Oriented Architecture) và triển khai trên cơchếWeb Service. Việc áp dụng giải pháp dịch vụweb cho ứng dụng GIS đang được triển khai ngày càng rộng rãi. Do nó hoàn toàn giải quyết được các yêu cầu đặt ra bởi các ứng dụng GIS. Chính vì thế, việc tiến hành nghiên cứu kỹthuật lập trình Web Service là một hướng nghiên cứu mang tính chiến lược cho sựphát triển các ứng dụng trong tương lai. Đềtài luận văn của chúng em là “Tìm hiểu vềdịch vụweb cho ứng dụng GIS và xây dựng ứng dụng minh họa khai thác dịch vụ”gồm có tất cả8 chương. Chương 1. Tổng quan:Giới thiệu khái quát vềWeb Service, GIS, chuẩn OpenGIS và mục tiêu của đềtài. Chương 2. Web Map Service (WMS):Nghiên cứu chuẩn WMS do OpenGIS đưa ra, chuẩn này hỗtrợviệc hiển thịbản đồthông qua dịch vụweb. Chương 3. Web Feature Service (WFS):Nghiên cứu chuẩn WFS do OpenGIS đưa ra, chuẩn này hỗtrợcho việc truy vấn thông tin các dữliệu địa lý qua dịch vụ web. Chương 4. Bộlọc (Filter): Nghiên cứu sâu hơn vềbộlọc dùng trong dịch vụ WFS. Chương 5. CarbonTool: Nghiên cứu công cụCarbonTool hỗtrợcho việc đọc các chuẩn WMS và WFS. Chương 6. Cài đặt chương trình OpenGISServer: Mô tảviệc xây dựng chương trình server hỗtrợhai chuẩn WMS và WFS của OpenGIS. Chương 7. Cài đặt chương trình client:Mô tảviệc xây dựng hai ứng dụng khách khai thác hai dịch vụWMS và WFS. Chương 8. Tổng kết:Tổng kết quá trình nghiên cứu và rút ra hướng phát triển trong tương lai.

pdf183 trang | Chia sẻ: tuandn | Lượt xem: 2358 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Luận văn Tìm hiểu về dịch vụ web cho ứng dụng GIS và xây dựng ứng dụng minh họa khai thác dịch vụ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
i LỜI CẢM ƠN Chúng em xin chân thành cám ơn Khoa Công Nghệ Thông Tin, trường Đại Học Khoa Học Tự Nhiên TpHCM đã tạo điều kiện tốt cho chúng em thực hiện đề tài luận văn tốt nghiệp này. Chúng em xin chân thành cám ơn Thầy Lê Thụy Anh đã tận tình hướng dẫn, chỉ bảo chúng em trong suốt thời gian thực hiện đề tài. Chúng em xin chân thành cám ơn quý Thầy Cô trong Khoa đã tận tình giảng dạy, trang bị cho chúng em những kiến thức quý báu trong những năm học vừa qua. Chúng con xin nói lên lòng biết ơn sâu sắc đối với Ông Bà, Cha Mẹ đã chăm sóc, nuôi dạy chúng con thành người. Xin chân thành cám ơn các anh chị và bạn bè đã ủng hộ, giúp đỡ và động viên chúng em trong thời gian học tập và nghiên cứu. Mặc dù chúng em đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Chúng em kính mong nhận được sự cảm thông và tận tình chỉ bảo của quý Thầy Cô và các bạn. Nhóm sinh viên thực hiện Nguyễn Trung Kiên – Nguyễn Nguyên Bảo Tháng 07/ 2005 ii LỜI NÓI ĐẦU Vào thời đại ngày nay, việc phát triển phần mềm không đơn thuần chỉ là ngồi gõ chương trình như thời buổi ban đầu. Ngày nay, nhu cầu phát triển và mở rộng phần mềm ngày càng đòi hỏi cao hơn, nhanh hơn và chuyên nghiệp hơn. Người sử dụng phần mềm không chỉ là những người dùng bình thường mà còn là những nhà xây dựng, phát triển phần mềm khác. Người phát triển phần mềm không còn xây dựng phần mềm của mình từ chỗ không có gì, họ sẽ sử dụng lại cac phần mềm của những nhà phát triển khác. Từ đó, nhu cầu đóng gói, trao đổi và mua bán các gói phần mềm ngày càng tăng cao. Vào thời đại ngày nay, với sự phát triển của Internet cùng với các công nghệ hướng Net khác kèm theo, việc trao đổi, mua bán các gói phần mềm và việc thực thi chúng ngày càng thuận lợi và nhanh chóng hơn. Từ đó, dẫn đến sự ra đời của nhiều giải pháp phát triển phần mềm khác nhau, chẳng hạn như DCOM, RMI, CORBRA,… Nhưng trong đó, nổi bật và chiếm nhiều ưu điểm nổi trội phải kể đến giải pháp phát triển phần mềm dựa trên Kiến trúc Hướng Dịch vụ (SOA – Service Oriented Architecture) và triển khai trên cơ chế Web Service. Việc áp dụng giải pháp dịch vụ web cho ứng dụng GIS đang được triển khai ngày càng rộng rãi. Do nó hoàn toàn giải quyết được các yêu cầu đặt ra bởi các ứng dụng GIS. Chính vì thế, việc tiến hành nghiên cứu kỹ thuật lập trình Web Service là một hướng nghiên cứu mang tính chiến lược cho sự phát triển các ứng dụng trong tương lai. Đề tài luận văn của chúng em là “Tìm hiểu về dịch vụ web cho ứng dụng GIS và xây dựng ứng dụng minh họa khai thác dịch vụ” gồm có tất cả 8 chương. Chương 1. Tổng quan: Giới thiệu khái quát về Web Service, GIS, chuẩn OpenGIS và mục tiêu của đề tài. Chương 2. Web Map Service (WMS): Nghiên cứu chuẩn WMS do OpenGIS đưa ra, chuẩn này hỗ trợ việc hiển thị bản đồ thông qua dịch vụ web. iii Chương 3. Web Feature Service (WFS): Nghiên cứu chuẩn WFS do OpenGIS đưa ra, chuẩn này hỗ trợ cho việc truy vấn thông tin các dữ liệu địa lý qua dịch vụ web. Chương 4. Bộ lọc (Filter): Nghiên cứu sâu hơn về bộ lọc dùng trong dịch vụ WFS. Chương 5. CarbonTool: Nghiên cứu công cụ CarbonTool hỗ trợ cho việc đọc các chuẩn WMS và WFS. Chương 6. Cài đặt chương trình OpenGISServer: Mô tả việc xây dựng chương trình server hỗ trợ hai chuẩn WMS và WFS của OpenGIS. Chương 7. Cài đặt chương trình client: Mô tả việc xây dựng hai ứng dụng khách khai thác hai dịch vụ WMS và WFS. Chương 8. Tổng kết: Tổng kết quá trình nghiên cứu và rút ra hướng phát triển trong tương lai. iv MỤC LỤC MỤC LỤC .........................................................................................................................iv DANH SÁCH HÌNH........................................................................................................ix DANH SÁCH BẢNG........................................................................................................x DANH SÁCH BẢNG........................................................................................................x MỘT SỐ THUẬT NGỮ..................................................................................................xi Chương 1. Tổng quan ......................................................................................................1 1.1. Đặt vấn đề và mục tiêu đề tài........................................................................1 1.2. Giới thiệu Web Service..................................................................................3 1.3. Giới thiệu hai chuẩn WMS và WFS ............................................................3 Chương 2. Web Map Service (WMS)...........................................................................5 2.1. Giới thiệu.........................................................................................................5 2.2. Các element cơ sở...........................................................................................5 2.2.1. Đánh số và thỏa thuận phiên bản (version)...............................5 2.2.2. Những quy tắc chung trong HTTP request ...............................7 2.2.3. Những quy tắc chung trong HTTP response.............................8 2.2.4. Những quy tắc về tham số trong câu request ............................8 2.2.5. Các tham số thông dụng trong câu request ...............................9 2.2.6. Kết quả dịch vụ ...........................................................................13 2.2.7. Biệt lệ dịch vụ .............................................................................13 2.3. Các operation của Web Map Service.........................................................14 2.3.1. GetCapabilities ...........................................................................14 2.3.2. GetMap ........................................................................................26 2.3.3. GetFeatureInfo ............................................................................32 v Chương 3. Web Feature Service (WFS) ....................................................................36 3.1. Giới thiệu.......................................................................................................36 3.2. Các thành phần dịch vụ cơ sở .....................................................................38 3.2.1. Mã hóa câu request.....................................................................38 3.2.2. Không gian tên............................................................................38 3.3. Các thành phần chung..................................................................................38 3.3.1. Định danh của Feature (Feature identifier) .............................38 3.3.2. Định danh duy nhất toàn cầu ....................................................39 3.3.3. Trạng thái của Feature (Feature State).....................................40 3.3.4. Tên của các thuộc tính ...............................................................40 3.3.5. Tham chiếu đến thuộc tính ........................................................41 3.3.6. Thành phần ................................................................47 3.3.7. Filter .............................................................................................48 3.3.8. Thông báo về các biệt lệ (Exception Reporting) ....................48 3.3.9. Các thuộc tính XML chung.......................................................49 3.4. DescribeFeatureType ...................................................................................50 3.4.1. Giới thiệu.....................................................................................50 3.4.2. Request ........................................................................................50 3.4.3. Response......................................................................................51 3.4.4. Biệt lệ ...........................................................................................52 3.5. GetFeature .....................................................................................................52 3.5.1. Giới thiệu.....................................................................................52 3.5.2. Request ........................................................................................53 3.5.3. Response......................................................................................55 3.5.4. Biệt lệ ...........................................................................................56 3.6. LockFeature...................................................................................................56 3.6.1. Giới thiệu.....................................................................................56 3.6.2. Request ........................................................................................57 3.6.3. Response......................................................................................58 vi 3.6.4. Biệt lệ ...........................................................................................59 3.7. Transaction ....................................................................................................60 3.7.1. Giới thiệu.....................................................................................60 3.7.2. Request ........................................................................................60 3.7.3. Response......................................................................................69 3.7.4. Biệt lệ ...........................................................................................72 3.8. GetCapabilities .............................................................................................72 3.8.1. Giới thiệu.....................................................................................72 3.8.2. Request ........................................................................................72 3.8.3. Response......................................................................................73 3.8.4. Biệt lệ ...........................................................................................73 Chương 4. Bộ lọc (Filter)...............................................................................................74 4.1. Giới thiệu:......................................................................................................74 4.2. Sử dụng Filter: ..............................................................................................74 4.3. Đặc tả của Filter: ..........................................................................................74 4.4. Các phép toán không gian (Spatial Operators) .........................................75 4.4.1. Mục đích......................................................................................75 4.4.2. Mô tả ............................................................................................75 4.5. Các phép toán so sánh (Comparison operators) .......................................78 4.5.1. Giới thiệu:....................................................................................78 4.5.2. Mô tả: ...........................................................................................78 4.6. Các phép toán Logic ....................................................................................82 4.6.1. Giới thiệu:....................................................................................82 4.6.2. Mô tả: ...........................................................................................82 4.7. Định danh của Feature (Feature Identifier):..............................................83 4.7.1. Giới thiệu:....................................................................................83 4.7.2. Mô tả: ...........................................................................................84 vii 4.8. Biểu thức (Expressions): .............................................................................84 4.8.1. Giới thiệu:....................................................................................84 4.8.2. Mô tả: ...........................................................................................84 4.9. Các phép toán số học: ..................................................................................84 4.9.1. Giới thiệu:....................................................................................84 4.9.2. Mô tả: ...........................................................................................84 4.10. Các hàm (Functions) ....................................................................................85 4.10.1. Giới thiệu:....................................................................................85 4.10.2. Mô tả: ...........................................................................................86 4.11. Các khả năng về Filter: ................................................................................86 Chương 5. Carbon Tool.................................................................................................91 5.1. Giới thiệu.......................................................................................................91 5.2. Một số ví dụ về việc sử dụng bộ thư viện CarbonTools..........................92 5.2.1. Dùng CarbonTools thực hiện GetCapabilities request ..........92 5.2.2. Dùng CarbonTools thực hiện GetFeature request..................96 5.3. Dùng CarbonTools gởi GetMap request .................................................102 5.3.1. Lớp CarbonTools.Core.WMS.SourceWMS ........................102 5.3.2. Lớp CarbonTools.Core.Base.DataRaster ..............................103 5.3.3. Lớp CarbonTools.Core.WMS.HandlerWMS .......................103 5.3.4. Vi dụ thực hiện GetMap request.............................................104 5.4. Dùng CarbonTools gởi DescribeFeatureType request ..........................105 5.5. Dùng CarbonTools gởi request của Transaction và LockFeature ........106 Chương 6. Cài đặt chương trình OpenGIS Server ...............................................107 6.1. Giới thiệu.....................................................................................................107 6.2. Tổ chức và lưu trữ dữ liệu.........................................................................107 6.3. Giao tiếp với client bằng giao thức HTTP ..............................................114 6.3.1. Nhận dữ liệu từ client bằng giao thức HTTP GET: .............114 6.3.2. Nhận dữ liệu từ client bằng giao thức HTTP POST ............114 viii 6.3.3. Trả kết quả về cho Client.........................................................115 6.4. Đọc dữ liệu từ chuỗi XML........................................................................115 6.4.1. Ví dụ đọc 1 tài liệu Xml ..........................................................115 6.5. Các lớp trong chương trình .......................................................................118 Chương 7. Cài đặt các chương trình client .............................................................126 7.1. Cài đặt chương trình OpenGisClientDemo.............................................126 7.1.1. Giới thiệu...................................................................................126 7.1.2. Gởi request cho server .............................................................135 7.2. Cài đặt chương trình OpenGisClientApplication ...................................144 7.2.1. Tính năng...................................................................................144 7.2.2. Màn hình giao diện...................................................................145 Chương 8. Tổng kết ......................................................................................................147 8.1. Kết quả đạt được.........................................................................................147 8.2. Hướng phát triển.........................................................................................147 PHỤ LỤC - MySQL với phần mở rộng hỗ trợ cho OpenGIS ...........................148 TÀI LIỆU THAM KHẢO ...........................................................................................171 ix DANH SÁCH HÌNH Hình 1.1. Kiến trúc các dịch vụ web của OGC .......................................................4 Hình 2.1. Hình chữ nhật bao..................................................................................12 Hình 3.1. Lược đồ giao thức..................................................................................37 Hình 7.1. Màn hình chính ....................................................................................127 Hình 7.2. Màn hình minh họa thực hiện request WFS – GetCapabilities ...........128 Hình 7.3. Màn hình minh họa thực hiện request WFS – DescribeFeatureType..129 Hình 7.4. Màn hình minh họa thực hiện request WFS – GetFeature ..................130 Hình 7.5. Màn hình minh họa thực hiện request WFS – GetFeature ..................131 Hình 7.6. Màn hình minh họa thực hiện request WFS – Transaction .................132 Hình 7.7. Màn hình minh họa thực hiện request WMS – GetCapabilities..........133 Hình 7.8. Màn hình minh họa thực hiện request WMS – GetMap......................134 Hình 7.9. Màn hình giao diện chương trình OpenGISClientApplication............145 Hình 7.10. Màn hình lấy thông tin một điểm trên bản đồ .....................................146 x DANH SÁCH BẢNG Bảng 2.1. Các ký tự quy ước trong câu HTTP GET URL..........................................7 Bảng 2.2. Danh sách các kiểu MIME..........................................................................10 Bảng 2.3. Các tham số trong GetCapabilities request URL .....................................14 Bảng 2.4. Mối quan hệ giữa giá trị UpdateSequence trong client và server...........15 Bảng 2.5. Thuộc tính lớp...............................................................................................23 Bảng 2.6. Qui định kế thừa các thuộc tính lớp ...........................................................26 Bảng 2.7. Các tham số trong GetMap request............................................................27 Bảng 2.8. Các tham số của request GetFeatureInfo...................................................33 Bảng 5.1. Các thuộc tính của SourceOGCCapabilities .............................................92 Bảng 5.2. Các thuộc tính quan trọng của DataOGCCapabilities .............................93 Bảng 5.3. Các thuộc tính của HandlerOGCCapabilities ...........................................94 Bảng 5.4. Các thuộc tính của CarbonTools.Core.WFS.SourceWFS.......................97 Bảng 5.5. Các thuộc tính của CarbonTools.Core.Features.DataFeatures ...............97 Bảng 5.6. Các thuộc tính của CarbonTools.Core.WFS.HandlerWFS.....................98 Bảng 5.7. Các thuộc tính của CarbonTools.Core.WMS.SourceWMS..................103 Bảng 5.8. Các thuộc tính của CarbonTools.Core.Base.DataRaster .......................103 Bảng 5.9. Các thuộc tính của CarbonTools.Core.WMS.HandlerWMS................104 Bảng 6.1. Các bảng dữ liệu trong CSDL TpHCM...................................................108 Bảng 6.2. Cấu trúc chung của các bảng dữ liệu .......................................................109 Bảng 6.3. Bảng “duong”..............................................................................................110 Bảng 6.4. Bảng “quan”................................................................................................111 Bảng 6.5. Bảng “song” ................................................................................................111 Bảng 6.6. B