Projekt
- Rejestracja odwiedzających
Klient
Założenia
Rejestrowanie odwiedzających imprezy targowe organizowane przez MMG. Elastyczne tworzenie kwestionariuszy dla poszczególnych imprez. Dostępność zarówno przez internet jak i na miejscu, w holu. Współpraca z systemem drukującym bilety podczas rejestracji na miejscu oraz z systemem obsługującym płatność internetową podczas rejestracji zdalnej. Obsługa dwóch systemów baz danych (Oracle i MSSQL) Łatwość dostosowywania dla innych klientów niż MMG.
Rozwiązanie
Podczas realizacji tego projektu napotkaliśmy na trzy zasadnicze problemy. Pierwszym napotkanym przy implementacji, było umożliwienie wymiennego korzystania z dwóch zasadniczo różnych systemów baz danych (Oracle i MSSQL). Rozwiązaniem było wykorzystanie biblioteki Hibernate jako warstwy pośredniej między aplikacją a bazą danych. Umożliwiła ona w stosunkowo prosty sposób uniezależnienie kodu głównych modułów OBR od konkretnej implementacji bazy.
Drugim z problemów było sprostanie zróżnicowanym wymaganiom poszczególnych targów oraz umożliwienie elastycznej modyfikacji aplikacji dla potrzeb różnych organizatorów. Udało nam się to osiągnąć dzięki stworzeniu bardzo elastycznego schematu bazy danych, oraz oparciu generowania stron HTML o mechanizm template'ów JSTL. Drugim ważnym narzędziem wpływającym na łatwość definiowania poszczególnych imprez jest Spring Web Flow. Pozwala on na elastyczną konfigurację przepływów pomiędzy stronami aplikacji webowych.
Trzecim problemem było zapewnienie odpowiedniej wydajności aplikacji wystarczającej do obsługi wielotysięcznej rzeszy odwiedzających. Użycie platformy Java ułatwiło nam sprostanie tym wymaganiom. Pozwala ona na szybką i wydajną implementacje mechanizmów typu cache i pooling, które w znaczącym stopniu umożliwiły nam bezproblemową obsługę ruchu generowanego przez odwiedzających.
Technologia
Podstawowymi technologiami użytymi do realizacji tego projektu są:
- Oracle 9i/10g - RDBMS
- MS SQL Server 2000/2005 - RDBMS
- J2SE 5.0 / J2EE 1.4 - najnowsza wersja platformy Java
- Spring Framework - kontener aplikacji
- Spring Web Flow - biblioteka służąca do elastycznego definiowania przepływów w aplikacjach WWW
- Hibernate - wygodne i wydajne narzędzie do mapowania obiektowo-relacyjne

