JAVA EE DESIGN PATTERNS USING IBM WEBSPHERE AND RAD 7.5 – GTJ08

Course Description

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 lab 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 Rational Application Developer (RAD) 7.5. This course is also available in other platforms, such as Rational Software Architect (RSA) and Oracle WebLogic Server. Please ask your sales representative for more options.

Objectives

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.

^^

Duration

5 days

^^

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

^^

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

^^

Suggested Follow on Courses

There are a number of options of suitable follow-on courses, depending on your business needs. Please contact us for further details.

^^

Course Content

CHAPTER 1. INTRODUCTION TO SOFTWARE DESIGN PATTERNS

Software Design Pattern

History of Design Pattern

Describing a Pattern

Risks and Criticisms

Resources

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

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

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)

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

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

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

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

CHAPTER 9. MESSAGING PATTERNS

Why Use Messaging?

Send and Forget (One way)

Request Response

Remote Messaging

Hub and Spoke Pattern

Publish and Subscribe Pattern

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

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

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

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

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

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

Testing Session Facade in Embedded Container

Using DBUnit

^^

See more WebSphere courses