WA1319 EJB Programming with Rational Application Developer (RAD) v6.0 Training and Courseware Course Outline

1. Introduction to Rational Application Developer 6

  • Eclipse Platform
  • The WebSphere Studio Product Family
  • Rational Web Developer
  • Rational Application Developer
  • Key Features in RAD v6.0
  • WebSphere Studio Application Developer Integration Edition
  • WebSphere Studio Enterprise Developer
  • Views, Perspective and Editor Areas
  • Basic Operations with RAD Views and Perspectives
  • The Java Perspective
  • The Debug Perspective
  • Navigator View
  • Package Explorer
  • Outline View
  • Task and Problems View
  • Build and Validation
  • Import and Export Project
  • Project Interchange Feature
  • Code Completion, Templates and Snippets
  • Searching
  • Setup Compiler Class Path
  • JRE Switching
  • Refactoring
  • Changing Class Name
  • Changing Method Name
  • Changing Variable Name
  • Generalizing a Variable
  • Moving a Class to a Different Package
  • Extracting Code to a Method
  • Pull-up and Push-down Methods
  • Migrating Workspace from WSAD v5.x
  • Migrating J2EE Applications
  • J2EE Migration Wizard
  • Summary
 

2. J2EE Overview

  • Introduction
  • Why Do We Need J2EE?
  • J2EE Components
  • J2EE Technologies
  • Useful J2SE Technologies
  • Application Artifacts
  • J2EE Architecture
  • J2EE 1.4 Version Levels
  • J2EE Software Packaging
  • Deployment Descriptor
  • Enterprise Archive (EAR)
  • Web Modules and WAR
  • EJB Modules
  • Building Module Dependency
  • Objectives
  • Project Explorer
  • Servers View
  • The J2EE Perspective
  • The Web Perspective
  • RAD Project Structure
  • Create an Enterprise Application
  • Setup Utility JAR
  • Create an EJB Project
  • Create a Web Project
  • Setup Dependent JAR Files
  • Create Server Instance and Server Configuration
  • Configure Server Instance
  • Add an Enterprise Application Project to the Test Server
  • Start and Stop the Server
  • Test a Servlet
  • Debug a servlet
  • Test a JSP
  • Debug a JSP
  • Automatic Code Reloading
 

3. Enterprise JavaBean (EJB) Overview

  • Objectives
  • Needs for EJB
  • Distributed Computing
  • Distributed Transaction
  • Distributed Security
  • What are EJBs?
  • Main Characteristics of EJBs
  • EJB Remote Method Call
  • EJB Architecture Components
  • EJB Client
  • EJB JAR File
  • EJB Server
  • EJB Container
  • EJB Container - Persistence
  • EJB Container - Transaction
  • Enterprise Java Beans
  • Session Beans
  • Entity Beans
  • EJB Classes and Interfaces
  • Basic Components of Entity and Session Beans
  • EJB Home Interface
  • An EJB Home Interface Example
  • EJBHome Object
  • EJB Remote Interface
  • Remote Interface Example
  • EJB Local Home Interface
  • EJB Local Interface
  • Remote EJB Objects
  • Local EJB Objects
  • EJB Implementation Class
  • Remote v. Local EJBs
  • EJB Application Development
  • Deploying Enterprise Beans
  • Major Components of Deployed EJBs
  • Summary
 

4. Session Bean

  • Objectives
  • Session Beans
  • Stateless Session Bean
  • Stateful Session Bean
  • Components of Session Beans
  • Home Interfaces
  • Remote interface
  • Local interface
  • Service Endpoint Interface (SEI)
  • The Session Bean Class
  • ejbCreate() Method
  • Business Methods
  • A Simple Stateless Session Bean Example
  • A Simple Stateful Session Bean Example
  • Registering Artifacts in ejb-jar.xml
  • Session Context
  • EJB Context
  • EJB Context
  • Session Bean Lifecycle
  • Lifecycle - Stateless
  • Lifecycle - Stateful
  • Lifecycle Stateful
  • Lifecycle - Stateful
  • Concurrency Issues
  • Invoking Session Beans from Client Application
  • Looking Up a Home Object
  • EJB Reference
  • Create an EJB Object
  • Calling Business Methods
  • IBM RAD for EJB Development
  • Developing a Session Bean using RAD
  • EJB Project in RAD
  • Create an EJB project
  • Examine the EJB project
  • Create a Session Bean
  • Code methods
  • Promote methods to interfaces
  • Deploying EJBs
  • EJB Deployment Descriptor
  • EJB Deployment Descriptor
  • EJB Deployment Descriptor
  • EJB Deployment Descriptor
  • Generating Deployed Code
  • Run on server
  • JNDI Explorer
  • Test the home interface
  • Test the component interface
  • Exporting EJB JAR
  • EJB JAR File Structure
 

