WebSphere Training Overview
This course is an advanced introduction to the Enterprise Java Beans (EJB) technology. It starts by introducing the concepts and ideal for someone who has never programmed using EJB. The course rapidly picks up and ends with advanced concepts that students can use in real life to complete large-scale EJB based projects. The development and labs will be based on IBM Rational Application Developer v6, emphasizing the new features of the EJB 2.1 specification.
WebSphere Training Audience
This course is intended for intermediate to advanced Java programmers. System architects will find the advanced concepts especially beneficial in designing a framework.
WebSphere Training Prerequisites
The student is expected to understand the core Java libraries; be familiar with web application programming, including servlets and JSPs; have some experience or understanding of using IBM Rational Application Developer. This course includes a review of RAD Basics, but assumes some knowledge of RAD.
WebSphere Training Learning Objectives
After completing this course, the student should be able to:
- Understand the need for EJB
- Understand the EJB 2.1 specification at an expert level
- Understand how to develop, test, and deploy EJBs with RAD
- Gain knowledge of J2EE Design Patterns and Best Practices
- Learn the industry secrets in EJB scalability
WebSphere Training Practical Work
Students develop session beans with RAD, including accessing a database from session bean and EJB Java Client. They develop CMP Entity Beans, including EJB/RDB mapping and finder methods. Next, they develop a message-driven bean and integrate Java Message Service (JMS), IBM MQSeries, with RAD. Students also develop access beans. The purpose is to exhibit the use of development, testing, and deployment tools to improve EJB development productivity. The student will deploy a J2EE application to WebSphere Application Server v6.
WebSphere Training Topics
- Review of RAD v6 Basics
- Introduction to Web Applications and J2EE
- Overview of Enterprise Java Beans
- Session EJBs
- Entity EJBs
- EJB and Exceptions
- EJB and Transactions
- EJB Security
- Message-Driven EJBs
- J2EE Best Patterns with Focus on EJB
- WebSphere V6 administration for programmers
- J2EE Design Patterns with Focus on EJB
- EJB Inheritance
WebSphere Training Course duration
5 days
WebSphere Training Course outline
0. Agenda
- Course Overview
- Course Objectives
- Agenda – Day 1
- Agenda – Day 2
- Agenda – Day 3
- Agenda – Day 4
- Agenda – Day 5
- Prerequisites
- Environment
- Student Introductions
1. Introduction to Rational Application Developer V6.0
- Objectives
- The WebSphere Studio Family
- 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
- Package Explorer
- Navigator View
- Outline View
- Task View
- Build and Validation
- Templates and Code Completion
- Searching
- Setup Compiler Class Path
- JRE Switching
- Import and Export Project
- Features of Eclipse 3.0
- Eclipse 3.0
- Eclipse SDK V3.0
- JDK 1.4 – New Features
- Control Flow of Logging
- Loggers
- Logging Example
- Logging API - Handlers
- Logging API – Formatters & Log Manager
- Example Logging Configuration File
- JDK 1.4
- JDK 1.4 - Assertions
- When to use Assertions
- Enabling Assertions
- Build and Validation
- Import and Export Project
- Templates and Code Completion
- Searching
- Setup Compiler Class Path
- Summary
2. Introduction to J2EE and Rational Platform
- Objectives
- Java Web Applications
- Java Web Application Architecture
- J2EE Architecture
- Web Application Programming Model – MVC
- An MVC Example
- The Infrastructure for Enterprise Web Applications
- The IBM WebSphere Platform
- Rational Web Developer
- Rational Application Developer (RAD)
- Background of RAD
- WebSphere Application Server
- What’s new in WebSphere Application Server v6.0
- WebSphere Editions
- Services provided by WebSphere Application Server
- WebSphere Application Server Architecture
- WebSphere Administrative Topology
- WebSphere Application Server Components
- Server Profile
- WAS Administration tools
- Administration Changes from v5
- RAD J2EE Development
- RAD Project Structure
- WebSphere Test Environment in RAD
- WebSphere Test Environment – steps for test
- Set Project Properties
- Setup Server Properties
- EJB Test Client in RAD
- Summary
3. 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
- EJB Container - Relationships
- EJB Container – Relationships…
- 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
- The Session Bean Class
- ejbCreate() Method
- Business Methods
- A Simple Stateless Session Bean Example
- A Simple Stateful Session Bean Example
- 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
- Create an EJB Object
- Calling business methods
- 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…
- Generating Deployed Code
- Run on server
- JNDI Explorer
- Test the home interface
- Test the component interface
- Exporting EJB JAR
- EJB JAR File Structure
- Summary
5.
EJB 2.1 Changes
- Web Service Clients
- Component Interface.
- Web Service Component Interface
- Web Service Client View - Stateless Session Bean
- Web Service Client View of Stateless Session Bean
- Web Service Client View
- Web Service References
- Web Service Reference Programming Interfaces
- Declaration Of Web Service References
- Container-Managed Timer Service
- EJB Timer Service
- Interaction between Timer Service and EJB
- Timer Service API
- Timer Service Interface
- TimedObject Interface
- Working of Timer Service
- Timer Interfaces
- Timer Interface
- TimerHandle Interface
- Timer and Transaction
- Example Of A TimerBean
- Example Of A TimerBean
- Limitations of EJB Timer Service
- EJB QL Enhancements
- Annotation Based EJB Development
- @ejb.create-method
- @ejb.finder
- @ejb.home
- @ejb.interface
- @ejb.transaction
- Annotation Based EJB Development
- Create an Annotated Bean Class
- Annotation Based EJB Development
- Disabling Tag Sets
- Disabling Tag Sets
- Enhanced EAR File
- Enhanced EAR File Editor
- Deployment Descriptor Of An Enterprise File
- Exporting an Enterprise Application into an EAR File
- Exporting an Enterprise Application
- Summary
6. Entity Bean
- Objectives
- Entity Beans
- Entity Bean Components
- Container
- Container…
- Primary Key Class
- A Primary Key Class Example
- (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…
- Persistence
- Bean Managed Persistence
- Container Managed Persistence
- Writing BMP Bean
- Writing BMP Bean…
- A BMP Bean Example
- A BMP Bean Example…
- Writing a CMP Bean
- Writing a CMP Bean…
- Indicating Persistent Fields
- 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: Watch out!
- Using EJBQL in a CMP bean
- Business Methods
- EntityContext
- Writing CMP Beans
- Defining and Mapping CMP Fields
- A CMP Entity Bean Example
- Developing Entity Beans in RAD
- Adding a CMP Entity EJB
- Adding a CMP Entity EJB…
- EJB Deployment Descriptor
- Add an EJBQL query
- Add an EJBQL query…
- Import Database Schema
- Copy Database Schema
- Creating a database mapping
- Choosing a backend
- Choosing a mapping type
- Specifying the mapping
- EJB Relationships
- EJB 2.0 Relationships
- WebSphere Extensions
- Summary
7. EJB Exception
- Objectives
- Use of Exception
- Exception Types
- System Exception
- System Exception…
- Application Exception
- Bean Class
- Container
- Client
- Standard Exceptions
- Local EJBs
- Summary
8. EJB Security
- Goals of the EJB Security Specification
- Declarative EJB Security – Method Permission
- Configure Security Roles
- Configure Method Permissions
- Generated XML in ejb-jar.xml
- Unchecked option
- Excludes List
- Declarative EJB Security – EJB Delegation Policy
- Configuring EJB Delegation Policy with RAD
- Programmatic EJB Security
- Summary
9. 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…
- 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…
- Processing the Message
- Deployment Descriptor Entry
- Binding the Queue or Topic
- JMS in RAD
- Configure a Service Integration Bus in RAD
- Configure a Service Integration Bus
- Add Application Server as Bus Member
- Create a Queue
- Create a Queue cont…
- Configure the JMS Resources
- Configure Connection Factory
- Configure a Queue
- Configure Activation Specification
- Configure the Activation for MDB
- 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
10. Best Practices
- Objectives
- Remove Stateful Session Beans
- Identifying Read-Only Methods are not required any more
- Reduce the Transaction Isolation Level where possible
- CMP EJB Access Intent
- DataSource Isolation Level
- Do Not Mix Isolation Levels
- Access Entity Beans from Session Bean
- Reuse EJB Homes
- Avoid two-phase commit if possible
- Avoid transactions for non-transactional methods
- Avoid Stateful Session EJBs
- CMP Pooling
- Use Access Beans
- Types of Access Beans
- Access Bean Constructor
- Generating Access Beans
- Access Bean Examples
- Do not store large Object Graphs in HttpSession
- Release HTTP Sessions
- Use JDBC Connection Pooling
- Release JDBC Resources
- Turn off reloading of web applications
- Make upstream queues progressively smaller
- Avoid String Concatenations
- Minimize Synchronization
- RAD Best Practices
11. 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
- Setting Isolation Level for EJB
- CMP EJB Access Intent
- Setting Access Intent
- Setting Data Source Isolation Level
- EJB Transaction Type in RAD
12. EJB Design Patterns
- EJB Design Patterns
- Types of EJB patterns
- Session Façade Pattern
- Session Façade
- Session Facade
- Session façade pattern shortcomings
- Message Façade Pattern
- Message Façade
- Message façade pattern shortcomings
- EJB Command pattern
- EJB Command
- EJB Command pattern shortcomings
- Generic Attribute Access pattern
- Generic Attribute Access
- Data Transfer Object (DTO)
- Data Transfer Rowset
- Version Number pattern
- Version Number Pattern
- Fast Lane Pattern
- Data Access Command Beans
- EJBHomeFactory
- Business Delegate
- Sequence Blocks
- Stored Procedures for Autogenerated Keys
- 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…
- 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
Appendix B. 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
- DAO
- 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…
- Processing the Message
- Deployment Descriptor Entry
- Summary
Minimum Hardware Requirements
- 866Mhz Pentium III
- 1GB RAM minimum 1.5GB recommended.
- 15 GB free on the C drive.
- Ethernet or Token Ring card
- CD-ROM drive
- Network connectivity to the internet
Minimum Software Requirements
- Microsoft Windows 2000 SP4
- Adobe Acrobat Reader 6.0
- Netscape 4.7 / Internet Explorer 5.0 (or higher)
- IBM DB2 V8.1 Enterprise Edition
- Rational Application Developer v6 (RAD 6)
- IBM Websphere Application Server v6 (WAS 6)
WINTRAC INC. - the one stop shopping center for IT training.
16523 S.W. McGwire Ct. Beaverton OR -97007
Phone: (503) 259-0312
Fax: 707-598-2268
Email: sales@wintrac.com
Send mail to webmaster@wintrac.com with questions or comments about this web site.
Copyright © 2008 Wintrac Inc.
|