GeoServer Web Based Configuration Design DRAFT. GeoConnections Victoria, BC, Canada

Similar documents
GeoServer Web Based Configuration Design DRAFT. GeoConnections Victoria, BC, Canada

GeoTools Data Store Performance and Recommendations

WFS Design Document. June 18, GeoConnections Victoria, BC, Canada

Validating Web Feature Server Design Document

Transactional Web Feature Server Design

Validation Language. GeoConnections Victoria, BC, Canada

Introduction to GeoServer

ewater SDI for water resource management

udig User friendly Desktop Internet GIS Final Report

Development of Java Plug-In for Geoserver to Read GeoRaster Data. 1. Baskar Dhanapal CoreLogic Global Services Private Limited, Bangalore

Instructions for Caorda Web Solutions T4E/T4A Portal

Physician Data Center API API Specification. 7/3/2014 Federation of State Medical Boards Kevin Hagen

Customer Care Portal User Guide

How to Locate a Response for a Business Opportunity

Design Document The Disease Outbreaks Team

EXERCISE: Publishing spatial data with GeoServer

web.xml Deployment Descriptor Elements

Spatial Data Standards for Facilities, Infrastructure, and Environment (SDSFIE)

Implementing Web GIS Solutions

GeoNode Integration with SDIs and Community Mapping

This document contains the steps which will help you to submit your business to listings. The listing includes both business and contact information.

[ ]..,ru. GeoServer Beginner's Guide. open source^ software server. Share and edit geospatial data with this open source.

SharePoint 2013 End User Level II

GEOCORTEX INTERNET MAPPING FRAMEWORK VERSION RELEASE NOTES

SharePoint 2013 Power User EVALUATION COPY. (SHP version 1.0.1) Copyright Information. Copyright 2013 Webucator. All rights reserved.

MarkLogic Server. Information Studio Developer s Guide. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

Welcome to the Introduction to Mapbender

SKYLINEGLOBE SERVER V7.0 GETTING STARTED

Startup Guide. Version 1.7

[MS-OXWSMSHR]: Folder Sharing Web Service Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

RadBlue Protocol Analyzer Version 6. [Released: 09 DEC 2009]

ConsumerTesting.com Online Applications Supplier Help Document

Configuring a Cognos Resource in Metadata Manager 9.5.0

[MS-OFFICIALFILE]: Official File Web Service Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

Building Web Applications With The Struts Framework

vfire Core Release Notes Version 1.0

Electronic Balloting Portal. User guide for Voters v 1

VERSION 7 JUNE Union Benefits. Employer User Guide Data Collection Tool

WA L KT H R O U G H 1

DOCUMENTUM D2. User Guide

Internet Application Developer

SESM Components and Techniques

XEP-0033: Extended Stanza Addressing

XEP-0009: Jabber-RPC

CARE USER MANUAL REVISION MAY 2017

SkylineGlobe Server. Version Getting Started

User Guide for REP User

Web Device Manager Guide

ADLA PARISH BUDGET APPLICATION FISCAL YEAR Begin by selecting your Internet browser

bispark software, Dharwad

XEP-0104: HTTP Scheme for URL Data

AppScaler SSO Active Directory Guide

How to Login, Logout and Manage Password (QRG)

Jakarta Struts. Pocket Reference. Chuck Cavaness and Brian Keeton. Beijing Boston Farnham Sebastopol Tokyo

Using Free and Open Source GIS to Automatically Create Standards- Based Spatial Metadata

Blackboard 5 Level One Student Manual

Managing System Administration Settings

Closing the INSPIRE Implementation Gap by Contributing to SDI Technology Development

212Posters Instructions

Web-Based Contract Management Services. Global Functions User Guide

AppSpace Installation Guide. Release 4.1.1

INSPIRE roadmap and architecture: lessons learned INSPIRE 2017

[MS-TMPLDISC]: Template Discovery Web Service Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

SharePoint 2013 End User Level II

Workflow Manager. October 2017

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Installation & Configuration Guide Enterprise/Unlimited Edition

