您的位置: 网界网 > 周报全文 > 正文

[周报全文]SOA推进应用

2004年05月10日 00:00:00 | 作者:佚名 | 来源:$page.getBroMedia() | 查看本文手机版

摘要:SOA推进应用

标签

    SOA推进应用

    在新一代数据中心中,企业应用将体现为松耦合的模块化网络服务,这些应用一旦连接到一起,能够创建复杂的商业流程。

    在商业应用领域,标准化的努力正在向好的方向发展。随着用户向可以简化Web应用之间连接的中间件迁移,Web服务实现也越来越多。此外,用户已开始喜欢上了面向服务的体系架构(Service-Oriented Architecture,SOA)这一概念,因为它以鼓励代码共享和重用的方式把网络上的应用连接起来了,右图为实现代码重复使用最大化示意图。这些技术之间存在着一种共生关系:Web服务可以在SOA里部署,它们一起将成为下一代企业应用的化身。专家认为,下一代企业应用将作为松耦合模块化网络服务,开发人员可以把这些服务连接起来,以便在不需要太多定制编码的情况下,创建复杂的商业流程。

    向更牢固、更灵活的分布式应用模型迁移,是对在数据中心分配服务器和网络资源的类似努力的一种补充。“共同的主题就是虚拟化。”ZapThink公司的资深分析家Jason Bloomberg说,“存储虚拟化可以处理存储,而网格计算则可以对处理器功能进行虚拟化,面向服务的体系结构实质上是对软件应用功能进行虚拟化。”

    重新受宠

    目前的SOA呼声并不预示着将出现一种新的技术,而更像是一个老概念的又一次反复。以前试图推广SOA的尝试(如CORBA,通用对象请求代理体系)由于缺乏标准的中间件和API而受阻。观察家们认为,Web服务也许是使SOA成为主流的尝试过程中关键的一个环节。“现实是,现在也许就是我们考虑联系松耦合的分布式计算的最佳时机吧,部分原因是我们根据与专用集成技术相反的标准来进行这种尝试的。”ZapThink公司的另一位资深分析家Ron Schmelzer说。

    此外,随着各公司相继提出旨在最大限度地利用IT资源的新一代数据中心的倡议,它们必须考虑如何使这些分布式计算项目与应用有机地结合起来。例如,从应用的角度来看,诸如网格之类的技术取决于是否拥有与位置无关的服务。Schmelzer说:“如果系统要求所提供的某个应用必须在某个服务器上运行的话,则系统将无法工作。服务必须是分布式的,而在网格容量内可以做到这一点的惟一办法就是实现SOA。”

    Schmelzer说,SOA并不能代替现有的基础设施。相反,他认为,它只是作为多级或客户机/服务器体系结构里的应用服务器和数据库上面的某个层面。他说:“SOA可以提供联网的与位置无关的服务,这些服务本身也仅仅是充当与其他系统的接口。”

    IBM公司WebSphere Business Integration部经理Scott Cosby说,SOA不需要进行应用大检修。SOA并不是改变应用,而是提供与某项应用的接口,这样,某些功能才能得以显现。例如,某公司希望雇员确认功能能够作为Web服务在人力资源应用里显现。之后,其他应用可以通过SOA利用这项服务。

    经纪公司Wall Street Access公司负责软件开发的副总裁Peter Underwood说,Web服务和SOA的诱惑力太大了,以致于该公司经不住诱惑而更换了其有3年历史的过于庞大的Microsoft C++平台。以前的平台是用某种黑匣子方法建立的,这种平台没有可以访问的API。其结果是该公司就不能轻松地向客户、合作伙伴和贸易商批露交易执行过程中的一些必要步骤。

    Wall Street Access公司使用IBM公司的WebSphere Application Server和WebSphere Business Integration软件建立了一个名为AccessPoint的新的基于服务的交易系统。该系统可以集成和聚集来自近20家数据提供商的股票市场信息。

    “正是Web服务使这一切成了十拿九稳的事情。”Underwood说:“由于只有几种不同的方法可以了解会议信息或采购历史数据,因此,我们说,‘那就让我们以一种最抽象的方式建立一个框架结构吧,这样,我们就可以把信息在应用层进行批露’。”如今,通过中间件,该公司可以向贸易商和客户提供相同的服务。Underwood说:“每个人都可以用完全相同的方式查看相同的数据了。”

    测试也成了一个重要的问题,因为只需对AccessPoint接口进行单一的代码修改可以启动多个网络应用了。Underwood说:“我们在测试方面的投资非常大,因为当我们悄悄地进行某项修改时,它马上就大范围地开始泛滥了。”由于SOA可以存在于现有开发技术之上,诸如BEA、IBM、Microsoft和Sun之类的平台厂商已开始着手使其更易于用户使用内置工具和向导来建立SOA。此外,向Web服务和SOA迁移需要长远地考虑如何建立与简单的API相反的有用的服务。常见的错误就是(+本站微信networkworldweixin),低估了制订一致的调用和使用服务方法时可能遇到的困难。

    网络应用平台

    用户需要但目前又得不到的东西就是与操作系统、应用服务器和编程语言无关的API。如果使用.Net或Java来建立某种东西,结果就可以使用建立在该平台上的大量的基础设施服务了,只要一直呆在某个特定的平台上,就可以建立一个很好的紧密集成的系统。

    我们应该提倡建立一个网络应用平台,这个平台可以直接在网络层提供低水平的基础设施服务,而不是作为语言相关的应用平台的一部分。企业应该使用基于网络级的安全框架结构,而不是语言特定的安全服务,如Java认证和授权服务等。同样地,网络级交易服务还是有意义的。否则,用户就得被迫进行复杂的编程来启动跨平台操作。

    Web服务在朝向网络应用平台的方向发展。为了使Web服务行之有效,确实需要把大型应用分割成考虑周到的功能组件,并使这些组件在建立块模型时可用。对于大多数厂商而言,这意味着如果不是对整个应用体系结构本身进行重新设计的话,那么至少要对其应用中与不同商用功能相连接的接口的体系结构进行重新设计。 ■

    重新思考网络应用开发

    Sun公司副总裁兼总工程师Rob Gingell谈了他对应用开发演进的看法。

    Rob Gingell说,“采纳新的应用体系结构模型要求比企业平时付出更多的努力。我认为人们还没有编写很多真正的网络应用,他们没有真正重新思考用于网络操作环境的应用与运行在传统的操作系统环境的应用有什么不同。”但是,如果公司希望享受到Web服务等技术的好处,这种情况必须改变。他说:“我们一直让操作系统人员做太多的网络工作,而应用编写人员一直依赖于操作系统人员提供的呵护。”这种呵护导致了远程过程调用这类东西的出现。远程过程调用是屏蔽网络的特性,它通过使远程资源看起来像是本地资源来屏蔽网络。他说,此概念在由成千上万台设备构成的网络中行不通。

    他说,在设计运行在今天网络环境中的应用时,应用程序编写人员必须更紧密地与操作系统人员合作。他们必须设计考虑种种不利因素的应用,如网络连接失败、拓扑结构变化、可能出现延时及带宽受到限制等。

[责任编辑:程永来 cheng_yonglai@cnw.com.cn]