CN111177718A - 命令的执行方法及装置 - Google Patents

命令的执行方法及装置 Download PDF

Info

Publication number
CN111177718A
CN111177718A CN201910647256.4A CN201910647256A CN111177718A CN 111177718 A CN111177718 A CN 111177718A CN 201910647256 A CN201910647256 A CN 201910647256A CN 111177718 A CN111177718 A CN 111177718A
Authority
CN
China
Prior art keywords
command
terminal
execution
basic
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910647256.4A
Other languages
English (en)
Inventor
崔精兵
于涛
毕磊
屈亚鑫
赵子云
张友旭
郭长宇
郭晓龙
申金娟
吴彬
姜澎
苏蒙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910647256.4A priority Critical patent/CN111177718A/zh
Publication of CN111177718A publication Critical patent/CN111177718A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Virology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种命令的执行方法及装置;方法包括:接收到针对目标命令的命令请求;基于所述命令请求,创建与所述目标命令的命令逻辑对应的对象;基于所述对象,调用对应所述目标命令的命令接口,获取与所述目标命令对应的基础命令,所述基础命令指示执行所述目标命令所指示的至少部分操作;发送所述基础命令给终端,以使所述终端解析所述基础命令,执行所述至少部分操作。通过本发明,能够实现轻客户端的模式,减少了开发、维护和更新成本。

Description

