陈俞强 郭剑岚
东莞职业技术学院计算机工程系 广东 523808
传统的传真营销受到很多因素的限制,比如需要传统电信线路、传真机自身设备以及传真纸等消耗器材的支持,而网络传真则完全可以避免因为这些因素变化而产生的影响。当营销人员急于给大量客户发传真时,可能传真号码资源是有限的。而当客户回传回执时,也可能因为两个原因造成麻烦:一是可能会占线,二是可能会缺乏传真纸。另外,由于传真机寿命的限制,随着使用会消耗传真机本身维修费用。如果通过传统传真机给客户发送传真,还会受到内容的调整所造成的影响。营销人员发给每一位客户的传真资料可能都需要调整内容,以提供个性化服务。但传统传真的做法是需要在电脑上修改,修改完毕后打印出来,然后发给客户。而网络传真只要在电脑上修改后直接发送给客户就可以了,节省了很多时间。
.NET Framework是支持生成和运行下一代应用程序和XML Web Services的内部Windows 组件,它是面向XML Web服务的平台。Microsoft.NET扩展了通过任何设备随时随地操作数据和进行通讯的能力。.NET 使用分布式计算模型并基于开放标准(如XML)将PC与其他智能设备连接在一起。.NET Framework具有两个主要组件:公共语言运行库和.NET Framework类库。公共语言运行库是.NET Framework的基础。.NET Framework的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面(GUI)应用程序,也包括基于ASP.NET所提供的最新创新的应用程序(如Web窗体和XML Web Services)。
网络传真服务系统主要由传真服务器、传真卡、传真服务器软件、数据库、客户机、邮件服务器和PSTN网等组成。网络传真服务系统组网图(如图1所示)。
图1 网络传真服务系统组网图
用户利用IE浏览器经互联网利用TCP/IP协议连接到传真服务器,传真服务器构建在Windows 2003 server上,Web服务器利用Windows自带的IIS,数据库为与操作系统和IIS完美整合的SQL Server 2005。传真服务器程序根据系统功能而模块化,传真服务系统由传真卡连接到PSTN电话网络执行传真操作,整个传真服务系统构建在.NET平台之上。通过系统需求分析得到系统架构图(如图2所示)。
图2 网络传真服务系统架构图
系统中的角色主要包括:会员用户、系统管理人员、收件者,系统的用例包括:会员注册、会员设置、在线充值、文件转换、传真发送、传真记录管理、传真接收、计费、回执、传真状态监控、用户基本信息管理、权限管理和系统维护。系统管理员通过用户基本信息、传真记录管理客户的信息资料,系统管理员还具有权限管理及后台维护功能,并且可以对传真状态进行监控。此外,用户注册后,可以对其账户在线充值,之后就可以使用系统提供的各项传真服务。
从上分析得出,本系统的功能模块包括会员注册、会员设置、在线充值、文件转换、传真发送、传真记录管理、传真接收、计费、回执、传真状态监控和系统管理。功能模块图(如3所示)。
图3 网络传真服务系统功能模块图
系统的各个功能模块的详细功能描述如下:
(1)会员注册:会员注册模块提供会员账户注册的机制。会员须提供账户密码和个人用户资料,系统保存用户个人资料和账户密码。
(2)系统管理:系统管理模块执行会员管理,系统内部维护等功能。系统管理员具有最高权限,包括管理系统硬件资源的设置,增加和删除系统的用户,分配他们的使用权限,定义使用时间段。
① 系统硬件资源设置:包括传真速率的设置和传真通道的设置。
② 定制外线通道的呼入、呼出功能。
③ 传真客户资源的管理:负责管理对传真用户的建立以及删除,记录用户的相关信息,这些信息必须与用户的传真信息相对应。
(3)会员设置:会员设置模块验证通过的会员可以设置接收联系人和联系电话,设置自己的接收传真邮箱地址。
(4)会员充值:会员可以为账户充值,用网上银行来进行充值操作。
(5)文件转换:由于用户提交的电子文件格式多种多样,为实现传真的发送,必须进行文件格式的转换。系统对一般常用文件如txt、pdf、gif、tif、jpg和windows办公文件doc、xls、ppt等执行格式转化,转化为传真卡能识别的tif格式。
(6)传真发送:传真发送模块负责传真的发送,包括以下几个方面的功能:
① 多路发送传真,可同时向多个用户发送传真,并可灵活扩展。
② 定时发送,用户可以自由选择发送时间。
③ 自动重发,在发传真的过程中,如遇到对方传真占线无法拨通,系统自动重拨。
④ 群发传真,将相同内容的传真文件通过一次发送动作发给多个收件人。
⑤ 信息通知,传真发送错误后,及时向用户反馈错误信息,如对方号码错误、线路忙等信息。
(7)传真记录管理:所有传真均以电子文件的形式存储在服务器上,便于管理和归档。系统及时自动的保存用户的传真记录,查看、保存、修改、删除历史传真记录和传真文件,并可按时间段定时备份。
(8)接收传真:自动将用户收到的传真文件以附件的形式发送到用户设置的邮箱。
(9)计费:收发传真按规定计费。
(10)回执:执行传真任务后,将其结果返回到用户邮箱。
(11)传真状态监控:系统提供传真收发过程的监视,包括任务列表的显示,以及日志查看,给用户提供全面的状态监视,包括以下三个方面的内容:
①传真卡外线通道的监控;②卡上传真通道的监控;③待发传真的列表监控。
本系统模块设计原则是系统每个功能模块独立实现特定的功能,各个模块可相互调用,但是又必须是弱耦合的。各个模块的后台程序引用该模块下的类库,各模块之间的调用则由不同功能的类库引用来完成。
本系统使用C#语言来开发各个模块,另外传真卡是PSTN与Internet的桥梁,系统程序中是利用.NET框架提供的库函数来实现传真卡驱动程序包,通过PSTN实现与传真机之间的低级通讯,系统间接的利用传真接口卡的API接口来获得低级通讯服务,连接传真卡发送和接收传真。
在使用C#实现系统程序中,采用多线程技术来控制多个传真任务的并发操作。系统主进程中包含了以下线程:
(1)主线程:主要完成系统初始化,同时还负责创建系统需要的所有子线程,并实现与用户的交互。
(2)SMTP线程:负责系统邮件的发送,该线程周期性的检查输入队列,如有来自远程传真机的传真信息,则用MIME编码把该tiff文件封装起来,通过SMTP协议将其以邮件的方式发送给用户。
(3)上传文件提取线程:负责用户上传到系统的传真文件的提取,该线程周期性的检查来自用户的传真信息。如果发现上传的传真文件,则将其加入输出队列,其后的操作由传真发送线程来完成。
(4)发送传真线程:负责传真的发送,其中又可包括多个子线程来执行群发。
(5)接收传真线程:负责传真的接收,该线程周期性的检查发给系统或用户的传真信息。如果发现有发来的传真文件,则将其加入输入队列,其后的操作由SMTP线程来完成。
本文分别从硬件应用、系统架构、功能模块等方面进行了设计说明。文中给出了整个系统的架构图,系统程序设计原则是系统每个功能模块可独立的实现特定的功能,各个模块可相互调用,但是又必须是弱耦合的,从而实现系统设计。系统通过使用文件格式转换和在线支付等技术方法,充分的实现了办公自动化,降低了成本,提高了工作人员的工作效率。
[1]张顺颐.传真通信技术基础.北京:电子工业出版社.1994.
[2]彭爱国,李建华.计算机传真中串行通信的研究与实现.计算机工程.1999.
[3]温锦山,唐柱鹏.Delphi串口及语音传真高级编程.北京航空航天大学出版社.2002.
[4]游明星,刘立柱.基于Internet现状的IP传真设计探讨.电讯技术.2001.
[5]谢拥军.利用传真机实现计算机通信,重庆邮电学院学报.1998.
[6]王白星.PC传真.计算机知识.1998.
[7]Frank Potocnik.Brooktrout Technology and Real-Time Fax Over IP.USA: Brooktr out Inc.2004.
[8]Intel Corporation Telecommunication and Embedded Group,Fax Software Reference for Windows,Intel Corporation Telecommunication and Embedded Group,Parsippany.2002.