从量化权衡SOA
凡事有利必有弊。SOA有着架构灵活、构件复用等优点,但其对性能的影响也不可忽视。
凡事有利必有弊。SOA有着架构灵活、构件复用等优点,但其对性能的影响也不可忽视。
SOA采用SOAP(Simple Object Access Protocol,简单对象访问协议)作为其传输数据封装的事实标准,而SOAP是XML的一组集合,自然地继承了XML的冗长。SOA系统的网络中传输的是XML封装后的数据包,必然经过序列化、压缩、解压、反序列化等一系列过程,这里面的性能降低是显而易见的。比如每一个请求都需要经过前述的一系列过程,在很多情况下,网络传输中真正需要的数据远比XML的表示要少。
所以,基于SOA的系统性能必然存在问题,如果再考虑其并发性,其资源浪费率就会明显上升。详细的量化分析,见右边具体数据分析。该数据模型表明,一个应用系统是由一个门户和多个应用系统组成的集群平台,应用系统间的交互、应用系统与门户、门户与BPM(业务流程管理)的交付等均通过ESB(企业服务总线)形式来完成。这其中影响性能的重要因素是,系统间通过WS(Web Service,网络服务)进行交付时要封装的XML数据,以及对这些XML数据处理要占用大量资源。通过数据分析可以发现,要完成这个业务系统,对系统的要求本身就已经很高,达到了11165538tpmC。
TPC(TransactionProcessing PerformanceCouncil,事务处理性能委员会)是由数十家会员公司创建的非盈利组织。TPC-C是TPC推出的在线事务处理(OLTP)的基准程序。TPC-C使用三种性能和价格度量,其中性能由TPC-C吞吐率衡量,单位是tpmC。tpm是Transactions Per Minute的简称;C指TPC中的C基准程序。它的定义是每分钟内系统处理的新订单个数。价格是指系统的总价格,单位是美元,而价格性能比则定义为总价格/性能。一个峰值为11165538tpmC的系统,对其IT基础设施的要求是相当可观的。在这样的情况下,设计系统时要在性能与SOA的灵活性方面进行权衡。
可见,把SOA放在一个实时性要求很高、来回请求频繁的事务环境中,就不太合理。XML的处理过程就要占用大量的处理时间,这对于门户、ESB等系统均带来极大的负担。
但是由于SOA具有分布式、服务分散的、服务接口化、系统间对接灵活度高等特点,在很大程度上减轻了企业业务系统的整合负担,同时基于SOA的业务系统均存在的特点是事务复杂、子系统众多,这使得SOA的优点得以很好地表现,其性能因素可能要排在其次。
目前,对于SOA的性能优化已经成为许多研究机构和大学的重要研究课题,并通过绕过XML文档的编译/排列/反排列/反编译的生命周期提出了一些典型的方法。比如采用具体模式的优化编译器来实现,这使得XML可以使用本地化负载处理模式,从而绕过XML数据的复杂周期。
门户的峰值分析:
注册用户:20000
在线用户:注册用户×50% = 10000
日访问量:10000×30=300000人次
平均每分钟访问量: 300000/?穴8×60?雪=625次/分钟
高峰访问量:625×4=2500次/分钟
设定TPC-C基准值为25倍:2500×25=62500tpmC
设定峰值访问量为平均值的3倍:62500×3=187500tpmC
设定高峰期系统利用率为65%:187500/65%=288462tpmC
设定集群软件占用系统20%资源:288462×(100%+20%)=346154tpmC
设定操作系统等软件占用系统20%资源:346154×(100%+20%)=415385tpmC
- 本文关键词:

