2022年SCA在SOA架构中的角色 .pdf

上传人:C****o 文档编号:32506336 上传时间:2022-08-09 格式:PDF 页数:5 大小:371.24KB
返回 下载 相关 举报
2022年SCA在SOA架构中的角色 .pdf_第1页
第1页 / 共5页
2022年SCA在SOA架构中的角色 .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年SCA在SOA架构中的角色 .pdf》由会员分享,可在线阅读,更多相关《2022年SCA在SOA架构中的角色 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、浅谈 SCA 在 SOA 架构中的角色杨冬芹1李刚2Yang Dongqin Li Gang 摘 要:本文介绍了创建SOA 解决方案的基础性构件技术SCA,重点阐述了SCA在 SOA 架构中所起的角色和作用。关键字:构件技术;SOA;SCA ;服务Abstract:This paper introduces infrastructural component technology which is used to build solution based-on SOA SCA , mainly describes the role and functions of SCA in SOA arc

2、hitecture. Keywords :Component Technology ;SCA;SOA;Service 0 引言软件构件共生于软件复用。早于1968 年,在北大西洋公约组织(NATO )软件工程会议上就提出了软件复用的概念,后来还为此制定了一整套软件复用的指导性标准,其中包含了利用标准构件实现软件复用的基本思路。生产标准软件零部件,从而组装成软件的设想受到业界的广泛关注,但各个发展历史时期,人们对其认识却不尽相同。20 世纪 7080 年代,复用技术主要停留在对程序代码片段的复用,这一时期软件生产主要考虑如何充分利用已有的源代码、子程序库和类库来提高软件开发效率。20 世纪 90

3、 年代,虽然面向对象技术促进了软件重用,但是只实现了类和类继承的重用。在整个系统和类之间还存在很大的缺口。为填补这个缺口,人们曾想了许多方法,如系统体系结构、框架、设计模式等。自从构件出现以来,软件的重用才得到了根本改变。基于构件软件开发实现了分析、设计、类等多层次上的重用。SCA 则是构件技术阶段的产物和成果,是创建SOA 解决方案的基础性构件技术。1 相关技术1.1 SCA 概述SOA 的本质特性在于可以通过组合新创建的或已有的服务来创建崭新的应用服务,而这 些组成崭新服务的原子 服务可以由不同的技术 来开发。 SCA (Service Component Architecture ) ,

4、服务构件架构,它定义了一个简化的基于服务的模型。该模型涉及服务网络的缔造、装配和部署,并且这些服务都是语言中立(语言无关)的。SCA 的编程模型是高度可扩展性并且是语言中立的。SCA 易于扩展: 1、多样的语言实现, 包括 Java, C+, BPEL, PHP, Spring 等; 2、 多种捆绑机制, 包括 Webservice, JMS, EJB, JSON RPC 等; 3、多种运行 环境 ,包括 Tomcat, Jetty, Geronimo, OSGI 等。SCA 将 基础设 施功能 从业务 领域 中分 离出来,以 便让 开发 者可以将精力集 中在业务 逻辑上。它通过 声明 式的应

5、用 策略 和服务质 量为服务 调用提 供可靠性、 安全 性和事务性。什么 是应用程序 ?一种结 论认为它是由一组在一起协同工作的软件构件集合构成。所有的这些软件组件可以用相同的技术当然也可以由不同的技术创建。它们可以运行在同一机器的同一进程中也可以在不同的进程中, 当然也可以 跨越多个机 器。 然而应用程序要正常工作,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 需要 两样东西:一、有一个创建构件的方式;二、 有一个 描述这些

6、构件如何交互工作的机制。SCA 就定义了这 么一套通用的解决方案。SCA 起先是由一组开发厂商(包括 BEA、IBM 、Oracle、SAP 等)创建的,现在归 OASIS 所有。 SCA 规范给 出了如何创建构件和如何将这些构件装配成一个完整的应用程序的定义。SCA 应用程序中的构件可以由java 或其它语言开发, 也可以 使用其它技术,如BPEL 或 Spring 框架技术。不管采用何种构件开发技术,SCA 都定义了一套通用装配机制来说明 这些构件是如何组装成应用程序的。1.2 SOA 概述SOA(Service-Oriented Architecture ) 在新一代的架构理念因为其先进

