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
|