Abstract:
Geo-data and geo-service interoperations are important issues in the GIS world. To address these issues, we need standard specifications for the geo-data and geo-service. OpenGIS Consortium (OGC) defined abstract specifications and implementation specifications which can make complex spatial information and spatial services accessible and useful with all kinds of conformed GIS applications. OGC’s Web Mapping Server (WMS) implementation specifications and Web Feature Server (WFS) implementation specifications are used for the map presentation and feature manipulation on the web. Since map servers and feature servers will exist not only on the web but also in other distributed computing environments, map presentation specification and feature manipulation specification should also be applied in other distributed computing environments, such as DCOM and CORBA. The needs for such specifications are as follows: component-base GIS interaction, high efficiency on the server side and more extensible on the client side. National Agriculture Decision Support System (NADSS) is a joint project with the U.S. Department of Agriculture and the University of Nebraska-Lincoln. At the core of the NADSS project is a component-based distributed GIS application system which uses CORBA as the distributed computing platform. Since we hope maps (grids) and features in NADSS are available to outside systems, in this paper, we propose similar map server and feature server implementation specifications for CORBA.
We divided the map servers into two kinds of map servers: pull-mode map servers and push-mode map servers. For pull-mode map servers, users can only get the maps from the map servers based on their capability, users can not take part in the map generation process by providing their own geo-data; push-mode map servers are more active than pull-mode map servers, user can provide their own geo-data to push-mode map server to generate a map. Web Map Server is a pull-mode map server. We extend the OGC Web Map Server (WMS) implementation specification into one push-mode map server implementation specification for CORBA and gave one implementation based on our subset implementation of OGC Grid Coverage implementation specification for CORBA. For the feature server, we extend OGC Web Feature Server (WFS) implementation specification into one feature server implementation specification for CORBA. We implemented a subset of Simple Feature Implementation Specification for CORBA with following geometries: Point, LineString, LinearRing and LinearPolygon. Based on the OGC Simple Feature implementation and our proposed feature server implementation specification for CORBA, we implemented one CORBA feature server.
To implement our proposed map server and feature server implementation specifications, we wrapped GRASS as the underlying GIS software. GRASS is a free open-source GIS software, and it is the traditional stand-alone GIS server software. GRASS provides powerful raster/vector data processing functions, and it is mainly command-oriented controlled. Such a design is flexible to allow addition of new commands to GRASS. But it also limits its usage; unlike ArcInfo, which provides a component-based solve method, GRASS currently lacks the capability to expose its geo-processing functions and geo-data in a distributed environment. From our understanding, the best usage of GRASS is to change the command-oriented style to a component-oriented style. By so doing, we can make use of the GRASS functions in an object-oriented style. In NADSS, we separate the GRASS functions into two kinds: geo-data management and geo-data processing. In geo-data processing, we wrapped the GRASS’s map generating function in a push-mode Map Server interface; while in geo-data management, we wrapped the GRASS’s vector data in a Feature Server interface and the raster data in Grid Coverage interface from OGC.
Since presently OpenGIS related specifications are still under development, our work is also a contribution to the research and development of OpenGIS specifications. Our work can be summarized as follows:
- Subset Simple Feature Implementation for CORBA
Though there exists published Simple Feature Implementation Specification for CORBA, at present no formal Simple Feature Implementation for CORBA has been registered at OGC (until Nov 2002). Our work is a attempting to find the advantages and disadvantages of such implementation specification by making a subset implementation.
- Extensible Map Server for CORBA based on WMS
Web Map Testbed works on the Web Map server interface design and implementation specification based on web technology, WMS “specifies implementation and use of those WMS operations in the HTTP Distributed Computing Platform (DCP). Future versions may apply to other DCPs” [WMS], there is no corresponding Map Service interface design for CORBA. We are working on design and implementation of a similar map service implementation specification for CORBA. Morever, in our proposed specification, map server can not only be Readable but also Writeable with user private data.
- Extensible Feature Server for CORBA based on WFS
Web Map Testbed works on the Web Feature server interface design and implementation specification, there is no corresponding Feature Server interface design for CORBA. We are working on design and implementation of a similar feature server implementation specification for CORBA.
- Wrapped GRASS in component-based distributed application system
Based on our proposed specifications, we implement the map sever and feature server in open source GIS software GRASS. GRASS is a traditional stand-alone GIS software; in NADSS we made it as one distributed map server and feature server which can be used in one distributed computing environment.