geoserver web based configuration implementation...

14
GeoServer Web Based Configuration Implementation Report Submitted To: Program Manager GeoConnections Victoria, BC, Canada Submitted By: Jody Garnett Refractions Research Inc. Suite 400 – 1207 Douglas Street Victoria, BC, V8W-2E7 [email protected] Phone: (250) 383-3022 Fax: (250) 383-2140

Upload: others

Post on 02-Apr-2020

9 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

GeoServer Web Based ConfigurationImplementation Report

Submitted To: Program ManagerGeoConnectionsVictoria, BC, Canada

Submitted By: Jody GarnettRefractions Research Inc.Suite 400 – 1207 Douglas StreetVictoria, BC, [email protected]: (250) 383-3022Fax: (250) 383-2140

Page 2: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 2 -

TABLE OF CONTENTS

TABLE OF CONTENTS........................................................................................................2

TABLE OF FIGURES............................................................................................................3

TABLE OF TABLES..............................................................................................................3

1 INTRODUCTION ...........................................................................................................4

2 WEB BASED CONFIGURATION DESIGN...................................................................5

2.1 DESIGN SUCCESSES ........................................................................................................52.2 DESIGN EXTENSIONS......................................................................................................6

2.2.1 Revised Page Layout ..............................................................................................62.2.2 FeatureType Schema Specification ..........................................................................72.2.3 Validation Framework Extension ............................................................................9

2.3 USER INTERFACE DESIGN RECOMMENDATIONS............................................................. 102.3.1 Separate Page for New Actions .............................................................................112.3.2 Extended Status Reporting ....................................................................................112.3.3 Visual Appearance ...............................................................................................12

3 IMPLEMENTATION RECOMMENDATIONS...........................................................13

3.1.1 Enhanced Authentication Support..........................................................................133.1.2 Move New DataStoreConfig to Session ..................................................................143.1.3 Provide Feature Lock Control...............................................................................14

Page 3: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 3 -

TABLE OF FIGURES

Figure 1 – Initial User Interface Page Diagram................................................. 5

Figure 2 – Revised User Interface Design ........................................................ 6

Figure 3 – Original Catalog Feature Type Design ............................................. 7

Figure 4 – Current Catalog Feature Type Screen.............................................. 8

Figure 5 – Feature Type Configuration Recommendation.................................. 8

Figure 6 – Validation Extension Layer Diagram............................................... 9

Figure 7 – Revised User Interface Page Diagram ............................................ 10

Figure 8 – Recommended Visual Appearance ................................................ 12

TABLE OF TABLES

Table 1 – Validation Processor Data Matrix..................................................... 9

Page 4: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 4 -

1 INTRODUCTION

This document outlines our experience in implementing the GeoServer WebBased Configuration system. Several changes have been made with respect to theGeoServer Web Based Configuration Design Document.

The focus of these User Interface design changes has been:

- To allow specification of attribute type order during FeatureType editing

- The addition of a User Interface for Validation Configuration

- Revised Page layout featuring the separation of the Form Feedback from thestatus of the GeoServer application

The inclusion of the Validation Processor User Interface as part of the Web BasedConfiguration System has resulted in a seamless user experience.

This work has been highly anticipated by the GeoServer user community, and wehave been pleased to provide a 1.2 beta release.

Page 5: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 5 -

2 WEB BASED CONFIGURATION DESIGN

In subsequent sections the following diagram (Figure 1) from the GeoServer WebBased Configuration Design Document will be referred to.

GeoServerStatus

GeoServerManagement

ValidationConfig

SystemConfigWFSConfig WMSConfig

CatalogConfig

logon

Web Feature Server Configuration

Description Contents

Web Map Server Configuration

Description Contents

Data Configuration

Live Status Struts Actions /Servlets

Test Servlet

Live GeoServer Management Validation Configuration

FeatureLockManagement

Live Status

LogFileManagement

GeoServer Configuration

Legend

Pages to be created

