很多体系结构都无法有效建立支持网络的可重用应用,但面向服务的体系结构(SOA)有望获得成功。
SOA是共享和重复使用代码应用体系结构的最新名称。利用今天的SOA,许多应用都可以建立在基于XML及其变体,如简单对象访问协议(SOAP)和Web服务描述语言(WSDL)的标准接口上,已有的应用也可以向这方面改进。SOA还可以定义这些服务定位、执行、管理、监控和加密的方式。
例如,运输、销售和采购系统可以利用税收计算服务,而不需重写和更新每个应用中的代码来实现税收计算。信用检查和防伪“服务”可以集成到工作流程中,并执行贷款的处理工作。采购系统可以分解为数十种服务,并用于支持其他业务流程。
然而,SOA仍然是一种古老的概念。但由于Web服务的热潮,而且SOA支持开放式的基于标准的接口 ,因而它又焕发出新的力量。
有的用户认为:“SOA是一种非常好的营销词汇。其中的核心服务可以松散地与Web服务体系结构结合在一起,而在Web服务体系结构中,所有的事情都可以异步运行。所以,我们可以拥有一大批离散式的服务。如果我们将这些服务结合在一起,它们就形成了一项应用。”该用户目前运行的核心服务大约有20种,可通过URL调用并执行特定的任务或业务流程,例如在自动工作流程中进行信用检查,用以支持贷款处理业务。
但在实际应用过程中,SOA并不一定需要Web服务。Web服务只是为SOA提供了更高的灵活性,使得多个客户端共享某个服务的过程变得更加容易。正是由于缺乏这两个特性,其他的SOA计划都以失败告终,例如大家都熟知的通用对象请求代理体系结构(CORBA)和分布式组件对象模型(DCOM)。
SOA最关键的特性就是具备极高的灵活性。您需要的是将所有不同的应用系统结合在一起,使它们作为一个巨大的虚拟应用来工作。该应用将能够完全访问所有不同应用系统中的所有功能。
由于SOA已经超越了Web服务中点对点式的集成,它可以更容易地集成许多服务,同时将典型的分布计算集成所需的工作量降至最低。利用SOA,服务可以在现有的软件上重复使用,IT管理成本也可大幅降低,不仅简化了软件升级,也使应用更容易与其他商业伙伴集成在一起。而且SOA还可以在现有的基于IP的网络上运行。只有当服务成为开发和部署应用的主要方式时,才需要一些额外的基础设施,如XML流量加速器或负载平衡产品。
尽管SOA的优点是很容易理解的,但要了解其概念却并非易事。采用该技术的公司必须确定将哪些软件功能转化到可重复使用的网络服务中,这一过程可能引起一些争议,人们会为了数据应用和计算资源的所有权进行争论。因此,SOA概念的推广不是件易事。此外,必须完成可靠通信、安全、管理和工作流程的Web服务标准的建立,只有当这些因素得到满足后,SOA才可能成为真正的企业级应用。
专业研究机构ZapThink预计,这类问题是可以克服的,到2006年SOA将成为主导型的分布式计算方法。到2010年整个企业软件市场中有69%都将变成面向服务的内容,而整个市场中支持此类业务的产品和服务价值将超过980亿美元。
SOA的魅力
在该技术产生影响之前,各公司必须选择要转换到服务中的各个业务流程。
有用户认为:“最大的问题是确定将哪些应用与哪些业务流程结合在一起,并将其中可以共享的功能抽出来。这一工作需要做大量的研究,同时会对企业的流程造成重大影响。”
专家们指出,由于 CORBA、DCOM是非常僵化的,服务和客户端都与技术特性紧密相连。服务被切分为许多细小精密的部分,因此就要求客户端之间进行许多对话,并由服务来完成这一单独任务。有了SOA,就不需要再对所有的细小部分进行编程,而这一点在CORBA中是做不到的。
在SOA核心中有三个组件可以定义网络服务:供应商、注册机构和消费者。供应商就是应用。尽管有时这一应用只是执行某个基本任务的一小段代码,如计算销售税,但它的作用却很大。供应商可以将有关其自身的描述发送到注册机构,如有关应用的功能和连接方法的信息。消费者(通常是另一个应用)使用这些注册记录来发现各个供应商的存在,然后直接与这些供应商连接或绑定。
SOA以非常松散的方式与服务结合在一起,而且服务和客户端都可以独立变化。服务拥有基于标准的接口,可以非常宽松地提供某个具体的服务或业务流程,如税收计算或采购订单的签发等。
比如,如果您拥有一个或20个策略系统,而且不知道在一年中会使用哪一个,就可以建立一个策略服务,用它来满足所有人的需要。在这一过程的幕后,服务可以将请求重新路由至一套传统系统,如果明天我们让这些传统系统退役,消费者也可以很清楚地了解其中的内容。这样就没有必要对代码进行修改。”
很多公司是通过收购其他企业建立起来的,使用 SOA实施的效果就更加明显,能够将各种系统和应用集成在一起,从而使公司能够针对变化做出更好的响应,并为客户提供更优秀的服务。
建设,而非购买
一些专家指出,SOA并不是可以直接买来的软件套装,而是要根据自己的需求和实际情况建设起来的。然而,有一些关键的软件还是必须购买的。首先就是BEA、Borland、IBM、Microsoft和Sun的开发工具,用这些工具来创建基本的Web服务应用或创建与传统应用的接口。
其他一些厂商,如Acucorp、Fujitsu、Jacada和Micro Focus的工具也可以帮助您将一些用COBOL等传统编程语言编写的应用移植到SOA中。
在CORBA中,用户必须改变传统应用,但在SOA中,这些后台应用都可以保持原样。只需将它们链接在一起即可。独立软件厂商还可以为其从ERP系统到协作服务器在内的许多产品添加基本的Web服务接口。
另一个关键的组成部分就是SOAP服务器。虽然今天的Web应用服务器种类繁多,但由于SOAP数据流可以通过TCP/IP传输,所以也可以很容易地移植到HTTP上。
SOA注册机构通常都是由UDDI这种Web服务协议支持的。所谓UDDI就是通用、描述、发现和集成。UDDI注册机构类似黄页服务,使应用组件可以很容易地被找到、调用和重复使用,因而这些应用组件不需要紧密捆绑在一起。Fujitsu、IBM、Microsoft和Novell等公司都提供UDDI注册,而一些较小的厂商,如Flashline和LogicLibrary也可以提供类似产品。后者还添加了一些特性,用来帮助开发人员创建、管理和监视整个服务集。
然而,功能完整的SOA不仅仅是将应用开发成服务,还需要交易信息、安全性、工作流程和管理等标准才能确保SOA的扩展能力和可靠性,但这些内容仍然处于开发阶段。在某些情况下,由于协议的相互竞争,整个进程都会受到拖累。在服务开始普及后,为了处理XML流量的增加,还需要将基础设施升级成为中间件才能满足要求。
一些专业的厂商提出要添补这一空白,它们的解决方案包括信息控制系统、管理平台和XML流量加速器等。
总之,SOA是Web服务中一项革命性的进展。长期的优势不仅仅是对集成过程的简化,而是能够在网络上随时部署各种服务。
您可以向Web服务供应商提出如下问题:
● 我的开发人员是否必须大幅度改变其编程技术才能设计或修改成符合SOA模型的应用?
● 我应当如何修改当前的中间件基础设施才能支持正在逐阶段建设的SOA?
● 一旦Web服务在网络中大规模开展起来,我需要哪一种中间件基础设施来支持XML和SOAP数据流量的增长?
● 为什么您的软件在未来的三年中内会成为独立的中间件,而非主要厂商如IBM、微软、Oracle和Sun所提供的平台服务中的某种特性?
--
FROM 159.226.40.***