Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
The persistence layer will be implemented using JPA with Hibernate as the persistence provider. JPA is a standard that makes it easier to switch persistence providers. JPA annotations will be used to map our domain objects into persistent entities (for example, database tables). JTA (Java Transaction API) will be used for managing database transactions with BTM (Bitronix transaction manager— http://docs.codehaus.org/display/BTM/Home) as the transaction manager implementation.
The presentation layer will use Spring MVC framework to define the behavior of the screens. Spring MVC was chosen because of its simplicity. The actual screens will be implemented as traditional JSP (Java Server Pages). Tomcat servlet container version 6.X will host our application.