基于刻面算法的航天发射场服务构件库设计
2014-01-19唐立文邓友义
唐立文, 邓友义
(装备学院航天指挥系,北京101416)
基于刻面算法的航天发射场服务构件库设计
唐立文, 邓友义
(装备学院航天指挥系,北京101416)
将服务构件的理念应用到航天发射场信息化建设中,可充分利用发射场积累的资源,提高应用效率。但当服务构件规模增大时,则需利用服务构件库对其进行组织和管理。阐述了基于XML的服务构件刻面分类算法以及分类流程,从软件产品线的角度探讨了航天发射场服务构件的生产和组装,设计了具有负载均衡调度策略的服务构件库,为快速搭建航天发射场信息系统提供各种应用的装载器。
航天发射场;刻面算法;服务构件库
航天发射场在多年的信息化建设中,积累了大量的资源和应用,为充分利用这些资源,且避免“从零开始”,采用软件复用与面向服务的理念,应用面向服务的体系结构和构件技术,设计航天发射场服务构件,提高了其应用效率[1-2]。然而,服务构件只有当数量达到一定的规模,才能真正满足发射场信息系统复用和基于服务构件的软件开发需求。为此,需建立服务构件库来管理服务构件,提供航天发射场信息系统所需的各类服务构件的装载器,为快速搭建信息系统提供支持。
论文首先阐述了基于可扩展标记语言(extensible markup language,XML)的服务构件的分类检索算法,介绍了服务构件存储入库流程,然后对航天发射场服务构件的生产与组装进行了说明,最后设计了能够实现服务构件负载均衡调度的服务构件库,用于管理服务构件。希望能通过标准化的方式,促成更广范围的发射场信息资源的共享。
1 服务构件的分类检索
服务构件的检索依赖于自身的表示和分类,只有对服务构件进行翔实的分类和描述,才能保证大量服务构件被使用者快速、便捷地找到,并且容易理解和识别。因此,服务构件的分类情况和检索效率体现了服务构件库设计的优劣。
1.1 刻面分类算法描述
刻面分类算法能够从若干个不同的维度来描述复杂对象,在刻面术语之间可以定义不同的关系(如一般特殊关系和同义词关系),它兼具有属性/值分类、枚举分类和关键词分类等几种方法的共同优点[3]。
刻面分类的定义是:假设每个术语T对应于一个谓词PT,那么检索术语T将得到所有满足PT的构件集合,称为CT。对任意的构件C,当且仅当PT*(C)→PT(C)成立时,称术语T是术语T*的“上层术语”。而当且仅当对所有以术语T为“上层术语”的术语t,式C∈(CT-Ct)均成立时,构件C被索引为术语T。因此,建立构件索引的算法是一个对构件术语空间的深度优选搜索。同一刻面中的术语被组织成层次结构,上层与下层术语之间称为严格的一般/特殊关系。在刻面E中选择多个术语T1,…,TN时,检索得到的构件集合为:CE=CT1∪…∪CTN。当查询条件中具有多个刻面时,各刻面检索到的构件集合的交集就构成了最终的结果集。所以,可以根据术语之间一般特殊关系对刻面中的术语进行相应的编码,以提高检索算法的效率。
由上述对刻面的描述方法可知,一个构件可由多个刻面及各个刻面中多个术语来刻画,而这些特征将使刻面算法能从多角度、多方面对构件进行更为全面的描述。
1.2 基于XML的发射场服务构件刻面描述
通过分析目前航天发射场各类应用系统建设的情况,初步将发射场服务构件分类所使用的刻面分为名称标志、基础环境、基本功能、表示方法、应用领域等[1]。
利用XML技术研究基于刻面的服务构件分类与检索方法[1,3-4],可实现对服务构件的组织和描述,帮助使用者从服务构件库中快速定位并检索到适合的服务构件。完成对服务构件的描述后,即可按照服务构件库要求,将其存储到库中,基于XML的服务构件分类过程如图1所示。
由于XML的可扩展、跨语言、跨平台特性[5],经XML描述的发射场服务构件提高了服务构件库的互操作能力、可扩展能力以及未来扩充为分布式服务构件库的可能性。服务构件库将按照基于XML的服务构件刻面分类的分类与检索方法对发射场各种服务构件进行分类、组织和管理,方便用户查询、提取和组装构件。
图1 基于XML的服务构件分类过程
2 服务构件的生产与组装
软件产品线的概念是由卡内基梅隆大学的软件工程研究所(CMU/SEI)提出的,其概念是“产品线是一个产品集合,这些集合共享一个公共的、可管理的特征集,这些特征集能够满足选定市场或任务领域的特定要求,它们遵循一个欲描述的方式,在公共的核心资源(构件、领域模型、领域架构等)基础上开发”[6-7]。
软件产品线的核心思想,是支持开发者开发某领域特定的可复用资产,这些软件产品具有公共需求集合,属于同一领域,可以根据用户的需求对其进行定制。基于软件产品线的开发特点是维护公共软件资源库,并在开发过程中复用这些资源。即花费较少的开销就可以有规律的开发相似系统的产品谱系,而且这种开发方式可能产生的风险比单独开发每一个系统要少很多。在整个软件产品线中,组装是其中的一个重要环节。采用软件产品线的概念来实现航天发射场服务构件的生产与组装流程如图2所示。
图2 服务构件组装流程
首先要根据应用需求,从发射场现有的应用系统或资源中提取服务信息,按照发射场信息化建设的标准规范,到服务构件车间进行生产,之后将其存储到服务构件库中,供用户使用;当用户需要使用某一个或某些服务构件时,首先提出服务构件需求,构件库系统将根据服务构件描述的信息进行检索并定位到该类服务构件,然后用户根据实际需要,从中选取出所需服务构件,最后用户将服务构件提交到组装车间,组装成应用系统。
3 服务构件库管理功能设计
航天发射场服务构件库管理功能主要包括用户管理、服务构件管理以及日志管理3个部分,如图3所示。
图3 服务构件库管理功能划分
3.1 用户管理
用户管理分为用户权限管理和用户维护管理。用户权限管理包括权限的浏览、使用、修改以及维护服务构件列表等;用户维护管理则实现对管理服务构件库和使用服务构件用户的管理。
发射场不同部站、不同职位、不同级别的用户都会涉及服务构件的使用,用户情况的复杂性及不可预先控制性决定了必须设计相应的用户权限管理功能,对使用服务构件的用户及其权限进行严格的管控。同时,还要对权限进行细化,以达到每个用户能分配到恰当的权限。用户权限管理要和操作系统及数据库的权限管理共同配合来完成,主要采用用户分级的机制来实现,一般为三级:系统管理员、服务构件管理员和普通用户。
1)系统管理员:负责管理库中所有用户,它根据系统应用需要可设立角色、用户、用户组,控制各个用户的操作范围,实现对用户的增、删、改、查等操作,对系统的权限进行控制,库中默认存在一个系统管理员。
2)服务构件管理员:具有对库中服务构件维护的权限,负责库中服务构件的生成、更新,维护服务构件目录等,为用户提供方便快捷的功能。
3)普通用户:即服务构件的使用者,它们能够查询、浏览库中感兴趣的服务构件,并根据需要将其组装成应用系统。
3.2 服务构件管理
服务构件管理主要有:① 服务目录管理,用于管理库中服务构件的描述信息列表,方便用户检索服务构件;②日常维护管理,用于提供服务构件的浏览、增加、删除、修改等操作,方便服务构件的入库、注销、提取等;③ 统计分析管理,用于对库中服务构件的使用率、功能复用等进行统计和分析,为完善服务构件库提供依据;④运行权限管理,用于管理在实际应用系统中所用服务构件的运行权限,这些运行权限决定了不用应用程序使用服务构件的权限,构件库设置了运行节点、用户权限组、最大实例数、网络连接数等。
3.3 日志管理
该功能主要是实现对库中各种用户操作服务构件情况的实时监控,其内容主要有浏览、检索、使用、统计、更新、维护等对服务构件的操作。它主要包括2部分:①日志浏览,根据多种条件,如时间、用户、操作类型等进行查询,将结果以多种形式展示,并提供导出功能;②日志归档,是维护人员根据日志时间和归档分类,将日志信息存储到相应文件,供统计分析。日志管理采用统一的机制,进行统一管理和统一存储。
4 航天发射场服务构件库的服务调度
设计服务构件库,虽然会提高发射场信息系统建设的可扩展性和重构能力,但大量复杂的服务构件又会增加各个服务构件之间的运行协作。如何协调和调度这些服务,使其能够按照自身功能以及所参与模块重要性等因素进行排序,以获取系统的最快响应,是建设服务构件库需要重视的问题。为此,论文研究动态负载均衡的服务调度策略,以实现服务构件的调度和管理,增强服务构件库的有效性、灵活性和自适应性。
4.1 任务调度与负载均衡
所谓调度策略,就是由任务各个阶段的调度决策所组成的序列。日前,较经典的任务调度策略有RM(rate monotonic)法、EDF(earliest deadline first)法、DM(deadline monotonic)法、FCFS (first come first served)法、SJF(shortest job first)法、HRN(highest response ratio next)法、BS(background scheduling)法以及PS(priority scheduling)法等[8]。这些调度策略都是静态的,没有考虑动态情况对请求调度的影响。航天发射场服务构件库,需要为不同的服务构件请求提供实时快速响应,因此,引入负载均衡的思想。
负载均衡主要是解决网络中不间断、高质量服务访问问题的一种可靠性技术[9]。它通过提供一种较廉价有效的扩展服务器带宽和增加吞吐量的方法,来加强网络数据的处理能力,提高网络的灵活性和可用性[10]。负载均衡是采用数据分流和负荷转移来实现各类资源高效利用和分配的重要手段,一般分为静态负载均衡和动态负载均衡。静态负载均衡是利用系统负载的平均信息,而忽视系统当前的负载状况;而动态负载均衡则根据系统当前的负载状况来调整任务划分,也就是在运行过程中,系统不断地根据运行时各节点的负载情况,将工作量动态地分配到各个节点,负载轻的节点会被分配较多工作。目前,动态负载均衡正逐渐成为发展的趋势。
4.2 服务构件库负载均衡调度策略
服务构件库中的负载均衡调度策略的框架如图4所示。
图4 服务负载均衡调度策略框架
该框架包括2部分:一是服务构件集群,即服务构件库将不同类型的多个服务构件划分为不同的服务构件集群;二是负载均衡调度,即各个服务构件集群向其请求调度,该调度会根据所选的调度策略,产生调度队列,该队列区分服务构件集群的先后以及各个服务构件的先后。负载均衡调度策略的调度函数为
F(x)=F(静态,动态)=
F(静态调度)+F(动态负载均衡调度)(1)
静态调度中,可以将前面所提到的调度算法封装成服务构件,使用该服务构件时,该构件会根据不同的选择而调用不同的调度算法。当有新的调度策略更适合当前的服务调度时,只需根据设计规范将其封装到该服务中即可,这种方法有利于调度算法的扩展。
动态负载均衡调度中主要是负载函数的设计,它需要综合2种因素,最大负载量和当前负载量,负载函数随着最大负载值的增加而增加,随着当前负载值的增加而减少。设当前有n个服务构件需要调度,则总的负载函数为
式中:Imax(t)表示最大负载;表示当前总的负载;Icur,i(t)表示服务构件库中第i个服务构件的负载量。
5 结束语
随着航天发射场信息化的深入发展,其应用越发广泛,服务构件的理念也因此而被研究和使用。为此,本文研究了基于XML的刻面分类算法,阐述了如何对发射场服务构件进行描述、提取、生产、组装和管理,设计了对服务构件进行组织、管理和调度的服务构件库,提供对服务构件的提取、描述、分类检索、存储入库、组装、管理、调度等功能,以满足航天发射场信息系统开发过程中的复用和基于服务构件的软件开发需求,为航天发射场实际应用提供方便快捷的系统组装方式,服务其信息化建设。
References)
[1]唐立文,岳峥.基于SOA的航天发射场服务构件设计与应用[J].装备指挥技术学院学报,2011,22(5):103-108.
[2]杨芙清,梅宏.构件化软件设计与实现[M].北京:清华大学出版社,2008:154-155.
[3]安璐.基于刻面描述的构件分类检索研究[D].北京:中国石油大学,2009:10-15.
[4]陈杜英,刘韶涛.刻面和规约描述相结合的构件检索[J].华侨大学学报:自然科学版,2012,33(5):513-517.
[5]张银鹤,张秋香,孙膺.XML实践教程[M].北京:清华大学出版社,2007:28-30.
[6]张涛.软件产品线关键技术研究:形式化的产品线体系结构技术[D].西安:西北工业大学,2006:6-8.
[7]徐勇.军用软件管理中构件化技术应用研究[J].计算机与数字工程,2013,41(4):587-590.
[8]王强.实时系统中的非定期任务调度算法综述[J].计算机研究与发展,2004(3):385-392.
[9]罗拥军,李晓乐,孙如祥.负载均衡算法综述[J].科技情报开发与经济,2008,18(23):134-135.
[10]魏妮妮,宋翌,艾学铁.网格计算中基于任务优先级的负载均衡算法[J].华中师范大学学报:自然科学版,2013,47 (2):173-177.
(编辑:孙陆青)
The Design of Service Component Library of Space Launch Site Based on Faceted Algorithm
TANG Liwen, DENG Youyi
(Department of Space Command,Equipment Academy,Beijing 101416,China)
The resources which have accumulated by the space launch site during past years can be fully used by putting the service component idea into the informatization of space launch site so as to enhance the application efficiency.But when the scales of service component raises,the library must be built to organize and manage them.The faceted algorithm,flow and search of service component based on XML are stated,and the storage flow of service component is introduced.Then,the production and assembly of service component are discussed from the aspects of software product line. Lastly,in order to quickly provide an application loader on the building needs for space launch site, one service component library is designed,which the load balancing scheduling strategy towards different demands of service component is designed.
space launch site;faceted algorithm;service component library
TP 31
2095-3828(2014)02-0052-04
ADOI10.3783/j.issn.2095-3828.2014.02.013
2013-09-12
部委级资助项目
唐立文(1976-),男,讲师,博士.主要研究方向:军事航天,指挥信息系统.tangli_wen@sina.com.