大规模地震数据处理私有云环境下的网络打印系统的制作方法

文档序号:6374501阅读:210来源:国知局
专利名称:大规模地震数据处理私有云环境下的网络打印系统的制作方法
技术领域
本发明属于网络打印技术领域,具体涉及一种大规模地震数据处理私有云环境下的网络打印系统。
背景技术
为了方便网上用户轻松完成远程打印任务,于是有了网络打印。凡用户能利用网络进行共享打印的方式,都可叫网络打印,网络打印按其技术特点可分为以下三类第一类原始共享的连接方式。打印机通过普通并行接口,或串行接口连接在网络上的一台工作站、客户机或服务器上。连接打印机的工作站或服务器将所连接的打印机设置成共享设备,供网络上的其他计算机使用。
第二类也是通过先把打印机和一台计算机或者工作台相连接,与原始共享连接方式不同的是,连接打印机的计算机通常安装了 NPMS (网络打印管理系统),专门用作打印服务器,可以对打印机、打印任务等进行一定的管理。这种连接方式在逻辑上可以将打印服务器和打印机看成一个整体,即作为一个连接在网络上的独立设备。第三类网络直接连接方式(亦称为使用专用打印服务器方式,采用专用打印服务器,又称为独立打印服务器,是一种使打印机和局域网直接联通的电子装置,而不是一台微机,分为内置式和外置式两种。现在在地质勘探领域,对于收集到的地震数据大小都是以G甚至以T为单位来衡量的。这些数据的处理都是在一个集群系统中,由很多计算机节点分别并行处理的。在这种环境中每台计算机对地震数据的频繁的打印要求不得不依赖于网络打印。本发明涉及的网络打印系统是运用在处理大量地震数据的企业中,该企业在一个局域网中部署了很多计算机和服务器,而且这些计算机完成的任务相对单一,故组成了一个私有云环境。私有云是企业或组织机构根据自身评估构建和使用的内部数据中心专用云环境。通常构建在企业内部防火墙之内,不对外开放,企业IT人员能够对其数据、安全性、服务质量进行有效控制。鉴于公有云信任和遗留等方面的不足,私有云受到许多大中型企业的青睐。目前已建设成功的私有云案例如采用IBM Blue Cloud技术的中化云计算中心和采用Cisco UCS技术的Tutor Perini云计算中心。第一种共享的方式实现网络打印不能满足特殊的管理需求,功能单一,不能完成对打印作业的合理分配和实时的监控,也没有具体的打印日志记录。针对非网络打印机实现网络打印,那么只能选择第二种方式实现网络打印,对于现有的redhat版本的网络打印系统有很成熟的CUPSm (Common Unix Printing System, UNIX通用打印系统)。是一个类Unix操作系统的组合式印刷系统,允许一台电脑作为打印服务器。CUPS接受一个客户端的电脑进程,并送到相应的打印机。但是该打印机加上CUPS系统也不能完全满足打印管理需求,一是打印的参数配置相对复杂,需要对CUPS进行深入的解剖和相应的复杂编程实现,二是已有的网络打印系统虽然可以完成打印,但是在处理大数据量地震数据的私有云环境中,完全没有利用到私有云带来的高效性和易管理性的特点,最后是没有专门针对处理大数据量地震数据的网络打印系统,所以只有另外设计出符合该打印环境的网络打印系统。为便于理解本发明,在此先介绍与本发明相关的现有技术如下网络打印与共享打印最大的不同是它具有管理性,易用性和高可靠性,其中最核心的是可管理性。在一个大企业打印工作中,员工分散在各个办公地点,对打印机所处的状态并不清楚,也许打印机暂时不能工作,硒鼓或打印纸用尽,而员工却浑然不知,依然浪费时间进行不可能的打印。对打印机设置更改只能通过所在服务器才可以完成,这样的打印系统根本无法提供网络打印的可管理性。因此,就需要通过某一个软件来实现,网络打印管理软件(Network Printing Management Software,简称NPMS)应运而生,它也是网络打印的核心之一,像一个神经系统支配着网络打印的运行。第一代的BSD Lro打印系统,BSD打印系统核心的功能仅限于队列任务。它由一个后台程序(Ipd)及一些位于/etc目录下的配置文件组成,在这些配置文件中有着队列和属性的一些定义。在相应的目录下,还有一系列基本的用于提交、删除和处理任务使用的命令(lpd、lprm、lpc)。 第二个使用较广、较有影响力的基于BSD的打印系统是LPRngte](LPR NextGeneration),它保留了 printcap文件的格式,但是它还引入了一些新的属性以使配置过程更加灵活。过滤器定义可以被独立出来,并且还可以定义真正的I/O过滤器。用户也可以通过在本地机主目录下编写printcap文件来定义自己的队列。第三个是CUPS软件为Unix/Linux用户提供了以有效而可靠的方式来管理打印的方法。它生来就支持IPP (因特网打印协议),IPP协议的四个主要目的是1、帮助用户寻找网络上可用的打印机。2、传送打印作业。3、传送打印机状态信息。4、取消打印作业。并有LPD> SMB (服务器消息块,例如与Microsoft Windows连接的打印机)和JetDirect接口。网络打印管理需要提供的服务有管理者可对不同的使用者权限和使用量进行管理;需要实现诸如对局域网中的打印机提供全方位的监控、管理和计费,记录所有用户的打印活动,有保存打印内容的功能;提供多种条件的查询,在多台打印机下,管理者可以很清楚地知道每台打印机的使用情形,有效地控制管理打印流量;提供丰富的报表,从费用成本、打印机负荷等方面全面分析打印资源;组级管理,按照网络设备的特性进行分组管理,组级管理的摹本单元就是设备组,所谓的设备组可以由打印机、扫描仪、网络存储或其它网络共享设备组成。在云计算环境下,云处理计算平台以底层服务的方式向用户提供服务。针对大数据量的地震数据处理,参考云计算架构,结合私有云环境的特点,现有的适应私有云环境的作业处理集群系统架构一般从上到下分为客户端层、平台层和架构层。最上层为客户端客户端采用基于图形用户界面的友好用户模式,用户可通过用户界面创建、提交作业,同时也可以监控作业运行状态和查看作业日志文件。中间层为平台层主要提供服务部署、计算节点资源管理;作业队列管理、作业调度机制、作业执行控制引擎;统一的进程间通信机制、作业容错机制;业务模块开发工具
坐寸ο最底层为基础架构层主要提供软硬件资源虚拟化、高速以太网等。私有云的数据存储管理技术云计算的特点是对分布的、海量的数据存储、读取后进行大量的处理、分析,向用户提供高效的服务,云计算的特点要求云数据管理技术必须能够高效地管理大数据集。鉴于云计算中数据的读操作频率远远大于数据的更新频率特性,云数据管理通常采用数据库领域中的列存储的数据管理模式,将表按列进行划分后存储。现行的云数据管理技术最著名的是Google提出的BigTable技术。但是私有云由于用户数量比较少,处理的任务也单一,没有必要使用一个大型的分布式管理数据库对用户和文件进行细分和管理。所以在私有云环境中管理一个能够存储相关基本信息的数据库就可以了。私有云作业执行控制系统它运行在计算节点上,主要负责作业执行程序的启动、作业执行程序的控制执行。同时在执行任务的过程中实时的保持把信息反馈给服务器、客户机或者是数据库中。私有云服务调度系统主要是解析作业的相关信息,获得作业的服务类型,根据类型查看能够提供该服务的私有云环境中空闲的节点,使用一定的调度算法为作业分配合理的节点,然后发送作业给相关节点,并且发送启动运行命令给节点。最后要根据作业运行的各个逻辑流程完成各个模块的协调。