5. Entity Bean

  • Objectives
  • Entity Beans
  • Persistence
  • Entity Bean Components
  • Container
  • Container
  • Container
  • Primary Key Class
  • A Primary Key Class Example
  • (Remote) Home Interface
  • (Remote) Home Interface
  • (Remote) Home Interface
  • Local Home Interface
  • Remote Interface
  • Local Interface
  • Entity Bean Class
  • Entity Instance
  • Entity Object Lifecycle
  • Bean Instance Lifecycle
  • Bean Instance Lifecycle
  • Bean Instance Lifecycle
  • Bean Managed Persistence
  • Container Managed Persistence
  • Writing BMP Bean
  • Writing BMP Bean
  • Writing BMP Bean
  • Writing BMP Bean
  • A BMP Bean Example
  • A BMP Bean Example
  • A BMP Bean Example
  • Writing a CMP Bean
  • Indicating Persistent Fields
  • Writing a CMP Bean
  • Writing a CMP Bean
  • Example Bean Class
  • Deployment Descriptor Settings
  • Writing finder methods
  • EJB Query Language
  • EJBQL: Simple examples
  • EJBQL: SELECT clause
  • EJBQL: SELECT clause
  • EJBQL: FROM clause
  • EJBQL: WHERE clause
  • EJBQL: WHERE clause
  • EJBQL: WHERE clause
  • EJBQL: WHERE clause
  • EJBQL: WHERE clause
  • EJBQL: Watch out!
  • Using EJBQL in a CMP bean
  • Business Methods
  • EntityContext
  • Writing CMP Beans
  • Defining and Mapping CMP Fields
  • Developing Entity Beans in RAD
  • Adding a CMP Entity EJB
  • Adding a CMP Entity EJB
  • Adding a CMP Entity EJB
  • EJB Deployment Descriptor
  • Adding a CMP Entity EJB
  • Add an EJBQL query
  • Add an EJBQL query
  • Add an EJBQL query
  • Add an EJBQL query
  • Import Database Schema
  • Creating a database mapping
  • Choosing a backend
  • Choosing a mapping type
  • Specifying the mapping
  • EJB Relationships
  • EJB 2.0 Relationships
  • WebSphere Extensions
 

6. Message-Driven Beans

  • Objectives
  • The Trouble with RMI/IIOP
  • Messaging to the Rescue
  • Messaging Features
  • Message-Oriented Middleware
  • Messaging Domains
  • Publish/Subscribe
  • Point-to-Point
  • Java Message Service
  • JMS Programming: Overview
  • JMS Programming: Overview
  • The JMS Interfaces
  • JMS Programming: Example
  • JMS Programming: Example
  • JMS Programming: Example
  • Integrating JMS and EJB
  • Message-Driven Beans Are Different From Other EJBs
  • Message-Driven Beans Cannot Talk to Their Clients
  • Message-Driven Beans are Stateless
  • Durable Subscription
  • Message-Driven Bean Interfaces
  • javax.ejb.MessageDrivenBean
  • javax.jms.MessageListener
  • javax.jms.Message
  • Lifecycle
  • Example: Message Counter
  • Class MessageCounter
  • Class MessageCounter
  • Class MessageCounter
  • Working With Messages
  • Processing the Message
  • Deployment Descriptor Entry
  • Binding the Queue or Topic
  • Transactions
  • Security
  • Load Balancing
  • Clustering and Topics
  • Clustering and Queues
  • A Few Tips
  • Poison Messages
  • How the Programmer Can Avoid Poison Messages
  • How the System Administrator Can Avoid Poison Messages
  • Building a Response
  • Potential Problems
  • A Simple Alternative
  • Type Checking and Messages
  • Testing Message-Driven Beans
  • Summary
  • References
 

7. EJB Transaction

  • Transaction Management
  • Object Transaction
  • EJB Transaction Basics
  • Transaction Propagation
  • Client Managed Transaction
  • Bean Managed Transaction
  • Container Managed Transaction
  • Transaction Outcome
  • Vetoing a Transaction
  • Vetoing a Transaction
  • Transaction Isolation
  • Isolation Level
 

8. EJB Exception

  • Objectives
  • Use of Exception
  • Exception Types
  • System Exception
  • System Exception
  • Application Exception
  • Bean Class
  • Container
  • Client
  • Standard Exceptions
  • Local EJBs
  • Summary
 

9. J2EE Security

  • Security Functionality
  • What Can You Secure in J2EE?
  • Challenge Mechanism
  • Basic Challenge
  • Client Certificates
  • Form-based Authentication
  • User Registry
  • J2EE Authorization Model
  • Protecting Web Resources
  • Protecting EJB Methods
  • EJB Delegation Policies
  • Delegation Scenario
  • Defining Roles at Application Level
  • Goals of the EJB Security Specification
  • Setting Method Permission
  • Defining Roles
  • Specify Accessible Methods for a Role
  • Disable Security Check
  • Excludes List
  • Security Identity (Delegation Policy)
  • Programmatic EJB Security
  • Role Reference
  • Setting WebSphere Security
  • Configure Global Security
  • Standalone Application Server
  • Network Deployment
  • Enable Global Security
  • Configure LTPA Authentication Mechanism
  • Configure Local OS Registry
  • Configure the LDAP User Registry
  • Assign Administrative Rights
  • Protect the Application First
  • Extra Installation Steps
  • Map Security Roles to Users/Groups
  • Select Users for a Security Role
  • Run-As
  • Unprotected Methods
 

