Giới thiệu mã nguồn mở ứng dụng chuẩn OGC

Một phần của tài liệu Nghiên cứu các chuẩn OGC (open geospatial consortium) trong hệ thống tin địa lý và ứng dụng (Trang 48)

2.3.1. Mapserver

Mapserver là phần mềm mã nguồn mở cho phép tạo các bản đồ động và trình bày dữ liệu không gian trên Web. Đây là sản phẩm của trƣờng Đại học Tổng hợp Minnesota (Mỹ) trong dự án kết hợp giữa NASA và Sở tài nguyên bang Minnesota.

Map server có đặc điểm sau:

- Hỗ trợ các dịch vụ Webgis theo chuẩn OGC bao gồm: WMS Server, WMS Client, WFS Server.

- Xuất bản đồ với nhiều ƣu điểm: + Vẽ đối tƣợng theo tỷ lệ

+ Hiển thị nhân theo đối tƣợng và giải quyết trùng lặp nhãn + Tùy biến giao diện, mẫu trƣớc khi xuất;

45

+ Sử dụng font: Truefont;

+ Có các thành phần của bản đồ nhƣ thƣớc tỷ lệ, chú giải, bản đồ tham chiếu, mũi tên hƣớng bắc;

+ Tạo bản đồ chuyên đề dựa trên biểu thức truy vấn trên các lớp cơ sở;

- Hỗ trợ các ngôn ngữ kịch bản phổ biến và môi trƣờng phát triển nhƣ: .NET, PHP, Perl, Python, Java, Solaris

- Hỗ trợ định dạng dữ liệu raster và vector:

+ TIFF/GeoTIFF, GIF, PNG, ERDAS, JPEG và EPPL7.

+ ESRI shapefile, PostGIS, ESRI ArcSDE, Oracle Spatial, MySQL,… + Hỗ trợ lƣới chiếu: với hơn 1000 lƣới chiếu khác nhau

Hình 2.4: Sơ đồ hoạt động của Mapserver

Map server có thể hoạt động ở 2 chế độ CGI (Common Gateway Interface) và API (Application Program Interface).Ở chế độ CGI, các chức năng của Map server trong môi trƣờng Web server là CGI MapScript. Đây là cách thức dễ dàng để khởi tạo và phát triển một ứng dụng. Ở chế độ API, có thể truy cập các cơ sở mở rộng khác.

Map server hoạt động dựa vào các mẫu là chính. Trƣớc khi thực thi yêu cầu của Web, Map server đọc tệp tin cấu hành (mapfile) mô tả các lớp và các thành phần khác của bản đồ. Nó sẽ vẽ và lƣu lại bản đồ. Tiếp theo, nó nhận diện trong tệp tin cấu hình. Mỗi tệp tin mẫu sẽ chứa đựng các tags HTML và các chuỗi Map server đặc biệt. Các chuỗi này sẽ đƣợc sử dụng, ví dụ chuỗi chỉ đƣờng dẫn để lƣu ảnh bản đồ do Map server tạo ra, hoặc chuỗi dùng để nhận diện các lớp nào sẽ đƣợc sắp xếp,…Map server

46

thay thế các giá trị hiện tài vào các chuỗi này và gửi luồng dữ liệu về cho Web server để Web server tiếp tục chuyển về cho trình duyệt. Khi có một yêu cầu mới phát sinh, Map server sẽ nhận yêu cầu từ Webs erver với các giá trị mới và chu trình cứ thể tiếp diễn.

2.3.2. Map Window

Map Window là phần mềm GIS mã nguồn mở về hệ thống thông tin địa lý. Nó là lựa chọn thích hợp cho nhiều đối tƣợng ngƣời dùng theo các mục đích khác nhau:

a. Mục đích biên tập dữ liệu:

- Map Window là phần mềm có dung lƣợng nhẹ; - Xử lý biên tập dữ liệu linh hoạt;

- Xử lý các phép chiếu bản đồ;

- Trình bày hiển thị các lớp bản đồ với đƣờng nét và màu sắc thích hợp; - Cho phép ngƣời dùng tìm kiếm bằng tƣơng tác hoặc truy vấn.

b. Mục đích phát triển công cụ và phần mềm:

- Map Window là nguồn mở nên có thể sử dụng lại mã nguồn;