发明内容
为了克服现有技术的上述缺点,本发明提供了一种大规模地震数据处理私有云环境下的网络打印系统,在现有的企业内部的处理大规模地震数据的私有云环境下,搭建网络打印系统,能够根据地震数据组织方式和用户选择,分剖面生成可被打印机直接打印的数据文件;能够实现打印中停止打印,重新打印等实时交互功能;能够实现客户对打印中作业信息、日志信息查看和管理的功能;能够利用消息中间件实现打印进程间通信的功能;能够在私有云环境中传输打印数据文件达到IOM每秒的速度;能够对打印作业队列进行优先级等管理;能够实时查看打印机状态和实现智能调度打印任务的功能;能够提供线程池技术,解决并行处理客户打印作业的请求,提高打印效率的问题;能够提供数据库存储作业信息和其他相关信息,并可以查看管理的功能。本发明解决其技术问题所采用的技术方案是一种大规模地震数据处理私有云环境下的网络打印系统,包括数据库和分别与数据库进行通信的打印客户端节点、打印服务器节点和打印节点,所述数据库用于存储与打印相关的信息,包括打印作业信息,打印日志信息,打印节点及其打印机的相关信息;打印客户端节点实现打印作业的生成和对打印作业的监控管理打印作业的生成是指生成能被打印机识别并打印的光栅文件;对打印作业的监控管理包括打印作业管理和作业相关信息管理,其中打印作业管理包括暂停正在打印的作业、继续打印已经暂停打印的作业、停止需要打印的作业、重新打印已经停止打印的作业、取消并删除打印作业、启动并打印作业;作业相关信息管理包括查看和修改打印作业信息、查看和修改打印节点及其打印机的相关信息、删除没有必要或者陈旧的打印日志信息、导出打印相关信息以在关键的打印事件中备案;打印服务器节点实现打印作业的解析和调度在打印服务器节点运行着打印作业 服务器和打印作业调度器,其中打印作业服务器在收到客户端发送的作业请求服务后,为该作业分配一个作业ID号,将该作业加入到作业管理队列中,然后对打印请求进行解析,在解析到打印作业的各项参数之后就向打印作业调度器发送调度请求;打印作业调度器负责查看数据库中已经登记的具有打印功能的打印节点并反馈给打印作业服务器;打印作业服务器根据打印作业调度器反馈的信息向打印客户端节点反馈,同时向数据库更新打印的状态信息;在打印期间,打印作业服务器还通过中间的控制功能转发打印客户端节点到打印节点之间的打印管理命令;打印作业服务器还负责管理打印节点的节点队列;打印节点执行打印打印节点的守护进程接收来自打印客户端节点的打印作业运行请求消息的时候,解析该请求并做好打印准备;然后启动作业的接收线程对打印数据文件进行接收;接收完成之后,根据解析出的打印参数设置好打印机,然后开始打印作业;同时向打印作业服务器反馈打印情况,以供打印作业服务器向打印客户端节点的及时反馈和向数据库进行更新;其次随着打印进度的进行,通过心跳包发送和检查点文件记录打印状态确保打印的正常进行以及出错处理;最后等待执行与打印客户端节点的打印管理命令交互;打印客户端节点、打印服务器节点、打印节点和数据库之间的通信在打印客户端节点、打印服务器节点和打印节点上都运行着守护进程,用于底层通信支持、消息创建和解 析及启动打印作业执行;打印客户端节点、打印服务器节点、打印节点和数据库之间的通信都是通过底层完成的。所述打印作业信息存储了作业的基本属性,包括上传打印作业的用户、打印作业所选择的打印机、分别在哪些节点运行打印;所述打印日志信息记录了作业在执行打印的整个流程中发生的事情,包括何时开始打印,在整个打印过程中是否选择了暂停、停止打印命令,何时结束打印或者打印失败及失败原因;所述打印节点及其打印机的相关信息是通过打印节点向服务器节点登记的时候记录下来的信息,包括与每个打印节点连接的各台打印机的名称和状态。所述光栅文件的生成机制是指以剖面为单位对三维体数据进行划分,根据地震数据组织的特点获取其剖面号,按剖面号顺序重新组成子作业,然后分别对每一子作业进行光栅文件的生成。为了实现打印作业对于优先级不同的需求,还可使用具有不同元素的数组来对应不同的优先级,数组中每个元素作为相应优先级链表的链表头。打印作业服务器对节点队列的管理方式如下采用心跳包探测的方式进行打印节点的有效性检测,当作业正常运行的时候,通过心跳包获取打印节点的状态信息直至打印任务成功完成;当打印节点出现异常,将该节点上正在运行的作业状态更改为未完成,同时启动二次调度打印作业服务器通知打印作业调度器,打印作业调度器获取新的可用节点作为打印节点,并向新的打印节点发送打印请求;打印节点通过对检查点文件的解析获得打印任务进行打印,同时保持与打印作业服务器的心跳包联系直至打印成功。所述打印作业服务器使用线程池模型当收到客户端某用户请求消息的时候,启动线程池管理类,如果有空闲线程则分配一个线程给该用户,以处理该用户的请求;如果没有空闲线程且超过了已经创建的线程,则扩大线程池线程的数量,以供更多用户请求的响应;当线程池空闲线程长期过多则启动销毁线程功能,让线程数量恢复到与用户需求相一致的数量。。与现有技术相比,本发明的积极效果是充分利用了私有云的环境,使网络打印更快捷、高效、易管理。具体表现如下(I)利用私有云中央服务节点处理打印任务,用户只需要提交打印作业,服务器节点的调度器通过对打印机状态信息的获取,找到空闲或者是打印队列少的打印机作为目标打印机,可以使得网络打印任务能够及时被打印机响应,使得打印变得方便快捷,同时能够达到各打印节点负载均衡的效果。(2)在服务器节点使用线程池技术,可以快速响应不同客户的打印请求,同时能够把打印任务分配给多个打印机处理,实现了并行处理,使得打印变得高效。(3)利用私有云的通信和进程间消息传递技术,能够方便打印节点获得、解析和执行打印请求指令和能够在私有云环境中快 速地传送大数据量的地震数据文件,这也体现出高效性。(4)利用数据库技术,能够方便对打印作业的信息日志管理,也方便服务器对各个打印节点的实时监控以及发出正确的调度指令,同时客户机对作业的打印管理命令通过服务器解析后转发到打印机可以同时操作一个批次的作业,由此体现了打印任务的易管理性。