Groups of related pages

Groups of similar pages

Gateway to the siteRelationships between pagesand/or components

Page components(content or applicationthat appears on a page)

Page

FeatureTypesStylesNameSpacesDataStores

Figure 1 – Initial User Interface Page Diagram

2.1 Design SuccessesThe design for the GeoServer Configuration System has succeeded in:

- Providing GeoServer Web Based Configuration

- Providing dynamic feedback from the GeoServer application

- Providing a consistent user experience

Page 6: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 6 -

2.2 Design ExtensionsIn several instances we have expanded upon the design outlined in the WebBased Configuration Design Document.

These changes have resulted from:

- An increased familiarity with the Struts Application Framework

- The complexity of FeatureType Schema Specification

- The addition of the Validation Processor to the User Interface

2.2.1 Revised Page Layout

The page layout has been revised to provide a consistent area to report backForm validation errors and Status information.

Web Browser - GeoServer

Http://localhost:8080/geoserver/config

Logo Login Logout Help

Form

Status

Actions

url:

Save XML

To GeoServer

Load XML

Current Location

Tab1 Tab2

Messages

Figure 2 – Revised User Interface Design

This design is expected to undergo a few minor revisions in response to feedbackfrom a graphic design team. In order to respond to these suggestions we maymake use of additional HTML rendering technologies such as Cascading StyleSheets.

Page 7: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 7 -

2.2.2 FeatureType Schema Specification

We had overlooked the need to specify attribute order (Figure 3).

Web Browser - GeoServer

Http://localhost:8080/geoserver/config/catalog

Login Logout HelpCurrent changeshave not beensaved.

CalculateBoundingBox

url:

Save XML

To GeoServer

Load XML

Catalog Configuration

DataStores Namespaces

Submit Reset

Styles

Name:

SRS:

geom_test32118

FeatureTypes

FeatureTypes:

Title:

LatLonBoundingBox:

test postgis-74.27000, 40.50000 -73.80000, 40.94000

This is a test server. It contains somebasemap data from New York City.

road, New York City, TOPPKey Words:

Abstract:

gid:

geom:

Nillable: Occurs:

maxLength=10xs:string 0:1name:

Nillable: Occurs:xs:int 0:1

Nillable: Occurs:gml:PolygonPropertyType 1:1

Delete

geom_testroadlake Edit

New

Figure 3 – Original Catalog Feature Type Design

To accommodate the ordering of Attributes we have made several additions:

- A “default” setting used to control schema generation

- An attribute Select tile with Delete, Move Up and Move Down actions

- New Attribute and Edit Attribute tiles

Page 8: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 8 -

Modifications for Attribute Type ordering are illustrated by the following screencapture (Figure 4).

Figure 4 – Current Catalog Feature Type Screen

This extension allows for the required attribute ordering capability.

Several drawbacks are apparent:

- Attribute specification is visually separated from FeatureType (apparent in thelocation of the submit button above the Attribute Select, New and Edit tiles).

- Only one attribute is visible at a time

It is recommended that the initial design be restored with the inclusion of “Up”,“Down” and “Delete” buttons next to each AttributeType (Figure 5).

Web Browser - GeoServer

Http://localhost:8080/geoserver/config/catalog

Login Logout Help

Title Required

CalculateBoundingBox

url:

Save XML

To GeoServer

Load XML

Catalog Configuration

DataStores Namespaces

Submit Reset

Styles

Name:

SRS:

geom_test

32118

FeatureTypes

FeatureTypes:

Title:

LatLonBoundingBox: -74.27000, 40.50000 -73.80000, 40.94000

This is a test server. It contains somebasemap data from New York City.

road, New York City, TOPPKey Words:

Abstract:

gid:

geom:

Nillable: Occurs Min:

maxLength=100name:

Delete

cite:geom_testpostgis:roadpostgis:lake

Edit

New

New: postgis:river

xs:integer Max: 1 Remove

down

