The application can be broken down simply into three layers.
- Presentation layer
- Logic Layer
- Data Layer
Presentation
The top-most level of the application is the user interface. The main function of the interface is to translate tasks and results to something the user can understand. Cashbook uses Java object driven configuration files to generate the user interface.
Logic
This layer coordinates the application, processes the commands, makes decisions and evaluations, and performs calculations. It also moves and processes data between the presentation and data layers. This is a group of Java objects that performs the core functionality of Cashbook, creating journals and transactions, statement upload, payment file generation, etc. Other modules can be plugged into this layer to provide additional or client requested functionality. Depending on the particular functionality this layer may reside with the presentation layer or on a separate server using remote method invocation (RMI: http://java.sun.com/j2se/1.5.0/docs/guide/rmi
/spec/rmiTOC.html ) to communicate with the client.
Data
Here information is stored and retrieved from a database or file system. The information is then passed back to the logic layer for processing, and eventually passed back to the presentation layer. This layer allows Cashbook to view its own database, all ERP data and “staging” databases as a homogeneous database. As the primary source of data will be from databases all connections will be via Java Database Connectivity API (JDBC: http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/index.html). Cashbook adds extra functionality to the API to map data on the “fly”. For each ERP system, SAI has/will defines rules and data accessor objects that map a ERP’s database tables and fields to Cashbook’s own data layout.