a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 337|回复: 1

[专业语言] JAVA认证:J2EE框架设计技术解析

[复制链接]
发表于 2012-8-4 12:44:44 | 显示全部楼层 |阅读模式
设计目标:, 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.测试困难
回复

使用道具 举报

 楼主| 发表于 2012-8-4 12:44:45 | 显示全部楼层

JAVA认证:J2EE框架设计技术解析

二。分布式框架" P* u, g# U/ F0 e# j' Y
    1.基于远程调用的分布式
" b- @6 |  r' S3 C9 e8 K% X* e    架构最复杂,对有远程访问客户端的需求是理想选择,健壮、灵活,但是不容易维护、测试、实现困难
. p7 H) _$ u4 K# a6 p) G    优点:
" ?$ t) o9 q7 f" `6 K- H! ?% c. r! e    1.  多客户端支持
0 X% F  V' h2 d/ T$ k/ E    2.  可将应用组件部署到多台服务器(JVM)
# a) x2 Z3 x  |; _. ^% g2 u    缺点:
! v' ~" j. T' [7 B5 }9 l* @' s    1.增加了复杂度8 Y; r. [7 W5 X% N. _/ w
    2.影响性能6 G% `9 }0 g# J( R
    3.调试困难  V" L2 v- I8 ]. e' s; |
    4.必须在EJB容器中运行0 l; s- B+ g: q8 y
    5.异常处理复杂  ?+ U- r/ E: w0 ^" S
    6.OO设计困难
/ _+ Y, M4 L2 S7 e" b$ B- E7 I    2.基于Web Service的分布式. J7 u% r: ^! S7 z& v+ ~
    对非J2EE客户端调用适用性好,无分布式调用,往往作为第一、第二架构的变体。; ~  q+ b, L# l- R3 D  F; t1 V
    优点:
4 A$ I* U5 Y5 e) g2 K* T" v% p    1.  通用标准,能支持更多客户端类型1 ]' B4 [* d1 Q3 C$ g
    2.  提供的Web service接口比RMI接口更好
9 C# i3 M9 o/ a2 c) U    3.  Web service传输协议比RMI更友好9 ~0 \) U- W) e. N+ U' V, h' n; K
    缺点:
, B& p0 h7 S' _  L% M    1.  性能差
2 K) K: N! N1 `6 ^6 K+ H( T  _    2.  需要作object与xml之间的转换8 @$ {5 K. V4 s3 ^  V" _; A+ i
    3.  相对于java client来说,性能也不好: c9 v7 k! J3 O, j1 N1 D; H
    UI框架部分
3 ~1 \8 [& Z( S9 P1 L    选择UI的几个决定性因素:* Y+ c- t: t. h: C8 K  {
    1.  用户的实际需求
4 S0 _# t) V; q# X, P% g: t    2.  项目的性能要求! y( V: U* z# d9 ]. z. E
    3.  当前开发人员技术水平! _$ P0 z2 v: U3 _# u% `
    J2EE框架设计几个需要强调的观点
0 ~5 i" _; O( H+ ^    简单
. s( h' K2 m/ _0 a    可维护性
" N+ N/ }: o  G, j/ ]    性能
3 \$ {* V" F" J4 Q' [    开发效率9 L; S: K- M5 B1 v3 ~: X
    J2EE框架设计通用法则
2 W+ M5 C3 I( w3 v/ _/ b    1.  使用J2EE,而不是让J2EE牵着鼻子走(因需而用,而不是因有而用)0 J/ J- O( C% ?7 s
    2.  万不得已不要使用EJB(谬论:把EJB视为J2EE核心)+ d) G4 i0 u6 Q( G* w
    3.  万不得已不要采用分布式架构
) W$ D+ V8 w* R% _    4.  企业应用不要仅仅局限于J2EE技术(业务知识,。NET技术)
0 M% T, Y% w# W5 q- Y; W8 e0 R    5.  J2EE不仅仅是一个规范; b1 F* P: d8 u4 h2 [9 W8 K* G: Z
    6.  谨慎处理数据库通用性,数据比J2EE应用的寿命更长
2 ^3 m& e$ {* P: C& g( m    7.  利用好JDBC(SQL)技术
( Z( d! G3 c- z* p    8.  不要忽略数据库的能力
7 ]. d8 V# C7 R) T6 b' ?* e    9.  简单即是美- O$ q/ V: k7 p
    10.有时候使用EJB的好处可能来自于无状态Bean  N; B3 o1 {( k" U
    11.在项目启动初期就应该考虑到性能问题. v9 _/ e% K0 F$ Z
    12.在设计的时候考虑应用在集群环境下运行的可能性  A* b5 k) y6 F' g1 W' B( o
    13.好的J2EE设计来自于好的OO设计
5 ]* _5 L' f* I$ b    14.使用辅助类来隐藏底层API实现
9 Q, ?4 a/ D, {; u  L& K    15.在web UI层采用MVC框架
  u! z% b4 \, z# |    J2EE框架设计成则( i( Y. g7 S1 m) h: a2 T
    1.  底层设计必须着眼当前可用规范而不是未来新规范: U# j2 g% u( Y
    2.  没有针对实际需求的简单例程参考价值有限
9 d: R% x% _6 E& N2 }5 Z    3.  对框架进行详尽的测试
4 l2 w9 t, d7 l" C    4.  对代码进行详尽注释; _1 [! t" J) ]. V) e
    5.  尽可能早的对风险加以解决
7 x; m  w$ |* M    6.  项目启动时就确定所采用的服务器
- w' }9 A/ e+ q    7.  在项目早期实现自动测试和构建  B+ H- N9 b$ d4 T
    8.  在项目启动时雇佣J2EE设计专家9 ]7 z: U" w" j8 i" o. W
    9.  避免重复发明轮子7 D3 o0 @( B+ u, D2 Y
    10.统一设计和编码风格
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-7 10:00 , Processed in 1.004366 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表