命令的执行方法及装置
技术领域
本发明涉及互联网技术,尤其涉及一种命令的执行方法及装置。
背景技术
分布式系统,是互联网技术中常用的软件系统,具有高度的内聚性和透明性,如分布式杀毒系统,是企业内安全问题的一个常用解决方案。分布式系统中最重要的组成部分是分布式命令分发系统,也就是负责把命令分发到分布式终端设备执行并返回结果的系统。
相关技术中,常用的分布式命令分发系统,通常是将系统分成终端和服务器端两个程序,分别实现对应命令的服务端代码和终端代码,然后将终端程序部署到终端,而服务器端程序部署到服务器,存在开发、维护和更新成本高的问题。
发明内容
本发明实施例提供一种命令的执行方法及装置,能够实现轻客户端的模式,减少了开发、维护和更新成本。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种命令的执行方法,包括:
接收到针对目标命令的命令请求;
基于所述命令请求,创建与所述目标命令的命令逻辑对应的对象;
基于所述对象,调用对应所述目标命令的命令接口,获取与所述目标命令对应的基础命令,所述基础命令指示执行所述目标命令所指示的至少部分操作;
发送所述基础命令给终端,以使所述终端解析所述基础命令,执行所述至少部分操作。
本发明实施例提供一种命令的执行装置,包括:
请求接收单元,用于接收到针对目标命令的命令请求;
对象创建单元,用于基于所述命令请求,创建与所述目标命令的命令逻辑对应的对象;
命令获取单元,用于基于所述对象,调用对应所述目标命令的命令接口,获取与所述目标命令对应的基础命令,所述基础命令指示执行所述目标命令所指示的至少部分操作;
命令发送单元,用于发送所述基础命令给终端,以使所述终端解析所述基础命令,执行所述至少部分操作。
上述方案中,所述对象创建单元,还用于解析所述命令请求,得到所述终端的终端标识;
基于所述终端标识,确定命令数据库中存储有对应所述终端的目标命令时,反序列化所述目标命令的命令逻辑,创建对应所述命令逻辑的对象。
上述方案中,所述命令获取单元,还用于获取与所述目标命令对应的基础命令列表,所述基础命令列表中存储有至少一个基础命令;
确定所述终端对应的命令执行状态;
从所述基础命令列表中获取与所述命令执行状态对应的基础命令。
上述方案中,所述装置还包括:
状态更新单元,用于接收到所述终端执行所述至少部分操作后返回的执行结果;
基于所述执行结果,更新所述终端对应的命令执行状态。
上述方案中,所述状态更新单元,还用于基于所述执行结果,调用对应所述目标命令的结果更新接口,更新所述基础命令对应的执行结果属性,所述执行结果属性表征所述终端对应的命令执行状态。
上述方案中,当所述基础命令列表中存储有多个基础命令,且所述命令执行状态表征所述目标命令所指示的操作未完成时,所述命令获取单元,还用于
调用对应所述目标命令的命令接口,依次获取并发送所述基础命令列表中的基础命令,直至所述终端完成所述目标命令所指示的操作。
上述方案中,所述装置还包括:反馈核查单元,用于周期性的核查所述终端执行所述至少部分操作的执行反馈;
所述执行反馈,用于表征所述终端执行所述至少部分操作后所返回执行结果的正确性,或者用于表征所述执行结果是否返回的返回状态;
在对应所述终端的日志中记录所述执行反馈。
上述方案中,所述装置还包括:
命令存储单元,用于序列化所述对象,得到对应所述对象的字节序列;
存储所述字节序列至命令数据库。
上述方案中,所述目标命令为扫描命令;相应的,所述基础命令为以下之一:
用于指示下载杀毒引擎的第一下载命令;
用于指示下载病毒库的第二下载命令;
用于指示修改所述杀毒引擎的执行属性的第一执行命令;
用于指示运行所述杀毒引擎的第二执行命令。
本发明实施例提供一种服务器,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的命令的执行方法。
本发明实施例具有以下有益效果:
本发明实施例基于对象,调用对应目标命令的命令接口,获取与目标命令对应的基础命令,将发送基础命令给终端,以使终端解析基础命令,执行部分操作;由于所有的业务逻辑均由服务端实现,终端仅需要解析基础命令,以执行相应的操作,实现了一种轻客户端的模式,在命令开发、维护和更新过程中,无需对终端进行改动,也无需进行联调,减少了开发、维护和更新的成本。
附图说明
图1是相关技术提供的分布式系统架构图;
图2为相关技术提供的命令执行方法的流程示意图;
图3为本发明实施例提供的命令的执行系统的网络架构示意图;
图4为本发明实施例提供的命令的执行系统的层级架构示意图;
图5为本发明实施例提供的命令的执行装置的组成结构示意图;
图6是本发明实施例提供的命令的执行方法的流程示意图;
图7是本发明实施例提供的命令的执行方法流程示意图;
图8A为本发明实施例提供的命令的执行方法的流程示意图;
图8B为本发明实施例提供的第一下载命令的执行方法的流程示意图;
图8C为本发明实施例提供的第二下载命令的执行方法的流程示意图;
图8D为本发明实施例提供的第一执行命令的执行方法的流程示意图;
图8E为本发明实施例提供的第二执行命令的执行方法的流程示意图;
图9为本发明实施例提供的命令的执行装置的组成结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
如果申请文件中出现“第一/第二等”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二等”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二等”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)序列化,将对象的状态信息转换为可以存储或传输的形式的过程;在序列化期间,对象将其当前状态写入到临时或持久性存储区;
2)反序列化,将序列化的数据恢复为对象的过程;
3)轻客户端,用数据库或者文件或者其他缓存等等存储数据,然后用相应的程序获取数据,将这些数据通过模板引擎渲染成一个页面;所有的业务逻辑由服务程序端来提供。
为了实现分布式命令的分发,相关技术提供一种分布式系统架构,图1为相关技术提供的分布式系统架构图,参见图1,分布式系统包括一个服务端及其对应的多个终端,能够用于执行多个命令,如命令A、命令B等,对于每一个命令,均分为命令服务端和命令执行端。并且,每一个命令服务端设置有其对应的状态数据库。
基于上述分布式系统架构,相关技术提供一种命令执行方法,以执行扫描命令为例,图2为相关技术提供的命令执行方法的流程示意图,参见图2,首先,终端通过网络与服务端建立连接,并向服务端发送服务请求信息;然后,服务端接收到终端发送的服务请求信息,读取命令数据库,得到当前命令返回给终端;接着,终端确定接收到的当前命令为扫描命令,依次执行:下载杀毒引擎、下载病毒库、将杀毒引擎修改可执行属性、执行杀毒引擎,并将杀毒引擎的执行结果上传至服务端;最后,服务端对执行结果进行扫描,若长时间未接收到执行结果,则判断是否网络超时;若接收到执行结果,则判断接收到的执行结果是否正确,并将接收到的执行结果存入日志存储器。
应用上述命令的执行方法,一方面,由于终端程序需要实现复杂的命令逻辑,包括:载杀毒引擎、下载病毒库、将杀毒引擎修改可执行属性、执行杀毒引擎等,若要增加或更新一个命令逻辑必须修改命令执行端,需要更新所有终端上的程序,导致命令更新成本高;另一方面,由于一个命令的执行,涉及服务端和终端两部分的程序,联调成本高,逻辑上难以确定时服务端的问题还是终端的问题;再者,由于每一个命令都需要建立自己的状态数据库,以及操作各种数据库,导致服务端的开发成本高。
基于此,提出本发明实施例的命令的执行方法,基于对象,调用对应目标命令的命令接口,获取与目标命令对应的基础命令,将发送基础命令给终端,以使终端解析基础命令,执行部分操作;由于所有的业务逻辑均由服务端实现,终端仅需要解析基础命令,以执行相应的操作,实现了一种轻客户端的模式,在命令开发、维护和更新过程中,无需对终端进行改动,也无需进行联调,减少了开发、维护和更新的成本。
首先对本发明实施例的命令的执行系统进行说明,图3为本发明实施例提供的命令的执行系统的网络架构示意图,参见图3,为实现支撑一个示例性应用,命令的执行系统100包括终端400(示例性示出了终端400-1和终端400-2)及服务器200,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。
终端400,用于发送针对目标命令的命令请求;
服务器200,用于接收到针对目标命令的命令请求;基于命令请求,创建与目标命令的命令逻辑对应的对象;基于对象,调用对应目标命令的命令接口,获取与目标命令对应的基础命令,基础命令指示执行目标命令所指示的至少部分操作;发送所述基础命令给终端400;
终端400,用于解析基础命令,执行至少部分操作。
下面介绍上述网络架构中服务器及终端的层级架构,图4为本发明实施例提供的命令的执行系统的层级架构示意图,参见图4,服务器包括:基础命令层,用于提供基础的命令,如创建文件命令、下载文件命令、上传文件命令、执行程序并返回结果命令等;
命令框架层,用于提供命令抽象类和工具类,方便开发者以很小的成本开发出一个新命令,并且该架构层负责和数据库交互,避免命令逻辑直接操作数据库;
数据库,用于存储序列化后的命令,包括代码和对应对象的状态;
逻辑命令,由开发者开发,继承自命令框架层提供的命令类;
终端包括:基础命令层,用于提供和服务端的基础命令层对应的命令的客户端实现。
下面对本发明实施例提供的命令的执行装置的硬件结构作详细说明,图5为本发明实施例提供的命令的执行装置的组成结构示意图,可以理解,图5仅仅示出了命令的执行装置的示例性结构而非全部结构,根据需要可以实施图5示出的部分结构或全部结构。
本发明实施例提供的命令的执行装置包括:至少一个处理器401、存储器402、用户接口403和至少一个网络接口404。命令的执行装置40中的各个组件通过总线系统405耦合在一起。可以理解,总线系统405用于实现这些组件之间的连接通信。总线系统405除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统405。
其中,用户接口403可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储器402可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、闪存(Flash Memory)等。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,StaticRandom Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static RandomAccess Memory)。本发明实施例描述的存储器402旨在包括这些和任意其它适合类型的存储器。
本发明实施例中的存储器402能够存储数据以支持服务器200的操作。这些数据的示例包括:用于在服务器200上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序。
作为本发明实施例提供的命令的执行装置采用软硬件结合实施的示例,本发明实施例所提供的命令的执行装置可以直接体现为由处理器401执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器402,处理器401读取存储器402中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器401以及连接到总线405的其他组件)完成本发明实施例提供的命令的执行方法。
作为示例,处理器401可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
作为本发明实施例提供的图像处理模型的训练装置采用硬件实施的示例,本发明实施例所提供的装置可以直接采用硬件译码处理器形式的处理器401来执行完成,例如,被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件执行实现本发明实施例提供的命令的执行方法。
本发明实施例中的存储器402用于存储各种类型的数据以支持命令的执行装置40的操作。这些数据的示例包括:用于在命令的执行装置40上操作的任何可执行指令,如可执行指令,实现本发明实施例的命令的执行方法的程序可以包含在可执行指令中。
基于上述对命令的执行系统架构的说明,接下来对本发明实施例提供的命令的执行方法进行说明,图6是本发明实施例提供的命令的执行方法的流程示意图,参见图6,本发明实施例提供的命令的执行方法包括:
步骤601:终端发送针对目标命令的命令请求给服务器。
这里,终端上设置有客户端,如杀毒客户端,通过客户端发送针对目标命令的命令请求。在一些实施例中,基于用户的点击操作,客户端向服务器发送针对目标命令的命令请求,例如,用户点击“扫描病毒”按钮,客户端向服务器发送命令请求,请求执行“扫描命令”;在另一些实施例中,客户端周期性地向服务器发送针对目标命令的命令请求,例如,每天定时向服务器发送“扫描命令”的命令请求;在另一些实施例中,客户端启动时,自动向服务器发送针对目标命令的命令请求。
以分布式杀毒系统为例,图7是本发明实施例提供的命令的执行方法流程示意图,如图7所示,终端轮询命令,发送针对扫描命令的命令请求,以询问服务器该终端会否需要执行扫描逻辑。服务器接收终端发送的命令请求,并开启命令服务。
步骤602:服务器基于命令请求,创建与目标命令的命令逻辑对应的对象。
需要说明的是,目标命令的命令逻辑指的是如图4所示的命令A逻辑、命令B逻辑等。在实际实施时,创建对象的过程是在内存、堆栈开辟空间的过程,创建与目标命令的命令逻辑对应的对象,以将该对象放在内存中,才能够对目标命令的命令逻辑进行调用。
在一些实施例中,服务器可以通过反序列化的方式进行对象的创建:解析命令请求,得到终端的终端标识;基于所述终端标识,确定命令数据库中存储有对应所述终端的目标命令时,反序列化所述目标命令的命令逻辑,创建对应所述命令逻辑的对象。
这里,服务器根据基于终端标识,在数据库中查询对应该终端的目标命令,若命令数据库中存在对应该终端的目标命令,则读取该目标命令,反序列化该目标命令的命令逻辑,创建对应命令逻辑的对象;若不存在,则结束流程。
例如,如图7所示,服务端开启命令服务后,根据命令请求中携带的终端标识,在数据库中查询是否存在对应该终端的扫描指令,确定存在时,读取命令数据库中的扫描命令,并通过反序列化来创建扫描命令的命令逻辑对应的对象。
需要说明的是,对数据库的操作及反序列化目标命令的命令逻辑均是通过如图4所示的命令框架层实现,而不是由命令逻辑本身,降低了服务器逻辑开发的成本。
在实际实施时,对象通过实现Serializable接口,将对象序列化后写入命令数据库中,以在创建对象时,通过读取数据库,通过反序列化来创建对象。
在一些实施例中,服务器可以通过new关键字直接在堆内存上创建对象,能够很方便的调用对象的有参和无参的构造函数。
在一些实施例中,服务器可以利用反射特性进行对象的创建:使用Class类的newInstance方法可以调用无参的构造器来创建对象,以及使用Class的forName方法和Constructor可以调用无参的构造器来创建对象。
在一些实施例中,服务器可以使用clone方法进行对象的创建:无论何时调用一个对象的clone方法,Java虚拟机都会创建一个新的对象,将前面的对象内容全部拷贝进去,用clone方法创建对象并不会调用任何构造函数。在实际实施时,要使用clone方法,必须先实现Cloneable接口并实现其定义的clone方法。
步骤603:服务器基于对象,调用对应目标命令的命令接口,获取与目标命令对应的基础命令。
这里,命令接口指命令的应用程序编程接口(API,Application ProgrammingInterface),是一些预定义的对应目标命令的函数,由于目标命令的命令逻辑类是继承自如图4所示的命令框架层提供的基础命令类,预定义的函数是与基础命令相对应,通过调用对应目标命令的命令接口,能够得到与目标命令对应的基础命令。
在实际实施时,目标命令可能包括多个操作,获取的基础命令指示执行目标命令所指示的至少部分操作。
在一些实施例中,扫描命令对应的基本逻辑为:下载杀毒引擎、下载病毒库、修改杀毒引擎的执行属性为可执行以及执行杀毒引擎,那么,目标命令为扫描命令;相应的,基础命令为以下之一:
用于指示下载杀毒引擎的第一下载命令;
用于指示下载病毒库的第二下载命令;
用于指示修改杀毒引擎的执行属性的第一执行命令;
用于指示运行杀毒引擎的第二执行命令。
在一些实施例中,服务器可以通过以下方式获取与目标命令对应的基础命令:获取与目标命令对应的基础命令列表,基础命令列表中存储有至少一个基础命令;确定终端对应的命令执行状态;从基础命令列表中获取与命令执行状态对应的基础命令。
这里,基础命令列表存储有多个基础命令,需要获取终端对应的命令执行状态,以确定当前应该执行的基础命令。例如,扫描命令对应基础命令列表中存储有:1)第一下载命令,统一资源定位符(URL,Uniform Resource Locator)是杀毒引擎地址;2)第二下载命令,URL是病毒库地址;3)第一执行命令,命令行为执行修改文件属性为可执行,如chmod 777杀毒引擎;4)第二执行命令,命令行为启动杀毒引擎。若确定命令执行状态为扫描命令还未开始执行,那么获取基础命令为下载杀毒引擎的下载命令;若命令执行状态为下载病毒库已完成,则获取基础命令为修改杀毒引擎的执行属性为可执行。
在一些实施例中,服务器接收到终端执行至少部分操作后返回的执行结果;基于执行结果,更新终端对应的命令执行状态。
在一些实施例中,服务器可以通过以下方式更新终端对应的命令执行状态,包括:基于执行结果,调用对应目标命令的结果更新接口,更新基础命令对应的执行结果属性,执行结果属性表征终端对应的命令执行状态。
这里,更新基础命令对应的执行结果属性,指命令列表中基础命令对应的执行结果属性,例如,终端执行基础命令“下载杀毒引擎”,执行完成后,将执行结果发送给服务器,服务器将执行结果属性更新为“下载病毒引擎完成”。
步骤604:服务器发送基础命令给终端。
步骤605:终端解析接收到的基础命令,执行至少部分操作。
需要说明的是,服务器与终端针对基础命令约定了命令模板或命令格式,使得终端能够基于约定的命令模板解析服务器发送的基础命令,执行至少部分操作。
例如,如图4所示,服务器包括基础命令层,用于提供基础命令,终端包括基础命令层,提供与服务器的基础命令层对应的客户端实现,如此,终端能够通过基础命令层解析服务器发送的基础命令,并执行基础命令所对应的操作。
在一些实施例中,当基础命令列表中存储有多个基础命令,且命令执行状态表征目标命令所指示的操作未完成时,服务器调用对应目标命令的命令接口,依次获取并发送基础命令列表中的基础命令,直至终端完成目标命令所指示的操作。
例如,目标命令为扫描命令时,服务器会依次获取并发送下载杀毒引擎的第一下载命令、下载病毒库的第二下载命令、修改杀毒引擎的执行属性的第一执行命令、运行杀毒引擎的第二执行命令。
在一些实施例中,服务器还可以周期性的核查终端执行至少部分操作的执行反馈;执行反馈,用于表征终端执行至少部分操作后所返回执行结果的正确性,或者用于表征执行结果是否返回的返回状态;在对应终端的日志中记录执行反馈。
在实际实施时,服务器周期性的核查终端是否返回执行至少部分操作后的执行结果,若长时间未接收到终端返回的执行结果,则表示网络可能超时;若接收到终端返回的执行结果,则进一步判断杀毒结果是否正确,并将核查得到的反馈结果记录在对应终端的日志中。需要说明的是,对应终端的日志与序列化的命令存储在同一数据库中。
在一些实施例中,服务器序列化对象,得到对应对象的字节序列;存储字节序列至命令数据库。
需要说明的是,服务器每接收到一个基础命令执行完成的结果后,均会通过如图4所示的命令框架层对该基础命令所对应的对象进行序列化,并将得到的对应对象的字节序列存储至命令数据库,以等待终端的轮询。
例如,服务器执行下载杀毒引擎的命令后,将执行下载杀毒引擎的基础命令的结果返回给服务器,服务器接收到终端返回的执行结果后,对扫描命令的命令逻辑对应的对象进行序列化,并存储至命令数据库。当需要执行下载病毒库时,再从命令数据库读取扫描命令,并反序列化为对象。
本发明实施例基于对象,调用对应目标命令的命令接口,获取与目标命令对应的基础命令,将发送基础命令给终端,以使终端解析基础命令,执行部分操作;由于所有的业务逻辑均由服务端实现,终端仅需要解析基础命令,以执行相应的操作,实现了一种轻客户端的模式,在命令开发、维护和更新过程中,无需对终端进行改动,也无需进行联调,减少了开发、维护和更新的成本。
下面以目标命令为扫描命令为例,图8A为本发明实施例提供的命令的执行方法的流程示意图,参见图8A,本发明实施例提供的命令的执行方法包括:
步骤801:终端通过杀毒客户端向服务器发送扫描命令的命令请求。
步骤802:服务器解析命令请求,得到终端的终端标识。
步骤803:服务器基于终端标识,判断命令数据库中是否存储对应该终端的扫描命令,若存在,执行步骤804;否则,执行步骤808。
这里,扫描命令包括:下载杀毒引擎的第一下载命令、下载病毒库的第二下载命令、修改所述杀毒引擎的执行属性的第一执行命令及运行杀毒引擎的第二执行命令。
步骤804:服务器获取并发送下载杀毒引擎的第一下载命令,终端执行第一下载命令并返回结果。
步骤805:服务器获取并发送下载病毒库的第二下载命令,终端执行第二下载命令并返回结果。
步骤806:服务器获取并发送修改所述杀毒引擎的执行属性的第一执行命令,终端执行第一执行命令并返回结果。
步骤807:服务器获取并发送运行杀毒引擎的第二执行命令,终端执行第二执行命令并返回结果。
步骤808:结束流程。
图8B为本发明实施例提供的第一下载命令的执行方法的流程示意图,参见图8B,步骤804包括:
步骤804a:服务器反序列化扫描命令的命令逻辑,创建对应命令逻辑的对象;
步骤804b:服务器基于对象,调用对应扫描命令的命令接口,获取与扫描命令对应的基础命令列表;
步骤804c:服务器从基础命令列表中获取下载杀毒引擎的第一下载命令;
步骤804d:服务器发送第一下载命令给终端;
步骤804e:终端解析接收到的第一下载命令,下载杀毒引擎;
步骤804f:终端返回下载杀毒引擎完成的结果;
步骤804g:服务器更新终端对应的命令执行状态为下载杀毒引擎完成;
步骤804h:服务器序列化对象,得到对应对象的字节序列,并存储至命令数据库。
图8C为本发明实施例提供的第二下载命令的执行方法的流程示意图,参见图8C,步骤805包括:
步骤805a:服务器反序列化扫描命令的命令逻辑,创建对应命令逻辑的对象;
步骤805b:服务器基于对象,调用对应扫描命令的命令接口,获取与扫描命令对应的基础命令列表;
步骤805c:服务器确定终端下载杀毒引擎完成,从基础命令列表中获取下载病毒库的第二下载命令;
步骤805d:服务器发送第二下载命令给终端;
步骤805e:终端解析接收到的第二下载命令,下载病毒库;
步骤805f:终端返回下载病毒库完成的结果;
步骤805g:服务器更新终端对应的命令执行状态为下载病毒库完成;
步骤805h:服务器序列化对象,得到对应对象的字节序列,并存储至命令数据库。
图8D为本发明实施例提供的第一执行命令的执行方法的流程示意图,参见图8D,步骤806包括:
步骤806a:服务器反序列化扫描命令的命令逻辑,创建对应命令逻辑的对象;
步骤806b:服务器基于对象,调用对应扫描命令的命令接口,获取与扫描命令对应的基础命令列表;
步骤806c:服务器确定终端下载病毒库完成,从基础命令列表中获取修改杀毒引擎的执行属性的第一执行命令;
步骤806d:服务器发送第一执行命令给终端;
步骤806e:终端解析接收到的第一执行命令,修改杀毒引擎的执行属性为可执行;
步骤806f:终端返回第一执行命令完成的结果;
步骤806g:服务器更新终端对应的命令执行状态为第一执行命令完成;
步骤806h:服务器序列化对象,得到对应对象的字节序列,并存储至命令数据库。
图8E为本发明实施例提供的第二执行命令的执行方法的流程示意图,参见图8E,步骤807包括:
步骤807a:服务器反序列化扫描命令的命令逻辑,创建对应命令逻辑的对象;
步骤807b:服务器基于对象,调用对应扫描命令的命令接口,获取与扫描命令对应的基础命令列表;
步骤807c:服务器确定终端第一执行命令完成,从基础命令列表中获取运行杀毒引擎的第二执行命令;
步骤807d:服务器发送第二执行命令给终端;
步骤807e:终端解析接收到的第二执行命令,运行杀毒引擎;
步骤807f:终端返回杀毒完成的结果;
步骤807g:服务器更新终端对应的命令执行状态为杀毒完成;
步骤807h:服务器序列化对象,得到对应对象的字节序列,并存储至命令数据库。
下面,继续对本发明实施例提供的命令的执行系统和执行方法进行说明,参见图4,在实际实施时,本发明实施例提供的命令的执行系统包括服务器和终端两部分。
其中,服务端由以下几个部分组成:
基础命令层,提供基础的命令,包括创建文件命令,下载文件命令,上传文件命令,执行程序并返回结果命令;
命令框架层,提供命令抽象类和工具类,方便开发者以很小的成本开发出一个新命令,并且该架构层负责和数据库交互,避免了命令逻辑直接操作数据库;
数据库,主要是存储序列化后的命令,包括代码和对应对象的状态;
逻辑命令,由开发者开发。
终端由基础命令层构成,主要提供和服务端的基础命令层对应的命令的客户端实现。
参见图1和图4,可以得到本发明提供的命令的执行系统与相关技术存在以下差异:
首先,本发明实施例提供的终端没有具体命令逻辑的实现只有一个基础命令层,而该命令层仅包含几个基础命令:创建文件命令、下载文件命令、上传文件命令、执行程序并返回结果命令。
其次,本发明实施例提供的服务端增加了基础命令层,对应的基础命令和终端的基础命令层提供的基础命令一致。
再者,本发明实施例提供的服务端多了命令架构层,该层是主要作用有:提供命令模版(父类)、提供通用工具类、提供基础命令类、将命令逻辑序列化到数据库中。
相应的,以目标命令为扫描命令为例,病毒扫描命令的基本逻辑包括:下载杀毒引擎、下载病毒库、将杀毒引擎的执行属性修改为可执行、执行杀毒引擎、将杀毒结果上传服务器,在实际实施时,参见图7,本发明实施例提供的命令的执行方法包括以下步骤:
1)终端轮询命令,询问服务器该终端是否需要执行扫描逻辑;
2)服务端开启命令服务;
3)服务器读取命令数据库中的扫描命令,反序列化扫描命令的命令逻辑;
4)使得扫描命令实例化为对象,调用当前命令的API,获取当前基础命令,当前命令为下载命令,下载地址为杀毒引擎;
5)通过命令服务将得到的当前基础命令发送给终端;
6)终端执行当前基础命令并上传结果;
7)服务端接收终端的执行结果,调用扫描命令实例对象的设置结果API;
8)服务端序列化扫描命令对象,存入命令数据库等待下次轮训。
9)重复执行3)-8),依次实现下载病毒库命令、执行修改属性命令、执行引擎命令。
10)扫描命令执行结束。
由此可知,在实现扫描命令时,服务器只需要开发一个简单的命令逻辑类,继承自命令框架层提供的命令类,填充命令列表,列表如下:
1)下载命令,URL是杀毒引擎地址;
2)下载命令,URL是病毒库地址;
3)执行命令,命令行为执行修改文件属性为可执行(chmod 777杀毒引擎);
4)执行命令,命令行为启动杀毒引擎,并提供成员变量接收程序执行结果。
然后,通过命令逻辑类实现序列化和反序列化函数,则两个函数是父类虚函数,通过命令框架层调用负责序列化和反序列化命令对象。
如此,在新增新命令时,无需对终端进行修改,服务端代码量也很小,实现服务端代码集中在一个模块内,并且,通过框架操作数据库,避免了命令逻辑直接操作数据库,实现了开发、调试及部署成本低。
接下来对本发明实施例提供的命令的执行装置进行说明,在一些实施例中,命令的执行装置可采用软件模块的方式实现,图9为本发明实施例提供的命令的执行装置的组成结构示意图,参见图9,命令的执行装置包括:
请求接收单元901,用于接收到针对目标命令的命令请求;
对象创建单元902,用于基于命令请求,创建与目标命令的命令逻辑对应的对象;
命令获取单元903,用于基于对象,调用对应目标命令的命令接口,获取与目标命令对应的基础命令,所述基础命令指示执行目标命令所指示的至少部分操作;
命令发送单元904,用于发送基础命令给终端,以使终端解析所述基础命令,执行至少部分操作。
本发明实施例还提供一种服务器,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的命令的执行方法。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

