Software layers of POS. a) The JSF based presentation layer on top (blue) access the relational database (green) via the Java backend. This backend can be accessed via the classes Controller or LazyDataModel. These classes make use of the DataAccessObject which provides a single access point to the relational database by using object-relational mapping. b) The Controller is responsible for secure CRUD (create, read, update and delete) operations. c) The LazyDataModel is used for providing immutable, filtered, sorted, and paginated collections to the presentation layer.