站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题BEA Tuxedo 开发心得

BEA Tuxedo 开发心得

摘要: BEA Tuxedo 开发心得
<table cellSpacing=0 cellPadding=0 border=0 class="zh114" align="right"> <tr> <td > </td> </tr> </table>
  两大卖点:资源级事务、可靠消息队列;
  优点:
  1. 系统采用C/C++开发,执行效率高于JAVA,适合于OLTP系统;
  2. Tuxedo以API方式屏蔽系统细节,简化编程,以较少的API函数调用即可开发一个应用;
  3. 可以多个Server并行处理,提高处理能力,扩充性非常好,可以根据当前负载动态启动停止多个Server;
  4. 资源级(Queue,Oracle,Informix...)的全局事务保证交易的完整性;
  5. 可靠消息队列(Queue)实现数据的可靠传输,而且可以纳入Tuxedo事务中,可以和数据库操作同时提交或者回退,保证系统级事务的一致性;
  6. 数据依赖路由,事先确定数据的流向,人工调整系统的负载;
  7. 支持分布式系统, Tuxedo/Domain结构中各个域相互独立,通过信任关系调用对方的Service,可以方便复杂系统的划分,支持跨域事务.
  8. 提供易于管理的工具,方便地管理整个应用.
  
  缺点:
  1. 速度问题: 作为一个适用于OLTP系统的交易中间件,若不采用XA方式,需要用户自己控制事务;若采用XA方式,由于要记录全局事务日志(TLOG),处理非常慢,尤其是处理实时任务时,Server是被动的,发起者调用Server,如果结果要记录到数据库,执行的方式为单条提交,速度更是无法忍受(<100条记录/秒).如果没有数据库,或者文件操作,速度非常快.但是一般情况下结果都是要入库的.
  作为Tuxedo一大卖点的可靠队列(Queue)速度更是无法忍受, <50条/秒
  BEA建议在实时处理中打包(几十条)处理,速度确实提高很多,但失去了实时的意义,而且要控制打包和拆包,按记录字段路由等Tuxedo优势都丧失了。
  2. 增加了开发、调试、测试的复杂度: 开发Server使用C语言(访问数据库嵌入SQL,如:Pro*C),实现业务逻辑;前台使用可视化开发环境,用来输入数据和显示数据. 开发任务比两层结构多了很多,如果再使用存储过程,调试需要前台界面、后台Server、存储过程协调进行,大大增加了调试的复杂度,而且一般的开发队伍中都是做前台界面的专门做界面,开发后台的专门做后台,这样组装调试就更加困难了。
  3. 事倍功半的查询处理: 交易处理开发复杂还划算,因为毕竟Tuxedo带给了我们并行、可靠、全局事务等好处,但是使用三层结构做查询处理就太亏了,本来就是简单的给一个条件查出结果显示就OK了,现在要前台输入查询条件,传送给Tuxedo Server,Tuxedo Server根据输入的条件查询数据库,再把数据传送给前台。在Tuxedo中一般使用FML传送数据,若结果有很多,还要控制翻页等功能,复杂得一塌糊涂。若使用两层结构(如PB/VB+Oracle),举手之劳!
  4. 其它问题:
  a. 域Server(GWADM)经常DOWN,不报任何错误,BEA正在解决;
  b. 多机的跨域事务经常无法提交,不报任何错误;
  c. QUE在网络不是特别好的情况下,居然会不先进先出(设置了FIFO).
  其它小的问题多多....
  在开发人员眼里,任何工具总是好多缺点,但是Tuxedo毕竟是中间件业界的老大, 它提供给了我们许多优越的特性. 其它中间件问题比Tuxedo还要多.
  而且BEA在中间件和应用服务器行业绝对是老大哥, “世界1000强”企业排名中的全部24家电信公司, 世界最大的前40家电信公司中的38家都是BEA的客户
  Tuxedo作为TPC-C测试的首选中间件平台(80%以上), IBM,HP都有自己的中间件,但是测试无一例外都选择了Tuxedo. 足以见得TUXEDO的实力.
  
  

<table width="96%"> <tr> <td background="http:///images/dian.gif" height="3"></td> </tr> </table>

↑返回目录
前一篇: 编写高级应用程序
后一篇: Java软件架构设计慨论