CN105247618B - 一种硬盘执行应用代码的方法及装置 - Google Patents

一种硬盘执行应用代码的方法及装置 Download PDF

Info

Publication number
CN105247618B
CN105247618B CN201480000524.9A CN201480000524A CN105247618B CN 105247618 B CN105247618 B CN 105247618B CN 201480000524 A CN201480000524 A CN 201480000524A CN 105247618 B CN105247618 B CN 105247618B
Authority
CN
China
Prior art keywords
application code
hard disk
virtual
code
virtual machine
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.)
Active
Application number
CN201480000524.9A
Other languages
English (en)
Other versions
CN105247618A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201711059662.6A priority Critical patent/CN107844360B/zh
Publication of CN105247618A publication Critical patent/CN105247618A/zh
Application granted granted Critical
Publication of CN105247618B publication Critical patent/CN105247618B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供一种硬盘执行应用代码的方法及装置,涉及存储技术领域,使得硬盘能够支持基于来自硬盘外部的应用代码对硬盘进行访问的方式,从而增强硬盘的性能,进而提升客户端与硬盘之间的交互能力。该方法包括:硬盘接收应用代码和应用代码的执行策略;硬盘根据应用代码,确定应用代码是否需要在虚拟机环境中执行;如是,则硬盘根据应用代码的执行策略,在虚拟机环境中执行应用代码。

Description

