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
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).
· 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
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.
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.