Setting Up a MapXtreme 2004 WFS Server

NETCONF Client GUI. Client Application Files APPENDIX

[MS-ASWS]: Access Services Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

InCLUDE Data Exchange. Julia Harrell, GISP GIS Coordinator, NC DENR

GeoTools Steering Document

Distributed Multitiered Application

End User Guide Faculty Folders

Forms iq Designer Training

VMware Skyline Collector Installation and Configuration Guide. VMware Skyline 1.4

Oracle Taleo Cloud for Midsize (Taleo Business Edition)

Markup Languages. Lecture 4. XML Schema

Locate your Advanced Tools and Applications

Guide for Researchers: Online Human Ethics Application Form

Custom Location Extension

GRASP DATA SETTINGS. State of the Art Web-based Management Reporting Product. Recommended screen resolution 1024 x 768

MarkLogic Server. Application Builder Developer s Guide. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

PRISM - FHF The Fred Hollows Foundation

An SDI based on editable nodes

Volunteer Portal User Guide

Kentico Content Management System (CMS) Forms

Upland Qvidian Proposal Automation Single Sign-on Administrator's Guide

ArcGIS for INSPIRE 10.6 Server Extension Installation Guide Content

User Friendly Desktop Internet GIS (udig) for OpenGIS Spatial Data Infrastructures

Causeway ECM Team Notifications. Online Help. Online Help Documentation. Production Release. February 2016

Faculty Web Page Management System. Help Getting Started

Avaya Event Processor Release 2.2 Operations, Administration, and Maintenance Interface

Using the isupport Customer Profile Screen

Self-Service Portal Implementation Guide

Informatica Cloud Spring REST API Connector Guide

DASHBOARD PERFORMANCE INDICATOR DATABASE SYSTEM (PIDS) USER MANUAL LIBERIA STRATEGIC ANALYSIS TABLE OF CONTETABLE OF CONT. Version 1.

DanubeGIS User Manual Document number: Version: 1 Date: 11-Nov-2016

Hosted UC Call Recording User Guide

Installation of Actiheart Data Analysis Suite:

Transcription:

GeoServer Web Based Configuration Design DRAFT Submitted To: Program Manager GeoConnections Victoria, BC, Canada Submitted By: David Zwiers Jody Garnett Richard Gould Refractions Research Inc. Suite 400 1207 Douglas Street Victoria, BC, V8W-2E7 jgarnett@refractions.net Phone: (250) 885-0632 Fax: (250) 383-2140

TABLE OF CONTENTS GEOSERVER WEB BASED CONFIGURATION DESIGN...1 TABLE OF CONTENTS...2 TABLE OF FIGURES...3 INTRODUCTION...4 1 CURRENT GEOSERVER CONFIGURATION...5 1.1 CURRENT CONFIGURATION WORKFLOW...5 2 PROPOSED GEOSERVER CONFIGURATION DESIGN...6 2.1 MEMORY MODEL...7 2.2 SERVICE CONFIGURATION...8 2.3 CATALOG CONFIGURATION... 10 3 GEOSERVER WEB CONFIGURATION USER INTERFACE...11 3.1 MODEL-VIEW-CONTROLLER... 11 3.2 MODIFIED MODEL-VIEW-CONTROLLER... 12 4 GEOSERVER WEB CONFIGURATION DESIGN...13 4.1 USER INTERFACE DESIGN... 14 4.2 GEOSERVER WEB CONFIGURATION WORKFLOW... 15 5 SAMPLE GEOSERVER CONFIGURATION WEB PAGES...16 5.1 WFSCONFIG... 16 5.2 WMSCONFIG... 17 5.3 CATALOGCONFIG... 18-2 -

