Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design...

14
Java Enterprise Edition (JEE) “Core Design Patterns”

Transcript of Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design...

Page 1: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

Java Enterprise Edition (JEE)“Core Design Patterns”

Page 2: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

JEE Core Design Patterns

PresentationTier

BusinessTier

IntegrationTier

Intercepting Filter

Front Controller

Context Object

App Controller

View Helper

Composite View

Service to Worker

Dispatcher View

Service Locator

Session Facade

Application Service

Business Object

Business Delegate

Composite Entity

Transfer Object

TO Assembler

Value List Handler

Data Access Object

Service Activator

Domain Store

Web Service Broker

Page 3: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

Front Controller

http://java.sun.com/blueprints/corej2eepatterns/Patterns/FrontController.html

Intent● provide a single point for processing user requests

Page 4: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

Front Controller

Motivation● single processing point for all client requests

– across views & session– can be used to inject cross-cutting concerns

● logging● security

● separation of business code from presentation code● provides logical resource mapping

– http://server/resource.jsp – http://server/servlet/resourceController – actually we can map multiple requests to the same controller

Page 5: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

Front Controller

Motivation● reusability & organic growth

– controllers can be specialized (sub-classing)– dynamically or declaratively mapped– what is declarative mapping – why do we care?

Page 6: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

Intercepting Filter

Intent● preprocessing & post processing of user requests

http://java.sun.com/blueprints/corej2eepatterns/Patterns/InterceptingFilter.html

Page 7: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

Intercepting Filter

filter1 filter2

request

response

controllerrequest request

responseresponse

Filter chain

How is this different from pipes & filters?

Page 8: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

Intercepting Filter

Motivation● functionality injection● improved reusability

– filter chains can be defined in a number of ways● declarative configuration

Difficulties● information sharing● fault-tolerance

Page 9: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

Data Access Object (DAO)

Intent● abstract access to data repository

http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html

Page 10: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

DAO ­ Example

Page 11: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

Concerns

Mapping● object to persistence mapping

– identifier, foreignkey– object to single table– how do we map associations

● object to object● object to list of objects● object to map of objects

– how do we map inheritance

Page 12: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

Concerns

Mapping● deletions

– single object deletions are easy– deleting associated objects could cause violations

● mappers– allow to vary schema differently from object model

Page 13: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

DAO

Mappers● allow to vary schema differently from object model

Userid

fnameGroup

id

name

lname

belongs

Page 14: Java Enterprise Edition (JEE) “Core Design Patterns” · PDF fileJEE Core Design Patterns Presentation Tier Business Tier Integration Tier Intercepting Filter Front Controller Context

DAO

ER translates into ● tables, columns● each table row represents an entity