设计目标:
. s: M9 {0 H" o' t 1. 开发效率1 O8 @! }. V( F6 T
2. 性能、预算
+ e# {- S3 @7 [9 y' o 3. 符合OO设计2 e! n0 W, h# S& @3 ^3 a* s6 v: m# f
4. 避免复杂性
0 }% _) E8 k+ O! T 5. 可维护性、可扩展性,可重用性
! \' u0 U0 o8 W: Z$ @7 a4 E 分布式应用
" N1 b* `* S% d1 P* z2 ] 不足:* G% V* D. ~- @2 p: o+ P/ d( i
1. 增加了应用的复杂性
- }, n% ?) y" c8 w 2. 对性能会造成一定的影响 N& F. w2 P0 F$ r7 @3 t7 V ^
3. 给OO Design带来一定的困难. {1 c4 D0 f) o0 F
优点:
+ J% N# X0 u5 Z) ? 1. 能满足多类型客户端的需求(applet, swing)% D9 `* d4 _2 z. r' @& a
2. 能同时将组件部署到不同的应用服务器
! W3 d$ ]' k5 U- j# u7 i 采用前提:' y4 K+ }3 V& s
1. 客户端需要使用J2EE技术,比如Swing
, N+ r0 h5 h( x$ ~: @ 2. 为了与已有的分布式应用集成
" F# Z$ K1 e( o3 v0 C& l 3. 需要将J2EE组件部署到多个应用服务器: Z9 U% T) `1 J0 F
4. 实现对多应用组件部署进行控制,提高系统灵活性、可靠性; w8 P+ ?( l9 |" M/ `2 [3 k4 ]& A6 r0 C
可选技术:
2 L; U# G- W7 S8 l, v; k 可通过集群和负载平衡(remote interface调用单服务器应用)来实现分布式应用的健壮性、灵活性
# j0 c/ C- L- {$ n s' o- x& e5 g EJB技术
" `2 R# f# A, K, K3 e) i; Q+ w2 N 缺点:
" b0 U! b. z# z5 \. f, n 1. 测试困难9 C- |3 Z; ~- F" [
2. 部署麻烦(classloader复杂、部署描述符复杂、开发-部署-测试周期长)# Z4 ?; P1 N; a( {0 t( ~. A
3. 采用remote interface的EJB不符合OO Design
3 M3 \- g: B% m: Q 4. 技术复杂,可能将简单需求变得复杂开发, S5 H: W/ S! Z; W3 I0 P5 l3 Q
5. 减少了应用服务器的选择
- G4 C& g; R9 Q* ]8 F% e 优点:
0 f& B [: q/ ?3 p' Z% L0 K# b 1. 能远程访问组件 {6 B3 V4 W# g7 @+ D6 i+ X* C3 J6 m
2. 能将应用组件部署到不同服务器(分布式应用)0 @- K4 C; s& E% H w/ k; ?
3. 支持多客户端访问
' g. B0 T& G9 T* W, Z6 s3 J4 [ 4. 使用到异步消息模式的时候可以采用message driven bean% _+ r. Q+ [" X
5. 能实现复杂的事务管理
# P2 Q6 W: S0 t. a5 [- N t 采用前提:9 n, l$ [" P! w, e. e7 i; P- @1 S! B
1、 对EJB底层比较熟悉
6 F- X7 D+ \: ?3 h6 G 2、 需要使用EJB的角色安全访问
9 W+ x$ A) F5 P2 l+ A3 ? 3、 需要使用EJB的事务管理
4 Q& y% r8 |& \1 x 4、 需要使用EJB的线程安全管理
6 i4 q, t# a" n" g* q+ `. [. }- K 5、 需要使用基于RMI/IIOP的分布式架构. O4 I- ]$ R I
4种J2EE基本框架
# ], e/ \. Z* G1 ^% |9 x$ L: ~ 一。非分布式框架; f: c9 b% I# x2 o0 x2 P- E
1、(Web UI tier + Business Logic tier) + implement tier + DBMS- {0 W* v# m! ?0 ~% e F
实现简单、能满足大部分需求,是中小型J2EE项目中采用最多的框架,虽然没有使用EJB,但是层次清晰。
/ Z: d2 p' T9 V; ?( { 优点:* i% |% l0 L- @6 `. z8 d6 p
1.简单
# ?5 T! O& o+ ?7 t) N 2.速度快 y( f# o D& r5 O7 i, g2 x
3.符合OO设计
, l" \* M( z2 R0 {8 Q8 t 4.容易测试8 |, i3 \# |/ \& z8 S5 ~. E' V
缺点:
8 T, ]- |+ J( R. Z" \ ]- B. E T 1.仅仅适用于Web UI
- I( q( l) }4 q+ A 2.自己管理事务2 S7 x7 ], ] R% W
3.无法实现高并发处理
5 k5 o1 X e$ G" P1 z- i 4.无法使用entity bean
4 `; r2 d) {! J. o$ k( _+ f+ O 5.不支持多JVM应用* X+ E" |- `& D! x* P
2、Web UI + local EJB + DBMS0 y- X: V. D) y# _, @8 r
稍微复杂,能使用EJB容器的事务,线程管理,没有采用分布式特性,性能比远程调用稍好
% d" |7 I% d# A. J9 S4 w' _ 优点:0 B* O z* t" y! ^
1.降低了EJB的复杂度
2 C3 |+ G- M+ S( i7 V 2.不会对基础框架造成影响
0 `8 x& F2 H- _# U* m) K9 Y 3.本地调用对性能有一定优势
; t- [6 l. `2 N 4.可以使用EJB容器的事务和线程管理( g4 H. n# x. G t+ R5 Y- d3 U
5.可以使用entity bean+ j' q$ {, c( M$ ^
缺点:" D$ p; ?$ P# K' A3 j; P# x$ E, Q& `
1.比纯web应用复杂
a9 r# z a1 b& r1 P( g, } 2.单JVM运行
" |0 K: g$ k- k/ b+ [ 3.单客户端(web)支持$ H: J/ h4 h5 F' f4 T7 i3 B
4.测试困难 |