Enterprise Java Development@TOPIC@

Chapter 21. eSport Project 2 Description

N-Tier Application

21.1. Purpose
21.1.1. Goals
21.1.2. Objectives
21.2. Technical Overview

The project will continue along two parallel paths; eLeague and eClub. However, this time we will add several new Maven project types; EJB, EAR, WAR, Client (library) and (remote) Test. We will add all new project types to eLeague. We will add (or migrate to) the WAR type to eClub. These new modules will become siblings to your existing eLeague Impl -or- BO, DAO, and BLImpl leaf modules. For eClub, you have the option of:

The new projects will depend on your legacy work. The remote interface of the EJBs will also require specific design of what gets externalized to the client. The remote clients do not share the same address space we had in Project 1 and cannot lazily access relationships. We also cannot afford to serialize the entire contents of a database full of related information. Data Transfer Objects (DTOs) will be part of the EJB remote interface design.

You have finished a significant amount of eLeague during Project 1; the O/R mapping and core business logic of a non-trivial business model. You will now host the data access tier and business logic within EJB component(s). These EJB component(s) will directly supply the EntityManager, control transaction boundaries, supply a local interface, and other features (like security access control) used in the follow-on project. These EJB component(s) may directly implement an RMI remote and JAX-RS web interfaces. However, we will focus the bulk of our remote interfaces on modern WEB-based, REST-like, JAX-RS remote interfaces. Most of the remote access will be provided from the WEB tier using JAX-RS and a browser-based Web UI. You are to deploy eLeague using an EAR and eClub using a WAR.

The business logic for eClub will require additional work as well. With a remote interface for eLeague in hand and the ability to either simulate or operate with a live instance, we can now complete the rest of the the business logic that will also be hosted within an EJB tier to keep from significantly impacting any tests from project 1. The testing of eClub can always assume that a local instance of eLeague can be deployed locally at any time.

You may develop your Web UI in an alternate environment. However, it must be deployed as part of the application that runs within JBoss/Wildfly.