J2EE Architecture Overview
Enterprise Application Overview and Development Cycle
J2EE Architecture and Containers
Applet, Servlet and JSP Overviews
JDBC, JNDI and JTA
EJB, JMS and RMI Over IIOP
JavaMail, JAF, JAAS and JACC
XML and JAXP
New in J2EE 1.4
Web Services Support: JAX-RPC, SAAJ, Web Services for J2EE and JAXR
J2EE Connector, Management and Deployment
Development Roles and Deployment Descriptors
Enterprise JavaBean Overview
What are Enterprise JavaBeans and Why Use Them?
The EJB Container and EJB Server
Session Bean Overview
Entity Bean Overview
Message-Driven Bean Overview
EJB Classes and Interfaces
Local Versus Remote Client View
EJB Deployment
Looking Up and Invoking an EJB
RAD
EJB Development
Creating EJB Projects and EJB Client Projects
Annotation-Based Programming
Creating Session Beans and Message-Driven Beans
Promoting Methods and Using EJB Snippets
Editing the EJB Deployment Descriptor
Generating Deployment Code
Testing EJBs
Java Naming and Directory Interface
JNDI Architecture
Naming and Directory Services
JNDI Terms and Packages
Initial Context
JNDI Subcontexts
JNDI Lookup Examples
Service Providers
Application Assembly and Packaging
J2EE Deployable Units
Assembly Process
Packaging Checklist
Creating Enterprise Application Projects
Importing Resources
Adding J2EE Modules and Utility JARs
JAR Dependency Editor
Using the Application Editor
Deployment Descriptor Elements (EJB, Web, Connector, Client and Application)
IBM Extensions and Bindings
Exporting Resources
EJB Clients: Basics
Types of Client Access
Developing Remote Clients
Local Clients
Local Versus Remote Client View
Web Service Clients
Handles
EJB and Service References
Object Serialization
What is Serialization?
Creating Serializable Objects
Object Variables
Transient Variables
Reading and Writing Serialized Objects
Customizing Serialization
Implementing writeObject() and readObject()
EJBs and Object Serialization
RAD: Server Tools (optional)
New Features
Test Environments
Server Types and Resources
Defining a Server
Running Applications on a Server
Defining the Target Server
Servers View and Actions
Editing the Server Configuration for WebSphere V6 and V6.1
Embedding Deployment Information in an Application
Reloading Resources Running on the Server
WebSphere Administration Command Assist
WebSphere Profiles
RMI over IIOP
The History of RMI Over IIOP
RMI/IIOP Basics
Interfaces and Implementation Classes
Remote Interfaces and Objects
Stubs and Ties
RMI/IIOP Architecture
Passing Objects Using RMI/IIOP
PortableRemoteObject
The RMI over IIOP IDL Compiler (rmic)
RAD: Data Perspective (optional)
Using the Database Explorer
Creating and Connecting to a Database
Creating Data Development and Data Design Projects
Working with Data Diagrams
Adding a Table or View
Adding Keys, Columns, Indexes and Relationships
Generating DDL and Deploying From RAD
Using the Data Output and SQL Scrapbook Views
Session Bean Development
Session Bean Usage and Types
Callback Methods
Session Bean Classes and Interfaces
SessionContext
Adding Business Logic
Home Interface and Component Interface Requirements
Invoking and Removing a Session Bean
Session Bean Design Guidelines
Deployment
Stateless Session Beans
Proper Usage
Lifecycle
Instance Pooling
Identity
Defining a Web Service Endpoint Interface
MessageContext
RAD
Testing and Debugging EJBs
Using the RAD Debugger
Debugging Options
Testing an EJB
Universal Test Client
JNDI Explorer
Stateful Session Beans
Proper Usage
Lifecycle and Callback Methods
Passivation and Activation
Bean Identity
Stateless Versus Stateful
Entity Bean Development
Entity Bean Usage
Types of Persistence
Lifecycle and Callback Methods
Classes and Interfaces
Relationships
Creating and Removing an Entity
Key Classes and Fields
Finder and Select Methods
Home Business Methods
Deployment
Entity Bean Design Guidelines
Container Managed Persistence
CMP Entity Beans
Object-Relational Mapping
CMP Fields and Relationships
Relationship Direction and Multiplicity
Object-Relational Mapping Approaches
Deployment Descriptor Entries
RAD
CMP Tools
Development Steps
Adding CMP Files and Relationships
Mapping Entity Beans: Top-Down, Bottom-Up and Meet-In-The-Middle
Generated Files
Defining EJB Queries
CMP Deployment
Controlling Activation and Passivation
EJB Query Language
Query Methods
Navigation and Selection
SELECT Clauses and Returned Types
FROM Clauses and Path Expressions
WHERE Clause and Parameters
Comparison Expressions and Functions
Supported Operators and Reserved Identifiers
ORDER BY Clause
Defining Queries in the Deployment Descriptor
BMP Entity Beans
Developing BMP Entity Beans
Persistent Fields
Implementing Lifecycle Management Methods
Implementing Finder Methods and Relationships
Primary Key Class
CMP Versus BMP
Transaction Management
What is a Transaction?
ACID
Two-Phase Commit
JTA and JTS
Bean-Managed and Container-Managed Transactions
Valid Transaction Types
Transaction Demarcation
Defining Transaction Attributes
Valid Attributes and Required Transactions
Rolling back a Container-Managed Transaction
Restrictions for Container-Managed Transactions
Bean-Managed Transactions
UserTransaction Interface
Restrictions for Bean-Managed Transactions
SessionSynchronization
Transactions and Message-Driven Beans
JDBC Isolation Levels
WebSphere Access Intent and Read-Ahead Hints
Guidelines
EJB Timers
Timer Basics
Timer Service Interfaces
Creating and Saving Timers
Timer Interface
Transactions and Timers
Considerations
Message-Driven Beans
Characteristics
Message Processing
Lifecycle Methods
The MessageDrivenBean interface
Class Requirements
Message Listener Interfaces
Activation Specification
Defining the Messaging Type
Transactions and Message Acknowledgment
JMS Capabilities and Messaging Styles
JMS Participants and Interactions
JMS Runtime Environment
JMS and Message-Driven Beans
Sending Messages to an MDB
JMS Client Development
MDB Clients
JMS Objects
Development Steps
Sending a Message
Adding JMS References
WebSphere Security Overview
Security: Declarative and Programmatic
Container Based Security
Secure Associations
Security Roles and Role Mappings
Authentication Versus Authorization
Lazy Authentication
LTPA
User Registries and Supported LDAP Servers
Run As Identity
Secure Sockets Layer (SSL) and Transport Layer Security (TLS)
Single Sign-On
Java 2 Security
Policy Files: Static and Dynamic
Defining Security in RAD
Enabling Security
Defining Security Roles and Method Permissions
Adding Security Constraints and Resource Collections
Security Role References
Security Identity
Authentication Mechanisms
Security Configuration Files
J2EE Design Patterns
What Are Design Patterns and Why Use Them?
MVC, Composite View, Front Controller, Intercepting Filter and View Helper Patterns
Transfer Object, Session Façade, Business Delegate and Service Locator Patterns
Data Access Object, Fast-Lane Reader and Value List Handler Patterns
Composite Entity and Factory Design Patterns
Putting It All Together