中间件之道

时间:2022-08-10 04:13:14

向左还是向右?

无论对谁,在向前发展的时候都需要面临一个选择。

面面俱到只能是一种奢望,而事实上也不可能。

左或者右,这样非此即彼的命题,不仅哈姆雷特有过,现代的几米也给大家提出来过。

到底选择什么样的道路,中间件应该如何发展?

也许,理论总是苍白的。

路,只能在脚下。

步入2006年,中间件应该沿着什么样的道路发展?

作为基础软件的重要组成,中间件已经具备了与操作系统、数据库同等重要的地位,发展势头也非常迅猛,形成了一个巨大的产业。尤其在中国,成为发展最快、加入厂商最多的市场之一。

对于厂商来说,选择什么样的技术和发展方向, CORBA、COM+、还是J2EE,SOA还是构件?选择在什么层级进行发展,基础中间件、应用中间件,还是中间件框架?这些都已经成为了迫切需要思考的问题。

对于已经走过关键业务应用和部门级应用阶段的信息化建设而言,企业需要走向企业级应用,整合各类信息和数据流,这是BI和EAI等走向企业应用前台的重要原因。那么,应该选择什么样的中间件?

产品,国内还是国际?

国产中间件全面反攻

与操作系统和数据库相比,国内在中间件软件领域的技术水平与国外相差无几。

近几年,国产中间件厂商在自己专注的细分领域日益深入,目前部分产品在局部的竞争优势已经初步显露。例如,东方通的消息和交易中间件、普元的构件平台、中创的报表中间件和应用服务器、中关村的门户中间件等基本都已经能和国外厂商分庭抗礼了。

但是,长期以来国内中间件的发展道路基本都是跟随国外的竞争对手后面一步一步走过来,缺乏战略上的竞争优势。这种现状也使得国内中间件厂商在与国外中间件厂商的竞争中,处于比较被动的局面。

随着中间件进入了“多元化和广泛化”的新阶段,国产中间件开始调整发展战略―立足于专业化,形成差异化的竞争优势。

一方面,在应用软件丰富积累的基础上,紧紧把握应用中间件、行业中间件,提供本地化、专业化的中间件产品,从而提高竞争力;另一方面,有技术团队进行服务保障,服务及时。

根据赛迪顾问公布的《2005年度中国中间件产业研究报告》显示,随着互联网的深入发展,中间件的用户结构正朝多元化发展,由此前以电信和金融为主扩展到其他的IT应用行业门户,而这给国产中间件厂商带来了很多发展机会,具体表现为中国中间件厂商在2005年整体竞争力变强,实现了在中间件市场的“群体突破”。

与国外中间件厂商不同的是,2005年国产中间件厂商市场份额保持增长,总体份额比2004年的32.5%上升了6.3%。

在国产中间件未来的发展中,必须要坚持国产中间件在贴近行业、支持服务及产品的组合打包方面的优势。随着国内用户越来越关注成本,在进行IT投资时国产中间件产品的成本优势将有助于国产中间件的不断发展。同时,政府不遗余力的支持也促使国内基础软件的产业群逐步形成,群体优势已经逐渐显现。另外,拓展渠道、与国内外厂商联盟等也是国产中间件做大做强的关键。

国外中间件各有优势

虽然国产中间件厂商在2005年的市场份额保持增长趋势,但是IBM、BEA两大传统国外中间件企业仍然占据了40%的市场份额。从技术和品牌知名度来说,国外中间件产品有着一定的优势,在国外某些大型企业和关键行业的成功经验,也使得它们在国内进行市场推广的时候,获得了一定的经验优势。

此外,与国产中间件厂商相比,国外中间件厂商在资金实力、品牌和产品成熟度方面存在优势,对新理念和新技术的应用也走在国内中间件厂商的前面。

