CS 412 - Enterprise Software Systems

 Moodle Page

Course Description

This course starts out by introducing the concept of Enterprise Software by going over its unique properties and requirements. The popular and widely-accepted J2EE specification is used throughout the course to demonstrate the basic elements of Enterprise Software Systems.

The course will draw comparisons between different software development approaches in terms of design, initial development cost, maintenance, troubleshooting, complexity and training.  J2EE/Application server technologies will be compared with the other commonly used technologies.
 

We will discuss how the J2EE spec is shaping the software industry and analyze the factors that are making many companies invest so much in this new technology.

This course particularly concentrates on the middle tiers that are located between the Database Management System and the Presentation Tier. Remote Method Invocation (RMI), Enterprise Java Beans (EJB), Persistence and Transactions are some of the main topics that will be covered in the course.

Slides

  1. Overview of JEE (From JavaPassion.com)
  2. Persistence
  3. Overview of EJB
  4. Session Beans in EJB 2.x
  5. EJB 3.0
  6. Transactions (JPA Transactions)
  7. Servlet Basics
  8. Advanced Servlets
  9. Session Management
  10. Jsp Basics
  11. Web Tier
  12. Enterprise Java Beans
  13. Persistence
  14. Advanced Topics
  15. Clustering
  16. EJB 3.1 Proposed Changes

Resources

 


Books

Topics in Detail:

Java and J2EE
Multi-tiered application development
Analyzing application components
Understanding J2EE spec
J2EE standard services
Application servers
Vendors: IBM WebSphere, BEA WebLogic, JBoss
Promise: scalability, client agnosticism, server management, development
Java Servlets and JSP
Remote Method Invocation (RMI)
Remote interfaces
Declaring Implementing
Stubs and Skeletons
RMI Clients
Enterprise Java Beans
Entity Beans
Session Beans
Statefull
Stateless
Entity Beans vs Session Beans
Message-Driven Beans (MDB)
EJB Container Functionality
Scalability using resource pooling
The life of an entity bean
The life of a session bean
Transactions
Container-managed transactions (CMT)
Bean-managed transactions (BMT)
Persistence
Container-managed persistence (CMP)
Bean-managed persistence (BMP)
EJB Passivation/Activation
Transactions
Atomicity
Two-Phase Commit Protocol
Local vs Distributed Transactions
Optimizations, removing two-phase commit
Isolation levels and associated problems
Serializable, Read-Committed, etc.
Phantom reads, etc.
Bean-managed transactions
Container-managed transactions
Mandatory, Required, RequiresNew, Supports, NotSupported,Never
Nested transactions