基于SOA架构和构件技术的软件开发方法应用

2018-04-24 09:26:02

1、引言

在软件复用方面,传统的开发方法最多只能 做到代码复用,不能做到核心功能的复用。其开 发过程,无论是在方法上还是在元素复用上都已 不能适应远程访问的分布式、多层次异构系统。 虽然面向对象技术促进了软件复用,但也只是实 现了类和类继承的复用,对于整个系统和类来 说,还存在很大的缺口。要实现软件复用需要两 个关键因素:软件构件技术(Software Component Technology)和软件架构(Software Architecture)。构 件是对象概念的延伸和发展,相对于由对象构成 的系统而言,构件系统中的构件具有大粒度和小 数量的特点。构件的出现给软件复用带来了根本 改变,实现了分析、设计、类等多层次上的复用。 软件架构研究则为实现基于构件的复用提供了 一种自顶向下的途径,三层体系结构的缺陷导致 产生面向服务的体系结构。SOA 的出现,被认为 是软件开发方法的一个里程碑,对基于 Internet 的业务集成和系统扩展性的提高都有很大帮助。 SOA 架构和构件技术的有机结合引导软件开发 从应用系统开发转变为应用系统集成,帮助我们 在各种日益复杂的应用环境中运行和调用 Web Services。

2、基于SOA架构和构件技术的软件开发方法

2.1 软件构件技术 目前国内企业正处于快速发展时期,竞争的 加剧导致对软件开发的要求也越来越高。构件技 术能实现以业务为主导,快速开发、快速部署、快 速适应变化。此外,从软件产业角度看,软件的可 复用性是软件产业发展的关键因素,构件化也是 实现这个目标的基础。构件化的软件生产方式, 用到企业级应用系统的开发,是一次巨大革命。

( 1) 什么是构件( component) 构件是可复用的软件组成成份,可被用来构 造其他软件。它的基本理念是把软件开发过程中 会重复用到的部分封装起来,等到有新的同样的 需求时再调用。被封装的对象类、类树、一些功能 模块、软件架构、文档、分析件、设计模式等都可 视为构件。

( 2) 构件技术 以面向对象为基础而发展起来的软件构件 技术是支持软件复用的核心技术,能够提升软件 开发的生产率以及软件的可用性,其主要研究内 容包括:

①构件获取:有目的的构件生产和从已有系 统中挖掘提取构件;

②构件模型:研究构件的本质特征及构件间 的关系;

③构件描述语言:以构件模型为基础,解决 构件的精确描述、理解及组装问题;

④构件分类与检索:研究构件分类策略、组 织模式及检索策略,建立构件库系统,支持构件 的有效管理;

⑤构件复合组装:在构件模型的基础上研究 构件组装机制,包括源代码级的组装和基于构件 对象互操作性的运行级组装;

⑥标准化:构件模型的标准化和构件库系统 的标准化。 基于构件技术开发的系统,在遇到业务流程 变革或系统升级等问题时,无需对系统进行大规 模改造或重新开发,只需对构件进行重新排列、 组合,或者通过增加新的构件、改造原来的构件 就能组装成新的系统。据有关调查机构统计显 示,采用构件技术可以使软件在开发成本等多个 方面得到明显的改善。

( 3) 构件技术与构件化的区别 构件技术与构件化的概念是有区别的:构件 技术是构件化的基础,它为构件的工业化生产提 供技术保障,其关注点在于如何实现软件在高层 次上的复用,如分布式异构互操作等。而构件化 的目的是带动软件工业化,其关注点不在于构件 本身的技术实现,而在于如何把应用系统分解成 稳定、灵活、可复用的构件,并利用已有的构件库 组装出随需应变的应用软件。 跟传统的软件方法学不同,基于构件的软件 方法学把应用和实现分离,并提供标准接口和框 架,使软件开发变成构件的组合。基于构件的软 件方法学是以接口为中心、面向行为、基于体系 结构设计的,它对构件有明确的定义,并使用构 件来描述语言和规范,如统一建模语言 UML、微 软 COM构件技术中的接口定义语言 IDL 等。 在基于构件的软件开发方式下,软件公司和 系统集成商有着明确的分工。前者以开发软部 件,并提供规格化的软部件为主要业务;后者则 对部件进行汇总,以组合成能完成不同功能的软 构件,同时将自己的核心技术构件化。

2.2 认识SOA架构

1)SOA 的概念 SOA 是英文 Service - Oriented Architecture, 即面向服务架构的缩写,1996 年 Gartner 公司第 一次提出了 SOA 这个概念。简单地说,SOA 就是 一种进行系统开发的新的体系架构,是新一代构 造企业应用系统的方法。它是一种基于对象的构 件计算模型,它将不同的功能单元通过预先定义 好的接口和契约联系起来,其构件计算模型决定 了软件系统架构。预计到 2008 年,SOA 将成为占 有绝对优势的软件工程实践方法。

( 2) SOA的特色及应用 SOA 采用自顶向下的设计思路,是处理分布 式架构的整合工具。当前企业所面临的业务环境 复杂多变,SOA 继承和发展了过去的技术,能够 有效地构造复杂的企业应用系统,提高业务流程 的灵活性,使企业加快发展速度,降低总体成本, 有助于开发出灵活应变的应用系统、快速实现商 务价值,使企业适应快速变化的业务需求。 在基于 SOA 架构的系统中,利用不同的方法 对粗粒度、可复用的服务等进行组装整合,以构 成各种新的应用。SOA 架构的服务独立于具体的 实现技术,能提供很好的交互能力和位置透明 性。通过企业服务总线等架构模式,来达成系统 的重要架构特征,如松散耦合、可复用、可组装、 避免一个地方的变化扩散等。