摘要:以特定行业的软件监控系统为研究背景,运用UML/ADL集成建模方法进行建模和分析。首先进行了领域的需求分析,然后运用UML建立了对象结构模型和对象行为模型。验证了UML和ADL两种建模工具相集成的建模方法在工程应用中的可行性。
关键词;UML;ADL;系统建模;软件监控系统
0;引言
随着IT业的飞速发展,电信、银行等企业需要建设一些大型的、复杂的运营支撑系统。这些系统通常由十几乃至几十台小型机,成百上千的应用进程和终端进程组成。为了有效的对此类系统进行监视和控制,需要建立专门的软件监控系统。虽然这些监控系统的监控对象千差万别,但是往往都具有一些相似或相近的需求,对这些需求进行分析,采用UML/ADL集成建模方法构建系统模型,在此基础上对模型进行分析和优化,以便设计出通用性很强的软件监控系统[1]。UML是当前主流的面向对象建模语言,它引入了形式化定义(对象约束语言OCL),并且有良好的语义扩充机制和对象重用机制[2]。ADL吸收了传统程序设计中结构严谨和语义精确的特点,能有效地支持软件体系结构分析、演化、求精和验证。
1; 领域需求分析
软件监控系统包含两大基本功能:监视功能和控制功能。监视功能是指操作人员可以通过监控系统获取监控信息。这种获取动作可以由操作员主动的查询和浏览信息,也可以由系统将满足条件的信息主动的发送给操作员,发送新式可以声光电结合,形式多种多样。控制功能是指操作员可以通过监控系统发送控制指令,操纵被监控系统做出需要的一些动作。
除了两大基本功能之外,软件监控系统还有一些额外的需求:由于被监控系统本身会不停的升级和调整,因此要求软件监控系统可以做到监控点的灵活扩充和删减;监控点可能会很多,因此希望监控的各个部件可以做到版本的自动升级;监控系统可以提供历史信息的查询;监控系统需要的一些配置参数如告警阀值等可以进行灵活配置,而且操作简单。软件监控系统本身需要比较健壮,一定程度下的外部环境变化不会对系统造成影响。软件监控系统需要尽量少占用系统资源,把有限的系统资源尽量保留给被监控系统。
通过对软件监控系统需求的分析,可以得出如下结论:软件监控系统需要支持数据和控制信息的传递;软件监控系统的各个部件需要能够灵活的部署和配置,部件间需要高内聚、低耦合。为了满足这些需求,首先使用UML建立一个基于构件的可视化模型。
2:UML描述软件系统监控模型
UML提供了可视化的图符表示方法及语义化的元模型描述规范,提供了静态和动态两种建模机制,以及概念层、逻辑层和物理层的模型描述体系。UML具有十种模型图并分为四类。用例图侧重描述应用领域需求与功能,以及事务(用例)之间的逻辑关系;对象结构图(类图、对象图、包图)侧重描述系统中按用例抽象的对象及其联系,即软件构架;对象行为图侧重描述跨越多个用例的对象行为(活动图、状态图),或单个用例中多个对象的协同工作行为(顺序图、合作图);实现图(构件图、配置图)侧重描述系统的物理模型,如构件模板和运行节点。
为了准确表示系统模型,选用了类图来表示软件监控系统的对象结构模型。类图是面向对象方法的核心技术,是对象结构模型的软件构架。选用合作图来表示软件监控系统的行为模型。合作图可以描述对象间消息传递的连接关系及其空间分布,揭示对象间的交互过程[3] 。
3:软件监控系统对象结构模型
软件体系结构,又常被称为构架,指可预制和可重构的软件框架结构。通常可以把软件体系结构写成:
体系结构(architecture)=构件(components)+连接件(connectors)+约束(constraints)
为了用系统体系结构思想更清楚的表示软件监控系统模型,需要对现有的模型元素定义进行适当的扩充[4]:
构件:构件是可预制可重用的软件部件,是组成体系结构的基本计算单元或数据存储单元。
容器:容器是一类特殊的构件。容器可以把多个构件组合在一起,使构件间可以相互配合完成工作任务。(参见图1)容器是系统最小的部署单元。
连接件:是构件间的连接单元。连接件分为容器内连接件和容器间连接件。容器内连接件是容器本身自带的一种部件,具有这种部件的构件就可以称之为容器。容器间连接件就是构件。这些构件实现的功能是在容器间进行通讯。
约束:是构件和连接件之间的关系描述。
图2是软件监控系统的对象结构模型。容器是系统最小的部署单元。软件监控系统由三类容器组成:
监控代理框架:监控代理框架是部署在各个监控目标主机上的代理框架程序。通过组合不同的信息采集构件来满足不同类型的监控信息的采集需求。
监控处理框架:各个监控目标主机上的代理框架把监控信息采集后传输汇总到监控处理框架,在监控处理框架容器内组合了不同类型的信息处理构件对信息进行分类处理,告警组件对超出告警阀值的信息进行告警,通过保存组件把监控信息保存到数据库或者文件系统中。
UI 处理框架:UI 处理框架式组合UI构件的一个容器。主要为使用者提供监控信息的UI展现和监控目标的UI控制。
图3给出了系统基本构件。功能定义如下:
信息采集:对监控目标主机的监控点信息进行收集,按照一定格式要求保存为原始信息文件。
信息处理:对原始信息文件进行分类和处理,根据不同的监控点选择告警阀值进行告警判断,同时根据信息内容的不同通过不同的信息保存组件保存原始信息。
命令执行:根据传入的控制命令对被监控系统进行操作,返回结果信息。
信息传递:监控代理框架容器和监控处理框架荣期间的连接件,用于两者间的信息传递。
自动升级:提供监控代理程序和配置文件的自动升级功能的构件
信息保存:信息保存构件可以把经过处理的信息文件永久保存在数据库或者文件系统中
告警组件:使用短消息、EMAIL、发送告警声音和告警图像等方式给系统监控人员发送告警信息
UI组件:集成在UI处理框架容器中,为监控人员提供监控信息的UI展现和被监控系统的UI控制
系统对象间的关系图
4:软件监控系统行为模型
行为模型是对对象模型的补充描述。图5描述了“监视”功能的行为模型。信息由“信息采集”构件生成,传递到信息处理框架,经过信息分析处理后得到保存。分析处理过程中可以发送告警信息给监控人员,监控人员也可以直接通过UI对监控信息进行查询和浏览。
图6描述了“控制”功能的行为模型。控制功能由监控人员通过UI组件发起,控制命令通过监控处理框架被传递到监控代理框架。由命令执行组件进行解析和执行。执行结果通过相同的信息传递路径被回传到UI组件进行解析和展现。
图7描述了“自动升级”功能的行为模型。监控代理框架上的自动升级构件定时发起升级请求。请求信息包含监控代理框架和其上部署构件的版本信息。请求信息被传递给监控处理框架容器,有自动升级构件进行解析处理。把需要升级的应用程序,配置文件列表传递给消息传输构件,消息传输构件把相关文件传输到指定的监控主机上,最后由该主机上的自动升级构件完成安装和更新。
监控代理容器和监控控制容器间的信息交互是采用异步的文件传输方式进行的,是一种松耦合的连接方式,增加、减少监控代理都非常容易,对已有系统没有影响。容器与容器间的故障被有效隔离,并且对系统的资源消耗情况比较少,满足性能方面需求。
5:结论
本文首先对“特定行业领域内的软件监控系统”进行领域需求分析,然后使用UML和ADL两种建模工具相集成的建模方法对软件监控系统进行了设计和建模。一方面为“特定行业领域内的软件监控系统”提出了通用的系统模型,便于在类似的系统的设计中得到重用;另一方面也验证了UML和ADL两种建模工具相集成的建模方法在工程应用中的可行性。
参考文献:
- 茅春华,万麟瑞,郁春波.基于UML/ADL集成建模方法的集成计划模型研究.计算机应用研究.2003
- 冯冲,江贺,冯静芳.软件体系结构理论与实践.人民邮电出版社.2004
- 杨卫东,于卫,蔡希尧. 基于统一建模语言的软件体系结构.西安电子科技大学学报.2000
- 郑建丹,张广泉. 软件体系结构描述语言ADL.重庆师范学院学报.2000
|