JVJB2 - Enterprise JavaBeans
| Categories |
Java Training, Programming Training, Internet Training |
| Duration |
5 days (35 hours) |
| Pre-requisites |
JV1 - Java Programming and JV2 - Advanced Java Programming, and solid Java development experience are required. Some experience with distributed systems development, especially object-based systems such as Java RMI, CORBA, or COM is a plus. Some knowledge of JDBC is helpful in understanding the EJB persistence model. Understanding of XML is a plus.
|
|
|
|
| Courseware |
JVJB2-OBJ-01 (398 pages) |
| Price |
$1975 |
| Notes |
The J2EE reference implementation is used for all demo and lab work, and we emphasize portable EJB 2.1 code.
|
This Enterprise JavaBeans course offers the Java programmer a grounding in the Enterprise JavaBeans (EJB) architecture and the skills to develop EJBs effectively for enterprise development efforts. After completing this course, students will understand: the role of Enterprise JavaBeans in enterprise-level systems development, and its relationship to other J2EE technologies such as JSP, servlets, JMS, CORBA, and XML; the EJB architecture: the role of the EJB container in mediating contact between the client and the bean, transaction control, authorization control, and the importance of object pooling; the development cycle for EJBs: Java source code and compilation, XML deployment descriptors, EJB compilation and deployment, and use by an application server; the role of entity beans, their lifecycle and interactions with the container; BMP and CMP entity beans and understand the importance of each of the entity-bean methods in assisting the container; stateless and stateful session beans and effectively manage sivation/activation cycles in pooling; the bean context interfaces that assist with persistence code and correctly establish bean-to-bean communication; message-driven beans and their unique nature within the EJB architecture; 2.x container-managed persistence and intelligent design choices based on the practical implications of BMP and CMP features; 2.x CMP entity bean relationships; the EJB transaction architecture and transaction attributes of EJB systems, using both
declarative and programmatic approaches; the EJB security architecture and roles and authorization attributes of EJB systems, again, using both declarative and programmatic techniques; SOAP-based Web services using stateless session beans and JAX-RPC, and the relationship between JAXM and message-driven beans; EJB timers in bean code; how to tune EJB application servers and EJB code for performance and apply design patterns that are important to common distributed systems and EJB systems in particular.
Module 1: Introduction to Enterprise JavaBeans
The EJB Architecture
EJB and the Java Enterprise Platform
EJB and CORBA
EJB Costs and Benefits
What is an EJB?
Entity, Session, and Message-Driven Beans
EJB Roles
The EJB Container
The Home and EJB Objects
EJB Development
Remote Interface
Home Interface
Bean Class
Remote, Local, and Web-Service Component Interfaces
Multiple Maintenance Points
Using JNDI in EJB
Entity Beans: Bean-Managed Persistence
Persistence Mechanism
Instance versus Incarnation – Similarities to the CORBA PSS
EntityBean Interface and Responsibilities
Entity Bean Interactions, Lifecycle and State Transitions
Primary Keys
EntityContext Interface and Discovering the Primary Key
Creation and Removal
Load and Store
Finder Methods
Eager vs. Lazy Persistence
Entity Beans: Container-Managed Persistence
Two Contracts for Persistence
Declaring a Data Source
Declaring Persistent Fields
Implementing Finder Methods
What the Container Does
1.1 Architecture
2.0 Architecture
CMP Limitations
Stateless Session Beans
Session Beans and the Presentation Layer
Stateful vs. Stateless Sessions
Stateful Session Bean Interactions, Lifecycle and State Transitions
Stateless Session Bean Interactions, Lifecycle and State Transitions
Finding Entity Beans
Passing Value Objects
Stateful Session Beans
Stateful Session Beans
Object Pooling and Passivation/Activation
Activation and Passivation
Choosing Between Stateful and Stateless
Module 2: Effective Enterprise JavaBeans
Message-Driven Beans
Asynchronous Messaging
The Java Message Service
Message-Driven Beans
Lifecycle of a Message-Driven Bean
Implementing Message-Driven Beans
Messages and Transactions
Message-Driven Beans and Transactions
Persistence
BMP and CMP
Container-Managed Relationships
EJB Query Language
Declaring Finder Methods
Declaring Select Methods
Calling ejbSelect Methods from Bean Code
Home Methods
Design Considerations
Security
The Need for Security
Authentication
Authorization Model
Declarative Authorization and Roles
Abstract Roles and Application Assembly
Actual Roles and Deployment
Programmatic Authorization
Identifying the Caller
Transactions
The Need for Transactions
ACID Properties
Declarative Transactions
Transaction Attributes and Isolation Levels
Scenarios
Programmatic Transactions
EJB Context and Monitoring the Transaction
SessionSynchronization Interface
Web Services and EJB
SOAP-Based Web Services
WSDL
JAX-RPC
EJB 2.1 and JAX-RPC
Session Beans as Web Service Endpoints
How It Works – Build Time and Runtime
The Bean’s Service Endpoint Interface
SOAP as an RMI Transport
Adding a SOAP Interface to a Session Bean
Generating From WSDL
“Gotchas”
J2EE and Web Services
Exception Handling
Java Exceptions
Remote Exceptions
EJB Exceptions
Application Exceptions
Propagation to the Client
System Exceptions
Automatic Transaction Rollback
The Timer Service
Uses for Timers
The EJB Timer Service
Service, TimedObject and Timer Interfaces
Timer Handles
Creating a Timer
Implementing ejbTimeout
Timers and Transactions
Best Practices
The Bean Environment
Expressing UML Designs for EJB
Creation and Finder Semantics
Designing for Latency
Value Object Pattern
Local vs. Remote Beans and the Façade Pattern
Transaction Models
When Not to Use EJB
Flyweight Pattern versus EJB Pooling
Entity Bean Performance Optimizations
Appendix A. Learning Resources