|
塑料注射成型CAE技术取得了长足进展,应用CAE技术可替代传统的试模方法,缩短模具设计制造周期,降低生产成本,提高产品质量,因此,注射模CAE软件在模具行业中受到普遍欢迎。目前商品化的注射模CAE软件价格较高,许多中小型模具厂尚未购买。随着Internet的发展,借助互联网提供的远程应用功能,这些用户只要花费很低的费用,就能通过互联网借助于CAE软件完成对注射模设计方案的分析与优化,从而降低其模具设计制造的成本。
$ z2 ?1 k6 I5 v% C
. @* z/ @% t" ^本文在注射模CAE系统(HsCAE3DRF)基础上,开发出1个性能优良的注射模CAE远程应用服务系统。 ! h6 G9 |: r0 ?; N8 y' N
. A& ]) K1 T* v" Z7 ^' m9 U' N
2. 系统模型
/ l3 v8 w0 r1 W% z n, e1 O6 a3 t$ B4 P8 N- L
系统模型如图1所示。该模型的特点是,基于TCP/IP协议,以C/S模式为主,B/S模式为辅[1],可以实现多用户操作,并对拨号用户提供RAS服务。C/S和B/S共享服务器和数据库,浏览器首先要通过WEB服务器下载客户端控件。系统工作流程为:①客户在主服务器上登录,成功后进行方案设计;②客户将设计好的方案上传到FTP服务器,同时向主服务器提交CAE分析定单;③主服务器接到定单后立即通知方案分析服务器,后者根据通知要求对收到的方案进行分析,分析完毕给主服务器1个反馈信息;④主服务器通知客户,客户再从FTP服务器上下载分析结果方案,并在自己的工作站上观察和使用该结果方案。 8 z7 O4 ^2 v3 n
" P) d. c, }4 R. ^5 |
$ U! d$ B$ B8 s( d9 K. ?+ @: D. u- |! ]$ b H8 r1 l
系统模型中的数据库主要对用户(含注册信息、邮件收发)、定单(含定单收发时间、地点、级别)、材料(含塑料材质、工艺参数、性能指标)和任务(含方案信息、日志记录)等4类数据进行管理。为了提高数据的读写效率,减少系统资源占用,优化服务器性能,本系统在数据库编程方面采用了先进的ADO(ActiveX Data Object)技术[2]。 7 i% s6 ?: c) x
- l+ g% V& F7 W3 F( y
3. FTP服务器
/ k! A: M! M) Q$ `- k6 Y9 j% Y& z
5 u' \/ R; R$ ^6 t1 n8 {( y注射模CAE方案的远程提交和返回以文件传输方式进行。系统模型中,FTP服务器主要是在客户端和方案分析服务器之间起到1个桥梁作用,以实现分析方案的高效稳定互传[3]。 4 k! _7 {. X/ s1 r0 L
" V: _# ^! I/ [1 v- p/ pFTP客户端实现是基于套接字接口的。客户端和服务器通过五元组全相关(客户机网络地址、客户端口号、协议号、服务器网络地址和服务器端口号)建立TCP的控制虚电路(即第1次握手)。一旦第1次握手成功,双方便进入交互式会话状态。此时,如果客户端用户向远程服务器提出1个FTP请求,系统就会在客户机与服务器之间临时建立1个数据连接,用于客户方案文件的传送。这种接口方式也适用于多个方案文件的同时传送(借助多条数据链路实现),其结果是有效减少了系统延迟,提高了数据传输效率。另外,本文还把超过5M的方案文件拆分成多个小文件进行多线程同时传送,从而进一步提高数据传输效率。 2 P& u$ C; ^5 ?0 b: I
) W8 Q1 ?6 f4 ]4 J) o为了保证用户合法使用FTP服务器传送自己的方案文件,本系统要求用户提供注册名和口令。同时,为了确保FTP服务器的安全,将用户注册名和口令副本隐含在客户端程序中。 - F4 n+ C# B q' y( |8 j1 Z& r* I
2 w' X% _& }7 M7 b* K; F
目前高性能的FTP服务器软件很多,不必另行开发。因此,本系统的关键是在客户端正确嵌入FTP客户程序。WinInet是windows Internet扩展应用程序的接口,使用WinInet可以方便地给应用程序添加连接Internet服务器的功能,而无须考虑基本通讯协议和底层数据传输实现。WinInet支持文件传输协议(FTP),并提供相应的FTP客户端系列函数和方便编程的MFCWinInet类。 3 ^9 R% i3 Q3 T
+ y4 C7 s! a* u% K4. 文件压缩 $ \- N) J2 Y4 {" C+ D& u6 O
M6 i8 k2 q( K% P3 z% B0 k
对于客户端提交或服务器返回的每套分析方案,由于含有图形,所以,文件大小一般在10M以上,对于复杂的注射模分析方案,其文件大小甚至可达100M以上。如此巨大的数据量在网上传输,尽管采用了FTP技术,但数据的传输效率和稳定性并不理想。在网络硬件不变的情况下,较好的解决办法就是压缩文件,以减少数据传输量。本系统借助Huffman算法[4]实现了数据的压缩和解压缩。 + |& ]4 s5 x! w# {1 h
C% Z4 }# u3 O4 f* K字符是数据存储和传送的基本单位,计算机系统采用定长编码(如ASCII)表示字符。由于各字符的使用频率不同,因此,以定长码的方式存储和传送字符集往往会造成空间和时间的浪费。根据字符的使用频率进行不等长编码是解决空间和时间浪费的有效途径之一。用不等长编码压缩的原理是:以最短的二进制位串表示使用频率最高的字符,较长的二进制位串表示使用频率低的字符,从而使字符的平均码长缩短,数据的存储和传送量得以减少(压缩);解压缩过程与之相反,将二进制位串表示的“字符”按压缩的相反方向还原,即可得到原始编码的字符。
4 P! U* R7 x/ W" d
' O; E' x# D0 p# A3 p应用Huffman算法和Huffman树可以较好地完成借助不等长编码进行数据的压缩和解压缩工作。假设所需编码的字符集合D={d1,d2,……,dn},字符在D中出现的频率W={W1,W2,…,Wn},则对D中字符进行二进制编码的基本要求是:①数据编码总长最短;②若di不等于dj,则di的编码不应是dj的开始部分(前缀)。虽然编码时每个字符的码长可变,但译码仍是逐位进行的,故不需另加分隔符。这种编码方式称为前缀编码。
4 `, u7 g. b+ V; U! a# M. P& @" a1 d& E' r: ]( k
为使不等长编码转换成前缀编码,应将字符集中的每个字符作为叶结点生成1棵带权的编码二叉树(完全二叉树),其中的权即为该字符在对应数据中出现的频率。理论上,对于1棵带权二叉树,运用Huffman算法总可以获得最优二叉树(Huffman树),该树代表了最短的数据编码。因此,求解不等长编码问题转化成了构造Huffman树(di为结点,Wi为权值)问题。显然,在生成Huffman树之前要扫描一遍数据,以统计各字符的出现频率。
* m m( d7 n$ `& @: o- q: d; B' K$ V- O4 s2 F5 _ L
Huffman编码:以di为结点,Wi为权,构造最小WPL的二叉树,把每个结点同其左子树相连的边标上位0,同右子树相连的边标上位1,从根结点到每个叶结点路径上的位值连接起来的位串,即为该叶结点所代表字符的二进制编码。压缩时,对每个字符输出其在编码表中的二进制码。 & r7 {6 z- J& G; Z \, ?" ]
1 E! g4 T' m0 G3 A0 e3 q' z; ZHuffman译码:从Huffman树的根结点开始,用已压缩数据的二进制位串值(0或1)逐个与Huffman树上所标的位0、1相匹配,确定1条到达叶结点的路径,到达叶结点则译出1个字符,再回到根,从二进制串的下一位开始继续译码,直到译码结束。
/ I3 n$ b& `% j! d% j
8 C$ L2 `9 B, g1 z用上述原理编写的压缩程序对HsCAE3DRF远程系统传送的方案文件包的压缩率(压缩后长度/原长度×100%)达到50%以上,与WinZip、WinRar等软件压缩率相同。 , o8 X; c+ `) I7 N4 b
- p( R0 E3 Q% w' b/ e( a
5. 主从服务器
: v9 E! n2 z- B
5 c' n" e. w8 h" B5 j" d" w/ H注射模CAE远程应用系统面对的是大容量高密集的计算任务,随着客户并发提交的分析方案数增加,服务器硬件的开销会增大,整个系统的性能也会变差。为提高系统的运算和处理速度,降低服务器的资源开销,采用了面向连接、实时、多进程、多机同时运行的并发式主从服务器结构。 1 ]& i5 p" H& J1 g0 |- c
- g' |" Q( s3 ]3 X
主服务器负责网络系统通讯和数据库操作。当若干分析方案并发提交时,主服务器会按照一定的算法将分析任务合理地调度给多台从服务器。主服务器可以对所有正在运行的分析任务进行统一管理,挂起、恢复、终止或删除当前的分析任务。
9 q* x( L$ i1 @* v; Q+ q0 W# F' Y' {( |5 j
从服务器运行在不同机器上,负责处理数据量大、需要较长时间计算才能完成的方案分析工作。如果整个远程应用系统的负荷不重,则主服务器也可兼作方案分析服务器,以便充分利用现有计算机网络资源。
+ u8 ^7 v5 _3 i# e6 [8 t' n& O' R; _7 _/ a% H& E! R! x
运用多线程技术可以实现对多用户并发请求的支持[5]。在主服务器端,每接收1个客户请求,便会产生2个线程,1个线程处理客户请求,另1个线程侦听下1个客户请求。在从服务器端,每收到主服务器的1个通知,就会产生3个线程,1个线程处理通知,并创建1个对应的方案分析线程,第3个线程侦听下1个通知。这种多线程技术构成了形式上的并发处理。
8 S! T5 |5 b" d: y6 G
) E# d1 l* S, j* [6 b6 s客户机和服务器以及主从服务器之间的通讯采用Socket方式。WinSockAPI提供了使用Socket网络编程的基本函数[5]。为有效控制服务器死锁,本系统在数据接收和发送时采用了超时处理。
; @. O3 @/ E3 F {! t/ Q4 [6 ]2 w* D; w" E, }
6. RAS拨号功能
0 o9 a6 k( d- i
- Z3 N# m5 d/ @+ T9 G# k为了满足个别远程用户的需要,系统增设了RAS拨号功能。系统把提供RAS服务的NT服务器称为RAS服务器[6]。客户端可以借助自己的MODEM或其它通讯工具拨号进入RAS服务器,实现远程登录和远程数据访问。其中,客户端的远程连接是通过Windows9x/2000提供的动态连接库文件rasapi32.dll实现的,rasapi32.dll中与拨号相关的函数是RasDial()和RasHangUp()。 8 `+ p! E+ a( A. R5 K- q
5 f& T# n, Z1 }7 T
为简化用户操作,系统直接将远程连接的拨号功能嵌入在客户端程序内。此外,系统在RAS网络拨号服务器设置了一组静态IP地址集,供没有固定IP的用户自动捕获使用。
+ B* L1 Z2 a! e, z* }# W1 Y3 \$ H7 ]2 U4 {' ]
7. 系统流程 6 e- u; I! b: P9 {) \3 @" k
, V: i3 I: P9 c本系统投入运行后,因功能齐备和简便易用,而受用户欢迎。图2、图3分别为系统的客户端和服务器端应用界面。图4为本系统的典型流程。 V1 W; D4 f; R1 b8 S% S
8 Z/ a' \2 B+ E* Q4 B, B: X
理论和实践的结合上研究了注射模CAE系统的远程应用问题。通过对分析方案的压缩和解压缩,以及采用FTP文件服务,在一定程度上解决了网络传输效率问题;借助并发、面向连接、实时、多进程、多机同时运行的主从服务器结构,使整个系统性能得以较大幅度的提升;而ADO技术的采用,则进一步提高了数据库的读写效率,减少了系统资火火源占用。同时,为满足拨号用户的需要,在系统中嵌入了RAS远程拨号连接功能,并成功实现了IP地址的自动捕获。 |
|