Architecture
The architecture is similar to that of my previous one – ZEUS, a weather forecasting system in Singapore Environment Agency. The main design goal is to provide a light-weight application environment to the users. MVC architecture with some proper J2EE design pattern ( e.g. Delegate, Dao, Service Locator ) is used to scale, perform and be able to re-use the common component in case if there is any new functionality being proposed in the future without jeopardizing the overall system architecture.
The presentation tier is served by portlets, servlets and java server pages.
The business tier is the application server hosted with the business components and application specific interface to the data tier. It is implemented in J2EE technologies and some open source framework (e.g. Spring, Struts).
The persistence tier provides data services by the Oracle via a series of DAO interface, the ORM framework (iBatis) is required to persist the data in POJO.
Design Pattern
Context Objects: application context is used to across the application for information transfer and configuration.
Application Controller: the controller provides a single point of entry to the application and as a mediator to dispatch the request to the business delegate.
Business Delegate: a delegate serves as a façade to a series of business process and components and it partitions the application base on the functional requirements.
Service Locator: provides simple interface to clients and reduces the complexity and increases reuse.
Value Object: also can be called as Data Transfer Object.
Dao Access Object: used to provide query and update to the data source and generate VO which return to the business delegate.
Open Source Frameworks
Nothing unusual, the OSFs are IBM Struts Portlet framework, Spring, iBatis. Why iBatis? Yes, developers who like Hibernate might doubt that. Simplicity is the biggest advantage of iBatis. There is little to learn that, even for a DBA of our clients without knowledge of Java. Otherwise, most of DBA trust SQL statements and stored procedures which configured by themselves and proved with better performance than H-SQL.
(TBC)