下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

主要中间件技术为何能如此快速发展?

作者:课课家教育the     来源: http://www.kokojia.com点击数:1500发布时间: 2017-05-20 08:00:00

标签: 主要中间件技术中间件开发软件

软考,您想通过吗?一次通过才是硬道理

    中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。

    中间件是处于操作系统和应用程序之间的软件,我们在使用中间件时,往往是一组中间件集成在一起,这样就构成一个平台(包括开发平台和运行平台),但在这组中间件中必须要有一个通信中间件,即中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。

主要中间件技术为何能如此快速发展?_主要中间件技术_中间件开发_软件_课课家教育

  一、基于目的和实现机制的不同,中间件可分为六类:

      1.终端仿真/屏幕转换

  用以实现客户机图形用户接口与已有的字符接口方式的服务器应用程序之间的互操作;

  2.数据访问中间件

  是为了建立数据应用资源互操作的模式,对异构环境下的数据库实现联接或文件系统实现联接的中间件;在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,这类中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。

  3.远程过程调用中间件

  远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。事实上,一个RPC应用分为两个部分:server和client。server提供一个或多个远程过程;client向server发出远程调用。server和client可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。相应的stub和运行支持提供数据转换和通讯服务,从而屏蔽不同的操作系统和网络协议。在这里RPC通讯是同步的。采用线程可以进行异步调用。

  在RPC模型中,client和server只要具备了相应的RPC接口,并且具有RPC运行支持,就可以完成相应的互操作,而不必限制于特定的server。因此,RPC为client/server分布式计算提供了有力的支持。同时,远程过程调用RPC所提供的是基于过程的服务访问,client与server进行直接连接,没有中间机构来处理请求,因此也具有一定的局限性。比如,RPC通常需要一些网络细节以定位server;在client发出请求的同时,要求server必须是活动的等等。

  4.消息中间件

  MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。消息传递和排队技术有以下三个主要特点:

  (1)通讯程序可在不同的时间运行

  程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。

  (2)对应用程序的结构没有约束

  在复杂的应用场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。

  (3)程序与网络复杂性相隔离

  程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。

 MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。消息传递和排队技术有以下三个主要特点:    (1)通讯程序可在不同的时间运行    程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。    (2)对应用程序的结构没有约束    在复杂的应用场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。    (3)程序与网络复杂性相隔离    程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。

  5.交易中间件

  是在分布、异构环境下提供保证交易完整性和数据完整性的一种环境平台。在分布式事务处理系统中要处理大量事务,常常在系统中要同时做上万笔事务。在联机事务处理系统(OLTP)中,每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行;同时要使大量事务在多台应用服务器能实时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求系统具有监视和调度整个系统的功能。

  根据X/OPEN的DTP(DistributedTransactionProcessing)模型规定,一个分布式交易处理系统应由事务处理、通信处理以及资源管理三部分组成。BEA公司的TUXEDO便是最著名的一个交易中间件产品,东方通科技公司的TongLINK和TongEASY实现了DTP参考模型规定,另外还有IBM公司的TXSeriers是应用广泛的一个交易中间件产品。

  6.对象中间件

  在分布、异构的网络计算环境中,可以将各种分布对象有机地结合在一起,完成系统的快速集成,实现对象重用,在这个方面遵循的标准是CORBA。对象中间件将是未来的主流,目前产品如东方通的TONGBROKER,INPRICE公司的BorlandApplicationServer。

  当然,IDC的分类并不能包含目前所有的中间产品,比较流行的还有:

  (1)Web服务器中间件

  浏览器图形用户界面已成为公认规范,然而它的会话能力差、不能作数据写入、受HTTP协议的限制等,就必需进行修改和扩充,形成了Web服务器中间件,如SilverStream公司的产品,BEA公司的BEAWEBLOGIC,东方通公司的TONGWEB。

  (2)安全中间件

  一些军事、政府和商务部门上网的最大障碍是安全保密问题,而且不能使用国外提供的安全措施(如防火墙、加密、认证等),必需用国产的产品。产生不安全因素是由操作系统引起的,但必需要用中间件去解决,以适应灵活多变的要求。如东方通公司的TONGSEC。

 

  二、从软件角度,中间件软件主要有下面几类:

  1、OracleWebLogicApplicationServer

  2、IBMWebSphereApplicationServer

  3、JBossApplicationServer

  三、通过以上内容我们可以大概知道中间件的具体分类及它们各自的作用,但是我们为什么要使用中间件呢?

  中间件是构件化软件的一种表现形式。中间件抽象了典型的应用模式,应用软件制造者可以基于标准的中间件进行再开发,这种操作方式其实就是软件构件化的具体实现。

  对于用户来说,选择中间件产品,主要是基于以下几个方面的好处:

  首先,中间件产品对各种硬件平台、操作系统、网络数据库产品以及Client端实现了兼容和开放。例如,曾有一位BEA的客户从IBM平台迁移到Sun的平台,原来开发的200万行C语言代码仅仅花了3个小时就重新编译完成,没有遇到任何问题。如果没有中间件,这样的平台迁移势必将大费周折。

  其次,中间件保持了平台的透明性,使开发者不必考虑操作系统的问题。

  其三,中间件实现了对交易的一致性和完整性的保护,提高了系统的可靠性。

  其四,中间件产品可以降低开发成本,提高工作效率。TheStandishGroup分析了100个关键应用系统中的业务逻辑程序、应用逻辑程序及基础程序所占的比例,结果发现,业务逻辑程序、应用逻辑程序仅占总程序量的30%,而基础程序却占了70%。如果以新一代的中间件系列产品进行组合应用,同时配合可复用的商务对象构件,则应用开发费用可望节省80%。

  其五,基础软件的开发还是一件耗时费力的工作,如果使用标准商业中间件,大部分的编程工作将得以节省,用户可以将注意力集中于个性化的增值应用方面,并缩短开发周期50%~75%,从而更快地将产品投放市场。