一种硬盘执行应用代码的方法及装置
技术领域
本发明涉及存储技术领域,尤其涉及一种硬盘执行应用代码的方法及装置。
背景技术
近年来,随着云存储的兴起,具有以太网接口的硬盘,即以太接口硬盘的应用越来越广泛。
现有的以太接口硬盘,提供开放式Key-Value语义接口,使得客户端可以使用以太接口硬盘的Key-Value接口对以太接口硬盘进行访问。具体的,客户端为以太接口硬盘提供Key以作为逻辑地址,以太接口硬盘获取到该Key后,以太接口硬盘可在其存储空间中寻址找到与该Key对应的物理地址,若客户端对以太接口硬盘进行读访问,以太接口硬盘则可从该物理地址中读出对应的Value,以及将该Value返回给客户端;若客户端对以太接口硬盘进行写访问,以太接口硬盘则可将客户端提供的Value写入该物理地址。
然而,现有技术中的以太接口硬盘仅支持基于Key-Value语义接口的访问方式,使得客户端只能够通过Key-Value接口对以太接口硬盘进行访问,限制了客户端与该以太接口硬盘之间的交互能力。
发明内容
本发明提供一种硬盘执行应用代码的方法及装置,使得硬盘能够支持基于来自硬盘外部的应用代码对硬盘进行访问的方式,从而增强硬盘的性能,进而提升客户端与硬盘之间的交互能力。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明提供一种硬盘执行应用代码的方法,包括:
硬盘接收应用代码和所述应用代码的执行策略;
所述硬盘根据所述应用代码,确定所述应用代码是否需要在虚拟机环境中执行;
如是,则所述硬盘根据所述应用代码的执行策略,在所述虚拟机环境中执行所述应用代码。
在第一方面的第一种可能的实现方式中,所述方法还包括:
所述硬盘接收虚拟机数据信息,所述虚拟机数据信息用于创建所述虚拟机环境;
所述硬盘根据所述虚拟机数据信息,创建所述虚拟机环境。
结合前述的第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述应用代码中携带虚拟机标识,所述方法还包括:
所述硬盘根据所述应用代码中携带的所述虚拟机标识,确定执行所述应用代码的虚拟机环境。
结合前述的第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,所述硬盘根据所述应用代码的执行策略,在所述虚拟机环境中执行所述应用代码,具体包括:
所述硬盘在所述虚拟机环境中为所述应用代码创建应用代码进程;
所述硬盘将所述应用代码加载至与所述应用代码进程对应的所述硬盘的内存中;
所述硬盘根据所述应用代码的执行策略,在所述虚拟机环境中执行所述应用代码进程。
结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:
所述硬盘接收所述虚拟机数据信息的执行指示,所述虚拟机数据信息的执行指示用于指示所述硬盘是否对所述虚拟机数据信息进行持久化;
所述硬盘根据所述虚拟机数据信息的执行指示,对所述虚拟机数据信息进行与所述虚拟机数据信息的执行指示对应的操作。
结合前述的第一方面或第一方面的第一种可能的实现方式至第四种可能的实现方式中的任一种实现方式,在第五种可能的实现方式中,
所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个。
第二方面,本发明提供一种硬盘,包括;
接收单元,用于接收应用代码和所述应用代码的执行策略;
确定单元,用于根据所述接收单元接收的所述应用代码,确定所述应用代码是否需要在虚拟机环境中执行;
执行单元,用于若所述确定单元确定所述应用代码需要在所述虚拟机环境中执行,则根据所述接收单元接收的所述应用代码的执行策略,在所述虚拟机环境中执行所述接收单元接收的所述应用代码。
在第二方面的第一种可能的实现方式中,所述硬盘还包括创建单元,
所述接收单元,还用于接收虚拟机数据信息,所述虚拟机数据信息用于创建所述虚拟机环境;
所述创建单元,用于根据所述接收单元接收的所述虚拟机数据信息,创建所述虚拟机环境。
结合前述的第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述应用代码中携带虚拟机标识,
所述确定单元,还用于根据所述应用代码中携带的所述虚拟机标识,确定执行所述应用代码的虚拟机环境。
结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述硬盘还包括加载单元,
所述创建单元,还用于在所述虚拟机环境中为所述接收单元接收的所述应用代码创建应用代码进程;
所述加载单元,用于将所述接收单元接收的所述应用代码加载至与所述创建单元创建的所述应用代码进程对应的所述硬盘的内存中;
所述执行单元,具体用于根据所述接收单元接收的所述应用代码的执行策略,在所述创建单元创建的所述虚拟机环境中执行所述创建单元创建的所述应用代码进程。
结合第二方面的第一种可能的实现方式,在第四种可能的实现方式中,
所述接收单元,还用于接收所述虚拟机数据信息的执行指示,所述虚拟机数据信息的执行指示用于指示是否对所述虚拟机数据信息进行持久化;
所述执行单元,还用于根据所述接收单元接收的所述虚拟机数据信息的执行指示,对所述接收单元接收的所述虚拟机数据信息进行与所述虚拟机数据信息的执行指示对应的操作。
结合前述的第二方面或第二方面的第一种可能的实现方式至第四种可能的实现方式中的任一种实现方式,在第五种可能的实现方式中,
所述接收单元接收的所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个。
第三方面,本发明还提供一种硬盘,包括:
处理器,用于接收应用代码和所述应用代码的执行策略,并根据所述应用代码,确定所述应用代码是否需要在虚拟机环境中执行,如是,则根据所述应用代码的执行策略,在所述虚拟机环境中执行所述应用代码;
存储器,用于存储所述应用代码和所述应用代码的执行策略。
在第三方面的第一种可能的实现方式中,
所述处理器,还用于接收虚拟机数据信息,并根据所述虚拟机数据信息,创建所述虚拟机环境,所述虚拟机数据信息用于创建所述虚拟机环境;
所述存储器,还用于存储所述虚拟机数据信息。
结合前述的第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,
所述应用代码中携带虚拟机标识,
所述处理器,还用于根据所述应用代码中携带的所述虚拟机标识,确定执行所述应用代码的虚拟机环境。
结合前述的第三方面或第三方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,
所述处理器,具体用于在所述虚拟机环境中为所述应用代码创建应用代码进程,并将所述应用代码加载至与所述应用代码进程对应的所述硬盘的内存中,以及在所述虚拟机环境中执行所述应用代码进程。
结合第三方面的第一种可能的实现方式,在第四种可能的实现方式中,
所述处理器,还用于接收所述虚拟机数据信息的执行指示,并根据所述虚拟机数据信息的执行指示,对所述虚拟机数据信息进行与所述虚拟机数据信息的执行指示对应的操作,所述虚拟机数据信息的执行指示用于指示是否对所述虚拟机数据信息进行持久化;
所述存储器,还用于存储所述虚拟机数据信息的执行指示。
结合前述的第三方面或第三方面的第一种可能的实现方式至第四种可能的实现方式中的任一种实现方式,在第五种可能的实现方式中,
所述处理器接收的所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个。
本发明提供一种硬盘执行应用代码的方法及装置,通过硬盘接收应用代码和该应用代码的执行策略,并确定该应用代码是否需要在虚拟机环境中执行,且若硬盘确定该应用代码需要在该虚拟机环境中执行,硬盘则根据该应用代码的执行策略,在该虚拟机环境中执行该应用代码。通过该方案,由于硬盘可以接收来自硬盘外部的应用代码(例如自定义的应用代码)和该应用代码的执行策略,并根据该执行策略,在虚拟机环境中执行该应用代码,即硬盘能够支持基于来自硬盘外部的应用代码对硬盘进行访问的方式,从而增强了硬盘的性能,进而提升了客户端与硬盘之间的交互能力。
第四方面,本发明提供一种硬盘执行应用代码的方法,包括:
硬盘接收应用代码和所述应用代码的执行策略;
所述硬盘为所述应用代码创建应用代码进程;
所述硬盘将所述应用代码加载至与所述应用代码进程对应的所述硬盘的内存中;
所述硬盘根据所述应用代码的执行策略,在所述硬盘的内存中执行所述应用代码进程。
在第四方面的第一种可能的实现方式中,
所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个,以及所述应用代码的标识,所述应用代码的起始位置和所述应用代码的长度。
结合前述的第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,
所述应用代码为二进制格式的应用代码。
第五方面,本发明提供一种硬盘,包括:
接收单元,用于接收应用代码和所述应用代码的执行策略;
创建单元,用于为所述接收单元接收的所述应用代码创建应用代码进程;
加载单元,用于将所述接收单元接收的所述应用代码加载至与所述创建单元创建的所述应用代码进程对应的所述硬盘的内存中;
执行单元,用于根据所述接收单元接收的所述应用代码的执行策略,在所述硬盘的内存中执行所述创建单元创建的所述应用代码进程。
在第五方面的第一种可能的实现方式中,
所述接收单元接收的所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个,以及所述应用代码的标识,所述应用代码的起始位置和所述应用代码的长度。
结合前述的第五方面或第五方面的第一种可能的实现方式,在第二种可能的实现方式中,
所述接收单元接收的所述应用代码为二进制格式的应用代码。
第六方面,本发明提供一种硬盘,包括:
处理器,用于接收应用代码和所述应用代码的执行策略,并为所述应用代码创建应用代码进程,且将所述应用代码加载至与所述应用代码进程对应的所述硬盘的内存中,以及根据所述应用代码的执行策略,在所述硬盘的内存中执行所述应用代码进程;
存储器,用于存储所述应用代码和所述应用代码的执行策略。
在第六方面的第一种可能的实现方式中,
所述处理器接收的所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个,以及所述应用代码的标识,所述应用代码的起始位置和所述应用代码的长度。
结合前述的第六方面或第六方面的第一种可能的实现方式,在第二种可能的实现方式中,
所述处理器接收的所述应用代码为二进制格式的应用代码。
本发明提供一种硬盘执行应用代码的方法及装置,通过硬盘接收应用代码和该应用代码的执行策略,且硬盘为该应用代码创建应用代码进程,以及硬盘将该应用代码加载至与该应用代码进程对应的该硬盘的内存中,从而硬盘根据该应用代码的执行策略,在该硬盘的内存中执行该应用代码进程。通过该方案,由于硬盘可以接收来自硬盘外部的应用代码(例如自定义的应用代码)和该应用代码的执行策略,并根据该执行策略,以进程的方式执行该应用代码,即硬盘能够支持基于来自硬盘外部的应用代码对硬盘进行访问的方式,从而增强了硬盘的性能,进而提升了客户端与硬盘之间的交互能力。
附图说明
图1为本发明实施例提供的一种硬盘执行应用代码的方法流程图一;
图2为本发明实施例提供的另一种硬盘执行应用代码的方法流程图一;
图3为本发明实施例提供的一种硬盘执行应用代码的方法流程图二;
图4为本发明实施例提供的一种硬盘执行应用代码的方法流程图三;
图5为本发明实施例提供的一种硬盘执行应用代码的方法流程图四;
图6为本发明实施例提供的另一种硬盘执行应用代码的方法流程图二;
图7为本发明实施例提供的硬盘的结构示意图一;
图8为本发明实施例提供的硬盘的结构示意图二;
图9为本发明实施例提供的硬盘的结构示意图三;
图10为本发明实施例提供的硬盘的结构示意图四;
图11为本发明实施例提供的硬盘的结构示意图五;
图12为本发明实施例提供的硬盘的结构示意图六。
具体实施方式
现有技术中,由于以太接口硬盘只支持Key-Value语义接口,并不支持其他的接口,因此,用户通过客户端和服务器访问硬盘时,只能使用Key-Value语义接口进行访问,而Key-Value语义接口只支持存储数据的一些操作,无法支持用户自定义的操作。本发明实施例提供的硬盘执行应用代码的方法中,可以为硬盘定义数据API(ApplicationProgramming Interface,应用程序编程接口)和管理API,使得硬盘可通过调用硬盘的数据API从服务器的数据平面接口接收用户指定操作的应用代码和该应用代码的执行策略;或者使得硬盘可通过调用硬盘的管理API从服务器的管理平面接口接收用户指定(从硬盘外部接收)操作的应用代码和该应用代码的执行策略。从而硬盘能够根据接收到的来自硬盘外部(例如用户根据需求自定义)的应用代码和该应用代码的执行策略,去执行该应用代码相应的操作(例如用户自定义的操作),实现了基于从硬盘外部接收的应用代码对硬盘进行访问,增强了硬盘的性能,进而提升了客户端与硬盘之间的交互能力。
下面结合附图对本发明实施例提供的硬盘执行应用代码的方法及装置进行详细地描述。具体的,本发明实施例提供的硬盘执行应用代码的方法中,对应于本发明实施例提供的一种应用代码的执行方法,该应用代码可以为需要在虚拟机环境中执行的应用代码,即该应用代码为采用某种程序设计语言编写的应用代码;对应于本发明实施例提供的另一种应用代码的执行方法,该应用代码可以为二进制格式的应用代码。
实施例一
本发明实施例提供一种硬盘执行应用代码的方法,如图1所示,该方法可以包括:
S101、硬盘接收应用代码和该应用代码的执行策略。
本发明实施例提供的硬盘可以为以太接口硬盘(也称为网络硬盘),该以太接口硬盘也可以称为智能硬盘,即本发明实施例提供的硬盘可以为基于ARM(Advanced ReducedInstruction Set Computing Machines,高级精简指令集计算机器)系统的硬盘。其中,该基于ARM系统的硬盘通过将ARM系统集成在传统的硬盘中,以提升传统硬盘的性能。
若用户需通过硬盘执行一些指定的操作(用户需在硬盘上扩展的一些功能),例如对硬盘进行病毒扫描、执行硬盘数据的完整性检查、对硬盘数据执行压缩、对硬盘进行垃圾回收、执行硬盘数据向其他硬盘迁移和拷贝、对硬盘数据基于用户提供的密钥进行加密或执行用户自定义策略等,用户则可编写这些指定操作的应用代码,并设置这些指定操作的应用代码的执行策略,从而用户可通过客户端和部署的服务器将这些应用代码和这些应用代码的执行策略发送至硬盘,即硬盘接收服务器发送的应用代码和该应用代码的执行策略。其中,该应用代码的执行策略可以为根据实际需求预设的。
需要说明的是,本发明实施例提供的硬盘执行应用代码的方法中,服务器可以包括数据平面接口和管理平面接口。其中,本实施例提供的硬盘执行应用代码的方法中,可通过服务器的数据平面接口传递应用代码和应用代码的执行策略至硬盘。
进一步地,由于本实施例中提供的应用代码为需要在虚拟机环境中才能执行的应用代码,即该应用代码为使用某种程序设计语言编写的应用代码,因此,服务器传递应用代码至硬盘时,可以采用服务器的数据平面接口进行传递。
具体的,可通过服务器的数据平面接口,并调用硬盘的数据API,将该应用代码和该应用代码的执行策略传递至硬盘。
特别的,本发明实施例提供的数据API可以为硬盘数据平面的一个接口,该数据API为与硬盘的Key-Value接口位于同一平面的接口。
需要说明的是,本发明实施例提供的硬盘执行应用代码的方法中,硬盘可以执行的应用代码包括但不限于上述用户指定操作的应用代码,即本发明实施例提供的应用代码可以由用户根据实际需求进行编写,本发明不作限制。
进一步地,上述应用代码的执行策略可以包括:执行应用代码的触发条件、应用代码的执行条件和执行完成应用代码后的操作中的至少一个。具体的,例如,执行应用代码的触发条件可以为:硬盘已24小时未接收到外部业务请求时执行该应用代码;应用代码的执行条件可以为:执行完成应用代码后退出,或执行应用代码遇到故障后重新执行该应用代码;执行完成应用代码后的操作可以为:执行完成应用代码后记录执行日志在硬盘的指定日志区,或执行完成应用代码后发送执行日志给外部网管服务器。
特别的,本发明实施例提供的应用代码的执行策略包括但不限于上述描述的几种,即本发明实施例提供的应用代码的执行策略可以根据实际执行需求进行设置,本发明不作限制。
S102、硬盘根据该应用代码,确定该应用代码是否需要在虚拟机环境中执行。
硬盘接收到应用代码后,硬盘可根据该应用代码,确定该应用代码是否需要在虚拟机环境中执行。
通常,最常见的是计算机中的各种虚拟机,以及由这些虚拟机构成的运行环境。如果通常所说的“虚拟机”指的是用于表示虚拟机的软硬件本身,那么“虚拟机环境”就是运行起来的虚拟机。
举例来说,如果虚拟机为JVM(JAVA Virtual Machine,JAVA虚拟机),那么虚拟机环境则为JVM环境。
S103、若硬盘确定该应用代码需要在该虚拟机环境中执行,硬盘则根据该应用代码的执行策略,在该虚拟机环境中执行该应用代码。
硬盘接收到应用代码后,硬盘可根据该应用代码确定该应用代码是否需要在某个虚拟机环境中执行,若硬盘确定该应用代码需要在某个虚拟机环境中执行,硬盘则可根据接收到的该应用代码的执行策略,在该某个虚拟机的环境中执行该应用代码。
具体的,若该应用代码需要在虚拟机环境中执行,则表示该应用代码为基于虚拟机才能执行的应用代码,即表示该应用代码为采用某种程序设计语言设计的应用代码,因此,硬盘在执行该应用代码时,可以基于该虚拟机解释执行该应用代码,也就是说,硬盘可以在虚拟机环境,即运行起来的虚拟机中解释执行该应用代码。
示例性的,若应用代码为JAVA(一种程序设计语言)字节码,相应的虚拟机为JVM,则硬盘在执行该JAVA字节码时,需要在JVM环境中解释执行该JAVA字节码,即在运行起来的JVM中解释执行该应用代码。其中,该JAVA字节码为对原始JAVA代码编译后的代码。
举例来说,本发明实施例提供的虚拟机、虚拟机环境,以及需要在该虚拟机环境中执行的应用代码之间的对应关系可以包括下述的任意一种:
(1)虚拟机为JVM,虚拟机环境为JVM环境、需要在该虚拟机环境中执行的应用代码为需要在JVM环境中执行的JAVA字节码。
(2)虚拟机为脚本引擎,虚拟机环境为脚本引擎环境,需要在该虚拟机环境中执行的应用代码为需要在脚本引擎环境中执行的脚本代码。
(3)虚拟机为SQL(Structured Query Language,结构化查询语言)引擎,虚拟机环境为SQL引擎环境,需要在该虚拟机环境中执行的应用代码为需要在SQL引擎环境中执行的SQL语句。
(4)虚拟机为用户自定义的引擎,虚拟机环境为用户自定义的引擎环境,需要在该虚拟机环境中执行的应用代码为需要在该用户自定义的引擎环境中执行的代码。
需要说明的是,上述四种虚拟机、虚拟机环境,以及需要在该虚拟机环境中执行的应用代码之间的对应关系仅是示例性的说明,即本发明实施例提供的虚拟机、虚拟机环境,以及需要在该虚拟机环境中执行的应用代码之间的对应关系包括但不限于上述四种,由其他满足实际设计要求的方式设计的虚拟机、虚拟机环境,以及需要在该虚拟机环境中执行的应用代码之间的对应关系也在本发明的保护范围之内。
本发明实施例提供一种硬盘执行应用代码的方法,通过硬盘接收应用代码和该应用代码的执行策略,并确定该应用代码是否需要在虚拟机环境中执行,且若硬盘确定该应用代码需要在该虚拟机环境中执行,硬盘则根据该应用代码的执行策略,在该虚拟机环境中执行该应用代码。通过该方案,由于硬盘可以接收来自硬盘外部的应用代码(例如自定义的应用代码)和该应用代码的执行策略,并根据该执行策略,在虚拟机环境中执行该应用代码,即硬盘能够支持基于来自硬盘外部的应用代码对硬盘进行访问的方式,从而增强了硬盘的性能,进而提升了客户端与硬盘之间的交互能力。
本发明实施例提供另一种硬盘执行应用代码的方法,如图2所示,该方法可以包括:
S201、硬盘接收应用代码和该应用代码的执行策略。
本发明实施例提供的硬盘可以为以太接口硬盘(也称为网络硬盘),该以太接口硬盘也可以称为智能硬盘,即本发明实施例提供的硬盘可以为基于ARM系统的硬盘。其中,该基于ARM系统的硬盘通过将ARM系统集成在传统的硬盘中,以提升传统硬盘的性能。
若用户需通过硬盘执行一些指定的操作(用户需在硬盘上扩展的一些功能),例如对硬盘进行病毒扫描、执行硬盘数据的完整性检查、对硬盘数据执行压缩、对硬盘进行垃圾回收、执行硬盘数据向其他硬盘迁移和拷贝、对硬盘数据基于用户提供的密钥进行加密或执行用户自定义策略等,用户则可编写这些指定操作的应用代码,并设置这些指定操作的应用代码的执行策略,从而用户可通过客户端和部署的服务器将这些应用代码和这些应用代码的执行策略发送至硬盘,即硬盘接收服务器发送的应用代码和该应用代码的执行策略。其中,该应用代码的执行策略可以为根据实际需求预设的。
需要说明的是,本发明实施例提供的硬盘执行应用代码的方法中,服务器可以包括数据平面接口和管理平面接口。其中,本实施例提供的硬盘执行应用代码的方法中,可通过服务器的管理平面接口或服务器的数据平面接口传递应用代码和应用代码的执行策略至硬盘。
进一步地,本实施例中提供的应用代码为硬盘能够直接执行的应用代码,即该应用代码为二进制格式的应用代码,因此,服务器传递该应用代码至硬盘时,可以采用服务器的管理平面接口进行传递,也可以使用服务器的数据平面接口进行传递。
具体的,可通过服务器的管理平面接口,并调用硬盘的管理API,将该应用代码和该应用代码的执行策略传递至硬盘;也可以通过服务器的数据平面接口,并调用硬盘的数据API,将该应用代码和该应用代码的执行策略传递至硬盘。其中,服务器可通过firmware(固件)加载的方式,采用服务器的管理平面接口将应用代码传递至硬盘。
特别的,本发明实施例提供的硬盘的管理API可以为硬盘管理平面的一个接口;相应的,硬盘的数据API可以为硬盘数据平面的一个接口,其中,该数据API为与硬盘的Key-Value接口位于同一平面的接口。
需要说明的是,本发明实施例提供的硬盘执行应用代码的方法中,硬盘可以执行的应用代码包括但不限于上述用户指定操作的应用代码,即本发明实施例提供的应用代码可以由用户根据实际需求进行编写,本发明不作限制。
进一步地,上述应用代码的执行策略可以包括:执行应用代码的触发条件、应用代码的执行条件和执行完成应用代码后的操作中的至少一个,以及应用代码的标识,应用代码的起始位置和应用代码的长度。具体的,例如,执行应用代码的触发条件可以为:硬盘已24小时未接收到外部业务请求时执行该应用代码;应用代码的执行条件可以为:执行完成应用代码后退出,或执行应用代码遇到故障后重新执行该应用代码;执行完成应用代码后的操作可以为:执行完成应用代码后记录执行日志在硬盘的指定日志区,或执行完成应用代码后发送执行日志给外部网管服务器;应用代码的标识可以用于表示该应用代码为本发明实施例提供的应用代码,即为用户提供的扩展的应用代码;应用代码的起始位置可以用于表示该应用代码存储的起始地址。硬盘接收到应用代码的执行策略之后,硬盘可根据应用代码的标识确认该应用代码为用户提供的扩展的应用代码,并根据该应用代码的起始位置和该应用代码的长度获取到该应用代码,以及根据该应用代码的执行策略,执行该应用代码。
特别的,本发明实施例提供的应用代码的执行策略中,除了应用代码的标识,应用代码的起始位置和应用代码的长度之外,该应用代码的执行策略包括但不限于上述描述的几种,即本发明实施例提供的应用代码的执行策略可以根据实际执行需求进行设置,本发明不作限制。
S202、硬盘为该应用代码创建应用代码进程。
硬盘接收到应用代码后,硬盘可为该应用代码创建应用代码进程,即硬盘可创建与该应用代码对应的应用代码进程。
可以理解的是,进程是操作系统结构的基础;是程序的一次动态执行;是程序的运行实例;是程序及其数据在处理机上顺序执行时所发生的活动;是程序在一个数据集合上运行的过程;是系统进行资源分配和调度的一个独立单位。示例性的,本发明实施例提供的应用代码进程为应用代码程序的一次动态执行;为应用代码程序的运行实例。
S203、硬盘将该应用代码加载至与该应用代码进程对应的硬盘的内存中。
硬盘创建应用代码进程之后,硬盘可将该应用代码加载至与该应用代码进程对应的硬盘的内存中。
进一步地,对于本发明实施例提供的硬盘执行应用代码的方法,S202中硬盘创建的应用代码进程为进程的管理结构,即硬盘创建的应用代码进程为一个程序架构,该程序架构经过S203,将应用代码加载至与应用代码进程对应的硬盘的内存中之后,该应用代码进程才为该应用代码程序在硬盘的内存中的运行实例。
S204、硬盘根据该应用代码的执行策略,在硬盘的内存中执行该应用代码进程。
硬盘将应用代码加载至与该应用代码进程对应的硬盘的内存中之后,硬盘可根据该应用代码的执行策略,在硬盘的内存中执行该应用代码进程,即硬盘可根据该应用代码的执行策略,在硬盘的内存中以进程的形式执行该应用代码。
本发明实施例提供另一种硬盘执行应用代码的方法,通过硬盘接收应用代码和该应用代码的执行策略,且硬盘为该应用代码创建应用代码进程,以及硬盘将该应用代码加载至与该应用代码进程对应的该硬盘的内存中,从而硬盘根据该应用代码的执行策略,在该硬盘的内存中执行该应用代码进程。通过该方案,由于硬盘可以接收来自硬盘外部的应用代码(例如自定义的应用代码)和该应用代码的执行策略,并根据该执行策略,以进程的方式执行该应用代码,即硬盘能够支持基于来自硬盘外部的应用代码对硬盘进行访问的方式,从而增强了硬盘的性能,进而提升了客户端与硬盘之间的交互能力。
实施例二
如图3所示,本发明实施例提供一种硬盘执行应用代码的方法,该方法可以包括:
S301、硬盘接收虚拟机数据信息,该虚拟机数据信息用于创建虚拟机环境。
本发明实施例提供的硬盘可以为以太接口硬盘(也称为网络硬盘),该以太接口硬盘也可以称为智能硬盘,即本发明实施例提供的硬盘可以为基于ARM系统的硬盘。其中,该基于ARM系统的硬盘通过将ARM系统集成在传统的硬盘中,以提升传统硬盘的性能。
若用户需通过硬盘执行一些指定的操作(用户需在硬盘上扩展的一些功能),例如对硬盘进行病毒扫描、执行硬盘数据的完整性检查、对硬盘数据执行压缩、对硬盘进行垃圾回收、执行硬盘数据向其他硬盘迁移和拷贝、对硬盘数据基于用户提供的密钥进行加密或执行用户自定义策略等,用户则可编写这些指定操作的应用代码。为了节省硬盘的系统资源,用户一般可采用某种程序设计语言编写这些指定操作的应用代码,而采用该程序设计语言编写的这些指定操作的应用代码需依赖于对应的虚拟机执行,即这些指定操作的应用代码需要在对应的虚拟机环境中执行。因此,硬盘首次执行采用某种程序设计语言编写的应用代码时,硬盘需先创建与该虚拟机对应运行环境,即虚拟机环境。具体的,硬盘接收虚拟机数据信息,其中,该虚拟机数据信息可用于创建虚拟机环境。
特别的,该虚拟机数据信息中可以包括虚拟机标识,其中,该虚拟机标识可以为该虚拟机的名称,可以为该虚拟机的类型,也可以为该虚拟机的名称和该虚拟机的类型,还可以为其他任意满足区分要求的标识,本发明不作限制。
例如,若该虚拟机数据信息为JVM数据,则该虚拟机数据信息中可以包括JVM标识(JVM的名称和/或JVM的类型)。具体的,该虚拟机数据信息中包括的虚拟机的名称可以为JVM,该虚拟机数据信息中包括的虚拟机类型可以为JVM的类型,其中,该JVM的类型可以为“JVM XXXX”(“XXXX”可以用于表示该JVM的版本号或生产该JVM的厂商标识)。
S302、硬盘根据该虚拟机数据信息,创建该虚拟机环境。
硬盘接收到虚拟机数据信息之后,硬盘可根据该虚拟机数据信息,创建该虚拟机环境。
通常,最常见的是计算机中的各种虚拟机,以及由这些虚拟机构成的运行环境。如果通常所说的“虚拟机”指的是用于表示虚拟机的软硬件本身,那么“虚拟机环境”就是运行起来的虚拟机。
举例来说,如果虚拟机为JVM,那么虚拟机环境则为JVM环境。
S303、硬盘接收应用代码和该应用代码的执行策略。
本发明实施例中,用户根据实际需求编写指定操作的应用代码,并设置这些指定操作的应用代码的执行策略后,用户可通过客户端和部署的服务器将这些应用代码和这些应用代码对应的执行策略发送至硬盘,即硬盘接收服务器发送的应用代码和该应用代码的执行策略,其中,该应用代码的执行策略可以为根据实际需求预设的。
需要说明的是,本发明实施例提供的硬盘执行应用代码的方法中,服务器可以包括数据平面接口和管理平面接口。其中,本实施例提供的硬盘执行应用代码的方法中,可通过服务器的数据平面接口传递应用代码和应用代码的执行策略至硬盘。
进一步地,由于本实施例中提供的应用代码为需要在虚拟机环境中才能执行的应用代码,即该应用代码为使用某种程序设计语言编写的应用代码,因此,服务器传递应用代码至硬盘时,可以采用服务器的数据平面接口进行传递。
具体的,可通过服务器的数据平面接口,并调用硬盘的数据API,将该应用代码和该应用代码的执行策略传递至硬盘。
特别的,本发明实施例提供的数据API可以为硬盘数据平面的一个接口,该数据API为与硬盘的Key-Value接口位于同一平面的接口。
需要说明的是,本发明实施例提供的硬盘执行应用代码的方法中,硬盘可以执行的应用代码包括但不限于上述用户指定操作的应用代码,即本发明实施例提供的应用代码可以由用户根据实际需求进行编写,本发明不作限制。
进一步地,上述应用代码的执行策略可以包括:执行应用代码的触发条件、应用代码的执行条件和执行完成应用代码后的操作中的至少一个。具体的,例如,执行应用代码的触发条件可以为:硬盘已24小时未接收到外部业务请求时执行该应用代码;应用代码的执行条件可以为:执行完成应用代码后退出,或执行应用代码遇到故障后重新执行该应用代码;执行完成应用代码后的操作可以为:执行完成应用代码后记录执行日志在硬盘的指定日志区,或执行完成应用代码后发送执行日志给外部网管服务器。
可以理解的是,本发明实施例提供的应用代码的执行策略包括但不限于上述描述的几种,即本发明实施例提供的应用代码的执行策略可以根据实际执行需求进行设置,本发明不作限制。
S304、硬盘根据该应用代码,确定该应用代码是否需要在虚拟机环境中执行。
硬盘接收到应用代码之后,硬盘可根据该应用代码,确定该应用代码是否需要在虚拟机环境中执行。
特别的,该应用代码中也可以包括虚拟机标识,其中,该虚拟机标识可以为该虚拟机的名称,可以为该虚拟机的类型,也可以为该虚拟机的名称和该虚拟机的类型,还可以为其他任意满足区分要求的标识,本发明不作限制。
例如,若该应用代码为JAVA字节码,即需要在JVM环境中执行的应用代码,则该应用代码中可以包括JVM标识(JVM的名称和/或JVM的类型)。具体的,该应用代码中包括的虚拟机的名称可以为JVM,该应用代码中包括的虚拟机的类型可以为JVM的类型,其中,该JVM的类型可以为“JVM XXXX”(“XXXX”可以用于表示该JVM的版本号或生产该JVM的厂商标识)。
一种可能的实现方式中,若应用代码中携带了虚拟机标识,则硬盘可根据该应用代码中携带的虚拟机标识,确定执行该应用代码的虚拟机环境;相反的,若应用代码中未携带虚拟机标识,硬盘可确定该应用代码不需要在虚拟机环境中执行。
需要说明的是,本发明可以不限制S301-S302和S303-S304的执行顺序,即本发明可以先执行S301-S302,后执行S303-S304;也可以先执行S303-S304,后执行S301-S302;还可以同时执行S301-S302和S303-S304。
S305、若硬盘确定该应用代码需要在虚拟机环境中执行,则硬盘可根据该应用代码中携带的虚拟机标识,确定执行该应用代码的虚拟机环境。
硬盘确定该应用代码需要在虚拟机环境中执行之后,硬盘可进一步根据该应用代码中携带的虚拟机标识,确定执行该应用代码的虚拟机环境。
示例性的,若应用代码中携带的虚拟机标识为JVM,则硬盘可根据该JVM,确定执行该应用代码的虚拟机环境为JVM环境。
具体的,若该应用代码需要在虚拟机环境中执行,则表示该应用代码为基于虚拟机才能执行的应用代码,即表示该应用代码为采用某种程序设计语言设计的应用代码,因此,硬盘在执行该应用代码时,可以基于该虚拟机解释执行该应用代码,也就是说,硬盘可以在虚拟机环境,即运行起来的虚拟机中解释执行该应用代码。
示例性的,若应用代码为JAVA(一种程序设计语言)字节码,虚拟机为JVM,则硬盘在执行该JAVA字节码时,需要在JVM环境中解释执行该JAVA字节码,即在运行起来的JVM中解释执行该应用代码。其中,该JAVA字节码为对原始JAVA代码编译后的代码。
举例来说,本发明实施例提供的虚拟机、虚拟机环境,以及需要在该虚拟机环境中执行的应用代码之间的对应关系可以包括下述的任意一种:
(1)虚拟机为JVM,虚拟机环境为JVM环境、需要在该虚拟机环境中执行的应用代码为需要在JVM环境中执行的JAVA字节码。
(2)虚拟机为脚本引擎,虚拟机环境为脚本引擎环境,需要在该虚拟机环境中执行的应用代码为需要在脚本引擎环境中执行的脚本代码。
(3)虚拟机为SQL引擎,虚拟机环境为SQL引擎环境,需要在该虚拟机环境中执行的应用代码为需要在SQL引擎环境中执行的SQL语句。
(4)虚拟机为用户自定义的引擎,虚拟机环境为用户自定义的引擎环境,需要在该虚拟机环境中执行的应用代码为需要在该用户自定义的引擎环境中执行的代码。
需要说明的是,上述四种虚拟机、虚拟机环境,以及需要在该虚拟机环境中执行的应用代码之间的对应关系仅是示例性的说明,即本发明实施例提供的虚拟机、虚拟机环境,以及需要在该虚拟机环境中执行的应用代码之间的对应关系包括但不限于上述四种,由其他满足实际设计要求的方式设计的虚拟机、虚拟机环境,以及需要在该虚拟机环境中执行的应用代码之间的对应关系也在本发明的保护范围之内。
S306、硬盘根据该应用代码的执行策略,在该虚拟机环境中执行该应用代码。
硬盘确定能够执行应用代码的虚拟机环境之后,硬盘可根据该应用代码的执行策略,在该虚拟机环境中执行该应用代码。
可选的,如图4所示,本发明实施例提供的硬盘执行应用代码的方法还可以包括:
S307、硬盘接收该虚拟机数据信息的执行指示,该虚拟机数据信息的执行指示用于指示硬盘是否对该虚拟机数据信息进行持久化。
硬盘接收该虚拟机数据信息的执行指示,其中,该虚拟机数据信息的执行指示可以为根据实际需求预设的,该虚拟机数据信息的执行指示可用于指示硬盘是否需对该虚拟机数据信息进行持久化。
其中,持久化是指将数据(如硬盘的内存中的对象)保存到可永久保存的存储设备中,如磁盘。持久化的主要应用是将内存中的对象存储在关系型的数据库、磁盘文件以及XML(eXtensible Markup Language,可扩展标记语言)数据文件中等。示例性的,JDBC(JAVAData Base Connectivity,JAVA数据库连接)就是一种持久化机制,文件IO也是一种持久化机制。
进一步地,本发明实施例提供的虚拟机数据信息的执行指示具体可以包括:将该虚拟机数据信息持久化到硬盘的存储介质,或在硬盘的内存中运行该虚拟机数据信息且不对该虚拟机数据信息进行持久化。其中,硬盘的存储介质可以为硬盘介质或硬盘的闪存。
S308、硬盘根据该虚拟机数据信息的执行指示,对该虚拟机数据信息进行与该虚拟机数据信息的执行指示对应的操作。
硬盘接收到该虚拟机数据信息的执行指示之后,硬盘可根据该虚拟机数据信息的执行指示,对该虚拟机数据信息进行与该虚拟机数据信息的执行指示对应的操作。具体的,若该虚拟机数据信息的执行指示指示硬盘将该虚拟机数据信息持久化到硬盘的存储介质,硬盘则根据该虚拟机数据信息的执行指示,将该虚拟机数据信息持久化到硬盘的存储介质;若该虚拟机数据信息的执行指示指示硬盘在硬盘的内存中运行该虚拟机数据信息且不对该虚拟机数据信息进行持久化,硬盘则根据该虚拟机数据信息的执行指示,在硬盘的内存中运行该虚拟机数据信息而不对该虚拟机数据信息进行持久化。
需要说明的是,本发明实施例提供的硬盘执行应用代码的方法,可以将硬盘对虚拟机数据信息进行的操作,即虚拟机数据信息的执行指示设置为默认配置,这样硬盘则无需执行S307和S308,即只有为硬盘对虚拟机数据信息的操作设置执行指示时,硬盘才需执行S307和S308。
进一步地,本发明可以不限制S307和S301的执行顺序,即本发明可以先执行S307,后执行S301;也可以先执行S301,后执行S307;还可以同时执行S307和S301。
进一步地,本发明也可以不限制S307和S303的执行顺序,即本发明可以先执行S307,后执行S303;也可以先执行S303,后执行S307;还可以同时执行S307和S303。
具体的,如图5所示,本发明实施例提供的硬盘执行应用代码的方法中,S306,即硬盘根据该应用代码的执行策略,在该虚拟机环境中执行该应用代码,具体可以包括:
S3060、硬盘在该虚拟机环境中为该应用代码创建应用代码进程。
硬盘确定执行该应用代码的虚拟机环境之后,硬盘若需在该虚拟机环境中执行该应用代码,硬盘则可在该虚拟机环境中为该应用代码创建应用代码进程。
可以理解的是,进程是操作系统结构的基础;是程序的一次动态执行;是程序的运行实例;是程序及其数据在处理机上顺序执行时所发生的活动;是程序在一个数据集合上运行的过程;是系统进行资源分配和调度的一个独立单位。示例性的,本发明实施例提供的应用代码进程为应用代码程序的一次动态执行;为应用代码程序的运行实例。
S3061、硬盘将该应用代码加载至与该应用代码进程对应的硬盘的内存中。
硬盘在该虚拟机环境中为该应用代码创建应用代码进程之后,硬盘可将该应用代码加载至与该应用代码进程对应的硬盘的内存中。
进一步地,对于本发明实施例提供的硬盘执行应用代码的方法,S3060中硬盘创建的应用代码进程为进程的管理结构,即硬盘创建的应用代码进程为一个程序架构,该程序架构经过S3061,将应用代码加载至与应用代码进程对应的硬盘的内存中之后,该应用代码进程才为该应用代码程序在硬盘的内存中的运行实例。
S3062、硬盘根据该应用代码的执行策略,在该虚拟机环境中执行该应用代码进程。
硬盘将应用代码加载至与应用代码进程对应的硬盘的内存中之后,硬盘可根据该应用代码的执行策略,在该虚拟机环境中执行该应用代码进程。
需要说明的是,本发明实施例提供的硬盘执行应用代码的方法中,当硬盘确定其接收到的应用代码需要在某个虚拟机环境中执行时,硬盘可执行S305和S306,即硬盘可先根据该应用代码中携带的虚拟机标识,确定执行该应用代码的虚拟机环境,并在该虚拟机环境中为该应用代码创建应用代码进程,且将该应用代码加载至与该应用代码进程对应的硬盘的内存中,以及根据该应用代码的执行策略,在该虚拟机环境中执行该应用代码进程。
进一步地,硬盘在创建了与上述虚拟机数据信息对应的虚拟机环境之后,硬盘后续可继续接收需要在该虚拟机环境中执行的其他应用代码,并在接收到该其他应用代码之后,硬盘可直接在该虚拟机环境中,再为该其他应用代码创建其他应用代码进程。
例如,若硬盘接收到应用代码A和应用代码B,应用代码A和应用代码B均在某个虚拟机环境中执行,则当硬盘接收到应用代码A时,硬盘可在该某个虚拟机环境中为应用代码A创建应用代码A进程,并将应用代码A加载至与该应用代码A进程对应的硬盘的内存中,以及在该某个虚拟机环境中执行该应用代码A进程;当硬盘接收到应用代码B时,硬盘可在该某个虚拟机环境中为应用代码B创建应用代码B进程,并将应用代码B加载至与该应用代码B进程对应的硬盘的内存中,以及在该某个虚拟机环境中执行该应用代码B进程,即硬盘可在该某个虚拟机环境中执行该应用代码A进程和该应用代码B进程。
进一步地,本实施例中的应用代码需要在虚拟机环境中执行,在该方法中,需要在虚拟机环境中执行的应用代码、该应用代码的执行策略、虚拟机数据信息,以及虚拟机标识等数据的传输通道可以与Key-Value数据的传输通道选择为一致的传输通道。
具体的,本发明实施例提供的需要在虚拟机环境中执行的应用代码、该应用代码的执行策略、虚拟机数据信息,以及虚拟机标识等数据的应用层传输通道可以为HTTP(Hypertext Transfer Protocol,超文本传输协议)方式。例如,可以在HTTP的消息体中指定需要在虚拟机环境中执行的应用代码;指定执行该应用代码的执行策略;指定具体的二进制格式的虚拟机数据信息;指定该数据信息为虚拟机数据信息;以及指定虚拟机标识等。
进一步地,本发明实施例提供的需要在虚拟机环境中执行的应用代码、该应用代码的执行策略、虚拟机数据信息,以及虚拟机标识等数据的应用层传输通道也可以为HTTP之外的其他自定义协议,其中,该自定义协议可以提供需要在虚拟机环境中执行的应用代码、该应用代码的执行策略、虚拟机数据信息,以及虚拟机标识等数据的语义描述。
本发明实施例提供一种硬盘执行应用代码的方法,通过硬盘接收应用代码和该应用代码的执行策略,并确定该应用代码是否需要在虚拟机环境中执行,且若硬盘确定该应用代码需要在该虚拟机环境中执行,硬盘则根据该应用代码的执行策略,在该虚拟机环境中执行该应用代码。通过该方案,由于硬盘可以接收来自硬盘外部的应用代码(例如自定义的应用代码)和该应用代码的执行策略,并根据该执行策略,在虚拟机环境中执行该应用代码,即硬盘能够支持基于来自硬盘外部的应用代码对硬盘进行访问的方式,从而增强了硬盘的性能,进而提升了客户端与硬盘之间的交互能力。
本发明实施例提供另一种硬盘执行应用代码的方法,如图6所示,该方法可以包括:
S401、硬盘接收应用代码和该应用代码的执行策略。
本发明实施例提供的硬盘可以为以太接口硬盘(也称为网络硬盘),该以太接口硬盘也可以称为智能硬盘,即本发明实施例提供的硬盘可以为基于ARM系统的硬盘。其中,该基于ARM系统的硬盘通过将ARM系统集成在传统的硬盘中,以提升传统硬盘的性能。
若用户需通过硬盘执行一些指定的操作(用户需在硬盘上扩展的一些功能),例如对硬盘进行病毒扫描、执行硬盘数据的完整性检查、对硬盘数据执行压缩、对硬盘进行垃圾回收、执行硬盘数据向其他硬盘迁移和拷贝、对硬盘数据基于用户提供的密钥进行加密或执行用户自定义策略等,用户则可编写这些指定操作的应用代码,并设置这些指定操作的应用代码的执行策略,从而用户可通过客户端和部署的服务器将这些应用代码和这些应用代码的执行策略发送至硬盘,即硬盘接收服务器发送的应用代码和该应用代码的执行策略,其中,该应用代码的执行策略可以为根据实际需求预设的。
需要说明的是,本发明实施例提供的硬盘执行应用代码的方法中,服务器可以包括数据平面接口和管理平面接口。其中,本实施例提供的硬盘执行应用代码的方法中,可通过服务器的管理平面接口或服务器的数据平面接口传递应用代码和应用代码的执行策略至硬盘。
进一步地,本实施例中提供的应用代码为硬盘能够直接执行的应用代码,即该应用代码为二进制格式的应用代码,因此,服务器传递该应用代码至硬盘时,可以采用服务器的管理平面接口进行传递,也可以使用服务器的数据平面接口进行传递。
具体的,可通过服务器的管理平面接口,并调用硬盘的管理API,将该应用代码和该应用代码的执行策略传递至硬盘;也可以通过服务器的数据平面接口,并调用硬盘的数据API,将该应用代码和该应用代码的执行策略传递至硬盘。其中,服务器可通过firmware加载的方式,采用服务器的管理平面接口将应用代码传递至硬盘。
特别的,本发明实施例提供的硬盘的管理API可以为硬盘管理平面的一个接口;相应的,硬盘的数据API可以为硬盘数据平面的一个接口,其中,该数据API为与硬盘的Key-Value接口位于同一平面的接口。
需要说明的是,本发明实施例提供的硬盘执行应用代码的方法中,硬盘可以执行的应用代码包括但不限于上述用户指定操作的应用代码,即本发明实施例提供的应用代码可以由用户根据实际需求进行编写,本发明不作限制。
进一步地,上述应用代码的执行策略可以包括:执行应用代码的触发条件、应用代码的执行条件和执行完成应用代码后的操作中的至少一个,以及应用代码的标识,应用代码的起始位置和应用代码的长度。具体的,例如,执行应用代码的触发条件可以为:硬盘已24小时未接收到外部业务请求时执行该应用代码;应用代码的执行条件可以为:执行完成应用代码后退出,或执行应用代码遇到故障后重新执行该应用代码;执行完成应用代码后的操作可以为:执行完成应用代码后记录执行日志在硬盘的指定日志区,或执行完成应用代码后发送执行日志给外部网管服务器;应用代码的标识可以用于表示该应用代码为本发明实施例提供的应用代码,即为用户提供的扩展的应用代码;应用代码的起始位置可以用于表示该应用代码存储的起始地址。硬盘接收到应用代码的执行策略之后,硬盘可根据应用代码的标识确认该应用代码为用户提供的扩展的应用代码,并根据该应用代码的起始位置和该应用代码的长度获取到该应用代码,以及根据该应用代码的执行策略,执行该应用代码。
可以理解的是,本发明实施例提供的应用代码的执行策略中,除了应用代码的标识,应用代码的起始位置和应用代码的长度之外,该应用代码的执行策略包括但不限于上述描述的几种,即本发明实施例提供的应用代码的执行策略可以根据实际执行需求进行设置,本发明不作限制。
S402、硬盘将该应用代码和该应用代码的执行策略存储于硬盘的存储介质中。
硬盘接收到应用代码和该应用代码的执行策略之后,硬盘可将该应用代码和该应用代码的执行策略存储于硬盘的存储介质中,其中,硬盘的存储介质可以为硬盘介质或硬盘的闪存。
特别的,本实施例中,由于从服务器加载至硬盘的应用代码为二进制格式的应用代码。这样,硬盘接收到该应用代码之后,硬盘可以直接以进程的形式执行该应用代码,而无需将该应用代码在对应的虚拟机环境中解释执行。
S403、硬盘为该应用代码创建应用代码进程。
硬盘接收到应用代码后,硬盘可为该应用代码创建应用代码进程,即硬盘可创建与该应用代码对应的应用代码进程。
可以理解的是,进程是操作系统结构的基础;是程序的一次动态执行;是程序的运行实例;是程序及其数据在处理机上顺序执行时所发生的活动;是程序在一个数据集合上运行的过程;是系统进行资源分配和调度的一个独立单位。示例性的,本发明实施例提供的应用代码进程为应用代码程序的一次动态执行;为应用代码程序的运行实例。
S404、硬盘将该应用代码加载至与该应用代码进程对应的硬盘的内存中。
硬盘创建应用代码进程之后,硬盘可将该应用代码加载至与该应用代码进程对应的硬盘的内存中。
进一步地,对于本发明实施例提供的硬盘执行应用代码的方法,S403中硬盘创建的应用代码进程为进程的管理结构,即硬盘创建的应用代码进程为一个程序架构,该程序架构经过S404,将应用代码加载至与应用代码进程对应的硬盘的内存中之后,该应用代码进程才为该应用代码程序在硬盘的内存中的运行实例。
S405、硬盘根据该应用代码的执行策略,在硬盘的内存中执行该应用代码进程。
硬盘将应用代码加载至与该应用代码进程对应的硬盘的内存中之后,硬盘可根据该应用代码的执行策略,在硬盘的内存中执行该应用代码进程,即硬盘可根据该应用代码的执行策略,在硬盘的内存中以进程的形式执行该应用代码。
进一步地,本实施例中的应用代码不需要在虚拟机环境中执行,在该方法中,应用代码和该应用代码的执行策略等数据的传输通道可以与Key-Value数据的传输通道选择为一致的传输通道。
具体的,本发明实施例提供的应用代码和该应用代码的执行策略等数据的应用层传输通道可以为HTTP方式。例如,可以在HTTP的消息体中指定具体的二进制格式的应用代码和该应用代码的执行策略等。
进一步地,本发明实施例提供的应用代码和该应用代码的执行策略等数据的应用层传输通道也可以为HTTP之外的其他自定义协议,其中,该自定义协议可以提供应用代码和该应用代码的执行策略等数据的语义描述。
本发明实施例提供另一种硬盘执行应用代码的方法,通过硬盘接收应用代码和该应用代码的执行策略,且硬盘为该应用代码创建应用代码进程,以及硬盘将该应用代码加载至与该应用代码进程对应的该硬盘的内存中,从而硬盘根据该应用代码的执行策略,在该硬盘的内存中执行该应用代码进程。通过该方案,由于硬盘可以接收来自硬盘外部的应用代码(例如自定义的应用代码)和该应用代码的执行策略,并根据该执行策略,以进程的方式执行该应用代码,即硬盘能够支持基于来自硬盘外部的应用代码对硬盘进行访问的方式,从而增强了硬盘的性能,进而提升了客户端与硬盘之间的交互能力。
实施例三
如图7所示,本发明实施例提供一种硬盘1,该硬盘1对应于本发明实施例提供的一种硬盘执行应用代码的方法,该硬盘1可以包括:
接收单元10,用于接收应用代码和所述应用代码的执行策略。
确定单元11,用于根据所述接收单元10接收的所述应用代码,确定所述应用代码是否需要在虚拟机环境中执行。
执行单元12,用于若所述确定单元11确定所述应用代码需要在所述虚拟机环境中执行,则根据所述接收单元10接收的所述应用代码的执行策略,在所述虚拟机环境中执行所述接收单元10接收的所述应用代码。
可选的,如图8所示,所述硬盘1还可以包括创建单元13,
所述接收单元10,还用于接收虚拟机数据信息,所述虚拟机数据信息用于创建所述虚拟机环境;所述创建单元13,用于根据所述接收单元10接收的所述虚拟机数据信息,创建所述虚拟机环境。
可选的,所述应用代码中携带虚拟机标识,
所述确定单元11,还用于根据所述应用代码中携带的所述虚拟机标识,确定所述创建单元13创建的执行所述应用代码的虚拟机环境。
可选的,如图9所示,所述硬盘1还可以包括加载单元14,
所述创建单元13,还用于在所述虚拟机环境中为所述接收单元10接收的所述应用代码创建应用代码进程;所述加载单元14,用于将所述接收单元10接收的所述应用代码加载至与所述创建单元13创建的所述应用代码进程对应的所述硬盘的内存中;所述执行单元12,具体用于根据所述接收单元10接收的所述应用代码的执行策略,在所述创建单元13创建的所述虚拟机环境中执行所述创建单元13创建的所述应用代码进程。
可选的,所述接收单元10,还用于接收所述虚拟机数据信息的执行指示,所述虚拟机数据信息的执行指示用于指示是否对所述虚拟机数据信息进行持久化;所述执行单元12,还用于根据所述接收单元10接收的所述虚拟机数据信息的执行指示,对所述接收单元10接收的所述虚拟机数据信息进行与所述虚拟机数据信息的执行指示对应的操作。
可选的,所述接收单元10接收的所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个。
可选的,所述应用代码、所述应用代码的执行策略、所述虚拟机数据信息、所述虚拟机数据信息的执行指示存储于所述硬盘的存储介质中。所述硬盘的存储介质可以包括硬盘介质和所述硬盘的闪存。具体的,所述应用代码、所述应用代码的执行策略、所述虚拟机数据信息、所述虚拟机数据信息的执行指示可以存储于硬盘介质中;所述应用代码、所述应用代码的执行策略、所述虚拟机数据信息、所述虚拟机数据信息的执行指示也可以存储于所述硬盘的闪存中;所述应用代码、所述应用代码的执行策略、所述虚拟机数据信息、所述虚拟机数据信息的执行指示中可以部分存储于硬盘介质中,部分存储于所述硬盘的闪存中,本发明不作限制。
需要说明的是,本发明实施例提供的硬盘1可以为以太接口硬盘(也称为网络硬盘),该以太接口硬盘也可以称为智能硬盘,即本发明实施例提供的硬盘可以为基于ARM系统的硬盘。其中,该基于ARM系统的硬盘通过将ARM系统集成在传统的硬盘中,以提升传统硬盘的性能。
本发明实施例提供一种硬盘,该硬盘接收应用代码和该应用代码的执行策略,并确定该应用代码是否需要在虚拟机环境中执行,且若硬盘确定该应用代码需要在该虚拟机环境中执行,硬盘则根据该应用代码的执行策略,在该虚拟机环境中执行该应用代码。通过该方案,由于硬盘可以接收来自硬盘外部的应用代码(例如自定义的应用代码)和该应用代码的执行策略,并根据该执行策略,在虚拟机环境中执行该应用代码,即硬盘能够支持基于来自硬盘外部的应用代码对硬盘进行访问的方式,从而增强了硬盘的性能,进而提升了客户端与硬盘之间的交互能力。
如图10所示,本发明实施例提供另一种硬盘2,该硬盘2对应于本发明实施例提供的另一种硬盘执行应用代码的方法,该硬盘2可以包括:
接收单元20,用于接收应用代码和所述应用代码的执行策略。
创建单元21,用于为所述接收单元20接收的所述应用代码创建应用代码进程。
加载单元22,用于将所述接收单元20接收的所述应用代码加载至与所述创建单元21创建的所述应用代码进程对应的所述硬盘的内存中。
执行单元23,用于根据所述接收单元20接收的所述应用代码的执行策略,在所述硬盘的内存中执行所述创建单元21创建的所述应用代码进程。
可选的,所述接收单元20接收的所述应用代码的执行策略可以包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个,以及所述应用代码的标识,所述应用代码的起始位置和所述应用代码的长度。
可选的,所述接收单元20接收的所述应用代码为二进制格式的应用代码。
可选的,所述应用代码和所述应用代码的执行策略存储于所述硬盘的存储介质中。所述硬盘的存储介质可以包括硬盘介质和所述硬盘的闪存。具体的,所述应用代码和所述应用代码的执行策略可以存储于硬盘介质中;所述应用代码和所述应用代码的执行策略也可以存储于所述硬盘的闪存中;所述应用代码和所述应用代码的执行策略中还可以部分存储于硬盘介质中,部分存储于所述硬盘的闪存中,本发明不作限制。
需要说明的是,本发明实施例提供的硬盘2可以为以太接口硬盘(也称为网络硬盘),该以太接口硬盘也可以称为智能硬盘,即本发明实施例提供的硬盘可以为基于ARM系统的硬盘。其中,该基于ARM系统的硬盘通过将ARM系统集成在传统的硬盘中,以提升传统硬盘的性能。
本发明实施例提供一种硬盘,该硬盘接收应用代码和该应用代码的执行策略,且硬盘为该应用代码创建应用代码进程,以及硬盘将该应用代码加载至与该应用代码进程对应的该硬盘的内存中,从而硬盘根据该应用代码的执行策略,在该硬盘的内存中执行该应用代码进程。通过该方案,由于硬盘可以接收来自硬盘外部的应用代码(例如自定义的应用代码)和该应用代码的执行策略,并根据该执行策略,以进程的方式执行该应用代码,即硬盘能够支持基于来自硬盘外部的应用代码对硬盘进行访问的方式,从而增强了硬盘的性能,进而提升了客户端与硬盘之间的交互能力。
实施例四
如图11所示,本发明实施例提供一种硬盘,该硬盘对应于本发明实施例提供的一种硬盘执行应用代码的方法,该硬盘可以包括处理器16,例如CPU(Central ProcessingUnit,中央处理器),至少一个数据接口17,存储器18,系统总线19。系统总线19用于实现这些组件之间的连接通信。存储器18可能包含RAM(Random Access Memory,高速随机存取存储器),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器等。存储器18可选的可以包含至少一个存储装置,具体的,存储器18可以为硬盘的存储介质,硬盘的存储介质可以包括硬盘介质180和硬盘的闪存181。
在一些实施方式中,存储器18存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
应用模块,包含各种应用程序,用于实现各种应用业务。
应用模块中包括但不限于本发明实施例提供的虚拟机环境及应用代码进程等。
当硬盘运行时,处理器16通过运行硬盘的内部执行指令,可以执行图1、图3至图5任意之一所述的方法流程,具体包括:
所述处理器16,用于通过所述系统总线19,从所述数据接口17接收应用代码和所述应用代码的执行策略,并根据所述应用代码,确定所述应用代码是否需要在虚拟机环境中执行,如是,则根据所述应用代码的执行策略,在所述虚拟机环境中执行所述应用代码;所述存储器18,用于存储所述应用代码、所述应用代码的执行策略,以及用于完成上述过程的软件程序,从而所述处理器16可通过执行该软件程序,并调用所述应用代码和所述应用代码的执行策略以完成上述过程。
具体的,所述应用代码、所述应用代码的执行策略,以及用于完成上述过程的软件程序可以存储于所述硬盘介质180中;也可以存储于所述硬盘的闪存181中;还可以部分存储于所述硬盘介质180中,部分存储于所述硬盘的闪存181中,本发明不作限制。
可选的,所述处理器16,还用于通过所述系统总线19,从所述数据接口17接收虚拟机数据信息,并根据所述虚拟机数据信息,创建所述虚拟机环境,所述虚拟机数据信息用于创建所述虚拟机环境;所述存储器18,还用于存储所述虚拟机数据信息。
可选的,所述应用代码中携带虚拟机标识,
所述处理器16,还用于根据所述应用代码中携带的所述虚拟机标识,确定执行所述应用代码的虚拟机环境。
可选的,所述处理器16,具体用于在所述虚拟机环境中为所述应用代码创建应用代码进程,并通过所述系统总线19将所述应用代码加载至与所述应用代码进程对应的所述硬盘的内存中,以及在所述虚拟机环境中执行所述应用代码进程。
可选的,所述处理器16,还用于通过所述系统总线19,从所述数据接口17接收所述虚拟机数据信息的执行指示,并根据所述虚拟机数据信息的执行指示,对所述虚拟机数据信息进行与所述虚拟机数据信息的执行指示对应的操作,所述虚拟机数据信息的执行指示用于指示是否对所述虚拟机数据信息进行持久化;所述存储器18,还用于存储所述虚拟机数据信息的执行指示。
可选的,所述处理器16接收的所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个。
可选的,所述虚拟机数据信息和所述虚拟机数据信息的执行指示可以存储于硬盘的存储介质中。具体的,所述虚拟机数据信息和所述虚拟机数据信息的执行指示可以存储于所述硬盘介质180中;所述虚拟机数据信息和所述虚拟机数据信息的执行指示也可以存储于所述硬盘的闪存181中;所述虚拟机数据信息和所述虚拟机数据信息的执行指示中可以部分存储于所述硬盘介质180中,部分存储于所述硬盘的闪存181中,本发明不作限制。
需要说明的是,本发明实施例提供的硬盘可以为以太接口硬盘(也称为网络硬盘),该以太接口硬盘也可以称为智能硬盘,即本发明实施例提供的硬盘可以为基于ARM系统的硬盘。其中,该基于ARM系统的硬盘通过将ARM系统集成在传统的硬盘中,以提升传统硬盘的性能。
本发明实施例提供一种硬盘,该硬盘接收应用代码和该应用代码的执行策略,并确定该应用代码是否需要在虚拟机环境中执行,且若硬盘确定该应用代码需要在该虚拟机环境中执行,硬盘则根据该应用代码的执行策略,在该虚拟机环境中执行该应用代码。通过该方案,由于硬盘可以接收来自硬盘外部的应用代码(例如自定义的应用代码)和该应用代码的执行策略,并根据该执行策略,在虚拟机环境中执行该应用代码,即硬盘能够支持基于来自硬盘外部的应用代码对硬盘进行访问的方式,从而增强了硬盘的性能,进而提升了客户端与硬盘之间的交互能力。
如图12所示,本发明实施例提供另一种硬盘,该硬盘对应于本发明实施例提供的另一种硬盘执行应用代码的方法,该硬盘可以包括处理器24,例如CPU,至少一个数据接口25,存储器26,系统总线27。系统总线27用于实现这些组件之间的连接通信。存储器26可能包含RAM,也可能还包括非不稳定的存储器,例如至少一个磁盘存储器。存储器26可选的可以包含至少一个存储装置,具体的,存储器26可以包括硬盘介质260和硬盘的闪存261。
在一些实施方式中,存储器26存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
应用模块,包含各种应用程序,用于实现各种应用业务。
应用模块中包括但不限于本发明实施例提供的应用代码进程等。
当硬盘运行时,处理器24通过运行硬盘的内部执行指令,可以执行图2和图6任意之一所述的方法流程,具体包括:
所述处理器24,用于通过所述系统总线27,从所述数据接口25接收应用代码和所述应用代码的执行策略,并为所述应用代码创建应用代码进程,且通过所述系统总线27将所述应用代码加载至与所述应用代码进程对应的所述硬盘的内存中,以及根据所述应用代码的执行策略,在所述硬盘的内存中执行所述应用代码进程;所述存储器26,用于存储所述应用代码、所述应用代码的执行策略,以及用于完成上述过程的软件程序,从而所述处理器24可通过执行该软件程序,并调用所述应用代码和所述应用代码的执行策略以完成上述过程。
具体的,所述应用代码、所述应用代码的执行策略,以及用于完成上述过程的软件程序可以存储于所述硬盘介质260中;也可以存储于所述硬盘的闪存261中;还可以部分存储于所述硬盘介质260中,部分存储于所述硬盘的闪存261中,本发明不作限制。
可选的,所述处理器24接收的所述应用代码的执行策略可以包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个,以及所述应用代码的标识,所述应用代码的起始位置和所述应用代码的长度。
可选的,所述处理器24接收的所述应用代码为二进制格式的应用代码。
需要说明的是,本发明实施例提供的硬盘可以为以太接口硬盘(也称为网络硬盘),该以太接口硬盘也可以称为智能硬盘,即本发明实施例提供的硬盘可以为基于ARM系统的硬盘。其中,该基于ARM系统的硬盘通过将ARM系统集成在传统的硬盘中,以提升传统硬盘的性能。
本发明实施例提供一种硬盘,该硬盘接收应用代码和该应用代码的执行策略,且硬盘为该应用代码创建应用代码进程,以及硬盘将该应用代码加载至与该应用代码进程对应的该硬盘的内存中,从而硬盘根据该应用代码的执行策略,在该硬盘的内存中执行该应用代码进程。通过该方案,由于硬盘可以接收来自硬盘外部的应用代码(例如自定义的应用代码)和该应用代码的执行策略,并根据该执行策略,以进程的方式执行该应用代码,即硬盘能够支持基于来自硬盘外部的应用代码对硬盘进行访问的方式,从而增强了硬盘的性能,进而提升了客户端与硬盘之间的交互能力。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (27)

