EJB Development using WSAD v5.1


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
   

Duration

3 Days
   
Course Abstract
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.
   
Objectives

Upon conclusion participants will have acquired these skills:

  • 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
   
Class Format Lecture and Lab
   
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.

Course Topics

The following list represents the sections and topics discussed in this virtual instructor-led course offering.

 

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

Session Beans

  • Stateless vs Stateful
  • Bean pooling
  • Serialization
  • Session bean methods
  • Session bean lifecycle
  • JNDI lookup
  • Session Context
  • javax.ejb.SessionBean
  • Deployment Descriptors

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

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

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

Stateful Session Beans

  • Bean pooling
  • WebSphere pooling strategy
  • Passivation & Activation
  • Stateful bean lifecycle
  • ejb-jar.xml file
  • WebSphere application server deployment

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

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 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 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 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

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