例如,SOA不仅使国外厂商从战略制高点上抢占了先机,还通过一系列的竞争策略扩大自身的市场优势。同时,包括SOA、ESB、Web服务等相关的先进技术和理念,都是由国外厂商提出并率先进行技术研发和产品开发的,因而有着一种先发优势。

国内中间件市场近几年持续高速发展,但前两位一直为IBM和BEA把持,随后甲骨文、Borland、日立等国外中间件企业也纷纷加入中国市场。

虽然他们在本地化服务方面有所欠缺,但是,在产品的发展方向把握、持续开发能力、产品化工作、市场运作等方面都明显比国内中间件企业有优势,也因而迅速占领了相当大的市场份额。

从赛迪顾问等分析机构的报告来看,国内银行、电信等高端领域已经被IBM、BEA等国外中间件企业所占据,国产中间件企业鲜有作为。但是随着其他行业信息化的发展以及用户对中间件的了解,中间件市场也在持续高速发展。这不仅给了国外厂商机会,也给国产厂商有着相当大的成熟和成长空间。

以BEA、IBM为代表的国际中间件厂商,正逐渐将从过去更关注基础架构层面转为基础架构与业务应用并重,具有各自的优势。

IBM通过其功能更为强大的几大软件产品,同时通过SOA理念实现“平台标准化,应用本地化”,吸引更多合作伙伴和中国企业在IBM的中间件平台上进行产品开发。

而BEA在近两年内高举SOA大旗,试图以先进的理念培养市场,抢占市场的有利位置;同时调整渠道模式,增强渠道的销售能力。

甲骨文则通过推出融合中间件平台产品,以构造完整的、开放的商业应用和商业信息为着眼点,其核心组成部分包括网格计算架构、面向服务架构以及企业信息架构。

国产中间件一度被认为是基础件(操作系统、数据库和中间件)中,惟一有希望与国外产品相抗衡的领域,其市场份额的事实也证明了这样的观点。

作为在起步时间上与国外相差无几的国产中间件产品,无论是技术成熟度还是市场占有率,它们都有着卓越的表现。

技术,开源还是专有?

开源:一种态度

随着开源软件在国际范围内的发展越来越顺,中间件的开源之路也自然而然的摆上了台面。

当前,开源应用服务器有两种,一是JBOSS应用服务器,二是JOnAS应用服务器(随着JBOSS被红帽收购,开源应用服务器就只剩下了一种)。JOnAS项目是“Java开放应用服务器”的缩写,其开发活动由法国ObjectWeb(国际开源中间件联盟)所主持。而JBOSS公司的目标就是提供围绕JBOSS应用服务器的“软件服务”,开拓开源技术市场,从而为本企业获取可观的利润。

如今开源中间件似乎已经成为了一股潮流:IBM收购了GlueCode,一举获得了Apache基金会Geronimo(开源应用服务器)开发团队,从而将WebSphere定位于在高端领域,而把开源J2EE应用服务器放在中低端领域;BEA也于日前宣布,将开源其持久性引擎BEA Kodo的重要部分―该开源项目称为Open JPA;甲骨文近两年掀起了并构风,其中目标就有开源中间件企业。

国内的广州中间件研究中心已经与ObjectWeb签署相关协议,加入该组织。双方合作的目的是加速开源中间件在亚洲主流企业和组织内的应用,从而在工业和学术方面进一步促进国际范围内的开源的交流、合作。

开源中间件降低了产品的平均价格,会吸引更多使用者、小企业乃至大企业,相信在不久的将来开源中间件也将在国内市场占有一席之地。

专有技术:保持领先

开源中间件对传统中间件厂商带来了不小的冲击,但是开源并不能代替拥有自有技术的中间件产品。IBM对开源社区的贡献一直有目共睹,但并不影响甚至促进其软件业务的发展。IBM收购开源中间件GlueCode后所采取的策略可以看出专有中间件的发展思路――中间件是分层次的,越低层的中间件,标准越规范,需要的服务越少,价格越低,越容易走向开源;越高层的中间件正好相反,这是专有中间件发挥的空间。