1.一种硬盘执行应用代码的方法,其特征在于,包括:
硬盘接收应用代码和所述应用代码的执行策略;
所述硬盘根据所述应用代码,确定所述应用代码是否需要在虚拟机环境中执行;
如是,则所述硬盘根据所述应用代码的执行策略,在所述虚拟机环境中执行所述应用代码。
2.根据权利要求1所述的硬盘执行应用代码的方法,其特征在于,所述方法还包括:
所述硬盘接收虚拟机数据信息,所述虚拟机数据信息用于创建所述虚拟机环境;
所述硬盘根据所述虚拟机数据信息,创建所述虚拟机环境。
3.根据权利要求1或2所述的硬盘执行应用代码的方法,其特征在于,所述应用代码中携带虚拟机标识,所述方法还包括:
所述硬盘根据所述应用代码中携带的所述虚拟机标识,确定执行所述应用代码的虚拟机环境。
4.根据权利要求1-2任一项所述的硬盘执行应用代码的方法,其特征在于,所述硬盘根据所述应用代码的执行策略,在所述虚拟机环境中执行所述应用代码,具体包括:
所述硬盘在所述虚拟机环境中为所述应用代码创建应用代码进程;
所述硬盘将所述应用代码加载至与所述应用代码进程对应的所述硬盘的内存中;
所述硬盘根据所述应用代码的执行策略,在所述虚拟机环境中执行所述应用代码进程。
5.根据权利要求2所述的硬盘执行应用代码的方法,其特征在于,所述方法还包括:
所述硬盘接收所述虚拟机数据信息的执行指示,所述虚拟机数据信息的执行指示用于指示所述硬盘是否对所述虚拟机数据信息进行持久化;
所述硬盘根据所述虚拟机数据信息的执行指示,对所述虚拟机数据信息进行与所述虚拟机数据信息的执行指示对应的操作。
6.根据权利要求1-2,5任一项所述的硬盘执行应用代码的方法,其特征在于,
所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个。
7.一种硬盘执行应用代码的方法,其特征在于,包括:
硬盘接收应用代码和所述应用代码的执行策略;所述应用代码由用户根据实际需求编写;
所述硬盘为所述应用代码创建应用代码进程;
所述硬盘将所述应用代码加载至与所述应用代码进程对应的所述硬盘的内存中;
所述硬盘根据所述应用代码的执行策略,在所述硬盘的内存中执行所述应用代码进程。
8.根据权利要求7所述的硬盘执行应用代码的方法,其特征在于,
所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个,以及所述应用代码的标识,所述应用代码的起始位置和所述应用代码的长度。
9.根据权利要求7或8所述的硬盘执行应用代码的方法,其特征在于,
所述应用代码为二进制格式的应用代码。
10.一种硬盘,其特征在于,包括:
接收单元,用于接收应用代码和所述应用代码的执行策略;
确定单元,用于根据所述接收单元接收的所述应用代码,确定所述应用代码是否需要在虚拟机环境中执行;
执行单元,用于若所述确定单元确定所述应用代码需要在所述虚拟机环境中执行,则根据所述接收单元接收的所述应用代码的执行策略,在所述虚拟机环境中执行所述接收单元接收的所述应用代码。
11.根据权利要求10所述的硬盘,其特征在于,所述硬盘还包括创建单元,
所述接收单元,还用于接收虚拟机数据信息,所述虚拟机数据信息用于创建所述虚拟机环境;
所述创建单元,用于根据所述接收单元接收的所述虚拟机数据信息,创建所述虚拟机环境。
12.根据权利要求10或11所述的硬盘,其特征在于,所述应用代码中携带虚拟机标识,
所述确定单元,还用于根据所述应用代码中携带的所述虚拟机标识,确定执行所述应用代码的虚拟机环境。
13.根据权利要求11所述的硬盘,其特征在于,所述硬盘还包括加载单元,
所述创建单元,还用于在所述虚拟机环境中为所述接收单元接收的所述应用代码创建应用代码进程;
所述加载单元,用于将所述接收单元接收的所述应用代码加载至与所述创建单元创建的所述应用代码进程对应的所述硬盘的内存中;
所述执行单元,具体用于根据所述接收单元接收的所述应用代码的执行策略,在所述创建单元创建的所述虚拟机环境中执行所述创建单元创建的所述应用代码进程。
14.根据权利要求11所述的硬盘,其特征在于,
所述接收单元,还用于接收所述虚拟机数据信息的执行指示,所述虚拟机数据信息的执行指示用于指示是否对所述虚拟机数据信息进行持久化;
所述执行单元,还用于根据所述接收单元接收的所述虚拟机数据信息的执行指示,对所述接收单元接收的所述虚拟机数据信息进行与所述虚拟机数据信息的执行指示对应的操作。
15.根据权利要求10-11,13-14任一项所述的硬盘,其特征在于,
所述接收单元接收的所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个。
16.一种硬盘,其特征在于,包括:
接收单元,用于接收应用代码和所述应用代码的执行策略;所述应用代码由用户根据实际需求编写;
创建单元,用于为所述接收单元接收的所述应用代码创建应用代码进程;
加载单元,用于将所述接收单元接收的所述应用代码加载至与所述创建单元创建的所述应用代码进程对应的所述硬盘的内存中;
执行单元,用于根据所述接收单元接收的所述应用代码的执行策略,在所述硬盘的内存中执行所述创建单元创建的所述应用代码进程。
17.根据权利要求16所述的硬盘,其特征在于,
所述接收单元接收的所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个,以及所述应用代码的标识,所述应用代码的起始位置和所述应用代码的长度。
18.根据权利要求16或17所述的硬盘,其特征在于,
所述接收单元接收的所述应用代码为二进制格式的应用代码。
19.一种硬盘,其特征在于,包括:
处理器,用于接收应用代码和所述应用代码的执行策略,并根据所述应用代码,确定所述应用代码是否需要在虚拟机环境中执行,如是,则根据所述应用代码的执行策略,在所述虚拟机环境中执行所述应用代码;
存储器,用于存储所述应用代码和所述应用代码的执行策略。
20.根据权利要求19所述的硬盘,其特征在于,
所述处理器,还用于接收虚拟机数据信息,并根据所述虚拟机数据信息,创建所述虚拟机环境,所述虚拟机数据信息用于创建所述虚拟机环境;
所述存储器,还用于存储所述虚拟机数据信息。
21.根据权利要求19或20所述的硬盘,其特征在于,所述应用代码中携带虚拟机标识,
所述处理器,还用于根据所述应用代码中携带的所述虚拟机标识,确定执行所述应用代码的虚拟机环境。
22.根据权利要求19-20任一项所述的硬盘,其特征在于,
所述处理器,具体用于在所述虚拟机环境中为所述应用代码创建应用代码进程,并将所述应用代码加载至与所述应用代码进程对应的所述硬盘的内存中,以及在所述虚拟机环境中执行所述应用代码进程。
23.根据权利要求20所述的硬盘,其特征在于,
所述处理器,还用于接收所述虚拟机数据信息的执行指示,并根据所述虚拟机数据信息的执行指示,对所述虚拟机数据信息进行与所述虚拟机数据信息的执行指示对应的操作,所述虚拟机数据信息的执行指示用于指示是否对所述虚拟机数据信息进行持久化;
所述存储器,还用于存储所述虚拟机数据信息的执行指示。
24.根据权利要求19-20,23任一项所述的硬盘,其特征在于,
所述处理器接收的所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个。
25.一种硬盘,其特征在于,包括:
处理器,用于接收应用代码和所述应用代码的执行策略,并为所述应用代码创建应用代码进程,且将所述应用代码加载至与所述应用代码进程对应的所述硬盘的内存中,以及根据所述应用代码的执行策略,在所述硬盘的内存中执行所述应用代码进程;所述应用代码由用户根据实际需求编写;
存储器,用于存储所述应用代码和所述应用代码的执行策略。
26.根据权利要求25所述的硬盘,其特征在于,
所述处理器接收的所述应用代码的执行策略包括:执行所述应用代码的触发条件、所述应用代码的执行条件和执行完成所述应用代码后的操作中的至少一个,以及所述应用代码的标识,所述应用代码的起始位置和所述应用代码的长度。
27.根据权利要求25或26所述的硬盘,其特征在于,
所述处理器接收的所述应用代码为二进制格式的应用代码。
CN201480000524.9A 2014-04-30 2014-04-30 一种硬盘执行应用代码的方法及装置 Active CN105247618B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711059662.6A CN107844360B (zh) 2014-04-30 2014-04-30 一种硬盘执行应用代码的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/076563 WO2015165057A1 (zh) 2014-04-30 2014-04-30 一种硬盘执行应用代码的方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201711059662.6A Division CN107844360B (zh) 2014-04-30 2014-04-30 一种硬盘执行应用代码的方法及装置

