Dịch vụ bản đồ WFS (Web Feature Service)

Một phần của tài liệu Nghiên cứu chuẩn OGC và ứng dụng cho bài toán quản lý cơ sở dữ liệu tài nguyên môi trường cấp địa phương (Trang 34)

Khái niệm

WFS cho phép người dùng (a client) nhận về và cập nhật dữ liệu Địa địa lý đã được mã hóa bằng ngôn ngữ Geography Markup Language (GML) [7].

Các yêu cầu cho một WFS đó là

• Các giao diện phải được định nghĩa bằng ngôn ngữ XML;

• Các đặc trưng của giao diện phải được mô tả bằng ngôn ngữ GML;

• Ngôn ngữ thuộc tính và bộ lọc sẽ được định nghĩa trong XML và được trích xuất từ CQL như đã định nghĩa trong đặc tả OpenGIS Catalogue Interface Implementation;

• Kho lưu trữ dữ liệu Địa lý trong suốt đối với người dùng, họ chỉ có thể truy cập dữ liệu thông qua giao diện WFS;

• Các tập con của diễn tả XPath được dùng để tham chiếu các thuộc tính.[7]  Quá trình xử lý các yêu cầu WFS nhƣ sau:

Hình 1.7.Quá trình xử lý các yêu cầu WFS [7].

Chú ý: Vẽ lại hình, thống nhất về phông chữ trong một hình vẽ

• Một ứng dụng client máy khách yêu cầu một tài liệu có đầy đủ thông tin từ WFS là tài liệu chứa tất cả các thao tác mà WFS hỗ trợ và danh sách tât cả các kiểu feature mà nó phục vụ;

• Ứng dụng client (tùy chọn) gửi một yêu cầu tới web feature service để định nghĩa một hoặc nhiều kiểu đối tượng hoặc phần tử mà WFS có thể phục vụ

• Dựa trên định nghĩa của các kiểu đối tượng, ứng dụng client tạo ra yêu cầu được đặc tả trong tài liệu;

• Yêu cầu này được gửi tới web server; • WFS được gọi để đọc và giải quyết yêu cầu;

• Khi WFS hoàn thành việc xử lý các yêu cầu, nó sẽ tạo ra báo cáo và gửi trả lại ứng dụng client, nếu có lỗi xuất hiện, thì báo cáo này sẽ chỉ ra lỗi đó [7].

WFS sử dụng thông qua Internet hoặc trong một mạng nội bộ (Intranet). Chuẩn vectơ hoạt động với HTTP (Hypertext Transform Protocol) và hỗ trợ thuật toán insert, update, delete, truy vấn (query) và hoạt động tìm kiếm cho các đối tượng Địa địa lý. Các đối tượng thường được chuyển đi trong định dạng GML (Geographic Markup

Client

Web Feature Server (WFS)

Opaque Feature store WFS

Request

WFS Response

Formatted: Font: Bold, Font color: Red Formatted: Left

Formatted: Font: Times New Roman

Language) đến ứng dụng phía clientmáy khách.  Các yêu cầu Get và Post

Có hai phương thức để yêu cầu dữ liệu từ WFS Server đó là HTTP GET và HTTP POST

Một HTTP GET là một yêu cầu dữ liệu được mã hóa trong một URL, nó có dạng như sau:

http://www.example.com/wfsserver?

name1=value1& name2=value2& ...

Ví dụ trên là yêu cầu gửi đến trang

http://www.example.com/wfsserver với cặp khóa/giá trị tương ứng : "name1=value1","name2=value2"

Một lượng dữ liệu hợp lý có thể truyền thông qua yêu cầu GET, tuy không có giới hạn về chiều dài của một URL nhưng việc gửi quá nhiều dữ liệu thông qua yêu cầu GET có thể khó đọc và khó sử dụng, cho nên một yêu cầu GET thường rất nhỏ gọn và được gửi thông qua trình duyệt web.

