APP下载

基于中间层的软件体系结构模型

2010-03-26张立臣

电子设计工程 2010年11期
关键词:中间层中间件体系结构

侯 彬,张立臣

(广东工业大学 广东 广州 510006)

随着计算机技术的不断发展和应用,软件系统规模和复杂度日益增加。软件设计人员在设计过程中不仅要考虑软件系统的功能,而且要解决更难处理的可修改性、性能、可靠性、非功能性等问题。于是软件开发人员开始研究软件体系结构来构造复杂的大型软件系统。

1 软件体系结构一般模型

一般的软件体系结构的定义[1]为:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,并由构成系统的元素描述、元素相互作用、指导元素集成模式以及模式约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。

软件体系结构的特点:1)软件系统结构是一个高层次上的抽象,它并不涉及具体的系统结构,也不关心具体的实现。2)软件体系结构必须支持系统所要求的功能,在设计软件体系结构时,必须考虑系统的动态行为。3)在设计软件体系结构时,必须考虑现有系统的兼容性、安全性和可靠性,同时还要考虑系统以后的扩展性和伸缩性。所以应在多个不同方向的目标中进行决策。

软件系统建模技术的提出,其主要目的是为了解决因日益复杂的结构模型而导致的系统设计方面的问题。从早期提出的以数据为中心的体系结构模型,然后是以功能执行为中心的体系结构模型,逐步发展到以系统内核为中心的面向对象的体系结构模型。这些体系结构模型的演变进化是为了不断适应计算机应用领域的扩大而引出的新的问题需求。虽然有很多软件系统建模技术,但这些技术的共同目标就是提高实际应用系统的开放性、集成性、适应需求变化的扩展性以及开发与执行的高效性。通过分析以上模型,并且又参考了很多现有的具有代表性的建模方式,最终提出一种新的基于中间层的建模方式。

2 基于中间层的体系结构模型

[2-7]可以分析现有的几种软件体系结构模型的技术特性,如:数据流、管道/过滤器、功能执行中心、面向对象等模型。通过分析可以得出,这些常用的模型都有自己的优缺点,并不适合所有系统,如一个大型的可以分成多个模块的项目。每个模块的功能不同,每个部分的体系结构适合不同的模型。如:学校一卡通系统(即:只要手持一张卡,就可以在学校里如:餐厅,图书馆等刷卡的场所进行相关活动,整个系统通过终端的刷卡机记录其全部刷卡情况)有若干模块组成(餐厅管理系统、图书馆管理系统、教职工管理系统等),而且每个模块适应不同的体系结构模型,而采用上面提到的任何一种模型都不太合适。因此,针对那些可以分成若干个相互依赖而不是很紧密的子模块,每个子模块又适合用不同的体系结构建模的系统。因此,基于中间层的体系结构模型构建不同体系结构系统。

2.1 中间件

计算机技术迅速发展。从硬件技术看,CPU速度越来越高,处理能力越来越强;从软件技术看,应用程序的规模不断扩大,特别是Internet及WWW的出现,使计算机的应用范围更广,许多应用程序需在网络环境的异构平台上运行。这一切都对新一代的软件开发提出了新的需求。在这种分布异构环境中,通常存在多种硬件系统平台(如PC,工作站,小型机等),在这些硬件平台上又存在各种各样的系统软件(如不同的操作系统、数据库、语言编译器等),以及多种风格各异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。如何把这些系统集成起来并开发新的应用是一个非常现实而困难的问题。

为解决分布异构问题,提出了中间件(middle ware)的概念。中间件是位于平台(硬件和操作系统)和应用之间的通用服务,如图1所示,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。

图1 中间件示意图Fig.1 Schematic of middle ware

中间件具有如下特点:1)满足大量应用的需要;2)运行于多种硬件和OS平台;3)支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互;4)支持标准的协议;5)支持标准的接口。

由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。

2.2 基于中间层的体系结构

基于类中间层的体系结构模型如图2所示。其思想是:1)把一个大的系统分成若干个子模块,每个模块根据其自身的特点选择其合适的建模方式;2)在整个系统模型和应用程序之间提供一个类似中间件的层次。底层的模块形成的系统像上一层提供一些功能服务,中间层向应用界面提供接口,并为其提供服务;3)各个子系统模块之间的信息传递也是依靠中间层来完成的。

图2 基于中间层的体系结构模型Fig.2 Architecture model based on middle layer

3 基于中间层的体系结构模型实例

以学校一卡通系统为实例,阐述基于中间层的体系结构模型。系统的终端是一张卡片,里面储存相关用户信息。在开发中,系统中可以分成若干模块,如:餐厅子系统模块、图书馆子系统模块、教职工管理子系统模块等等。

3.1 餐厅子系统模块

餐厅子系统主要是往卡冲值、划卡消费。此模块用以数据为中心的体系结构的模型即可。如图3所示在以数据为中心的模型中,数据集合被置于整个软件系统的核心位置,并以统一的数据描述形式提供各个功能部件共享。各个功能部件的开发过程完全独立,部件之间存在一致的数据交换接口。

图3 餐厅子系统的体系结构模型Fig.3 Architecture model of restaurants subsystem

以数据为中心体系结构模型的特点是[2]:1)系统的每个部件都有输入端和输出端。2)系统的各个部件是相互独立的实体,它们之间不共享任何状态信息,而且每个部件不必知道其上一步或下一步的部件是什么。除非是系统最前端的部件,否则部件不必知道系统输入端的数据流是什么。3)一个部件只需要关注其本身输入和输出的数据流。4)系统结构中功能上的联系比较松散,无法实现功能复用,容易造成代码冗余。另外数据接口标准难于符合所有的应用需求,这使此模型建造的系统模型带有局限性。

