企业混搭应用:让用户体验SOA优越性能

企业混搭应用是一个随着Web 2.0潮流而产生的新兴事物。本文从概念出发,结合实际,介绍了企业混搭应用。通过与相关概念的对比,以及实际工作和日常生活中的体会,对可能推动企业业务发展的混搭应用作了列举和展望。

一. 企业混搭应用的概念

企业混搭应用,又叫Enterprise Mashups Application。Mashup是什么?企业业务混搭从哪里来?它与SOA又有什么关系呢?我们从概念开始。

什么是混搭

混搭(Mashup)是一种新型的基于Web的数据集成应用程序。传统上,Mashup源于流行音乐,是一种音乐类型,也被称为bastard pop,指的是艺术家组合或者混合两首不同的歌曲(通常属于不同的流派)的音乐和歌词来创作新的歌曲。它拥有三个特征:天生的创新性,人们的经验性和结果的和谐性。

特征一:天生的创新性。从起源上看,Mashup是一种内容上的创新组合。这里重点是创新,虽然组合的元素通常都源自于本来无关但非常常见的东西,但这和任何创新活动类似,一旦组合便会产生一种具有新意的新生事物。

特征二:人们的经验性。这些组合都是人工进行合成的,而不是通过计算算法来合成的,人们的经验和思维在Mashup过程中起到了决定性作用。

特征三:结果的和谐性。无独有偶,在现实社会中Mashup风潮也影响着服装时尚界,设计师们把街头朋克元素引入到传统的英格兰服饰,用运动T恤混搭具有少女风情的篷篷裙,产生了意想不到的匹配效果。时尚界也称Mix & Match风格,从字面上理解,Mix是混合,Match是匹配,合起来翻译成混搭。指将不同风格,不同材质,不同身价的东西按照个人口味拼凑在一起,从而混合搭配出完全个人化的风格。Mix就是混合两个或多个元素,来展现新的用户体验。Match是指一种和谐相配的有机组合,否则就是“瞎搭”了。这就是特征三,混搭结果必须和谐匹配,具有这种既混且搭的东西,现实生活中除了音乐和服装,还有中国火锅,多元文化,多元的收藏,装饰和建筑风格等等,人们的情绪可以说也是一种混搭的表现。

企业混搭应用

把概念引申到计算机应用,先看看维基百科的说法:Mashup:网络混搭是一种聚合应用,有一个或者多个信息源整合起来的网站或者网络应用。

由此可见,Mashup是合并多个源的信息和服务的网页或网站。一个熟知的Mashup典型范例是housingmaps.com,该网站合并了Google的地图服务和Craigslist.com的公寓租售信息,包括与住宅购买数据相结合,创建了一种交互式的房屋搜索工具。

对企业应用来说,就如同创造新音乐,新服装那样,它能让业务人员创造针对特定的业务需求的业务混搭应用。这里强调业务需求,这是企业混搭应用的目标。根据业务需求,企业可以开发和部署不同构架层次的Mashup应用,在特定的Mashup编辑环境中,关联并且组合不同的Mashup组件,从而自己定制出符合企业需求的应用。我个人认为,Mashup层次、组件和环境构成了Mashup应用的三要素,这在后文还有详细的描述。

这种Mashup新技术也叫组合应用(Composite Application)或者叫场景应用(Situational Application)。在企业中,业务人员往往需要扮演特定的角色去完成一个特定的任务。特别在决策过程中,更需要多角度多方位的数据支持。不仅在内容上,在界面上用户也希望获得更好的用户体验。传统的企业应用局限于是由软件开发商预先定制的,并不能满足这种基于特定场景的不断变化的需求,而Mashup技术却能够让业务人员根据其在不同场合下的需求Situational Need,在新的页面上放置、移动、更换、关联不同的业务组件(Mashup组件)。新的页面中显示的数据不仅可以来自企业内部,也可以来自外部服务。比如说用一个业务组件显示企业系统中的采购合同列表,而列表中可能的供应商信息却来自外部公网组件。这样,每个业务人员都拥有了更加便捷的方式“参与”到企业业务流程的创作活动中来,而创作的结果又能以最佳业务实践的形式保存下来。在这种模式下既降低了系统的整体拥有成本,又能共享最佳业务实践,使之经过迭代后就能逐步更新完善,从中我们可以隐约看到SOA的概念。

Enterprise Mashups与SOA

混搭与SOA的关系则要从用户需求谈起。SOA在概念上一般被认为是一种以用例为中心,以模型为驱动的可迭代的构架。SOA构架通常基于Web Service来实现。那为什么要采用这种构架呢?Sandy Carter在《新商业语言》一书中用Flex-ponsive来形容SOA最为浅显易懂,这个词其实就是Flexible和Responsive的组合。企业为了适应市场的变化,自身就要不断调整策略,这样就产生了对企业应用需求的不断变化。SOA构架的目标就是提供能适应企业需求不断变化的底层基础构架,要做到具有灵活的可适应性和快速应对变化的能力。

