1.3 Persistence layers and alternatives
"A layered architecture defines interfaces between code that implements the various concerns, allowing a change to the way one concern is implemented without significant disruption to code in the other layers."
"Layers communicate top to bottom. A layer is dependent only on the layer directly below it... Each layer is unaware of any other layers except for the layer just below it."
"Different applications group concerns differently, so they define different layers. A typical, proven, high-level application architecture uses three layers, one each for presentation, business logic, and persistence..." In addition to these layers, there are the Database and Helper/Utility classes.
About four implementation options are listed for the persistence layer: Hand-coding a persistence layer with SQL/JDBC, serialization, EJB entity beans, object-oriented database systems and a snub for XML persistence.