很多中间件企业都认为,开源与商业软件是互利互惠的合作关系。因此,开源中间件的发展过程少不了专有中间件企业的贡献,包括IBM、BEA等企业都将自己的产品和技术一定程度开放,并积极参与到开源社区的活动中。

与开源中间件相比,专有中间件经过多年的发展,已经获得了市场和用户的认可,客户在使用过程中可以获得更加专业和可靠的商业服务,并且能够降低项目失败的可能性。开源软件在发展过程中,一直都无法回避的一个问题就是知识产权和法律保护,在低端应用这方面的影响不太明显,但是在高端领域,专有中间件无疑更加有优势。

行业还是通用?

尺有所短,寸有所长,这样的道理在中间件领域同样使用。无论是通用中间件还是行业中间件,都因为其不同的市场定位而被各自的市场需要,短时间内无法完全融合或者统一。

对于中间件企业来说,通用或者行业化,并不一定是一个自主的选择:市场定位决定了他的产品方式。也正是因为市场的多样性,决定了中间件产品的多样化。

行业中间件方兴未艾

中国中间软件市场发展将趋于两极分化,其中应用中间件向行业业务渗透明显,另外一部分就是中间件的通用化足以满足另外一部分客户的需要。根据2005年中国中间件市场的变化来看,行业中间件具有很大的市场潜力,也是未来几年中间件市场的发展重点。

行业中间件的特点是构筑于传统定义的中间件之上,再面向不同的业务系统构筑一个软件层面,这一层面是从金融、通信、电子政务等应用软件中抽象的公共部分。

因此,相对传统中间件来说,行业中间件是个性化的,这是业务系统的差异性决定的;相对同一个行业应用软件来说,它又是共性化的,因为它解决的是行业应用软件都要面对的共同技术问题。

相对于定制性的应用软件,它具有规模化市场,有软件产品工业化生产的特征。行业中间件对中国软件产业来说,具有积极的意义,它既可以发扬中国软件产业的优势,同时又拥有中间件软件的规模化市场。

近一两年,越来越多的金融、电信以外行业的用户开始重视中间件。对于他们而言,更多的是依赖行业中间件产品,因为他们需要的产品是采购进来之后能够直接进行应用的产品。银行、电信行业的企业相对其他行业的客户会提出更多的定制需求,因为行业特征的不同,就会导致不同的应用需求。

例如,在银行业用的最多的中间件是交易中间件,其实质是强调数据的一致性。但是同样的交易中间件对于电信行业的企业来说,强调的是高效率的并发处理能力。由此可见,根据行业性的特征进行定制的应用中间件与各行业的实际业务密切相关,能够实现针对中国特色的业务处理,具有很高的适用性。

通用中间件功能丰富化

尽管行业型的中间件在具体的行业内广受欢迎,但是并不能够立刻推广到其他的行业。这也正是行业特征强烈的国产中间件市场不能够持续快速增长的原因之一。

对于IONA Orbix、BEA WebLogic、IBM MQSeries这些通用型的中间件而言,市场就可以广阔地多。由于技术积累深厚,他们很容易在各自的通用中间件平台之上加载各种功能,将其丰富化,从而逐渐蚕食原有行业中间件的市场空间。

此外,通过与各自ISV的合作,这些通用中间件可以很快地被加载上相关的行业应用,这是他们能够在本地化方面能够获得的机会。

诸如BEA和IBM也都在不断地在自身的通用中间件之上加载行业应用,以便摆脱通用中间件需要二次开发的形象。

这一点在BEA的WebLogic上表现得尤为明显。本来BEA与甲骨文合作得非常紧密,而在甲骨文发现中间件市场的广阔之后,与BEA中止了中间件的合作,开发了其自身的融合中间件,这就使得BEA必须加载行业的应用方案。

这也是BEA收购门户软件企业Plumtree推出解决方案的原因之一。BEA也从一个单纯的中间件厂商转变为一个能够提供SOA解决方案的厂商。

尽管现在的SAP还没有自己的强有力的中间件,但是相信他也会如同甲骨文一样,将中间件系统纳入自己的产品范围。

就像通用中间件需要将自己功能丰富化,从系统的底层逐步向应用层进发一样,应用软件厂商也需要将自己的架构向底层发展。

可以说,包括中间件在内的软件发展已经进入一个赢家通吃的年代。

向上还是向下?

跟浏览器一样,中间件不甘心于仅仅定位于解决系统整合或者跨平台的问题。

中间件厂商都希望将自己的平台向上或者向下,占据更多的产业链份额,或者说占据更加优势的产业链位置。

向上:走向应用

以前中间件是以技术作为驱动,但是现在应用成为中间件的驱动力。

随着CORBA、J2EE等中间件技术平台的成熟,中间件产品不断逼近网络应用系统需求,为应用系统的建设沉淀更丰富的共享平台,不断降低应用系统建设的复杂性。

目前的一些技术,如MDA、EAI、XML、Web 服务等,都是从技术平台向业务领域内更大范围的数据集成、应用集成、流程集成、服务集成等转移的产物,而面向服务、以业务流程为中心、业务模型集成技术已成为中间件产品和市场关注的焦点。

SOA技术和Web服务技术的发展,使得中间件已经摆脱了纯粹的“中间层”的概念,更多地加入了应用。在逐步向上与应用系统靠拢的过程中,中间件在试图取代或者说部分取代原来应用系统的位置。

随着应用集成和数据集成的应用推广,企业将沉淀更多可用的信息资产,在此基础上,商业智能领域可能出现新型的中间件产品,其主要作用是对大量信息资产进行有效的定位检索和维护管理,并挖掘信息资产的价值,提供决策支持服务。

此外,无论是微软还是甲骨文,都已经尝试推出在线的软件服务。这些已经不仅仅是中间件向上加入应用的功能,更多地在利用新的技术,将中间件转变为一些可以被灵活应用的软件服务。

就像现在异常火热的协同产品一样,几乎所有的中间件厂商都推出了自有的协同应用。无论是微软、IBM、甲骨文还是金蝶、中创、思维加速,都先后推出了自己的协同平台,这一点可以被看作中间件向上走的典型。

协同需要跨越不同的架构和应用进行信息的整合和共享,而这恰好是中间件的优势和使命。

向下:成为基础架构

基础中间件,又称为基础架构软件平台是为复杂应用软件系统提供通用技术基础架构的软件平台。

目前,多数国外中间件产品都属于基础中间件范畴,并且有进一步模糊化操作系统的趋势:什么样的操作系统是不重要的,重要的是在中间件平台上面的应用。

这就好像当年Netscape发展的目标一样:作为网络的入口,什么样的操作系统一不重要,重要的是用Netscape来访问网络。对于用户来说,倘若能够呈现出完全一样的应用,底层是什么系统,就没有太大的意义了。

与此同时,在底层,中间件产品将进一步融合操作系统、数据库管理系统和其它资源管理平台(如元数据管理、目录管理、内容管理)的功能,形成一层厚实的基础软件;在上层,基于中间件的应用框架产品将得到极大丰富,例如面向金融的数据中心平台、电信业务运行支撑平台、电子政务信息交换平台、电子商务供应链管理平台等应用框架型领域中间件将不断丰富完善。

技术构架之变

J2EE―开放性标准

目前中间件应用服务器根据技术架构可以分为两大阵营,其中J2EE侧重于中高端用户,也是当前中间件市场上的主流。

实际上应用服务器随着面向对象技术和构件技术的兴起,出现了以Java/EJB、DNA/COM和CORBA为代表的分布式对象/构件计算模型,使用上述技术的应用服务器中间件涵盖了传统中间件的功能。