- Module lõi của Map Window là Map WinGIS đƣợc phát triển trên nền C++, cho hiệu quả tốt về mặt tốc độ;

- Dễ dàng tích hợp Map WinGIS trên các hệ thống .NET nên có thể tƣơng tác với Map WinGIS bằng các ngôn ngữ lập trình phổ biến trên nền .NET;

Cấu trúc dễ dàng mở rộng với các Plug-in hỗ trợ và dễ dàng tích hợp.

2.3.3. GeoServer 2.3.3.1. Khái niệm 2.3.3.1. Khái niệm

GeoServer: là máy chủ mã nguồn mở dùng để kết nối những thông tin địa lý có sẵn tới các trang Web địa lý (Geoweb) sử dụng chuẩn mở. GeoServer đƣợc bắt đầu xây dựng bởi tổ chức phi lợi nhuận TOPP (The Open Planning Project), với mục đích

47

hỗ trợ việc xây dựng hạ tầng dữ liệu không gian bằng cách cung cấp phần mềm mã nguồn mở chất lƣợng cao, dễ sử dụng cho những nhà cung cấp dữ liệu. GeoServer đƣợc kỳ vọng sẽ trở thành một phƣơng pháp đơn giản để kết nối những nguồn thông tin có sẵn tới các Virtual globe nhƣ Google Earth, NASA World Wind tƣơng tự nhƣ các trang web bản đồ Google Maps, Windows Live Local hay Yahoo Maps. Geoserver cung cấp các đặc tả Web Feature Server 1.0 và 1.1, Web Map Server 1.1.1 và Web Coverage 1.0.

Geoserver cho phép xuất dữ liệu địa lý ra các dạng bản đồ/ảnh (sử dụng Web Map Server), dữ liệu thực tế (sử dụng Web Feature Server), và cho phép ngƣời sử dụng cập nhật, thêm, xóa các thuộc tính (sử dụng Web Feature Server-Transactional). Mục tiêu của phần mềm là dễ sử dụng và hỗ trợ các chuẩn mở để cho phép bất kỳ ai cũng có thể chia sẻ thông tin về địa lý của mình một cách nhanh chóng.

GeoServer và MapServer có nhiều chức năng tƣơng tự. Sự khác biệt giữa hai sản phẩm là Mapserver đƣợc phát triển trong môi trƣờng cũ, đƣợc viết bởi ngôn ngữ C và hoạt động nhờ CGI, còn GeoServer đƣợc viết bằng ngôn ngữ Java. GeoServer phân biệt với MapServer bởi nó có giao diện đồ họa, giúp đơn giản hơn trong việc cấu hình, và thực thi chức năng sửa đổi dựa vào Web Feature Server, cho phép chỉnh sửa thông tin không gian cả trên Web cũng nhƣ trên máy trạm Desktop. Ƣu điểm lớn nhất của Map Server là tốc độ thực thi nhanh hơn GeoServer, nhƣng từ phiên bản 1.6 trở đi của GeoServer thì tốc độ của hai sản phẩm đã tƣơng đƣơng.

Là một dự án mang tính cộng đồng, GeoServer đƣợc phát triển, kiểm thử và hỗ trợ bởi nhiều nhóm và tổ chức khác nhau trên toàn thế giới. GeoServer là sự phối hợp các chuẩn của Open Geospatial Consortium (OGC) nhƣ Web Map Service (WMS), Web Feature Service (WFS).

48

Thông qua các giao thức chuẩn GeoServer cho phép xuất ra các loại dữ liệu nhƣ: KML, GML, Shapefile, GeoRSS, Portable Document Format, GeoJSON, JPEG, GIF, SVG, PNG ...

GeoServer có thể đọc đƣợc nhiều định dạng dữ liệu nhƣ PostGIS, Oracle Spatial, ArcSDE, DB2, MySQL, Shapefiles, GeoTIFF, GTOPO30…. Bên cạnh đó, GeoServer còn có thể chỉnh sửa dữ liệu nhờ thành phần giao dịch của chuẩn Web Feature Server.

* Cài đặt Geoserver:

- Download phần mềm Geoserver tại trang www.geoserver.org. - Cài đặt bộ JDK. Trong khi cài đặt chọn không cài đặt jre.