但SOA注重在后台架构上,讲究服务、组件和流程。企业用户往往看不见,摸不着,所以比较难把握。而企业混搭应用则在用户表现层,讲究丰富的用户体验、创建并且部署特定应用,能让用户来体验到SOA。Enterprise Mashup是SOA平台的展现,它在发布应用程序的同时,不仅可以集成企业内部服务,还可以利用外部Web 服务,RSS提要和其他方式部署Mashup组件,然后将Mashup组件组合成新的应用程序。可以这么说,Enterprise Mashup是需要基于SOA构架的。

回过头再来看看我们的目标:根据业务目标调整系统应用。在以前,即使有了SOA,企业内部IT人员和业务人员还可能各自为政,企业外部供应商的咨询人员和开发人员也会有不同分歧。企业混搭应用就是希望使业务人员也有能力开发和部署自己的应用,从而拉近需求定义和开发部署的距离,消除分歧。业务人员也正是通过了混搭应用,固化了业务流程,适应了需求变化,体验了SOA所带来的价值。

二. 企业混搭应用的三要素

虽然非技术人员可以通过Mashup来开发和部署自己的应用,但是该技术本生不是万能的,也不能覆盖系统应用的方方面面。我们必须给Mashup一个清晰的定位,让它在相应适应的需求上发挥作用。这里所介绍的Mashup三要素分别指的是:混搭构架层次,混搭组件和混搭开发部署环境。在理解三要素的基础上,就能对Mashup能为企业做什么有个大致的把握。

混搭构架层次(Mashup Level)

一般来说,有3种类型的混搭应用:表现型、数据型和逻辑型。如果从企业用户角度来定位混搭,这3种类型就对应着3种不同的混搭构架层次。

表现型混搭最简单,企业门户就是一种具体体现。这种混搭应用停留在用户界面层次,通过调用UI组件或者嵌入式UI组件来丰富企业应用。当然通过手工方式实现该功能也不难,但混搭应用避免了剪切、粘贴和在多个浏览器窗口里切换等操作,从而大幅提高了工作效率。

较为常见的企业应用有:为了丰富像客户,经销商,采购商这样的主数据,组合并集成外部的地图/位置服务,黄页信息服务,商业网站的公司资料服务,商务网站的公司股价服务,财务信息服务,产品信息服务和公司RSS新闻服务。为了对比采购报价单的同类产品价格,组合并集成外部B2B网站的同类产品价格信息等。

如果这种集成的服务能提供有用的输入信息,这类Mashup就显得更有意义了。比如利用集成的地址验证组件服务,邮编查询组件服务,信用额度查询组件服务,就能对企业数据进行有效的检验。

数据型混搭收集来自多个数据源的信息,为方便比较而把他们都聚合在一起。这种混搭应用用于信息聚合以及人员协同。这里典型的例子是把新闻组件,讨论组Blog组件或着Wiki组件,显示项目进度的甘特图组件,任务分配组件,投票决议组件,财务报表组件等等,加上一些通用的像文本编辑,网页编辑,公共事件日历,导入导出,消息收发等基础组件混合起来,由用户来决定它们的组合和使用方式。
 
逻辑性混搭通常最复杂,这往往需要进行与2个或更多应用交互的混搭工作,有时候可能也需要技术人员的参与。这种混搭应用用于企业业务流程的集成,包括对第三方服务的集成。比如把企业内部销售数据与市场研究公司的竞争对手数据集成,把企业内部工资与ADP所得税计算方案集成,把物流信息与UPS或者Fedex的物流信息服务集成,把企业内部的支持中心与外部知识库集成等。混搭能够把这类集成体现在用户界面上,可以想象,业务人员完全有可能定制组合这样的页面,在该页面上,他可以查询某个配送订单,用地图来查看UPS具体配送货品的地理位置,同时用其他服务来计算成本等。
 
有了不同层次的混搭,就可以实现基于SOA的企业应用网络化。在企业内部,适应变化的需求,实现快速定制业务组件。在企业外部,通过与服务合作伙伴的合作,实现和内部数据的协同。这就是SOA的理想目标,Mashup正是SOA在用户体验上的体现。

混搭组件(Mashup Component)

Mashup的核心在于定义符合业务需求的数据或信息组件。其重要性使得我们有时候称这些软件应用为“讯件” (infoware)而不仅仅是软件。通常概念上的Mashup组件分为地图组件,视频和图像组件,搜索组件,购物组件和新闻组件。