随着构件技术进一步发展,Java/EJB融合了CORBA的优点并演化成为J2EE,微软DNA/COM演化为.NET,CORBA也吸收了J2EE的构件/容器思想推出CCM架构。

其中,J2EE从一开始走的就是开放路线,由Sun发起并由众多重要厂商参与制订规范,为应用服务器的实现提供了一个开放和完整的底层框架,具有开放性、标准化、构件化、互操作和可扩展的特点,它可以使用户在此标准下创建的应用程序都能运行于其上。

更重要的是,在满足J2EE兼容性的条件下,在不同应用服务器上的应用构件可以很好地互操作,这样不仅降低了移植的风险和代价,还提高了应用的灵活性,有助于保护用户的原有投资,因此它在业界的接受程度很高。经过几年的发展,主要的应用服务器厂商都已经转向采用J2EE标准。

无论是IBM的Websphere还是BEA的WebLogic,此外也包括甲骨文的融合中间件,都是选择J2EE作为其应用服务器的技术实现。

因此,为了顺应市场的要求和技术的发展,应当按照J2EE规范及相关标准实现应用服务器。同时,J2EE应用服务器还应该加强应用服务器的扩展特性及其服务,提供集成能力和开发有效性的支持。

另外,支持Web 服务是应用服务器必须考虑支持的协议,因为Web 服务是互联网企业级应用的标准。而且,微软在其产品战略中已经摒弃了Java,但是微软积极参与到Web 服务标准的制定工作中,所以,Web 服务还保留了实现Java和微软之间互操作性的可能。

.NET―背靠大树

与J2EE相比,.NET面向中低端用户,而且与微软自己的产品紧密集成。

.NET的前身是微软的DNA(Distributed Network Architecture),在2000年的时候被.NET所取代。可以说,在主流的中间件产品中,只有微软的BizTalk是采用了.NET的技术实现,这也说明了其他中间件厂商对于J2EE的依赖和对微软的戒备心理。

.NET在诞生之初就秉承了微软一贯的文化和战略:帮助客户加快对市场反应,提供完整、集成的解决方案和缩短客户投资回报的时间。这些完全可以在微软的产品特性中体现出来。

盖茨作为首席软件架构师在把.NET的远景和框架规划完以后,就开始大力做市场宣传和研发的工作。

.NET以Web 服务为核心,全面支持SOAP、UDDI和WSDL,并在底层实现了类似Java虚拟机的CLR(Common Language Runtime)和一套具有3500多个类的.NET基础类库。因此,尽管.NET架构落后于J2EE几年之后才推向市场,但是该技术正逐步走向成熟。

Framework 和Visual Studio经过近几年的发展和改进,已经成长为成熟的应用和开发平台。.NET 2.0版是微软.NET Framework的最新更新,其中包括了运行使用.NET Framework开发的应用程序时所需的所有内容。

NET2.0平台在Web 服务上的业务处理能力,比.NET1.1平台提高25~40%。.NET 2.0版提供了改进的缓存、使用ClickOnce改进了应用程序部署和更新、通过 2.0 控件和服务对浏览器和设备提供更多支持,以提高可扩展性和性能。这也将促使所有.NET 应用系统在今后几年都加速向.NET 2.0 的移植。因此,.NET应用服务器的实现需要按照.NET 2.0的最新特性进行。

构件还是SOA?

构件还是SOA,或许不能算作一个问题或者选择。

构件化同样可以走向SOA之路,但是SOA也可以将企业信息包装成一个构件。

构件之路

构件是一种前沿的软件设计思想,对整个软件行业的发展有着至关重要的推动作用。中间件作为应用软件系统集成的关键技术,保证了构件化思想的实施,并为构件提供了真正的运行空间。

