技术开发 频道

企业Mashups:揭开SOA新一面

【IT168 专稿】

    企业Mashups是当今最为热门的Web 2.0技术之一,它能为SOA带来很大的促进作用。但是你做好准备迎接这一新技术了吗?怎样在SOA中使用这项强有力的技术呢?

    你知道什么是Mashups,知道它能为企业带来多大的效益吗?你能区别个人Mashups与企业Mashups的不同吗?还有重要的一点,你知道Mashups与时下流行的企业技术——比如商业智能、数据仓库、门户和企业服务总线等——有什么不同吗?

    严格来说,Mashups并不是一门新技术。分析师和专家们从因特网诞生的那天开始就在讨论组合应用(composite applications)。现在已经有数不清的面向使用者的Mashups。一个著名的Mashups网站,Programmable Web,报告说自两年前以来,每天都有三种新的Mashups诞生。

    就像许多让人兴奋的术语一样(比如Web 2.0),Mashups也没有任何标准设定机构给予正式的定义。有一位Mashups的专家喜欢这么说:“如果你问十位有主见的Mashups开发人员什么是Mashups……你可能会得到十种不同的答案。”在软件市场上,这个术语也被大量地滥用或误用,不管是面向个人或是面向企业的软件供应商都喜欢使用(或滥用)Mashups这个标签,把它贴到各种各样的领域上,比如门户、业务流程管理、文件管理(或最近被称为内容管理)、网络编辑、甚至知识管理等。

    那么,到底什么是真正的Mashups呢?Mashups可以解决典型的信息共享问题:以无法预料的方式访问并组合来自不同的内部和外部数据源的数据。比如使用PKI平台的LDAP服务器连接NetWeaver平台的SAP Accounts Receivable、Fusion平台的Oracle Human Resources和一些从旧数据库生成的Mule-driven SOA服务。这才是真正意义上的企业Mashups。

    可惜的是,大多已知的Mashups比这要简单的多:从一个信息源读取数据然后将其填到互动的图表上。但这种点菜似的模式很难在复杂的企业环境下得到应用。如果将面向个人的Mashups与企业Mashups做一下对比,或许我们可以发现些什么。

    面向个人的Mashups是把浏览器中来自不同的公共信息源的数据通过浏览器的用户界面组织到一起。HousingMaps(http://www.housingmaps.com)是一个很好的例子。它把克雷格列表的出租清单与谷歌地图结合到一起,生成一个当地公寓出租的视图。

    企业Mashups(也可称为业务Mashups)是一个把来自多个因特网和公共信息源的数据组合到一起并把结果发布到企业门户、应用开发工具或SOA服务上。企业Mashups还必须能够使用企业应用技术以实现安全性、治理、监控和可用性。

    从上面的意义出发,企业Mashups看起来和其它的应用开发与集成技术(比如ESB、BPM、商务智能、门户、甚至JAVA之类的开发语言)一样。但是企业Mashups是一种IT边缘技术,它添补了IT的空隙,因此也有一些其区别于其它类似的软件独特的特性:

    以用户为中心
    Mashups是为使用服务的用户而创建的,并且通常是由用户自己创建的。它不像那些后台的黑盒集成工具,比如ESB、BPM、BPEL等,用户可以自己连接数据点。这意味着它有许多以用户为中心的特征:

    * 将数据源统一到一个无缝的与服务类似的虚拟环境下

    * 虚拟的拖拽用户界面把各种服务连接到一起

    * 可以对结果进行灵活的调整以满足用户个体的需求

    * 支持协作式工作,比如标签、搜索和共享

    如果没有这些特性,我们可能就需要IT为用户做更多的开发了。

    小块方式
    Mashups用户通常是处理知识导向型的小量信息(与处理大量事务信息的IT集成相反)。用户实际上进行的是微型集成,相对于BI的大型集成通常耗时以月甚至以年为单位,这只需几分钟到几小时的时间。大多Mashups只连接有限的服务数量——如果在一个Mashups中涉及到多于六七个服务的话,你或许就应该换种考虑方式来解决问题了。

    通过网络访问
    不断增长的标准的接口通信技术(比如WSDL、REST和RSS)使Mashups的实现成为可能。但是格式只是一部分。Mashups是以那些可以合理而迅速地显示在网络浏览器上的数据为基础的,或者更准确地说,是那些不需要太多用户操作的数据。这反过来也是成立的:一旦建立,Mashups就必然有“马上可以发送到浏览器”的特性。由于Mashups的源数据高度的可移植特性,最能发挥其用途的应该是那些外部数据源与内部数据源(公共与私有)需要动态组合的场合。

    这些特性显然是Mashups与长周期的IT驱动的技术(比如ESB、BI、BPM和企业门户等)的不同之处。有趣的是,Mashups与这些技术也有很好的融合性,可以使用由某些技术(比如ESB)生成的输出,或者为某些技术(比如BI、BPM、门户)提供输入。

    企业混合应该还是一门相当新的技术,因此有关的ROI研究还相当少。对于业务用户来说,企业Mashups解决的是那些不常出现因而不值得消耗大量IT资源的长尾信息问题。而REST仍能保证Mashups为IT提供足够多的价值,因为它们可以提高当前系统的资产收益率。这也正是混合应该能与SOA相融的原因。

SOA驱动企业Mashups方案

    说实话,SOA就是一个管道工程。当然,是一项耀眼而高效的管理工程。而那些一般业务人员(比如销售经理、销售主管、财务主管或客户服务代表)却不会去关心这些东西。实际上,如果你仔细而全面地考虑一下,他们可能并不希望有什么变化:这些无法看到、悄悄发生着的变化。这些业务人员可能更喜欢这项管道工程里的大理石地板、精致的镶木门窗和漂亮的黄铜设备。换句话说,他们喜欢的是管道工程的外表。

    SOA的ROI也是很难甚至无法定义和衡量的。虽然专家们对一些问题(比如SOA的ROI的重要性、如何计算SOA的ROI等)已经产生了分歧,但他们好像都同意一点:企业对SOA的支持完全取决于SOA对总体业务的描述——更多的成长机会、利益、以及诸如此类让人向往的好东西。这也是企业Mashups可以极大地提高SOA的ROI的领域。

    企业Mashups把SOA从广泛意义的IT拖到了终端用户的桌面上。这不仅是高度可视化的,并且是用户驱动的,它能够给IT一种新的方式提高晦涩的SOA的投资回报率,让用户与SOA产生利益关系,使IT可以更专心地解决最前端的业务需求。但是IT与业务一直以来就没有很多共同协作的经验(特别是像这种动态领域),因此SOA驱动的Mashups的第一课很简单:为与SOA驱动的Mashups相关的业务与IT部门之间的环境变化做好准备。Mashups并不是意味着IT工作的结束,但它确实排斥一种很不相同的职位。

Mashups改变SOA的实质

    除了人力因素,SOA与混合应该之间还有许多非常实际的互相促进的关系,能够帮助你设计更好的SOA方案。这些关系都暗示着不同的SOA架构信息与经验。其中最重要的包括:

    1. 虚拟化:Mashups有助于从那些还没有被“SOA化”的资源中创建规范化的“虚拟”服务。众所周知SOA是一项可能需要多年才能完成的任务。直到完美的SOA正式完成之前,迅速、标准的服务都可以帮助用户更早地起步。

    2. 适当的规模:混合服务可以让用户“适当地”调整服务的粒度。现在IT不用再去猜、研究、或分析一个服务提供的数据是否“过于专业、过于广泛、过时或者不着边际”了。

    3. 协作:混合服务让用户可以分享他们组合的服务,让他们成为服务创建网络的一部分。这等于给IT多了个帮手。

    4. 可视化:Mashups让用户可以把SOA形象化为图像、图表、表格和对应图。这样就不必等待动作缓慢的企业门户为用户定制可视化的服务,每个用户都可以按喜欢的方式自己动手。

    5. 微观组合:Mashups让用户能够添加企业外的数据。现在的SOA主要还是面向内部的。但是用户经常需要在他们的工作中加入外部数据。Mashups可以使用户在使用数据服务时无视数据服务的实际位置。

在Mashups中利用SOA的安全性

    SOA与Mashups之间的互相促进只是个开始。Mashups还必须能够在有着大型、复杂的安全与治理的企业环境下生存。根据我们前面的企业Mashups定义和相互关系模式,我们可以总结出以下重要的安全与治理要求:

    * 桥接:要真正地利用持续增多的SOA服务,你肯定希望有一个简单易用的能够实现SOA注册/信息库与企业Mashups之间的SOA服务信息流通的方式。千万不要说你没有SOA注册/信息库。

    * 传输验证信息:你的企业Mashups必须具有能够管理用户验证的特性,能将验证书传送到正确的验证系统以及所有混合的服务。因此,在你的企业Mashups方案中必须让Mashups创建者指明所希望的验证格式。并且所有这些操作都必须在混合内部或外部服务时以统一、无缝的方式进行。

    * 渐进式的标准化和部署:企业混合必须以源服务要求的方式传送验证信息。而且这种安全/验证的传输机制必须嵌入到系统架构中,因为这里的标准很薄弱。在四种服务类型中,只有JDBC/ODBC的数据库和WSDL(WS-SecurityPolicy)有一定的“标准”验证格式,虽然使用范围还不是很广泛。因此你的企业Mashups必须有足够的灵活性来传输用户验证信息而不管服务提供商需要什么格式。当然,或许你可以为新的标准或者用户格式预留位置。

    * 调节信息联合组合应用是可移植的,你必须让你的组合应用能够用于Web 1.0门户(比如BEA和Oracle Portal)、Web 2.0界面(比如Netvibes和Pageflakes)、或者下一代的iPhone。不管在什么环境下,每个组合应用构件必须拥有可移植的安全性与治理性。

    满足这些安全性和治理性需求的工作不能通过事后的增补工作来完成。你必须主动去完成并且持之以恒。但是请记住:创新与安全性/治理并不是互相排斥的。实际上,你的SOA(及Mashups)安全性越高,用户就越能自由地利用这种强大的技术。

SOA驱动企业Mashups实例

    SOA驱动的Mashups在企业各机构、部门和各种垂直应用中有广泛的应用。根据市场调查和经验,我们确定了几个普遍适用的Mashups。虽然单个看起来很是微不足道,但是不妨想一想如果全部实现的话会有什么样的效果:

    客户服务:Mashup客户服务中心与第三方的包裹跟踪。

    这是那种典型的“请让我再查一下另一个地点”场景的解决方案。将你的订单管理系统与来自UPS或FedEx的物流信息混合到一起;你甚至可以添加一个视图以使订单状态形象化。这种Mashups可以让客户服务代表立即查看订单状态并跟踪包裹,而无需使用alt+tab键在各个表格之间切换,还能同时减少服务时间并提高客户满意度。

    项目管理:Mashup市场的竞争点。

    有许多公共信息可以提高你的竞争能力——重要的公告、新闻、财务状况、合伙人、和商业开发,甚至包括各种言论和营销计划。你可以利用Mashups来整合这一切——一个包含了以竞争对手关键字搜索的Google新闻RSS订阅和竞争对手主要产品的价格标准的Mashups。不管你是一个零售商、消费品生产公司、技术公司、制药公司或是其它类似的竞争性行业,这种有竞争力的智能化Mashups都可以根据具体的产品或领域进行定制。

    社区参与:Mashup产品缺陷跟踪、代码管理、时间跟踪系统和博客注释。

    很可能你的产品有一系列已知的问题,需要根据市场对此做出评估以确定严重性等级。虽然我们并不是指汽车的安全性这种关键问题,但是这可以代表软件或消费性电子产品中的缺陷。你可以混合缺陷数据库和博客或用户论坛上的评论,供你决定是否应该在它爆发成为销售恶梦之前主动解决这些问题。

    研究:将内部数据与各种独立的医学、科学、经济、法律等研究Mashup。

    不管难你的业务是否涉及医学、科学、经济或者法律领域中的研究,将你内部的工作与不断出现的研究数据混合有时确实可以为决策带来重大的影响。混合研究可以为用户迅速地提供时效性信息并做出对比,为相关的研究提供更好的访问并有利于内部做出更好的研究决定和发现。

    决策支持:将产品说明、收益计划书、产品信息与市场上的其它产品Mashup。

    不管你的产品信息是在Excel表格中还是在ERP系统中,把这些数据与外部的竞争性信息混合都不会耗费太多时间,而你可以得到更好的跟踪结果、更准确的竞争信息、并使你的产品获得更快的上市时间。你可以和其它有临时访问权力的用户分享这些结果。

    运输:Mashup事前与事后的货运分析。

    物流公司有精通预示分析法的团队协调供需服务。他们要根据生产计划、市场情况和天气对货运能力进行调整。如果计算有误,他们就要空车出行或者从其它服务商租借货运能力,导致公司利润的降低和客户的不满。Mashups并不会解决这种预示分析问题,但是它有助于做事后分析:创建一个Mashups从预示分析系统获取数据,然后与实际运输系统的数据对比。把这些数据放在一起,分析师可以回顾以往的业绩并调整假定条件,使他们的分析更加准确。

    金融服务:用于实时企业风险管理的Mashups。

    传统的风险模拟是不准确的,因为它提供的风险估算并不完整——相关的内部与外部数据源都太多,以致这些系统过度地依赖于内部信息。如果错过了关键的数据,那么没有算计到的风险就会成为大问题。Mashups不能预防再次发生次级贷款危机,但是一个优秀的风险管理Mashups可以混合传统的风险评定和外部信息,比如经济和工作数据、信用报告上没有的额外付款记录(比如租金)、和对公司和个人做的调查,从而帮助做出更好的决策。更重要的是,Mashups把确认风险管理信息的权力交给了风险经理——他们不必再等待IT构建一个完成时早已过时的复杂应用了。

    政府与国防:用于加强动态自适用功能的Mashups。

    不管是军事还是科技领域,势态感知都是一项很重要的能力,而Mashups是实现这种能力的关键工具。智能分析需要当前形势的实时数据才能做出正确的判断——但是这种信息必须从许多内部和外部的数据源中收集,并以一种容易阅读的方式呈现。这里没有时间做ETL、精细的数据集成、或者复杂的处理——分析师们需要更快地看到数据并自己做出推论。这简直是对Mashups的一种较好的描述,也是为什么美国国防情报局最近使用Mashups技术做了一个桌面风格的智能评估显示面板的原因。

    电子商务:用于实时竞争情报的Mashups。

    各电子商务经理都知道电子零售是一个竞争激烈的行业:商品价值可能在短短几分钟内就会发生变化,而顾客则会使用各种各样的搜索工具寻找产品价格最底的站点。电子销售商们需要一个工具即时抓取关键数据——比如网站流量、性能数据、竞争价格和产品组合、在线和消费、消费者偏好等。他们需要比做每月内部报告或每季度组合数据早得多的时间得到这些数据。任何一个拥有网络销售功能的公司都可以创建一个简单的CIMashups,把竞争对手销售成绩非常好的10款产品列到一个单独的目录中与自己的产品进行对比。Mashups可以让第一线的销售商自己观察形势,更快地调整销售组合。

    Gartner咨询公司最近把企业Mashups称为“2008年度10种非常好的策略技术之一”,认为“到2010年时,网络Mashups将成为创建组合企业应用的主要模型(占80%的比例)”。可以说,Mashups的时代已经到来了,所有的SOA架构师都应该考虑将企业Mashups添加到他们的SOA实现方案中。

0
相关文章