- Thiết lập biến môi trƣờng JAVA_HOME trỏ đến thƣ mục chứa file thực thi của JDK.

- Chạy file cài đặt Geoserver và làm theo hƣớng dẫn. * Các dịch vụ Geoserver hỗ trợ:

- Web Map Service (WMS):

OGC WMS tự động tạo ra bản đồ của các dữ liệu không gian liên quan từ những thông tin địa lý. Chuẩn quốc tế này định nghĩa một bản đồ để mô tả thông tin địa lý nhƣ là một tệp ảnh số phù hợp cho việc hiển thị lên màn hình máy tính. Một bản đồ bản thân nó không phải là dữ liệu. Các bản đồ đƣợc tạo ra bởi WMS thông thƣờng dƣới dạng ảnh nhƣ PNG, GIF hay JPEG, hoặc đôi khi ở dạng các phần tử đồ họa vector Scalable Vector Graphics (SVG) hay Web Computer Graphics Metafile (WebCGM). Trái ngƣợc với Web Feature Service (WFS) vốn trả về dữ liệu vector thực sự, và Web Coverage Service (WCS) trả về dữ liệu thực dạng lƣới.

Các thao tác WMS có thể đƣợc gọi bằng cách sử dụng một trình duyệt web chuẩn để thực hiện các yêu cầu theo khuân dạng Uniform Resource Locators (URLs). Nội dung của các URL phụ thuộc vào thao tác đƣợc yêu cầu. Cụ thể khi yêu cầu một bản đồ, URL chỉ ra những thông tin nào sẽ đƣợc đƣa lên bản đồ, phần nào của trái đất đƣợc ánh xạ đến, hệ quy chiếu mông muốn, kích thƣớc của ảnh đầu ra. Khi có hai hay nhiều bản đồ đƣợc tạo ra với cùng thông số địa lý và kích cỡ, các kết quả có thể chồng khít lên nhau để tạo ra một bản đồ kết hợp. Việc sử dụng các định dạng ảnh hỗ trợ nền trong suốt (nhƣ GIF hay PNG) cho phép nhìn thấy các bản đồ bên dƣới. Hơn nữa, các bản đồ riêng lẻ có thể đƣợc yêu cầu từ các máy chủ khác. Do vậy dịch vụ WMS tạo nên một mạng phân tán các máy chủ phục vụ bản đồ để các máy trạm có thể lấy các bản đồ theo yêu cầu.

Một dịch vụ Web bản đồ thƣờng không đƣợc yêu cầu trực tiếp. Thông thƣờng nó đƣợc yêu cầu bởi một ứng dụng phía máy trạm có cung cấp các điều khiển tƣơng tác cho ngƣời sử dụng. Ứng dụng máy trạm này có thể dựa trên nền web hay là không.

49

WMS bao gồm 2 thành phần chính là Web Map Server và Web Map Client. * Đặc tả WMS

Đặc tả WMS là tài liệu mô tả cách thức Server đáp ứng (Response) các yêu cầu cụ thể từ client. Khi cả client và server còn thực thi đặc tả này thì chúng còn có thể trao đổi với nhau.

Đặc tả WMS qui định cách thức mà các WMS client liên lạc với WMS Server, cách thức mà WMS Server đáp ứng yêu cầu của WMS Client. Có 2 loại Request bắt buộc và 1 số loại Request tùy chọn khác:

GetMap Request: Yêu cầu GetMap trả về một bản đồ dƣới dạng ảnh (ảnh bản đồ) trong một phạm vi địa lý theo các tham số đƣợc định nghĩa cụ thể. GetMap request đƣợc yêu cầu bởi một client để nhận về một tập hợp các điểm ảnh. Các điểm ảnh này chứa ảnh của một bản đồ trong vùng địa lý (không gian) hoặc một tập các đối tƣợng đồ họa nằm trong vùng địa lý cụ thể. GetMap request cho phép các WMS client chỉ ra một lớp thông tin cụ thể: hệ qui chiếu không gian (SRS), l khu vực địa lý, các tham số khác qui định định dạng dữ liệu trả về... Trên cơ sở các GetMap request, WMS Server sẽ trả về kết quả là một bản đồ (nếu có), hoặc trả về một exception theo các chỉ dẫn trong GetMap request.

