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
(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.
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ở
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.
.....................................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 <Native>
................................................................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.
......................................................................................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
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:
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.
....................................................................................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.
...............................................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
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
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
xi
MỘT SỐ THUẬT NGỮ
Operation Đặc tả của phép biến đổi hoặc truy vấn trên một đối
tượng có thể được gọi thực thi.
Client Phần mềm có thể gọi operation từ server
Request Lời yêu cầu operation của client cho server.
Response Kết quả trả về của operation mà serve gửi cho client.
Tài liệu Capabilities XML Tài liệu metadata mô tả các operation mà một dịch vụ
hỗ trợ.
OGC Tổ chức Open GIS Consortium
OWS – OGC Web Service Các dịch vụ web của OGC
WMS Dịch vụ Web Map Service
WFS Dịch vụ Web Feature Service
nhau. Do
đó, khi khai thác dữ liệu này, người sử dụng dễ vấp phải những trở ngại
lớn về vấn đề tính tương thích, cũng như những rắc rối trong việc mua bán phần
mềm, làm quen với việc sử dụng phần mềm, chưa kể đến việc phải bỏ ra một lượng
tiền lớn để mua toàn bộ các dữ liệu do nhà cung cấp xây dựng, trong khi hầu hết các Chương 1. Tổng quan 2
trường hợp ta chỉ cần một phần thông tin trong đó mà thôi. Các dữ liệu này được
đưa về và lưu trữ tập trung ở một nơi, lại phải bỏ ra một khoản tiền không nhỏ khác
cho việc lưu trữ, bảo trì và cập nhật chúng. Rõ ràng là tiêu phí công sức, thời gian,
và tiền bạc một cách vô ích.
Để khắc phục những trở ngại này, việc tiến hành xây dựng các dịch vụ web hỗ
trợ
GIS là một giải pháp tốt hiện đang được rất nhiều nơi trên thế giới và trong nước
triển khai thực hiện. Thay vì dồn các dữ liệu lại một nơi và xử lý tập trung trên đó,
giải pháp dịch vụ web lại đi theo con đường xử lý phân tán. Mọi thông tin yêu cầu
và đáp ứng đều được gửi và nhận thông qua Internet.
Nhờ mang lại được những tiện ích thiết thực, các dịch vụ web h
ỗ trợ GIS đang
ngày càng phát triển nhanh và rộng khắp đến mức làm nảy sinh nhu cầu xây dựng
1.2. Giới thiệu Web Service
Web Service thực chất là sự kết hợp các máy tính cá nhân với các thiết bị khác,
là một phương thức tích hợp các cơ sở dữ liệu và các mạng để tạo thành một cơ cấu
tính toán ảo mà người sử dụng có thể làm việc thông qua các trình duyệt Web. Bản
thân các dịch vụ này hoạt động thông qua các server trên nền Web chứ không phải
là các máy tính cá nhân, do vậy có thể chuyển các chức nǎng từ máy tính cá nhân
lên Internet. Người sử dụng có thể s
ử dụng các dịch vụ thông qua bất kỳ loại máy
nào có hỗ trợ Web Service và có khả năng truy cập Internet, kể cả các thiết bị cầm
tay.
Người sử dụng có thể truyền các dữ liệu và các ứng dụng từ máy tính cá nhân tới
các server của một nhà cung cấp Web Service. Các server này trở thành nguồn tiềm
nǎng cung cấp cho người sử dụng cả về độ an toàn, độ riêng tư và khả nǎng truy
nhập.
Các server
ứng dụng sẽ là một phần quan trọng của các Web Service bởi vì
thông thường, các server này thực hiện các ứng dụng phức tạp dựa trên sự chuyển
giao giữa người sử dụng và các chương trình kinh doanh hay các cơ sở dữ liệu của
một tổ chức nào đó.
1.3. Giới thiệu hai chuẩn WMS và WFS
Tổ chức OpenGis (OGC – OpenGis Consortium) đã đưa ra ba chuẩn dịch vụ
truy cập thông tin địa lý mang tính chuẩn hóa cao là :Web Map Service (WMS),
Web Feature Service (WFS) và Web Coverage Service (WCS). Ngoài ra còn có các
chuẩn khác như GeoParser và GeoCoder. Hình sau đây mô ta sơ đồ kiến trúc các
dịch vụ Web của tổ chức OGC.
họa vector như SVG (Scalable Vector Graphics), WebCGM (Web Computer
Graphics Metafile). Một WMS sẽ hỗ trợ ba operation, trong đó hai operation đầu là
bắt buộc cho mọi WMS.
1) GetCapabilities: cung cấp các thông tin metadata ở mức dịch vụ, đó là đặc tả
cho các thông tin của dịch vụ WMS và các tham số cần thiết cho các câu yêu cầu
request.
2) GetMap: cung cấp ảnh bản đồ khi nhận được các tham số về chiều và thông
tin không gian địa lý hợp lệ.
3) GetFeatureInfo: truy vấn thông tin của các feature trên bản đồ.
Trình duyệt web có thể yêu cầu WMS thực hiệ
n các operation này bằng cách gửi
các câu request dưới dạng URL. Nội dung của câu URL này phụ thuộc vào việc gọi
thực hiện tác vụ nào.
2.2. Các element cơ sở
2.2.1. Đánh số và thỏa thuận phiên bản (version)
2.2.1.1. Cách thức đánh số phiên bản
Mỗi phiên bản được biểu diễn bằng một bộ số gồm ba số nguyên dương, cách
nhau bởi dấu “.”, nó có dạng như sau “x.y.z”. Trong đó hai số “y” và “z” không
vượt quá 99. Mỗi đặc tả OWS được đánh số độc lập. Chương 2. Web Map Service (WMS) Chương 2. Web Map Service (WMS) 7
3b)Nếu phiên bản server gửi lớn hơn phiên bản client đã yêu cầu và client vẫn
không hiểu thì nó sẽ gửi lại một request mới với phiên bản lớn hơn phiên bản server
đã gửi.
Việc thỏa thuận cứ tiếp diễn cho đến khi cả hai đều hiểu được phiên bản thỏa
thuận hoặc đến khi client quyết định ngừng liên lạc với server.
Ví dụ 1: Server hiểu các phiên bản 1, 2, 4, 5 và 8. Client hiểu các phiên bản 1, 3,
4, 6 và 7. Client yêu cầu phiên bản 7. Server trả về phiên bản 5. Client gửi lại yêu
cầu khác với phiên bản 4. Server trả về phiên bản 4, client đồng ý và kết thúc quá
trình thương thảo thành công.
Ví dụ 2: Server hiểu các phiên bản 4, 5 và 8. Client hiểu phiên bản 3. Client yêu
cầu phiên bản 3. Server trả về phiên bản 4. Client không hiểu phiên bản này và bất
cứ phiên bản cao hơn nào khác do đó quá trình thương thảo thất bại. Client ngừng
liên lạc với server.
2.2.2. Những quy tắc chung trong HTTP request
2.2.2.1. HTTP GET
Các ký tự
quy ước trong câu HTTP GET URL
Ký tự Ý nghĩa
WMS.
2.2.3. Những quy tắc chung trong HTTP response
Khi nhận được một request hợp lệ, dịch vụ sẽ gửi về một response tương ứng
đúng với những gì request yêu cầu ngọai trừ trường hợp xảy ra thỏa thuận phiên bản
thì có thể cho kết quả khác.
Khi nhận được một request không hợp lệ, dịch vụ sẽ gửi v
ề một ngoại biệt dịch
vụ (Service Exception).
Các đối tượng trả về trong response phải theo kiểu MIME (Multipurpose
Internet Mail Extensions).
2.2.4. Những quy tắc về tham số trong câu request
Tên tham số không phân biệt hoa thường.
Giá trị của tham số có phân biệt hoa thường.
Trật tự các tham số có thể tùy ý.
Các tham số có giá trị là một danh sách thì các giá trị được phân cách nhau
bởi dấu phẩy “,”, không được dùng khoảng trắng để phân cách.
Các tham số có giá trị là một danh sách thì khi có một giá trị nào đó là trống
thì để trống giá trị đó (“,,”) Chương 2. Web Map Service (WMS) Chương 2. Web Map Service (WMS) 10
Kiểu MIME Nội dung tài liệu
application/vnd.ogc.wms_xml WMS Capabilities XML
application/vnd.ogc.gml Geography Markup Language XML
application/vnd.ogc.se_xml Service Exception XML
application/vnd.ogc.se_inimage Hình với các thông điệp biệt lệ
application/vnd.ogc.se_blank Hình trắng do biệt lệ xảy ra
Bảng 2.2.Danh sách các kiểu MIME
2.2.5.4. EXCEPTIONS
Tham số EXCEPTIONS chỉ ra định dạng để thông báo lỗi.
2.2.5.5. Hệ quy chiếu không gian (Spatial Reference System (SRS))
SRS là một tham số text dùng để chỉ hệ trục tọa độ nằm ngang. Nó bao gồm một
tiền tố namespace, một dấu hai chấm “:”, và một con số. Có hai loại namespace:
EPSG và AUTO.
Một dịch vụ có thể không hỗ trợ hết tất cả các SRS. Server sẽ quảng cáo các
SRS mà nó hỗ trợ trong tài liệu Capabilities XML và chấp nhận đáp ứ
ng tất cả các
request yêu cầu các SRS mà nó hỗ trợ. Nếu như request có một SRS không được
cung cấp bởi server thì server sẽ gửi đi một biệt lệ dịch vụ (với mã “InvalidSRS”).
Ngược lại, một client cũng không cần hỗ trợ hết tất cả các SRS. Nếu client và
dịch vụ không cùng đưa ra được một SRS chung (cùng hỗ trợ) thì hoặc là client
AUTO:auto_proj_id,epsg_units_id,lon0,lat0
Ví dụ: một dịch vụ hỗ trợ phép chiếu trực giao tự động (Auto Orthographic
projection) sẽ thêm vào element "<SRS>AUTO:42003</SRS>" trong tài liệu
Capabilities XML của nó.
2.2.5.5.3. SRS không xác định
Server cũng có thể đưa ra thông tin địa lý mà hệ quy chiếu không gian của nó
không được xác định một cách chính xác. Chẳng hạn như tập hợp các bản đồ lịch sử
vẽ bằng tay được số hóa có thể biểu diễn một vùng trên trái đất nhưng không theo
một hệ t
ọa độ hiện đại nào. Trong trường hợp này, giá trị “NONE” (viết hoa) sẽ
được dùng khi muốn chỉ ra SRS của tập hợp các bản đồ này.
2.2.5.6. Hình chữ nhật bao
Hình chữ nhật bao là một tập bốn con số nguyên được phân cách bởi dấu phẩy
“,”. Nó biểu diễn các giá trị minX, minY, maxX, maxY theo đơn vị của SRS trong
request. Trong đó, X biểu diễn cho các trục kinh tuyến, Y biểu diễn cho các trục vĩ
tuyến. Mối quan hệ gi
ữa hình chữ nhật bao và ma trận các điểm ảnh được biểu diễn
trong hình dưới đây: hình chữ nhật bao sẽ bao chung quanh các điểm ảnh của ảnh
chứ không đi qua tâm của các điểm ảnh ngòai rìa. Trong ngữ cảnh này, mỗi một
điểm ảnh đều có diện tích. Chương 2. Web Map Service (WMS)
13
2.2.5.8. Chiều cao
Một vài thông tin địa lý có thể có giá trị trong nhiều độ cao khác nhau, ví dụ như
bản đồ mật độ tầng ozone tại các độ cao khác nhau trong khí quyển. Dịch vụ cần
phải thông báo các độ cao có thể trong tài liệu Capabilities XML , và một vài
operation cần có thêm tham số để yêu cầu lấy thông tin về độ cao. Một giá trị độ
cao đơn là một số nguyên hoặc số thực mà đơn vị của nó được đưa ra trong dữ
liệu
của EPSG. Tùy theo ngữ cảnh, giá trị độ cao có thể là một giá trị đơn, danh sách các
giá trị, khoảng cách,…
2.2.5.9. Các chiều khác
Một vài thông tin địa lý có thể có thêm nhiều chiều khác, chẳng hạn như ảnh vệ
tinh ở các dải bước sóng khác nhau. Các chiều khác ngoài bốn chiều không gian
được xem như là các “chiều mẫu”. Dịch vụ cần phải thông báo các chiều mẫu có thể
trong tài liệu Capabilities XML , và một vài operation cần có thêm cơ chế để thêm
các tham số chiều mẫu. Mỗi một chiều mẫu có môt tên và một hoặc nhiều giá trị
hợp lệ.
2.2.6. Kết quả dịch vụ
Giá trị trả về của môt request hợp lệ sẽ tương ứng với kiểu được yêu cầu trong
tham số FORMAT. Trong môi trường HTTP, header kiểu nội dung của response sẽ
chính xác là kiểu MIME được đưa ra trong request.
2.2.7. Biệt lệ dịch vụ
Khi nhận đượ
c một request không hợp lệ, dịch vụ sẽ đưa ra một biệt lệ dịch vụ.
Biệt lệ này sẽ giải thích cho ứng dụng client hoặc người sử dụng biết lý do tại sao
request không hợp lệ.
Bảng 2.3.Các tham số trong GetCapabilities request URL
2.3.1.2.1. VERSION
Tham số VERSION là một tham số tùy chọn, được sử dụng trong quá trình thỏa
thuận phiên bản.
2.3.1.2.2. SERVICE
Tham số SERVICE là một tham số bắt buộc, dùng để chỉ kiểu dịch vụ nào cần
được thực thi. Khi gọi thực thi GetCapabilities trên một WMS, giá trị của tham số
này phải là “WMS”.