Java EE Design Patterns Training

Course #:WA1713

Java EE Design Patterns Training

Patterns are widely accepted solutions to commonly occurring problems. For each pattern discussed in this course we outline the problem it is meant to solve and how to implement the pattern. The course is completely updated to take into account the advancements made in Java Enterprise Edition (Java EE). For pattern implementation, we cover Servlet, JSF and Struts wherever appropriate.

Why take patterns training from Web Age? There are plenty of books and articles on patterns in Java. Most of them are outdated and have not been modified for Java EE 5. This course is completely overhauled and discusses patterns in the context of Java EE 5. Existing books and material on patterns do not show you how to actually implement a pattern in code. Through hands on labs and example code we will teach you how to actually use a pattern in real life. We cover a wide variety of technological options when it comes to implementation. This includes, Servlet, JSF, Struts, JPA and EJB.

Hands on lab exercises are performed using Eclipse and JBoss. This course is also available in other platforms, such as IBM WebSphere and Oracle WebLogic Server. Please ask your sales representative for more options.

 

Topics

 
  • What are patterns?
  • Presentation Tier Patterns and Best Practices
  • Business Tier Patterns and Best Practices
  • Integration Tier Patterns and Best Practices
  • Messaging Patterns
  • Security patterns and best practices
  • Web services patterns
 

What you will learn

 

Upon completing this course, the students will be able to:

  • Apply a pattern to solve a business problem.
  • Make applications more secure
  • Make applications more robust using proper transaction management techniques

In the end, students will be able to solve problems faster and the solution approach will be robust.

 

Audience

 

Senior programmers and architects who need to develop Java EE applications for commercial use or for which security, reliability, and maintainability levels need to be placed above the typical level for trivial or throw-away applications.

 

Prerequisites

 

Students are expected to have a strong understanding of Java programming and web application programming. More than cursory knowledge of the Java EE specification (at least EJB, JMS) is recommended.

 

Duration

 

Five Days.

Outline of Java EE Design Patterns Training

Chapter 1 - Introduction to Software Design Patterns

 
  • Software Design Pattern
  • History of Design Pattern
  • Describing a Pattern
  • Risks and Criticisms
  • Resources
  • Summary
 

Chapter 2 - Basic Software Patterns

 
  • Model View Controller Pattern
  • MVC and Separation of Concerns
  • Tiered Software Architecture
  • Factory Method Pattern
  • Singleton Pattern
  • Issues With Singleton Implementation
  • Summary
 

Chapter 3 - Business Tier Patterns - 1

 
  • Facade Pattern
  • Business Object Pattern
  • Application Service Pattern
  • Service Locator Pattern
  • Remote Service Locator Example
  • Dependency Injection in Servlets
  • Business Delegate Pattern
  • Summary
 

Chapter 4 - Business Tier Patterns - 2

 
  • Data Transfer Object (DTO) Pattern
  • JPA Entity as DTO
  • JPA Lazy Loading
  • Message Facade
  • Fast Lane Pattern
  • Pagination (Value List Handler) Pattern
  • Version Number Pattern
  • Read for Update Pattern
  • Primary Key Generation
  • Data Access Object (DAO)
  • Summary
 

Chapter 5 - Basic Entity Relationships

 
  • Relationship Between Entities
  • Anatomy of a Relationship
  • Foreign Key
  • Example Schema
  • One-to-One Unidirectional
  • Creating Entity Instances
  • Traversing the Relationship
  • The Cascade Behavior
  • One-to-One Bidirectional
  • Maintaining Bidirectional Links
  • Simplifying Bidirectional Links
  • Traversing the Relationship
  • Summary
 

Chapter 6 - Complex Entity Relationships

 
  • One-To-Many and Many-To-One
  • Many-to-One Unidirectional
  • Creating Entity Instances
  • Traversing the Relationship
  • Modeling One-to-Many
  • Maintaining Bidirectional Links
  • Creating Entity Instances
  • Traversing the Relationship
  • Many-to-Many
  • Modeling Many-to-Many
  • Maintaining Bidirectional Links
  • Creating Entity Instances
  • Traversing Relationship
  • Unidirectional One-to-Many
  • Modeling Unidirectional One-to-Many
  • Creating Entity Instances
  • Traversing the Relationship
  • Relationship in JPA QL
  • Fetching Optimizations
  • Lazy vs. Eager Initialization
  • Lazy Initialization
  • Various Problems with Lazy Initialization
  • Fetch Join Query
  • Summary
 

