Context of Java EE Applications
- Java EE technology quick refresher
- Target application types for Java EE
- Java EE application architecture
- Hardware context: layers and tiers
- Improving the "ilities" (scalability, availability, etc.)
2. Java EE Patterns and Blueprints
- Pattern forms and relationships
- Why the GoF (and POSA, etc.) are not enough
- Benefits and dangers of patterns
- Java EE patterns and where they fit in
- Quick tour of major Java EE patterns
- Patterns and refactoring
- Java EE blueprints: what are they and why are they there?
3. Distributed Pattern Principles
- Why are distributed systems different?
- Reducing data flow: Data Transfer Object
- Minimizing roundtrips: Batch Method and Combined Method
- Proxies, decoupling and caching
- Flexibility through dynamic discovery: Service Locator
- Server-side decoupling: Remote Facade
4. Web Presentation Patterns
- Applying the Web processing model
- What can go bad in the Presentation Layer: a bad example
- Factoring out: Front Controller, View Helper, Template View
- Model View Controller in a Java EE Web application
- MVC variations: Page Controller, Dispatcher View, Service to Worker, Intercepting Filter
- Building the output: Composite View, Two Step View, Transform View
- Controlling the flow: Application Controller
- Session state: the issue, Client Session State, Server Session State, Database Session State
- Bad example refactored
|
5. Business Component Patterns
- Business components and the Java EE model
- What can go bad in the Business Layer: another bad example
- Splitting domain and business logic: Transaction Script, Domain Model, Service Layer
- Business components, EJBs and transactions
- Distribution and decoupling: Session Fa�ade, Business Interface
- Asynchronous interaction: Message Fa�ade, Service Activator
- Client interaction: Business Delegate, EJB Command
- Managing business data: Composite Entity
- Data in and out: Data Transfer Object Factory
- Bad example refactored
6. Persistence and Integration Patterns
- What can go bad in the Persistence Layer: yet another bad example
- Types of data
- Structuring data access: Data Access Object, Row Data Gateway, Active Record, Data Mapper,
- Object to relational mapping patterns
- Primary key generation patterns
- Improving performance: Fast Lane Reader, Value List Handler, Lazy Load
- State, updates and transactions: Unit of Work
- Distributed locking: Optimistic Offline Lock, Pessimistic Offline Lock
- Enterprise application integration: Channel patterns, message patterns, routing patterns
- Bad example refactored
7. Applications, Java EE Blueprints and Patterns
- The refactored example application
- Application issues: security, logging, exceptions, code structure, testing
- Java EE Blueprint application: Java Pet Store
- Java EE Blueprint application: Adventure Builder
- A balanced view: Java Pet Store and the .NET Pet Shop
8. Java EE, Web Services and Patterns
- Web Service interaction and protocols
- Java EE Web Service architecture
- Effect of Web Services on patterns
- Service orientation, state management and loose coupling
- Data transfer
- Web Services and the Java EE Blueprints
|