TABLE OF FIGURES Figure 1 Configuration Overview...6 Figure 2 Model-View-Controller Design Pattern... 11 Figure 3 Modified Model-View-Controller Design Pattern... 12 Figure 4 Interface Flow Diagram... 13 Figure 5 User Interface Template... 14 Figure 6 Interface Page Layout... 15 Figure 7 WFSConfig Page 1: Description... 16 Figure 8 WFSConfig Page 2: Contents... 16 Figure 9 WMSConfig Page 1: Description... 17 Figure 10 WMSConfig Page 2: Contents... 17 Figure 11 Catalog Configuration DataStores... 18 Figure 12 Catalog Configuration Namespaces... 19 Figure 13 Catalog Configuration Styles... 19 Figure 14 Catalog Configuration Feature Types... 20-3 -

INTRODUCTION This document represents our proposal for extending the GeoServer application with a Web Based Configuration system. GeoServer makes use of a series of XML files to store configuration information. To configure the GeoServer application these files are edited and the server restarted. This is often a time consuming and frustrating process. The GeoServer configuration process will be improved on two fronts: Web Based User Interface STRUTS based web interface, using Tiles to for a consistent layout. Server State Configuration will be separated from the Server State. An exciting new capability of this system will be the dynamic configuration of the GeoServer application. By allowing the configuration to be modified as the GeoServer application is running user will get immediate feedback and ease the initial frustrating of installation. - 4 -

1 CURRENT GEOSERVER CONFIGURATION GeoServer has recently changed its configuration as part of a Web Map Server integration effort. As such the current design is of recent vintage and sparsely documented. 1.1 Current Configuration Workflow Load a series of configuration XML files into: ServerConfig WMSConfig: Web Map Server information WFSConfig: Web Feature Server information (used in the GetCapabilites) CatalogConfig: FeatureType and Namespace information The existing system has the data stored in multiple classes all found in the org.vfny.geoserver.config package. Each class has three main purposes: to store data required by the application to provide data to the application to populate configuration data from XML files The configuration data is imported into the system exactly once at startup. The data is then served to the application in various forms. In most cases, it is not possible to modify application configuration dynamically as GeoServer is running. The exception occurs in the CatalogConfig class, where references to XMLSchema files are passed to the DescribeFeatureType response. - 5 -

2 PROPOSED GEOSERVER CONFIGURATION DESIGN To address the limitation of the existing GeoServer Configuration System we intend to: Separate out the Configuration Model from the GeoServer application Separate out Loading Configuration from the Configuration Model Allow saving of the Configuration Model Although this work will initially make use of the existing GeoServer configuration XML files we may need to store additional information or make use of alternate storage formats. An example would be storing additional FeatureType Schema information as the metadata in the database. Here we intend to provide a basic system overview of the portion of Geoserver being affected. The portion shown in Figure 1 represents what is currently the configuration module in package org.vfny.geoserver.config. The Application module represents the remainder of the Geoserver, where the interface into the Application remains the same as that defined for the configuration module. WFS WMS Catalog GeoTools2 init config GeoServer Configuration Memory Model Load Save Struts ActionForm Web Browser Forms Shape Database XML cookie Figure 1 Configuration Overview - 6 -

2.1 Memory Model The memory model will allow us to complete a separation of concerns between the data being stored, the importing of the data, and the use of the data. Since the GUI will be updating this information on the fly we have adopted the Model View Controller (MVC) pattern. This will allow the GUI and the Application to view the data at the same time. The controller portion of the model is to be completed by; the Init portion at the system start-up, and; the modifications made by the GUI. The Memory model classes will consist of a set of data classes. These classes will be Beans, and will provide full access to all the data. This is important to allow the GUI to implement dynamic configurations. This is one of the important changes from the existing design. We will be implementing a layer of indirection between the Application and the Memory model, as shown in Figure 1, which will restrict access to the memory model from the application to current levels. We will be collecting the Init functionality from the current constructors and collapsing this into a cohesive module. This will not affect the current data access permissions, as they currently do not exist. The WFS, WMS, and Catalog Modules are intended as an interface to the Application. We envision these modules to contain more than some simple access routines. At the very least the Catalog module will create the data sources in the same way as they are created in the DataStoreConfig class. We intend to extract similar duplicate functionality from the Application to place it in the appropriate module. The code below has been included to share a sample memory model. In this model the Catalog, Global, WMS and WFS classes as these classes represent the base of the model. - 7 -