Claims (10)

1.一种命令的执行方法,其特征在于,所述方法包括:
接收到针对目标命令的命令请求;
基于所述命令请求,创建与所述目标命令的命令逻辑对应的对象;
基于所述对象,调用对应所述目标命令的命令接口,获取与所述目标命令对应的基础命令,所述基础命令指示执行所述目标命令所指示的至少部分操作;
发送所述基础命令给终端,以使所述终端解析所述基础命令,执行所述至少部分操作。
2.如权利要求1所述的方法,其特征在于,所述基于所述命令请求,创建与所述目标命令的命令逻辑对应的对象,包括:
解析所述命令请求,得到所述终端的终端标识;
基于所述终端标识,确定命令数据库中存储有对应所述终端的目标命令时,反序列化所述目标命令的命令逻辑,创建对应所述命令逻辑的对象。
3.如权利要求1所述的方法,其特征在于,所述获取与所述目标命令对应的基础命令,包括:
获取与所述目标命令对应的基础命令列表,所述基础命令列表中存储有至少一个基础命令;
确定所述终端对应的命令执行状态;
从所述基础命令列表中获取与所述命令执行状态对应的基础命令。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
接收到所述终端执行所述至少部分操作后返回的执行结果;
基于所述执行结果,更新所述终端对应的命令执行状态。
5.如权利要求4所述的方法,其特征在于,所述基于所述执行结果,更新所述终端对应的命令执行状态,包括:
基于所述执行结果,调用对应所述目标命令的结果更新接口,更新所述基础命令对应的执行结果属性,所述执行结果属性表征所述终端对应的命令执行状态。
6.如权利要求4所述的方法,其特征在于,当所述基础命令列表中存储有多个基础命令,且所述命令执行状态表征所述目标命令所指示的操作未完成时,所述方法还包括:
调用对应所述目标命令的命令接口,依次获取并发送所述基础命令列表中的基础命令,直至所述终端完成所述目标命令所指示的操作。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
周期性的核查所述终端执行所述至少部分操作的执行反馈;
所述执行反馈,用于表征所述终端执行所述至少部分操作后所返回执行结果的正确性,或者用于表征所述执行结果是否返回的返回状态;
在对应所述终端的日志中记录所述执行反馈。
8.如权利要求1所述的方法,其特征在于,所述方法还包括:
序列化所述对象,得到对应所述对象的字节序列;
存储所述字节序列至命令数据库。
9.如权利要求1至8中任一项所述的方法,其特征在于,
所述目标命令为扫描命令;相应的,所述基础命令为以下之一:
用于指示下载杀毒引擎的第一下载命令;
用于指示下载病毒库的第二下载命令;
用于指示修改所述杀毒引擎的执行属性的第一执行命令;
用于指示运行所述杀毒引擎的第二执行命令。
10.一种命令的执行装置,其特征在于,所述装置包括:
请求接收模块,用于接收到针对目标命令的命令请求;
对象创建模块,用于基于所述命令请求,创建与所述目标命令的命令逻辑对应的对象;
命令获取模块,用于基于所述对象,调用对应所述目标命令的命令接口,获取与所述目标命令对应的基础命令,所述基础命令指示执行所述目标命令所指示的至少部分操作;
命令发送模块,用于发送所述基础命令给终端,以使所述终端解析所述基础命令,执行所述至少部分操作。
CN201910647256.4A 2019-07-17 2019-07-17 命令的执行方法及装置 Pending CN111177718A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910647256.4A CN111177718A (zh) 2019-07-17 2019-07-17 命令的执行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910647256.4A CN111177718A (zh) 2019-07-17 2019-07-17 命令的执行方法及装置