而其中地图组件尤为典型,将物理地址同信息关联起来的任何应用都可作为地图Mashup。除了housingmaps的案例以外,最初广泛流行起来的另一个Web 站点将芝加哥警局在线数据库中的犯罪记录与Google Maps上的地图复合在一起用户可以与Mashup站点进行交互,例如告诉它在图形界面上显示一个包含图钉的地图,图钉展示南加州最近所有入室抢劫案件的详细信息。这种概念和呈现方式非常简单,犯罪和地图数据复合之后提供的可视化的功能非常强大。

如果把概念移植到企业业务应用上,也许我们会得出一些有用的企业用例。把某区域的道路交通流量显示在地图上,用户可以直接可视地查看道路堵塞情况。把销售代表一天的拜访路线,或者服务工程师按订单的服务路线显示在地图上,用户就可以看到图形化的路线图。

如何找到和定制那些对业务有用的企业混搭组件呢?也许可以从日本雨伞的发明得到启发。日本人把雨伞设计成不同的品种,比如雨伞加手电筒,就形成了具有夜视功能的雨伞;还有比如雨伞加支架,就形成了可以站立的雨伞;另外比如雨伞加帽子就是可以直接套在头上的雨伞;最近还听说日本学生把雨伞加摄像头,发明了既可以拍照上网又可以看照片的雨伞。

从这个例子可以看出,对企业应用,我们需要找到像雨伞那样的核心业务,并加以组件化,这些是企业内部业务组件的来源。企业外部Mashup组件就如同手电筒,支架那样,需要找到合适的外部服务。另外还要指出的是,Mashup并不是特指2种组件的组合,事实上,一些复杂的业务必须混合好几种类型的组件才能满足特定要求。

混搭开发部署环境(Mashup Environment)

说到混搭的环境,大体分为业务(咨询)人员Mashup环境和开发人员Mashup环境。

对于业务人员来说,他们了解业务流程,需要企业级的拖放式开发环境。他们可以在这个环境下定义Mashup页面,选择相适应的Mashup组件,设置Mashup组件的显示数据以及组件间的数据输入/输出的关联关系。这种环境强调集中化管理以及与其他SOA工具的整合。所有操作都应该符合安全合规要求并可以进行集中式监控跟踪。

对于开发人员来说,他们是企业IT人员或者是软件供应商的合作伙伴,他们可以独立地定制开发Mashup组件。目前平台有微软的ASP.Net,Adobe的Flex,以及Google的免费网页开发工具包(Web Toolkit),也有开源Ajax框架Ruby on Rails。

SAP产品中的企业混搭介绍

SAP面向中小企业解决方案Business ByDesign产品是基于SOA的按需定制的软件套件,它的企业SOA软件构架平台称为BPP(Business Process Platform)。每个业务内容被封装成具有业务逻辑的业务对象BO(Business Object),而把一些语义相关的业务对象组装起来成为过程组件PC(Process Component),实现一定的业务过程。对于其他基于服务的业务,SAP通过A2X服务(A2X Service)来集成混合服务(Compound Service)。如果把过程组件和A2X服务用适当的UI界面展现出来,就是企业内部的Mashup组件了。

过程组件和A2X服务形成了一类Mashup组件基础,它们被统一注册在企业服务库中ESR(Enterprise Service Repository),这样用户就可以按需来选择定制企业服务了,这就是所要描述的组合(Composition)概念。近一步,为了满足新的业务需求,可以创建出新的业务对象和过程组件。这类Mashup组件即是像雨伞那样的企业业务的核心组件。

另外一类Mashup组件则通过UDDI(Universal Description Discovery and Integration)把外部的服务集成起来。从技术上来说,整个构架中有一个Mashup组件库(Mashup Component Repository)来统一管理Mashup组件,它分别与ESR和外部的UDDI通信,注册并管理着所有可用的Mashup组件。

企业混搭应用是基于内部ESR和外部UDDI服务的,是Composition在用户应用层面的体现。在SAP产品中,用户可以在CE(Composition Environment)来开发和部署混搭应用,选择并且混搭Mashup组件。

最后,从SAP ByDesign产品功能来看混搭层次(Mashup Level),表现型混搭就是把外部服务集成在目前ByDesign应用的UI界面中,数据型混搭则是Workspace组件,逻辑型混搭可以认为是Page Mashups,它的目标是构建基于工作流的按需协同应用。

三. 企业混搭应用的展望

展望未来,企业混搭应用需要基于大量业务组件的标准化,从而像宜家用户DIY模式那样进行大规模按需装配。这种业务组件化的发展,将形成以业务为核心的中间件市场,使得专有业务组件开发团队化,社区化,网络化。

企业混搭的技术也要依赖于轻量型编程模型,不过出于对企业应用的安全性能考虑,轻量型编程模型需要提供比目前更强大的安全技术保障。