本发明将通过例子并参照附图的方式说明,其中图I为本发明的系统框架示意图;图2为本发明的数据库搜索流程图;图3为作业正常运行时的调度策略示意图;图4为二次调度策略示意图;图5为线程池工作流程不意图;图6为大文件传送流程示意图。
具体实施例方式一种大规模地震数据处理私有云环境下的网络打印系统,如图I所示包括数据库和分别与数据库进行通信的打印客户端节点、打印服务器节点和打印节点。在私有云的环境中,任何一个有打印任务的节点均称为打印客户端节点;打印服务器节点是指运行着并行打印控制进程的私有云服务器节点,包括打印作业服务器和打印作业调度器;打印节点是指连接有打印机的节点,每个打印节点上可以同时连接有多台打印机。所涉及内容详细介绍如下一、数据库数据库提供存储打印相关信息,包括打印作业信息,打印日志信息,打印节点及其打印机的相关信息。三种信息支撑了数据库中的三种表。打印作业信息存储了作业的基本属性,包括上传打印作业的用户,作业打印所选择的打印机,分别在哪些节点运行打印等。打印日志信息记录了作业在执行打印的整个流程中发生的事情,包括什么时候开始打印,在整个打印过程中是否选择了暂停、停止等打印命令,什么时候结束打印或者是打印失败及其原因等。打印节点及其打印机的相关信息是通过打印节点向服务器登记的时候记录下来的。打印节点需要向服务器节点登记自己有哪些打印机,打印机的名称和状态。这样才能方便服务器节点正确选择和分配任务给能够打印的打印节点。该类信息保存在数据库中是方便客户查询并作出相应的作业管理,所以数据库会提供查询的功能。对于作业信息的查询功能包括四个关键字创建时间、所属用户、作业名称和所分配的打印机名。时间和后面的三个关键字可以形成复用形式,后面三个关键字只能选择其一,这样方便客户更准确的进行查询。数据库搜索流程图如图2所示依次判断每个关键字是否被选择后做好标志,最后送入数据库的查询语言进行处理,最后把得到的结果反馈给查询者。二、打印客户端节点实现打印作业的生成和对打印作业的监控管理首先创建可以被打印机直接处理的数据文件;然后开始请求打印,向打印作业服务器提交打印请求;然后根据打印作业服务器反馈的打印节点信息发送打印数据文件到目的打印节点进行打印;最后向数据库中登记包括作业名称、创建时间、用户等信息;同时对打印作业进行监控管理。打印客户端节点提供打印作业的生成和监控管理功能,主要为用户提供直观、易 操作、友好的打印作业生成界面,以及提供在打印过程中对打印作业的状态信息的查看功能和对打印任务的管理功能。在私有云环境中,主要是处理大数据量的地震数据,一般数据量都达到了 G级别,也会常常遇到T级别的大数据。要实现这么大数据的打印工作,首先就是要实现打印作业的生成,生成可以直接被打印机识别并打印的光栅文件(以O和I区分的黑白位图)。对于光栅文件的生成还有一个作业生成机制。地震数据的组织方式是以道号存储的,而且分为二维和三维数据,对于比较大的三维体数据的打印,会自动征得客户的意见进行分剖面打印,即会以剖面为单位进行划分,根据地震数据组织的特点获取其剖面号,按顺序重新组成子作业,然后分别进行光栅文件的生成。文件生成之后就会发送打印请求消息给打印作业服务器。光栅文件的作业生成机制所起的作用是为了使一份作业能够同时在多台打印机上面并行地打印,提高打印的效率。打印的纸质成果图也可以轻松的通过作业编号重新组织成原图。在企业的日常管理中,管理员可以从任何一台网内的计算机上远程管理打印服务器、打印机、打印作业文档和其它相关信息。网络打印系统的主要监控管理任务包括打印作业管理和作业相关信息管理两方面,其中打印作业管理包括暂停正在打印的作业、继续打印已经暂停打印的作业、停止需要打印的作业(使该作业状态为等待打印)、重新打印已经停止打印的作业、取消并删除打印作业、启动并打印作业。作业相关信息管理包括查看和修改打印作业信息、查看和修改打印节点及打印机信息、删除没有必要或者陈旧的打印日志信息、导出打印相关信息以在关键的打印事件中备案。这些监控管理都是基于消息通信模块和数据库模块完成的。打印作业的管理是通过发送命令消息到打印作业服务器,打印作业服务器转发给打印节点,打印节点解析之后控制打印机完成的。作业相关信息的管理是通过直接访问数据库,形式是查看相关信息并对数据库里的该信息进行查看、删除等操作。三、打印服务器节点实现打印作业的解析和调度在打印服务器节点运行着打印作业服务器和打印作业调度器,其工作流程是打印作业服务器接收打印客户端节点发出的打印请求信息,对打印请求进行解析,解析到打印作业的各项参数之后就向打印作业调度器发送调度请求;打印作业调度器负责查看数据库中已经登记的具有打印功能的打印节点并反馈给打印作业服务器,打印作业服务器根据打印作业调度器反馈的信息向打印客户端节点反馈,同时向数据库更新打印的状态信息;在打印期间,打印作业服务器还通过中间的控制功能转发打印客户端节点到打印节点之间的打印管理命令,以实现打印客户端节点对打印作业的管理(包括停止打印、重新打印、取消打印等)。打印作业服务器在收到客户端发送的作业请求服务后,为该作业分配一个作业ID号,将该作业加入到作业管理队列中,为了实现对于优先级不同的需求,还可使用具有不同元素的数组来对应不同的优先级。数组中每个元素作为相应优先级链表的链表头。然后解析作业需要执行的任务,如果是启动打印任务就把解析到的相应参数发送给打印作业调度器处理,同时记录作业的相关属性信息到作业写入数据库,如作业ID号、作业文件名、提交用户、提交时间等。
打印作业调度器获取命令之后,会查看私有云环境中空闲可用的打印机,如果打印机都在忙,则优化选择打印作业队列较少的打印机,反馈给服务器。获取打印机状态信息是从数据库中读取,该信息是打印节点对打印机状态向数据库的实时登记。对于一个三维体数据抽其中多个剖面打印的问题和批量打印多份地震数据的问题,打印作业调度器会通过服务器向客户征求打印策略,此时可以调用多台打印机同时打印该作业。打印作业调度器选择好了打印机之后就向服务器反馈,服务器通知打印客户机,打印客户机就向连结有打印机的打印节点发送打印命令和打印的地震数据文件。打印作业服务器除了管理作业的作业队列外,还要管理打印节点的节点队列,节点队列记录了当前系统中的所有可用节点列表以及当前各节点状态。打印作业服务器对打印节点的有效性检测采用心跳包探测的方式,当探测到节点故障时,将该节点上正在运行的作业状态更改为未完成,打印作业服务器通知打印作业调度器,打印作业调度器采用二次调度的方式调度到其他正常打印节点,然后根据作业检查点文件继续运行。检查点文件作用是记录打印节点中打印机打印的作业内容,进度和状态,以方便另外的打印机重新打印该作业并设置对应的参数。作业正常运行和二次调度策略分别如图3、图4所示。作业正常运行的时候,通过心跳包获取打印节点的状态信息直至打印任务成功完成。如果发现打印节点出现异常,则启动二次调度。打印作业调度器获取新的可用节点作为打印节点,并发送打印请求。打印节点通过对检查点文件的解析获得打印任务内容进行打印。同时保持与打印作业服务器的心跳包联系直至打印成功。实现的调度算法有FCFS (First Come First Serviced,先到先服务)、PriorityScheduling (优先级算法)、SJF (Shortest Job First,短作业优先),HRN (HighestResponse_ration Next,最高响应比优先)等,在这里我们选择了优先级算法作为第一调度策略,先到先服务作为第二调度策略。为了快速响应来自不同客户端的消息请求,消息响应子模块采用了线程池模型来满足这一需求。线程池的规模是动态变化的。在打印作业服务器使用线程池模型,能够快速响应来自客户端的消息请求,尤其是当任务处理时间较短时,能够节约线程新建销毁的时间,提高了效率。通过对线程池大小的动态控制,有助于系统资源的利用。当一段时间内,来自客户端的服务请求较多时,则扩大线程池的规模,增加线程的数目。当来自客户端的请求较少时,则缩小规模,减少线程数目。线程池工作流程如图5所示当收到客户端请求消息的时候,启动线程池管理类,如果有空闲线程则分配一个线程给该用户处理该用户的请求。如果没有空闲线程且超过了已经创建的线程,就会扩大线程池线程的数量,以供更多用户请求的响应。当线程池空闲线程长期过多就会启动销毁线程功能,让线程数量恢复到一个合理的数量。有了线程池的帮助,与客户机和打印机的交互过程变得十分的高效和流畅。客户端对打印作业的操作通过消息命令传送给服务器,服务器根据在数据库中获取该作业被执行打印的打印节点,然后转发相应的指令给打印机。之所以要转发是因为通过打印作业调度器分配了多个打印机给某一个作业或某一批次作业。客户可以同时操作某个作业或某批次作业,达到了私有云环境中对作业管理的需求。其次打印节点对作业的状态一方面直接向数据库登记,另一方面反馈给服务器,服务器分析以后以客户机提交的作业或者查询的作业为单位向客户机反馈作业的运行情况。这样也屏蔽了客户机对单个作业或者子作业的琐碎的操作流程,也体现了私有云环境的优越性。四、打印节点执行打印打印节点的守护进程接收来自打印客户端节点的打印作 业运行请求消息的时候,解析该请求并做好打印准备;然后启动作业的接收线程对打印数据文件进行接收;接收完成之后,根据解析出的打印参数设置好打印机,然后开始打印作业;同时向打印作业服务器反馈打印情况,以供打印作业服务器向打印客户端节点的及时反馈和向数据库进行更新;其次随着打印进度的进行,通过心跳包发送和检查点文件记录打印状态确保打印的正常进行以及出错处理。最后就是等待执行与打印客户端节点的打印管理命令交互。五、打印客户端节点、打印服务器节点、打印节点和数据库之间的通信在打印客户端节点、打印服务器节点和打印节点上都运行着守护进程,用于底层通信支持、消息创建和解析及启动打印作业执行。打印客户端节点、打印服务器节点和打印节点之间的通信都是通过底层完成的处理大规模地震数据的私有云环境下,通信平台面临两项主要任务一是提供方便快捷的进程间的通信方式,二是提供具有良好效率的数据传输接口。基于消息中间件的通信技术能够良好地实现系统各部件之间的解耦合,将通信的细节最大限度地对上层的使用者隐藏。在整个私有云环境中,进程间的通信都是以消息的形式通知执行者的,所以消息生成和解析的机制显得十分的重要。面向消息的中间件系统其核心组件是消息队列机制,根据不同的目的地址划分为不同的消息队列。对JMS (Java消息服务,是Java Message Service的简称)的框架进行整合和精简,使用点对点的消息来完成。消息结构包含了发送方和接收方必要的消息结构和内容,消息包括消息头,消息属性和消息体。消息体包含了接收方需要完成打印的任务参数。消息通信的流程如下I.消息发送方先创建消息,然后发送给底层通信平台。2.底层通信是一个守护进程,它在每一个节点都是运行的,它维护消息队列,不同的目的节点对应不同的队列,通信都是在底层通信平台间进行的。3.接收方从自己的底层通信平台中获取消息,解析得到消息相关参数。然后送达到上层打印应用程序中,完成相应的操作。
由于处理大规模地震数据的私有云环境下的中心机房往往采用刀片式服务器作为系统硬件,计算节点和计算节点之间是通过高速的以太网进行互联。因此其网络环境质量比较高,使用TCP/IP传输协议进行传输时,数据的误码率可以降低到一个很低的水平。传输数据命令需要和消息通信机制相结合。数据传输和消息传输的整合可以构建一个完整的私有云通信系统。可以通过消息机制来降低系统的复杂度和开发成本,降低各个计算部件之间的耦合度,同时通过数据传输部分可以大大提高各个组件之间的交互能力,使得并发处理性能达到最优。由于私有云环境中的通信需求相对简单,所以采用的是TCP实现P2P的大文件传输。大文件传送流程如图6所示1、发送方想要传送文件时首先发送请求消息给接收方,接收方打开接收端口然后回馈端口号给发送方;2、发送方启动发送,发送成功后删除本 地生成的光栅文件以节约空间;3、接收方接收,并且处理一些传送中的异常;4、接收完成后断开连接就实现了整个文件的传送功能。
权利要求
1.一种大规模地震数据处理私有云环境下的网络打印系统,包括数据库和分别与数据库进行通信的打印客户端节点、打印服务器节点和打印节点,其特征在于所述数据库用于存储与打印相关的信息,包括打印作业信息,打印日志信息,打印节点及其打印机的相关信息; 打印客户端节点实现打印作业的生成和对打印作业的监控管理打印作业的生成是指生成能被打印机识别并打印的光栅文件;对打印作业的监控管理包括打印作业管理和作业相关信息管理,其中打印作业管理包括暂停正在打印的作业、继续打印已经暂停打印的作业、停止需要打印的作业、重新打印已经停止打印的作业、取消并删除打印作业、启动并打印作业;作业相关信息管理包括查看和修改打印作业信息、查看和修改打印节点及其打印机的相关信息、删除没有必要或者陈旧的打印日志信息、导出打印相关信息以在关键的打印事件中备案; 打印服务器节点实现打印作业的解析和调度在打印服务器节点运行着打印作业服务器和打印作业调度器,其中打印作业服务器在收到客户端发送的作业请求服务后,为该作业分配一个作业ID号,将该作业加入到作业管理队列中,然后对打印请求进行解析,在解析到打印作业的各项参数之后就向打印作业调度器发送调度请求;打印作业调度器负责查看数据库中已经登记的具有打印功能的打印节点并反馈给打印作业服务器;打印作业服务器根据打印作业调度器反馈的信息向打印客户端节点反馈,同时向数据库更新打印的状态信息;在打印期间,打印作业服务器还通过中间的控制功能转发打印客户端节点到打印节点之间的打印管理命令;打印作业服务器还负责管理打印节点的节点队列; 打印节点执行打印打印节点的守护进程接收来自打印客户端节点的打印作业运行请求消息的时候,解析该请求并做好打印准备;然后启动作业的接收线程对打印数据文件进行接收;接收完成之后,根据解析出的打印参数设置好打印机,然后开始打印作业;同时向打印作业服务器反馈打印情况,以供打印作业服务器向打印客户端节点的及时反馈和向数据库进行更新;其次随着打印进度的进行,通过心跳包发送和检查点文件记录打印状态确保打印的正常进行以及出错处理;最后等待执行与打印客户端节点的打印管理命令交互; 打印客户端节点、打印服务器节点、打印节点和数据库之间的通信在打印客户端节点、打印服务器节点和打印节点上都运行着守护进程,用于底层通信支持、消息创建和解析及启动打印作业执行;打印客户端节点、打印服务器节点、打印节点和数据库之间的通信都是通过底层完成的。
2.根据权利要求I所述的大规模地震数据处理私有云环境下的网络打印系统,其特征在于所述打印作业信息存储了作业的基本属性,包括上传打印作业的用户、打印作业所选择的打印机、分别在哪些节点运行打印;所述打印日志信息记录了作业在执行打印的整个流程中发生的事情,包括何时开始打印,在整个打印过程中是否选择了暂停、停止打印命令,何时结束打印或者打印失败及失败原因;所述打印节点及其打印机的相关信息是通过打印节点向服务器节点登记的时候记录下来的信息,包括与每个打印节点连接的各台打印机的名称和状态。
3.根据权利要求I所述的大规模地震数据处理私有云环境下的网络打印系统,其特征在于所述光栅文件的生成机制是指以剖面为单位对三维体数据进行划分,根据地震数据组织的特点获取其剖面号,按剖面号顺序重新组成子作业,然后分别对每一子作业进行光栅文件的生成。
4.根据权利要求I所述的大规模地震数据处理私有云环境下的网络打印系统,其特征在于为了实现打印作业对于优先级不同的需求,还可使用具有不同元素的数组来对应不同的优先级,数组中每个元素作为相应优先级链表的链表头。
5.根据权利要求I所述的大规模地震数据处理私有云环境下的网络打印系统,其特征在于打印作业服务器对节点队列的管理方式如下采用心跳包探测的方式进行打印节点的有效性检测,当作业正常运行的时候,通过心跳包获取打印节点的状态信息直至打印任务成功完成;当打印节点出现异常,将该节点上正在运行的作业状态更改为未完成,同时启动二次调度打印作业服务器通知打印作业调度器,打印作业调度器获取新的可用节点作为打印节点,并向新的打印节点发送打印请求;打印节点通过对检查点文件的解析获得打印任务进行打印,同时保持与打印作业服务器的心跳包联系直至打印成功。
6.根据权利要求I所述的大规模地震数据处理私有云环境下的网络打印系统,其特征在于所述打印作业服务器使用线程池模型当收到客户端某用户请求消息的时候,启动线程池管理类,如果有空闲线程则分配一个线程给该用户,以处理该用户的请求;如果没有空闲线程且超过了已经创建的线程,则扩大线程池线程的数量,以供更多用户请求的响应;当线程池空闲线程长期过多则启动销毁线程功能,让线程数量恢复到与用户需求相一致的数量。
全文摘要
本发明公开了一种大规模地震数据处理私有云环境下的网络打印系统,包括数据库和分别与数据库进行通信的打印客户端节点、打印服务器节点和打印节点,所述数据库用于存储与打印相关的信息;打印客户端节点实现打印作业的生成和对打印作业的监控管理;打印服务器节点实现打印作业的解析和调度;打印节点执行打印;在打印客户端节点、打印服务器节点和打印节点上都运行着守护进程,用于底层通信支持、消息创建和解析及启动打印作业执行;打印客户端节点、打印服务器节点、打印节点和数据库之间的通信都是通过底层完成的。本发明的积极效果是充分利用了私有云的环境,使网络打印更快捷、高效、易管理。
文档编号G06F3/12GK102830946SQ20121027702
公开日2012年12月19日 申请日期2012年8月6日 优先权日2012年8月6日
发明者姚兴苗, 蒋昌礼, 胡光岷 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1