Publications (1)

Publication Number Publication Date
CN111177718A true CN111177718A (zh) 2020-05-19

Family

ID=70646104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910647256.4A Pending CN111177718A (zh) 2019-07-17 2019-07-17 命令的执行方法及装置

Country Status (1)

Country Link
CN (1) CN111177718A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986399A (zh) * 2021-09-15 2022-01-28 西安震有信通科技有限公司 一种调度命令执行方法、服务器及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1722663A (zh) * 2004-07-13 2006-01-18 联想(北京)有限公司 一种代理服务器系统及其实现代理通讯的方法
CN106708727A (zh) * 2016-08-03 2017-05-24 腾讯科技(深圳)有限公司 一种分布式病毒特征样本验证方法及系统
CN108172223A (zh) * 2017-12-14 2018-06-15 深圳市欧瑞博科技有限公司 语音指令识别方法、装置及服务器和计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1722663A (zh) * 2004-07-13 2006-01-18 联想(北京)有限公司 一种代理服务器系统及其实现代理通讯的方法
CN106708727A (zh) * 2016-08-03 2017-05-24 腾讯科技(深圳)有限公司 一种分布式病毒特征样本验证方法及系统
CN108172223A (zh) * 2017-12-14 2018-06-15 深圳市欧瑞博科技有限公司 语音指令识别方法、装置及服务器和计算机可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986399A (zh) * 2021-09-15 2022-01-28 西安震有信通科技有限公司 一种调度命令执行方法、服务器及存储介质

