0 引言
大规模定制(Mass Customization,MC)的关键技术之一是尽可能减少产品的内部多样化,用大量的标准件和通用件组成个性化的产品。为保证质量和降低成本,要求这些标准件和通用件尽可能由专业化的零件供应商提供。在这种背景下,产生了一种新的需求和协作模式:面向大规模定制的整机企业需要在产品设计时就快速得到各种价廉物美的标准件和通用件的数据;而专业化零件供应商需要让尽可能多的企业在产品设计时就选用自己生产的零件。为了满足双方的需求,在网络技术的推动下,一种新的系统基于Web的零件库应运而生。
调查表明,80%的美国工程师希望零件供应商可以通过网络提供现成的2维或3维计算机辅助设计(Computer Aided Design,CAD)零件文件;60%的受调查者承认他们倾向于选择提供了此类服务的供应商;在被下载的3维模型文件中,大约80%~90% 的模型被加入到企业用户的设计方案中,并被购买。
基于Web的零件库系统是一种专业工程网站,它为零件供应商提供了一个存储其所生产零件的技术说明文档及CAD模型的平台,并对零件的各种信息进行了详细描述。产品设计人员在工程设计时,能够通过该网站搜索需要的某些零件,并将得到的CAD文件下载到本地计算机,然后导入到自己的CAD设计软件中使用。为满足不同用户的需求,不仅下载的CAD 文件以多种形式提供,而且提供DXF,JPG,GIF等格式的2维及虚拟现实建模语言(Virtual Reality Modeling Language,VRML)等格式的3维预览功能。同时,网站还提供许多与零件相关的信息,如材质、型号和制造厂商等。对设计人员来说,可以加快产品设计,提高产品质量;对零件供应商来说,既满足了客户的要求,又达到了销售和宣传自己产品的目的。
基于Web的零件库目前在国外已经有商品化的应用,例如,Web2CAD提供了4千多万个机械零件CAD模型供用户免费下载。国内零件库的应用情况不尽如人意,现有的基于Web的零件库数量不多,而且内容、功能和结构都与国外存在很大差距。
本文对基于Web的零件库系统的设计与实现等相关问题进行了研究与探讨,提出了一种可行的解决方案。
1 基于Web的零件库的建立
1.1 零件族的构建
在面向MC的产品开发中,新零件的设计是以零件族为基础的。零件族的建立过程是:对零件的几何形状进行相似性分析;在对零件功能、结构进行分析的基础上,提出能满足零件族变型要求的CAD模板。零件族可以减少零件种类,简化零件库,优化零件结构,而且可以使供应商形成较大的零件批量,取得规模经济效益,为MC中的产品变型设计和配置设计奠定了良好的基础。
根据GB/T17645142,零件族层次结构应被组织成一个具有单一继承关系的树状结构(或称零件树),按分类层次的高低将零件族分为零件类属族和零件相似族两部分。零件类属族的层次数目不受限制,而零件相似族位于零件族的最底层。
零件相似族是通过事物特性表和几何图形模板(即对应的零件相似族CAD模板) 来描述的,如图1所示。几何图形模板描述了零件族的几何图形信息和拓扑信息,而零件的尺寸参数、材料和成本等非几何信息(也是结构化数据)则借助事物特性表来表达。
德国标准化协会(DIN) 为建立CAD标准件库,发布了标准件和通用件的DIN 4000标准,国际标准化组织(ISO)以此为基础,制定了一个关于计算机可解释的零件库数据表达和交换的国际标准——ISO13584。目前,在零件库的建立中还没有解决的问题是:不同企业所建立的零件族间存在相似性,但在零件库中并没有很好地反映出来,零件库的有序化程度较低,因而在搜索某种零件族时,不仅查询工作量很大,难以查全,也不利于企业间进一步合作。
1.2 基于事物特性表的零件描述
事物特性指表征产品(包括部件和零件)几何特性、功能特性和制造特性的信息集合。事物特性表是为建立零部件的数据库而采用表格形式对零部件进行特性描述的ASCII文件。目前,基于事物特性表描述的零件主要以数据表的形式保存于数据库中,称为事物特性一览表。
当完成创建零件相似族节点后,需要定义其事物特性表。创建零件相似族事物特性表时应该仔细分析零件的特性,以标准化、系列化和模块化的原则为指导。事物特性表所描述的内容应该是使用最频繁、最重要的特性,而不是所有特性。
1.3 基于语义特征的零件描述
以事物特性表的形式描述零件还不足以充分表达零件各方面的特征,特别是一些功能和工艺上的特征。因此,笔者以零件分类编码系统JLBM-1为基础,将语义编码、层次结构的柔性编码等结合进去,创建了一种新的零件特征描述方法,称为零件语义特征描述。使用针对零件功能和结构的语义特征关键词组合来描述零件,特别适合于描述企业中的非标准件。
图2为基于语义特征的零件描述示意图,该图利用零件功能和结构的语义特征关键词的组合来说明零件族的特点。这种描述方式可以与基于事物特性表的零件描述互为补充。
1.4 基于本体的零件描述
概念是人类在认识世界的过程中,对某个事物进行抽象和归纳后形成的理解,是人的头脑中的抽象认知。而本体是对概念、概念之间关系的明确的规范化描述。本体的作用主要体现在信息检索和知识共享等领域。用本体描述对象的重要意义在于“本体消除了对象描述的歧义”,使得诸多表达方式可以通过本体达到概念上的一致。
在Web零件库中,每个企业自成体系地分别构建本企业的零件类属族和零件相似族。由于企业中命名体系或标准的多样化,导致了零件族名称和结构的混乱。如图3所示,垫圈有多种叫法。本文将这种现象称为“概念的多种表称”。
在开放、自组织的Web零件库中,统一零件族结构和名称显然是不现实的。本文引入“关联本体”的概念来解决这个问题。所谓关联本体就是在零件族定义中,与某个零件族节点表达相同概念、具有不同名称的本体。以图3为例,将垫片作为本体表达的标签,那么垫圈、瓦丝等则为关联本体。由于本体可以明确概念之间的关系,关联本体与本体进行关联,即使不同企业的零件族结构有所不同,也不会影响本体库中的概念关系。
因此,在Web零件库中应用本体和关联本体的概念,能够部分地解决ISO 13584想要解决企业零件族统一描述的问题,可以大大提高根据零件族名称进行检索的查全率,有助于零件标准化。由于本体描述了概念之间的关系,如果引入本体推理引擎,还可以进行上下位推理和关联推理等。
2 Web零件库的总体设计
Web零件库(WebParts Library,简称WebParts)是笔者开发的基于Web的零件库系统,其主要构成如图4所示。
图 Web零件库的主要构成
(1)零件库管理系统 通过零件库管理系统,供应商可以管理本企业的零件族,定义并编辑零件事物特性表,管理零件事物特性一览表,给定零件族的语义特征描述等。
(2)零件信息库与供应商信息库 零件信息库主要存放零件的各种结构化信息,如零件名称和材料等;供应商信息库中包括企业的登录帐号、联系人和电话等。这两个信息库实际上位于同一个数据库中。
(3)零件相似族CAD文件/图形库 该库实质上是零件相似族对应的零件CAD模型及2维示意图在服务器硬盘上的集合。同时,供应商可以上传WRL格式的零件文件,这样,普通用户就可以利用VRML插件直接在浏览器中进行旋转、放大和缩小等浏览操作。
(4)零件CAD文件库 具体的零件对应为零件族事物特性一览表中的某一行数据,企业可以下载其对应的CAD文件,该CAD文件并不需要支持参数化,其尺寸一般已经限定。
(5)信息发布平台 供应商和普通用户可以分别在此发布某些特殊零件的供需信息。
(6)信息搜索引擎 支持Web零件库中的查询服务,可以支持基于本体的检索。
(7)零件本体库 本体库是零件本体及其关系的集合,还包括关联本体库。
利用层次结构模型来描述Web零件库,主要包括界面层、页面服务器、业务逻辑层和数据层4个层次(如图5)。
图 Web零件库的体系结构
3 零件本体的应用
企业零件族中的零件相似族相当于本体,则以事物特性表进行描述的具体零件为对应的实例。
3.1 本体建模工具和操作语言的选择
根据对不同本体描述语言的支持,也可以简单地将本体开发工具分为基于人工智能(Aritificial Intelligence,AI)的本体开发工具和基于Web的本体开发工具两种。基于AI的本体开发工具包括Onto lingua和OntoSaurus等,基于Web的本体开发工具包括 Protégé和OntoEdit等。Protégé是一个开放源代码工具,完全用Java实现。它实现了可视化本体编辑;支持多重集成,并能对数据进行一致性检查;具有很强的可扩展性;输出格式灵活多样,包括可扩展标记语言(eXtensible Markup Language,XML)、资源描述框架(模式)(Description Framework(Schema),RDF(S))、OIL(ontology interface layer)、美国国防部高级研究计划局Agent标记语言(DARPA Agent Markup Language,DAML)、DAML+OIL和Web本体描述语言(Web Onto logy Language,OWL)等;支持数据库存储本体和实例。Protégé基本上成为国内外众多本体研究机构的首选工具。事实上,目前几乎所有国外开发的本体建模工具都不支持中文本体,而选择开放源代码的Protégé有利于解决该问题。
Protégé适用于可视化创建本体,这是建立在Frame基础上的,但是在具体的工程应用中,并不适合作为本体库、实例库动态添加和编辑的工具。WebParts中使用由HP实验室Semantic Group开发的Jena对基于RDF(S)、DAML+OIL和OWL的本体进行操作。Jena实际上是一组Java应用程序接口(Application Programming Interface,API),能够用来创建和操纵本体对象。Jena用对象类来表示图、resource、property和literal,用于表达后三者的接口分别叫做Resource,Property和Literal,而图被表示为一个model。Jena也是开放源代码的。
ISO于2004年2月正式推荐OWL来描述本体。OWL具有3个子语言——OWL Lite,OWLDL和OWL Full。前者分别为后者的子集,OWLDL可以支持推理。WebParts使用OWL Full来表达本体和关联本体。Protégé和Jena 都支持OWL描述的本体。
3.2 零件本体库的构建
首先使用Protégé建立一个零件初始本体库,以OWL文件保存本体。本体库具有良好的开放性,在后续阶段可以使用Jena API来读写本体库。
为了降低本体库建立的工作量和难度,零件本体仅描述零件的名称和简介,不对零件族提供关于功能、结构特征的本体描述,因此对于企业通用件仅建立一个通用件的大类。
3.3 零件关联本体库的实现和本体库的扩展
零件关联本体库的构造和零件本体库的扩展是在Web零件库的应用中逐步实现的。
企业创建通用零件族时,输入零件族节点的名称和说明,然后根据需要进行零件族节点的语义特征描述。
3.4 基于本体的零件检索
使用本体的目的是提高检索的查全率,实现多种推理检索。WebParts中的零件检索并不是针对具体的零件实例,而是针对零件族的。
传统的查询以关键词匹配和布尔查询为主,无法实现同义概念(螺母、螺帽)、上下位概念(螺钉、内六角螺钉)的检索,因而在WebParts中,提出多层次的检索模型。
(1)零件语义特征匹配 根据零件的功能结构特征关键词组合进行匹配查询,得到满足匹配条件的零件族本体关键词。
(2)语义检索 采用基于本体的语义检索方式,能检索出与用户查询中所表达的具有同义、上下位等语义关系的实例信息。语义检索包括4个方面:①同义扩展检索。如第1.4节所述,表达同一概念的零件族节点可能有多种名称表达方式,分别为本体和关联本体,同义扩展将有关本体的关联本体检索出来。②语义蕴涵检索。本体概念之间存在上下位关系,蕴涵是下位关系。例如,用户输入“螺栓”,要求把所有符合条件的六角头螺栓、内六角螺栓和沉头螺栓等全列出来。③语义外延检索。根据蕴涵检索,输入“六角头螺栓”,外延检索时需要把满足条件的螺栓列出。④语义联想检索。概念的并列关系检索,例如输入“螺栓”,检索“螺钉”,也就是将父节点本体的所有子类本体检索出来。
(3)精确检索 即精确匹配,通过前面的检索过程,可以得到一个本体列表,通过这个本体列表逐一构建对应的零件族的树,树的底端是零件相似族,它与零件实例相对应。
在语义检索中,WebParts的本体推理搜索引擎利用本体读写 API(jena ontology API)对以OWL文件格式保存的本体库和关联本体库进行查询操作。
4 Web零件库中的关键技术
4.1 基于HTTP隧道的对象串行化通讯
在WebParts的客户端,大量使用Java applet来完成零件树的生成、事物特性表的定义与编辑,以及零件事物特性一览表的显示等功能,服务器则使用Java Servlet,因此WebParts主要的通讯问题存在于applet与Servlet之间。基于几方面考虑,决定采用基于HTTP隧道的对象串行化通讯方式来实现applet与Servlet之间的数据交换。
(1)基于HTTP隧道的通讯过程
客户端的applet首先要创建一个到服务器Servlet的HTTP链接(URLConnection),基于此打开一个输出流DataOutputStream——即建立HTTP通讯隧道,然后将想要传递的参数以“?paramName=param Value¶mName2=paramValue2”的形式,通过当前打开的输出流传递到服务器Servlet上。Servlet解析出来自客户端的请求参数,执行相应的逻辑操作,将结果以序列化了的对象形式,通过基于HTTP隧道的输入流DataInputStream返回到客户端。通讯过程中,打开了的HTTP隧道将一直保持到通讯结束后才关闭。
(2)服务器通讯字典
客户端传递参数是以”url?“的形式进行的,理论上可以传递多个参数/值对。在 WebParts中规定只传递两个参数/值对“第一个参数表达需要执行的操作类型,即作为操作标志;第二个参数为具体内容,也可为空。因此,服务器需要建立一个通讯字典,根据来自客户端的参数执行相应的逻辑操作,以flag和contentString分别标志第一参数和第二个参数的值。WebParts服务器中的通讯字典部分内容如表1所示。
表1 WebParts服务器通讯字典部分内容
4.2 数据缓存
为了提高系统的速度,降低服务器的响应压力,在Web服务器启动时,WebParts将大量常用数据加载到内存中,客户通过网络请求所需数据时,服务器不再检索数据库,而直接从内存中提取并返回给客户端。
例如,WebParts系统中零件树是从数据库提取数据动态生成的,这个过程比较耗时。服务器以Hashtable的形式保存各种零件树数据。用户浏览某个企业的零件树时,客户端通过HTTP通讯隧道向服务器发送企业ID,服务器Servlet直接从Hashtable中获取并返回。另一方面,通过查询零件关键词直接生成零件树,企业用结构化查询语言(Structured Query Language,SQL)为关键词保存查询结果,第二次查询时可以直接利用以往的查询结果,不需要再进行复杂的数据库查询操作。
5 系统实现案例
WebParts采用Java语言开发,Web服务器采用开放源代码的Tomcat,这样能够很好地集成Protégé和Jena。
(1)零件族、事物特性表的创建与编辑
以标准件族为例,系统管理员在零件领域专家的指导下可以通过Web页面建立标准件族,可以为零件类属族定义事物特性表,下层节点定义事物特性表时将自动继承父节点的事物特性,对于创建好的事物特性表还可以进行编辑。
在零件族的构建过程中,根据当前节点的属性给出不同的右键菜单,定义了事物特性表的节点新增“编辑事物特性表”、“添加零件”和“上传零件族图片”等菜单栏。
零件事物特性表“entSM L96”对应的是标准件中的单列角接触球轴承。
(2)查询零件
图11显示了通过企业名称关键词“轴承”检索的结果显示的页面。点击“零件相似族2维示意图”,可以显示对应的2维图;点击零件相似族3维示意图;,可以浏览一个通过VRML显示的轴承示意,还可进行放大、缩小、旋转和平移等操作。
6 结束语
Web零件库是一种基于网络的支持MC的共享资源库。Web零件库能够通过零件信息的大范围共享,显著提高零件的重用程度,整机企业能方便地利用标准件和通用件快速设计和制造出个性化产品;专业化零件供应商能有效地推销自己的产品,扩大批量,降低成本。
笔者开发的Web零件库系统(WebParts)的主要特色是:①提供了零件供应商与产品设计师之间信息集成的平台。②在零件库中采用事物特性表,使零件信息得到简化和优化。③系统具有良好的开放性和自组织性。④系统采用了本体、关联本体和基于语义特征的零件描述的概念,有效地解决了不同企业零件族之间的对应关系,使自组织建立的零件库有序化,方便了用户的使用,也为零件的标准化提供了方便。
当然,该系统还存在很多问题,需要在应用中进一步改进和完善,为21世纪的主流生产模式——大规模定制——提供强有力的支持服务。
(审核编辑: Doris)