This course introduces EJB (Enterprise Java Beans) technology and its parent J2EE (Java 2 Enterprise Edition) framework. EJB is a server-side architecture for building and deploying distributed, secure and portable Java components to be used in enterprise applications. Topics covered include session beans, entity beans, message-driven beans, EJB containers, and primary services such as JNDI, JTS, JMS and security.
NOTE: All references to the J2EE reference implementation (J2EEri) may be replaced with a particular EJB application server (e.g. WebSphere, WebLogic) based on customer preference.
Audience
Java programmers interested in developing client/server and web applications that use EJBs.
Prerequisites
Experience with JDK 1.2 including RMI, JSPs and servlets, JavaBeans, relational database theory, SQL, JDBC, Collections. Serialization, I/O and XML.
Course Duration – 5 Weeks
At the Course Completion
At the completion of this course, the student will be able to:
-
Use EJB technology to build two-tier and three-tier applications
-
Understand the strengths and weaknesses of the EJB architecture
-
Demonstrate the use of proven design and development techniques for building efficient and high-performance EJB applications
-
Understand when and when not to apply EJB technology
COURSE OUTLINE
Introduction and Overview
Monitors and Object Request Brokers
EJBs Defined
EJBs vs. JavaBeans
J2EE Reference Implementation (J2EEri)
JNDI Environment Naming Context (JNDI ENC)
Motivation for JNDI
JNDI Architecture
JNDI API
J2EEri JNDI Life Cycle
EJB Architecture
Client Types
EJB Types
J2EE Application Design
J2EE Roles and Responsibilities
Entity EJBs
Entity EJB Applications
Entity EJB Interfaces
Entity EJB Exceptions
EJB Home Beans
Entity EJB Life Cycle
Entity EJB Roles and Responsibilities
J2EEri Entity EJB Tasks
JNDI Environment Naming Context (JNDI ENC)
Motivation for JNDI ENC
JNDI ENC Discussion and Examples
J2EEri JNDI ENC Tasks
Session EJBs
Motivation for Session EJBs
Session EJBs vs. Entity EJBs
Stateful vs. Stateless EJBs
Session EJB Interfaces
Stateless Session EJB Lifecycle
J2EEri Stateless Session EJB Lifecycle
J2EEri Stateless Session EJB Tasks
Stateful Session EJB Tasks
J2EEri Stateful Session EJB Tasks
EJB Exception Handling
EJB Exceptions
Application Exceptions
System Exceptions
EJB Container Exception Handling
EJB Client Exception Handling
EJB Client API
EJB Clients
EJB Object Interface and Methods
EJB Home Interface and Methods
Motivation for Handles
Handle Interfaces
Using Handles
EJB Persistence
Motivation for Bean-Managed Persistence (BMP)
BMP Interfaces and Database Manipulation
BMP vs. Container-managed Persistence (EJB 1.1 CMP)
J2EEri EJB Persistence
Guidelines for Persistence Model Selection
EJB Transactions
Database Transactions
Motivation for EJB Transactions
Container-managed Transactions (CMT) vs. Bean-managed Transactions (BMT)
CMT Transaction Attributes
Commit and Rollback
Explicit Rollback
J2EEri EJB CMT Tasks
Java Transactions APT
J2EEri EJB BMT Tasks
EJB Browser Clients
J2EE Application Design Choices
JSPs and EJBs
J2EEri EJB Browser Client Tasks
EJB Security
EJB Security Model
Security Context
Roles and Responsibilities
Permissions
Security Identities
Security Domains
Principal Realms
Runtime Security Enforcements
EJB Deployment
Motivation for EJB Deployment
EJB Deployment Descriptor
Bean Provider's Role and Responsibilities
Application Assembler's role and Responsibilities
EJB 2.0
EJB 2.0 Persistence Model
EJB Query Language
Message-Driven Beans
JMS and EJB 2.0
Building Scalable EJB Systems
EJB Strengths and Weaknesses
What to look for in and EJB Server
Key Design Patterns for EJB Success
A Blueprint for J2EE Success
|