Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Push
J2EE your development
Best furtherusing
Practices Tech
Days
Real-life Examples.
Sridhar Reddy
Technology Evangelist
sridhar.reddy@sun.com
1
Sun
Push
What yourIs
development
Needed… further Tech
Days
2
Sun
Push
eBay yourArchitecture:
development further How to Go… Tech
Days
Configuration
eBayISAPI.dll
Security
Logging
EJB™ Container
Integration Tier
Monolithic Layered
Proprietary Loosely coupled
Modular
Standards based
3
™ Sun
Push
Core yourJ2EE
development further
Patterns Tech
Days
4
Sun
Push your BluePrints
Java TMdevelopment further
Program Tech
Days
http://java.sun.com/blueprints
JavaTM Technology Series
books
Designing Enterprise Applications
with the J2EE Platform, 2nd Edition
Covers J2EE 1.3 platform features
TM
5
Sun
Push your development further
Agenda Tech
Days
6
Sun
Push your development further Tech
Days
8
Sun
Push your development
Rationale further
for Layers Tech
Days
Business Services
Implement “use-cases”
Public Service interface
Interface should remain valid for changes in
presentation and data store
Data Layers
Fewer changes, designed to optimize data access
9
Sun
Push your development
Model further
View Controller Tech
Days
10
Sun
Push your development
Model further
View Controller Tech
Days
Separate:
Model data
Control
Controller
Forward Business
Event Event
Response
JSP Bean
View Model Model
Data
MVC Pattern
11
Sun
Push your development
Service to Worker further Tech
Days
Command
Factory
3. Parse Request
5. Create
1. Request Front 4. Get cmd
Client Controller
6. Execute Command
2. Common logic Helper
8. Dispatch
10. Response 7. Business
View logic
Dispatcher
Servlet View
Helper
JSP Data
9. Get Data Bean
Java™ Objects
12
Sun
Push
Useyour
andevelopment further
MVC Framework Tech
Days
13
Sun
Push your development
Struts Framework further Tech
Days
Struts-config.xml
........
Action
........
........
14
Sun
Push your development
Struts and Core further
J2EE Patterns Tech
Days
Client
Uses
Response
Action Action
JSP View
Forward Form
Request Handler
Request
Intercepting
Filter
Front
Controller
Command ? Business
Service
Client
Navigator Dispatcher
16
Sun
Push your development further
Business Delegate Tech
Days
Client
independent from
ejb tier
Ejb details
hidden
Mock objects can
be used to test
client w/o ejb tier
17
Sun
Push your development
Ebay.com: further
Presentation Tier Tech
Days
Request
Intercepting Front Business Business
Command
Filter Controller Delegate Service
Client Service
Locator
Navigator Dispatcher
18
Sun
Push
Cacheyour development further
for Performance Tech
Days
19
Sun
Push your development
Service Locator further
Pattern Tech
Days
DON'T DO
EJB JMS EJB JMS
Client Client Client Client
Service
Locator
JNDI
20
Sun
Push your development further
ServiceLocator code Tech
Days
21
Sun
Push your development further
ServiceLocator code Tech
Days
22
Sun
Push your development
Client code further Tech
Days
01 ServiceLocator serviceLocator =
02 ServiceLocator.getInstance();
03 try {
04 ProjectHome projectHome =(ProjectHome)
05 serviceLocator.getHome(“ProjectHome.class”);
...
23
Sun
Push
Tipsyour
fordevelopment
Servlets further Tech
Days
24
Sun
Push your development
Servlet Tips further Tech
Days
25
Sun
Push
Tipsyour
fordevelopment
JSPs further Tech
Days
26
Sun
Push your development further Tech
Days
28
Sun
Push your development
Architecting further
Applications Tech
Days
29
Sun
Push
ebay yourUse
development
case further
realization Tech
Days
View Items
by category
Any User
30
Sun
Push
View yourItems
development further Requirements
Design Tech
Days
Convert to
Biz Command
Assemble
Data
Use case
Biz logic
Retrieve
Data by category
31
Sun
Push
View yourItems
development further
Design Tech
Days
Transfer
Action Object Transfer
Command Object
Assembler
32
Sun
Push yourApplication
Core development further
Design Patterns Tech
Days
FRONT
VIEW
CONTROLLER
DATA
MODEL Value List Handler ACCESS
OBJECT
COMMAND DATA
TRANSFER DATA
object TRANSFER
OBJECT
OBJECT
Client
Object EJB
Network
boundary
GetCity()
GetState()
DON'T DO
Before GetZipCode()
too much network traffic
Return DTO
GetCity()
After DO
GetState()
Reduce network traffic
GetZipCode() with Data Transfer Object
Network
boundary
34
Sun
Push yourApplication
Core development further
Design Patterns Tech
Days
FRONT
VIEW
CONTROLLER
DATA
MODEL Value List Handler ACCESS
OBJECT
COMMAND DATA
TRANSFER DATA
object TRANSFER
OBJECT
OBJECT
36
Sun
Push your
EJB Tierdevelopment
patterns further Tech
Days
Data Access Object (DAO)
37
Sun
Push yourApplication
Core development further
Design Patterns Tech
Days
FRONT
VIEW
CONTROLLER
DATA
MODEL Value List Handler ACCESS
OBJECT
COMMAND DATA
TRANSFER DATA
object TRANSFER
OBJECT
OBJECT
Interface
For querying, filtering, and
ValueListIterator displaying large amounts
+GetSize():int
of data:
+getCurrentElement():Object
+getPreviousElements(count:int):List
Value List Handler handles
+getNextElements(count:int):List the search, can cache results
+resetIndex():void and provides a traversable result
set
<<List>>
Client ValueListHandler ValueList TransferObject
DataAccessObject
39
Sun
Push your development
Example CachingfurtherResults Tech
Days
2: Execute Search
2.1: Execute Search
2.1.1: Create
3: Get Next
3.1: Get Sub-list
4: Get Previous
4.1: Get Sub-list
4.2: Return Sub-list
5: Get Current
5.1: Get Current
5.2: Return Value Object
6: Get Size
6.1: Get Size
6.2: Return Size
40
Sun
Push your development
Returning Searchfurther
Results Options Tech
Days
42
Sun
Push yourApplication
Core development further
Design Patterns Tech
Days
FRONT
VIEW
CONTROLLER
DATA
MODEL Value List Handler ACCESS
OBJECT
COMMAND DATA
TRANSFER DATA
object TRANSFER
OBJECT
OBJECT
3. process
Java™
Use the Session Facade: Object
44
Sun
Push
Useyour
thedevelopment
Session further
Facade pattern Tech
Days
Network
Do:
EJB
Network F
a
Client c
a
d
e
Network
46
Sun
Push your development
Design your localfurther& remote EJBs Tech
Days
WebComp
onent
Remote WebComp
Facade onent Determine which EJBs
WebComp
onent will be collocated within same
Business
Delegate
VM
LineItem
Relationship Admin
Remote CreditCard
Reference Facade Purchase Order
Address
47
Sun
Push
Useyour
thedevelopment
Session further
Facade Tech
Days
Commit
or
Start Prepare rollback
Check context
x to see if
updates will work
48
Sun
Push your development
eBay.com: further
Business Tier Tech
Days
Application Domain
DAO Data
Controller Store
Source
Business
Command Context Logic/Data
Object
Application
Service
Business
Facade Object
Transfer
Object
Transfer Value
Object List
Core J2EE
Assembler Handler
Pattern
Strategy
49
Sun
Session EJB tips
Push your development further Tech
Days
50
Sun
Push your development
Stateless further
or Stateful Session EJB? Tech
Days
51
Sun
Push your development
Service Tier DON'Tfurther s Tech
Days
52
Sun
Push your development
Design Patterns further
Summary Tech
Days
Invoke
business Transactional Encapsulate
methods Data data
Business Components
Encapsu- Access data
Entity late data Transfer Object sources
53
Sun
Push your development
Design Patterns further
Summary Tech
Days
Service Locator
Holds results of JNDI lookups
Business Delegate
Simplifies the coupling between the J2EE Web &
EJB tiers
Session Facade
Provide business logic functionality
Persistence
Best
Practices
55
Sun
Push
Data yourAccess
development further
Options in J2EE: Tech
Days
Database
EJB Container
1) Bean provider manages State and Data consistency
2) Bean provider handles relationships and OR Mapping
57
Sun
Push your of
Effect development
Good further
CMP Optimizations Tech
Days
28
24
20
16
12 Simple BMP
8 Optimized BMP
CMP
4
0
Benchmark # of Database
Score Calls
58
Sun
Push
CMP your2.0
development
Entity further
Beans Tech
Days
<<interface>>
java.io.Serializable
<<interface>>
javax.ejb.EnterpriseBean
<<interface>>
javax.ejb.EntityBean
59
Sun
Push your development
Accessors further and
for CMP CMR Tech
Days
60
Sun
Push your development
Container further
Managed Relationships Tech
Days
Address
Order
Local Entity
1
Shipping Address
1 Local Entity
Client OrderBean Product
1 1
LineItems ProductOrdered
M M
OrderHome LineItem
Local Entity
EJB Tier
61
Sun
Push
CMP your2.0
development further
Relationship Handling Tech
Days
62
Sun
Push your development
Example further
CMP Wizard Tech
Days
63
Sun
Push your development
Advantages of further
CMP 2.0 Tech
Days
for developer
container manages the persistence and
the relationships, not you!
Freedom from maintaining interactions
with the data store
EJB™ Query Language (EJB QL)
Portable code
64
Sun
Push your development
Advantages of further
CMP 2.0 Tech
Days
for Container
Optimization is possible in query
operation
Because Query is defined in deployment
descriptor via EJB QL
Optimization is possible because
persistent fields are only accessible
via get and set methods
Lazy loading,Dirty writes,Optimistic locking
65
Sun
Push
CMP yourOptimizations
development further Tech
Days
Aggressive Loading
Loading fields relationships and fields of
children in the same query
Lazy Loading
Deferring loading of any data until it is accessed
Dirty Writes
Only update data which has been changed
in the database
66
Sun
Push
CMP: yourStandard
development further
Vs. Tech
Days
67
Sun
Push your development
Database further Modes
Isolation Tech
Days
69
Sun
Push
EJB your development further
Summary Tech
Days
70
Sun
Push your development further Tech
Days
J2EE
Performance
Tips
71
Sun
Push your development
Application further
Resources Tech
Days
72
Sun
Push
Tune yourApp
development
Serverfurther Tech
Days
74
Sun
Push
Tune yourKey
development further
Container Parameters Tech
Days
75
Sun
Push your development
Entity Bean further Tech
Days
pooled
ejbFind()
EJB
Instance
ejbCreate() ejbRemove()
ejbPostCreate()
ejbActivate() ejbPassivate()
ready
business method
76
Sun
Push your development
Entity Bean Cachingfurther Tech
Days
Commit Option A
At the end of the transaction, the instance stays
ready (cached) and the instance state is valid
Commit Option B
At the end of the transaction, the instance stays
ready (cached) but the instance state is NOT
valid ( ejbLoad will be called )
Commit Option C
At the end of the transaction, neither the instance
nor its state is valid (passivated)
Best Option: do profiling with your application on
your app server
77
Sun
Push your development
Stateful Session further
Bean Tech
Days
1) newInstance() ejbRemove()
2) setSessioncontext()
3)ejbCreate() ejbPassivate()
Method-ready
78
Sun
Stateless
Push Session
your development further Bean Tech
Days
1) newInstance()
2) setSessioncontext() EjbRemove()
3)ejbCreate()
method-ready
pool
Business method
EJB
Instance
79
Sun
The Sun's EJB Container
Push your development further Tech
Days
Cache Tunables
commit-option (B|C) (entity beans)
Max-cache-size (0 = unbounded)
cache-idle-timeout-in-seconds
(0 = indefinitely)
removal-timeout-in-seconds
(stateful session)
Adjust cache size: Increase until a good cache hit
rate is reached
80
Sun
Push
Theyour development
Sun's EJBfurther
Container Tech
Days
Pool Tunables
steady-pool-size (not for message-
driven)
max-pool-size (0 = unbounded)
pool-idle-timeout-in-seconds
(0 = indefinitely)
Adjust a bean’s pool size:
Increase when observing excessive creation
and deletion of bean instances
Decrease when accumulating a large number
of instances in pool
81
Sun
Push
Theyour development
Sun's EJBfurther
Container Tech
Days
82
Sun
Push
JDBC your development
Tips further Tech
Days
84
Sun
Push your developmentTips
Performance furtherSummary Tech
Days
85
Sun
Push your development
Manage further
Expensive Resources Tech
Days
86
Sun
Push your development
Design Patterns further
can Tech
Days
Session Facade
Service Locator
Value List Handler
Data Transfer Object
87
Sun
Push your development further Tech
Days
Some JMS
Messaging,
J2EE Best
Practices
88
Sun
Push your development further
Point-to-Point Tech
Days
Queue
JMS JMS
Java™ Pet
Store
89
Sun
Push your development
Publish further
and Subscribe Tech
Days
Topic
Price Change
Traders/Brokers
90
Sun
Push your development further
Message-Driven Bean Tech
Days
Container
JMS Container
Provider
Msg-
Desti MDB
Consume MDB
Queue Consumer driven
Instances
Instances
n- r
Bean
ation
Msg-Driven
Bean Class
91
Sun
Push yourFacade
MDB development further
Pattern Tech
Days
Mailer MDB
EJB
Asynchronous
Message
LineItem Tier
Delivery Order Entity
Card
Approval 1:m
Entity
MDB Purchase
Order Entity
Address
Entity
93
Sun
Push your development further Tech
Days
Tools
Summary
Resources
94
Sun
Push your
Use development further
Tools Tech
Days
95
Sun
Push your development further
Summary Tech
Days
96
Sun
Push your development further
Resources: Tech
Days
Sridhar Reddy
Technology Evangelist
sridhar.reddy@sun.com
98