图2-1 SOA的各个标准及其关系图 以上标准中,很多标准都已经普及,比如,几乎所有的主要软件厂商都支持SOAP协议[2]。最核心的就是SOAP、WSDL和UDDI。SOAP是一种独立于平台的通信协议,它基于XML,用于描述应用程序之间通过互联网通信的消息的格式。为了让正确发送消息,需要知道IP地址和其他端点信息,服务支持的操作使用的一套消息,消息的类型,服务响应类型,请求或相应的消息头等。而WSDL则满足这些需求,且WSDL已经是最流行的Web服务描述语言[3]。WSDL能使Web服务功能的描述与该功能如何、在哪里实现进行分离[4]。UDDI是一个Web服务集成的体系架构,它包含了服务描述与发现的标准规范。因此,UDDI提供了一种有效的方式来浏览、发现Web服务以及了解它们之间如何如何相互作用。 SOA基本原理 要运行、管理SOA应用程序,企业需要SOA基础,它是SOA平台的一部分。SOA基础必须支持相关标准。图2-2所示的是一个典型的SOA基础结构。 图2-2 基本的Web服务结构 WSDL、UDDI、SOAP是SOA的基础部件。WSDL是用来描述服务;UDDI用来注册和查找服务;而SOAP是Web服务默认的传输机制用以描述客户端与服务器之间通信的消息的格式。 创建和使用Web服务一般的顺序是注册、发现、绑定和调用。首先,服务提供者创建一个Web服务,并使用WSDL语言对自己的服务进行描述,之后到UDDI注册中西注册自己的服务。其次,服务请求者,也即客户端到UDDI注册中心查找自己所需要的服务,进而找到所需的服务。最后服务请求者解析服务提供者提供的服务,并通过SOAP协议与服务端进行通讯。通常,向UDDI注册中心注册或从中查找并不是必须的,但是客户端应能通过其他方式找到所需的服务。 SOA的关键技术 SOA的关键技术主要有XML、Web服务,面向服务的架构和面向服务的管理,它们之间的关系如图2-3所示。
图2-3 共同造就面向服务的企业的关键技术 可扩展标记语言(Extensible Markup Language,XML),它是与编程语言,开发环境和软件系统无关的标准数据类型和结构;它被用于业务文档定义和业务信息(比如标准的行业词汇)交换的通用技术;而且有广泛的XML处理软件(比如XML解析器、查询器、转换器)。 Web服务(Web Service),它是一种各种被广泛采纳的、用于分布式计算的接口描述,以及通过消息进行文档交换的开放标注;它与下层执行技术和应用平台的无关性,如图2-2-2所示,不同的开发运行平台的产品可以很容易的通过SOA这一架构相互集成;它现已能具备企业级服务质量(比如安全性、可靠性、事务性等)的可扩展性;它拥有对合成应用(比如业务流程、多渠道服务、快速集成等)的支持。 SOA开发优缺点 SOA开发并不是十全十美的,它的主要优点有:(1)重用——创建可重用于各种应用的服务的能力。(2)效率——通过组合现有服务以快速创建新的服务和应用的能力,以及集中精力于数据共享而非底层实现的能力。(3)与技术的松耦合——独立于服务的执行环境进行服务建模(比如定义服务能够收发的消息)的能力。(4)职责的划分——令业务人员和技术人员分别关注业务问题和技术问题、两组人员通过服务契约进行协调的能力。 SOA开发目前的主要缺点有:(1)降低系统性能,需要大量资源。(2)服务划分困难。(3)个性化方案有待完善。(4)安全问题有待改善。 SOA可能带来的效益 使用SOA开发可以带来很多效益,主要是技术效益和业务效益。其中技术效益有:开发更高效,更利于重用,简化维护,增量采纳,使演进更流畅。而带来的业务效益有:增强业务机动性,更好地配合业务,改善客户满意度,提高现有IT资产的投资回报率,降低集成成本,降低对厂商的依赖和降低转换成本(Switching Costs)。 SOA国内外现状 SOA已经成为超过曾经一度风靡面向对象、BS结构、三层结构、N层结构的另外一个软件解决方案的热门话题。SOA将会让有本地集成商转型的咨询服务商更加具有竞争力,因为他们更了解本地的行业特色及具体实现,SOA也将让中国的软件外包公司有一个明确的业务方向及核心技术能力。SOA将成为中国IT界的一个机遇[5],尤其是对中间件厂商更加适合[6]。 目前SOA在国外已经有了很多的应用,SAP,IBM,Oracle等大型企业已经有不少基于SOA的产品,并且有众多的SOA计划正在进行。基于使用SOA标准的诸多面向服务的建模原则已经开始被组织和专家使用了,这些原则可以解决软件交互的一些挑战:虚拟化、变换和有意义的建模[7]。Web服务的安全性可以通过使用基于传输协议的SSL获得,但是我们也十分有必要在XML内部通过如公钥基础设施(Public Key Infrastructure,PKI)等使用加密,数字签名等认证方式来获得安全性[8]。国内目前实施SOA的行业主要集中在政府、电信、金融、医疗等行业。SOA被认为是软件开发的下一代里程碑,会成为企业软件架构的趋势。数据表明:尽管SOA在中国商处于应用启蒙阶段,但企业在SOA的投入却在快速增加。可以预计在未来1-2年,SOA在中国将进入快速发展期。 表2-1 国外公司SOA产品部分列举 公司 产品 概述 IBM IBM SOA Foundation 是一个集成的、开放标准的软件即,用于扩展已有应用的价值和商业流程 首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5 相关论文
首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5