3.2 图书馆子系统模块

图书馆子系统主要是图书的借入与借出,以功能执行为中心的体系结构的模型比较适合此模块。该模型使用一个统一的执行中心的形式来实现各类应用或系统部件的数据和界面的共享,如图4所示。

图4 图书馆子系统的体系结构模型Fig.4 Architecture model of library subsystem

以功能执行为中心的体系结构的模型最大的特点是实现了2个分离[4]:1)共有的计算和执行功能与应用程序的分离;2)用户与系统的界面交互功能和应用程序的分离。这2个分离优化了代码执行效率避免了代码冗余,便于实现风格一致的用户界面。程序与数据库的交换功能集中到执行中心统一实现,有利于数据的管理与维护,保证了数据的一致性。另外,这类模型既可实现数据的开放性,又具备了功能的开放性,系统的扩充性也较好。

3.3 教职工管理子系统模块

教职工管理子系统由于教职工与其职位有关,且一个教职工就是一个实体,虽然信息大部分都是个人自己独特拥有,但其特征和行为大都相同,可以抽象出来组成一个教职工类型。所以,用面向对象的建模方式比较适合。面向对象的体系结构模型是把系统中的所有资源如数据、模块等都看作是一个个对象。数据的表示方法和其相应操作封装在一个对象中,各对象之间通过信息传递发生联系,它是实现对象之间相互联系和作用的唯一手段,如图5所示。

图5 教职工管理子系统的体系结构模型Fig.5 Architecture model of staff management subsystem

面向对象体系结构模型的特点[5]:1)封装功能:为信息隐藏提供具体的实现手段,用户不必知道对象的内部状态,只需了解其功能描述就可使用 (封装是一种信息隐藏技术,目的使对象的生产者和使用者分离,使对象的定义和实现分开),可减轻开发一个软件系统的难度和周期。2)继承性:提供了代码共享的手段。避免编程人员重复编写代码,编程人员可以方便地共享已有的软件资源和程序代码,从而大幅度提高软件的开发效率和减少今后的软件维护工作量。3)错误的局部性:某对象出现错误,就可限制在本对象之内,不向外传播。就对本对象进行修改,容易找到错误处理。4)调用的方式:对象和另一个对象主要通过过程调用进行交互,因此一个对象调用另一对象就必须知道该对象的标识。5)降低系统的效率:如果一旦改变了某一对象的标识符,就必须修改所有其他对象,并清除由此带来的一些副作用。

图6为一卡通系统的基于中间层的软件体系机构模型。

该实例系统用中间层用协调各个子模块,对应用层和子系统提供通用的接口,并且各个子系统模块之间的信息传递依靠中间层完成。通过中间层,应用层的设计就可以不必考虑子系统的模型差异,更便于开发。

图6 一卡通系统的体系结构模型Fig.6 Architecture model of card system

4 结束语

通过分析几种常见的软件体系结构模型,提出了一种基于中间层的体系结构建模方法。在实际应用中,应该具体问题具体分析,选择合适的体系结构。分析总结每种结构模型的特征和优缺点,并用它来指导工程实践活动,有利于工程人员和软件可发人员基于不同的应用目的选取合适的体系结构,有利于提高软件工程活动的质量和效率。

参考文献:

[1] 张友生.软件体系结构[M].北京:清华大学出版社,2002.

[2] 毛斐巧,齐德昱.软件体系结构风格研究现状及存在的问题[J].计算机应用研究,2008,25(18):2270-2273.MAO Fei-qiao,QI De-yu.Current research state and existing problems of software architectuml style[J].Application Research of Computers, 2008,25(8):2270-2273.

[3] 杨志明.几种常见软件体系结构模型的分析[J].计算机工程与设计,2004,25(8):1325-1328.YANG Zhi-ming.Analysis of common software architectural styles[J].Computer Engineering and Design,2004,25(8):1325-1328.

[4] 周枫.软件体系结构模型的分析及研究[J].昆明理工大学学报:理工版,2002,25(8):88-92.ZHOU Feng.Analytical research on the software architecture model[J].Journal of Kunming University of Science and Technology:Science and Technology,2002,27(6):88-92.

[5] 乎西旦.居马洪,蒋新革,古丽米拉.常用软件体系结构模型的分析[J].计算机工程与设计,2006,27(14):2624-2625.Huxidan Jumahong, JIANG Xin-ge, Gulimire.Analysis of software system structural model in common use[J].Computer Engineering and Design,2006,27(14):2624-2625.

[6] 张友生.层次式软件体系结构模型[J].计算机工程与应用,2004,40(30):20-22.ZHANG You-sheng.Models of layered software architecture[J].Computer Engineering and Applications,2004,40(30):20-22.

[7] 张友生,李雄.网状软件体系结构模型[J].计算机工程与应用,2005,41(29):58-60.ZHANG You-sheng,LI Xiong.Models of graph software architecture [J].Computer Engineering and Application,2005,41(29):58-60.

猜你喜欢

中间层中间件体系结构
一种十七股子午胎钢丝帘线
RFID中间件技术及其应用研究
基于Android 平台的OSGi 架构中间件的研究与应用
基于粒计算的武器装备体系结构超网络模型
作战体系结构稳定性突变分析
镍基高温合金TLP扩散焊中间层材料研究进展
B含量对IC10合金TLP焊接用中间层材料及接头组织的影响
基于DODAF的装备体系结构设计
基于云计算的航天器控制系统自组织体系结构
中间件在高速公路领域的应用