2.2 Service Configuration 2.2.1 Web Map Server Model public class WMSModel { private static final String WMS_VERSION = "1.1.1"; /** WMS spec specifies this fixed service name */ private static final String FIXED_SERVICE_NAME = "OGC:WMS"; private static final String[] EXCEPTION_FORMATS = { "application/vnd.ogc.se_xml", "application/vnd.ogc.se_inimage", "application/vnd.ogc.se_blank" }; private Date updatetime = new Date(); private Service service; } 2.2.2 Web Feature Server Model public class WFSModel extends Service { public static final String WFS_FOLDER = "wfs/1.0.0/"; public static final String WFS_BASIC_LOC = WFS_FOLDER + "WFS-basic.xsd"; public static final String WFS_CAP_LOC = WFS_FOLDER + "WFS-capabilities.xsd"; private String describeurl; private Service service; } 2.2.3 Service Model public class ServiceModel { private boolean enabled = true; private String servicetype; private String onlineresource; private URL url; private String name; private String title; private String _abstract; private List keywords; private String fees; private String accessconstraints = "NONE"; private String maintainer; } - 8 -

2.2.4 Global Model public class GlobalModel { private static final Logger LOGGER = Logger.getLogger("org.vfny.geoserver.config"); private Level logginglevel = Logger.getLogger("org.vfny.geoserver").getLevel(); private int maxfeatures = 20000; private boolean verbose = true; private int numdecimals = 8; private Charset charset; private String baseurl; private String schemabaseurl; private static final String CONFIG_DIR = "WEB-INF/"; private static final String DATA_DIR = "data/"; private Contact contact = null; } 2.2.5 Contact Model public class ContactModel { private String contactperson; private String contactorganization; private String contactposition; private String addresstype; private String address; private String addresscity; private String addressstate; private String addresspostalcode; private String addresscountry; private String contactvoice; private String contactfacsimile; private String contactemail; } - 9 -

2.3 Catalog Configuration 2.3.1 Catalog Model public class CatalogModel { private Map datastores; private Map namespaces; private Map features; private Map styles; private NamespaceSupport defaultnamespace; } 2.3.2 DataStore Model public class DataStoreModel { private String id; private NamespaceSupport namespace; private boolean enabled; private String title; private String _abstract; private Map connectionparams; } 2.3.3 Feature Type Model public class FeatureTypeModel { private DataStore datastore; private Envelope latlongbbox; private int SRS; private FeatureSchema schema; private Map styles; private String name; private String title; private String _abstract; private List keywords; } 2.3.4 FeatureTypeSchemaModel public class FeatureTypeSchemaModel { private String name; private String pathtoschemafile; private String schemabase; private List schemaelement; } public class FeatureSchemaElement { private String name; private boolean nillable; private int minoccurs; private int maxoccurs; private String type; private Map restrictions; } - 10 -

3 GEOSERVER WEB CONFIGURATION USER INTERFACE This section contains information about the GeoServer Web Configuration User Interface. The intended workflow and user interface design is presented. The proposed new GUI will allow a user to create the GeoServer XML configuration files using a friendly web-based interface. The GeoServer Web Configuration User Interface will provide a configuration for WFS, WMS and Catalog systems. The GeoServer development team has provided guidance in the selection of the STRUTS application framework. We will explore the design of the STRUTS framework and the implications for the GeoServer Web Configuration User Interface. 3.1 Model-View-Controller Model-View-Controller is a traditional design pattern used in Object-Oriented design since the early days of Smalltalk. User Actions Controller State Change View Selection State Query View Change notifcation Model Figure 2 Model-View-Controller Design Pattern Model-View-Control has several advantages: Separation of concerns between the Model, View, and Controller Uses notify/subscribe protocol and the Observer pattern between Model and View Allows multiple Dynamic Presentations Consolidate Control For web based development strict MVC cannot be used due to limitations of the HTTP protocol. The notify/subscribe notification cannot be used and server applications cannot push change notification to the web client. - 11 -

3.2 Modified Model-View-Controller The STRUTS Application Framework makes use of a modified Model-View- Controller design. View Controller Model Presentation Layer Control Layer Application Logic Figure 3 Modified Model-View-Controller Design Pattern To address the limitations of the MVC design STRUTS, and indeed many web applications, make use of a flattened Model-View-Control design. In which all model-view communication is funneled through the controller. - 12 -

4 GEOSERVER WEB CONFIGURATION DESIGN Each configuration area of the interface will be processed through the ActionForm. The ActionForm class acts as the Controller in STRUTS based applications. The configuration information will be stored in memory using a series of Java Beans representing our Configuration Model. WFS Interface WFS JavaBean WMS Interface Action Form WMS JavaBean Catalog Interface Figure 4 Interface Flow Diagram Catalog JavaBeans - 13 -

4.1 User Interface Design STRUTS makes use of a framework called Tiles, which allows for the separation of web page layout from content. As a starting place we will be making use of the following layout. Web Browser - GeoServer Logo url: Http://localhost:8080/geoserver/config Current Location Login Logout Help Tab1 Tab2 Status To GeoServer Save XML Load XML Form Actions Figure 5 User Interface Template Features of this layout: Divided into relevant pages accessible through tabs at the top of the screen GeoServer status information updates are contained in the top of the left Global Operations are displayed at the left-middle Local actions are displayed in the bottom-middle The current form is also displayed - 14 -

4.2 GeoServer Web Configuration Workflow The basic layout of the configuration interface is presented in figure 6. loginpage loggedinmenu ValidationConfig Description SystemConfig WFSConfig Contents Related Pages DataStores WMSConfig CatalogConfig Namespaces Description Styles Contents FeatureTypes Related Pages Related Pages Figure 6 Interface Page Layout Once the user is logged in, they have the option of accessing the WFS configuration, the WMS configuration or the Catalog configuration. - 15 -

5 SAMPLE GEOSERVER CONFIGURATION WEB PAGES 5.1 WFSConfig The WFS configuration is divided into two pages, Description (Figure 7) and Content (Figure 8). Web Browser - GeoServer url: Http://localhost:8080/geoserver/config/wfs Web Feature Server Configuration Current changes have not been saved. Description Contents Login Logout Help Name: FreeFS Title: The Open Planning Project Basemap Server To Geoserver Save XML Load XML Access Constraints: Fees: Maintainer: Key Words: NONE NONE The Open Planning Project WMS, TEST, NY, NEW YORK Abstract: This is a test server. It contains some basemap data from New York City. Submit Reset Figure 7 WFSConfig Page 1: Description Web Browser - GeoServer url: Http://localhost:8080/geoserver/config/wfs Web Feature Server Configuration Current changes have not been saved. Description Contents Service Type WFS Login Logout Help Enabled Online Resource http://www.openplans.org/ URL http://localhost:8080/geoserver To Geoserver Save XML Load XML DescribeURL Feature List Feature 1 Feature 2 Feature 3 Namespace foo foo foo Create Feature Edit Feature Submit Reset Figure 8 WFSConfig Page 2: Contents - 16 -

5.2 WMSConfig The WMS configuration is almost identical to the WFS configuration. The Contents page features an updatetime field instead of a describeurl field. Web Browser - GeoServer url: Http://localhost:8080/geoserver/config/wms Web Map Server Configuration Current changes have not been saved. Description Contents Login Logout Help Name: FreeWMS Title: The Open Planning Project Basemap Server To Geoserver Save XML Load XML Access Constraints: Fees: Maintainer: Key Words: NONE NONE The Open Planning Project WMS, TEST, NY, NEW YORK Abstract: This is a test server. It contains some basemap data from New York City. Submit Reset Figure 9 WMSConfig Page 1: Description Web Browser - GeoServer url: Http://localhost:8080/geoserver/config/wms Web Map Server Configuration Current changes have not been saved. Description Contents Service Type WMS Login Logout Help Enabled Online Resource http://www.openplans.org/ URL http://localhost:8080/geoserver To Geoserver Save XML Load XML UpdateTime Feature List Feature 1 Feature 2 Feature 3 Namespace foo foo foo Create Feature Edit Feature Submit Reset Figure 10 WMSConfig Page 2: Contents - 17 -

5.3 CatalogConfig Common Elements located at the top of each page: A List of available Objects An Edit button New and Delete buttons for list management A Form providing Object definition Many of the form elements are dynamically generated from DataStore or FeatureType metadata. 5.3.1 DataStores DataStore definition makes use of the GeoTools DataStoreFactorySPI to provide a list of available DataStores in a select control next to the New Button. Web Browser - GeoServer url: Http://localhost:8080/geoserver/config/catalog Catalog Configuration Current changes have not been saved. To create a feature, you must enter at least one datastore, namespace and style. DataStores Namespaces DataStores: Styles bc_roads bizkaia.sde FeatureTypes New Edit Delete arcsde Login Logout Help To GeoServer Save XML Load XML Datastore ID: Enabled: Namespace: Description: Server: Port: User: Password: bizkaia.sde cgf sample road ArcSDE geodatabase localhost 5151 sde ***** Submit Reset Figure 11 Catalog Configuration DataStores The contents of the form are DataStore dependent. The above form illustrates the needs of an ArcSDE DataStore while a Shapefile DataStore will simply need a URI. - 18 -

5.3.2 Namespaces Web Browser - GeoServer url: Http://localhost:8080/geoserver/config/catalog Catalog Configuration Current changes have not been saved. To create a feature, you must enter at least one datastore, namespace and style. DataStores Namespaces Namespaces: Namespace ID: Styles bc topp (default) topp FeatureTypes New Edit Delete Login Logout Help To GeoServer Save XML Load XML URI: Default: Prefix: http://www.openplans.org/topp topp Submit Reset Figure 12 Catalog Configuration Namespaces 5.3.3 Styles Web Browser - GeoServer url: Http://localhost:8080/geoserver/config/catalog Catalog Configuration Current changes have not been saved. To create a feature, you must enter at least one datastore, namespace and style. DataStores Namespaces Styles: ID: Styles thin outline thick outline (default) lake forest thick outline FeatureTypes New Edit Delete Login Logout Help To GeoServer Default: Save XML Filename: styles/polyshp.sld Load XML Submit Reset Figure 13 Catalog Configuration Styles - 19 -

5.3.4 FeatureType The FeatureType form is dynamically generated from the schema information provided by GeoTools. A single action, calculate bounding box, has been provided. Web Browser - GeoServer url: Http://localhost:8080/geoserver/config/catalog Catalog Configuration Current changes have not been saved. DataStores Namespaces FeatureTypes: Styles geom_test road lake FeatureTypes New Edit Delete Login Logout Help To GeoServer Save XML Load XML Calculate BoundingBox Name: SRS: Title: LatLonBoundingBox: Key Words: Abstract: geom_test 32118 test postgis -74.27000, 40.50000-73.80000, 40.94000 road, New York City, TOPP This is a test server. It contains some basemap data from New York City. name: xs:string Nillable: Occurs: 0:1 maxlength=10 gid: xs:int Nillable: Occurs: 0:1 geom: gml:polygonpropertytype Nillable: Occurs: 1:1 Submit Reset Figure 14 Catalog Configuration Feature Types FeatureType Schema configuration is not completely defined using widgets in our initial user interface. This is due to the complexity and open-ended nature of the XMLSchema specification used to describe FeatureTypes. A text area has been provided to allow advanced users to the opportunity to make full use XMLSchema. This approach does not limit the power of advanced users and may be safely ignored by those new to GeoServer. If any text is provide in the text area it is assumed to be an extension of the named type generated from the GeoTools2 schema information. From the example above: <xs:element name="geom_test.name" nillable="true" minoccurs="0" maxoccurs="1"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:maxlength value="10"/> </xs:restriction> </xs:simpletype> </xs:element> - 20 -