Ví dụ: một URL GetMap request có dạng nhƣ sau:

http://webmapping.mgis.psu.edu/geoserver/wms?version=1.1.1&request=getma p&layers=topp:states&styles=population&SRS=EPSG:4326&bbox=-125,24,-

67,50&width=400&height=200&format=image/png Có thể chia request thành các phần:

http: giao thức đƣợc sử dụng.

webmapping.mgis.psu.edu: tên máy chủ chạy WMS server.

geoserver/wms: tên trang, trƣờng hợp này nó chỉ ra một chƣơng chình chạy trên máy chủ để xử lý các yêu cầu.

Các tham số đƣợc bắt đầu bằng dấu ? và đƣợc phân biệt bởi dấu &

version=1.1.1 : chỉ ra phiên bản của đặc tả WMS mà hệ thống đang thực thi. request=getmap: chỉ ra loại request mà client cần server xử lý (trong trƣờng hợp này là GetMap).

layers=topp:states: chỉ ra lớp thông tin trên server mà client cần lấy, có thể yêu cầu nhiều lớp thông tin, giữa các lớp thông tin cách nhau bởi dấu “,” .

styles=population: chỉ ra kiểu trình bày của bản đồ đƣợc trả về. SRS=EPSG:4326: chỉ ra hệ qui chiếu đƣợc sử dụng.

bbox=-125,24,-67,50: phạm vi không gian cần tạo bản đồ. width=400: độ rộng theo pixel của ảnh bản đồ.

50

format=image/png: định dạng của ảnh bản đồ trả về (Image/gif, image/jpg, image/svg+xml).

Nếu quá trình xử lý yêu cầu từ client không gặp lỗi bản đồ kết quả sẽ đƣợc trả về theo định dạng mà client yêu cầu. Nhƣng nếu có lỗi xảy ra, server sẽ gửi trả một thông điệp lỗi đƣợc mã hoá bởi XML về client.

GetCapabilities: GetCapabilities request trả về các siêu dữ liệu mô tả WMS Server, các mô tả bao gồm nội dung thông tin mà WMS có thể phục vụ, các tham số mà WMS Server có thể nhận.

Ví dụ: một GetCapabilities request có dạng nhƣ sau:

http://webmapping.mgis.psu.edu/geoserver/wms?version=1.1.1&request=getca pabilities

Kết quả của GetCapabilities request, server sẽ trả về trang XML chứa các thông tin:

Các dịch vụ đƣợc hỗ trợ. Các định dạng đƣợc hỗ trợ. Các hệ tham chiếu không gian. Danh sách các lớp thông tin bản đồ. SLD/Style.

Mã nhà cung cấp dịch vụ.

GetFeatureInfo (tùy chọn): GetFeatureInfo request trả về thông tin đối tƣợng địa lý cụ thể đƣợc hiển thị trên bản đồ. Nếu WMS Server hỗ trợ dịch vụ này thì bản đồ nó trả về đƣợc gọi là bản đồ có khả năng truy vấn thông tin và một WMS Client có thể yêu cầu thông tin về đối tƣợng trên một bản đồ bằng cách thêm vào URL các tham số chỉ ra một vị trí (X,Y) và số đối tƣợng có thể trả về thông tin.

Ví dụ: một GetFeatureInfo request có dạng:

http://webmapping.mgis.psu.edu/geoserver/wms?version=1.1.1&request= getfeatureinfo&layers=topp:states&styles=population&SRS=EPSG:4326&b box=-125,24,-67,50&width=400&height=200&format=text/html&X=100&y=100& query_layers=topp:states

Request trên giống GetMap request, điểm khác biệt là phần format chỉ ra định dạng kết quả trả về là text/html. Kết quả trả về có dạng:

Results for FeatureType 'states':---the_geom = [GEOMETRY (MultiPolygon) with 153 points]STATE_NAME = ArizonaSTATE_FIPS = 04SUB_REGION = MtnSTATE_ABBR = AZLAND_KM = 294333.462WATER_KM = 942.772PERSONS = 3665228.0FAMILIES =

51

