|Technologies||JAX-RS, EJB3.1, JMS, JPA, JAXB, COMET, Apple Push Notification Service, PostgreSQL|
The GigCrasher server is a full blown JEE6 three-tier enterprise application. It ran on a glassfish installation backed by a postgresql database.
The presentation tier uses JAX-RS implemented by jersey to create REST webservices consumed by the GigCrasher clients. All calls can be done using JSON or XML for the exchanged data. For serializing the input and output entities from and to XML or JSON JAXB and Jackson are used. In order to support notifications on other platforms than the iPhone COMET-techniques are used provided by the atmosphere-framework.
The application tier is constructed of several Enterprise Java Beans which provide all the services needed for the presentation tier. To allow some asynchronous processing many tasks are sourced out to some Message Driven Beans, which leads to higher throughput rates. The application tier handles also the notification system. It holds the connections to the Apple Push Notification Services using the java-apns library and sends notifications for new events via these connections.
The data tier uses the JPA provided by hibernate. It consists mainly of some Entity Beans representing the data used by the server and DAO services deployed as Stateless Session Beans.