SOA学习笔记总结(共8页).docx
《SOA学习笔记总结(共8页).docx》由会员分享,可在线阅读,更多相关《SOA学习笔记总结(共8页).docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第一章 SOA概述1.1 SOA的基本概念SOA是分布式软件系统构造方法和环境的新发展阶段。在SOA架构风格中,服务是最核心的抽象手段,也不被划分(组件化)为一些列粗粒度的业务服务和业务流程。业务服务相对独立、自包含、可重用,由一个或者多个分布的系统所实现,而业务流程由服务组装而来。一个“服务”定义了一个与业务数据相关的接口,以及约束这个接口的契约,如服务质量要求、业务规则、安全性要求、法律法规的遵循、关键业绩指标等。接口和契约采用中立、基于标准的方式进行定义,它独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在不同系统中的服务可以以一种统一的和通用的方式进行
2、交互、相互理解。除了这种不依赖于特定技术的中立特性,通过服务注册库(Service Registry)加上企业服务总线(Enterprise Service Bus)来支持动态查询、定位、路由和中介(Mediation)的能力,使得服务之间的交互是动态的,位置是透明的。技术和位置的透明性,使得服务的请求者和服务提供者之间高度解耦。这种松耦合系统的好处有两点:一点是它适应变化的灵活性;另一点是当某个服务的内部结构和实现逐渐发生改变时,不影响其他服务。而紧耦合则是指应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当发生变化时,某一部分的调整会随着各种紧耦合的关系引起其他部分甚至整个应用
3、程序的更改,这样的系统架构就很脆弱了。SOA架构带来的另一个重要观点是业务驱动IT,即IT和业务更加紧密对齐。以粗粒度的业务服务为基础来对业务建模,会产生更加简洁的业务和系统视图;以服务为基础来实现的IT系统更灵活、更易于重用、更好(也更快)地应对变化;以服务为基础,通过显式地定义、描述、实现和管理业务层次的粗粒度服务(包括业务流程),提供了业务模型和相关IT实现之间更好的“可追溯性”,减小了它们之间的差距,使得业务的变化更容易传递到IT。因此,可以将SOA的主要优点概括为:IT能够更好更快地提供业务价值(Business Centric)、快速应变能力(Flexibility)、重用(Reu
4、sability)。与此同时,企业越来越重视业务模型本身的组件化,以支持高度灵活的业务战略。但是现有的企业软件架构不够灵活,难以适应日益复杂的企业整合,难以满足随需应变商务的需要,因此与业务对齐、以业务的敏捷应变能力为首要目标、松散耦合,支持重用的SOA架构方法得到青睐。基于我们同客户打交道的经验,有必要在这里澄清大家经常混肴的几个基本问题。第一,SOA是架构风格,是方法;而不是具体架构具体实现技术(如Web Service)、具体架构元素(如企业服务总线、Enterprise Service Bus,ESB)。经常有人认为只要用了Web Service,就是SOA了。这是不对的,Web Se
5、rvice只是实现服务的一种具体技术表现形式,同样,认为搞SOA,就是买点软件,建个ESB,这也是不对的。ESB只是SOA架构风格中的一部分。首先,ESB是一种从实践中总结出来的架构风格元素,即BUS(总线模式);其次,ESB的主要功能是负责连通性和服务中介(Service Mediation),解耦服务的请求者和服务的提供者。第二,SOA的首要目标是IT与业务对齐,支持业务的快速变化;其次是IT架构的灵活性和IT资产的重用。业务对敏捷性的需要,是SOA最大的驱动力。一方面是业务在这方面的要求越来越高;另一方面是今天的IT很不灵活,很难适应业务快速变化的需求,不仅仅是因为IT架构不灵活,更重要
6、的是业务模型中的元素和IT系统的元素之间存在很大的差异。这种不对齐,导致业务人员和IT人员之间的沟通不够有效,业务的变化需要花费很大的代价传递到IT系统。第三,在工程上,SOA的重点是服务建模和基于SOA的设计原则进行架构决策和设计。从建模和设计的角度来说,SOA更多地侧重在业务层次上,也就是通过服务建模将业务组件化为服务模型,它是业务架构的底层,是技术架构的顶层,承上启下,是灵活的业务模型和IT之间的桥梁,保证二者之间的“可追溯性”。从这里往下,是基于已有的方法,比如OO/CBD来进行的。从架构的层次上,SOA更多地侧重于如何将企业范围内多个分布的系统(包括已有系统/遗留系统)连接起来(ES
7、B,Adapter/Connector),如何将它们的功能、数据转化为服务,如何通过服务中介机制(ESB,Service Registry)保证服务之间以松散耦合的方式交互,如何组装(集成)服务为流程等。从这往下,对于实现服务的一个具体应用,它的架构、设计和实现是可以基于已有的实践和方法的,比如J2EE或.NET。1.2 计算环境的演变和面向服务的计算环境1.2.1 计算环境如何在一个计算环境中分割和部署计算能力、数据资源,如何让各个部分相互通信和协作,如何在概念上对问题域进行建模,然后映射到该计算环境,都会受到计算环境的影响和制约。软件开发一直是一件很难的事情,因为我们要处理的问题越来越复杂
8、,人们处理这种复杂性最主要的手段就是抽象。1.2.2 计算环境的演变历程 随着互联网的发展,开放和标准的网络协议被普遍支持,所有底层计算平台都开始支持这些标准和协议,这导致一个计算环境内部和各个计算环境之间交互的藩篱被打破。数据和功能的表示与交互在XML、WEB服务技术和标准的基础上保证了通用性和最大的交互能力,这使得计算环境发展到一个全新的阶段基于标准、开放的互联网技术的计算环境。在这样的计算环境中,各个部分可以采用异构的底层技术,它们使用XML来描述和表示自己的数据和功能,采用开放的网络协议(如HTTP)来握手,在此之上,基于Web服务来互操作和交互数据。在这里,一个很重要的新概念是“服务
9、”,它是一个自包含的功能,使用者通过明确定义的接口(契约)来与一个服务交互,这个接口的描述基于WSDL(Web Service Description Language)这样的开放标准。对象和组建重在表示一个事物本身的组成部分和相互关联(也就是WHAT “THINGS” ARE的问题),而服务则表示一个事物做什么(叶就是WHAT “THINGS” DO的问题)。Web服务是实现服务的技术手段,就如同各种编程语言中的对象是实现对象的技术手段,J2EE中的EJB是实现组件的技术手段一样。这种基于标准、开放的互联网技术,以服务为中心的计算环境,我们称之为“面向服务的计算环境”。1.2.3 面向服务的
10、计算环境 在面向服务的计算环境中,系统可以是高度分布、异构的。它一般包括服务运行时环境(Service Running)、服务总线(Service Integration Infrastructure)、服务网关(Service Gateway)、服务注册库(Service Registry)和服务组装引擎(Service Choreography Engine)等。服务运行时环境提供服务(如服务组件)的部署、运行和管理能力,支持服务编程模型,保证系统的安全和性能等质量要素;服务总线提供服务中介的能力,使得服务使用者能够以技术透明和位置透明的方式来访问服务;服务注册库支持存储和访问服务的描述信
11、息,是实现服务中介、管理服务的重要基础;而服务组装引擎,则将服务组装为服务流程,完成一个业务过程;服务网关用于在不同服务计算环境的边界进行服务翻译,比如安全。 面向服务的计算环境是开放的,标准的。例如,Transport层的HTTP协议,Service Description层的WSDL,Business Process层的WS-CDL等。 面向服务的计算环境,为IBM所定义的随需应变计算环境奠定了现实基础。随需应变计算环境应具备以下特点,如下图:1) 整合:将人、过程、应用和数据全面整合起来。2) 虚拟化:将分布、异构的物理资源(服务器、存储设备等)整合起来呈现为统一的逻辑对象,以安全和可管
12、理的方式供使用。3) 自主计算:如同生物体一样,系统具备一些高级生物系统的能力,包括自我诊断和修复问题,自动配置和调整以适应环境的变化,自动优化资源的使用效率、增强工作负荷的处理能力,自我保护数据和信息的安全。4) 开放标准:整个环境建立在开放的标准之上,保证系统的交互性。在面向服务计算环境中,企业服务总线处于非常重要的位置,它提供服务的中介,解耦服务请求者和服务提供者,是服务计算环境中的核心。ESB是过去消息中间件的发展,采用了“总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放标准为基础来支持应用之间在消息、事件和服务级别上的动态互联互通。ESB的基本特征和能力包括:描
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SOA 学习 笔记 总结
限制150内