本发明属于图片处理领域,具体涉及一种使用管道技术处理图片的方法、系统及装置。
背景技术:
随着我国基建二三十年的高速发展,在交通方面,我国正在从交通大国迈向交通强国。在智能交通的信息化建设领域,有大量的图片处理需求,以地级市的交通管理信息化建设为例,每天交通卡口抓拍的车辆图片达到千万的数量级,路口电子警察抓拍的车辆违法图片也达到万的数量级。在此背景下,优化图片处理的方法、架构或模型,对提高系统的处理能力、减少建设成本,有非常重大的意义。
在早期的大系统中,传统的图片处理方式是作为系统的最小的组成部分的一个内嵌功能而存在的,从而造成在开发、测试和部署上的麻烦。在微服务时代,图片处理功能被抽象为独立的服务,与其它业务处在一个层级上,解决了传统方式紧耦合的问题,但随之而来的是大量远程调用造成的系统性能低下的问题。
一张图片在不同的业务场景下有不同的处理需求,每次处理往往包含一系列的操作,如果每个操作由业务服务调用一次图片服务,将会导致大量的磁盘io和网络io操作。假设一张卡口的高清图片尺寸是3m,需要做5个业务操作,从业务服务发到图片处理服务是一次传输,从图片服务返回业务服务又是一次传输,则一次处理过程需要传输3*5*2=30m的数据,假设1天的处理量是10万张图片,则有30*100000=3000000m的传输量。千兆网络的理论传输上限是125m每秒,依此传输量计,3000000/125/(24*60*60)=27.77%,即仅仅是按传输量计,就已经消耗掉一天之中四分之一以上的时间。而现实情况中,网络传输的速度往往达不到理论值,千兆网的带宽也是多个网络设备所共享,不可能只让两个服务所独享,因此应用该方式对网络的压力非常巨大,在网络传输上的优化也就显得重要而且紧迫。
技术实现要素:
本发明要解决的技术问题在于,针对现有微服务架构下对图片处理形成的多次调用从而造成网络传输量过大,在海量图片需要处理的场景下,对单张图片处理性能的微小差异,最终会造成系统整体性能巨大差异的缺陷,提供一种使用管道技术处理图片的方法、系统及装置。
本发明解决其技术问题所采用的技术方案是:构造一种使用管道技术进行图片处理的系统,包括应用请求模块和图片处理模块,其中:
所述应用请求模块,用于将若干个用于处理图片的图片处理操作封装到管道操作指令中,封装后的管道操作指令将以管道操作请求的方式传输到图片处理模块;
所述图片处理模块,用于对管道操作指令进行接收和解析,采用递归调用算法依次执行管道操作指令中的若干个图片处理操作,且,最终执行得到的结果将反馈到应用请求模块;其中,
将每个对图片处理的操作作为一个单独的动作;将当前的执行动作作为本动作;
且,将动作的前置动作作为子动作,所述动作的前置动作即为本动作的输入;
且,将动作的后置动作作为父动作,所述动作的后置动作即为本动作的输出;
且,将最先执行,但最后执行完的动作作为根动作;
在所述图片处理模块中,采用递归调用算法依次执行管道操作指令中的若干个图片处理操作包括将根动作作为最开始执行的动作,并逐个执行隶属于根动作的若干个子动作;并把正在执行的子动作当作本动作,在本动作中还包含有子动作的情况下,先执行子动作,再执行本动作,最后将本动作的执行结果返回给父动作执行,如此反复,直到最后一个父动作即根动作被执行,而,根动作的执行结果将反馈到应用请求模块。
本发明公开的一种利用上述的使用管道技术处理图片的系统实现处理图片的方法,包括以下步骤:
利用应用请求模块中的封装模块将若干个用于处理图片的图片处理操作封装到管道操作指令中,其中,封装后的管道操作指令将通过管道操作请求模块,传输到图片处理模块。
在所述图片处理模块中,使用指令接收模块对管道操作指令进行接收,使用指令解析模块对接收到的管道操作指令进行解析;
解析后得到的若干个图片处理操作,分别通过本动作识别模块、子动作识别模块、父动作识别模块和根动作识别模块进行动作、子动作、父动作和根动作的识别与划分;
在解析的过程中,使用递归调用模块从根动作开始,将根动作作为最开始执行的动作,并逐个调用隶属于根动作的子动作;并把正在执行的子动作当作本动作,当本动作中又含有子动作时,先执行子动作,待子动作执行完之后,再执行本动作,最后将本动作的执行结果返回给父动作执行,如此反复,直到最后一个父动作即根动作被执行,整个管道操作结束;而,根动作的执行结果将由图片处理模块反馈到应用请求模块,从而完成对图片处理的实时响应。
本发明公开的一种电子装置,包括处理器与存储器,其中:
所述存储器用于存储指令及数据用于实现上述的一种使用管道技术处理图片的方法;
所述处理器用于加载并执行所述存储器中的指令及数据用于实现上述的一种使用管道技术处理图片的方法。
实施本发明的一种使用管道技术处理图片的方法、系统及电子装置,具有以下有益效果:通过在图片处理中使用管道技术,在减少了业务服务(应用)和图片处理服务(装置)之间的交互数量的情况下,减少了网络和磁盘io的操作,从而降低整个系统对硬件资源、网络资源的消耗;其中,在进行基于管道技术处理图片的时候,利用递归调用算法,从根动作开始,将根动作作为最开始执行的动作,并逐个调用隶属于根动作的子动作,并把正在执行的子动作当作本动作,当本动作中又含有子动作时,先执行子动作,待子动作执行完之后,再执行本动作,最后将本动作的执行结果返回给父动作执行,如此反复,直到最后一个父动作即根动作被执行,整个管道操作结束;这样处理有效的降低了在微服务架构下两个服务之间反复交互从而造成硬件资源、网络资源消耗过大的问题;与传统方案相比,微服务的架构有效的降低了业务服务(应用)的设计复杂度,从而间接的减少了软件复用的成本和人力资源投入的成本。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是传统的图片处理模式图;
图2是在微服务架构下的图片处理系统图;
图3是在微服务架构下基于图片处理系统的调用时序图;
图4是本实施例1提供的一种使用管道技术处理图片的系统结构图;
图5是基于实施例1提供的图片处理系统的调用时序图;
图6是基于实施例2提供的部署多个isb节点时的横向扩展系统结构图;
图7是递归调用算法实施流程图;
图8是本发明公开的一种使用管道技术处理图片的方法流程图;
图9是本发明公开的一种电子装置的结构示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
请参考图1,其是传统的图片处理模式图,在传统的系统中,涉及到图片处理功能的时候,传统的设计方案通常是采用一种紧耦合的设计方法,即将图片处理功能作为系统内嵌功能的一部分,系统执行功能与图片处理功能之间不能分离,它们通常是以静态链接或动态链接来进行请求调用。然而,在当前的图片处理模式下,每次图片处理功能的升级都需要对调用应用重新编译、测试、打包、发布和部署,开发、运维成本相对较高。
请参考图2,其为在微服务架构下的图片处理系统图,在过去采用微服务架构来进行图片处理的时候,图片处理一般被单独抽象为一个公共服务,其作为图片处理服务被单独开发、测试和发布,图2中所示的应用程序1、应用程序2和应用程序3在需要调用图片处理服务的时候,一般通过服务接口来调用图片处理服务,为对应的应用程序提供图片处理服务。该架构解决了调用者和被调用者解耦的问题,但是处理效率相对较低,对硬件资源、网络资源消耗过大。
请参考图3,在微服务架构下基于图片处理系统的调用时序图;例如,在应用程序端需要进行图片合并、打印水印以及图片压缩请求的时候,上述请求需要作为一个独立的指令,来请求图片服务进行相应的业务处理,而在多次远程调用的情况下,则会导致业务处理的效率相对低下,特征在进行海量图片处理的时候,当前架构下的系统,完全不能承受如此大的业务量。
实施例1:
基于传统的和微服务架构下的图片处理模式的缺陷,本实施例提供了一种使用管道技术处理图片的系统,该系统将所有的图片处理操作封装到管道操作指令,在基于管道基础再处理图片的时候,利用递归调用算法,目的是为了降低了业务服务(应用)的设计复杂度,减少了软件复用的成本和人力资源投入的成本。具体的本实施例提供的系统结构请参考图4,其为本实施例1提供的一种使用管道技术处理图片的系统结构图,该系统包括有两大功能模块-应用请求模块和图片处理模块,其功能作用为:
所述应用请求模块的功能作用:
用于将若干个用于处理图片的图片处理操作封装到管道操作指令中,封装后的管道操作指令将以管道操作请求的方式传输到图片处理模块;其中,所述若干个用于处理图片的图片处理操作包括图片合并操作、图片打印水印请求操作和图片压缩操作;但也不仅仅限制于上述操作,根据业务场景可将新的操作加入进去例如图片下载和图片上传等;
上述的每一个图片处理操作又可以有不同的参数,例如水印操作可以包含:文字、字体、颜色、风格、位置、在图片内叠加还是在图片外叠加等参数;
当前功能模块下,与微服务架构下图片处理系统的区别在于(请参考图3和图5):本实施例下,将上述的图片合并操作、图片打印水印请求操作和图片压缩操作封装到一个管道操作指令中,从而避免了需要远程调用的次数,仅通过一次的远程传输控制,即可实现对图片操作的叠加处理,减少业务应用与图片处理装置的交互次数。
所述图片处理模块的功能作用:
对管道操作指令进行接收和解析,采用递归调用算法依次执行管道操作指令中的若干个图片处理操作,且,最终执行得到的结果将反馈到应用请求模块;其中,针对递归调用算法的实施对象,该模块下还包括对动作、本动作、子动作、父动作以及根动作的识别与划分;具体的,动作即为:将每个对图片的单独处理操作;本动作即为:当前的执行动作;子动作即为:动作的前置动作,所述动作的前置动作即为本动作的输入;父动作即为:动作的后置动作,所述动作的后置动作即为本动作的输出;根动作即为:最先执行,但最后执行完的动作;
采用递归调用算法的执行流程,请参考图7,其处理流程为:
首先,将根动作作为最开始执行的动作;
然后,逐个执行隶属于根动作的若干个子动作;但是,在本动作中还包含有子动作时,先执行完本动作下的所有子动作,再执行本动作;
最后将本动作的执行结果返回给父动作执行,如此反复,直到最后一个父动作即根动作被执行,而,根动作的执行结果将反馈到应用请求模块。
举例说明:
假设根动作是r,处于第1级;r的子动作a和b处于第二级;则在执行递归调用算法时,首先是执行到r,但是由于r有a和b子动作,所以当前的执行流程会先执行a,然而,在执行a时又发现a下面还有子动作,则当前会先把a下面所有的子动作先执行完,再执行a,待a执行完之后再执行b,最后再返回去执行r。这也说明根动作r首先会被执行到,但是它也是最后一个被执行的动作。
请参考图4,在进一步对上述两个功能模块进行细分的情况下,上述两个功能模块中还包括下述子模块,具体的:
所述应用请求模块中包括封装模块和管道操作请求模块,对于上述的图片处理操作封装以及管道操作请求,分别由上述两个模块完成,具体的:
所述封装模块的功能作用为:
将包括图片合并、图片打印水印和图片压缩的图片处理操作封装到管道操作指令中,封装后的管道操作指令将经由封装模块发送到管道操作请求模块;
所述管道操作请求模块的功能作用为:
将所述封装后的管道操作指令传输到图片处理模块。
图片处理操作封装以及管道操作请求均是在应用端完成的,具体请参考图5,图5中示意的是应用端与图片服务端之间的信息交互,在应用端需要完成的工作包括:1、生成含图片合并、打印水印和图片压缩的管道操作指令;2、生成上述管道操作指令后的,指令返回;3、管道操作请求。
在图片服务端,其完成的是对管道操作指令的接收,以及采用递归调用算法依次执行管道操作指令中的若干个图片处理操作,且将最终的执行结果(管道操作结果)返回到应用端。
所述应用端可以包括需要使用图片处理功能的微服务,从图片服务端的角度来看,即为应用(application);所述图片服务端可以为isb(imageservicebase-图片服务基础组件)。
请参考图4,所述图片处理模块中包括指令接收模块和指令解析模块,通过上述两个模块来完成对管道操作指令的接收以及解析,其功能作用具体描述为:
所述指令接收模块的功能作用为:
用于对管道操作指令进行接收,并将接收到的管道操作指令传输到指令解析模块;
所述指令解析模块的功能作用为:
采用递归调用算法依次执行管道操作指令中的若干个图片处理操作,且将最终执行得到的结果将反馈到应用请求模块。
然而,在指令解析模块下为了完成对动作、本动作、子动作、父动作和根动作的识别与划分,所述指令解析模块中包括动作识别模块,所述动作识别模块划分为动作识别模块、子动作识别模块、父动作识别模块和根动作识别模块来完成上述的动作识别与划分,而,每个模块的具体作用:
所述动作识别模块的功能作用为:
将每个对图片处理的操作作为一个单独的动作,将当前的执行动作作为本动作;
子动作识别模块的功能作用为:
将动作的前置动作作为子动作,所述动作的前置动作即为本动作的输入;
父动作识别模块的功能作用为:
将动作的后置动作作为父动作,所述动作的后置动作即为本动作的输出;
根动作识别模块的功能作用为:
将最先执行,但最后执行完的动作作为根动作。
请参考图4,所述指令解析模块中还包括递归调用模块;所述递归调用模块的功能作用为:
从根动作开始,取出隶属于根动作的若干个子动作,并逐个执行;当本动作中还包含有子动作时,先执行子动作,待子动作执行完之后,再执行本动作,最后将本动作的执行结果返回给父动作执行,如此反复,直到最后一个父动作即根动作被执行,整个管道操作结束;其中,在上述本动作和子动作执行的过程中,将子动作的输出作为本动作的输入,本动作的输出为父动作的输入(具体的可以参考图7中示意的递归调用流程图)。
本实施例提供的一种使用管道技术处理图片的系统通过在图片处理中使用管道技术,在减少了业务服务(应用)和图片处理服务(装置)之间的交互数量的情况下,减少了网络和磁盘io的操作,从而降低整个系统对硬件资源、网络资源的消耗;其次,在进行基于管道技术处理图片的时候,利用递归调用算法对接收到的管道指令进行解析,有效的降低了在微服务架构下两个服务之间反复交互从而造成硬件资源、网络资源消耗过大的问题;与传统方案相比,微服务的架构有效的降低了业务服务(应用)的设计复杂度,从而间接的减少了软件复用的成本和人力资源投入的成本。
实施例2:
请参考图6,其为部署多个isb(imageservicebase-图片服务基础组件)节点时的横向扩展系统结构图,在业务需求量不大的时候,isb节点只需部署一个就能够处理所有的图片任务。然而,在处理海量图片的时候,例如存在多个应用节点同时向图片服务端请求图片处理操作,这时候仅仅部署一个isb节点并不能解决当前的业务需求,其带来的负面问题,也可能造成系统崩溃、网络资源消耗过大。
因此,再在处理海量图片的时候,则可以根据需要,在图片服务端部署多个isb节点,将业务量分散到每个isb节点上,提高业务的处理效率,完成应用端对isb的密集请求;即,在当前通信网络下,采用分布式部署机制,将应用请求模块和图片处理模块之间部署为多点对多点的连接关系;其中:
每个应用请求模块和图片处理模块视为一个连接节点;
在应用请求模块和图片处理模块之间还设定连接有一个负载均衡模块,所述负载均衡模块用于基于均衡算法将请求任务分发到不同的图片处理模块节点,以平衡各个节点之间的工作负荷。
如图6所示,在当前系统架构下,isb根据需要部署多个节点,这些节点之间则由负载均衡调度器来负责调度,以保证应用请求能够比较均衡的分配到各个isb节点,并根据isb节点的加入和退出情况,动态的调节各isb节点的负荷。
当前架构下的执行过程为:
每个应用程序-app统一向负载均衡调度器发送图片处理任务请求指令,由所述负载均衡调度器将图片处理任务请求指令转发到isb节点,isb节点在接收到图片处理任务请求指令后,进行响应处理并将反馈结果经由负载均衡调度器反馈到app。
当前的系统架构下,每个isb节点与节点之间相互独立,没有依赖关系,它们只对负载均衡调度器可见,在这种部署模式下,应用程序在发送图片处理任务请求的时候,将指令信息发往负载均衡调度器,由负载均衡调度器对图片处理任务请求指令进行接收,并转发到到某个相对空闲的isb节点去执行图片处理操作。
以上便是海量图片处理应用场景下,app节点通过负载均衡调度器调用isb节点提供的图片服务的系统结构以及实施流程介绍。当前实施例下,由于每个isb节点既是io密集型应用,又是cpu密集型应用,为了降低对机器资源的使用率,本实施例下,考虑采用负载均衡调度器对接收到的图片处理请求进行分发,从而,降低了对isb节点内存的开销。
实施例3:
实施例1-2中所述的应用请求模块和图片处理模块之间均可以考虑采用http或https协议进行通信;
然而,为了避免不合法的应用请求占用网络资源,本实施例下,在所述负载均衡模块中还采用正则表达式,来对管道操作请求中的图片url格式进行校验,拦截格式不合法的应用请求。
当前实施例下,为了对不合法的应用请求进行筛选,可以采用但并不仅仅限制与上述过滤方法,例如,可以不采用正则表达式,在进行判断的时候:
首先,判断url地址是否是正确的http;
其次,在判断其后缀是否是图片格式。
当前实施例下,通过对不合法的应用请求进行拦截,避免不合法的应用请求占用网络资源,提高了应用处理效率。
以上便是对本发明公开的一种使用管道技术处理图片的整体系统结构介绍,具体分为了3个应用实施例,分别针对一般情况下、海里图片处理应用情况下、以及对不合法的应用请求拦截的情况下,在图片处理组件利用管道技术,、与传统方式相比,本发明公开的方案能够有效的降低业务服务(应用)的设计复杂度,减少了软件复用的成本和人力资源投入的成本;与一般的微服务架构相比,解决了执行效率低下和对硬件资源、网络资源开销过大的问题。
现,基于实施例1-3提供的管道技术处理图片的系统对实现处理图片的方法进行说明,请参考图8,具体包括以下步骤:
利用应用请求模块中的封装模块将若干个用于处理图片的图片处理操作封装到管道操作指令中,其中,封装后的管道操作指令将通过管道操作请求模块,传输到图片处理模块;应用请求模块和图片处理模块之间采用http或https协议进行通信;
在所述图片处理模块中,使用指令接收模块对管道操作指令进行接收,使用指令解析模块对接收到的管道操作指令进行解析;
针对解析后得到的若干个图片处理操作,分别通过动作识别模块、子动作识别模块、父动作识别模块和根动作识别模块进行动作、本动作、子动作、父动作和根动作的识别与划分;
在解析的过程中(请参考图7),使用递归调用模块从根动作开始,将根动作作为最开始执行的动作,并逐个调用隶属于根动作的子动作;当本动作中还包含有其他的子动作时,先执行子动作,待子动作执行完之后,再执行本动作,最后将本动作的执行结果返回给父动作执行,如此反复,直到最后一个父动作即根动作被执行,整个管道操作结束;其中,在本动作和子动作执行的过程中,将每个子动作的输出作为本动作的输入;本动作的输出作为父动作的输入。而,根动作的执行结果将由图片处理模块反馈到应用请求模块,从而完成对图片处理的实时响应;其中:
在海里图片处理的应用场景下,每个应用程序-app统一向负载均衡调度器发送图片处理任务请求指令,由所述负载均衡调度器将图片处理任务请求指令转发到isb节点,isb节点在接收到图片处理任务请求指令后,进行响应处理并将反馈结果经由负载均衡调度器反馈到app;
在拦截不合法应用请求的应用场景下,采用正则表达式,来对管道操作请求中的图片url格式进行校验,拦截格式不合法的应用请求。
实施例4:
该实施例下,考虑将上述的一种使用管道技术处理图片的方法集成到电子装置中,请参考图9,其为该电子装置的结构示意图,该电子装置包括处理器与存储器,其中:
所述存储器用于存储指令及数据用于实现使用管道技术处理图片的方法;
所述处理器用于加载并执行所述存储器中的指令及数据用于实现上述的一种使用管道技术处理图片的方法。
本发明提供的一种使用管道技术处理图片的方法、系统及电子装置,通过在图片处理组件中使用管道技术,在减少了业务服务(应用)和图片处理服务(装置)之间的交互情况下,减少了网络和磁盘io的操作,从而降低整个系统对硬件资源、网络资源的消耗;且在进行基于管道技术在处理图片的时候,利用递归调用算法,从根动作开始,将根动作作为最开始执行的动作,并逐个调用隶属于根动作的子动作,并把正在执行的子动作当作本动作,当本动作中又含有子动作时,先执行子动作,待子动作执行完之后,再执行本动作,最后将本动作的执行结果返回给父动作执行,如此反复,直到最后一个父动作即根动作被执行,整个管道操作才告结束。这样处理与传统方式相比首先有效的降低了业务服务(应用)的设计复杂度,从而间接的减少了软件复用的成本和人力资源投入的成本;和一般的微服务架构相比,解决了执行效率低下和对硬件资源、网络资源开销过大的问题。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
1.一种使用管道技术进行图片处理的系统,其特征在于,包括应用请求模块和图片处理模块,其中:
所述应用请求模块,用于将若干个用于处理图片的图片处理操作封装到管道操作指令中,封装后的管道操作指令将以管道操作请求的方式传输到图片处理模块;
所述图片处理模块,用于对管道操作指令进行接收和解析,采用递归调用算法依次执行管道操作指令中的若干个图片处理操作,且,最终执行得到的结果将反馈到应用请求模块;其中,
将每个对图片处理的操作作为一个单独的动作;将当前的执行动作作为本动作;
且,将动作的前置动作作为子动作,所述动作的前置动作即为本动作的输入;
且,将动作的后置动作作为父动作,所述动作的后置动作即为本动作的输出;
且,将最先执行,但最后执行完的动作作为根动作;
在所述图片处理模块中,采用递归调用算法依次执行管道操作指令中的若干个图片处理操作包括将根动作作为最开始执行的动作,并逐个执行隶属于根动作的若干个子动作;若,本动作中还包含有子动作时,先执行完本动作下关联到的所有子动作之后,再执行本动作,最后再依次执行隶属于本动作的父动作,直到最后一个父动作即根动作被执行,而,根动作的执行结果将反馈到应用请求模块。
2.根据权利要求1所述的一种使用管道技术处理图片的系统,其特征在于,所述应用请求模块中包括封装模块和管道操作请求模块,其中:
所述封装模块,用于将包括图片合并、图片打印水印和图片压缩的图片处理操作封装到管道操作指令中,封装后的管道操作指令将经由封装模块发送到管道操作请求模块;
所述管道操作请求模块,用于将所述封装后的管道操作指令传输到图片处理模块。
3.根据权利要求2所述的一种使用管道技术处理图片的系统,其特征在于,所述图片处理模块中包括指令接收模块和指令解析模块,其中:
所述指令接收模块,用于对管道操作指令进行接收,并将接收到的管道操作指令传输到指令解析模块;
所述指令解析模块,用于采用递归调用算法依次执行管道操作指令中的若干个图片处理操作,且将最终执行得到的结果将反馈到应用请求模块。
4.据权利要求3所述的一种使用管道技术处理图片的系统,其特征在于,所述指令解析模块中包括动作识别模块,所述动作识别模块划分为本动作识别模块、子动作识别模块、父动作识别模块和根动作识别模块,通过上述识别模块进行动作、本动作、子动作、父动作和根动作的识别与划分;其中:
所述本动作识别模块,用于将每个对图片处理的操作作为一个单独的动作,将当前的执行动作作为本动作;
子动作识别模块,用于将动作的前置动作作为子动作,所述动作的前置动作即为本动作的输入;
父动作识别模块,用于将动作的后置动作作为父动作,所述动作的后置动作即为本动作的输出;
根动作识别模块,用于将最先执行,但最后执行完的动作作为根动作。
5.根据权利要求4所述的一种使用管道技术处理图片的系统,其特征在于,所述指令解析模块中还包括递归调用模块;
所述递归调用模块,用于从根动作开始,取出隶属于根动作的若干个子动作,并逐个执行;当本动作中还包含有子动作时,先执行子动作,待子动作执行完之后,再执行本动作,最后将本动作的执行结果返回给父动作执行,如此反复,直到最后一个父动作即根动作被执行,整个管道操作结束;其中,在上述本动作和子动作执行的过程中,将子动作的输出作为本动作的输入,本动作的输出为父动作的输入。
6.根据权利要求1所述的一种使用管道技术处理图片的系统,其特征在于,应用请求模块和图片处理模块之间采用http或https协议进行通信;
且,在当前通信网络下,采用分布式部署机制,将应用请求模块和图片处理模块之间部署为多点对多点的连接关系;其中,每个应用请求模块和图片处理模块视为一个连接节点。
7.根据权利要求6所述的一种使用管道技术处理图片的系统,其特征在于,在应用请求模块和图片处理模块之间还设定连接有一个负载均衡模块,所述负载均衡模块用于基于均衡算法将请求任务分发到不同的图片处理模块节点,以平衡各个节点之间的工作负荷;
所述负载均衡模块还采用正则表达式,对管道操作请求中的图片url格式进行校验,拦截格式不合法的应用请求。
8.根据如权利要求1-7所述的任一使用管道技术处理图片的系统实现处理图片的方法,其特征在于,包括以下步骤:
利用应用请求模块中的封装模块将若干个用于处理图片的图片处理操作封装到管道操作指令中,其中,封装后的管道操作指令将通过管道操作请求模块,传输到图片处理模块;应用请求模块和图片处理模块之间采用http或https协议进行通信;
在所述图片处理模块中,使用指令接收模块对管道操作指令进行接收,使用指令解析模块对接收到的管道操作指令进行解析;
针对解析后得到的若干个图片处理操作,分别通过本动作识别模块、子动作识别模块、父动作识别模块和根动作识别模块进行动作、本动作、子动作、父动作和根动作的识别与划分;
在解析的过程中,使用递归调用模块从根动作开始,将根动作作为最开始执行的动作,并逐个调用隶属于根动作的子动作;当本动作中还包含有其他的子动作时,先执行完本动作下关联到的所有子动作之后,再执行本动作,最后将本动作的执行结果返回给父动作执行,如此反复,直到最后一个父动作即根动作被执行,整个管道操作结束;而,根动作的执行结果将由图片处理模块反馈到应用请求模块,从而完成对图片处理的实时响应。
9.根据权利要求8所述的实现处理图片的方法,其特征在于,在本动作和子动作执行的过程中,将每个子动作的输出作为本动作的输入;本动作的输出作为父动作的输入。
10.一种电子装置,其特征在于,包括处理器与存储器,其中:
所述存储器用于存储指令及数据用于实现权利要求8~9所述的一种使用管道技术处理图片的方法;
所述处理器用于加载并执行所述存储器中的指令及数据用于实现权利要求8~9所述的一种使用管道技术处理图片的方法。
技术总结