CN100442721C - 一种基于ocl的配置重用方法及系统 - Google Patents

一种基于ocl的配置重用方法及系统 Download PDF

Info

Publication number
CN100442721C
CN100442721C CNB2006101408441A CN200610140844A CN100442721C CN 100442721 C CN100442721 C CN 100442721C CN B2006101408441 A CNB2006101408441 A CN B2006101408441A CN 200610140844 A CN200610140844 A CN 200610140844A CN 100442721 C CN100442721 C CN 100442721C
Authority
CN
China
Prior art keywords
ocl
configuration
object model
reusing
text
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2006101408441A
Other languages
English (en)
Other versions
CN1972208A (zh
Inventor
陈春媛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changzhou Xiaoguo Information Service Co., Ltd.
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2006101408441A priority Critical patent/CN100442721C/zh
Publication of CN1972208A publication Critical patent/CN1972208A/zh
Application granted granted Critical
Publication of CN100442721C publication Critical patent/CN100442721C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种基于对象约束描述语言(OCL)的配置重用方法,包括:首先根据对象模型建立OCL文本;然后设置所述对象模型的访问接口,并将所述OCL文本转换为目标代码;最后,目标代码通过所述访问接口访问对象模型数据,并根据所述对象模型数据调用及检查配置条件,进行配置。本发明还公开了一种基于OCL的配置重用系统,包括OCL建立单元、OCL转换单元及配置单元。应用本发明基于OCL的配置重用方法及系统,可高效实现配置规则的重用,避免现有技术大量的重复工作及一致性难以保证的问题,且配置规则的重用不受操作系统的限制。

Description

一种基于OCL的配置重用方法及系统
技术领域
本发明涉及网络设备配置技术领域,尤其涉及一种基于OCL的配置重用方法及系统。
背景技术
现有技术中,网络设备配置的应用场景主要包括:网络设备的初始配置、网络设备的升级和扩容以及网络优化;其中,网络设备的初始配置是用户根据网络规划对网络设备进行初始配置,以保证开局时设备能正常运行;网络设备的升级和扩容需要调整和增加部分数据配置,是升级和扩容成功的必要条件;网络优化是基于实际运行性能分析,调整配置数据,优化网络服务性能。
在实现上述网络设备配置管理功能时,主要需要考虑解决安全性(Security)、数据的有效性检查(Data Validity)、数据的一致性检查(DataConsistency)和资源管理(Resource Administration)等问题。
根据第三代合作伙伴计划(3rd Generation Partnership Project,3GPP)协议,网元管理设备(Element Manager,EM)可以管理多个网络设备单元(Network Element,NE),是多个被管NE的数据配置中心。由于EM和NE之间的传输带宽有限,为避免因连接问题而影响用户的配置操作,EM上需要支持用户进行离线的配置,即在EM和NE断开的情况下仍然能够进行配置数据准备,并在和NE连接正常的情况下再发到NE上生效。这种方式一方面要求EM上能对用户输入的数据的有效性进行完备的检查,保证在NE生效的时候能够成功;另一方面,用户在NE开局时需要使用近端的数据配置工具,以便发现问题时能及时对设备和配置进行调整;这就要求NE上也能进行完备的配置数据有效性检查。
因此,EM和NE上需要实现逻辑基本相同的配置规则,而在一个功能较为复杂的网元上,如基站控制器(Basestation Controller,BSC),规则的数量相当庞大,可能达到2~3万条,如果这种规则检查的实现在EM和NE各自独立,那么就存在很多的重复开发。同时,EM和NE通常是由不同人员开发的,甚至是不同公司开发的,这种规则由NE的开发人员准确地传递给EM的开发人员比较困难,而随着NE的升级和bugfix(错误定位),要保持同步更加困难。
由于现有技术中只考虑设计上的重用,而不是代码上的重用,即:将配置规则以文档的形式规范化,达到设计重用的目的;为了避免文字描述可能存在歧义,通过自然语言解释加规则描述语言的方式来描述;可选用的规则描述语言可以是自定义的,也可以是OCL。然而,文档和代码的一致性很难维护;更新规则带来的联动工作量较大,NE侧要写两遍,即更新代码,同时还要更新规则文档,EM侧也要做一遍同步;需要辅助工具自动比较并生成配置规则修改列表,靠人力跟踪几乎不可行。
发明内容
本发明提供一种基于OCL的配置重用方法及系统,以解决现有技术中配置规则重用实现复杂的缺陷。
为了实现以上目的,本发明提供了一种基于OCL的配置重用方法,包括以下步骤:
根据对象模型建立OCL文本;
设置所述对象模型的访问接口,将所述OCL文本转换为目标代码;
所述目标代码通过所述访问接口访问对象模型数据,并根据所述对象模型数据调用及检查配置条件,进行配置。
本发明还提供一种基于OCL的配置重用系统,包括OCL建立单元、OCL转换单元及配置单元;
所述OCL建立单元,用于根据对象模型建立OCL文本;
所述OCL转换单元与所述OCL建立单元连接,用于设置所述对象模型的访问接口,并将所述OCL文本转换为目标代码;
所述配置单元与所述OCL转换单元连接,用于利用所述目标代码通过所述访问接口访问对象模型,进行配置。
与现有技术相比,本发明具有以下优点:
本发明提出的基于OCL的配置重用方法,由NE提供以OCL文本描述的配置规则,而EM无需了解具体的规则,只需通过本发明的方法将NE提供的OCL文本编译成目标代码与系统集成进行配置,从而高效实现配置规则在NE和EM间的重用,避免现有技术中大量的重复工作和一致性难以保证的问题;同时,由于OCL文本的编译可以跨操作系统进行,因此本发明基于OCL的配置重用也不受操作系统的限制,即NE和EM,或者其它可以对NE进行配置数据管理工具的操作系统平台可以不同。
附图说明
图1是本发明基于OCL的配置重用方法实施例一的流程图;
图2是本发明基于OCL的配置重用方法实施例一中目标代码的OCL集合数据类型示意图一;
图3是本发明基于OCL的配置重用方法实施例一中目标代码的OCL集合数据类型示意图二;
图4是本发明基于OCL的配置重用方法实施例二的流程图;
图5是本发明基于OCL的配置重用方法实施例二中目标代码的OCL基本数据类型示意图;
图6是本发明基于OCL的配置重用系统一个实施例图。
具体实施方式
下面结合具体实施例对本发明进一步加以描述。
对象约束描述语言(Object Constraint Language,OCL)是专门用于描述对象约束规则的语言,已成为业界的标准。OCL是一种形式化语言,没有二义性,通过开发编译器,可以将OCL翻译成JAVA、SQL和C++等代码。
本发明公开了一种基于OCL的配置重用方法,如图1所示,为本发明基于OCL的配置重用方法实施例一的流程图,包括以下步骤:
S101、根据对象模型建立OCL文本;
S102、设置对象模型的访问接口,将OCL文本转换为目标代码;
S103、目标代码通过预设的访问接口访问对象模型数据,并根据对象模型数据调用及检查配置条件,进行配置。
由于OCL是面向对象的,使用OCL的一个前提条件是需要对配置数据进行对象化建模,在3GPP中对建模后形成的模型称为网络资源模型(NetworkResource Model,NRM),每个对象称为被管理对象(Managed Object,MO)。其中,NRM是用于描述被管理网络实体的信息服务,如NodeB(B节点)和无线网络控制器(Radio Network Controller,RNC),其是管理信息模型的一个子集。以下将使用管理信息库(Management Information Base,MIB)来表述实例化的对象模型。
由上所述,应用本发明基于OCL的配置重用方法,关键在于三个方面:
1、OCL文本的编译;
利用标准化的OCL语法规则,将OCL文本解析成OCL抽象语法树,在此基础上将其转换成目标代码。其具体算法并非本发明的必要技术特征所在,故在此不加以赘述。后述本发明基于OCL的配置重用方法实施例二中将提供OCL文本编译的一个简单实现步骤,以示其可行性。
2、目标代码与系统集成;
具体要解决访问接口标准化和对象不变式的调用检查两个问题,以下将分别加以详述:
(1)定义目标代码的对象元数据和对象模型数据访问的接口
首先,有些OCL元素转换成目标代码需要访问对象模型的元数据,作为检查对象数据的一个判断条件。
如下面一段OCL语句,
context Person inv:gender=Gender::male
其中Gender::male是OCL中的Enumeration类型元素。在翻译成目标代码时,就需要能获取Gender::male的取值,从而和gender属性的取值进行比较。图2为本实施例中目标代码的OCL集合数据类型示意图一,如图所示,在对象模型元数据接口ModelItf的定义中,需要一个GetEnumValue的方法,该方法的统一建模语言(Unified Modeling Language,UML)表示原型如下:
GetEnumValue(enumType:String,enumValue:String):OclInteger
这样,OCL的表达式Gender::male翻译成目标代码就是:
ModelItf::GetEnumValue(“Gender”,“male”)
其次,规则检查毕竟是对对象模型的数据进行检查,因此需要根据OCL的元素类型,设置对应的对象数据访问接口。
配置规则需要访问MIB数据,归纳起来访问方式有三种:
A、从MIB中查找符合条件的某种类型的对象集合
如图2所示,ModelItf中的AllInstances就是获取指定类型的所有对象,对应OCL中的allInstances关键字;ModelItf中的Select获取指定类型满足条件的对象集合,和OCL中的select关键字对应;ObjectItf中的GetAssoObject和GetAssoObiects是获取指定对象的关联对象,分别与OCL中的getassoObject和getassoObjects对应,即关联对象的导航。
B、遍历对象集合
遍历对象集合的接口和方法由集合数据类型提供。图3为本实施例中目标代码的OCL集合数据类型示意图二,如图所示,CollectionItf对应OCL中基本的集合类型Collection,支持Collection的Select、Collect、Union等方法。
C、从对象中获取对象的属性
继续参照图2所示,ObjectItf中的GetAttrValue就是用于获取指定对象的某个属性值。
(2)对象不变式检查的调用时机及实现方法
用OCL描述的配置条件可分成三种:配置操作的前置条件(Precondition)、配置操作的后置条件(Postcondition)和对象的不变式(Invariant)。对于前后置条件,调用的时机和位置很明确,分别在对象执行指定的操作前和操作后进行。而对于不变式,则应用以下方式进行调用:
A、在对象的增删改配置操作执行后调用,如果检查不通过,则回退配置操作,保证MIB符合不变式规则;
B、执行某个对象的配置操作后,对每个和该对象之间有直接关系(包括包含关系、关联关系和依赖关系)的对象调用其不变式进行检查,如果有任何一个返回失败,则回退数据配置操作。
3、运行的性能和效率问题。
在实施本发明基于OCL的配置重用方法时,还需要考虑运行性能和效率的问题。如下面一些规则:
A、inv:self.employee->forAll(p|p.forename=′Jack ′)
//所有员工的名字都叫Jack
B、inv:self.employee->select(p|p.age>50)->notEmpty()
//员工中至少有一人大于50岁
C、context Person inv:
Person.allInstances->forAll(p1,p2|p1<>p2implies p1.name<>p2.name)
//任意两个人的姓名不能有重复
都牵涉到对大批量数据的遍历,这种遍历如果靠简单的MIB对象遍历,则效率很低。因此需要考虑利用索引机制,比如数据库的索引机制。对类似上述第三条规则那样需要对集合内对象进行两两比较的,需要在写OCL规则时避免使用,考虑采用其他可以替代的写法。比如对规则C,如果换成下面这样的写法:
context Person::Create Pre:
Person.allInstances->select(p|p.name=self.name)->isEmpty()
//当前不存在和本人相同名字的人
这种检查效率要高很多,首先是无须在该对象的每个操作和相关联对象的每个操作都被触发,另外也不需要对一个集合的对象进行两两比较。
结合上述内容,本发明基于OCL的配置重用方法可通过下述实施例二加以实施,如图4所示,包括以下步骤:
S401、对配置数据进行对象化建模,得到对象模型;
S402、根据对象模型建立OCL文本;
接续将进行OCL文本的编译,具体包括步骤S403~S406。
S403、设置目标代码的OCL数据类型;
图5为本实施例中目标代码的OCL基本数据类型示意图,本实施例中以将OCL翻译成C++为例,如图所示,OCL设置该些数据类型和针对某数据类型支持的操作,需要在目标代码中设置这些数据类型对应的类型。其中OclBoolean对应OCL中的基本数据类型Boolean,是C++的一个类的定义,支持Boolean类型的所有方法,包括bool、==、!=、 & & 、|、~和xor;OclInteger对应OCL中的基本数据类型Integer,支持Integer类型的所有方法,包括*、+、/和abs(取整);OclString对应OCL中的基本数据类型String,支持String类型的所有方法,包括toUpper和contact。
S404、设置对象模型元数据及对象模型数据的访问接口,具体实现方法在上文中有详细描述,此处不再加以赘述;
S405、根据OCL文本获得OCL抽象语法树;
此步骤可通过OCL解释器来实现,OCL解释器为现有技术提供,可以从互联网下载,如Dresden OCL Toolkit。在使用OCL解释器时可以检查出其语法错误,如果语法没有错误,可以生成一棵抽象语法树。
S406、将OCL抽象语法树转换成目标代码;
使用递归下降分析算法,对抽象语法树中的每个语法元素节点,根据其元素类型,找到对应的目标代码表示方法,最终将抽象语法树翻译成目标代码。
S407、目标代码通过预先设置的访问接口访问对象模型数据;其中,访问接口则由上述步骤S404完成预设置的过程。
S408、根据对象模型数据调用及检查配置条件,其调用时机及实现方法已在上文有所详述,此处不再加以赘述。
本发明还公开了一种基于OCL的配置重用系统,如图6所示,为本发明基于OCL的配置重用系统一个实施例图。该系统包括OCL建立单元61、OCL转换单元62及配置单元63。其中,OCL建立单元61用于根据对象模型建立OCL文本;OCL转换单元62与OCL建立单元61连接,用于设置对象模型的访问接口,并将OCL文本转换为目标代码;配置单元63与OCL转换单元62连接,用于利用目标代码访问配置数据,进行配置。
OCL转换单元62进一步包括相互连接的数据类型设置子单元621、接口设置子单元622、OCL编译子单元623和目标代码转换子单元624。其中,数据类型设置子单元621用于设置目标代码的OCL数据类型;接口设置子单元622用于设置对象模型元数据及对象模型数据的访问接口;OCL编译子单元623用于根据OCL文本获得OCL抽象语法树;目标代码转换子单元624用于将OCL抽象语法树转换成目标代码。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (10)

1、一种基于OCL的配置重用方法,其特征在于,包括以下步骤:
根据对象模型建立OCL文本;
设置所述对象模型的访问接口,将所述OCL文本转化为目标代码;
所述目标代码通过所述访问接口访问对象模型数据,并根据所述对象模型数据调用及检查配置条件,进行配置。
2、如权利要求1所述基于OCL的配置重用方法,其特征在于,所述调用及检查配置条件包括调用及检查对象的不变式,所述调用及检查对象的不变式进一步包括:
在执行配置操作后,调用配置操作的对象的不变式进行检查,如果检查返回失败,则回退配置操作;
对每个与所述配置操作的对象有直接关系的对象调用其不变式进行检查,如果有任何一个返回失败,则回退配置操作。
3、如权利要求所述基于OCL的配置重用方法,其特征在于,所述调用及检查配置条件还包括:
在执行配置操作前调用及检查配置操作的前置条件;和/或
在执行配置操作后调用及检查配置操作的后置条件。
4、如权利要求1所述基于OCL的配置重用方法,其特征在于,所述根据对象模型建立OCL文本之前还包括:
对配置数据进行对象化建模,得到对象模型。
5、如权利要求1所述基于OCL的配置重用方法,其特征在于,所述将OCL文本转换为目标代码进一步包括:
设置目标代码的OCL数据类型;
设置对象模型元数据及对象模型数据的访问接口;
根据OCL文本获得OCL抽象语法树;
将所述OCL抽象语法树转换成目标代码。
6、如权利要求1所述基于OCL的配置重用方法,其特征在于,所述访问对象模型数据包括:从对象模型数据中查找符合条件的对象集合、遍历对象集合或从对象中获取对象的属性。
7、如权利要求6所述基于OCL的配置重用方法,其特征在于,采用索引方法进行所述从对象模型数据中查找符合条件的对象集合。
8、如权利要求1所述基于OCL的配置重用方法,其特征在于,所述对象模型为管理信息库。
9、一种基于OCL的配置重用系统,其特征在于,包括OCL建立单元、OCL转换单元及配置单元;
所述OCL建立单元,用于根据对象模型建立OCL文本;
所述OCL转换单元与所述OCL建立单元连接,用于设置所述对象模型的访问接口,并将所述OCL文本转换为目标代码;
所述配置单元与所述OCL转换单元连接,用于利用所述目标代码通过所述访问接口访问对象模型,进行配置。
10、如权利要求9所述基于OCL的配置重用系统,其特征在于,所述OCL转换单元进一步包括相互连接的数据类型设置子单元、接口设置子单元、OCL编译子单元和目标代码转换子单元;
所述数据类型设置子单元,用于设置目标代码的OCL数据类型;
所述接口设置子单元,用于设置对象模型元数据及对象模型数据的访问接口;
所述OCL编译子单元,用于根据OCL文本获得OCL抽象语法树;
所述目标代码转换子单元,用于将所述OCL抽象语法树转换成目标代码。
CNB2006101408441A 2006-10-12 2006-10-12 一种基于ocl的配置重用方法及系统 Expired - Fee Related CN100442721C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101408441A CN100442721C (zh) 2006-10-12 2006-10-12 一种基于ocl的配置重用方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101408441A CN100442721C (zh) 2006-10-12 2006-10-12 一种基于ocl的配置重用方法及系统

Publications (2)

Publication Number Publication Date
CN1972208A CN1972208A (zh) 2007-05-30
CN100442721C true CN100442721C (zh) 2008-12-10

Family

ID=38112817

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101408441A Expired - Fee Related CN100442721C (zh) 2006-10-12 2006-10-12 一种基于ocl的配置重用方法及系统

Country Status (1)

Country Link
CN (1) CN100442721C (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101272222B (zh) * 2008-05-06 2012-07-11 中兴通讯股份有限公司 一种约束校验方法及装置
CN114531335B (zh) * 2020-11-23 2023-04-11 大唐移动通信设备有限公司 一种管理信息库数据检测的方法、设备及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1509000A (zh) * 2002-12-15 2004-06-30 华为技术有限公司 一种网元内部实时数据的同步方法
US20040136343A1 (en) * 2002-11-01 2004-07-15 Jong-Hyeuk Lee Code reuse apparatus in CDMA wireless communication system using beamforming by antenna array and code reuse method therefor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040136343A1 (en) * 2002-11-01 2004-07-15 Jong-Hyeuk Lee Code reuse apparatus in CDMA wireless communication system using beamforming by antenna array and code reuse method therefor
CN1509000A (zh) * 2002-12-15 2004-06-30 华为技术有限公司 一种网元内部实时数据的同步方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
对象约束语言在MDA模型转换中的应用. 杜浩,蒋波.交通与计算机,第1期. 2006
对象约束语言在MDA模型转换中的应用. 杜浩,蒋波.交通与计算机,第1期. 2006 *

Also Published As

Publication number Publication date
CN1972208A (zh) 2007-05-30

Similar Documents

Publication Publication Date Title
Mens et al. Evolving software architecture descriptions of critical systems
CN105022630B (zh) 一种组件管理系统及组件管理方法
CN101841515B (zh) 可变目标的协议数据单元编解码代码自动生成的实现方法
CN104854558A (zh) 用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品
CN104360859A (zh) 一种可视化的服务开发方法和系统
Laleau et al. Coming and going from UML to B: a proposal to support traceability in rigorous IS development
CN109284106A (zh) 业务规则的发布管理方法、电子装置及可读存储介质
CN110413465A (zh) 一种基于信息交互总线的信息一致性测试方法、系统和验证服务器
CN102023859B (zh) 面向数字化研制环境的可靠性维修性保障性软件集成方法
CN107391130A (zh) Api自动管理和sdk、文档自动生成方法
CN104598619A (zh) 一种基于约束求解器的服务组合验证方法
Martinez et al. Recovering sequence diagrams from object-oriented code: An ADM approach
Haitzer et al. DSL-based support for semi-automated architectural component model abstraction throughout the software lifecycle
CN101303646B (zh) 基于可执行元语言的电信领域建模方法
CN105335161B (zh) 一种从tasm时间抽象状态机到扩展nta自动机的转换方法
CN109582391B (zh) 一种基于xml的设备树配置方法
CN103164200B (zh) 一种用于应用系统开发的控制方法
CN100442721C (zh) 一种基于ocl的配置重用方法及系统
CN100471136C (zh) 一种配置规则检查方法及装置
Choi et al. An approach to share architectural drawing information and document information for automated code checking system
CN103559296A (zh) 一种基于xml的scpi命令解析方法
Briola et al. Ontologica: Exploiting ontologies and natural language for railway management. Design, implementation and usage examples
KR101685439B1 (ko) 데이터베이스 분산처리 자동 가공 시스템
US11115279B2 (en) Client server model for multiple document editor
CN103714035B (zh) 一种用于集成环境的多层软件总线结构

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: CHANGZHOU XIAOGUO INFORMATION SERVICE CO., LTD.

Free format text: FORMER OWNER: HUAWEI TECHNOLOGY CO., LTD.

Effective date: 20140313

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518129 SHENZHEN, GUANGDONG PROVINCE TO: 213164 CHANGZHOU, JIANGSU PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20140313

Address after: 213164 building C, building 407-2-6, Tian An Digital City, 588 Chang Wu Road, Wujin hi tech Industrial Development Zone, Changzhou, Jiangsu, China

Patentee after: Changzhou Xiaoguo Information Service Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081210

Termination date: 20151012

EXPY Termination of patent right or utility model