The presentation layer is primarily implemented using Struts/Servlets/JSP. DWR is also used to handle AJAX requests. This layer is responsible for transforming a user's request into service calls in the Business Logic layer.
The Business Logic layer is responsible for most of the business processing. Components of this layer are called services, and they contain methods called by the presentation layer and/or other services. Services are deliberately agnostic of the underlying hardware/software. For example, the Business Logic layer should not contain code specific to a particular DBMS system or other storage system. All storage operations are handled by the Datamodel layer.
The Datamodel layer consists of components called Data Access Objects (DAOs). It is responsible for defining a set of elementary operations specific to an underlying storage system. This layer of abstraction (theoretically) allows developers to decouple business logic code from platform-specific code, leading to easier maintenance.
All DAOs and Services are managed with Spring. Besides the configurability afforded by Spring's Inversion of Control, it also manages transactions within KFS.