Similar Documents

Publication Publication Date Title
US10223082B2 (en) Analysis of dynamic elements in bounded time
US7263699B2 (en) Preparation of a software configuration using an XML type programming language
US7509638B2 (en) Method and apparatus for providing a pluggable and extendable J2EE architecture
CN102402427B (zh) 一种Java应用程序的更新方法及装置
US7882492B2 (en) Intelligent computer program debugger, and system and method for implementing the same
US8448163B2 (en) Deploying J2EE web applications in an OSGI environment
US10331425B2 (en) Automated source code adaption to inject features between platform versions
US20030018950A1 (en) Dynamic redeploying environment for the rapid iterative development of software applications
CN112685035B (zh) 项目开发方法及装置、计算机可读存储介质、电子设备
US20020169591A1 (en) Module for developing wireless device applications using an integrated emulator
US20030236657A1 (en) Method of developing wireless device applications using an integrated emulator and an IDE
CN107577609B (zh) 一种基于主机端动态链接的嵌入式系统动态模块调试系统
CN112799663A (zh) 页面显示方法、装置、计算机可读存储介质及电子设备
US6513153B1 (en) Automatically integrating and executing application software modules
CN111880804A (zh) 应用程序代码的处理方法及装置
US7343606B2 (en) Mechanism for asynchronous components to be application framework agnostic
CN108536429B (zh) 一种开发软件的方法、装置、存储介质及电子设备
CN111177718A (zh) 命令的执行方法及装置
AU2022286923B2 (en) Software updater
US20040015856A1 (en) Automatically propagating distributed components during application development
CN115061797B (zh) 一种Quartz组件的调用方法及装置
JP2006276939A (ja) 仮想マシンのプログラム起動方法およびクライアントサーバシステム
CN115374083A (zh) 数据源的切换方法、装置、电子设备及存储介质
CN115129348A (zh) 应用程序的资源更新方法、装置、设备及可读存储介质
CN114816475A (zh) 一种嵌入式操作系统的更新方法、装置、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination