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