0 引言
企业集群是指在一定范围的地理区域内,同一产业的企业以及与该产业的相关产业和支持型产业的集聚。文献认为,集群是指在某一特定区域内互相联系的、地理位置相对集中的企业和机构的集合,包括一批共处一个竞争环境中相互关联的产业和其他实体。
企业集群具备很多优势,但若一直使用传统的资源管理方式,将不能适应全球化的制造环境,进而削弱集群的创新力和竞争力,使集群随着时间的推移逐渐地衰弱,如美国新英格兰地区高尔夫器材的企业集群、巴西利昂制鞋的企业集群及中国浙江的纽扣、编织带企业集群等。导致这些企业集群衰弱的原因很多,其中一个重要的原因是,没有利用新的技术实现企业集群资源更加高效地整合和共享,造成企业集群在创新上缺少动力、停滞不前。
利用新的网络和信息技术对企业集群进行资源整合,实现集群间高效的资源共享,有利于发挥企业集群的特点和优势。零部件是制造企业的重要资源,国外的零件库提供商主要是有限的几家大公司,零件库采用集中管理的方式,这种方式对中心设备的要求高,成本昂贵。针对国内大量的中小企业特别是企业集群,建立一个既可集成共享又可由企业在本地维护更新的分布式零件库系统,更适应目前国内的应用情况。
目前,分布式资源库的研究主要针对结构化程度高、相对简单的数据库和信息库领域,而对于非结构化强、分布式异构的资源库研究较少。如文献建立了分布式教育资源库;文献在局域网环境下开发了分布式构件库原形系统;文献研究了Web零件库中的零件特征信息;文献研究了分布式设计模型的互操作问题,建立了不同计算机辅助设计(Computer Aided Design,CAD)/计算机辅助工程(Computer Aided Engineering,CAE)之间图形调用的接口。
本文研究面向企业集群的分布式零件库(Distributed Parts LIBrary,DPLIB)系统的构建和集成方法。通过分析企业集群的资源组织特点,提出了面向企业集群环境中的DPLIB框架,并对企业零件库系统(EntERPrise Parts LIBrary,EPLIB)和集成零件库(Integrated Parts LIBrary,IPLIB)系统的Web服务封装和集成进行了研究。针对零部件资源的复杂性,提出了零部件资源的虚拟化动态集成方法,并应用于浙江某企业集群间,验证了DPLIB系统是企业集群资源整合和共享的有效方法。
1 企业集群间的资源组织
企业集群在某一特定领域中,通常以一个主导产业为中心,大量产业联系密切的企业以及相关支撑机构在空间上集聚,并形成强劲、持续竞争优势的现象。企业集群强调集聚经济和区域分工在区域经济发展中的作用,强调发挥区域各种资源要素的整合能力,提出适合于区域具体特征的产业发展途径,尤其突出了技术进步与技术创新的作用。
在企业集群间,由于主导产业的存在,集群企业都围绕几大类相似主导产品组织生产。图1是企业集群中产品族结构和集群企业的关系。对某类产品F来说,构成产品的模块B,构成模块的各组件C,逐步细化到零部件P,各部分之间有着天然联系。企业集群最后要快速响应客户需求和市场的变化,需要把企业集群的资源有机组合,在企业间实现共享。DPLIB系统旨在利用产品族中零部件的这种天然的关系,结合企业集群的生产模式,实行企业间的零部件产品分布式管理和集成共享。
图1 产品族结构和集群企业的关系
零部件库是制造业中的重要资源,在Web环境下,利用互联网提供的分散的设计资源是企业实现产品快速设计的重要途径,但国内很多Web零部件库资源的建设不够完善。国际上著名的Web零件提供商,如Web2CAD采用了“母图+参数”的技术,提供广泛的零件资源,同时大大减少了数据存贮量。CADClick通过目录浏览、公司名称检索、CAD数据检索3种方式查询,根据查询得到的结果,可下载多种格式的零件CAD文件。国内现有的Web零件库的数量不多,Web零件库的内容、结构和功能同国外著名的零件库相去甚远。中国机械网易普零部件3维图库是一个分类较为完善的国标类标准件库,其中有3大类23个小类,一共三万多个全系列的标准件。
2 分布式零件库系统框架
企业集群组织分散,部分企业规模较小,而部分企业建有自己的零件库系统,但由于各种原因,各企业系统之间的资源往往难以共享,缺少一个统一的管理和共享平台。在技术实现上,企业内的零件库系统往往缺少开放性,零件库结构和数据各不相同,零件库的开发模式、运行平台、编程语言也各有差异,要实现共享十分困难。许多零件库系统只在企业内部使用,一些发布在互联网的零件库系统也主要使用网页的方式,供人工访问,虽然也可达到共享的目的,但是缺少互联网访问接口,不利于集群间企业进行集成和高效共享。因此,有必要研究一种具有开放性、方便维护的、能集成各异构零件库系统的、规模较大的零件库共享模式。
由于上述原因,开发和集成了基于Web服务技术的DPLIB系统。图2是面向企业集群的DPLIB系统框架。DPLIB系统由EPLIB和IPLIB两部分组成。EPLIB分布在集群的不同企业或者企业集团中,这些系统可以是异构系统,使用不同的数据库和应用服务器,甚至是不同的架构模式。但都需要对这些系统采用Web服务技术进行封装,为IPLIB提供集成接口,同时这些Web服务接口也为企业内部不同系统之间或企业间集成提供了极大的灵活性。对于部分已有的基于Web的EPLIB,可以继续保留提供Web访问的能力,实际封装和应用表明,基于Web和基于Web服务的方式可以一致性地共存,这使EPLIB保持了稳定性,如图2的EPLIB提供的Web接口。
图2 面向企业集群的分布式零件库系统框架
图2中IPLIB调用多个EPLIB的服务,并对获取的数据进行解析,重新组织添加到IPLIB,再以一个整体的形式提供给企业集群使用,便于企业集群间的企业零部件共享和协同。由于零部件数据本身组织复杂,数据大(特别是复杂零部件的实体图形),如果把所有零部件数据都存储在集成服务器,一方面要求很高的网络支持,另一方面也增加了集成服务器的负荷,影响服务器性能,因此IPLIB构建采用了虚拟动态集成的方法。虚拟集成是指集成服务器并不从EPLIB获取真实的零部件数据,而只是把EPLIB用于共享的零部件目录数据进行了集成,实际的零部件数据保留在EPLIB中,但是在访问IPLIB系统时,用户不需要知道EPLIB,感觉不到EPLIB的存在。动态集成是指IPLIB以设定的周期调用EPLIB服务,获取其目录数据,保持数据尽可能一致更新。IPLIB最终也以Web服务的方式提供对外访问和集成,同时也以Web页面向用户展示一个整体的集成的零件库。
3 企业零件库技术架构和服务封装
3.1 企业零件库技术架构
因为IPLIB只是集成EPLIB的服务接口,所以EPLIB的内部结构不是IPLIB必须要求的。但是由于零部件资源的复杂性,需要对EPLIB的服务封装和实现过程进行研究。
EPLIB建立在已有的基于Web零件库系统基础上,该Web零件库已在某企业实际应用。零件库系统采用了最常用的零件描述方法,即基于零件族、零件事物特性表的描述,实现的功能包括构建零件树结构、提供零件相似族节点的事物特性表、从事物特性表中选择相应零件图形浏览、图形CAD文件的下载和零件的搜索等。原系统用户通过浏览器交互实现上述功能,因此将系统一些逻辑功能用Web服务进行封装后,即可由统一平台进行集成。在封装过程中,可以保留页面层的系统模块,增加用于Web服务层与页面服务层通讯的模块。
EPLIB的封装采用两种框架,如图3和图4所示。图3去掉Web服务层就是基于Web的零件库的系统结构,Web服务层位于页面服务层与应用层之间。通过Web服务接口与服务访问端连接,服务接口实现基于页面服务提供的功能。图3的框架最大限度地使用原来系统提供页面服务的能力,页面服务和Web服务的功能模块重合,但并不是页面服务的所有功能都需要封装为Web服务,而是通过提取逻辑上独立的页面服务方法封装为若干个Web服务。
图3 基于Web服务的EPLIB框架1
图4 基于Web服务的EPLIB框架2
同时,对EPLIB建立了如图4的Web服务封装框架。该框架中,Web服务的功能直接从系统能力上创建,这样页面服务和Web服务可以相互独立,在内部实现上互有差异,当页面服务和Web服务提供相似功能时,使用的程序模块基本一致。图4的框架更适合EPLIB和其他EPLIB异构性太强而需要做进一步调整的情况,既保证原来页面服务的稳定,Web服务又可以做较大的变化。
3.2 企业零件库的Web服务封装
服务粒度是服务设计过程中的一个关键问题,是对Web服务逻辑的划分。对于将提供给系统外部的服务,推荐使用粗粒度服务,而细粒度服务通常用于企业系统架构的内部。粗粒度服务是一个特定服务的完整执行,而细粒度服务可提供实现粗粒度服务更具体的操作。如在EPLIB系统中,对于获取零件库系统的目录分类树的服务接口来说,粗粒度的服务是提供给外部用户使用的获取目录分类树文档的操作,而系统内部细粒度的服务是为实现这个文档的一系列动作,如数据对象的提取、解析、可扩展标记语言(eXtensible Markup Language,XML)文档的生成等。细粒度的服务接口为请求者提供了更加细化和更多的灵活性,粗粒度的服务较好地实现了功能细节的隐藏,实现了EPLIB服务的简化。考虑零件库系统的特点和集成的用途,EPLIB系统的粒度控制以粗粒度为主,将其作为外部集成的接口,供其他系统集成所用。从EPLIB系统到获取用户需要的零件是一个较为复杂的过程。引言部分介绍了国际上著名Web零件库系统中用户获取零件的过程。实际应用总会遵循“企业零件库→零件大类→零件族→零件”这样一个过程,因此EPLIB的Web服务封装过程采用3个步骤:①获取零件库分类树;②获取零件族的事物特性表;③获取具体的零件实体。如图5所示。
图5 零件库Web服务接口
(1)服务接口1 获取零件库分类信息。服务调用无需参数,结果是返回企业零件库系统分类树的XML文件,其反映了零件库的整体信息,满足了解企业零件库总体信息情况的需要。
(2)服务接口2 获取零件族事物特性表。以零件分类树到零件族的完整路径为调用参数,结果是返回对应零件族事物特性表的XML文件,零件族事物特性表是零件库描述零件的比较完整的方式,在零件族事物特性表中选择,找到所需要的零件。零件族事物特性表便于用户筛选自己需要的零件,有助于实现零件的多样化。
(3)服务接口3 获取零件图形。以零件族事物特性表名、表中行序号和图形编号为调用参数,用户可以根据需要选择不同的模型文件,如2维图形、3维实体图或者某一个方向的视图,通过简单对象访问协议(Simple Object Access Protocol,SOAP)附件的方式下载使用。
采用XML文件描述零件分类的树形结构,服务调用者得到XML文件,可以进行任何需要的操作,具有较高的灵活性。零件Web服务提供了不同层次的3个接口,这3个接口既可以关联使用,也可以单独使用,以适应不同的情况。对于新的用户,一般需要按照3个流程才可能获得需要的零部件,而对于已经熟悉的用户来说,可以直接定位到零件族,甚至直接调用服务接口3获取具体的零件。
4 集成零件库实现方法
4.1 集成企业零件库
由于EPLIB采用Web服务技术,将企业零件库系统的零件调用逻辑单元封装为Web服务。这样在统一集成平台上调用各个零件库的Web服务接口,来实现零件库系统的集成,形成了一个虚拟零部件资源集成平台。
根据GB/T17645.42,零件族层次结构应被组织成一个具有单一继承关系的树状结构,按分类层次的高低,将零件族分为零件类属族和零件相似族两部分。零件类属族的层次数目不受限制,而零件相似族位于零件族的最底层。零件库以零件族的形式进行零件的归类和管理。零件库的分类以零件分类树为基础,处理的零件库对象在数据结构上即表现为树状结构。
EPLIB的集成实质上是EPLIB零件树的合并。IPLIB的零件树分为标准零件树和企业零件树,这与EPLIB的零件树完全一致。IPLIB标准树的结构是固定的,如果EPLIB提供共享的标准零件,集成时则把EPLIB提供的零件子树嵌入到标准树中,由此对EPLIB提供的标准树有相当严格的要求,要求提供的标准树和IPLIB的标准树对应一致。而IPLIB对企业零件树的要求相当灵活,只需要把EPLIB提供的零件树直接放置在IPLIB的根节点上,这也是DPLIB在企业集群环境中实现的重点考虑。合并的过程是通过调用EPLIB的服务接口1,从返回的SOAP数据包中提取零件树XML文件,再对XML文件进行合并而得到的。
由于企业集群中各对EPLIB中的零件目录资源更新涉及到零件分类或零件族的变化,其更新相对较慢,而零件的更新相对较快。每隔一定周期,IPLIB会向EPLIB请求新的零件目录资源,实现一定周期下的动态集成。而对更新较快的零件资源,调用时直接访问EPLIB,本身就实现了动态集成。
4.2 集成零件库的Web服务封装
集成EPLIB的目的是建立统一集成的IPLIB系统,同时IPLIB系统也将提供面向服务的接口。集成EPLIB需要对各EPLIB系统服务返回的结果进行组合,以完整的零件库系统提供服务。为了实现动态虚拟集成的目的,IPLIB只对EPLIB的分类树进行了集成,集成后的IPLIB保留了零件族在IPLIB的统一资源定位(Uniform Resource Locator,URL)的服务接口的地址,用户在选择了确定的零件族后,IPLIB进一步的服务调用将指向EPLIB。
IPLIB的Web服务封装基本原理和EPLIB是相似的,IPLIB的实现也遵循“集成零件库→零件大类→零件族→零件”这样一个过程。确定零件族的过程是在IPLIB中实现的,IPLIB完整地保存了EPLIB的零件分类信息。确定零件族后,IPLIB把调用获取零件族的完整路径作为参数,调用对EPLIB的Web服务接口2,获取对应零件族的零件事物特性表,以及进一步获取零件图像文件都是IPLIB向EPLIB请求完成的。如图6所示,这个过程对用户来说是透明的,不需要了解IPLIB调用的是哪个EPLIB。
图6 IPLIB的实际服务调用过程
由于系统接口是以IPLIB服务接口1整体形式显示的,服务请求者并不知道接口内部的结构。请求者的注意点应该是SOAP请求与SOAP响应。服务接口内部数据对象的提取、解析、XML文档的生成,都可以将其发布为Web服务接口,但对于零件库集成来说,其接口粒度设计得过细,反而会降低系统的处理效率,增加服务调用的复杂性,从而导致系统整体性能的下降。
下面以IPLIB服务接口1的开发为例,简要说明其封装过程。采用JAX-RPC方式构造Web服务结构,确定服务端的接口,并定义如下:
其中,PartTreeSoapBindingImpl.java类文件中增加了PartTree接口实现方法,主要用于负责与原系统的Servlet等组件进行通讯,获取零件库系统分类信息,并将其封装为XML格式:
图7是以树结构显示的IPLIB集成若干EPLIB的零件分类树。
图7 IPLIB集成EPLIB后的零件树
5 分布式零件库系统的应用实例
在浙江某纺织机械企业集群中,整机厂使用配置设计软件进行纺织机械的快速设计,配置设计软件和企业原来的零件库系统进行了集成,但是配置设计中使用的大量零部件来自企业集群中的其他企业,企业的零件库系统不能够满足配置设计的需要。通过DPLIB在企业集群间的应用,零部件企业为了整机厂在新产品开发中能够尽可能地使用自己的产品,愿意把企业的零件库系统集成到DPLIB系统供整机厂设计使用,同时整机厂新的需求也可以尽快反映到零部件厂家,从而提供零部件资源共享,提高了企业集群对市场整体的反应速度,其过程如图8所示。在DPLIB的实际应用中,EPLIB零件分类信息的集成速度都非常快。访问零件族的事物特性表也达到较快的速度,但在下载零件图形时,视不同EPLIB系统和零件图形的大小,速度有较大的差异。
图8 通过DPLIB系统实现零件资源共享的实例
图9是DPLIB集成并调用零部件过程的完整示例,完成零件调用的服务接口2和服务接口3实际是在EPLIB2上实现的。集成DPLIB的接口1和接口2是通过访问指定的EPLIB服务URL并绑定其服务,获取描述Web服务的网络服务描述语言(Web Services Description Language,WSDL)文档和端口。已有多种工具可根据WSDL文件生成客户端Web服务调用框架和程序接口。
图9 从DPLIB调用零件过程的一个完整示例
EPLIB服务接口3中,SOAP附带的图像系统采用大型二进制对象(Binary Large OBjects,BLOB),使用BASE64编码,把要传输的数据作为SOAP的一部分,客户端需要对应的解码器反序列为实际的图像文件。另外的方法也可以把图像文件作为多用途网际邮件扩充协议(Multipurpose Internet Mail Extensions,MIME)附件,附带在SOAP消息上。
图9右部分显示的客户端程序内部的处理过程,对于一些只限定在DPLIB的某一分类,甚至几个零件族中间的用户,如在面向某一产品的配置设计中,客户端可以根据用户的需要来设计客户端程序,过滤零件树中的其他数据或直接访问服务接口2和服务接口3,Web服务以及XML表示的数据为此提供了足够的灵活性。
6 结束语
DPLIB试图从集成零件资源的角度,使用Web服务技术,构建一种分布式企业零件库系统在互联网环境中动态集成的系统和方法,实现企业集群间分散的、自发的零件库资源的发布、集成、共享和应用,提高企业集群的协作效率,加速企业集群对市场的响应速度。面向服务的DPLIB系统是企业集群零件资源整合和共享的有效方法。
在互联网环境下,DPLIB系统还需要进一步研究。例如,使用网格技术的研究成果,建立动态负载平衡机制,将使用频率高的零部件保存在企业最近的EPLIB中,以减少零件数据在网络上的传输。EPLIB也需要建立相对统一的分类标准,并鼓励各零件库系统的所有者将其系统发布成Web服务。应该对集成后的零件库系统进一步整合,对集成系统引入合理的评价机制,使DPLIB形成一种自治发展的系统。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:面向企业集群的分布式零件库系统设计与实现