设计目标:, P& Z! E3 i9 p. T8 i
1. 开发效率
& J$ @' r0 g( `4 |- }4 t 2. 性能、预算
: ?/ v" c& q) Q- A' r 3. 符合OO设计
; O* m! U- d5 X0 H2 h% i 4. 避免复杂性/ R7 P; |% W$ T7 c, C' L
5. 可维护性、可扩展性,可重用性 |9 Q6 G# P, A2 f# e$ s1 d
分布式应用
/ j2 w8 Y) A A: @3 { 不足:1 V9 e! F+ P+ n* W' Q
1. 增加了应用的复杂性
: ^) M! \7 _5 c I 2. 对性能会造成一定的影响/ r7 f( C4 b1 M% t
3. 给OO Design带来一定的困难
5 {/ g. l6 o6 ?! p- x 优点:( Z7 D( @, J# v. }, _; u
1. 能满足多类型客户端的需求(applet, swing): n8 I2 l- l) }" h; E, r: r( H `
2. 能同时将组件部署到不同的应用服务器6 o: N% J4 z8 p0 b3 L
采用前提:
7 e! t6 E1 e' ]# ]- ~4 v0 V: W 1. 客户端需要使用J2EE技术,比如Swing$ Z7 \9 I! \* O$ |5 ^ j
2. 为了与已有的分布式应用集成
0 A( f% ?6 ]- O3 q5 r% [ 3. 需要将J2EE组件部署到多个应用服务器6 s/ O( ^5 s1 p0 _/ V9 P `1 J
4. 实现对多应用组件部署进行控制,提高系统灵活性、可靠性5 \" S& b- e& y \2 [- ^5 P
可选技术:
5 i/ ^( H/ Z" E 可通过集群和负载平衡(remote interface调用单服务器应用)来实现分布式应用的健壮性、灵活性
' s4 i* o5 ~) o" C& a, b6 W) e EJB技术
1 p0 B- i5 f2 B 缺点:2 ?0 J& S; ^1 e. i7 S
1. 测试困难
3 {7 c5 n7 n% ~ K 2. 部署麻烦(classloader复杂、部署描述符复杂、开发-部署-测试周期长)
% n# L# T2 f6 M: N( \5 A1 k" J 3. 采用remote interface的EJB不符合OO Design
- U1 k( ]; a+ J# b2 R# o 4. 技术复杂,可能将简单需求变得复杂开发
# c* G5 c8 K8 }) h1 I" G 5. 减少了应用服务器的选择
2 h* q2 s5 S7 R' I& H 优点:: i0 O+ |! ?9 s: V. d
1. 能远程访问组件
4 g2 J k( v5 t; b/ G, k0 W 2. 能将应用组件部署到不同服务器(分布式应用)+ {! E9 a! `1 A. s' f/ {0 g5 J5 R
3. 支持多客户端访问2 K9 `! D1 L7 [' Y
4. 使用到异步消息模式的时候可以采用message driven bean
1 F T0 w, T: |- _6 Q* D4 [ 5. 能实现复杂的事务管理
) @; v9 d3 C* w- b 采用前提:
2 w" U# c0 C' G5 t6 \# j 1、 对EJB底层比较熟悉
6 \' i1 u2 f. E* k 2、 需要使用EJB的角色安全访问
$ n+ r( @& F: h. c; h 3、 需要使用EJB的事务管理' b4 Y" w* e% b0 G
4、 需要使用EJB的线程安全管理
' D5 X, j! s" m! [ 5、 需要使用基于RMI/IIOP的分布式架构
+ b* Q! Z7 c# k: g 4种J2EE基本框架8 ]) }' e1 Z! A! j, @# x# r/ k
一。非分布式框架
0 A/ c" M5 u6 d 1、(Web UI tier + Business Logic tier) + implement tier + DBMS
: I5 }: G6 r4 x+ b% q; |5 `+ O 实现简单、能满足大部分需求,是中小型J2EE项目中采用最多的框架,虽然没有使用EJB,但是层次清晰。
: H, L' d% ?3 f! A 优点:
* u2 r; m$ }4 z2 U# [4 L 1.简单
( L5 ]! I9 C( f$ H+ _/ P 2.速度快$ M! U3 a2 \( e( i8 W, r$ W
3.符合OO设计
5 t2 y% l8 q+ }1 W: ^2 e 4.容易测试6 @2 p9 J5 q% V1 ?* o
缺点:
& |: v. E+ o8 p. F 1.仅仅适用于Web UI
+ F4 }" j9 K2 z n( x3 q, m 2.自己管理事务9 ^ A1 G/ I! A! j$ {- O
3.无法实现高并发处理0 @1 o4 j8 b6 q- T9 Z# i4 K: h* E
4.无法使用entity bean& f7 G% \* L" Y* G
5.不支持多JVM应用* k6 V; U! m! E5 y$ I9 j: F# Q# q! e
2、Web UI + local EJB + DBMS
; U( o% r6 R+ ~$ ?, y% T, F 稍微复杂,能使用EJB容器的事务,线程管理,没有采用分布式特性,性能比远程调用稍好
, m! F9 b$ h/ K$ v 优点:3 a9 a9 v9 t: Y/ e0 I0 @( ^
1.降低了EJB的复杂度 `6 B3 N, w. [( C' R
2.不会对基础框架造成影响# Z% y; p0 w0 w
3.本地调用对性能有一定优势9 ]" e( o w( q4 L: @
4.可以使用EJB容器的事务和线程管理
' N3 Z9 W& g$ t! V" u 5.可以使用entity bean
/ a+ s) X) F8 u4 K ]$ G. l 缺点:: B ^! |% r+ g- [5 }: _
1.比纯web应用复杂
2 S$ T) l5 m9 I0 \0 i 2.单JVM运行8 R% ]# t! ~4 U9 I' k
3.单客户端(web)支持( a6 k4 G. m8 z* n" J6 f
4.测试困难 |