Project
- Visitor registration
Client
Requirement
Registration of fair visitors organized by Messe München GmbH. Flexible creation of visitor questionnaires. Available as on-line registration or on-site registration in the foyer. Compatibility with the locally installed ticket printers and with the eCommerce application when ordering tickets on-line. Supporting two relational database systems (Oracle and MS SQL Server). Application easily customizable for other customers - apart of MMG.
Solution
During the implementation of this project we encountered three significant problems.
The first was an implementation of mechanism supporting two different database systems used as backing store. Problem has been solved by using Hibernate library as middle layer placed between database and business logic tier. As a result we have got flexible solution that avoids particular vendor lock-in.
Another challenge was the flexible employment with different fairs requirements. We solved this difficulty by creating a very flexible database scheme, as well as applying JSTL templates for pages content implementation. Moreover, we used Spring Web Flow - system allows us to capture logical page flows as self-contained modules that are reusable in different situations.
Yet another problem was to ensure the appropriate efficiency to serve very large numbers of fair visitors. Using the Java platform helped us proper handling performance issues. Java language lets us implement complex caching and pooling mechanisms. Additionally, critical operations were moved into the stored procedures which were written in PL/SQL / Transact SQL.
Furthermore, we have extensively used object-oriented technology and design patterns to provide as flexible solution as possible, to ensure easy adopting the application to the new specific requirements.
Technology
Basic technologies used in project:
- Oracle 9i/10g - RDBMS
- MS SQL Server 2000/2005 - RDBMS
- J2SE 5.0 / J2EE 1.4 - newest version of Java Platform, Standard end Enterprise Edition
- Spring Framework - lightweight application container
- Spring Web Flow - module for definition of page flow within a web application
- Hibernate - object/relational persistence and query service for Java

