Backend components in oskari-server
There are three different web applications for Oskari backend functionality at the moment:
webapp-mapis the basis for Oskari backend functionality. It produces the map pages and handles AJAX requests.
servlet-printouthandles PDF/PNG print functionalities and print preview images.
transporthandles most of the WFS operations.
The backend components are layered as services, controls, interfaces (though only
webapp-map uses this extensively at the moment).
Service modules should be common libraries usable in any application. The actual business logic for Oskari operations should be in these modules.
service-basehas some common helpers and domain classes which are used throughout Oskari backend.
service-permissionis a generic authorization lib for deciding who gets to see/do what
service-searchis a generic search lib that can be extended by adding and registering search channels
service-maphas most (maybe a bit too much) of the business logic for servicing the Oskari functionalities
service-controldefines the control/routing structures/interfaces for control-layer to build upon.
shared-test-resourceshas some common helpers/templates to help testing
Control modules build on top of the service layer.
control-baseis the basis for all control-modules and has most of the basic AJAX handlers needed by the Oskari frontend.
control-basecontains some very specific functionalities that should be separated into separate control-extensions (for example analysis and thematic maps support)
control-myplaceshas AJAX funtionality related to myplaces functionality.
control-examplehas example implementations for AJAX functionalities required by Oskari but usually overridden by platform specific functionalities such as user and content management.
content-resourceshas tools, templates and scripts for populating and upgrading the database
- Handles AJAX requests made by Oskari frontend
- Parses request parameters for input values to be used on service invocations (ActionParameters is not )
- calls one or more services to do business logic
- format a response based on service response
The interface-modules build on top of the control-modules. Basically an HTTP interface with reference implementations for:
- HTTP Servlet:
oskari-liferay/portlet-map-example(deployable to Liferay Portal)
- Handling user sessions
- Generating an ActionParameters object based on incoming request abstracting/normalizing the request for control layer
- Forwarding the request to control layer
- Oskari frontend
Application servers - Oskari-map
Case ELF (front-servlet-postgresql)
All in one:
- Proxy: apache
- oskari-map: Jetty
Case OskariVM (Ubuntu)
All in one:
- Proxy: Nginx
- Oskari-map + Geoserver + Transport: Jetty
All in one:
- Proxy: HAProxy + Apache
- Oskari-map: Tomcat + Liferay
- Geoserver + Transport + Printout: Jetty
- Oskari frontend with custom modifications
- Custom backend with Scala
Last modified: Tue Mar 07 2017 13:56:13 GMT+0200 (EET)