首页 > 范文大全 > 正文

Enterprise 2.0开源技术趋势

开篇:润墨网以专业的文秘视角,为您筛选了一篇Enterprise 2.0开源技术趋势范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

Web 2.0方兴未艾,enterprise 2.0的概念又接踵而至,Enterprise 2.0讲述的是如何将Web 2.0与SOA结合,并应用于企业当中。在Enterprise 2.0概念提出之时,已经存在基于Web 2.0和SOA的开源应用了,在这波浪潮中,开源技术又走在了前面。

随着Web服务标准被逐渐推广和采纳,SOA(面向服务的架构)也因为其在企业软件项目中的重要性获得了越来越多的认可。而近期Web 2.0风光无限,并以暴风骤雨的节奏猛烈袭击着互联网行业,SOA和Web 2.0似乎成了当今IT行业最热门的两个词汇,然而,行业内更为先进的思潮是:怎么样将Web 2.0结合SOA并应用到企业软件中去?答案就是新出现的IT名词:企业2.0。

对“企业2.0”这个名词最简单的理解,就是把Web 2.0技术结合SOA应用到企业的内部管理。比如很多技术公司采用企业Blog作为提高理念传播的手段等。而更深的理解,是把在互联网中流行的Web 2.0技术模式和原则应用到企业当中,帮助解决企业内部的业务互通和业务敏捷问题,并将企业内部网络与互联网相连,以充分利用互联网带来的价值。

企业应用是支撑企业运营的基础,企业应用需求多变,业务复杂,工期紧张。把企业应用转换为企业2.0是件开销巨大的工作,企业不太可能因为“企业2.0”是新技术就把应用全部采用企业2.0的商业产品来实现。但是企业2.0挟Web 2.0与SOA的综合优势让企业推却不了,在这样的情况下,比较好的方法是使用开源的企业2.0产品先行实验,在比较低的投入下,运行自己的企业2.0。

实际上,最近开源的企业2.0技术与产品也是发展得如火如荼。本文准备从这些产品中选取几例,籍此分析企业2.0的开源趋势

Web框架的泛SOA化

软件领域一直有一个没有完全探索清楚的问题,就是业务模块的组件化问题。怎么样划分组件?采用什么样的粒度?采用什么样的原则来划分?这些复杂的问题伴随着技术和业务的混杂,困扰了一代又一代的软件人。

SOA正是在这个领域的探索结果之一。从最早的代码级的面向对象思想,到组件级的EJB技术,到服务级的SOA理念,是我们的组件划分的能力不断提升的过程。SOA的基本特征之一是组件化,而组件化的本质体现在其背后的动态布署功能。动态布署功能让我们能够更加模块化的开发功能组件,并用几个组件实现客户应用。在客户应用上线后,如果需求有新增,则可以开发新的组件,并在线热布署。如果需求有修改,可以直接修改某个组件,然后动态更新该组件,其他的组件功能不受影响。

组件化开发和动态布署的特性,一直是集中在业务逻辑领域的,Web中并不存在所谓的组件化开发的概念。但是,最近著名的Web框架开源项目Struts2.0启动了一个支持热布署的插件开发功能。该热布署插件可以让Web应用在上线后,通过浏览器上传新的Web组件,并在线热布署,这样就可以把新的功能组件插入到已经上线的Web应用中去。

这个热布署插件是基于OSGi实现的,如上图1所示。这实际表示Web框架的SOA特征越来越明显,Web 1.0是互联网应用的开始,Web框架在Web 1.0中扮演了重要的角色,而且在Web 1.0和2.0中起到了承上启下的作用。如果我们认为Web 2.0只是表示REST架构,只是表示Mash-up的构建方式,只是表示RIA等信息交互模式,那是不正确的理解。

图1 JRE与OSGi交互图

Web 2.0本质是软件开发人员和用户使用互联网平台的方式的转变。从这个角度看,Struts2.0的热布署插件,是Web 2.0中的SOA特征体现的一个载体。

Web 2.0的泛SOA化

和SOA一样,Web 2.0的最大特征是把软件服务化。企业级的SOA,其实就是分析如何把关键的企业信息资源进行拆分重组,变成可重用可装配技术无关的服务;而Web 2.0又从使用者的角度,构成了另外一个模式的服务化。现在盛行的SaaS(软件即服务)把Web 2.0和SOA结合得更加的紧密。SaaS就是在互联网上通过Web页面,提供企业应用软件的租赁服务,由此把软件转向永久在线持续更新的模式。

2007年8月,金蝶了开源Web 2.0框架OpenMasks。OpenMasks是JSF规范的产品实现,不过它整合了Ajax的UI框架EXT,并用Tag进行了封装。结合使用Ajax,DOM和XSLT,利用XMLHttpRequest把数据和显示整合在一起,再加上JSF的功能,为用户提供了丰富的使用体验。这些Web 2.0的技术,与SOA一样遵循了同样的设计原则、哲学和范式。在这样的理解下,Web 2.0是SOA的一种实现模版,而企业内的SOA是SOA的另外一种实现模版。

