Professional Documents
Culture Documents
Core J2EE Patterns, Frameworks and Micro Architectures: Patterns & Design Expertise Center Sun Software Services
Core J2EE Patterns, Frameworks and Micro Architectures: Patterns & Design Expertise Center Sun Software Services
Micro Architectures
Deepak.Alur@sun.com
Patterns & Design Expertise Center
Sun Software Services
January 2004
Agenda
Patterns
Pattern Frameworks
Micro Architecture
Web Worker Micro Architecture Example
Messaging Micro Architecture Example
Q&A
.Net
J2EE
What Is A Pattern?
Patterns are...
Abstractions
Discovered, not created
Difficult to see the appropriate
granularity
Mined from good designs
Refactoring targets
Presentation
Business
Integration
Presentation Tier
JSP, Servlets, UI Elements
Business Tier
EJB and Business Objects
Integration Tier
JDBC, JMS, Connectors
Resource Tier
Databases, Systems Legacy
Pattern Format
Problem
Forces
Solution
Structure
Interaction
Consequences
Strategies
Extensibility
Pattern Strategies
Extensibility
Pattern Relationships
Presentation-Tier Patterns
Intercepting Filter
Front Controller
Composite View
View Helper
Service to Worker
Dispatcher View
Context Object new
Application Controller
new
Business Delegate
Session Facade
Service Locator
Transfer Object
Composite Entity
Business Object
Application Service
new
new
Integration Patterns
new
Intercepting Filter
Front Controller
Context Object
Application Controller
View Helper
Composite View
Service To Worker
Dispatcher View
Context Object
Problem:
Forces:
Context Object
Solution:
Application Controller
Problem:
Forces:
Application Controller
Solution:
Application Controller:
Command Handler Strategy
Business Delegate
Service Locator
Session Facade
Business Object
Application Service
Composite Entity
Transfer Object
Business Object
Problem:
Forces:
Business Object
Solution:
Application Service
Problem:
Forces:
Application Service
Solution:
Domain Store
Problem:
Forces:
Domain Store
Solution:
Problem:
Forces:
Solution:
Agenda
Patterns
Pattern Frameworks
Micro Architecture
Web Worker Micro Architecture Example
Messaging Micro Architecture Example
Q&A
J2EE Refactoring
Business Tier:
Presentation
Component
Business
Component
Presentation
Component
Business
Component
HttpServletRequest
HttpServletRequest
HttpServletRequest
UserInfo
Presentation
Tier
Business
Tier
Presentation
Tier
Business
Tier
Request
1
Controller
JSP
2
Duplicate
Client
TOKEN
1
Controller
2
Duplicate
Duplicate
Allowed
Presentation
Tier
1
TOKEN
JSP
No
Access
Duplicate
Disallowed
Presentation
Tier
Entity
Bean
A
Client
Busine ss
Logic
Transaction
Logic
Client or
Presentation
Tier
Entity
Bean
B
Client
Busine ss
Logic
Transaction Logic:
Bean Managed
or
Container Managed
Entity
Bean
C
Business
Tier
Session
Facade
Client or
Presentation
Tier
Business
Tier
Entity
Bean
B
Entity
Bean
C
Session
Enti ty
Client
Interaction
#1
Facade
Enti ty
Client
Interaction
#2
Session
Enti ty
Client
Interaction
#2
Facade
Enti ty
Enti ty
Client
Interaction
#3
Client
Interaction
#3
Client or
Presentation
Tier
Session
Business
Tier
Client or
Presentation
Tier
Enti ty
Business
Tier
Direct Access
Introduce DAO
Introduce Application Service
Introduce Service Facade
Introduce Business Objects
Direct Access
Helper
Database
Command
Introduce DAO
Helper
DAO
Command
Database
DAO
Database
Session
Facade
Application
Service
Command
DAO
<<POJO>>
POJOFacade
<<SessionEJB>>
SessionFacade
<<LocalSession>>
LocalFacade
<<RemoteSession>>
RemoteFacade
DAO
Command
Service Facade >>
Local Facade >>
Local Session Bean | POJO
Physical
Boundary
Helper
Business
Delegate
Service
Facade
DAO
Command
Service Facade >>
Remote Facade >>
Remote Session Bean
Session
Facade
Application
Service
Command
Business
Object
Domain
Store
DAO
Agenda
Patterns
Pattern Frameworks
Micro Architecture
Web Worker Micro Architecture Example
Messaging Micro Architecture Example
Q&A
Pattern Framework
Pattern Realization
Agenda
Patterns
Pattern Frameworks
Micro Architecture
Web Worker Micro Architecture Example
Messaging Micro Architecture Example
Q&A
Micro Architectures
Micro Architectures
Problem:
User 1
J2EE
Use Case 1
User 2
Use Case 2
User 3
Use Case 3
Page
Page
Page
Logic
Logic
Logic
Workflow
Business
Delegate
Async WS Orchestration
With J2EE
Invoke
Business
Process
Orchestration
(BPEL)
Async Reply
(sometime later)
J2EE
WebService
J2EE
WebService
J2EE
WebService
Shipping Example
Shipping Example
Shipper
Transporter
Client
Web App
Orchestration
Server
Transport 1
Transport 2
Transport 3
Orchestration
Server
Transporter
Message Context
Context
Object
Service
Activator
Intercepting
Filter
Web Service
Broker
Application
Service
Application
Controller
Message Handler
Routing
Service
Service Endpoint, Broker/Mediator, Validation
Summary
Stay Connected:
Subscribe:
http://archives.java.sun/j2eepatternsinterest.html
Write to us:
j2eepatterns-feedback@sun.com
Java.Net Patterns Community
http://www.corej2eepatterns.com
Thanks!
deepak.alur@sun.com
January 2004