HTTP POST là yêu cầu liên quan đến client và mã XML, nhưng lại khó hơn với người sử dụng. Vì vậy trong tài liệu này chúng ta chỉ quan tâm đến yêu cầu HTTP GET.

Các thao tác (Operations)

Một WFS có thể thực hiện được sáu thao tác sau: + GetCapabilities

+ DescribeFeatureType + GetFeature

+ GetGmlObject( mới trong phiên bản v1.1) + Transaction(optional)

+ LockFeature(optional)

Có ba lớp lớp (class) của web feature servicesWFS được định nghĩa như sau.

Basic WFS: hiện thực các thao tác GetCapabilities,

DescribeFeatureType, GetFeature và được xem như một web feature

service có thuộc tính READ-ONLY [7].

XLink WFS: hỗ trợ tất cả các thao tác của một web feature service cơ bản và hiện thực thao tác GetGmlObject cho những XLink cục bộ

và/hoặc điều khiển từ xa, và đưa ra tùy chọn cho thao tác GetGmlObject để thi hành xuyên suốt thao tác GetFeature [7].

Transaction WFS: hỗ trợ tất cả các thao tác của một web feature service cơ bản và hiện thực thao tác transaction. Một transaction WFS có thể hiện thực hoặc không thao tác GetGmlObject và/ hoặc LockFeature [7]. Sau đây tác giả sẽ trình bày chi tiết các thao tác cơ bản của lớp Basic WFS.

GetCapabilities

Thao tác GetCapabilities cho biết về những thông tin chức năng nào mà WFS có thể cung cấp, kết quả trả về được định dạng XML mô tả đầy đủ khả năng, kiểu đối tượng mà WFS có thể hỗ trợ và thuật toán nào được áp dụng trên mỗi kiểu đối tượng [7].

Một yêu cầu GetCapabilities điển hình có dạng như sau: http://www.example.com/wfsserver?

service=wfs& version=1.1.0&

request=GetCapabilities

Các yêu cầu được hiển thị trên một dòng, tương ứng với các cặp khóa/giá trị. Ví dụ trên có ba tham số được truyền cho máy chủ WFS đó là “service=wfs”, “version=1.1.0”, và “request=GetCapabilities”, đó là ba tham số tối thiểu của một

yêu cầu GetCapabilities.

Service: chỉ cho WFS server là yêu cầu một WFS

Version: tham chiếu đến phiên bản mà WFS được yêu cầu Request: đặc tả thao tác yêu cầu

Kết quả trả về của một yêu cầu GetCapabilities này là một tài liệu XML dài và phức tạp bao gồm các thành phần chính sau:

ServiceIdentification: Phần này bao gồm các thông tin cơ bản về tiêu đề

(header) như tên dịch vụ, kiểu dịch vụ, phiên bản dịch vụ mà được WFS hỗ trợ

ServiceProvider: Phần này cung cấp các thông tin liên lạc về công ty máy chủ WFS bao gồm số điện thoại, website và email.

OperationsMetadata: Phần này mô tả các thao tác mà WFS công nhận và các tham số cho từng thao tác, một WFS server có thể được thiết lập không đáp ứng cho tất cả các thao tác trên.

FeatureTypeList: Phần này là danh sách các kiểu đối tượng có sẵn, chúng được liệt kê trong dạng “namespace: “featuretype”.

Filter_Capabilities: Phần này liệt kê danh sách các bộ lọc có sẵn để yêu

Formatted: Indent: First line: 0,5"

cầu dữ liệu, các thao tác không gian (Equals, Touches), các thao tác so sánh ( lớn hơn, nhỏ hơn), và các hàm khác cũng được liệt kê ở đây, những bộ lọc này không được định nghĩa trong tài liệu Capabilities , hầu hết chúng là mặc định [7].

DescribeFeatureType

Thao tác DescribeFeatureType yêu cầu danh sách các đối tượng và các thuộc

tính cho kiểu đối tượng nhất định hoặc danh sách các kiểu đối tượng có sẵn, thường dùng để kết nối dữ liệu thuộc tính vào các đối tượng và làm cho chúng có thể truy vấn được;[7] DescribeFeatureType response thể hiện dưới dạng XML.