7、性 站到了技术的 前沿,是各大技术 厂商紧跟 的开发方式。 当然同时 也因为其 先进性,使得其成为本世纪最为模糊的概念。个人都有自己的理解, 使 得 SOA 在很大程度上 给人的感觉 是可以 听得见,却 摸不着 的“ 神秘 技术 ” 。这 里很难给 SOA 下一个 确切 的定义。概 略来说,SOA 是一种架构设计的风格 。Service 是其设计的 核心单元 ;Service 具备良好 设计的 接口; Service 是可重用的。SOA 不是技术,而是一种设计的思想,是为了使 IT 更好 的支持商 业运 营的模式,是一种文化。 SOA 的目标是要促进 企业 IT 能力与 业务 目标的配合 与协

8、调 ,提 供一种机 动的 IT 基础设施 ,能快捷地 根 据业务 需求 变化而进行重新配置,实现业务 敏捷 性。任何一种技术的出现,其实都是对开发内容 进行相关分类和归类,以 便减少 代码 冗余,增加 代码复用的机会。 所以 我们在 做面向服务的分析与设计工作时, 也应该 做相应的分层 归类工作。如 下图 所 示:图 1 SOA 层次图图中给出了 三 个高层 抽象层,我们的关注点应该在服务接口层,需要继 续细分该层。 此层分为服务编排层、业务服务层和应用服务层。通过这个 比较粗略 的分层,可以 看出各个服务层有了上下关系和 归类条件。具体就是:应用服务层 归入 一些公共的、 与解决方案无关的工

9、具服务,比如负载均衡 服务、或者是专门用于向 员工发 送短信息 的服务 (它会 被 多处服务所 调用)等。业务服务层则 放入 一些有业务含义的原子性业务服务。所谓原子性业务服务就是不可再分解的业务服务, 其中的分析建模技术包括 “ 按业务实体进行分析和建模” 和“ 按特定 任务进行分析和建模” 的两种方式。一般来说 “ 按业务实体进行分析和建模” 比“ 按特定 任务进行分析和建模” 方式 使得服务的复用机会更多些,毕竟 “ 按特定 任务进行分析和建模” 的方式得到的服务自然是满足特定 任务的大的子流程,含有了业务 流程,其实业务服务层如果严格 来说只能包含业务实体, 而不应该包含业务流 程,

10、因为业务 流程将在编 排服务层 里进行 归类。这里自然有个 难点,就是 我们做纯粹 的面向服务分析时,是要求自顶向下分解,而要求实现 SOA 承诺的服务可复用性是核心 , 必须保证 分解出来的大部分服务要有机会复用,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 而 我 们知道 原子性服务的复用性机会自然更大,然后才可以随着需求 的变 更来组合现有的原子性服务来实现企业业务 敏捷 性。这种自 顶向下分析,自下向上复用的现 状几乎

11、把我 们搞糊涂 了,所以 将服务 接 口层 细分为 更为 具体的 三层意义重大, 否则业务 流程与业务 逻辑单元都揉 在一 块,自然 难以提高复用率。2 SCA 在 SOA 架构中担当的角色上述已 经粗略地谈 到了面向服务的分析设计,那么与 SCA 有什么关系 ?SOA 分析设计的目 标就是要实现 跨应用的服务复用, 而应该 将服务设计成何种粒度大 小一直是架构 师与 设计师 考虑得 最多的 问题 ,SCA 为不同 粒度的服务定义,为后续的服务复用 与组装提 供了条件,自然 贯穿 于 SOA 的分析设计阶段。如下图 所示:图 2 SCA component 示意图SCA 中的 composit

12、e 与 component 是 核心 概念,具体可以 说 component 是可以设计为原子性服务的 载体,而利用composite 来做组合性服务的 载体,来复用 底层 component 的服务功能 。同时 SCA 认为 粗粒 度的 流程服务 也可以用来作为基石来组合出其它的component 与composite,所以 BPEL 也是 component 的一种实现方式。如下图 所示:图 3 包容 component 的 composite 示意图图 4 递归 包容的 composite 示意图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -

