Overview
This course utilizes a combination of instructor-led discussions and interactive workshops to demonstrate the capabilities of IBM’s Rational Application Developer v6.0 IDE for the development of enterprise applications using Enterprise JavaBeans in an N-tier architecture. The implementation of these components and their access via servlet clients will be discussed. Each student will learn the following: creation of session, Message and entity EJBs, use the Universal Test Client, create container-managed and bean-managed entity beans, connect EJBs using transactions, understand the role of EJB containers, utilize activation and passivation, JNDI usage and the deployment of enterprise JAR and EAR components using IBM’s WebSphere Application Server.
Prerequisites
Each student should have a thorough understanding of the Java language and use of the Rational Application Developer IDE. Additionally, experience with JavaBeans, relational databases and server-side development concepts is preferred.
Class Format
Lecture via WebEx and hands-on Labs using remote access machines
Audience
Developers and other advanced Java professionals that will be designing, developing and creating enterprise-wide applications using Enterprise JavaBeans with the Rational Application Developer.
Learning Objectives
After completing this course, the student should be able to:
- Understand the EJB capabilities of the RAD v6.0 for projects and perspectives
- Define and utilize the interface between servlets and Enterprise JavaBeans
- Understand the role the session, entity and Message EJBs for J2EE enterprise applications
- Depict the relational mapping tool within RAD for building Entity beans
- llustrate the role of JMS and message-driven beans
- Create Bean-managed persistent EJBs (BMP)
- Use RAD to create a Container-managed persistent EJB (CMP)
- Creation of entity EJBs and defining container-managed relationships
- Demonstrate the use of Universal Test Client for testing EJBs
- Discuss the implementation of EJBs using EJS servers and the role of the EJB containers
- Illustrate the deployment of enterprise applications to WebSphere Application Server within RAD environment
- Demonstrate the usage of transactions with EJBs using Java Transaction API
- Understand EJB deployment for JAR and EAR files
Course Duration
3 Days
Course outline
Enterprise Development
- Enterprise application role
- Component architecture
- JavaBeans vs EJBs
- N-tier architecture
- Enterprise development motivation
- EJB vs CORBA comparison
- Distributed Proxy model
- Remote Method Invocation
- J2EE overview
EJB Overview
- EJB benefits
- EJB portability foundation
- EJB container services and responsibilities
- Enterprise Bean types
- Session vs Entity vs Message beans
- Stateful vs Stateless Session
- CMP vs BMP Entity beans
- EJB Container role
- Development within RAD
Entity Beans
- Role of Entity beans
- Entity bean lifecycle
- Object relational mapping
- Activation/Passivation
- EJB call-back methods
- Container-managed persistence
- Bean-managed persistence
- Deployment Descriptors
Entity
Bean Development
- javax.ejb.EnterpriseBean
- EntityBean
interfaces
- Finder methods
- Container-managed methods
- Depict the usage of
set EntityContext,
ejbLoad, ejbFind, ejbCreate,
ejbStore, ejbRemove, etc
- CMP Deployment Descriptors
- Map.mapxmi metadata
- Bean-managed persistence
EJB Architecture
- Underlying EJB architecture
- Marshalling & Unmarshalling
- Role of RMI and CORBA
- Parameter passing
- Distributed garbage collection
- Remote object activation
- Stubs vs Skeletons
- Object serialization
- Transient vs non-Transient
- Home object and interfaces
- Remote object
EJB Transactions
- Transaction model
- Flat vs Nested
- Programmatic vs Declarative demarcation
- EJB Transaction attributes
- Java Transaction API
- UserTransaction
- Transactional methods
- Isolation levels
- Transaction problems: Dirty Read,
Unrepeatable
Read and Phantoms
Session Beans
- Stateless vs Stateful
- Bean pooling
- Serialization
- Session bean methods
- Session bean lifecycle
- JNDI lookup
- Session Context
- javax.ejb.SessionBean
- Deployment Descriptors
Stateless Session Beans
- Characteristics
- Bean pooling
- Bean lifecycle
- Stateless vs Stateful
- Home, Remote and Bean classes
- EJB generated code
- EJB Container deployment
- Universal Test Client testing
- EJB deployment code
- Test client dialog
Stateful Session Beans
- Bean pooling
- WebSphere pooling strategy
- Passivation & Activation
- Stateful bean lifecycle
- ejb-jar.xml file
- WebSphere application server deployment
Message Beans
- JMS & JMS providers
- Asynchronous messaging:
Point-to-Point and Publish/Subscribe
- JMS Destinations
- Connection Factories
- JMS Listeners
- WebSphere JMS providers
- MQSeries clustering
- Message bean lifecycle
- onMessage method
- Deployment Descriptor file
EJB Security
- WebSphere Security model
- Authentication/Authorization
- Delegation and Trusting
- Network Deployment implementation
- LDAP vs Local OS registries
- Security Collaborators
- Security role mapping
- RunAsmode
- RunAsIdentity
- HTTP single sign-on
EJB Best Practices
- Participant roles
- Best practice strategies
- EJB placement
- Development practices:
coding, modeling and documentation
- EJB modeling
- EJB and Legacy integration
- Enforcing reusability
- Deployment strategies
Persistent Best Practices
- When to utilize Entity beans
- CMP vs BMP
- Stored Procedures
- Object Relational Mapping
- Use with legacy database design
- Strategies for resolving legacy problems
|