Why make donate

Pollen architecture

author : Florian DESBOIS <florian.desbois@gmail.com>
revision : 2773
date : 2009-09-09 12:05:20 +0200 (mer., 09 sept. 2009)
Global architecture

Components

Presentation

The application is based on three distinct global components :

  • pollen-ui : application presentation layer
  • pollen-business : application persistence layer
  • pollen-votecounting : separated module doing vote counting
Application components

UI Component (pollen-ui)

It allows data display to the user. This is our application view. This part is made using Tapestry framework from Apache.

Business component (pollen-business)

The business component is coumpounded of three different comonents :

  • ServicesImpl : Component that implements all the application services
  • DAO : Persistent entities manipulation layer (Creation/Modification/Deletion)
  • Persistence : Component gathering all the persistent entities.

The business component offers six different interfaces/services to the presentation layer :

  • ServiceAuth : Authentication service (for users having an account)
  • ServiceManagerUser : Users management service (for users having an account)
  • ServiceList : Voters list management service (groups, bookmarks,...)
  • ServicePoll : Poll management service : Creation/Modification/Deletion/Moderation...
  • ServiceVote : votes management service (Functionalities available for a voter)
  • ServiceResults : Result management service
  • ServiceComment : Comments management service.

Vote counting component(pollen-votecounting)

The vote counting component is compounded of two different components :

  • VoteCountingExport : Component allowing polls and results exports under every file format (XML by default)
  • VoteCountingExecuter : Component allowing the management of the different vote counting algorithms.

Vote counting component offers two different interfaces/services corresponding to the components presented above :

  • ServicePollExport : result and poll export service, using a standard format.
  • ServiceVoteCounting : vote counting management service.

Maven modules

3 Modules are created to manage those different components :

  • UI : Presentation layer (Tapestry framework)
  • Business : persistence and business layer (Use of ToPIA-Persistence framework)
  • VoteCounting : separated vote counting module