OA Framework can be extracted into a series of concentric layers, like an onion.
Each layer only “knows”about the layers below it.The core layer represents the database and the surface layer represents the application pages. In between is a number of business logic and user interface layers. This layering allows for generic code and components to be implemented at the inner layers to maximize their reuse across the outer layers.
For example, attribute validation is implemented at the Entity Object (a BC4J object-oriented representation of a database table in the middle tier) level.