实际上,Web 2.0的Ajax技术引入了企业软件的2.0化门面;Web 2.0的Mash-up技术,通过聚合重组来自不同地方的内容和数据,满足了企业软件的2.0化的随需应变的要求;Web 2.0的SaaS概念引入了企业软件的2.0化商业模式;而SOA本身,解决了企业软件的2.0化技术架构。由这些看来,Web 2.0的泛SOA化,已经是到了瓜熟蒂落的时段,大规模的应该应该会越来越多的出现。

BPM的SOA本质

SOA是创建更灵活的企业基础架构的架构方法,而BPM是一套协调的业务流程活动。SOA使用户可以轻松完成将业务流程连接到基础系统的任务,从而节省时间和IT资源。与之相比,将流程链接到传统的应用通常要依赖大量不同的专有技术。而且,在采用BPM的同时转向SOA可以促进SOA组件的再利用,从而最大程度地降低业务流程本身的复杂性。

在JBoss的jbpm_bpel开源实现中,就加入了SCA的扩展实现。可以在jbpm_bpel中加入SCA扩展定义,从而产生SCA的构件类型声明,并利用它来完成SOA的装配。例如,一个BPEL的变量声明可以包含一个SCA的扩展:<sca:property=”yes”>,这样的扩展表明,这个变量代表了一个SCA构件的property,如图2所示。

图2 在BPEL中加入SCA扩展

SOA产品的巨人化

位于爱尔兰都柏林的Iona公司是SOA工具市场的领导者。Iona早期的Celtix与XFire合并后,已经发展成Apache的incubate项目,那就是CXF。CXF是JAX-WS的API的实现,并且支持多种传输和绑定机制,而且支持JBI/SCA等服务模型。其旨在提供完备的服务创建能力、灵活的复用技术及高性能的服务组装过程。利用CXF创建的服务具有很强的互操作性,可与在其它SOA环境中生成的Web服务一起部署。这一特有的灵活性使客户能够以最切合用户业务和技术要求的方式来部署SOA基础架构。CXF了2.0 RC版,是SOA的比较重要的框架之一,也是由行业巨人主导的产品。

但是,SOA的巨人化不只限于此。Iona和Apache的结合,还有另外一个更大的SOA系列产品――FUSE。FUSE能够产生,主要归结于Iona对加利福尼亚州的LogicBlaze的现金收购。

从上面的案例可看出,只有提供一整套企业级质量的产品和服务,才能确保实施部署SOA取得成功。要想完全用开源方式,从零开始构建SOA产品,期望这样就能够全方位满足客户需求,是有很大难度的。开源产品只有像Iona这样,从Celtix发展到CXF,从CXF发展到FUSE,一步步地把自己发展成为巨人,才有可能与SOA领域的真正的“巨人”对抗。

无独有偶,JBoss公司也已经和洛杉矶的SOA软件公司合作,在JBoss应用服务器上,充分利用SOA软件公司的服务管理器(Service Manager)和WorkBench产品,来实施SOA应用。SOA软件认为,这次合作意味着一直由专有平台厂商把持的SOA市场上将迅速出现开源厂商的身影,并逐渐的蔓延开来。而该公司的执行副总裁Roberto Medrano在一份声明中表示,“开源SOA的时代已经到来了。”

SOA的实践化

现在对SOA的理论宣传,远远大于真正的项目实践。SOA提倡的是服务的复用,它强调软件开发应该面向服务、松藕合并互相调用。但是,怎么样来划分服务?怎么样互相调用?这些问题必须在解决方案中,用项目实践进行回答。

OSOA对SOA的实现提出了系列的技术规范,其中包括SCA和SDO。Tuscany是Apache Incubator项目中,实现了SCA和SDO规范的开源项目。读者看到本文时,应该已经了SCA Java 1.0-incubating版本,当然也有其C++版本提供。

图3 Tuscany的构件装配

在最新的Tuscany实现中,新加了Contribution的概念。Contribution可以对应理解为平常的一个小模块应用,它包括Java代码和页面等资源。Contribution是一个SCA应用的独立布署单元。在以前的版本中,是没有这些概念的,SOA的实践化,离我们越来越近了。

参与、贡献、共享、协作这些草根精神是Web 2.0的根本,而这些精神也融汇到了企业软件领域。我们考虑这样的几个层次:Web 2.0/BPM/SOA。在Web 2.0中,通过REST方式暴露SOA服务接口;用Mash-up组合不同来源的数据;用RIA作为企业应用的门脸。

在BPM中,通过不同流程的编制与编排,对企业外部客户和合作伙伴提供SLA服务。在SOA中,用各种组件和服务完成服务集成/应用集成和数据服务。企业2.0中的不同技术合作组成了一个大的SOA生态圈,而生态圈内的大大小小的开源软件,形成一个微妙而复杂的依存关系,我们希望这个SOA生态圈能够在稳定中快速发展。