1854537.0WORKERS = 1358263.0DRVALONE = 1178320.0CARPOOL = 239083.0PUBTRANS = 32856.0EMPLOYED = 1603896.0UNEMPLOY = 123902.0SERVICE = 455896.0MANUAL = 185109.0P_MALE = 0.494P_FEMALE = 0.506SAMP_POP = 468178.0

- Web Feature Service:

Giao diện chuẩn Web Feature Service (WFS) cung cấp giao diện cho phép gửi các yêu cầu về các đặc trƣng địa lý qua Web sử dụng các lời gọi không phụ thuộc nền. Có thể coi các đặc trƣng địa lý là “mã nguồn” của bản đồ trái ngƣợc với giao diện WMS hay các cổng bản đồ trực tuyến nhƣ Google Maps trả về kết quả chỉ là ảnh mà ngƣời sử dụng không thể chỉnh sửa hay phân tích. Ngôn ngữ GML cung cấp phƣơng thức mã hóa mặc định thuận lợi để truyền tải các đặc trƣng địa lý, mặc dù một số kiểu định dạng khác nhƣ shapefiles cũng có thể phục vụ cho mục đích truyền tải. Vào đầu năm 2006, các thành viên của OGC đã phê chuẩn OpenGIS GML Simple Features Profile. Profile này đƣợc thiết kế để tăng khả năng trao đổi giữa các máy chủ WFS và tận dụng việc thực hiện dễ dàng của chuẩn WFS.

Các thành viên OGC định nghĩa và duy trì đặc tả WFS. Chuẩn giao diện WFS đƣợc áp dụng nhiều cho cả mục đích thƣơng mại cũng nhƣ mã nguồn mở, bao gồm cả GeoServer.

Đặc tả WFS định nghĩa các giao diện để mô tả các thao tác trên dữ liệu của các đặc trƣng địa lý. Các phép toán trên dữ liệu có khả năng để:

- Lấy hoặc truy vấn các đặc trƣng địa lý dựa trên các ràng buộc không gian và phi không gian.

- Tạo mới một thể hiện của đặc trƣng địa lý. - Xóa một thể hiện của đặc trƣng địa lý. - Cập nhật một thể hiện của đặc trƣng địa lý.

WFS cơ bản cho phép truy vấn và lấy lại các đặc trƣng. WFS-T (transactional Web Feature Service) cho phép khởi tạo, xóa, và cập nhật các đặc trƣng.

WFS mô tả các phép toán tìm kiếm, truy vấn, và biến đổi dữ liệu. Client phát ra yêu cầu và gửi tới Web Feature Server thông qua giao thức HTTP. Web Feature Server sau đó tiến hành xử lý yêu cầu. WFS sử dụng giao thức HTTP để làm nền tảng tính toán.

* Có hai cách mã hóa cho các phép toán WFS: - Sử dụng ngôn ngữ XML.

- Sử dụng cặp keyword-value * Các mô hình truyền thông

52

- Stateless Request Reply. - Pub/Sub.

Một hệ thống truyền thông điệp mà các địa chỉ thông điệp của các máy trạm tới một nút đƣợc chỉ định nằm trong một nội dung phân cấp đƣợc gọi là một chủ đề. Những ngƣời xuất bản và những ngƣời đóng góp thƣờng ẩn danh và có thể tự động xuất bản hay đóng góp vào nội dung phân cấp. Hệ thống đảm bảo việc phân phối các thông điệp từ những ngƣời xuất bản đến những ngƣời đóng góp. Các thông điệp thƣờng không bền vững và chỉ đƣợc những ngƣời đóng góp nhận khi họ đang đợi nhận thông điệp này tại thời điểm nó đƣợc gửi. Một cách đặc biệt, “sự đóng góp định kỳ” cho phép những ngƣời đóng góp nhận các thông điệp khi họ không hoạt động (nguồn: http://java.sun.com/j2ee/1.4/docs/glossary.html).

Web Notification Service (WNS) là một trong những cài đặt tham khảo của mô hình Pub/Sub. Không phụ thuộc vào mô hình, định dạng URL đƣợc sử dụng và chỉ định trong đặc tả WFS. Hiện tại, không có thể hiện chuẩn mở nào của WNS.

Một phần của tài liệu Nghiên cứu các chuẩn OGC (open geospatial consortium) trong hệ thống tin địa lý và ứng dụng (Trang 48)

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

(76 trang)