Chapter 7 - Presentation Tier Patterns

 
  • Presentation Tier
  • Front Controller Pattern
  • Application Controller Pattern
  • View Helper Pattern
  • Composite View Pattern
  • Introduction to Facelets
  • Example Facelet Template – template.xhtml
  • Example Page Using the Template – index.xhtml
  • Example Result of View Composition
  • Summary
 

Chapter 8 - AJAX Patterns

 
  • What is AJAX?
  • A Simple Example
  • The Old Way
  • The AJAX Way
  • Advantages of AJAX
  • Model View Controller in AJAX
  • Partial Page Update Pattern
  • Realtime Form Validation Using AJAX
  • Automatic Completion or Form Population
  • Progress and Status Indicator
  • Summary
 

Chapter 9 - Messaging Patterns

 
  • Why Use Messaging?
  • Send and Forget (One way)
  • Request Response
  • Remote Messaging
  • Hub and Spoke Pattern
  • Publish and Subscribe Pattern
  • Summary
 

Chapter 10 - Enterprise Service Bus (ESB) Pattern

 
  • SOA and the ESB Pattern
  • Loose Coupling
  • Service Invocation and Composition
  • Message Flow and Business Process
  • Data Integration
  • ESB in Action
  • The ESB Patterns
  • Service Virtualization Patterns
  • Service Enablement Patterns
  • Message Based Integration Patterns
  • Summary
 

Chapter 11 - Web Service Patterns

 
  • Service Development Patterns
  • Facade Pattern
  • Tight Data Model
  • Adapter Based Services
  • Transaction Propagation
  • Calling a Long Running Service
  • Idempotent Receiver Pattern
  • Publish Subscribe
  • Guaranteed Delivery
  • Service Registry (Directory) Pattern
  • Summary
 

Chapter 12 - Web Service Security Patterns

 
  • Challenges of WS Security
  • WS Authentication Pattern
  • WS Authentication Architecture
  • Authorization Pattern
  • Encryption Pattern
  • Symmetric Key Encryption
  • Non-repudiation Pattern
  • Trust Assertion Pattern
  • How WS-Trust Works
  • Federated Authorization
  • How WS-Federation Works
  • Summary
 

Chapter 13 - EJB Security

 
  • Introduction
  • How EJB Security Works
  • Example Security
  • Protecting Web Resources
  • Setting EJB Method Permission
  • Defining Roles in DD
  • Defining Roles in Code
  • Specify Role Access in DD
  • Specify Role Access in Code
  • Disable Security Check
  • The Excludes List
  • Run As Identity
  • Setting Run As Role
  • Programmatic EJB Security
  • Example Security API
  • Role Reference
  • Summary
 

Chapter 14 - Transactions in EJB

 
  • Need for Transactions
  • Transactions
  • ACID Properties
  • Transaction Components
  • Distributed Transactions
  • Distributed Transaction Components - Two Phase Commit
  • Java Transaction API (JTA)
  • Object Transaction
  • EJB Transaction Basics
  • Transaction Propagation
  • Transaction Outcome
  • Container Managed Transaction
  • Transaction Attributes
  • Container Managed Transaction Settings
  • Interacting with Container Managed Transactions
  • Container Managed Transaction – Example
  • Transaction Attributes Support
  • Bean Managed Transaction
  • Using the JTA API
  • Obtaining the UserTransaction
  • Fine Points of Bean Managed Transaction
  • Client Managed Transaction
  • Transaction Isolation
  • Summary
 

Chapter 15 - EJB Testing Using JUnit

 
  • Introduction to EJB Unit Testing
  • Creating a JUnit Test Project in Eclipse
  • Add a Test Class
  • Adding a Test Method
  • Define Pass/fail Criteria
  • Running a Test
  • Testing Session Facade in Production Container
  • Using DBUnit
  • Summary