本文分析了编码管理在企业信息化中的作用,指出一种通用编码工具的重要性和可行性。然后在把编码规则和编码信息抽象为数学模型和程序组件的基础上,提出了一种集通用性、开放性、灵活性为一体的程序组件化柔性编码工具,并详细介绍了该工具的设计和实现。
一、引言
企业要实施信息化,无论是CAD、CAPP、PDM、ERP还是其他信息系统,首要的问题就是如何进行信息分类编码,它对企业信息化内部各环节间的数据交换、数据共享和数据处理有着重要的意义和作用。根据编码对象和编码目的的不同,编码系统的输入和编码生成规则也各不相同。
在企业信息化中,编码规则的设计是一项复杂的基础性工作,企业编码需在充分分析和科学归纳的基础上,对编码的规范、原则和方法进行合理和详细的设计。本文研究的问题是:在编码规则已经设计完成的前提条件下,如何利用软件工具对编码规则进行定义并生成需要的编码值。针对各种不同的编码规则,目前常用的处理办法是:根据具体的对象和规则进行定制开发,或者是在原型系统的基础上进行代码修改或有限的配置,这种办法尽管满足了用户的当时需求,但软件开发成本高、复用性低,不能满足企业发展的未来需要。因此,开发一种能灵活变形和适应大多数规则的通用编码管理工具,是各类应用软件和信息化系统开发商的目标。
本文在把编码抽象为若干数学模型的基础上,运用组件化的方法,提出了一种集通用性、开发性、灵活性为一体的通用柔性编码工具。
二、编码模型
1.编码结构
对象的编码值通常由几个含义比较明确的码段组成,可能部分码段完全独立于其他码段,其他码段之间存在相互关联。根据码段之间的制约关系,我们把编码结构分为三种形式:并列结构、隶属结构及混合结构。
(1) 并列结构:每个码段具有独立的含义,与前后码段无关。并列结构所包含的特征信息量比较少,但结构简单紧凑,易于编码和识别。
(2) 隶属结构:码段之间是隶属关系,即除第一码段外,其它各码段的确切含义和取值要根据前一码段或前几个码段的值来确定。隶属结构的分类编码系统所包含的特征信息量较多,能对对象特征进行较详细的描述,但结构复杂,编码和识别不太方便。
(3) 混合式结构:实际中大多数编码系统都是由上述两种编码系统组合而成的混合结构,兼有两种系统的优点,能最好的满足信息编码的需要。
2. 编码的数学模型
尽管由于编码对象和编码目的的不同,编码规则不一样,但从数学的角度,编码的生成过程可以统一到一个或一组相同的数学模型中。 (图片)
图1 编码的输入(x,y,z,…)是规则定义中确定的需要从外界获取的相对独立的信息;输入信息转换为码段值(a,b,c,…)的依据是规则中预先定义的码段生成规则及码段之间的依赖关系,函数c=f(b,z)表示码段c的值依赖于输入信息z的值和码段b的值;编码值(CodeValue)的生成原则是设计和定义好的编码值生成规则,它可能会因输入信息或码段值的不同而不同;系统的输出为编码值。这一数学模型为通用的编码工具的实现提供了依据和可能。
三、柔性编码工具的设计与实现
1.系统原理及框架
柔性编码工具由编码规则定义和编码值生成两部分组成,如图2所示。(图片)
图2 (1)规则定义部分
给定一类具体的对象,必须先根据预先设计的规则进行规则定义,规则定义包括码段定义和码段之间制约关系定义两部分。根据码段信息来源和形式的不同,不同的码段需要定义的属性不同,本系统中,码段的定义和码段值的生成采用组件的方式实现。系统为每种码段类型提供一个组件,码段定义时调用码段类型组件的定义接口,通过界面的方式定义码段并把码段信息保存到码段信息知识库中,交互性好,可使用户方便快捷的定义各种码段类型;码段定义完成后,我们把码段之间的制约关系、码段值通过怎样的规则组合成编码值等信息通过知识获取机制输入到码段制约关系知识库中,供编码值生成模块调用。
(2)编码值生成部分
系统根据用户选择的规则名称到码段信息知识库中获得为该规则定义的码段信息,并调用码段类型组件的生成接口,使用户通过界面为各码段赋值。在编辑码段值时,系统会自动调用规则定义时获得的码段制约关系知识库中的相应知识,通过规则解释器和推理机实现动态调整和选取跟码段值相关的信息,生成对象的编码值。
2.编码实现技术
(1)码段类型组件
根据企业信息化中的具体应用及编码规则中需要的信息和可能的信息来源,码段可分为固定字符型、输入型、计算型、选项型、表格型、日期型、流水号型、扩展型等8种不同的类型。由于不同类型的码段需要定义的属性、信息和用户界面是不同的,本系统采用组件化的方式来实现码段的定义和码段值的生成,对应的码段类型组件如下:
1) 固定符号型组件:该类型码段的输出为一个固定的字符或字符串,一旦定义好,在编码中不可更改,如分隔符等;
2) 输入型组件:该类型码段需要用户自己输入码段值,如零件尺寸等;
3) 计算型组件:该类型码段是指根据用户输入的信息经过一定的逻辑或代数运算得到码段值;
4) 选项型组件:从一个枚举集合中选择需要的码段值;
5) 表格型组件:该类型码段的值来源于指定数据库表中指定字段的值;
6) 日期型组件:按指定格式把当前日期作为码段值;
7) 流水号组件:当指定码段的值相同时,区别同类编码对象的顺序码;
8) 扩展型组件:外部程序生成码段值的动态链接库。
前七种码段类型基本上涵盖了制造业企业编码中可能的码段类型,扩展型为企业定制或适应系统未来发展需要。当一个码段的类型确定后,系统自动调用该类型的组件,用户在组件提供的界面中输入该码段类型需要定义的所有输入信息,系统将这些信息保存到码段信息知识库中。在码段值生成时,系统根据规则名称和码段名称,调用该类型组件的码段值生成接口,并从码段信息知识库中获取相应的知识,生成码段值。
下面以一个计算型码段为例,说明码段类型组件的工作原理。设某码段表示体积码x,当体积V小于1000时,该码段值为0,否则为1,跟该码段值x相关的输入信息为长度L、宽度W和高度H,体积V=L×W×H。在码段定义中,需要为该计算型组件定义的输入信息有:1)输入信息有3个:“长度L;宽度W;高度H;”;2)根据输入信息得到码段值的规则是:“体积V=L×W×H;if(V<1000) x=0;else x=1;”。在码段值生成中当选择此码段时,计算型组件调用码段值生成接口,通过组件提供的码段值生成界面给输入信息赋值“L=10;W=20;H=8;”,系统将根据规则ID和码段名称从码段信息知识库中取得码段值的生成规则,得到“码段x=1”的结论。(图片)
图3 3.规则解释器和推理机
当编码结构为并列结构时,各码段取值完全独立,相互之间没有影响,生成规则比较简单,但当编码结构为隶属结构或混合结构时,码段之间出现隶属和制约关系,前一码段的取值会影响后续码段的取值或取值范围,甚至会影响后续编码的码段组成,因此需要根据前面码段的取值动态调整当前码段的取值和后续编码的组成。本系统采用规则解析器和推理机的方法处理码段值之间的制约关系及最终编码值的生成过程。
该模块由知识获取机制、知识库、规则解析器、推理机等组成。在码段制约关系定义中,用户通过知识获取机制把码段之间的制约关系和编码生成规则等信息输入到知识库中;编码值生成中,当用户编辑当前码段的值时,系统根据规则ID和码段名称从码段制约关系知识库中提取相应的知识,通过规则解释器和推理机对该知识进行解释和推理,并把结果作用到该码段类型组件上,便可动态调整当前码段的取值或取值范围,最终生成码段值。此方法的使用,灵活处理了各码段间复杂的关系,大大增强系统的柔性,扩大了该编码工具的适用范围。
四、结束语
编码是企业信息化的基础,本文提出的柔性编码工具系统,对于各种形式的输入及码段关系比较复杂的编码,均可灵活适用,是一个通用的柔性编码系统。该系统的主要优点有:
1)针对不同的编码规则不需修改软件,只要运用提供的组件定义码段,并通过知识获取机制把码段信息和码段制约关系信息输入到知识库中,即可通过规则解析器和推理机灵活实现各种编码规则;
2)提供功能强大的接口,可集成到PDM等其它信息化系统中作为一个模块使用,也可独立使用;
3)对码段的个数和各码段的组成没有限制,对各码段的长度也没有限制,可为定长也可为变长,完全由用户在定义编码规则时自行确定;
4)该系统保存了所有的规则信息和编码值生成过程中的信息,在特殊情况下可恢复编码时的环境,从而对已有码值进行升级或重编;
5)本系统界面友好,交互性强,可灵活适用于各类企业和单位。目前该系统已集成到开目PDM系统中,并在多个企业信息化项目中得到实施,并取得良好的应用效果。
12/14/2004
|