SOA与Web服务的相关技术是密不可分的,如XML、SOAP、WSDL和UDDI等。
XML可作为定义数据描述语言的语言,如标记语法或词汇、交换格式和通信协议。
SOAP定义在服务请求者和服务提供者之间定义使用XML格式的消息进行通信。在面向对象编程流行的环境中,该请求对象可以在提供的对象上执行远程方法调用。SOAP的优点在于它完全和厂商无关,相对于平台、操作系统、目标模型和编程语言可以独立实现。传输和语言绑定以及数据编码的参数选择都是由实现决定的。
WSDL规范定义了XML词汇表,依照请求和响应消息在服务请求者和服务提供者之间定义了一种契约。我们能够将Web服务定义为软件,这个软件通过描述SOAP消息接口的WSDL文档来提供可重用的应用程序功能,并使用标准的传输协议来进行传递。
UDDI规范提供了一组公用的SOAPAPI,使得服务代理得以实现。UDDI为发布服务的可用性和发现所需服务定义了一个标准接口(基于SOAP消息)。UDDI 实现将发布和发现服务的SOAP请求解释为用于基本数据存储的数据管理功能调用。
SOA平台中间件基于标准规范搭建,保证了它作为业务整合的神经中枢对各种应用源、各种数据源、以及与其他应用整合产品的无缝连通和衔接。
4、未来SOA发展方向
目前,SOA已经成为各大企业提升自己产品的灵活性和敏捷性的重要手段。在SOA创造的商业世界里,企业将会创造崭新的商业模式,从不同厂商购买网络服务,编排和组装自己的应用。企业总体拥有成本将大大降低,将注意力集中于自身的商业逻辑。SOA可提供跨平台、跨语言的、可扩展的、可靠和安全的网络服务。
4.1基本特征
SOA的关键目标是实现企业IT资产的最大化重用。SOA具备以下特征:
-可从企业外部访问
企业的业务伙伴可以像企业内部用户一样访问相同的服务,调用业务流程,实现业务信息的快速交换。
-随时可用
当有服务使用者请求服务时,SOA要求必须有服务提供者能够响应,其中包括同步应用和异步应用。
同步应用对于其所使用的服务具有很强的依赖性,通常部署在前台,其最终用户很容易受到服务提供者短缺的影响。同步应用利用分布式服务提供者,可以响应更多的用户请求。但是,随着提供特定服务功能的服务器数量的增长,出现短缺的可能性也呈指数级上升。
异步应用则更为稳健,采用队列请求设计,可容许服务提供者短缺或迟滞的情况。异步应用大多数情况下部署在后台,用户通常不会觉察到短暂的短缺。大部分情况下异步应用能够稳健应对短时间短缺。
服务使用者要求提供同步服务时,通常是基于其自身理解或使用习惯。在多数情况下,采用异步模型可以达到同样的效果,更能够体现SOA的最佳特性。
-粗粒度服务接口
粗粒度服务提供特定的业务功能,而细粒度服务代表了技术组件方法。可以使用几个细粒度服务实现同一功能。
采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往复,一次往复就足够。在一个单独事务中包含的多段细粒度请求可能使事务处理时间过长、导致后台服务超时,从而中止。与此相反,从事务的角度来看,向后台服务请求大块数据可能是获取反馈的唯一途径。
-松散耦合
SOA具有“松散耦合”组件服务,这一点区别于大多数其他的组件架构。该方法旨在将服务使用者和服务提供者在服务实现和客户如何使用服务方面隔离开来。
服务提供者和服务使用者间松散耦合背后的关键点是服务接口作为与服务实现分离的实体而存在。这是服务实现能够在完全不影响服务使用者的情况下进行修改。-可重用的服务及服务接口设计管理
如果完全按照可重用的原则设计服务,SOA将可以使应用变得更为灵活。可重用服务采用通用格式提供重要的业务功能,为开发人员节约了大量时间。设计可重用服务是与数据库设计或通用数据建模类似的最有价值的工作。
不按规则编写服务将无法保证可提供重用性的SOA的成功实施,需要在制定SOA实施计划时加以考虑。
-标准化的接口
XML和Web服务大大提升了SOA的价值。尽管以往的SOA产品都是专有的、并且要求IT部门在其特定环境中开发所有应用,但XML和Web服务标准化的开放性使企业能够在所部署的所有技术和应用中采用SOA。
Web服务使应用功能得以通过标准化接口提供,并可基于标准化传输方式(HTTP和JMS)、采用标准化协议(SOAP)进行调用。例如,开发人员可以采用最适于门户开发的工具轻松创建一个新的门户应用,并可以重用ERP系统和定制化J2EE应用中的现有服务,而完全无须了解这些应用的内部工作原理。采用XML,门户开发人员无须了解特定的数据表示格式,便能够在这些应用间轻松地交换数据。
-精确定义的服务接口
服务是由提供者和使用者间的契约定义的。契约规定了服务使用方法及使用者期望的最终结果。此外,还可以在其中规定服务质量。此处需要注意的关键点是,服务契约必须进行精确定义。
4.2优点
采用SOA体系架构,可以带来以下优势:
-编码灵活性
可基于模块化的低层服务、采用不同组合方式创建高层服务,从而实现重用,这些都体现了编码的灵活性。此外,由于服务使用者不直接访问服务提供者,这种服务实现方式本身也可以灵活使用。
-明确开发人员角色
熟悉底层技术的开发人员可以集中精力在重用访问层,协调层开发人员则可将精力放在解决高价值的业务问题上。
-支持多种客户类型
借助精确定义的服务接口和对XML、Web服务标准的支持,可以支持多种客户类型,包括PDA、手机等新型访问渠道。
-更易维护
服务提供者和服务使用者的松散耦合关系及对开放标准的采用确保了该特性的实现。
-更好的伸缩性
依靠服务设计、开发和部署所采用的架构模型实现伸缩性。服务提供者可以彼此独立调整,以满足服务需求。
-更高的可用性
该特性在服务提供者和服务使用者的松散耦合关系上得以体现。使用者无须了解提供者的实现细节。
SOA可以看作是B/S模型、XML/WebService技术之后的自然延伸。SOA将能够帮助客户站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。以SOA架构的系统能够更加从容地面对业务的急剧变化。
当前,SOA还没有形成很大的规模,主要因为SOA更多的是要求应用间的协同工作,SOA的复杂性阻碍了它的推广,从这个特点可以看出,SOA平台中间件厂商必须将SOA的复杂性最大程度的弱化,才能将SOA真正转化为实际生产力,帮助企业获得SOA带来的巨大收益。
5、国内优秀SOA产品推荐