Biodiversity Atlas project Site

Home‎ > ‎

Technical Architecture

The project has 3 main parts: Flex Frontend, Appengine backend and the Geospatial database and server. Each of it is described following.

Flex Frontend

This part is in charged of providing a rich user interface to browse and edit distributions. This is what most users will see. It is a Flex application that uses Google Maps as base map provider and overlay the distributions. 

Appengine Backend

To make the project scalable we have choosen to use Google AppEngine. It provides first of all of a hosting service for the Frontend. Then it also has the database were distributions are registered, users stored and so on. We use Python with PyAMF to communicate with the Flex frontend. The application can be considered very SOA oriented with clear services serving what the frontend needs and a future set of services to create an API for programmers to interact with the app.


Geospatial database and server

Appengine does not provide a real spatial database and neither apis for creating maps dynamically from data. Therefore we have in a hosting service a PostGIS database installed with Geoserver installed on top of it. The database is in charge of storing the distributions geometries and basic metadata. We rely on Appengine to store the metadata but the actual geospatial data is stored here.


How this works altogether?


So, the normal use would be something like this:

  1. A user access www.biodiversityatlas.com and Appengine returns the Flex Frontend that is loaded in the user browser.
  2. In the Flex frontend the user searchs for distributions. This searches hit the services provided in Appengine, the data is gathered from DataStore API.
  3. The Flex Frotend needs to visualize some distirbutions. It request maps to the geospatial server in the hosting service. Geoserver (the geospatial service) query PostGIS and gets the geometries. Create maps, for example in PNG, and send them to the Flex Frotend.
  4. The Flex Frotend visualize the distributions maps together with Google maps as a based.
There is more stuff going on actually, but this is kind of the principle.




 

Recent site activity