传统中间件技术的发展往往源于技术能力。而技术的不断变化又让这些公司难以长期立足。中间件的应用范围越来越广,但应用有不同的需要,不同的业务特点,如果仅仅依靠固定的模式去套用,显然不合适。

从应用软件的角度来看,我们显然需要一个稳定的、技术依赖性较弱的方法来描述企业应用的不断升级的业务逻辑结构。

业务逻辑会按照企业的发展而发展,但不应该因为技术的变化而重新编写。面向构件的中间件是为不断发展变化的、具有企业个性化特征的中型和大型企业应用软件而打造的一个中间件平台。用户可以通过面向构件的中间件来描述、测试、部署和管理企业应用。

面向构件的中间件解决了企业应用的开发和管理问题。通过建立一个不断完整的构件库,企业的知识可以得到有效的管理。业务知识储存在一个可见可控的构件库中,便于管理、衡量,达到持续发展的目的。企业可以从构件库看到自己的业务、知识和流程,厂商也通过构件库来不断发展自己的核心竞争力。

SOA被认为是未来中间件发展的趋势,其实我们也可以将SOA理解为更大层次的构件的标准。SOA产生的背景是因为集成整合,过去由于历史的原因企业内部拥有很多分散的信息系统,随着企业的发展,现在需要把这些系统用一个标准把它连起来,这时EAI也就自然产生了。

但是,EAI是不标准的,所以SOA在这样的背景下产生了,它是一个大的互联互通的标准。这个标准使得企业很多内部的信息经过SOA的包装之后,形成一个大的构件,它可以跟外部去接口。

全面向SOA转移

与10年前相比,今天中间件涵盖的范围越来越大,从原来纯粹是交易、消息和J2EE的Web中间件,发展到今天,已经扩展到包括门户、EAI等在内的更大的中间件范畴。

这些层次的中间件分别提供不同的功能来支持应用的开发和部署。随着中间件层次的增加,绝大多数应用功能都可以通过相应的中间件来完成,人们在进行应用开发的过程中所需的编程工作也越来越少。

对饱受信息孤岛困扰的用户来说,整合已是大势所趋,而整合就是通过建立基于开放标准的、统一的、高效的、易于管理的IT基础平台,消除信息孤岛,使IT能适应业务的变化。

SOA正是实现这整合的必由之路,各大厂商的中间件产品也纷纷转向采用SOA架构。根据ZapThink的调查显示,到2006年,基于SOA架构的中间件产品将成为企业应用系统的主要设计思路。

SOA架构定义了搭建企业软件架构的一种新方法,它的出现使所有应用在交换数据和处理过程中,不需要考虑应用软件是用什么编程语言开发的或在什么操作系统下运行。

在这种模式下,服务成为应用系统的基本组件,一个应用或应用的一部分其实是一种服务,SOA把业务功能包装成标准的服务,服务的技术实现对于客户端来说是透明的。

客户端不用关心服务是如何实现的,不管它是用什么编成语言来开发的。而且服务之间可以互相调用,其他的应用和客户都可以在无需编写大量代码的情况下使用这些服务。

同时,SOA架构提供了应用系统的灵活性,服务之间的替换非常灵活,完全不必关心其底层的实现技术,惟一要考虑的就是服务接口,而它们是完全符合Web服务和XML标准的。

采用SOA架构带来的好处是不言而喻的:松耦合、可重用、灵活应变、缩短业务提供时间以及降低应用开发成本,在这一架构下,企业现有的IT资产,包括遗留应用和数据库都可以方便地纳入新系统,从而成为企业整体解决方案的一部分。

这正是包括IBM、BEA、微软、甲骨文等所有的软件厂商全面转向SOA的重大原因。软件作为服务被提供给用户,这样的一种理想,正在SOA的帮助下成为现实。从中间件到SOA,也就成了顺理成章的选择。

上一篇:虚拟化的中国之路 下一篇:系统恢复 更快更强