软件体系结构框架研究
高 飞, 管春阳
(北京理工大学电子工程系,北京 100081)
摘要: 任何信息系统都需要一个体系结构来提供其战略性描述。这将大大促进软件的互操作性、集成性,提高开发效率,减少重复开发,降低开发成本。体系结构是一个非常值得研究的课题,本文综述了软件体系结构在软件开发应用中所取得的进展,主要介绍了国内外典型的软件体系结构及其应用原理。最后探讨和展望了我国今后的发展方向。
关键词:软件体系结构;TAFLM;DOD;TOGAF
1 概述
IEEE Std 1471-2000把“体系结构”定义为“一个系统的基本组织,体现在组成系统的各构件、构件的相互关系、构件与环境的关系、以及指导构件设计和随时间演进的原则当中”。根据其具体的应用,体系结构有两方面的含义[1]:
? 一个系统的形式化描述,或系统在构件层的详细计划,以便指导其实现; ? 构件的结构、相互关系,以及指导构件设计和随时间演进的原则与指南。 任何复杂的基于计算机的信息系统都需要一个体系结构来提供其演化的一个战略性环境描述。体系结构提供了对组成信息系统的组件或构造块的描述以及这些组件间复杂的内部关系。确切地说,一个体系结构是对一个信息技术(IT)系统的正式描述,它定义了组成整个信息系统的组件或构造块,并提供获取产品的计划,以及开发系统,这些因素共同运作实现整个系统。因而,你可以通过它管理你的全部IT投资,使其适合你的商业需求。
虽然体系结构对系统设计至关重要,但过去人们对于体系结构的理解和使用却是非常不规范的,往往是隐含的、粗糙的、片面的。直到二十世纪九十年代,人们才开始较系统地研究软件系统的体系结构问题。目前主要的研究领域有体系结构框架、技术参考模型、体系结构描述语言、体系结构的形式基础、体系结构分析技术、体系结构开发模型与方法、体系结构恢复与重用、体系结构设计工具与环境、领域体系结构等。
对软件系统体系结构的研究[2],美国DoD有关机构研究[3,4]的TAFIM、DOD TRM和Open Group研究的TOGAF最具有代表性。
由于我国各行业的大部分软件系统是按项目开发的[5~7],立足于满足当前某一领域的需求,客观上易于造成“烟囱”式系统,即系统之间的互连、互通、互操作
性差,系统的重复开发现象普遍。具体表现在:
? 没有进行系统的体系结构设计,许多软件系统都是由若干子项目组成的
“拼盘”;
? 数据通信的协议、格式不统一,造成互连、互通上的问题;
? 图形系统,尤其是数字地图不统一,直接影响图形数据的交换和互用; ? 由于缺乏统一的数据模型、数据元素定义和灵活的、可扩展的数据交换格
式,无法进行直接的数据(库)共享。
目前各行业使用的软件除了一些大型项目外,很大一部分是属于短期的小型项目。这些软件由于贴近需求,在功能和人机界面上比较适合使用。但我们不应只注重开发短时期内解决局部问题的单个系统,坐等“烟囱林立”的局面出现后再寻求解决之道。通过公共体系结构框架的设计和规划,使不同应用单位在不同时期开发的软件系统能够按作战需求实现互连、互通和互操作,即保证信息资源的共享和不同系统资源的相互动用。
2 国内外典型体系结构研究
TAFIM体系结构
Tafim体系结构的主要目的[1~3]是为了实现互操作和信息系统集成的,所以首先提出了信息管理与集成模型。集成的目的是实现和改进系统的互操作性,与各种国际、政府标准相兼容,并为用户提供一个单一的接口。
系统的集成功能和技术需求可以由图1中的集成模型体现。给出了集成的边界定义。功能函数和技术方面的集成需求必须一方面在纵向的边界上的一个层次内研究,另一方面在横向的边界上在层次之间研究。
标准格式第三层集成第二层集成第一层集成图形信息窗口、个人工具、查询调查语言、用户定制应用程序、原型工具、私有应用和文件应用程序开发和维护FunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunction个人层应用层功能层任务层企业层智能系统命令和控制系统作战支持系统方针,学说,标准,参考模型,结构,数据管理和工具,共享、计算和通信
图1 Tafim信息管理集成模型
集成的类型和层次:
集成既可在层次内部,也可在层次之间,但是集成类型的需求必须被定义。集
成可以获得互操作、效率、效力、优化、节省资源、或者其他的好处。集成可以下面的几个观点来看:
? 功能函数集成:功能函数集成通常包括将两个或者是多个具有相似的功能
的软件模块融合为一个新的软件模块,或者将两个或者是多个不相似的软件模块通过一个公共数据库相关联。
? 技术集成:技术集成通常包括硬件互操作性的兼容性和连接性,以及软件
的相关性(例如:协议之间的对话)。
实现互操作的集成过程是通过IM集成模型实现的,这个模型包括以下几个步骤:
? 体系结构、策略、以及技术管理计划信息是在专有部门的指导下为每一个
功能活动开发的。功能活动和功能领域体系结构、策略、以及技术管理计划信息是由专有部门评论,为了能够和企业领域和使命领域的体系结构、策略、和技术管理计划信息一致。
? 每个系统的互操作需求都被转换到了使命关键标准,以满足测试的目的。
互操作的测试是为了确保能够满足使命关键标准。
? 认可的数据、应用软件、基本构架、以及信息系统体系结构、策略、以及
技术管理计划信息变成了整体企业和使命空间体系结构基础的一部分。
Tafim通用技术参考模型
通用技术参考模型[1]是一个概念、实体、接口、以及提供标准规范基础图标的集合。在很大的范围内,通用技术参考模型采用了IEEE POSIX P1003.0工作组的基础性工作。如图2所示。模型包括三个类型的实体和两种接口。
模型的这种构造程度使得它可以容纳各种类型的通用的和特定的系统。 从应用软件实体的观点来看,不管该服务是从本地平台提供的还是从远程平台提供的,它们一起构成了大的分布式系统。
DOD体系结构
应用软件实体API服务应用平台实体扩展环境实体(EEI)扩展环境应用程序接口(API)DoD的体系结构研究[3,4]着眼于从大系统的整体性出发,统一组织制定公共的体系结构框架等规范文件来指导美军各军兵种和DoD各机构的体系结构开发,DoD体系结构研究的重点是体系结构框架。DOD(美国国防部)体系结构遵从通用开放体系结构框架(GOA)。
EEI服务如图3所示。GOA是由SEA ASD开发的。GOA中定义了四层结构、九类接口。GOA的下面三层结构是与Tafim的应用平台层兼容的。
图2 Tafim通用技术参考模型 应用软件4D系统服务4D扩展操作系统服务4L应用软件4D系统服务扩展操作系统服务3L3X3D4D操作系统服务3X3D操作系统服务3D资源访问服务(驱动)2D物理资源1L1D2D1L物理资源1D2L2D3D资源访问服务(驱动)2D1L1D物理资源物理资源 图3 通用开放体系结构框架
GOA框架由四个层次构成:第一层一般包括硬件,但也可以包括固件和非常底层的软件;第二层是底层服务和功能实体,通常指“设备和硬件驱动”;第三层是系统服务层;第四层是DoD TRM应用软件实体。在DOD TRM中,第一层、第二层、第三层为第四层应用软件构成了应用平台。 接口分为逻辑接口和直接接口:
逻辑接口(虚线表示):点对点实体之间支持信息(对象、数据、参数、状态、以及控制)共享的规范,独立于交换机制和媒体。
应用软件用户应用程序支撑应用程序多媒体通信应用商业处理环境管理数据库工具工程支持????应用软件用户应用程序支撑应用程序4D4D4D3L4D4L应用平台应用程序接口4D系统服务软件工程服务用户界面数据图形平台管理服务通信安全服务系统管理服务分布服务国际化服务4D扩展操作系统4D扩展操作系统3L操作系统服务3D3L操作系统服务物理环境接口外部环境设备通信结构服务视图外部环境接口3D3D资源访问服务2L2D2D2D3D2L系统/子系统系统用户2D物理资源1L物理资源1D2D1L1D接口视图图4 DOD技术参考模型服务视图和接口视图 直接接口(实线表示):各层实体之间支持物理信息(对象、数据、参数、状态、以及控制)传输的规范。 DOD技术参考模型
DOD 技术参考模型集成了服务视图和接口视图[1], 如图4所示。 TOGAF体系结构
TOGAF[1]是设计用于支持技术(IT)体系结构的开发。它也支持对IT体系结构开发有影响的一部分商业体系结构。它主要关心有意支持核心配置和任务关键性应用的软件基础结构。
TOGAF包括两个主要部分:
? TOGAF基础体系结构——公共服务和功能的体系结构,为构建具体的体系
结构和体系结构构造块提供基础。这个基础体系结构包括:
1. TOGAF标准信息库(SIB),开放产业标准数据库,用于定义特定的服务组件; 2. TOGAF技术参考模型(TRM),提供一般平台服务的模型和分类。 ? TOGAF体系结构开发方法(ADM),正确地解释如何从基础体系结构获取具
体组织的体系结构。ADM提供:
1. 一个可靠的,被证实的体系结构开发途径;
2. 体系结构视图,使体系结构的构造者能够确保一组复杂的需求可被充分地
定位;
3. 一个处理过的实例,以及与实际案例研究的联接; 4. 体系结构开发的工具;
简单的说,TOGAF提供一个公共的观念(sense),实际的、谨慎的和有效的开发IT体系结构的方法。
ADM
TOGAF体系结构开发方法(ADM)形成了TOGAF的核心[1]。它是一个可靠的、被证实的方法,用于开发符合某组织的商业需求的IT体系结构,利用本文中描述的TOGAF的其他单元和组织可获取的其他体系结构资源。 推荐一个循环的体系结构开发途径,如图5所示。 ADM各阶段描述
? Phase A:初始化和框架:确认需求,初始化体系结构开发循环 ? Phase B:基线描述:捕获相关的现有环境 ? Phase C:目标体系结构:定义目标体系结构 ? Phase D:时机和解决方案:评价和选择主工作包 ? Phase E:移植计划:区分工作的优先级,开发概要计划 ? Phase F:实现:开发完整计划并执行