有了它,才能释放SOA的最大价值
因此,ESB成为厂商在SOA(面向服务的架构)竞争中的焦点
作为近两年软件领域最热门的词汇之一,SOA(ServiceOriented,面向服务的架构)的概念以及SOA带来的好处,正在被用户逐步接受
Gartner的数据表明,到2007年,全球将有70%以上的大企业会将他们的应用转到SOA
但是目前CIO们最关心的是,如何才能真正实现基于SOA的应用在近一段时期,多家软件厂商如IBM、Sun、BEA、Oracle等都加大了对ESB(EnterpriseServiceBus,企业服务总线)产品的投入力度,并声称自己的SOA解决方案因此而更加完善,ESB成为厂商在SOA竞争中的焦点
ESB成为一种新的诱惑ESB是传统中间件技术与XML、Web服务等技术结合的产物
ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素
业内对ESB的定义是:它是由中间件技术实现并支持SOA的一组基础架构,支持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别和可管理性
这样的定义稍显抽象,简单地说,ESB就是试图将应用服务器上的多种逻辑层面迁移到总线以及连接点上,从而降低企业内部信息共享的成本
IBMWebSphere软件全球副总裁SandyCarter女士介绍说,“企业服务总线是SOA中的消息框架-即消息相互交换和通信的方式,是业界标准与客户消息框架的整合
”ESB产品的共有特性包括:连接异构的MOM(MicrosoftOperationsManager)、利用Web服务描述语言接口封装MOM协议,以及在MOM传输层上传送简单对象应用协议(SOAP)传输流的能力
大多数ESB产品支持在分布式应用之间通过中间层如集成代理实现直接对等沟通
ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合
从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口
在电信领域:ESB能够在全方位支持电信行业OSS(运营支撑系统)的应用整合概念,是理想的电信级应用软件承载平台
在电力领域:ESB能够全方位支持电力行业EMS的数据整合概念,是理想的系统数据交换平台
在金融领域:ESB能够在全方位支持银企间业务处理平台的流程整合概念,是理想的B2B交易支撑平台
为SOA挑起大旗对于SOA的概念,不同的软件提供商有不同的定义方式
很多用户也都是从不同的视角来理解SOA,从程序员的角度,SOA是一种全新的开发技术,新的组件模型,比如说WebService;从架构设计师的角度,SOA就是一种新的设计模式,方法学;从业务分析人员的角度,SOA就是基于标准的业务应用服务
SOA不仅是Web服务,如何让业务服务最大限度地复用才是SOA的核心价值
ESB为分散服务提供了交互、组合和治理的基础架构
有了它,才能释放SOA的最大价值
我们可以这样来理解,ESB就是在SOA架构中实现服务间智能化集成与管理的中介
而它与SOA的关系是:ESB是逻辑上与SOA所遵循的基本原则保持一致的服务集成基础架构,它提供了服务管理的方法和在分布式异构环境中进行服务交互的功能
可以这样说,ESB是特定环境下(SOA架构中)实施EAI(enterpriseapplicationintegration,企业应用集成)的方式
IONA公司大中国区总裁薛志勇表示,采用IONA公司的ESB产品Artix作为SOA的切入点,将可以使企业以最小的投入将已有系统纳入SOA架构
薛志勇称,目前ESB是SOA集成中最普遍采用的方法,传统的EAI和平台厂商是以“服务器”为中心、以“Hub”为形式的解决方案,这种方法虽然解决了信息孤岛问题,但投资大,见效慢,而且也不灵活
因为ESB是传统中间件技术与XML、Web服务等技术结合的产物,对企业而言,采用ESB中间件系统作为企业级信息系统整合方案中的中枢技术,可以无须添加任何软硬件设备,就可把过去、现有和未来的IT系统整合在企业级的信息应用框架下,并且能为企业提供实时、大容量的信息通信和实时控制、管理和分配消息传递的能力
目前,除了IONA、Tibco等专业的ESB公司外,SOA的两大领导厂商IBM和BEA也加入了ESB的阵营
Forrester公司分析师MikeGilpin说:“尽管人们还不十分确定如何构建出一个完整的SOA,但他们已经知道要解决集成问题,而ESB正好能帮助他们解决该问题
”国内CIO对SOA早已听了很多
SOA的理念和他们所面临诸多挑战,SOA的开放性和灵活性,给了CIO一个选择它的理由
然而,不菲的平台迁移成本以及缺少成功案例的佐证,都让CIO难下决心
CIO不但要考虑必须对现有产品进行集成以支持SOA的使用场景
还必须考虑如何构建面向未来的SOA应用
ESB的出现和应用恰好为这个难题提供了一个解决之道
甲骨文公司在去年将ESB产品内嵌在其业务流程管理产品中,今年就推出了独立的ESB产品
BEA推出了AquaLogicServiceBus等来加强ESB的产品线
IBM在原有WBIMessageBroker、WAS6SIBus这些集成产品之外,又推出了独立的WebSphereESB产品
而传统的EAI厂商Tibco和WebMethods也宣布了各自的ESB产品
BEA公司中国区技术经理刘汩春认为:“SOA的‘服务’必须是可组装编排、可快速注册发布、质量可监控、生命周期可管理的
这样SOA才能在整个IT范围内实现服务治理和优化,从而直接推动业务的优化
而从简单的服务重用框架到SOA演进的过程中,ESB就是其中最重要的催化剂之一
”ESB的兴起让SOA的渐进之路可以走得更开放和平稳,而ESB也代表了中间件产品本身的进化方向,从应用领域而言,由于ESB是基于开放的Web服务而来,在SOA的发展过程中,ESB已经当仁不让地挑起大旗
ESB开源之路开源软件市场这几年的发展也早就显示出极其旺盛的生命力
Linux服务器、开源数据库、开源应用软件等产品的市场份额都已有了很大提高
开源软件已成为政府机构和企业用户节约成本的一种有效手段
随着Java应用服务器迅速成为一种大众化商品,企业中间件也朝着开源的方向跟进
近两年,已出现了许多极其成熟的企业服务总线实施项目
Sun在JavaOne大会上发布了自己的免费ESB
这个名为Java开放式企业服务总线的项目将放在Java
net上进行,第一个版本有望在今年夏末交付
Sun还计划把来自这个社区项目的代码包装成商用产品
Sun的应用程序以及开发者平台的市场副总经理JoeKeller说,OpenESB将会基于Java商业集成1
0规范
还提供了使用开源代码的Java系统应用程序服务器
“这将是一个推动整个世界商业的应用程序服务器,”Keller说
而在Sun对ESB开源前,Iona科技公司就公开了Celtix的源代码,这是采用GNULGPL许可证的JavaESB,从而启动了ObjectWeb社区在ESB方面的工作
Iona方面声称,Celtix将支持Java商业智能(JBI)规范,该规范为跨应用集成明确规定了标准化的对象容器
目前市场上已经有大量BEA、IBM以及Sun等大制造商生产的ESB产品
而ObjectWeb在上星期也接收到了法国IT服务公司BULL的源代码捐赠来加速它ESB产品发展
随着开源项目的这股趋势,这个领域的所有供应商都在观望哪个ESB会获得成功
IDC的副总裁DennisByron说:“拿IBM举例,如果不管什么原因ObjectWeb占据了市场!
作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行,但硬件问题、软件问题、网络环境等的复杂性和多变性,导致了对系统的优化变得异常复杂,如何定位性能问题出在哪个方面,是性能优化的一大难题。 本文从系统入手,重点讲述由于系统软、硬件配置不当造成的性能问题,并且给出了检测系统故障和优化性能的一般方法和流程。一、 系统性能分析的目的
11 找到系统性能的瓶颈
系统的性能是指 *** 作系统完成任务的有效性、稳定性和响应速度。Linux系统管理员可能经常会遇到系统不稳定、响应速度慢等问题,例如在Linux上搭建了一个Web服务,经常出现网页无法打开、打开速度慢等现象。遇到这些问题,就有人会抱怨Linux系统不好,其实这些都是表面现象。 *** 作系统完成一个任务是与系统自身设置、网络拓朴结构、路由设备、路由策略、接入设备、物理线路等多个方面都密切相关的,任何一个环节出现问题,都会影响整个系统的性能。因此,当Linux应用出现问题时,应当从应用程序、 *** 作系统、服务器硬件、网络环境等方面综合排查,定位问题出现在哪个部分,然后集中解决。
12 提供性能优化方案
查找系统性能瓶颈是个复杂而耗时的过程,需要在应用程序、 *** 作系统、服务器硬件、网络环境等方面进行查找和定位,影响性能最大的是应用程序和 *** 作系统两个方面,因为这两个方面出现的问题不易察觉,隐蔽性很强。而硬件、网络方面出现的问题,一般都能马上定位。一旦找到了系统性能问题,解决起来就非常迅速和容易,例如发现系统硬件存在问题,如果是物理故障,那么更换硬件就可以了,如果是硬件性能不能满足需求,升级硬件就可以了;如果发现是网络问题,比如带宽不够、网络不稳定,只需优化和升级网络即可;如果发现是应用程序问题,修改或优化软件系统即可;而如果是 *** 作系统配置问题,修改系统参数、修改系统配置即可。
可见,只要找到了性能瓶颈,就可以提供性能优化方案,有标准、有目的地进行系统优化。
13 使系统硬件和软件资源的使用达到平衡
Linux *** 作系统是一个开源产品,也是一个开源软件的实践和应用平台,在这个平台下由无数的开源软件支撑,常见的有Apache、Tomcat、MySQL、PHP等。开源软件的最大理念是自由、开放,那么Linux作为一个开源平台,最终要实现的是通过这些开源软件的支持,以最低廉的成本,达到应用性能的最优化。但是,系统的性能问题并非是孤立的,解决了一个性能瓶颈,可能会出现另一个性能瓶颈,所以说性能优化的最终目的是:在一定范围内使系统的各项资源使用趋于合理并保持一定的平衡,即系统运行良好的时候恰恰就是系统资源达到了一个平衡状态的时候。而在 *** 作系统中,任何一项资源的过度使用都会破坏这种平衡状态,从而导致系统响应缓慢或者负载过高。例如,CPU资源的过度使用会造成系统中出现大量的等待进程,导致应用程序响应缓慢,而进程的大量增加又会导致系统内存资源的增加,当物理内存耗尽时,系统就会使用虚拟内存,而虚拟内存的使用又会造成磁盘I/O的增加并加大CPU的开销。因此,系统性能的优化就是在硬件、 *** 作系统、应用软件之间找到一个平衡点。
二、 分析系统性能涉及的人员
21 Linux系统管理人员
在做性能优化过程中,系统管理人员承担着很重要的任务,首先,系统管理人员要了解和掌握 *** 作系统的当前运行状态,例如系统负载、内存状态、进程状态、CPU负荷等信息,这些信息是检测和判断系统性能的基础和依据;其次,系统管理人员还有掌握系统的硬件信息,例如磁盘I/O、CPU型号、内存大小、网卡带宽等参数信息,然后根据这些信息综合评估系统资源的使用情况;第三,作为一名系统管理人员,还要掌握应用程序对系统资源的使用情况,更深入的一点就是要了解应用程序的运行效率,例如是否有程序BUG、内存溢出等问题,通过对系统资源的监控,就能发现应用程序是否存在异常,如果确实是应用程序存在问题,需要把问题立刻反映给程序开发人员,进而改进或升级程序。
性能优化本身就是一个复杂和繁琐的过程,系统管理人员只有了解了系统硬件信息、网络信息、 *** 作系统配置信息和应用程序信息才能有针对性地的展开对服务器性能优化,这就要求系统管理员有充足的理论知识、丰富的实战经验以及缜密分析问题的头脑。
22 系统架构设计人员
系统性能优化涉及的第二类人员就是应用程序的架构设计人员。如果系统管理人员在经过综合判断后,发现影响性能的是应用程序的执行效率,那么程序架构设计人员就要及时介入,深入了解程序运行状态。首先,系统架构设计人员要跟踪了解程序的执行效率,如果执行效率存在问题,要找出哪里出现了问题;其次,如果真的是架构设计出现了问题,那么就要马上优化或改进系统架构,设计更好的应用系统架构。
23 软件开发人员
系统性能优化最后一个环节涉及的是程序开发人员,在系统管理员或架构设计人员找到程序或结构瓶颈后,程序开发人员要马上介入进行相应的程序修改。修改程序要以程序的执行效率为基准,改进程序的逻辑,有针对性地进行代码优化。例如,系统管理人员在系统中发现有条SQL语句耗费大量的系统资源,抓取这条执行的SQL语句,发现此SQL语句的执行效率太差,是开发人员编写的代码执行效率低造成的,这就需要把这个信息反馈给开发人员,开发人员在收到这个问题后,可以有针对性的进行SQL优化,进而实现程序代码的优化。
从上面这个过程可以看出,系统性能优化一般遵循的流程是:首先系统管理人员查看系统的整体状况,主要从系统硬件、网络设备、 *** 作系统配置、应用程序架构和程序代码五个方面进行综合判断,如果发现是系统硬件、网络设备或者 *** 作系统配置问题,系统管理员可以根据情况自主解决;如果发现是程序结构问题,就需要提交给程序架构设计人员;如果发现是程序代码执行问题,就交给开发人员进行代码优化。这样就完成了一个系统性能优化的过程。
三、影响Linux性能的各种因素
31 系统硬件资源
1.CPU
CPU是 *** 作系统稳定运行的根本,CPU的速度与性能在很大程度上决定了系统整体的性能,因此,CPU数量越多、主频越高,服务器性能也就相对越好。但事实并非完全如此。
目前大部分CPU在同一时间内只能运行一个线程,超线程的处理器可以在同一时间运行多个线程,因此,可以利用处理器的超线程特性提高系统性能。在Linux系统下,只有运行SMP内核才能支持超线程,但是,安装的CPU数量越多,从超线程获得的性能方面的提高就越少。另外,Linux内核会把多核的处理器当作多个单独的CPU来识别,例如两个4核的CPU,在Lnux系统下会被当作8个单核CPU。但是从性能角度来讲,两个4核的CPU和8个单核的CPU并不完全等价,根据权威部门得出的测试结论,前者的整体性能要比后者低25%~30%。
可能出现CPU瓶颈的应用有邮件服务器、动态Web服务器等,对于这类应用,要把CPU的配置和性能放在主要位置。
2.内存
内存的大小也是影响Linux性能的一个重要的因素,内存太小,系统进程将被阻塞,应用也将变得缓慢,甚至失去响应;内存太大,导致资源浪费。Linux系统采用了物理内存和虚拟内存两种方式,虚拟内存虽然可以缓解物理内存的不足,但是占用过多的虚拟内存,应用程序的性能将明显下降,要保证应用程序的高性能运行,物理内存一定要足够大;但是过大的物理内存,会造成内存资源浪费,例如,在一个32位处理器的Linux *** 作系统上,超过8GB的物理内存都将被浪费。因此,要使用更大的内存,建议安装64位的 *** 作系统,同时开启Linux的大内存内核支持。
由于处理器寻址范围的限制,在32位Linux *** 作系统上,应用程序单个进程最大只能使用2GB的内存,这样以来,即使系统有更大的内存,应用程序也无法“享”用,解决的办法就是使用64位处理器,安装64位 *** 作系统。在64位 *** 作系统下,可以满足所有应用程序对内存的使用需求 ,几乎没有限制。
可能出现内存性能瓶颈的应用有打印服务器、数据库服务器、静态Web服务器等,对于这类应用要把内存大小放在主要位置。
3.磁盘I/O性能
磁盘的I/O性能直接影响应用程序的性能,在一个有频繁读写的应用中,如果磁盘I/O性能得不到满足,就会导致应用停滞。好在现今的磁盘都采用了很多方法来提高I/O性能,比如常见的磁盘RAID技术。
RAID的英文全称为:Redundant Array of Independent Disk,即独立磁盘冗余阵列,简称磁盘阵列。RAID通过将多块独立的磁盘(物理硬盘)按不同方式组合起来形成一个磁盘组(逻辑硬盘),从而提供比单个硬盘更高的I/O性能和数据冗余。
通过RAID技术组成的磁盘组,就相当于一个大硬盘,用户可以对它进行分区格式化、建立文件系统等 *** 作,跟单个物理硬盘一模一样,唯一不同的是RAID磁盘组的I/O性能比单个硬盘要高很多,同时在数据的安全性也有很大提升。
根据磁盘组合方式的不同,RAID可以分为RAID0,RAID1、RAID2、RAID3、RAID4、RAID5、RAID6、RAID7、RAID0+1、RAID10等级别,常用的RAID级别有RAID0、RAID1、RAID5、RAID0+1,这里进行简单介绍。
RAID 0:通过把多块硬盘粘合成一个容量更大的硬盘组,提高了磁盘的性能和吞吐量。这种方式成本低,要求至少两个磁盘,但是没有容错和数据修复功能,因而只能用在对数据安全性要求不高的环境中。
RAID 1:也就是磁盘镜像,通过把一个磁盘的数据镜像到另一个磁盘上,最大限度地保证磁盘数据的可靠性和可修复性,具有很高的数据冗余能力,但磁盘利用率只有50%,因而,成本最高,多用在保存重要数据的场合。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)