13、 - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - SCA 从不同的 粒度复用方面提 供的益处 得归因 于它的 递归复用模式,这也与 面向服务的分析设计方式有一定的映射 ,便于自 顶向下或自 下而上的分析设计工作。除了在分析设计阶段的 映射外 ,SCA 在实现编码阶段做的工作则是统一了各种不同语言或运行时环境 (如Spring 框架)实现的 规范 。在分 布式环境 中,构件不 能完全 自治,只 能相对自 治,必然涉及到构件间通讯的方式。Service(服务)和reference(引用)用于构件通 讯。通过设计,构件根本不需

14、清楚 通讯是怎么进行的。 这就是绑定所 做的工作。 为了 证明 绑定为 什么 如此有用, 我们来考虑应用程序如何在 Java EE5和 J2EE 的前代技术中是 怎么使 用不同 协议的。如下图 6 所示,每个协议都由不同的技术提供,所以 每个协议都有自 己的应用编程 接口( API ) 。比如, 使用基于HTTP协议的 SOAP,就 意味着 是建立在 JAX-WS 或 J2EE 1.4 里的 JAX-RPC ,当使用队列消息协议就要 求用 JMS( Java Message Service) 。这就 强制要 求开发者去学习 不同的 API,使用完全不同的编程模型,使 用不同的 协议。这也将 通

15、讯的代码 混杂在业务 逻辑 中,加重了开发 者的负担 。图 5 应用应对复 杂的通讯 API SCA 提供了简 单的编程 环境 。 比起用不同的API 将不同的 协议封装进不同的技术, SCA允许 每个远程服务和 每个引用都利用绑定来指定它所支持 的协议。就应用的编程模型看来,并不关 心所用的 协 议,如 下图 :图 6 统一的绑定机制例如,想通过SOAP 协议来 访问 ,SCA 服务可以 使用 Web Services 绑定,而想通过队列消息队列协议则 使用 JMS 绑定。同样 地 ,EJB 的会话 Bean 绑定 允许使用 IIOP(Internet Inter-ORB Protocol

16、) 协议来 访问 会话 Bean。每个 SCA 运行时还 允许提供 SCA 绑定。除了在编码方面解脱开发人 员 ,SCA 同时利用现阶段比较优秀 的 IOC(控制反转) ,DI(依赖 注入)原则来 管理 服务之间的 引 用关系, 最大程度 地支持 面向服务开发模式中对服务的测试 ,当然也便 于服务 功能 复用,利于服务功能 的相对自 治性设计。综观前 期软件开发模式,不难看 出, SOA 技术能够 如此 火暴,都是 因为一个关键的因素, 就是此架构思路完全颠覆 了以 前的开发方式, 以前人们开发大多是从功能角度思考 问题 ,将很多 错综 复杂的要 素都捆绑在一起。用汽车 行业的“福 特模式 ”

17、比喻 的话,犹如作坊式制作汽车 ,所有的零件都由自我产出, 装配 形式没有形成标准, 必然导致软件生产率和复用率低下 。而 SOA 思想相 当于软件行业的 “福 特革命”,将各个阶层开发者的任务划分清晰,有服务开发 者、服务装配 者、应用部署 者以及 管理员 ,并有了 明确的标准 (大 家都是靠 service名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 联系在一起)。既然是 “福 特模式 ”就要 求有基础设 施,汽车 行业的

18、基础设 施是专业的 流 水线设 备,软件行业的 流 水线 标准则由 SCA 规范给 出。可见,如果 说 SOA 思想是软件行业的“福 特思想 ” ,那么 SCA 规范 则当之无 愧地成为其 流水线 标准, 因为没有 流水线 的“福 特模式” 是无法成 功的, SCA 规范 成为决定 SOA 成败的关键。3 结束语SCA 是创建 SOA 解决方案的基础性构件技术,同时 反 作用于面向服务解决方案的需求收集 、分析、设计、编码、部署、测试 等多个方面,为创建优质的 SOA 架构体系的实现提供了 必要条件。对于统一化编程模型、促进软件复用、 正确 导向软件工程学发展起到 积极 的推动 作用。参考文 献:1 黄柳青 、 王满红.构件中国:面向构件的方法与实践2006 年 4 月2 SCA_AssemblyModel_V100.pdf 3 DAVID CHAPPELL. Introducing SCA July 2007 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