Publications (2)

Publication Number Publication Date
CN105247618A CN105247618A (zh) 2016-01-13
CN105247618B true CN105247618B (zh) 2017-12-15

Family

ID=54358016

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201480000524.9A Active CN105247618B (zh) 2014-04-30 2014-04-30 一种硬盘执行应用代码的方法及装置
CN201711059662.6A Active CN107844360B (zh) 2014-04-30 2014-04-30 一种硬盘执行应用代码的方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201711059662.6A Active CN107844360B (zh) 2014-04-30 2014-04-30 一种硬盘执行应用代码的方法及装置

Country Status (4)

Country Link
US (1) US10310876B2 (zh)
JP (1) JP6418419B2 (zh)
CN (2) CN105247618B (zh)
WO (1) WO2015165057A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2528115B (en) * 2014-07-11 2021-05-19 Advanced Risc Mach Ltd Dynamic saving of registers in transactions
US10839060B1 (en) * 2019-08-27 2020-11-17 Capital One Services, Llc Techniques for multi-voice speech recognition commands
CN113934447A (zh) * 2021-09-13 2022-01-14 深圳市硅格半导体有限公司 硬盘管理方法、装置、设备及计算机程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996501B1 (en) * 2002-12-24 2006-02-07 Western Digital Technologies, Inc. Disk drive executing a manufacturing program internally by executing disk commands through a vector
CN101437046A (zh) * 2008-12-11 2009-05-20 成都市华为赛门铁克科技有限公司 一种固态硬盘中的数据处理方法、固态硬盘和网络设备
CN101546601A (zh) * 2009-05-13 2009-09-30 杭州华三通信技术有限公司 固态硬盘及存储系统
US8190575B1 (en) * 2008-08-27 2012-05-29 Western Digital Technologies, Inc. Disk drive maintaining multiple copies of code segments
CN103051687A (zh) * 2012-12-10 2013-04-17 浪潮(北京)电子信息产业有限公司 一种将应用业务部署到云存储虚拟机的系统及方法
CN103703441A (zh) * 2013-05-20 2014-04-02 华为技术有限公司 一种硬盘和数据处理方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3519954B2 (ja) * 1998-07-30 2004-04-19 富士通株式会社 チップイネーブル信号生成回路及びメモリ装置
US6546554B1 (en) * 2000-01-21 2003-04-08 Sun Microsystems, Inc. Browser-independent and automatic apparatus and method for receiving, installing and launching applications from a browser on a client computer
US7664903B2 (en) * 2002-02-25 2010-02-16 Solid Access Technologies LLC Control unit with PCI and SCSI buses and computing system with electronic semiconductor disk
US8549513B2 (en) * 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US7516771B2 (en) * 2005-06-30 2009-04-14 Hunter Douglas Inc. Lock lever mounting bracket for headrails on coverings for architectural openings
US7725614B2 (en) * 2006-08-08 2010-05-25 Sandisk Corporation Portable mass storage device with virtual machine activation
US7975119B2 (en) * 2006-09-04 2011-07-05 Sandisk Il Ltd Device for prioritized erasure of flash memory
CN101296258A (zh) * 2007-04-28 2008-10-29 海尔集团公司 具有网络功能的硬盘装置
US8230475B2 (en) * 2007-11-16 2012-07-24 At&T Intellectual Property I, L.P. Methods and computer program products for subcontent tagging and playback
EP2265163B1 (en) * 2008-03-28 2014-06-04 Real Imaging Ltd. Method apparatus and system for analyzing images
CN101442548B (zh) * 2008-12-17 2012-09-05 成都市华为赛门铁克科技有限公司 一种固态硬盘的操作方法和固态硬盘
US20110004878A1 (en) * 2009-06-30 2011-01-06 Hubert Divoux Methods and systems for selecting a desktop execution location
US8966623B2 (en) * 2010-03-08 2015-02-24 Vmware, Inc. Managing execution of a running-page in a virtual machine
US8413142B2 (en) * 2010-03-30 2013-04-02 Citrix Systems, Inc. Storage optimization selection within a virtualization environment
US8677055B2 (en) * 2010-04-12 2014-03-18 Sandisk Enterprises IP LLC Flexible way of specifying storage attributes in a flash memory-based object store
US8874859B2 (en) * 2010-12-22 2014-10-28 Vmware, Inc. Guest file system introspection and defragmentable virtual disk format for space efficiency
US8521922B2 (en) * 2011-01-10 2013-08-27 International Business Machines Corporation Input/output (I/O) path selection based on workload types
JP5613091B2 (ja) * 2011-03-25 2014-10-22 株式会社エクサ デバイスドライバ起動監視プログラム、電子機器
US8869145B1 (en) * 2011-04-28 2014-10-21 Netapp, Inc. Method and system for managing storage for virtual machines
US8412945B2 (en) * 2011-08-09 2013-04-02 CloudPassage, Inc. Systems and methods for implementing security in a cloud computing environment
US8578178B2 (en) * 2011-10-27 2013-11-05 Hitachi, Ltd. Storage system and its management method
WO2013168211A1 (ja) * 2012-05-07 2013-11-14 株式会社日立製作所 計算機システム、ストレージ管理計算機及びストレージ管理方法
CN102982275A (zh) * 2012-11-14 2013-03-20 北京奇虎科技有限公司 一种运行应用程序的安全控制方法和装置
CN102982276A (zh) * 2012-11-14 2013-03-20 北京奇虎科技有限公司 应用程序控制方法和装置
US8997080B2 (en) * 2013-02-11 2015-03-31 Citrix Systems, Inc. System updates with personal virtual disks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996501B1 (en) * 2002-12-24 2006-02-07 Western Digital Technologies, Inc. Disk drive executing a manufacturing program internally by executing disk commands through a vector
US8190575B1 (en) * 2008-08-27 2012-05-29 Western Digital Technologies, Inc. Disk drive maintaining multiple copies of code segments
CN101437046A (zh) * 2008-12-11 2009-05-20 成都市华为赛门铁克科技有限公司 一种固态硬盘中的数据处理方法、固态硬盘和网络设备
CN101546601A (zh) * 2009-05-13 2009-09-30 杭州华三通信技术有限公司 固态硬盘及存储系统
CN103051687A (zh) * 2012-12-10 2013-04-17 浪潮(北京)电子信息产业有限公司 一种将应用业务部署到云存储虚拟机的系统及方法
CN103703441A (zh) * 2013-05-20 2014-04-02 华为技术有限公司 一种硬盘和数据处理方法