Ví dụ chúng ta muốn liệt kê danh sách các kiểu đối tượng, thì yêu cầu GET sẽ là:

http://www.example.com/wfsserver? service=wfs&

version=1.1.0&

request=DescribeFeatureType

Với ba cặp khóa/giá trị cơ bản trên sẽ trả ra danh sách các kiểu đối tượng được sắp xếp theo không gian tên.

Còn nếu muốn biết thông tin về một đối tượng cụ thể thì yêu cầu sẽ là: http://www.example.com/wfsserver? service=wfs& version=1.1.0& request=DescribeFeatureType& typeName=namespace:featuretype GetFeature

Thao tác GetFeature cho phép lấy về các đối tượng từ WFS được đặt trong GML, nếu WFS hỗ trợ ESRI: Shape, GMLZIP hoặc dữ liệu XML_SVG thì GetFeature response có thể thể hiện bằng định dạng theo mong muốn [7].

Ví dụ đơn giản lấy về đối tượng

http://www.example.com/wfsserver?

service=wfs& version=1.1.0& request=GetFeature&

typeName=namespace:featuretype Nếu không biết tên và muốn giới hạn các feature chúng ta có thể dùng thẻ “maxfeature” :

http://www.example.com/wfsserver? service=wfs& version=1.1.0& request=GetFeature& typeName=namespace:featuretype& maxFeatures=N

Hoặc có thể lấy các thuộc tính của feature như sau:

http://www.example.com/wfsserver? service=wfs& version=1.1.0& request=GetFeature& typeName=namespace:featuretype& featureID=feature& propertyName=property1,property2 GetGmlObject

Thao tác GetGmlObject cho phép lấy về các feature và các phần tử thông qua ID từ một WFS, kết quả trả về là một đoạn XML được gửi tới ứng dụng client [7]. Web feature service phải có khả năng đáp ứng yêu cầu khôi phục các thể hiện phần tử bằng các đường ngang XLink đề cập đến các định danh XML của chúng. Thêm vào đó, client cần chỉ rõ có hay không XLink nhúng vào phần tử dữ liệu trả về cũng cần được khôi phục.

Transaction(optionaltùy chọn)

Thao tác Transaction được sử dụng để mô tả các giao dịch truyền dữ liệu được áp dụng cho các thể hiện truy cập web feature [7].

Một WFS có thể xử lý một thao tác Transaction trực tiếp hoặc có thể dịch nó ra ngôn ngữ đặc tả dữ liệu để kết nối và thực thi giao dịch

Kết quả của thao tác này là một tài liệu XML chỉ ra rằng trạng thái giao dịch đã kết thúc, và nếu có thao tác Insert thì WFS phải trả về các feature mới được tạo ra.

Web feature service phải có khả năng đáp ứng các yêu cầu chuyển giao. Một yêu cầu giao dịch bao gồm các thuật toán thay đổi các feature là create, update

delete trên các đặc trưng Địa địa lý [7].

LockFeature(optionaltùy chọn)

Thao tác LockFeature được sử dụng để đưa ra một khóa tính năng nhằm đảm bảo tính nhất quán. Kết quả trả về là một tài liệu XML bao gồm một khóa xác định rằng một ứng dụng client có thể sử dụng trong các hoạt động WFS tiếp theo và vận

hành trong các trường hợp có tính năng khóa.

web feature serviceWFS phải có khả năng xử lý một yêu cầu khóa trên một hay nhiều thể hiện của một kiểu đối tượng cho một khoảng thời gian chuyển giao, trong đó có hỗ trợ chuyển giao đồng thời [7].

Biểu thức truy vấn, lọc (Filter Encoding)

Một biểu thức filter (lọc) là một khởi tạo được dùng để ràng buộc các giá trị thuộc tính của một kiểu đối tượng với mục đích xác định một tập con các thể hiện của đối tượng được phát sinh theo một kiểu nào đó.