Nillable: Occurs Min: 1xs:integer Max: 1 Remove

Nillable: Occurs Min: 1Gml:PolygonType Max: 1 Remove

down

up

up

postgis: cite:

Figure 5 – Feature Type Configuration Recommendation

Page 9: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 9 -

2.2.3 Validation Framework Extension

The extension of our initial design for the validation processor was accomplishedwithout incident.

The following diagram illustrates the extensions to the GeoServer layer diagramfor the Validation Processor.

GeoServer Application Tier

Web Container Web Tier

geoserver.form

Web Browser Client Tier

HTML Forms

geoserver.action

WMSDescriptionAction

WMSDescriptionForm

geoserver.global

WMS WFS Data

geoserver.config

WMSConfig

cookie(session)

JSP

DTO

geotools.validation

ValidationProcessor

TestSuiteConfig

DTO

TestSuiteForm

TestSuiteEditAction

Catalog

Figure 6 – Validation Extension Layer Diagram

The following table lists the Validation classes and interfaces by package:

Validation Validation DTO Config FormValidationProcessor ValidationConfig

PlugIn PlugInDTO PlugInConfig

TestSuite TestSuiteDTO TestSuiteConfig ValidationTestSuiteNewFormValidationTestSuiteSelectForm

Validation TestDTO TestConfig ValidationTestEditorFormValidationTestNewFormValidationTestSelectForm

Table 1 – Validation Processor Data Matrix

We have maintained a clear separation between the Validation Processor and theGeoServer application through the use of the Catalog API

Page 10: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 10 -

2.3 User Interface Design RecommendationsOver the course of development we have arrived at several recommendations forthe design of the existing user interface application.

