Overview
This course utilizes a combination of instructor-led discussions and interactive workshops to demonstrate the capabilities of IBM’s WebSphere Studio Application Developer v5.1 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: build session, Message and entity EJBs, use the EJB 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 v5.1 and illustrating J2EE design patterns for EJBs.
Prerequisites
Each student should have a thorough understanding of the Java language and use of the WebSphere Studio Application Developer IDE v5.1. Additionally, experience with JavaBeans, relational databases and server-side development concepts is preferred.
Class Format
Lecture and Lab
Audience
Developers and other advanced Java professionals that will be designing, developing and creating enterprise-wide applications using Enterprise JavaBeans and implementing them in the WebSphere v5.1 environment
Learning Objectives
After completing this course, the student should be able to:
- Understand the EJB capabilities of the WSAD
v5.0 for projects and perspectives
- Define and utilize a servlet EJB client and
Enterprise JavaBeans
- Understand the role the session, entity and
Message EJBs for J2EE enterprise applications
- llustrate the role of JMS and message-driven
beans in EJB v2.0
- Create Bean-managed persistent EJBs (BMP)
- Use WSAD to create a Container-managed persistent
EJB (CMP)
- Creation of entity EJBs and defining container-managed
relationships using WSAD RDB mapping wizard
- 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
- Using transactions with EJBs using JTA
- Understand EJB deployment for JAR and EAR
files
- Acquire knowledge of J2EE Design Patterns
and Best Practices for EJBs
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 WSAD
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 setEntityContext, 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
- 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
|