三、通过以上内容我们可以大概知道中间件的具体分类及它们各自的作用,但是我们为什么要使用中间件呢?    中间件是构件化软件的一种表现形式。中间件抽象了典型的应用模式,应用软件制造者可以基于标准的中间件进行再开发,这种操作方式其实就是软件构件化的具体实现。    对于用户来说,选择中间件产品,主要是基于以下几个方面的好处:    首先,中间件产品对各种硬件平台、操作系统、网络数据库产品以及Client端实现了兼容和开放。例如,曾有一位BEA的客户从IBM平台迁移到Sun的平台,原来开发的200万行C语言代码仅仅花了3个小时就重新编译完成,没有遇到任何问题。如果没有中间件,这样的平台迁移势必将大费周折。    其次,中间件保持了平台的透明性,使开发者不必考虑操作系统的问题。    其三,中间件实现了对交易的一致性和完整性的保护,提高了系统的可靠性。    其四,中间件产品可以降低开发成本,提高工作效率。TheStandishGroup分析了100个关键应用系统中的业务逻辑程序、应用逻辑程序及基础程序所占的比例,结果发现,业务逻辑程序、应用逻辑程序仅占总程序量的30%,而基础程序却占了70%。如果以新一代的中间件系列产品进行组合应用,同时配合可复用的商务对象构件,则应用开发费用可望节省80%。    其五,基础软件的开发还是一件耗时费力的工作,如果使用标准商业中间件,大部分的编程工作将得以节省,用户可以将注意力集中于个性化的增值应用方面,并缩短开发周期50%~75%,从而更快地将产品投放市场。

  四、中间件的缺点

  中间件能够屏蔽操作系统和网络协议的差异,为应用程序提供多种通讯机制;并提供相应的平台以满足不同领域的需要。因此,中间件为应用程序提供了一个相对稳定的高层应用环境。然而,中间件服务也并非“万能药”。中间件所应遵循的一些原则离实际还有很大距离。多数流行的中间件服务使用专有的API和专有的协议,使得应用建立于单一厂家的产品,来自不同厂家的实现很难互操作。有些中间件服务只提供一些平台的实现,从而限制了应用在异构系统之间的移植。应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,随着技术的发展他们往往还需重写他们的系统。尽管中间件服务提高了分布计算的抽象化程度,但应用开发者还需面临许多艰难的设计选择,例如,开发者还需决定分布应用在client方和server方的功能分配。通常将表示服务放在client以方便使用显示设备,将数据服务放在server以靠近数据库,但也并非总是如此,何况其它应用功能如何分配也是不容易确定的。

  五、中间件市场概况

  中间件是软件技术发展的一种潮流,被誉为发展最快的软件品种,近年来势头强劲,当然,这也是源于市场在全球范围内对中间件的支持。毫无疑问,中间件正在成为软件行业新的技术与经济增长点。

  1999年,Nasdaq股市上投资回报率最高的并非某些名声显赫的网站,而是全球最大的独立中间件厂商BEA公司,其股票升幅高达884.6%。时至今日,BEA的营业收入已连续18个季度保持高速增长。

  国际数据集团(IDC)在日前发表的一份报告中预计今后五年中间件市场将快速成长。IDC预计全球中间件和商业软件收入将从1999年的27亿美元增长到2004年的近97亿美元,增长255%。据GlobalSight公司预计,全球电子商务市场到2001年将达到1.2万亿美元。ForresterResearch则估计,仅仅是BtoB电子商务,到2003年的年收入就将达到1.3万亿美元。而业内人士认为,未来基于Internet的电子商务业务将有79%建筑在中间件的基础之上。无疑,这将带来一个潜力巨大的市场。

  在中国,有关数字同样让人兴奋,1998年中间件市场总值达12.34亿美元;1999年为17亿美元;预测到2004年将达到90.3亿美元,年增长率为39.7%,远远高于软件业的平均增长水平。

  小编结语:

  中间件技术主要用来支撑分布式软件的开发,在大型分布式软件系统中中间件技术发挥着极其重要的作用。但是中间件技术也并不是一夜成名的,像任何其他技术一样它的发展也是经历了一个比较漫长的过程的。希望本文能够让你体会到中间件技术的魅力。

  以上就是小编在本文跟大家分享的精彩内容!更多相关内容请登录课课家教育官网查看~~

赞(0)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程