Mục đích Filter Encoding là mô tả một chuẩn mã hóa XML của CQL (OGC Common Catalog Query Language) như một đại diện trung lập hệ thống của một truy vấn. Ngày nay, việc dùng nhiều công cụ cho XML có thể dễ dàng kiểm tra tính hợp lệ, phân tích một thể hiện (instance) của XML và sau đó chuyển đổi nó sang bất kỳ ngôn ngữ nào cần để truy vấn hay hiệu chỉnh các thể hiện của đối tượng trong kho lưu trữ đối tượng bất kỳ. Ví dụ, một filter mã hóa XML có thể được chuyển sang mệnh đề WHERE cho câu lệnh SELECT của SQL để lấy dữ liệu lưu trữ trong cơ sở dữ liệu quan hệ dựa trên SQL. Tương tự, một biểu thức filter mã hóa XML cũng có thể chuyển sang biểu thức XPath hay XPointer cho việc lấy dữ liệu từ các tài liệu XML.

Một lớp rộng lớn của các dịch vụ Web của OpenGIS đòi hỏi khả năng biểu diễn các biểu thức filter trong XML. Filter là một thành phần tổng quát có thể được nhiều dịch vụ Web của OGC sử dụng. Bất kỳ service nào đòi hỏi khả năng truy vấn đối tượng từ một kho lưu trữ truy cập được từ web có thể sử dụng XML filter encoding mô tả trong tài liệu này. Ví dụ, một WFS (Web Feature Service) có thể sử dụng XML filter encoding trong thao tác GetFeature để định nghĩa các ràng buộc truy vấn. Các service khác dựa trên WFS, chẳng hạn Gazetteer (Địa danh) hay WRS (Web Registry Service), cũng có thể sử dụng filter encoding này.

Tóm lại các đặc trưng cơ bản nhất của một WFS cơ bản phải sử dụng ngôn ngữ GML khi sử dụng WFS, các đối tượng được mô hình như những đối tượng Địa lý, nghĩa là chúng có thể được lưu trữ trong một dữ liệu đối tượng cơ bản tương tự như dữ liệu vectơ. Các đối tượng có thể là những thứ mà có thể được đặt trong không gian và thời gian, gồm các tòa nhà, các thành phố, cây cối, các khu rừng, các hệ sinh thái, phân bố giao thông, các đường ống dẫn dầu, …

WFS là một cách phân phối các đặc trưng Địa lý thông qua một dịch vụ web đến với ứng dụng phía người dùng (client) hoặc một trình duyệt (browser). Người dùng (client) sẽ 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à 1 sự chuẩn hóa của việc phân phối dữ liệu vectơ đến đông đảo người dùng. Người dùng có thể nhập vào dữ liệu dạng vectơ khi yêu cầu thông tin và

WFS sẽ đáp ứng yêu cầu đó.

Sử dụng đặc tả WFS kết hợp với các thao tác Filter theo không gian (Bbox, intersect, within, contain…) hoặc theo thuộc tính (equal, greater,…) và các toán tử logic (and, or,…) chúng ta luôn có thể lấy dữ liệu GIS mà server đó chia sẻ bất cứ lúc nào chúng ta muốn. Một khi dữ liệu theo yêu cầu đã có, chúng ta có thể kết hợp với các dữ liệu khác (từ local hay remote) để tạo ra các thông tin hữu ích, phù hợp với ngữ nghĩa của users. Chính vì thế WFS có thể được coi là giải pháp tích hợp theo thời gian thực. Các Filter được sử dụng trong các đặc tả của OGC tuân thủ theo đặc tả Filter Encoding của OGC.

WFS Server trả dữ liệu về cho user dưới dạng GML hoặc GeoJSON (phụ thuộc vào năng lực của từng Web Server).

Một phần của tài liệu Nghiên cứu chuẩn OGC và ứng dụng cho bài toán quản lý cơ sở dữ liệu tài nguyên môi trường cấp địa phương (Trang 34)

Tải bản đầy đủ (PDF)

(82 trang)