SOA设计模式

摘要:面向服务架构(Service-Oriented Architecture, SOA) 是一种应用框架,将日常的业务应用划分为单独的业务功能服务和流程,通过采用良好定义的接口和标准协议将这些服务关联起来。通过实施甚于SOA的系统架构,用户可以构建、部署和整合服务,无需依赖应用程序及其运行平台,从而提高业务流程的灵活性,帮助企业加快发展速度,降低企业开发成本,改善企业业务流程的组织和资产重用。

  SOA,面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。

  SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。

  SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。SOA系统是一种企业通用性架构。

面向服务设计范式主要由以下设计原则组成:

1.标准化服务契约:服务遵循相同的契约设计标准。

2.服务松散耦合:服务契约对服务消费者松耦合,服务之间松耦合。

3.服务抽象:服务契约仅包含必要信息,并且关于服务的信息局限为服务契约中发布的信息。

4.服务可重用性:服务可作为重用资源。

5.服务自治:服务对其底层运行时执行环境有很大的控制权。

6.服务无状态性:服务无状态保证了服务部署的横向扩展性。

7.服务可发现性:服务可通过描述性元数据有效发现并解释服务。

8.服务可组合性:可以通过组合叠合原子服务形成复杂上层业务服务。

为何选择SOA

  不同种类的操作系统,应用软件,系统软件和应用基础结构(application infrastructure)相互交织,这便是IT企业的现状。一些现存的应用程序被用来处理当前的业务流程(business processes),因此从头建立一个新的基础环境是不可能的。企业应该能对业务的变化做出快速的反应,利用对现有的应用程序和应用基础结构(application infrastructure)的投资来解决新的业务需求,为客户,商业伙伴以及供应商提供新的互动渠道,并呈现一个可以支持有机业务(organic business)的构架。SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,提供选择从而可以通过不同的渠道提供服务,并可以把企业现有的或已有的应用作为服务, 从而保护了现有的IT基础建设投资。

SOA体系三大核心部件

  ESB(Enterprise Service Bus)企业服务总线ESB是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。

  BPM(Business Process Management)业务流程管理所谓业务流程管理是指根据业务环境的变化,推进人与人之间、人与系统之间的整合及调整经营方法与解决方案的IT工具。BPM可以使系统更为强壮,通过BPM组件,SOA能够更好地监控它连接的系统。

  Portal门户。门户是一个基于WEB的应用程序,它提供个性化、单点登录、不同来源内容整合及存放信息系统的表示层。 Portal是低成本的集成技术。如果企业已经有了很多信息系统,Portal可以很容易的将这些系统集成到一起,并以统一界面方式提供给用户。

SOA优势

  SOA的概念并非什么新东西,SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着无处不在的标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在最新的和现有的应用之上创建应用;SOA能够使客户或服务消费者免予服务实现的改变所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。

发展效益

A. 平衡最初的旧系统投资(Leverage initial investment):

组织过去所投资的系统、软硬体,如果能再利用等于赋予其新的价值,这也替组织降低成本并增加竞争力。

B. 基础建设的便利性(Infrastructure Commoditization):

让所有的应用程式能相互沟通(互通性)。

C. 快速的接近市场(Faster time-to-market):

服务的重复使用(再利用),来缩短过去的组织流程,更快速的提供服务来接近市场。

D. 减少支出(Reduce Cost):

服务的重复使用,可降低开发成本。因为开发新系统的成本,大部份比更新旧有系统来的花费大。

E. 减低风险(Risk mitigation):

开发新系统的风险远大于更新旧系统。

F. 持续改善商业流程的循环(Continuous improvement cycle for business process)

G. 中心流程处理(Process-centric processing)

主要优势

一,SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。通过SOA架构,企业可以与其业务伙伴直接建立新渠道,建立新伙伴的成本得以降低。

二,SOA与平台无关,减少了业务应用实现的限制。要将企业的业务伙伴整合到企业的“大”业务系统中,对其业务伙伴具体采用什么技术没有限制。

三, SOA具有低耦合性特点,业务伙伴对整个业务系统的影响较低。在企业与各业务伙伴关系不断发生变化的情况下,节省的费用会越来越多。

四, SOA具有可按模块分阶段进行实施的优势。可以成功一步再做下一步,将实施对企业的冲击减少到最小。

五, SOA的实施可能并不具有成本显著性。这要分三种情况加以讨论:

(1) 当企业从零开始构建业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。

(2) 当企业业务发展或发生企业重组等变化而原有系统不能满足需要,而需要重构业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。

(3) 当企业业务发生缓慢变化并可预见到将来需要重构业务系统时,由于可以按模块分阶段逐步实施SOA以适应变化的需要,这样企业不需一下投入一大笔经费进行系统改造,而是根据企业业务发展情况和资金情况逐步投入,缓解了信息投入的压力。

优点

  服务导向架构并不是一种全新的解决方案;相反,SOA是技术与架构的自然进化。系统架构一直在不断进步,与商业保持高度一致。系统设计师与商家很早就认识到将技术与商业流程相协调的重要性,包括充分应用并合理化技术资源,以及为商业提供更好的支持。

  SOA也在一定程度上源于早已有之的企业架构理论。企业架构对技术进行评估,但是更重要的是,它关注整个企业和全部的商业流程并提供了做出技术决策的背景信息。SOA工具则融合了互联网技术,如HTTP和XML,以及综合技术,如消息总线、转译技术和连接技术。

参考文献:SOA百度百科

原文地址:https://www.cnblogs.com/yuanxiaochou/p/13089854.html