Also Published As

Publication number Publication date
US10310876B2 (en) 2019-06-04
JP2017515236A (ja) 2017-06-08
WO2015165057A1 (zh) 2015-11-05
US20170046183A1 (en) 2017-02-16
CN105247618A (zh) 2016-01-13
CN107844360A (zh) 2018-03-27
JP6418419B2 (ja) 2018-11-07
CN107844360B (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
US10754872B2 (en) Automatically executing tasks and configuring access control lists in a data transformation system
CN106250199B (zh) 一种多语言云编译的动态微服务调用方法及装置
CN107147704A (zh) 一种面向区块链的通用服务中间件系统
CN108255589A (zh) 任务调度方法及服务器
CN108459962A (zh) 代码规范性检测方法、装置、终端设备及存储介质
CN106227611A (zh) 一种多语言云编译的动态微服务调用方法及装置
CN104461531B (zh) 一种报表系统自定义函数的实现方法
CN103092742A (zh) 程序日志记录优化方法和系统
WO2017053892A1 (en) Method and apparatus for transferring data between databases
CN108037919A (zh) 一种基于web的可视化大数据工作流配置方法及系统
CN102981882B (zh) 解析方法和装置
CN104679532B (zh) 内核模块加载方法和装置
CN110515641A (zh) 服务器固件的更新方法、装置及系统
CN104935660B (zh) 一种云程序开发运行系统、方法及装置
CN105247618B (zh) 一种硬盘执行应用代码的方法及装置
WO2017025940A1 (en) Static analysis and reconstruction of deep link handling in compiled applications
CN103299270A (zh) 运行时指令重组方法及装置
CN106357791A (zh) 业务处理方法、装置及系统
CN107403110A (zh) Hdfs数据脱敏方法及装置
CN107784068A (zh) 数据变化的获取方法、装置、存储介质、处理器及服务端
CN103109293A (zh) 一种用户行为处理系统及方法
CN108037941A (zh) 基于公共插件的应用程序更新方法、电子设备、存储介质
JP2023070148A (ja) ロボティックプロセスオートメーション(rpa)ロボットをリソースへ動的にバインドさせるためのシステムおよび方法
CN111158743B (zh) 大数据运维管理平台
US8984514B2 (en) Modifying scheduled execution of object modification methods associated with database objects

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant