Overview
This course will utilize a combination of instructor-led discussions and interactive workshops to illustrate the use of patterns, best practices, design strategies and proven solutions for designing web applications that incorporate JSPs, Servlets, EJBs, JMS and JDBC components. This seminar will focus on the J2EE Patterns Catalog and design strategies that can be utilized to incorporate them. Each of the patterns for the Presentation, Business and Integration tiers will be extensively investigated with an in-depth discussion of the context, problem addressed, forces impacting each, solution provided and the related consequences.
Prerequisites
Each student should have a basic understanding of application development and have been exposed to an object-oriented programming language.
Class Format
Lecture and Lab
Audience
System architects, Java or OO developers, Project Managers and other professionals that will be designing or deploying web applications.
Learning Objectives
After completing this course, the student should be able to:
- Understand the concept of J2EE patterns and
the Catalog.
- Illustrate the J2EE environment and the components
affected by implementation of a J2EE pattern.
- Discuss the Presentation tier design patterns
and their affect on: sessions, client access,
validation and consistency.
- Depict various bad practices to be avoided
when building Presentation tier components.
- Discuss the Business tier design patterns
and their affect on: Session and Entity EJBs
and the use of remote references.
- Depict various bad practices to be avoided
when building Business tier components.
- Understand the variety of implemented bad
practices related to the Business and Integration
tiers.
- Examine the different patterns associated
with the Integration tier.
- Highlight the evolution of patterns in the
implementation of Struts and JavaServer Faces.
- Understand the role of J2EE Security
- Examine the optimization techniques available
in the deployment of J2EE applications in a
WebSphere environment.
- Depict the role of Cells, Clusters and Application
Servers and impact of various patterns on different
implementations.
Course Duration
4 Days
Course outline
J2EE
Platform
- Architecture
- Client tier
- Web tier
- Business tier
- EIS tier
- J2EE Components & Containers
- Standard API Services (JMS, JDBC, JNDI,
etc)
- Platform roles
- Business Object optimization
J2EE Design Pattern
Overview
- What are Patterns
- Pattern benefits
- J2EE Pattern Catalog
- Evolution
- Presentation tier
- Business tier
- Integration tier
Presentation Tier Design Considerations
- Model-View-Controller
- Tier separation
- Design issues
o Session Management
o Client Session state
o Client Session Security issues
o Validation
- Bad Practices
o Code control in multiple views
o Expose Presentation-tier data to Business
tier
o Duplicate Form Submissions
o Resetting bean properties via setProperty
o Fat Controllers
o Expose resources to direct Client access
o Using Helpers as Scriptlets
Evolution of Presentation Patterns
- Struts Architecture
- Overview
- Struts Pattern
- Application Components
- Tag usage
- JavaServer Faces Architecture
- Overview
- JSF Pattern
- Application Components
Presentation Tier Patterns
- Intercepting Filter
- Context
- Problem
- Solution & consequences
- Front Controller
- Context
- Problem
- Solution & consequences
- View Helper
- Context
- Problem
- Solution & consequences
- Composite View
- Context
- Problem
- Solution & consequences
- Dispatcher View
- Context
- Problem
- Solution & consequences
- Service to Worker
- Context
- Problem
- Solution & consequences
Business Tier Design Considerations
- Overview
- Role of Session EJBs
- Stateful vs Stateless
- Use in Business-tier Facades
- Store State in Business tier
- Role of Entity EJBS
- Business and Integration tier Bad Practices
- Mapping object model to Entity
EJB
- Mapping relational model to Entity
EJB
- Use case to Session EJB mapping
- EJB attribute exposure
- Embedded Service lookup in Client
tier
- Read-only Entity EJB
- Entity EJB as fine-grained objects
- Exposing EJB exceptions to Client
tier
- Large result sets
- EJB and long-lived transactions
- Rebuilding conversation state with
Stateless Session EJBs
Business Tier Patterns
- Business Delegate
- Context
- Problem
- Solution & consequences
- View Object
- Context
- Problem
- Solution & consequences
- Session Facade
- Context
- Problem
- Solution & consequences
- Business Object
- Context
- Problem
- Solution & consequences
- Composite Entity
- Context
- Problem
- Solution & consequences
- Transfer Object
- Context
- Problem
- Solution & consequences
- Transfer Object Assembler
- Context
- Problem
- Solution & consequences
- Value Object Assembler
- Context
- Problem
- Solution & consequences
- View List Handler
- Context
- Problem
- Solution & consequences
- Service Locator
Integration Tier Patterns
- Data abstraction via DAO implementations
- Data Access Object
- Context
- Problem
- Forces
- Solution & consequences
- Service Activator
- Context
- Problem
- Forces
- Solution & consequences
- Domain Store
- Context
- Problem
- Forces
- Solution & consequences
- Web Service Broker
- Context
- Problem
- Forces
- Solution & consequences
J2EE Refactoring
- Presentation Tier
- Controller
- Synchronizer token
- Localize disparate logic
- Hide presentation
- Remove conversion from client
- Business and Integration tier
- Wrap Entity with Session
- Business Delegate
- Merge Session EJBs
- Reduce EJB communication
- General Refactoring
- Separate Data access code
- Connection Pool
|