We are focused on developing a flexible, scalable and performing reward platform. To this effect, we have embraced time tested industry standards and paradigmed the platform on MVC architecture. We continuously (and significantly) invest in our technology to make it best of the breed.
Our technology is based on an n-tier J2EE platform, hosted on Apache-Tomcat combination, lightweight POJOs for the business tier, and an Oracle 10g database served by Solaris 10 servers. We have optimized the application by using various industry-wide accepted frameworks such as Struts, Hibernate, OSCache, Log4J and others.
Presentation TierAn adoption of the model-view-controller paradigm, throughout our application, enables a clear separation of responsibilities. We use JSPs for the views, supported by AJAX and smart Java Script usage to provide a rich user experience. The CSS-based branding allows us to brand each program separately, quite easily. The application has multiple layers of validations, starting with client-side validations on the presentation tier. The front end is UTF-8 encoded and W3C compliant.
Business TierThe whole application is divided into 'program specific code' and 'common code', the latter being shared across loyalty programs. This facilitates efficiencies of scale - as we grow, clients benefit instantly from features implemented across the reward platform. The vertical functionality is aptly supported by all horizontal requirements such as auditing, logging, authorization and error handling by usage of frameworks. Loymart™ and Loyshop™ use proxy pattern to call each others’ objects, so that the underlying business logic can vary from one loyalty program to another without affecting the existing programs.
Data TierThe data tier is a mix of Oracle database, external files and data models cached in the server memory for quick access. User’s data is also maintained in the session as soon as the user enters the application. Data integrity, idempotence and security are our continuous focus while managing these various layers.
|