These recommendations will be placed in the GeoServer Jira bug tracking system(http://jira.codehaus.org/).

Several of these design recommendations result in a modified applicationworkflow (Figure 7).

GeoServer Configuration

Live GeoServer Management

Data Configuration

GeoServer

GeoServerManagement

GeoServerConfigurationWFS

ConfigurationWMS

Configuration

DataConfiguration

logon

Web Feature Server Configuration

Description

Contents

Web Map Server Configuration

Description

Contents

Live Status Struts Actions /Servlets

Test Servlet

Validation Configuration

FeatureLockManagement

Live Status<<tile>>

LogFileManagement

DataStore Configuration

DataStoreSelect

DataStoreNew

DataStoreEdit

FeatureType Configuration

FeatureTypeSelect

FetureTypeNew

FeatureTypeEdit

AttributeEdit

Styles

Namespace Configuration

NamespaceSelect

NamespaceNew

NamespaceEdit

ValidationConfiguration

TestSuiteSelect/New/Edit

TestSelect/New/Edit

PlugInSelect/New/Edit

Figure 7 – Revised User Interface Page Diagram

Summary of workflow changes:

• Distinct page for Select, New and Edit pages

• Select Page redirects to New Page when empty

• Catalog pages renamed to Data

Page 11: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 11 -

2.3.1 Separate Page for New Actions

By separating the New Actions for DataStore, Namespace and FeatureType wecan reduce the complexity of these already very crowded screens.

In addition we can provide a redirect to the appropriate New Action in the casewhere no content exists to be selected.

2.3.2 Extended Status Reporting

The logs provided by GeoServer configuration provide a nice summary of anyproblems encountered during setup. This information has been included as partof the Configuration pages and is updated during the “to GeoServer” action.

The dataStoreId:typeName used to list configuration problems should belinked to the appropriate Edit page where the problem can be fixed.

As part of this transition Struts can include the error message for display.

Page 12: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 12 -

2.3.3 Visual Appearance

The first cut of the web interface has been focused on functionality, often usingthe default appearance of native Struts widgets.

In the next phase of development we will take command of this process in orderto address any issues raised by the aesthetic review.

During the review process we will be looking for feedback on:

- The efficient use of screen real estate

- The consistent location of Navigation components

- The use of colors, icons and fonts

The emphasis will remain on functionality and efficiency.

Initial thoughts on visual appearance:

• Use a neutral medium background for the page

• Use a distinct color for the current page focus depending on application area:– lighter background for pages dealing with information reporting– darker background for configuration pages

• Uses a darker tile to indicate more detailed parameters

• Keep status, and configuration controls “flush” with this background in ordernot to detract from the current focus

• Modify Actions tile to makes use of a “yellow-sticky” or slight 3D effect

An initial mock up of these changes is show below (Figure 8).Web Browser - GeoServer - Feature Type Editor

GeoServer© Topp Cite Test Server contact: Chris Holmes

Http://localhost:8080/geoserver/data/FeatureTypeEdit.do

Title Required

Actions

url:

Submit Reset

SRS: 32118*Title:

LatLonBoundingBox: -74.27000, 40.50000 -73.80000, 40.94000

This is a test server. It contains somebasemap data from New York City.

road, New York City, TOPPKey Words:

Abstract:

gid:

geom:

Nillable: Occurs Min:

maxLength=100name: xs:string Max: 1

Nillable: Occurs Min: 1xs:integer Max: 1

Nillable: Occurs Min: 1Gml:PolygonType Max: 1

test_postgis .cite .

Load Save Apply

WFS WMSData*

Type Reference: test_postgis : geom_test

Condiguration | Data | FeatureType | Editor Logout

Calculate BBox

Generate Schema

Up

Down

Up

Down

Remove

Remove

Remove

WMS Preview

Cancel

Add count

Figure 8 – Recommended Visual Appearance

Page 13: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 13 -

3 IMPLEMENTATION RECOMMENDATIONS

3.1.1 Enhanced Authentication Support

The existing configuration design depends on a simple access control. Access isrestricted based on the presence of a UserContainer object located in Session.Management of the UserContainer is handled through login and logout actions.

We need to ensure that each Configuration Action provides a login check and anappropriate redirect to the Login page.

Example ConfigAction with Login Check:class MyConfigAction extends ConfigAction { Redirect execute( HttpServletRequest request, ){ if( !isLoggedIn( request )){ return new Redirect(“Login Page”); } UserContainer user = getUserContainer( request ); … return new Redirect(“my.jsp”); }}

This boilerplate code can be removed through the use of enhancing theConfigAction base class.

It is recommend that we modify the base ConfigAction class to provide thelogged-in check in the execute method. Derived classes can make use of acustom execute method that provides the UserContainer as a parameter.

Enhanced ConfigAction with logged-in check:

class ConfigAction extends GeoServerAction { Redirect execute( HttpServletRequest request, ){ if( !isLoggedIn( request )){ return new Redirect(“Login Page”); } return execute(getUserContainer( request ), request ); } Redirect execute( UserContainer user, HttpServletRequest request ){ return null; }}class MyConfigAction extends ConfigAction { Redirect execute( UserContainer user, HttpServletRequest request ){ … return new Redirect(“my.jsp”); }}

Note that the extended execute method has not been made abstract; this allowssubclasses of ConfigAction to implement execute in the usual manner if needed.

Page 14: GeoServer Web Based Configuration Implementation Reportvwfs.refractions.net/docs/WebConfigImplementationReport.pdf · GeoServer Web Based Configuration Implementation Report Submitted

- 14 -

3.1.2 Move New DataStoreConfig to Session

During the process of setting up a DataStore for the first time a DataStoreConfigobject is created and placed under control of DataConfig.

This order of execution always results, at least for a short while, in DataConfigmanaging a DataStore that is incapable of working. It would be preferable tostore the new DataStoreConfig in the UserContainer until such time as it works.

3.1.3 Provide Feature Lock Control

Management of Transaction Web Feature Server locks is recommended by theOGC WFS Specification. Currently GeoServer does not provide a mechanismthrough which Locks can be released manually.

This capability should be added to the GeoServer management page.