10. EJB Timer Service

  • Container Managed Timer Service
  • EJB Timer Service
  • Interaction between Timer Service and EJB
  • Timer Service API
  • The TimerService Interface
  • Creating a Timer
  • Getting All Timers
  • The TimedObject Interface
  • The Timer Interface
  • Example Of A TimerBean
  • Timer and Transaction
  • Limitations of EJB Timer Service
 

11. Business and Integration Tier Patterns

  • Objectives
  • Business Delegate Pattern
  • How it works
  • Data Transfer Object Pattern
  • DTO Example (Output)
  • DTO Example (Input)
  • Role of DTO in MVC
  • Access Beans
  • Types of Access Beans
  • Data Class Access Bean
  • Data Class Programming Model
  • Access Bean Constructor
  • Generating Access Beans
  • Generating a Data Class
  • Generating an EJB Factory
  • Using EJB Factory and Data Class
  • Deleting the Access Bean
  • Value Object Pattern
  • Multiple Value Objects
  • Best Practice derive EJB from the Value Object
  • Composite Entity Pattern
  • An example
  • Class Diagram
  • How the client interacts
  • Value Object Assembler
  • Value List Handler
  • How does it work?
  • How does it work - continued
  • Design Considerations
  • Service Locator
  • Data Access Object (DAO)
  • DAO Implementation Guidelines
  • Service Activator
  • MDB- Integrating JMS and EJB
  • Message-Driven Beans Are Different From Other EJBs
  • Message-Driven Beans are Stateless
  • Message-Driven Bean Interfaces
  • Example: Message Counter
  • Class MessageCounter
  • Class MessageCounter
  • Class MessageCounter
  • Processing the Message
  • Deployment Descriptor Entry
  • Summary
 

12. Other EJB Patterns

  • Objectives
  • Session Fa ade
  • Session Fa ade Pattern
  • Session Fa ade
  • Session Fa ade
  • Session Facade
  • Miscellaneous Details
  • Message Fa ade Pattern
  • Message Fa ade
  • Message Fa ade
  • Message Fa ade
  • Message fa ade pattern shortcomings
  • Version Number pattern
  • Version Number Pattern
  • Sequence Blocks
  • Stored Procedures for Autogenerated Keys
  • Fast Lane Pattern
  • Summary
 

13. Basic Administration

  • Topics
  • Administration Mechanism
  • Administration Roles
  • Administration Roles
  • Administration Clients
  • A Look at the Console
  • Creating a Profile
  • wasprofile command (Command line)
  • Managing an Application Server
  • Enable Server Process Restart
  • Sample inittab contents
  • Basic Application Server Configuration
  • Configure the JVM
  • Web Container Transport Chain
  • Configure Transport Chain
  • Configure Session Management
  • Configure an EJB Container
  • Preparing to Host Applications
  • Resource Scope and Variables
  • Configure a Virtual Host
  • Configure a JDBC Provider
  • Select JDBC Provider Type
  • JDBC Provider Options
  • Data Source
  • WebSphere Data Source
  • Creating a Data Source
  • Configuring a Data Source
  • Mail Providers
  • Launching the Administrative Console
  • The Administrative Console
  • Installing an Enterprise Application into WebSphere Application Server
  • Installing an Enterprise Application into WebSphere Application Server
  • Installing an Enterprise Application into WebSphere Application Server
  • Installing an Enterprise Application into WebSphere Application Server
  • Installing an Enterprise Application into WebSphere Application Server
  • Installing an Enterprise Application into WebSphere Application Server
  • Installing an Enterprise Application into WebSphere Application Server
  • Installing an Enterprise Application into WebSphere Application Server
  • Installing an Enterprise Application into WebSphere Application Server
  • Installing an Enterprise Application into WebSphere Application Server
  • Installing an Enterprise Application into WebSphere Application Server
  • Saving the Master Configuration
  • Configuring the Web Server plugin
  • WebSphere Applications on the file system
  • What is the Plugin?
  • What is the Plugin Configuration?
  • Generating the Plugin Configuration
  • Use the Plugin Configuration
  • View the Plugin Configuration
  • The Plugin
  • Summary
 

Appendix A. EJB Inheritance

  • The Need For EJB Inheritance
  • EJB Inheritance
  • Characteristics of a Child EJB
  • Table Mappings
  • Single Table Mapping
  • Root/Leaf Table Mapping
  • Guidelines and Limitations
  • ibm-ejb-jar-ext.xmi
  • Creating EJB Inheritance
  • Mapping To RDB: Parent
  • Mapping To RDB: Child