New York
University
Computer
Science Department
Courant
Institute of Mathematical Sciences
Session 14:
Final Exam Project Specification
Course Title: Extreme Java Course
Number: g22.3033-007
Instructor: Jean-Claude Franchitti Session: 14
Introduction:
Based on the current state of EJB technology today, there are three possible approaches to EJB development: (1) hand-code everything, (2) hand-code the bean(s) and the deployment descriptor and (3) generate most of the bean(s) and the deployment descriptor using a tool or a graphical environment. The goal of the final exam project is to apply one of these approaches to add persistence to a Java application service.
It is recommended to use the EJB MOO framework
provided for the course assignments as a basis for the final exam project, and
to extend the Java application service you have been working on so far as part
of the course assignments 1-4. As an alternative, you can pick another Java
application of equivalent complexity. Your selected application must operate on
top of an EJB application server, and must manipulate XML data. The final exam
project focuses on adding support for persistence to your selected application using either one of the
three approaches mentioned earlier. Both bean and container managed persistence
should be demonstrated. The focus of the final exam project is on server-side
business and database logic. As a result, it is recommended to leverage off of
previously developed client interfaces such as “rich” clients, web clients,
and/or Connected Devices user interfaces. In other words, no additional
client-side work is expected as part of the final exam project.
Students
should follow the "real-life" application architecture development
approach suggested in class. In real projects, the application, application
infrastructure, and technology infrastructure are analyzed, designed, and
developed in parallel. In this final exam project, students should select a
technology infrastructure of their choice (i.e., Windows 98/NT/2000/XP or
Solaris 5.8 on i5.nyu.edu, and Sun’s JDK 1.2.2, or 1.3). They should then work
with an EJB application infrastructure (a.k.a., framework) used in assignments
#3, and # 4 (i.e., Weblogic 6.0 or equivalent).
Software
Required:
·
J2SE
1.4 (1.3), and J2EE 1.3 (1.2.x) as needed
·
Web
Browser (as required)
·
Web
Server (as required)
·
Servlet
Engine (as required)
·
EJB
Application Server (BEA WebLogic 6.0, or open source frameworks such as JBoss)
·
EJB
development tools (e.g., IBM EJBMaker, BEA WebGain Studio, VisualAge for Java, etc.)
·
A
Java IDE of your choice
Questions
1.
Preparation
phase: Select the technology and application infrastructure components. Deploy
and test the EJB application infrastructure (i.e., clients, EJB application
server). This preparation phase should be straightforward for students who
leverage off of the setup work they did in their course assignments.
2.
Add
support for persistence to your selected Java application service. If you are
extending your chat room application, you could implement a small “Session
Manager” using a combination of EJB Session and Entity Beans. In this case, the
“Session Manager” will be responsible for keeping track of the XML information
being manipulated by your Java application service. You should clearly document
your design choices, and should implement persistence support using either one
of the following three approaches:
2.a. Use Session, and Entity
Bean with CMP. In this approach you will need to hand-code the bean and the
deployment descriptor.
2.b. Use Session, and Entity
Bean with BMP. In this approach you will need to hand code database access and
related bookkeeping. You should clearly document the advantages and drawbacks
of BMP versus CMP in the context of your application. Comparison criteria
should include runtime performance characteristics, time to market, and
low-cost application maintainability.
2.c. Generate most of the bean and the deployment descriptor using a tool or a graphical environment of your choice (e.g., IBM EJBMaker, BEA WebGain Studio, VisualAge for Java, etc.)
3.
You
should turn in a complete report documenting your application, and detailing
your architecture, design, and final exam project solution.
4.
Extra
credit question: as per the material covered in session 12 and session 13, there
are various ways to store XML data persistently. Also, Javaspaces and PJama are
other approaches to supporting persistence in enterprise applications that go
beyond using JDBC and J2EE CMP. You should experiment with related approaches
and demonstrate an alternative way to add persistence to your EJB-based Java
application service. Note that most of the existing XML database solutions are
for early adopters. Also, the current release of PJama available from the Sun
website is targeted to Solaris. The format of your extra credit submission is
open, and could be as simple as a short report or as sophisticated as a
complete documented program implementation.
5.
Extra
credit will also be given for designs/implementations and/or reports, which are
particularly creative.
Deliverables
Grading
Final
exam projects will be graded on a maximum scale of 10 points. Your grade will
be based equally on:
a.
The
overall quality of your documentation.
b.
The
understanding and appropriate use of Java technologies.
c.
Your
ability to submit working and well-commented code.
d.
Extra
credit may be granted for solutions that are particularly creative.