产品数据轻量化访问技术研究与实现
2013-06-23谷青范
闻 晓,谷青范
(南京航空航天大学计算机科学与技术学院,江苏 南京 210016)
企业为提高产品开发能力及市场竞争力,不断强化在产品设计开发过程中的各个环境采用计算机辅助技术,从而产生以CAD模型为中心的产品相关信息和所有与产品相关过程。目前这些信息的管理是通过PDM系统来实现,目前国内主流PDM的技术现状大多是基于局域网,在图档的浏览方面则要借助于AutoCAD等绘图软件;并且大多是通用系统并且采用客户机/服务器(C/S)结构模式,不能为企业定制个性化要求,在企业实施的过程中也存在诸多弊端。
目前的应用现状,在产品周期的不同阶段,需要相关人员能够在分布环境下进行产品数据的管理,例如CAD模型的信息可能经常需要在没有有线网络时通过智能终端设备展示给用户,或者需要处于不同地点的各方就CAD模型进行实时交流。
目前基于B/S以图片或文件下载的方式来实现CAD模型信息的浏览,其解决方案如下:产品结构树、文档树浏览时,通过刷新HTML页面来完成;工程图纸访问时,将该文件下载到本地文件系统再打开该文件,以此来达到访问图纸文件的效果。这种访问技术由于采用刷新整个HTML页面,所响应时间较长,导致用户体验差;工程图纸访问由于需要下载到本地,如果需要对工程图纸编辑,那么编辑完之后又必须手动同步更新到服务器,这又大幅降低了用户体验。因此需要围绕产品数据进行优化访问技术的研究。
文中基于流技术原理,实现CAD模型文件的“按需”传输,一方面提高了用户体验,另一方面改善了数据的访问安全性。
1 产品数据轻量化访问技术
1.1 产品数据特点
产品数据管理立足于产品数据[1],管理产品生产过程中与产品相关的所有信息及图纸,为机械制造业提供了有效的管理控制方法。PDM系统按照功能划分,主要分为:电子仓库和文档管理、产品结构与配置管理、工作流管理和生产周期管理等。
电子仓库和文档管理提供对分布式异构数据的存储、检索和管理功能。在PDM中,数据的访问对用户来说是完全透明的,用户无需关心电子数据存放的具体位置,以及得到的是否为最新版本,这些工作均由PDM系统来完成。
产品结构与配置提供对产品结构与配置信息和物料清单的管理。用户可以用PDM提供的图形化界面对产品结构进行查看和编辑。在PDM中,零部件按照装配关系被组织起来,用户将各产品的定义数据与零部间关联起来,最终形成对产品结构的完整描述,传统BOM可以利用PDM自动生成。
工作流管理和生产周期管理模块提供对产品数据动态定义过程的管理。在整个产品生命周期中,提供的管理服务包括保留和跟踪产品从概念设计、产品开发、生产制造直到停止生产整个过程中的所有历史记录,以及定义产品从一个状态换到另一个状态时须经过的处理步骤。
1.2 Ajax技术
在传统Web应用中,用户通过HTTP请求动作连接Web服务器,Web服务器收到该请求后要完成一系列处理工作,如验证合法性、计算数据、访问数据库等,最后将一个完整的HTTP页面返回给客户端。该请求被处理之前,用户一直处于等待页面响应状态。为提高用户体验,Ajax技术应运而生。使Web应用拥有桌面程序所拥有的优点,诸如程序反应灵敏、用户体验优秀等。
Ajax技术[2-3]主要在客户端和服务器之间引入中间层,即Ajax引擎。用户通过该引擎间接与服务器通信,从而达到通信异步化。因此,大幅减少了多余请求与服务器的直接通信;由于采取局部刷新技术,无需刷新整个页面,减少用户等待时间,使用户得到更好的体验;由于该引擎具有一定的处理能力,所以部分请求由该引擎直接处理,从而进一步减轻服务器压力以及网络流量负担。Ajax技术主要由XMLHttpRequest、XML、DOM、JavaScript以及 CSS技术组成。XMLHttpRequest是Ajax技术中的关键技术,负责与服务器异步通信,并获取服务器返回的响应数据。Web应用通过局部刷新就可以与服务器进行数据交互,这使得网络流量带宽进一步减少。但对于CAD模型文件,其更新仍是整个文件的更新,因此需要进一步解决CAD模型文件的局部更新问题。
1.3 CAD模型文件的流化技术
流化的目的是解决Internet方式下的带宽瓶颈,克服文件下载传输方式的不足,将连续的文件经过压缩处理后利用网络服务器,使用户边浏览边下载,而无需等整个压缩文件下载完成后才可以浏览。流化技术先在用户机器上创造一个缓冲区,在用户浏览前预先下载部分文件作为缓冲,在网络实际连接速率小于浏览所耗用资料的速度时,浏览程序则会取用这段缓冲区内的数据。
流媒体系统主要由压缩编码器、流媒体服务器及客户端播放软件组成。压缩编码器主要将媒体数据通过压缩转换成能够进行流式传输的流媒体格式数据,这些数据可以保存为相应的流媒体文件,也可以直接交由流媒体服务器进行发布。流媒体服务器主要提供流式服务,即运行在流媒体服务器上的软件。客户端播放软件是提供给用户浏览流媒体的工具软件。
流媒体涉及的众多技术中,流媒体的格式与流媒体的流式传输是两个关键技术。从不同的角度看,流媒体数据有3种格式:压缩格式、文件格式、发布格式。其中,压缩格式描述了流媒体文件中媒体数据的编码、解码方式;流媒体文件格式是指服务器端将要传输的流媒体组织形式;流媒体发布文件格式是一种呈现给客户端的媒体安排方式。而狭义的流媒体格式是指文件格式。从流媒体的定义可知,流媒体实现的一个关键技术就是流式传输。流式传输的实现需要合适的传输协议。类似于www服务是依靠HTTP协议,HTTP协议是建立在TCP协议基础之上的。但由于TCP协议的开销较大,所以不适合传输对实时要求较高的连续媒体数据。在流式传输的实现方案中,通常采用RTSP/TCP来传输控制信息,而用RTP/UDP来传输实时媒体数据。
文中采用SWF作为流化技术,其原因满足如上所述的流化特点,并且具有缩放不失真、文件体积小等特点,这使得其易于网络传输[4]。
SWF文件由文件头(Header)和文件体(Body)组成。文件头定义了SWF文件的版本号以及文件大小等信息。文件体由大量的Tag组成,在文件最后有一个结束Tag。每个Tag都包括一个标签头(Header)和一个数据体(Body),通过分析Tag的Header部分。可以知道这个Tag的类型代码和长度。如果播放器无法识别Tag的类型,也可以利用Tag的长度直接跳过。SWF文件的完整结构图如图1所示。
图1 SWF文件结构
组成SWF文件的所有Tag,根据其信息按照功能可划分为描述性标签和控制性标签。分类如图2所示。
图2 tag分类图
2 产品数据访问的轻量化客户端设计
2.1 系统架构
通常情况下,多个客户端会同时访问企业的Web服务器,而Web服务器又将客户端发送的请求交由应用服务器、文件服务器、数据库服务器处理,以此来减轻其负担。具体网络拓扑结构如图3所示。
图3 网络拓扑结构
客户端运行环境:Windows XP、IE8;服务器端运行环境:Windows Server 2003、.NetFramework 4.0、SQL Server 2005。
2.2 功能结构
该图文管理分为权限管理、产品结构管理、文档结构管理以及工程图纸管理等几个主要模块。权限管理模块主要用于设定用户的访问权限,其他模块访问时需根据该用户权限来进行。产品及文档结构模块使用户了解产品的结构及各个组成部分,将所有构成部件按层次全部显示出来。工程图纸管理模块主要处理用户在线浏览、编辑图纸功能。
2.2.1 产品及文档结构管理
当制造部门开始进行生产某产品时,首先需要明确该产品的组成及规格。通过该模块功能,制造部门人员可以通过产品结构管理获取该产品结构,该模块将进一步将借用件或原件展示给用户。同时,制造人员可根据文档结构管理模块找到与该产品相关的文档,进而完成生产。
图4 功能图
2.2.2 工程图纸管理
该功能模块主要为用户提供在线浏览远程服务器端工程图纸的功能。在工程制造业中,为保密,工程图纸不能随意下载到本地,因此应提供在线浏览工程图纸。只有拥有特定权限的用户,才能浏览、编辑该工程图纸。源客户端通过RIA技术,缓存远程服务器端的文件,使其能够浏览远程服务器端的工程图纸文件,并通过SWF技术对该工程图纸文件进行编辑,实现在线编辑SWF文件的效果。
2.2.3 用户管理及权限管理
上述两个功能的运行当中,必须要实施有效对用户的管理与权限的控制。为防止用户的误操作,用户进行产品及文档结构管理及工程图纸管理时,任何其他一个成员对其访问时,系统均要对当前用户进行权限审核。当在用户打开对象前,服务端需要把该对象和当前用户相关所有权限提取出来,连同对象一起,下载至客户端,由客户端的RIA程序实施对权限的审核。
3 产品数据访问的轻量化客户端实现
Flex作为RIA的解决方案之一,其应用程序中的客户端部分作为一个包含已编译成字节码的二进制文件进行部署,而用户可以将这些文件像普通HTML文件或图像文件那样部署在Web服务器上,当这些文件被浏览器请求时,会被下载到客户端,然后由Flash-Player运行时解码。
通过上述方式,加载用户请求的工程图纸文件,应用程序通过ActionScript对加载文件处理,加载文件以数据帧的形式被缓冲到内存中,然后再呈现给用户。对于图形移动操作,采取如下操作:(1)获取鼠标左键的屏幕坐标位置。(2)转换成数据帧的坐标。(3)获取对应的Tag信息。(4)修改对应图形Tag中坐标点的信息。对于图形添加操作,解决方式如下:(1)获取鼠标左键的屏幕坐标位置;(2)转换成数据帧的坐标;(3)获取对应的父Tag信息;(4)Tag信息中添加子Tag信息,包含图形描述、坐标点位置等信息。
图5 工程图纸文件管理
4 结束语
分析了计算机辅助设计的需求,针对用户远程访问产品数据的特点以及对工程图纸在线访问的问题,在研究DWG和SWF文件格式的基础上,提出了将DWG文件转换为适合流化处理的SWF文件格式,并利用Flex和AS设计了一个用于在线访问编辑SWF文件的组件。最后将该组件应用于产品数据管理系统中,该系统已经在合作单位部署实施,并取得良好的反响。
[1]RYAN A,NAT H T,SCHUT H.Ajax基础教程[M].金灵等译.北京:人民邮电出版社,2006.
[2]柯自聪.Ajax开发简略[M].北京:电子工业出版社,2006.
[3]张晓彦,张晓明.基于 Flash动画的信息隐藏算法[J].计算机工程,2010,36(1):181 -183.
[4]雒俊丽,李玉山,李静澜,等.电子产品接线图自动生成技术[J].电子科技,2004(9):46-48,52.