Enterprise Java Development@TOPIC@
This course focuses on enterprise computing technologies using Java Enterprise Edition (Java EE). The course focuses on how to build multi-tier distributed applications, specifically addressing the following areas: web access, business logic, data access, and applications supporting Enterprise Service technologies. The web access tier will focus on development using Servlets and JSP with an emphasis on integrating the web tier with enterprise applications. For the Business Logic Tier, session beans for synchronous business processing and message-driven beans and timers for asynchronous business processing will be described. The Data Access tier discussion will focus on data access patterns and the Java Persistence API. Finally, enterprise services will be described, including the Java Naming and Directory Interface (JNDI), Dependency Injection for Java (JSR-330), Context and Dependency Injection for JavaEE (CDI/JSR-299), Bean Validation, Remote Method Invocation (RMI), Java Transaction API (JTA), Java EE Security, and Java Message Service (JMS).
Using modern development tools, commercial persistence providers, and application servers, students will design and implement several significant programming projects using the above mentioned technologies and deploy them to a Java EE environment that they will manage.
Prerequisite: 605.481 Distributed Development on the World Wide Web or equivalent
Strong Java programming skills are assumed.
Students should be prepared to spend between 10-16 hours a week outside of class.
"Enterprise Java Beans 3.1, 6th Edition", Andrew Lee Rubinger and Bill Burke, 2010, O'Reilly, ISBN-10: 0596158025; ISBN-13: 978-0596158026
A Servlet/JSP Text
"Core Servlets and JavaServer Pages (JSP)", Marty Hall and Larry Brown, 2003, Prentice Hall PTR; ISBN 0130092290
This course will make heavy use of development tools (Git, Maven 3, JUnit, Log4j, and Eclipse), a database (H2 Database Engine), persistence provider (Hibernate), and application server (JBoss EAP 6/AS 7). Students are strongly encouraged to establish a local development environment. Detailed instructions for setup are part of the first exercise (Development Environment Setup).
The core of the EJB 3.1 content is covered in the primary text for the course (and competing texts as well as online). Associated topics (database schema, JDBC, Web Tier, JMS, and tools) are not covered in the course text, but documentation will be provided through course slides, examples, and tutorials. A list of online references can be found on this site. Each lecture will supply a list of references for that technical area.
100 >= A >= 90 > B >= 80 > C >= 70 > F
Table 1.1.
| Assessment | % of Semester Grade |
|---|---|
| Class/Newsgroup Participation | 10% |
| Project Startup/Sanity Check | 5% |
| Project 1 | 30% |
| Project 2 | 30% |
| Project 3 | 25% |
Projects will be done individually and graded 100 though 0 based on posted project grading criteria.
Class/newsgroup participation will be based on instructor judgment whether the student has made a contribution to class to either the classroom or newsgroup on a consistent weekly basis. A newsgroup contribution may be a well-formed technical observation/lesson learned, a well formed question that leads to a well formed follow up from another student, or a well formed answer/follow-up to another student's question. Well formed submissions are those that clearly summarize the topic in the subject, and clearly describe the objective, environment, and conditions in the body. The instructor will be the judge of whether a newsgroup contribution meets the minimum requirements for the week. The intent of this requirment is to promote public collaboration between class members.
There will be one required project startup/sanity check submission and will be primarily graded on a done/not-done basis. The intent of this requirement is to promote early, more-focused productivity and exchange of artifacts between the student and instructor.
Late projects will be deducted 10pts/week late, starting after the due date/time, with one exception. A student may submit a single project up to 4 days late without receiving approval and still receive complete credit. Students taking advantage of the free first pass should still submit an e-mail to the instructor and grader(s) notifying them of their intent.
Projects must be submitted via e-mail to the instructor and grader(s) with source code in a zip file with a README. Top level, pre-built artifacts (e.g., EARs) must also be included in the submission. All source code must be written to portably compile in the grader's environment using Maven 3. This will be clearly spelled out during the course.
Class attendance is strongly recommended, but not mandatory. The student is responsible for obtaining any written or oral information covered during their absence.
Collaboration of ideas and approaches are strongly encouraged. You may use partial solutions provided by others as a part of your project submission. However, the bulk usage of another students implementation or project will result in a 0 for the project. There is a difference between sharing ideas/code snippets and turning in someone else's work as your own. When in doubt, document your sources.
I am available at least 20min before class, breaks, and most times after class for extra discussion. I provide detailed answers to project and technical questions through the course newsgroup. You can get individual, non-technical questions answered via e-mail. I usually have all questions posted by 9pm answered by COB that evening. Students needing further assistance are also welcome make other arrangements during the week.