发明内容
为了解决前面的需求,本发明提出了文档集中处理方法,它可解决文档处理中存在的诸多问题,易于扩展和维护;提高文档信息管理系统对文件处理的效率;保证了文件处理的安全性。
本发明采用的技术方案如下:
一种文档集中处理服务系统,其特征在于包括:
接收任务模块,接收处理业务请求并将合法的处理业务请求传递给业务分析模块;
业务分析模块和业务分析单元集合,共同构成处理业务请求的解析模块,业务分析模块分析处理业务请求中的任务单,过滤掉不支持的业务,将支持的业务转发给业务分析单元集合,业务分析单元解析处理业务请求,转化为文件处理任务,将文件处理任务返回给业务分析模块,业务分析模块将业务分析单元反馈的文件处理任务传递给任务存储模块,通知任务调度模块;
任务存储模块,将文件处理任务中的文件实体和文件处理单分解后存储到数据存储模块;
任务调度模块,接收业务分析模块的通知,安排任务处理单元集合响应处理操作;
任务处理单元集合,将相同的文件格式处理同质化,减少软件系统的冗余性,处理第三方软件异常情况,在任务处理失败时进行重试并保证任务正确执行,任务处理单元将处理结果信息传递给任务反馈模块;
任务反馈模块,按照反馈数据信息描述,将文件处理结果反馈给调用者。
系统监控模块,监控整个系统的进程。
所述业务分析模块支持多任务并发执行。
所述业务分析单元集合可以同时为多个不同的应用系统提供文档处理业务支持,支持动态扩展。
所述任务存储模块支持并发调用,能够在并发调用过程中,生成唯一的任务编号并进行正确的存储数据。
所述任务调度模块按照调度策略调用任务存储模块获得文档处理任务信息,并根据调度策略启动任务处理单元进行处理,能够响应处理失败、任务处理单元异常情况,任务调度模块的调度算法可以根据不同的应用服务器需求,配置不同的调度算法,以增强本系统的适应性和扩展性。
所述业务分析单元集合与任务处理单元集合之间的关系是多对一的关系,每个任务处理单元支持对某种文件格式的某种处理,各任务处理单元之间不存在功能交叉,任务处理单元可以通过配置进行扩展,任务处理单元可以并发运行多个实例,以实现系统的整体并行运算能力。
所述任务反馈模块支持并发运行,支持对反馈失败的任务进行重复反馈。
所述数据存储模块具有加密措施,具有临时文件自动清理功能,支持配置安全级别高的硬件设备。
一种文档集中处理方法,包括步骤:
1)调用者发出文档处理业务请求;
2)由接收任务模块接收处理业务请求,并将合法的处理业务请求传递给业务分析模块;
3)业务分析模块分析处理业务请求中的任务单,过滤掉不支持的业务,将支持的业务转发给业务分析单元集合,业务分析单元解析处理业务请求,转化为文件处理任务,将文件处理任务返回给业务分析模块,业务分析模块将业务分析单元反馈的文件处理任务传递给任务存储模块,并通知任务调度模块;
4)任务存储模块将文件处理任务中的文件实体和文件处理单分解后存储到数据存储模块;
5)任务调度模块接收业务分析模块的通知,安排任务处理单元集合响应处理操作;
6)任务处理单元集合将相同的文件格式处理同质化,处理第三方软件异常情况,在任务处理失败时进行重试并保证任务正确执行,将处理结果信息传递给任务反馈模块;
7)任务反馈模块按照反馈数据信息描述,将文件处理结果反馈给调用者。
所述步骤3)中,业务分析单元的分析过程就是将文档处理业务分解为任务处理单元能够
处理的任务数据过程,将业务对象转化为纯粹的文件处理对象。
本发明具有以下优点:
1.避免在客户端安装大量第三方软件;
2.提供了文件处理相关系统的安全性;
3.解决了由文件处理所带来的操作系统不兼容的问题;
4.高度抽象了软件系统的文件处理相关部分,易于扩展,利于系统维护。
具体实施方式
本发明提供一个集中的、具有可扩展的、支持任意文档的文档集中处理服务系统(DocProcessServer)及方法。
本发明的保护范围不限于以下实施例,而是覆盖了权利要求书和其等同的内容。
本实施例中涉及的系统处理对象包括:文件、文档、任务单、文件处理单。文件即为任意格式的电子文件,例如txt文件,doc文件,dwg文档,mp3文件等。文档为文件和相关说明信息的组合。任务单为文档对象对应的处理业务描述信息。文件处理单为文件对象对应的处理描述信息。
实施例:
本实施例给出了文档集中处理器与方法的设计框架和理论,以及实施过程。
图1是本发明的应用模式,包括档集中处理服务器、应用服务器、用户端。可以为多个应用系统提供文档处理业务。也可以单独作为文档集中处理服务器为用户提供文件处理服务。本文档集中处理服务器将文档管理系统(例如PDM系统)中的所有文档处理业务集中为一个系统,解决文档管理系统中繁多的文件操作业务,减少文件处理对客户端的要求,以适应多类型系统,减少客户端系统差异。
如图2所示,文档集中处理系统包括的模块和文档集中处理步骤如下:
接收任务模块201是本处理系统的对外服务接口,可以根据需要采用不同形式的服务接口技术。例如:COM接口、Servlet、Webservice等多种形式。接收任务模块201接收处理业务请求,处理业务请求包括被处理的文档和任务单。并将合法的处理业务请求传递给业务分析模块202。接收任务模块201作为服务需要支持并发调用。接收任务模块201在公布接口的同时,需要公布本系统服务功能种类。
业务分析模块202、业务分析单元1~n 203共同构成了处理业务请求的解析模块。
业务分析模块202,分析处理业务请求中的任务单,首先过滤掉不支持的业务。将支持的业务转发给特定的业务分析单元。业务分析单元203解析处理业务请求,转化为文件处理任务(包括文件和文件处理单)。并将文件处理任务返回给业务分析模块202。业务分析模块202支持多任务并发执行。
业务分析单元203的集合,构成本文档处理服务系统的服务集合。业务分析单元集合可以同时为多个不同的应用系统(例如PDM系统或OA系统)提供文档处理业务支持。此集合支持动态扩展,通过配置文件记录每个业务分析单元的属性实现。接收任务模块201,能够动态读取此集合的描述信息,实现过滤处理业务请求。203说明了本系统能够对某种文档处理业务支持,具体如何操作需要由207进行处理。即203是需要207的处理支持,具体内容后面给出说明。
业务分析模块202,将业务分析单元203反馈的文件处理任务传递给任务存储模块204,并通知任务调度模块206。
任务存储模块204,收到任务后,自动生成唯一的任务编号,并将文件处理任务中的文件实体和文件处理单分解后存储到数据存储205。任务存储模块204支持并发调用,能够在并发调用过程中,生成唯一的任务编号并进行正确的存储数据。
数据存储模块205,可以是各种数据库系统和文件系统,实现存储文件实体和任务描述。
任务调度模块206,是本系统的一个关键模块,影响系统整体的响应速度和系统整体运行效率。接收了业务分析模块202的通知,即要第一时间安排任务处理单元响应处理操作。任务调度模块206按照调度策略调用任务存储模块204获得文档处理任务信息,并根据调度策略启动任务处理单元进行处理。能够对处理失败、任务处理单元异常等情况响应,并保证任务正确执行。在调度算法上,可以根据具体的任务需求,采用有针对性的算法实现对任务的调度(例如FCFS、LRU、Round Robin等调度算法)。任务调度模块206的调度算法可以配置。这样能够根据不同的应用服务器需求,配置不同的调度算法。增强本系统的适应性和扩展性。
任务处理单元207整个集合,构成了整个文档处理服务系统的处理能力集合,为业务分析模块提供文件处理功能支持。203的分析过程就是将文档处理业务分解为任务处理单元能够处理的任务数据过程,将业务对象转化为纯粹的文件处理对象。203与207之间的关系是多对一的关系。每个任务处理单元,支持对某种文件格式的某种处理。在软件重用角度考虑,各个任务处理单元之间不存在功能交叉。为了使整个系统框架易于扩展,每个任务处理单元在升级过程中要兼容旧功能。任务处理单元可以通过配置进行扩展。任务处理单元207等可以并发运行多个实例,以实现系统的整体并行运算能力。任务处理单元207等每个处理单元将相同的文件格式处理同质化,减少软件系统的冗余性。任务处理单元207等能够处理第三方软件等异常情况,在任务处理失败时能够进行重试并保证任务正确执行。
任务处理单元207按照任务描述信息正确地执行处理操作后(或者无法完成处理、结果为处理失败)。将处理结果信息传递给任务反馈模块208。
任务反馈模块208,接收到了反馈通知后,按照反馈数据信息描述,将文件处理结果反馈给调用者。任务反馈模块208,支持并发运行。任务反馈模块208,支持对反馈失败的任务进行重复反馈。
任务反馈模块208,完成了正确的反馈后,标志着整个文档业务处理过程的结束。
本发明在保证系统整体稳定性方面,增加了一个系统监控模块209。实现了对整个系统进程的监控,如果某进程异常退出,或者运作状态不稳定,监控程序能够对此进程进行有效的处置。
本发明的系统在实施过程中为保证系统整体安全性,数据存储模块205具有加密措施,具有临时文件自动清理功能。支持配置安全级别高的硬件设备。
本发明系统的实现不受软件开发语言限制,具体如下:
业务接收模块201,可以是任意的软件接口形式。
系统监控模块209,可以省略。
业务分析模块202及203可以省略。
任务调度模块206,可以采用任何调度算法。
任务存储模块204可以由任意形式的软件子系统、任意形式的组件、类库、代码等任意软件形式完成。
6.数据存储模块205可以是任意的数据存储模式,文件,数据库等。
应用实例:图3
下面以一个具体的文档集中处理系统为例说明具体实施过程。如图3所示,本文档集中处理系统作为PDM系统的一个子系统,提供了PDM系统中所有文件处理业务。本实例处理对象为:文件(File)、文件处理单。业务分析模块在PDM系统中实现,本系统实现文件处理。由于本实例支持的文件是基于Windows的软件生成的,于是本实例运行于Windows操作系统。
本实例在结构上主要包括:文档集中处理器前台301,是一个Java Web应用;任务池302,是一个的EXE形式的COM服务程序;Access数据库303,存储任务数据;本地文件304,存储实体文件;任务处理工厂305,实现了任务调度和文件处理;管理进程306,对前台应用和任务处理工厂进行监控。从总体结构上看是Java应用提供网络接口负责接收和反馈任务,应用程序发挥本地优势负责完成文件处理任务。
文档集中处理器前台301,是由Java语言开发的一个Web应用,部署在Tomcat应用服务器上,提供了如下JavaServlet接口:
1.TaskRecvServlet接口,实现了任务接收。本接口有表单参数有文件处理类型(例如签署、提取)、文件类型(例如doc,xls)等,同时会传递被处理的实体文件和任务单(xml)。
2.QueryStatusServlet接口,实现了系统状态查询。本接口无参数。只是反馈能够提供文件处理类型的任务处理列表。通过此接口也可以查看服务系统是否可以使用。
3.CallBackFileServlet接口,本接口与前面两个不同,不是开放给外部系统的,而是开放给本系统组件的,用于反馈处理结果。
本系统采用了异步实现模式,即TaskRecvServlet接口只是实现任务的接收。而任务的反馈由反馈接口去实现反馈,这样的好处是避免接收任务接口被长时间的处理过程限制死。
文档集中处理器前台301在实现过程中,通过JNI的方式访问本地的DLL组件存储任务、查询系统状态、反馈任务。
TaskRecvServlet接口在工作时,通过对Servlet的请求参数解析,并下载文件存储到本地,然后调用D11将任务存储在任务池302中,并发送消息给任务处理工厂305。
任务池302,是一个EXE形式的COM服务程序。任务池302将涉及任务数据的存储、访问等操作进行了封装提供了标准的COM接口,实现了软件整体的模块化。EXE形式的COM服务程序主要是保证能够并发为多个进程所调用,同时能够保证唯一的运行实例,在调用进程个数为0时,自动退出。任务池具有的接口有:
1.添加新任务。生成唯一的任务ID,将任务相关文件存储到本地文件304临时缓存区,并将任务数据存储到Access数据库303中。
2.删除任务数据。当任务处理完成,需要清除本地缓存的任务实体文件和Access数据库中的任务数据。
3.变更任务状态。任务在整个处理过程中,包括多种状态的转换:新建、处理中、处理成功、处理失败、反馈中、反馈成功、反馈失败。此接口实现了任务状态的变迁。
4.获取任务接口。此接口根据参数反馈一定数量的任务。
5.获得任务数量。此接口能够根据参数类型,反馈任务池的当前某种任务数量。
Access数据库303,作为任务存储的数据库,在Windows系统下,简化了安装和移植,因为数据量小,能够适应所有业务需求。
本地文件304,作为任务实体文件临时存储。
任务处理工厂305,是一个EXE应用程序。包括的子模块有:工厂主线程,负责启动关闭工厂,显示本地日志,配置文件处理工种,任务消息接收。工人控制模块,主要是获取任务,根据不同的任务启动对应工种的工人进行任务处理。文档操作工种,是一种DLL插件完成了一种文档的处理过程,本身不能启动运行,要依附于工厂进程进行执行。
工人控制模块,实现了对任务调度的算法,一般任务每个任务都是平等的,于是采用先进先出算法。在先进先出基础上,对任务优先级分三类:高、中、低。
对于文档处理任务是实时性的,需要即刻响应,设置优先级高。对于高优先级的任务序列,按照先进先出的算法进行执行。调度模块,根据配置启动尽可能多的处理线程去执行任务,保证任务的快速反馈。
对于处理业务时间比较长,比较费时间的任务,因为会占用系统的开销,会影响其他任务的执行效率,设置优先级为中。一般设置在系统空闲的时候执行,当执行过程中有高级任务到来,会停止此任务执行,在系统空闲后执行。
对于处理业务上对时效要求比较低的,优先级设置为低。系统将其设置为最后执行,即在系统空闲的时候,尤其可以配置为非工作时间进行(例如在晚上自动启动执行)。
在任务处理工厂305中的文档操作工种,是本系统的可以动态配置部分。相对于实施例一中的任务处理单元1~n和反馈模块的综合。
在任务处理工厂305中,工厂进程内部会对任务的处理过程进行日志记录,同时工种插件也会将文件的处理过程进行记录日志。
在任务处理工厂305中,在收到了文件处理工人反馈执行结果后,会调用任务池302清除缓存。
管理进程306,是本系统中的监控模块,监控文档集中处理器前台301,是否有响应。如果没有响应,会分析原因后,自动重启服务,保证系统整体运行。同时也会监控工厂305,保证系统能够及时的进行任务处理。