JP6418419B2 - ハードディスクがアプリケーションコードを実行するための方法および装置 - Google Patents

ハードディスクがアプリケーションコードを実行するための方法および装置 Download PDF

Info

Publication number
JP6418419B2
JP6418419B2 JP2016565326A JP2016565326A JP6418419B2 JP 6418419 B2 JP6418419 B2 JP 6418419B2 JP 2016565326 A JP2016565326 A JP 2016565326A JP 2016565326 A JP2016565326 A JP 2016565326A JP 6418419 B2 JP6418419 B2 JP 6418419B2
Authority
JP
Japan
Prior art keywords
application code
hard disk
virtual machine
execution
data information
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
JP2016565326A
Other languages
English (en)
Other versions
JP2017515236A (ja
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
Publication of JP2017515236A publication Critical patent/JP2017515236A/ja
Application granted granted Critical
Publication of JP6418419B2 publication Critical patent/JP6418419B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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)

Description

本発明は記憶技術の分野に関し、詳細には、ハードディスクがアプリケーションコードを実行するための方法および装置に関する。
近年、クラウド記憶の出現と共に、イーサネット(登録商標)インターフェースを備えるハードディスク、すなわち、イーサネット・インターフェース・ハード・ディスクがますます広く用いられるようになってきている。
既存のイーサネット・インターフェース・ハード・ディスクはオープンなKey−Valueセマンティックインターフェースを提供し、そのためクライアントは、イーサネット・インターフェース・ハード・ディスクのKey−Valueインターフェースを用いてイーサネット・インターフェース・ハード・ディスクにアクセスすることができる。具体的には、クライアントはイーサネット・インターフェース・ハード・ディスクに論理アドレスとして用いられるべきKeyを提供し、イーサネット・インターフェース・ハード・ディスクがKeyを取得した後で、イーサネット・インターフェース・ハード・ディスクは、アドレス指定によってイーサネット・インターフェース・ハード・ディスクの記憶空間において、Keyに対応する物理アドレスを見つけることができる。クライアントがイーサネット・インターフェース・ハード・ディスク上で読み取りアクセスを行う場合には、イーサネット・インターフェース・ハード・ディスクは物理アドレスから対応するValueを読み取り、そのValueをクライアントへ返すことができ、または、クライアントがイーサネット・インターフェース・ハード・ディスク上で書き込みアクセスを行う場合には、イーサネット・インターフェース・ハード・ディスクは、クライアントによって提供されるValueを物理アドレスに書き込むことができる。
しかし、先行技術のイーサネット・インターフェース・ハード・ディスクは、Key−Valueセマンティックインターフェースに基づくものであるアクセス方法だけをサポートする。したがってクライアントは、当該Key−Valueインターフェースを用いてしかイーサネット・インターフェース・ハード・ディスクにアクセスすることができず、イーサネット・インターフェース・ハード・ディスクと対話するクライアントの能力が制限される。
本発明は、アプリケーションコードを実行するハードディスクのための方法および装置を提供し、そのためハードディスクは、ハードディスクの外部からのものであるアプリケーションコードに基づいてハードディスクにアクセスする方法をサポートすることができ、それによってハードディスクの性能が改善され、ハードディスクと対話するクライアントの能力が改善される。
前述の目的を達成するために、本発明の実施形態においては以下の技術的解決策が用いられる。
第1の態様によれば、本発明は、ハードディスクがアプリケーションコードを実行するための方法を提供し、本方法は、
ハードディスクにより、アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取るステップと、
ハードディスクにより、アプリケーションコードに従って、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定するステップと、
アプリケーションコードが仮想マシン環境で実行される必要がある場合、ハードディスクにより、アプリケーションコードの実行ポリシーに従って、仮想マシン環境でアプリケーションコードを実行するステップと、を含む。
第1の態様の第1の可能な実施態様において、本方法は、
ハードディスクにより、仮想マシンデータ情報を受け取るステップであって、仮想マシンデータ情報は、仮想マシン環境を作成するために用いられる、ステップと、
ハードディスクにより、仮想マシンデータ情報に従って、仮想マシン環境を作成するステップと、をさらに含む。
第1の態様または第1の態様の第1の可能な実施態様に関連して、第2の可能な実施態様において、アプリケーションコードは、仮想マシン識別子を搬送し、本方法は、
ハードディスクにより、アプリケーションコードで搬送された仮想マシン識別子に従って、アプリケーションコードが実行される仮想マシン環境を決定するステップをさらに含む。
第1の態様または第1の態様の第1の可能な実施態様と第2の可能な実施態様のどちらかの実施態様に関連して、第3の可能な実施態様において、ハードディスクにより、アプリケーションコードの実行ポリシーに従って、仮想マシン環境でアプリケーションコードを実行するステップは、具体的には、
ハードディスクにより、仮想マシン環境におけるアプリケーションコードのためのアプリケーション・コード・プロセスを作成するステップと、
ハードディスクにより、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへアプリケーションコードをロードするステップと、
ハードディスクにより、アプリケーションコードの実行ポリシーに従って、仮想マシン環境でアプリケーション・コード・プロセスを実行するステップと、を含む。
第1の態様の第1の可能な実施態様に関連して、第4の可能な実施態様において、本方法は、
ハードディスクにより、仮想マシンデータ情報の実行指示を受け取るステップであって、仮想マシンデータ情報の実行指示は、仮想マシンデータ情報を持続させるべきかどうかをハードディスクに指示するために用いられる、ステップと、
ハードディスクにより、仮想マシンデータ情報の実行指示に従って、仮想マシンデータ情報の操作を行うステップであって、操作は、仮想マシンデータ情報の実行指示に対応する、ステップと、をさらに含む。
第1の態様、または第1の態様の第1の可能な実施態様から第4の可能な実施態様のうちの任意の実施態様に関連して、第5の可能な実施態様において、
アプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つを含む。
第2の態様によれば、本発明は、ハードディスクを提供し、本ハードディスクは、
アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取るように構成された、受け取り部と、
受け取り部によって受け取られたアプリケーションコードに従って、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定するように構成された、判定部と、
判定部がアプリケーションコードは仮想マシン環境で実行される必要があると判定した場合、受け取り部によって受け取られたアプリケーションコードの実行ポリシーに従って、仮想マシン環境で、受け取り部によって受け取られたアプリケーションコードを実行するように構成された、実行部と、を含む。
第2の態様の第1の可能な実施態様において、本ハードディスクは、作成部をさらに含み、
受け取り部は、仮想マシンデータ情報を受け取るようにさらに構成されており、仮想マシンデータ情報は、仮想マシン環境を作成するために用いられ、
作成部は、受け取り部によって受け取られた仮想マシンデータ情報に従って、仮想マシン環境を作成するように構成されている。
第2の態様または第2の態様の第1の可能な実施態様に関連して、第2の可能な実施態様において、アプリケーションコードは、仮想マシン識別子を搬送し、
判定部は、アプリケーションコードで搬送された仮想マシン識別子に従って、アプリケーションコードが実行される仮想マシン環境を決定するようにさらに構成されている。
第2の態様の第1の可能な実装方法に関連して、第3の可能な実施態様において、ハードディスクは、ロード部をさらに含み、
作成部は、受け取り部によって受け取られたアプリケーションコードのための仮想マシン環境におけるアプリケーション・コード・プロセスを作成するようにさらに構成されており、
ロード部は、受け取り部によって受け取られたアプリケーションコードを、ハードディスクの、作成部によって作成されたアプリケーション・コード・プロセスに対応するメモリへロードするように構成されており、
実行部は、受け取り部によって受け取られたアプリケーションコードの実行ポリシーに従って、作成部によって作成された仮想マシン環境で、作成部によって作成されたアプリケーション・コード・プロセスを実行するように特に構成されている。
第2の態様の第1の可能な実施態様に関連して、第4の可能な実施態様において、
受け取り部は、仮想マシンデータ情報の実行指示を受け取るようにさらに構成されており、仮想マシンデータ情報の実行指示は、仮想マシンデータ情報を持続させるべきかどうかを指示するために用いられ、
実行部は、仮想マシンデータ情報の受け取り部によって受け取られた実行指示に従って、受け取り部によって受け取られた仮想マシンデータ情報の操作を行うようにさらに構成されており、操作は、仮想マシンデータ情報の実行指示に対応する。
第2の態様、または第2の態様の第1の可能な実施態様から第4の可能な実施態様のうちの任意の実施態様に関連して、第5の可能な実施態様において、
受け取り部によって受け取られるアプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つを含む。
第3の態様によれば、本発明は、ハードディスクをさらに提供し、本ハードディスクは、
アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、アプリケーションコードに従って、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定し、アプリケーションコードが仮想マシン環境で実行される必要がある場合、アプリケーションコードの実行ポリシーに従って、仮想マシン環境でアプリケーションコードを実行するように構成された、プロセッサと、
アプリケーションコードおよびアプリケーションコードの実行ポリシーを記憶するように構成された、記憶装置と、を含む。
第3の態様の第1の可能な実施態様において、
プロセッサは、仮想マシンデータ情報を受け取り、仮想マシンデータ情報に従って、仮想マシン環境を作成するようにさらに構成されており、仮想マシンデータ情報は、仮想マシン環境を作成するために用いられ、
記憶装置は、仮想マシンデータ情報を記憶するようにさらに構成されている。
第3の態様または第3の態様の第1の可能な実施態様に関連して、第2の可能な実施態様において、
アプリケーションコードは、仮想マシン識別子を搬送し、
プロセッサは、アプリケーションコードで搬送された仮想マシン識別子に従って、アプリケーションコードが実行される仮想マシン環境を決定するようにさらに構成されている。
第3の態様または第3の態様の第1の可能な実施態様と第2の可能な実施態様のどちらかの実施態様に関連して、第3の可能な実施態様において、
プロセッサは、仮想マシン環境におけるアプリケーションコードのためのアプリケーション・コード・プロセスを作成し、アプリケーションコードを、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへロードし、仮想マシン環境でアプリケーション・コード・プロセスを実行するように特に構成されている。
第3の態様の第1の可能な実施態様に関連して、第4の可能な実施態様において、
プロセッサは、仮想マシンデータ情報の実行指示を受け取り、仮想マシンデータ情報の実行指示に従って、仮想マシンデータ情報の操作を行うようにさらに構成されており、操作は、仮想マシンデータ情報の実行指示に対応し、仮想マシンデータ情報の実行指示は、仮想マシンデータ情報を持続させるべきかどうかを指示するために用いられ、
記憶装置は、仮想マシンデータ情報の実行指示を記憶するようにさらに構成されている。
第3の態様、または第3の態様の第1の可能な実施態様から第4の可能な実施態様のうちの任意の実施態様に関連して、第5の可能な実施態様において、
プロセッサによって受け取られるアプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つを含む。
本発明は、ハードディスクがアプリケーションコードを実行するための方法および装置を提供する。ハードディスクは、アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定し、ハードディスクがアプリケーションコードは仮想マシン環境で実行される必要があると判定した場合、ハードディスクは、アプリケーションコードの実行ポリシーに従って、仮想マシン環境でアプリケーションコードを実行する。本解決策によって、ハードディスクは、ハードディスクの外部からのものであるアプリケーションコード(例えば、カスタマイズされたアプリケーションコード)およびアプリケーションコードの実行ポリシーを受け取り、仮想マシン環境で、実行ポリシーに従ってアプリケーションコードを実行することができ、すなわち、本ハードディスクは、ハードディスクの外部からのものであるアプリケーションコードに基づいてハードディスクにアクセスする方法をサポートすることができ、それによってハードディスクの性能が改善され、ハードディスクと対話するクライアントの能力が改善される。
第4の態様によれば、本発明は、ハードディスクがアプリケーションコードを実行するための方法を提供し、本方法は、
ハードディスクにより、アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取るステップと、
ハードディスクにより、アプリケーションコードのためのアプリケーション・コード・プロセスを作成するステップと、
ハードディスクにより、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへアプリケーションコードをロードするステップと、
ハードディスクにより、アプリケーションコードの実行ポリシーに従って、ハードディスクのメモリにおいてアプリケーション・コード・プロセスを実行するステップと、を含む。
第4の態様の第1の可能な実施態様において、
アプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、ならびに、アプリケーションコードの識別子、アプリケーションコードの開始位置、およびアプリケーションコードの長さを含む。
第4の態様または第4の態様の第1の可能な実施態様に関連して、第2の可能な実施態様において、
アプリケーションコードは、バイナリ形式のアプリケーションコードである。
第5の態様によれば、本発明はハードディスクを提供し、本ハードディスクは、
アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取るように構成された、受け取り部と、
受け取り部によって受け取られたアプリケーションコードのためのアプリケーション・コード・プロセスを作成するように構成された、作成部と、
受け取り部によって受け取られたアプリケーションコードを、ハードディスクの、作成部によって作成されたアプリケーション・コード・プロセスに対応するメモリへロードするように構成された、ロード部と、
受け取り部によって受け取られたアプリケーションコードの実行ポリシーに従って、ハードディスクのメモリにおいて、作成部によって作成されたアプリケーション・コード・プロセスを実行するように構成された、実行部と、を含む。
第5の態様の第1の可能な実施態様において、
受け取り部によって受け取られるアプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、ならびに、アプリケーションコードの識別子、アプリケーションコードの開始位置、およびアプリケーションコードの長さを含む。
第5の態様または第5の態様の第1の可能な実施態様に関連して、第2の可能な実施態様において、
受け取り部によって受け取られるアプリケーションコードは、バイナリ形式のアプリケーションコードである。
第6の態様によれば、本発明は、ハードディスクを提供し、本ハードディスクは、
アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、アプリケーションコードのためのアプリケーション・コード・プロセスを作成し、アプリケーションコードを、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへロードし、アプリケーションコードの実行ポリシーに従って、ハードディスクのメモリにおいてアプリケーション・コード・プロセスを実行するように構成された、プロセッサと、
アプリケーションコードおよびアプリケーションコードの実行ポリシーを記憶するように構成された、記憶装置と、を含む。
第6の態様の第1の可能な実施態様において、
プロセッサによって受け取られるアプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、ならびに、アプリケーションコードの識別子、アプリケーションコードの開始位置、およびアプリケーションコードの長さを含む。
第6の態様または第6の態様の第1の可能な実施態様に関連して、第2の可能な実施態様において、
プロセッサによって受け取られるアプリケーションコードは、バイナリ形式のアプリケーションコードである。
本発明は、ハードディスクがアプリケーションコードを実行するための方法および装置を提供する。ハードディスクは、アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、ハードディスクは、アプリケーションコードのためのアプリケーション・コード・プロセスを作成し、ハードディスクは、アプリケーションコードを、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへロードし、そうしてハードディスクは、ハードディスクのメモリにおいて、アプリケーションコードの実行ポリシーに従ってアプリケーション・コード・プロセスを実行する。本解決策によって、ハードディスクは、ハードディスクの外部からのものであるアプリケーションコード(例えば、カスタマイズされたアプリケーションコード)およびアプリケーションコードの実行ポリシーを受け取り、プロセスとして、実行ポリシーに従ってアプリケーションコードを実行することができ、すなわち、本ハードディスクは、ハードディスクの外部からのものであるアプリケーションコードに基づいてハードディスクにアクセスする方法をサポートすることができ、それによってハードディスクの性能が改善され、ハードディスクと対話するクライアントの能力が改善される。
本発明の一実施形態によるハードディスクがアプリケーションコードを実行するための方法の流れ図1である。 本発明の一実施形態によるハードディスクがアプリケーションコードを実行するための別の方法の流れ図1である。 本発明の一実施形態によるハードディスクがアプリケーションコードを実行するための方法の流れ図2である。 本発明の一実施形態によるハードディスクがアプリケーションコードを実行するための方法の流れ図3である。 本発明の一実施形態によるハードディスクがアプリケーションコードを実行するための方法の流れ図4である。 本発明の一実施形態によるハードディスクがアプリケーションコードを実行するための別の方法の流れ図2である。 本発明の一実施形態によるハードディスクの概略的構造図1である。 本発明の一実施形態によるハードディスクの概略的構造図2である。 本発明の一実施形態によるハードディスクの概略的構造図3である。 本発明の一実施形態によるハードディスクの概略的構造図4である。 本発明の一実施形態によるハードディスクの概略的構造図5である。 本発明の一実施形態によるハードディスクの概略的構造図6である。
先行技術において、イーサネット・インターフェース・ハード・ディスクは、Key−Valueセマンティックインターフェースのみをサポートし、別のインターフェースをサポートしない。したがって、クライアントおよびサーバを用いてハードディスクにアクセスするときに、ユーザはKey−Valueセマンティックインターフェースを用いてしかアクセスを行うことができない。しかし、Key−Valueセマンティックインターフェースはデータを記憶するいくつかの操作のみをサポートし、ユーザによってカスタマイズされた操作をサポートすることができない。本発明の実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法においては、データAPI(Application Programming Interface、アプリケーション・プログラミング・インターフェース)および管理APIをハードディスクのために定義することができ、そのため、ハードディスクは、ハードディスクのデータAPIを呼び出すことによってサーバのデータ・プレーン・インターフェースから、ユーザによって指定された操作のアプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取ることができ、または、ハードディスクは、ハードディスクの管理APIを呼び出すことによってサーバの管理プレーンインターフェースから、ユーザによって指定された操作のアプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取る(ハードディスクの外部から受け取る)ことができる。したがって、ハードディスクは、(例えば、必要に従ってユーザによってカスタマイズされた)ハードディスクの外部から受け取られたアプリケーションコードおよびアプリケーションコードの実行ポリシーに従って、アプリケーションコードに対応する操作(例えば、ユーザによってカスタマイズされた操作)を実行することができ、これにより、ハードディスクの外部から受け取られたアプリケーションコードに基づくハードディスクへのアクセスが実現され、ハードディスクの性能が改善され、ハードディスクと対話するクライアントの能力が改善される。
添付の図面に関連して、本発明の実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法および装置を以下で詳細に説明する。具体的には、本発明の実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法においては、本発明の一実施形態で提供されるアプリケーションコードを実行するための方法に対応して、アプリケーションコードは仮想マシン環境で実行される必要があるアプリケーションコードとすることができ、すなわち、アプリケーションコードはプログラミング言語を用いて書かれたアプリケーションコードであり、本発明の一実施形態で提供されるアプリケーションコードを実行するための別の方法に対応して、アプリケーションコードはバイナリ形式のアプリケーションコードとすることができる。
第1実施形態
本発明の本実施形態は、ハードディスクがアプリケーションコードを実行するための方法を提供する。図1に示すように、本方法は以下を含むことができる。
S101:ハードディスクがアプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取る。
本発明の本実施形態で提供されるハードディスクはイーサネット・インターフェース・ハード・ディスク(ネットワーク・ハード・ディスクともいう)とすることができ、イーサネット・インターフェース・ハード・ディスクはスマート・ハード・ディスクとも呼ぶこともでき、すなわち、本発明の本実施形態で提供されるハードディスクは、ARM(Advanced Reduced Instruction Set Computing Machines、アドバンスト縮小命令セット・コンピューティング・マシンズ)システムに基づくハードディスクとすることができる。ARMシステムに基づくものであるハードディスクは、従来のハードディスクの性能を改善するために、従来のハードディスクにARMシステムを組み込んでいる。
ユーザがいくつかの指定操作(ユーザがハードディスクにおいて拡張する必要がある機能)、例えば、ハードディスクのためのウイルススキャンを行う、ハード・ディスク・データの完全性検査を行う、ハード・ディスク・データを圧縮する、ハードディスク上でガベージコレクションを行う、ハード・ディスク・データを別のハードディスクに移動し、コピーする、ユーザによって提供されたキーに基づいてハード・ディスク・データを暗号化する、ユーザによってカスタマイズされたポリシーを実行するなどを行う必要がある場合、ユーザは、これらの指定操作のアプリケーションコードを書き、これらの指定操作のアプリケーションコードの実行ポリシーを設定することができ、そうしてユーザは、アプリケーションコードおよびアプリケーションコードの実行ポリシーを、クライアントおよび配置されたサーバを用いてハードディスクへ送ることができ、すなわち、ハードディスクは、サーバによって送られるアプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、アプリケーションコードの実行ポリシーは実際の必要に従って事前設定することができる。
本発明の本実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法において、サーバはデータ・プレーン・インターフェースおよび管理プレーンインターフェースを含むことができることに留意すべきである。本実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法においては、アプリケーションコードおよびアプリケーションコードの実行ポリシーは、サーバのデータ・プレーン・インターフェースを用いてハードディスクへ送信されうる。
さらに、本実施形態で提供されるアプリケーションコードは、仮想マシン環境で実行される必要があるアプリケーションコードであり、すなわち、アプリケーションコードは、プログラミング言語を用いて書かれたアプリケーションコードである。したがって、サーバがハードディスクへアプリケーションコードを送信するときに、送信はサーバのデータ・プレーン・インターフェースを用いて行われうる。
具体的には、アプリケーションコードおよびアプリケーションコードの実行ポリシーは、サーバのデータ・プレーン・インターフェースを用い、ハードディスクのデータAPIを呼び出すことによってハードディスクへ送信されうる。
特に、本発明の本実施形態で提供されるデータAPIは、ハード・ディスク・データ・プレーン上のインターフェースとすることができ、データAPIは、ハードディスクのKey−Valueインターフェースが位置するプレーンと同じプレーンに位置するインターフェースである。
本発明の本実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法においては、ハードディスクによって実行されうるアプリケーションコードは、それだけに限らないが、ユーザによって指定される操作のアプリケーションコードを含み、すなわち、本発明の本実施形態で提供されるアプリケーションコードは、実際の必要に従ってユーザが書くことができるものであり、本発明では限定されないことに留意すべきである。
さらに、アプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、を含むことができる。具体的には、例えば、アプリケーションコードを実行するためのトリガ条件は、ハードディスクが24時間にわたって外部サービス要求を受け取っていない場合にアプリケーションコードを実行すること、とすることができ、アプリケーションコードの実行条件は、アプリケーションコードの実行が完了した後で終了すること、または、アプリケーションコードの実行中に障害が発生したときにはアプリケーションコードを再度実行すること、とすることができ、アプリケーションコードの実行が完了した後の操作は、アプリケーションコードの実行が完了した後でハードディスクの指定のログエリアへ実行ログを記録すること、または、アプリケーションコードの実行が完了した後で外部ネットワークの管理システムサーバへ実行ログを送ること、とすることができる。
特に、本発明の本実施形態で提供されるアプリケーションコードの実行ポリシーは、それだけに限らないが上述の実行ポリシーを含み、すなわち、本発明の本実施形態で提供されるアプリケーションコードの実行ポリシーは、実際の実行上の必要に従って設定することができ、本発明では限定されない。
S102:ハードディスクは、アプリケーションコードに従って、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定する。
ハードディスクがアプリケーションコードを受け取った後で、ハードディスクは、アプリケーションコードに従って、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定することができる。
一般に、コンピュータ内の仮想マシンおよび仮想マシンによって形成される実行環境は、大部分は共通したものである。一般的な「仮想マシン」が仮想マシンのソフトウェアおよびハードウェアを指す場合、「仮想マシン環境」とは実行されている仮想マシンである。
例えば、仮想マシンがJVM(JAVA Virtual Machine、JAVA(登録商標)仮想マシン)である場合、仮想マシン環境はJVM環境である。
S103:ハードディスクがアプリケーションコードは仮想マシン環境で実行される必要があると判定した場合、ハードディスクは、仮想マシン環境で、アプリケーションコードの実行ポリシーに従ってアプリケーションコードを実行する。
ハードディスクがアプリケーションコードを受け取った後で、ハードディスクは、アプリケーションコードに従って、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定することができ、ハードディスクがアプリケーションコードは仮想マシン環境で実行される必要があると判定した場合、ハードディスクは、仮想マシン環境で、アプリケーションコードの実行ポリシーに従ってアプリケーションコードを実行することができる。
具体的には、アプリケーションコードが仮想マシン環境で実行される必要がある場合、これは、アプリケーションコードが仮想マシンのみに基づいて実行されうるアプリケーションコードであることを示し、すなわち、アプリケーションコードがプログラミング言語を用いて設計されたアプリケーションコードであることを示すものである。したがって、アプリケーションコードを実行するときに、ハードディスクは仮想マシンに基づいてアプリケーションコードを解釈し、実行することができ、すなわち、ハードディスクは、仮想マシン環境で、すなわち、実行されている仮想マシンでアプリケーションコードを解釈し、実行することができる。
例えば、アプリケーションコードがJAVA(1つのプログラミング言語)バイトコードであり、対応する仮想マシンがJVMである場合、JAVAバイトコードを実行するときに、ハードディスクはJVM環境でJAVAバイトコードを解釈し、実行する、すなわち、実行されているJVMでアプリケーションコードを解釈し、実行する必要がある。JAVAバイトコードは元のJAVAコードがコンパイルされた後で得られるコードである。
例えば、仮想マシンと、仮想マシン環境と、本発明の本実施形態で提供される仮想マシン環境で実行される必要があるアプリケーションコードとの間の対応関係は以下のうちのいずれか1つを含むことができる。
(1)仮想マシンはJVMであり、仮想マシン環境はJVM環境であり、仮想マシン環境で実行される必要があるアプリケーションコードは、JVM環境で実行される必要があるJAVAバイトコードである。
(2)仮想マシンはスクリプトエンジンであり、仮想マシン環境はスクリプトエンジン環境であり、仮想マシン環境で実行される必要があるアプリケーションコードは、スクリプトエンジン環境で実行される必要があるスクリプトコードである。
(3)仮想マシンはSQL(Structured Query Language、構造化照会言語)エンジンであり、仮想マシン環境はSQLエンジン環境であり、仮想マシン環境で実行される必要があるアプリケーションコードは、SQLエンジン環境で実行される必要があるSQLステートメントである。
(4)仮想マシンはユーザによってカスタマイズされたエンジンであり、仮想マシン環境はユーザによってカスタマイズされたエンジン環境であり、仮想マシン環境で実行される必要があるアプリケーションコードは、ユーザによってカスタマイズされたエンジン環境で実行される必要があるコードである。
仮想マシンと、仮想マシン環境と、仮想マシン環境で実行される必要があるアプリケーションコードとの間の4つの対応関係は説明のための例にすぎないこと、すなわち、本発明の本実施形態で提供される仮想マシンと、仮想マシン環境と、仮想マシン環境で実行される必要があるアプリケーションコードとの間の対応関係は4つだけに限定されず、仮想マシンと、仮想マシン環境と、仮想マシン環境で実行される必要があるアプリケーションコードとの間の、実際の設計要件を満たす別の方法で設計された対応関係もまた、本発明の保護範囲内に入るものであることに留意すべきである。
本発明の本実施形態は、ハードディスクがアプリケーションコードを実行するための方法を提供する。ハードディスクは、アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定し、ハードディスクがアプリケーションコードは仮想マシン環境で実行される必要があると判定した場合、ハードディスクは、仮想マシン環境で、アプリケーションコードの実行ポリシーに従ってアプリケーションコードを実行する。本解決策によって、ハードディスクは、ハードディスクの外部からのものであるアプリケーションコード(例えば、カスタマイズされたアプリケーションコード)およびアプリケーションコードの実行ポリシーを受け取り、仮想マシン環境で、実行ポリシーに従ってアプリケーションコードを実行することができ、すなわち、本ハードディスクは、ハードディスクの外部からのものであるアプリケーションコードに基づいてハードディスクにアクセスする方法をサポートすることができ、それによってハードディスクの性能が改善され、ハードディスクと対話するクライアントの能力が改善される。
本発明の本実施形態は、ハードディスクがアプリケーションコードを実行するための別の方法を提供する。図2に示すように、本方法は以下を含むことができる。
S201:ハードディスクがアプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取る。
本発明の本実施形態で提供されるハードディスクはイーサネット・インターフェース・ハード・ディスク(ネットワーク・ハード・ディスクともいう)とすることができ、イーサネット・インターフェース・ハード・ディスクはスマート・ハード・ディスクと呼ぶこともでき、すなわち、本発明の本実施形態で提供されるハードディスクは、ARMシステムに基づくものであるハードディスクとすることができる。ARMシステムに基づくものであるハードディスクは、ハードディスクの性能を改善するために、従来のハードディスクにARMシステムを組み込んでいる。
ユーザがいくつかの指定操作(ユーザがハードディスクにおいて拡張する必要がある機能)、例えば、ハードディスクのためのウイルススキャンを行う、ハード・ディスク・データの完全性検査を行う、ハード・ディスク・データを圧縮する、ハードディスク上でガベージコレクションを行う、ハード・ディスク・データを別のハードディスクに移動し、コピーする、ユーザによって提供されたキーに基づいてハード・ディスク・データを暗号化する、ユーザによってカスタマイズされたポリシーを実行するなどを行う必要がある場合、ユーザは、これらの指定操作のアプリケーションコードを書き、これらの指定操作のアプリケーションコードの実行ポリシーを設定することができ、そうしてユーザは、アプリケーションコードおよびアプリケーションコードの実行ポリシーを、クライアントおよび配置されたサーバを用いてハードディスクへ送ることができ、すなわち、ハードディスクは、サーバによって送られるアプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、アプリケーションコードの実行ポリシーは実際の必要に従って事前設定することができる。
本発明の本実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法において、サーバはデータ・プレーン・インターフェースおよび管理プレーンインターフェースを含むことができることに留意すべきである。本実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法においては、アプリケーションコードおよびアプリケーションコードの実行ポリシーは、サーバの管理プレーンインターフェースまたはサーバのデータ・プレーン・インターフェースを用いてハードディスクへ送信されうる。
さらに、本実施形態で提供されるアプリケーションコードは、ハードディスクによって直接実行されうるアプリケーションコードであり、すなわち、アプリケーションコードはバイナリ形式のアプリケーションコードである。したがって、ハードディスクへアプリケーションコードを送信するときに、サーバは、サーバの管理プレーンインターフェースを用いて送信を行うこともでき、または、サーバのデータ・プレーン・インターフェースを用いて送信を行うこともできる。
具体的には、アプリケーションコードおよびアプリケーションコードの実行ポリシーは、サーバの管理プレーンインターフェースを用い、ハードディスクの管理APIを呼び出すことによってハードディスクへ送信することもでき、または、アプリケーションコードおよびアプリケーションコードの実行ポリシーは、サーバのデータ・プレーン・インターフェースを用い、ハードディスクのデータAPIを呼び出すことによってハードディスクへ送信することもできる。サーバは、firmware(ファームウェア)ロード方式で、サーバの管理プレーンインターフェースを用いてハードディスクへアプリケーションコードを送信することができる。
特に、本発明の本実施形態で提供されるハードディスクの管理APIは、ハードディスクの管理プレーン上のインターフェースとすることができる。したがって、ハードディスクのデータAPIはハードディスクのデータプレーン上のインターフェースとすることができ、データAPIは、ハードディスクのKey−Valueインターフェースが位置するプレーンと同じプレーン上に位置するインターフェースである。
本発明の本実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法においては、ハードディスクによって実行されうるアプリケーションコードは、それだけに限らないが、ユーザによって指定される操作のアプリケーションコードを含み、すなわち、本発明の本実施形態で提供されるアプリケーションコードは、実際の必要に従ってユーザが書くことができるものであり、本発明では限定されないことに留意すべきである。
さらに、アプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、ならびに、アプリケーションコードの識別子、アプリケーションコードの開始位置、およびアプリケーションコードの長さ、を含むことができる。具体的には、例えば、アプリケーションコードを実行するためのトリガ条件は、ハードディスクが24時間にわたって外部サービス要求を受け取っていない場合にアプリケーションコードを実行すること、とすることができ、アプリケーションコードの実行条件は、アプリケーションコードの実行が完了した後で終了すること、または、アプリケーションコードの実行中に障害が発生したときにはアプリケーションコードを再度実行すること、とすることができ、アプリケーションコードの実行が完了した後の操作は、アプリケーションコードの実行が完了した後でハードディスクの指定のログエリアへ実行ログを記録すること、または、アプリケーションコードの実行が完了した後で外部ネットワークの管理システムサーバへ実行ログを送ること、とすることができ、アプリケーションコードの識別子は、アプリケーションコードが本発明の本実施形態で提供されるアプリケーションコード、すなわち、ユーザによって提供される拡張アプリケーションコードであることを指示するために用いることができ、アプリケーションコードの開始位置は、アプリケーションコードが記憶される開始アドレスを指示するために用いることができる。ハードディスクがアプリケーションコードの実行ポリシーを受け取った後で、ハードディスクは、アプリケーションコードの識別子に従って、アプリケーションコードはユーザによって提供された拡張アプリケーションコードであると決定し、アプリケーションコードの開始位置およびアプリケーションコードの長さに従ってアプリケーションコードを取得し、アプリケーションコードの実行ポリシーに従ってアプリケーションコードを実行することができる。
特に、本発明の本実施形態で提供されるアプリケーションコードの実行ポリシーにおいては、アプリケーションコードの識別子、アプリケーションコードの開始位置、およびアプリケーションコードの長さに加えて、アプリケーションコードの実行ポリシーは、それだけに限らないが上述の実行ポリシーを含み、すなわち、本発明の本実施形態で提供されるアプリケーションコードの実行ポリシーは、実際の実行上の必要に従って設定することができ、本発明では限定されない。
S202:ハードディスクはアプリケーションコードのためのアプリケーション・コード・プロセスを作成する。
ハードディスクがアプリケーションコードを受け取った後で、ハードディスクはアプリケーションコードのためのアプリケーション・コード・プロセスを作成することができ、すなわち、ハードディスクはアプリケーションコードに対応するアプリケーション・コード・プロセスを作成することができる。
理解されるように、プロセスとは、オペレーティングシステムの構造の基礎であり、プログラムの動的実行であり、プログラムの実行インスタンスであり、プログラムおよびプログラムのデータがプロセッサにおいて順次に実行されるときに発生するアクティビティであり、プログラムがデータセットに対して実行されるプロセスであり、システムがリソース割り振りおよびスケジューリングを行うための独立した単位である。例えば、本発明の本実施形態で提供されるアプリケーション・コード・プロセスは、アプリケーション・コード・プログラムの動的実行であり、アプリケーション・コード・プログラムの実行インスタンスである。
S203:ハードディスクは、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへアプリケーションコードをロードする。
ハードディスクがアプリケーション・コード・プロセスを作成した後で、ハードディスクは、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへアプリケーションコードをロードすることができる。
さらに、本発明の本実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法では、S202でハードディスクによって作成されたアプリケーション・コード・プロセスはプロセスの管理構造であり、すなわち、ハードディスクによって作成されたアプリケーション・コード・プロセスはプログラムアーキテクチャであり、アプリケーション・コード・プロセスは、アプリケーションコードがプログラムアーキテクチャによって、S203でハードディスクの、アプリケーション・コード・プロセスに対応するメモリへロードされた後で初めてハードディスクのメモリにおけるアプリケーション・コード・プログラムの実行インスタンスになる。
S204:ハードディスクは、ハードディスクのメモリにおいて、アプリケーションコードの実行ポリシーに従ってアプリケーション・コード・プロセスを実行する。
ハードディスクが、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへアプリケーションコードをロードした後で、ハードディスクは、ハードディスクのメモリにおいて、アプリケーションコードの実行ポリシーに従ってアプリケーション・コード・プロセスを実行することができ、すなわち、ハードディスクはプロセスとしてハードディスクのメモリにおいてアプリケーションコードを実行することができる。
本発明の本実施形態は、ハードディスクがアプリケーションコードを実行するための別の方法を提供する。ハードディスクはアプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、ハードディスクはアプリケーションコードのためのアプリケーション・コード・プロセスを作成し、ハードディスクは、アプリケーションコードを、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへロードし、そうしてハードディスクは、ハードディスクのメモリにおいて、アプリケーションコードの実行ポリシーに従ってアプリケーション・コード・プロセスを実行する。本解決策によって、ハードディスクは、ハードディスクの外部からのものであるアプリケーションコード(例えば、カスタマイズされたアプリケーションコード)およびアプリケーションコードの実行ポリシーを受け取り、プロセスとして、実行ポリシーに従ってアプリケーションコードを実行することができ、すなわち、本ハードディスクは、ハードディスクの外部からのものであるアプリケーションコードに基づいてハードディスクにアクセスする方法をサポートすることができ、それによってハードディスクの性能が改善され、ハードディスクと対話するクライアントの能力が改善される。
第2実施形態
図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インターフェースが位置するプレーンと同じプレーンに位置するインターフェースである。
本発明の本実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法においては、ハードディスクによって実行されうるアプリケーションコードは、それだけに限らないが、ユーザによって指定される操作のアプリケーションコードを含み、すなわち、本発明の本実施形態で提供されるアプリケーションコードは、実際の必要に従ってユーザが書くことができるものであり、本発明では限定されないことに留意すべきである。
さらに、アプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、を含むことができる。具体的には、例えば、アプリケーションコードを実行するためのトリガ条件は、ハードディスクが24時間にわたって外部サービス要求を受け取っていない場合にアプリケーションコードを実行すること、とすることができ、アプリケーションコードの実行条件は、アプリケーションコードの実行が完了した後で終了すること、または、アプリケーションコードの実行中に障害が発生したときにはアプリケーションコードを再度実行すること、とすることができ、アプリケーションコードの実行が完了した後の操作は、アプリケーションコードの実行が完了した後でハードディスクの指定のログエリアへ実行ログを記録すること、または、アプリケーションコードの実行が完了した後で外部ネットワークの管理システムサーバへ実行ログを送ること、とすることができる。
理解されるように、本発明の本実施形態で提供されるアプリケーションコードの実行ポリシーは、それだけに限らないが上述の実行ポリシーを含み、すなわち、本発明の本実施形態で提供されるアプリケーションコードの実行ポリシーは、実際の実行上の必要に従って設定することができ、本発明では限定されない。
S304:ハードディスクは、アプリケーションコードに従って、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定する。
ハードディスクがアプリケーションコードを受け取った後で、ハードディスクは、アプリケーションコードに従って、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定することができる。
特に、アプリケーションコードは仮想マシン識別子を含むこともでき、仮想マシン識別子は仮想マシンの名前とすることもでき、仮想マシンのタイプとすることもでき、仮想マシンの名前および仮想マシンのタイプとすることもでき、または、差別化用件を満たす任意の他の識別子とすることもでき、本発明では限定されない。
例えば、アプリケーションコードがJAVAバイトコードすなわち、JVM環境で実行される必要のあるアプリケーションコードである場合、アプリケーションコードはJVM識別子(JVM名および/またはJVMタイプ)を含むことができる。具体的には、アプリケーションコードに含まれる仮想マシンの名前はJVMとすることができ、アプリケーションコードに含まれる仮想マシンのタイプはJVMタイプとすることができ、JVMタイプは「JVM XXXX」(「XXXX」はJVMのバージョン番号またはJVMを製造するベンダの識別子を指示するために用いられうる)とすることができる。
1つの可能な実施態様においては、アプリケーションコードが仮想マシン識別子を搬送する場合には、ハードディスクは、アプリケーションコードで搬送された仮想マシン識別子に従って、アプリケーションコードが実行される仮想マシン環境を決定することができ、そうではなく、アプリケーションコードが仮想マシン識別子を搬送しない場合には、ハードディスクは、アプリケーションコードは仮想マシン環境で実行されなくてもよいと判定することができる。
本発明では、S301〜S302およびS303〜S304が行われる順序が限定されない場合もあること、すなわち、本発明では、S301〜S302がまず行われ、次いでS303〜S304が行われてもよく、または、S303〜S304がまず行われ、次いでS301〜S302が行われてもよく、または、S301〜S302とS303〜S304とが同時に行われてもよいことに留意すべきである。
S305:ハードディスクがアプリケーションコードは仮想マシン環境で実行される必要があると判定した場合、ハードディスクは、アプリケーションコードで搬送された仮想マシン識別子に従って、アプリケーションコードが実行される仮想マシン環境を決定することができる。
ハードディスクがアプリケーションコードは仮想マシン環境で実行される必要があると判定した後で、ハードディスクは、アプリケーションコードで搬送された仮想マシン識別子に従って、アプリケーションコードが実行される仮想マシン環境をさらに決定することができる。
例えば、アプリケーションコードで搬送された仮想マシン識別子がJVMである場合、ハードディスクは、JVMに従って、アプリケーションコードが実行される仮想マシン環境はJVM環境であると決定することができる。
具体的には、アプリケーションコードが仮想マシン環境で実行される必要がある場合、これは、アプリケーションコードが仮想マシンのみに基づいて実行されうるアプリケーションコードであることを示し、すなわち、アプリケーションコードがプログラミング言語を用いて設計されたアプリケーションコードであることを示すものである。したがって、アプリケーションコードを実行するときに、ハードディスクは仮想マシンに基づいてアプリケーションコードを解釈し、実行することができ、すなわち、ハードディスクは、仮想マシン環境で、すなわち、実行されている仮想マシンでアプリケーションコードを解釈し、実行することができる。
例えば、アプリケーションコードがJAVA(1つのプログラミング言語)バイトコードであり、仮想マシンがJVMである場合、JAVAバイトコードを実行するときに、ハードディスクはJVM環境でJAVAバイトコードを解釈し、実行する、すなわち、実行されているJVMでアプリケーションコードを解釈し、実行する必要がある。JAVAバイトコードは元のJAVAコードがコンパイルされた後で得られるコードである。
例えば、仮想マシンと、仮想マシン環境と、本発明の本実施形態で提供される仮想マシン環境で実行される必要があるアプリケーションコードとの間の対応関係は以下のうちのいずれか1つを含むことができる。
(1)仮想マシンはJVMであり、仮想マシン環境はJVM環境であり、仮想マシン環境で実行される必要があるアプリケーションコードは、JVM環境で実行される必要があるJAVAバイトコードである。
(2)仮想マシンはスクリプトエンジンであり、仮想マシン環境はスクリプトエンジン環境であり、仮想マシン環境で実行される必要があるアプリケーションコードは、スクリプトエンジン環境で実行される必要があるスクリプトコードである。
(3)仮想マシンはSQLエンジンであり、仮想マシン環境はSQLエンジン環境であり、仮想マシン環境で実行される必要があるアプリケーションコードは、SQLエンジン環境で実行される必要があるSQLステートメントである。
(4)仮想マシンはユーザによってカスタマイズされたエンジンであり、仮想マシン環境はユーザによってカスタマイズされたエンジン環境であり、仮想マシン環境で実行される必要があるアプリケーションコードは、ユーザによってカスタマイズされたエンジン環境で実行される必要があるコードである。
仮想マシンと、仮想マシン環境と、仮想マシン環境で実行される必要があるアプリケーションコードとの間の4つの対応関係は説明のための例にすぎないこと、すなわち、本発明の本実施形態で提供される仮想マシンと、仮想マシン環境と、仮想マシン環境で実行される必要があるアプリケーションコードとの間の対応関係は4つだけに限定されず、仮想マシンと、仮想マシン環境と、仮想マシン環境で実行される必要があるアプリケーションコードとの間の、実際の設計要件を満たす別の方法で設計された対応関係もまた、本発明の保護範囲内に入るものであることに留意すべきである。
S306:ハードディスクは、仮想マシン環境で、アプリケーションコードの実行ポリシーに従ってアプリケーションコードを実行する。
ハードディスクがアプリケーションコードを実行することができる仮想マシン環境を決定した後で、ハードディスクは、仮想マシン環境で、アプリケーションコードの実行ポリシーに従ってアプリケーションコードを実行することができる。
任意選択で、図4に示すように、本発明の本実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法は、以下をさらに含むことができる。
S307:ハードディスクは、仮想マシンデータ情報の実行指示を受け取り、仮想マシンデータ情報の実行指示は、仮想マシンデータ情報を持続させるべきかどうかをハードディスクに指示するために用いられる。
ハードディスクは仮想マシンデータ情報の実行指示を受け取り、仮想マシンデータ情報の実行指示は実際の必要に従って事前設定することができ、仮想マシンデータ情報の実行指示は、ハードディスクが仮想マシンデータ情報を持続させる必要があるかどうかを指示するために用いられうる。
持続とは、(ハードディスクのメモリ内のオブジェクトといった)データを、磁気ディスクといった、データを永続的に記憶することのできる記憶装置に記憶することを指す。持続の主な適用は、メモリ内のオブジェクトを関係データベース、磁気ディスクファイル、XML(eXtensible Markup Language、拡張可能なマークアップ言語)データファイルなどへ記憶することである。例えば、JDBC(JAVA Data 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インターフェースが位置するプレーンと同じプレーン上に位置するインターフェースである。
本発明の本実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法においては、ハードディスクによって実行されうるアプリケーションコードは、それだけに限らないが、ユーザによって指定される操作のアプリケーションコードを含み、すなわち、本発明の本実施形態で提供されるアプリケーションコードは、実際の必要に従ってユーザが書くことができるものであり、本発明では限定されないことに留意すべきである。
さらに、アプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、ならびに、アプリケーションコードの識別子、アプリケーションコードの開始位置、およびアプリケーションコードの長さ、を含むことができる。具体的には、例えば、アプリケーションコードを実行するためのトリガ条件は、ハードディスクが24時間にわたって外部サービス要求を受け取っていない場合にアプリケーションコードを実行すること、とすることができ、アプリケーションコードの実行条件は、アプリケーションコードの実行が完了した後で終了すること、または、アプリケーションコードの実行中に障害が発生したときにはアプリケーションコードを再度実行すること、とすることができ、アプリケーションコードの実行が完了した後の操作は、アプリケーションコードの実行が完了した後でハードディスクの指定のログエリアへ実行ログを記録すること、または、アプリケーションコードの実行が完了した後で外部ネットワークの管理システムサーバへ実行ログを送ること、とすることができ、アプリケーションコードの識別子は、アプリケーションコードが本発明の本実施形態で提供されるアプリケーションコード、すなわち、ユーザによって提供される拡張アプリケーションコードであることを指示するために用いることができ、アプリケーションコードの開始位置は、アプリケーションコードが記憶される開始アドレスを指示するために用いることができる。ハードディスクがアプリケーションコードの実行ポリシーを受け取った後で、ハードディスクは、アプリケーションコードの識別子に従って、アプリケーションコードはユーザによって提供された拡張アプリケーションコードであると決定し、アプリケーションコードの開始位置およびアプリケーションコードの長さに従ってアプリケーションコードを取得し、アプリケーションコードの実行ポリシーに従ってアプリケーションコードを実行することができる。
理解されるように、本発明の本実施形態で提供されるアプリケーションコードの実行ポリシーにおいては、アプリケーションコードの識別子、アプリケーションコードの開始位置、およびアプリケーションコードの長さに加えて、アプリケーションコードの実行ポリシーは、それだけに限らないが上述の実行ポリシーを含み、すなわち、本発明の本実施形態で提供されるアプリケーションコードの実行ポリシーは、実際の実行上の必要に従って設定することができ、本発明では限定されない。
S402:ハードディスクはアプリケーションコードおよびアプリケーションコードの実行ポリシーをハードディスクの記憶媒体へ記憶する。
ハードディスクがアプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取った後で、ハードディスクは、アプリケーションコードおよびアプリケーションコードの実行ポリシーをハードディスクの記憶媒体へ記憶することができ、ハードディスクの記憶媒体はハードディスク媒体またはハードディスクのフラッシュメモリとすることができる。
特に、本実施形態では、サーバからハードディスクへロードされるアプリケーションコードはバイナリ形式のアプリケーションコードである。したがって、ハードディスクがアプリケーションコードを受け取った後で、ハードディスクはアプリケーションコードをプロセスとして直接実行することができ、対応する仮想マシン環境でアプリケーションコードを解釈し、実行しなくてもよい。
S403:ハードディスクはアプリケーションコードのためのアプリケーション・コード・プロセスを作成する。
ハードディスクがアプリケーションコードを受け取った後で、ハードディスクはアプリケーションコードのためのアプリケーション・コード・プロセスを作成することができ、すなわち、ハードディスクはアプリケーションコードに対応するアプリケーション・コード・プロセスを作成することができる。
理解されるように、プロセスとは、オペレーティングシステムの構造の基礎であり、プログラムの動的実行であり、プログラムの実行インスタンスであり、プログラムおよびプログラムのデータがプロセッサにおいて順次に実行されるときに発生するアクティビティであり、プログラムがデータセットに対して実行されるプロセスであり、システムがリソース割り振りおよびスケジューリングを行うための独立した単位である。例えば、本発明の本実施形態で提供されるアプリケーション・コード・プロセスは、アプリケーション・コード・プログラムの動的実行であり、アプリケーション・コード・プログラムの実行インスタンスである。
S404:ハードディスクは、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへアプリケーションコードをロードする。
ハードディスクがアプリケーション・コード・プロセスを作成した後で、ハードディスクは、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへアプリケーションコードをロードすることができる。
さらに、本発明の本実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法では、S403でハードディスクによって作成されたアプリケーション・コード・プロセスはプロセスの管理構造であり、すなわち、ハードディスクによって作成されたアプリケーション・コード・プロセスはプログラムアーキテクチャであり、アプリケーション・コード・プロセスは、アプリケーションコードがプログラムアーキテクチャによって、S404でハードディスクの、アプリケーション・コード・プロセスに対応するメモリへロードされた後で初めてハードディスクのメモリにおけるアプリケーション・コード・プログラムの実行インスタンスになる。
S405:ハードディスクは、ハードディスクのメモリにおいて、アプリケーションコードの実行ポリシーに従ってアプリケーション・コード・プロセスを実行する。
ハードディスクが、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへアプリケーションコードをロードした後で、ハードディスクは、ハードディスクのメモリにおいて、アプリケーションコードの実行ポリシーに従ってアプリケーション・コード・プロセスを実行することができ、すなわち、ハードディスクはプロセスとしてハードディスクのメモリにおいてアプリケーションコードを実行することができる。
さらに、本実施形態のアプリケーションコードは仮想マシン環境で実行されなくてもよい。本方法では、アプリケーションコードやアプリケーションコードの実行ポリシーといったデータのための伝送路はKey−Valueデータのための伝送路と同じとすることができる。
具体的には、アプリケーションコードやアプリケーションコードの実行ポリシーといった本発明の本実施形態で提供されるデータのためのアプリケーション層伝送路はHTTP方式で実現することができる。例えば、バイナリ形式の特定のアプリケーションコードおよびアプリケーションコードの実行ポリシーをHTTPメッセージ本文で指定することができる。
さらに、アプリケーションコードやアプリケーションコードの実行ポリシーといった本発明の本実施形態で提供されるデータのためのアプリケーション層伝送路は、HTTP以外の別のカスタマイズされたプロトコルを用いて実現することもでき、カスタマイズされたプロトコルは、アプリケーションコードやアプリケーションコードの実行ポリシーといったデータの意味記述を提供することができる。
本発明の本実施形態は、ハードディスクがアプリケーションコードを実行するための別の方法を提供する。ハードディスクはアプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、ハードディスクはアプリケーションコードのためのアプリケーション・コード・プロセスを作成し、ハードディスクは、アプリケーションコードを、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへロードし、そうしてハードディスクは、ハードディスクのメモリにおいて、アプリケーションコードの実行ポリシーに従ってアプリケーション・コード・プロセスを実行する。本解決策によって、ハードディスクは、ハードディスクの外部からのものであるアプリケーションコード(例えば、カスタマイズされたアプリケーションコード)およびアプリケーションコードの実行ポリシーを受け取り、プロセスとして、実行ポリシーに従ってアプリケーションコードを実行することができ、すなわち、本ハードディスクは、ハードディスクの外部からのものであるアプリケーションコードに基づいてハードディスクにアクセスする方法をサポートすることができ、それによってハードディスクの性能が改善され、ハードディスクと対話するクライアントの能力が改善される。
第3実施形態
図7に示すように、本発明の本実施形態はハードディスク1を提供し、ハードディスク1は、本発明の一実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法に対応し、ハードディスク1は、
アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取るように構成された、受け取り部10と、
受け取り部10によって受け取られたアプリケーションコードに従って、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定するように構成された、判定部11と、
判定部11がアプリケーションコードは仮想マシン環境で実行される必要があると判定した場合、受け取り部10によって受け取られたアプリケーションコードの実行ポリシーに従って仮想マシン環境で、受け取り部10によって受け取られたアプリケーションコードを実行するように構成された、実行部12と、を含むことができる。
任意選択で、図8に示すように、ハードディスク1は作成部13をさらに含むことができ、
受け取り部10は仮想マシンデータ情報を受け取るようにさらに構成されており、仮想マシンデータ情報は仮想マシン環境を作成するために用いられ、作成部13は、受け取り部10によって受け取られた仮想マシンデータ情報に従って仮想マシン環境を作成するように構成されている。
任意選択で、アプリケーションコードは仮想マシン識別子を搬送し、
判定部11は、アプリケーションコードで搬送された仮想マシン識別子に従って、作成部13によって作成され、アプリケーションコードが実行される仮想マシン環境を決定するようにさらに構成されている。
任意選択で、図9に示すように、ハードディスク1はロード部14をさらに含むことができ、
作成部13は、受け取り部10によって受け取られたアプリケーションコードのための仮想マシン環境におけるアプリケーション・コード・プロセスを作成するようにさらに構成されており、ロード部14は、受け取り部10によって受け取られたアプリケーションコードを、ハードディスクの、作成部13によって作成されたアプリケーション・コード・プロセスに対応するメモリへロードするように構成されており、実行部12は、作成部13によって作成された仮想マシン環境で、受け取り部10によって受け取られたアプリケーションコードの実行ポリシーに従って、作成部13によって作成されるアプリケーション・コード・プロセスを実行するように特に構成されている。
任意選択で、受け取り部10は、仮想マシンデータ情報の実行指示を受け取るようにさらに構成されており、仮想マシンデータ情報の実行指示は、仮想マシンデータ情報を持続させるべきかどうかを指示するために用いられ、実行部12は、仮想マシンデータ情報の受け取り部10によって受け取られた実行指示に従って、受け取り部10によって受け取られた仮想マシンデータ情報の操作を行うようにさらに構成されており、操作は仮想マシンデータ情報の実行指示に対応する。
任意選択で、受け取り部10によって受け取られるアプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、を含む。
任意選択で、アプリケーションコード、アプリケーションコードの実行ポリシー、仮想マシンデータ情報、および仮想マシンデータ情報の実行指示はハードディスクの記憶媒体に記憶される。ハードディスクの記憶媒体はハードディスク媒体またはハードディスクのフラッシュメモリを含むことができる。具体的には、アプリケーションコード、アプリケーションコードの実行ポリシー、仮想マシンデータ情報、および仮想マシンデータ情報の実行指示は、ハードディスク媒体に記憶することもでき、または、アプリケーションコード、アプリケーションコードの実行ポリシー、仮想マシンデータ情報、および仮想マシンデータ情報の実行指示は、ハードディスクのフラッシュメモリに記憶することもでき、または、アプリケーションコードの実行ポリシー、仮想マシンデータ情報、および仮想マシンデータ情報の実行指示は、一部をハードディスク媒体に記憶し、一部をハードディスクのフラッシュメモリに記憶することもでき、これについては本発明では限定されない。
本発明の本実施形態で提供されるハードディスク1はイーサネット・インターフェース・ハード・ディスク(ネットワーク・ハード・ディスクともいう)とすることができ、イーサネット・インターフェース・ハード・ディスクはスマート・ハード・ディスクと呼ぶこともでき、すなわち、本発明の本実施形態で提供されるハードディスクは、ARMシステムに基づくものであるハードディスクとすることができることに留意すべきである。ARMシステムに基づくものであるハードディスクは、ハードディスクの性能を改善するために、従来のハードディスクにARMシステムを組み込んでいる。
本発明の本実施形態はハードディスクを提供する。ハードディスクは、アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定し、ハードディスクがアプリケーションコードは仮想マシン環境で実行される必要があると判定した場合、ハードディスクは、仮想マシン環境で、アプリケーションコードの実行ポリシーに従ってアプリケーションコードを実行する。本解決策によって、ハードディスクは、ハードディスクの外部からのものであるアプリケーションコード(例えば、カスタマイズされたアプリケーションコード)およびアプリケーションコードの実行ポリシーを受け取り、仮想マシン環境で、実行ポリシーに従ってアプリケーションコードを実行することができ、すなわち、本ハードディスクは、ハードディスクの外部からのものであるアプリケーションコードに基づいてハードディスクにアクセスする方法をサポートすることができ、それによってハードディスクの性能が改善され、ハードディスクと対話するクライアントの能力が改善される。
図10に示すように、本発明の本実施形態は別のハードディスク2を提供し、ハードディスク2は、本発明の一実施形態で提供されるハードディスクがアプリケーションコードを実行するための別の方法に対応し、ハードディスク2は、
アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取るように構成された、受け取り部20と、
受け取り部20によって受け取られたアプリケーションコードのためのアプリケーション・コード・プロセスを作成するように構成された、作成部21と、
受け取り部20によって受け取られたアプリケーションコードを、ハードディスクの、作成部21によって作成されたアプリケーション・コード・プロセスに対応するメモリへロードするように構成された、ロード部22と、
受け取り部20によって受け取られたアプリケーションコードの実行ポリシーに従ってハードディスクのメモリにおいて、作成部21によって作成されたアプリケーション・コード・プロセスを実行するように構成された、実行部23と、を含むことができる。
任意選択で、受け取り部20によって受け取られるアプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、ならびに、アプリケーションコードの識別子、アプリケーションコードの開始位置、およびアプリケーションコードの長さ、を含むことができる。
任意選択で、受け取り部20によって受け取られるアプリケーションコードはバイナリ形式のアプリケーションコードである。
任意選択で、アプリケーションコードおよびアプリケーションコードの実行ポリシーはハードディスクの記憶媒体に記憶される。ハードディスクの記憶媒体はハードディスク媒体またはハードディスクのフラッシュメモリを含むことができる。具体的には、アプリケーションコードおよびアプリケーションコードの実行ポリシーは、ハードディスク媒体に記憶することもでき、または、アプリケーションコードおよびアプリケーションコードの実行ポリシーは、ハードディスクのフラッシュメモリに記憶することもでき、または、アプリケーションコードおよびアプリケーションコードの実行ポリシーは、一部をハードディスク媒体に記憶し、一部をハードディスクのフラッシュメモリに記憶することもでき、これについては本発明では限定されない。
本発明の本実施形態で提供されるハードディスク2はイーサネット・インターフェース・ハード・ディスク(ネットワーク・ハード・ディスクともいう)とすることができ、イーサネット・インターフェース・ハード・ディスクはスマート・ハード・ディスクと呼ぶこともでき、すなわち、本発明の本実施形態で提供されるハードディスクは、ARMシステムに基づくものであるハードディスクとすることができることに留意すべきである。ARMシステムに基づくものであるハードディスクは、ハードディスクの性能を改善するために、従来のハードディスクにARMシステムを組み込んでいる。
本発明の本実施形態はハードディスクを提供する。ハードディスクはアプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、ハードディスクはアプリケーションコードのためのアプリケーション・コード・プロセスを作成し、ハードディスクは、アプリケーションコードを、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへロードし、そうしてハードディスクは、ハードディスクのメモリにおいて、アプリケーションコードの実行ポリシーに従ってアプリケーション・コード・プロセスを実行する。本解決策によって、ハードディスクは、ハードディスクの外部からのものであるアプリケーションコード(例えば、カスタマイズされたアプリケーションコード)およびアプリケーションコードの実行ポリシーを受け取り、プロセスとして、実行ポリシーに従ってアプリケーションコードを実行することができ、すなわち、本ハードディスクは、ハードディスクの外部からのものであるアプリケーションコードに基づいてハードディスクにアクセスする方法をサポートすることができ、それによってハードディスクの性能が改善され、ハードディスクと対話するクライアントの能力が改善される。
第4実施形態
図11に示すように、本発明の本実施形態はハードディスクを提供し、本ハードディスクは、本発明の一実施形態で提供されるハードディスクがアプリケーションコードを実行するための方法に対応し、本ハードディスクは、CPU(Central Processing Unit、中央処理装置)といったプロセッサ16と、少なくとも1つのデータインターフェース17と、記憶装置18と、システムバス19とを含むことができる。システムバス19は、これらの構成要素間の接続および通信を実現するように構成されている。記憶装置18は、RAM(Random Access Memory、ランダム・アクセス・メモリ)を含むことができ、少なくとも1つの磁気ディスク記憶装置といった不揮発性メモリ(non-volatile memory)をさらに含むことができる。記憶装置18は任意選択で、少なくとも1台の記憶装置を含むことができる。具体的には、記憶装置18はハードディスクの記憶媒体とすることができ、ハードディスクの記憶媒体は、ハードディスク媒体180およびハードディスクのフラッシュメモリ181を含むことができる。
いくつかの実施態様において、記憶装置18は、以下の要素、実行可能モジュールもしくはデータ構造、またはそのサブセット、またはその拡張セットを記憶する。
様々な基本サービスを実施し、ハードウェアベースのタスクを処理するように構成された、様々なシステムプログラムを含む、オペレーティングシステム、および
様々なアプリケーションサービスを実施するように構成された、様々なアプリケーションプログラムを含む、アプリケーションモジュール。
アプリケーションモジュールは、それだけに限らないが、本発明の実施形態で提供される仮想マシン環境、アプリケーション・コード・プロセスなどを含む。
ハードディスクがハードディスクの内部実行命令を実行することによって動作するときに、プロセッサ16は、図1および図3から図5のいずれか1つの方法プロセスを実行することができ、この方法プロセスは具体的には、
プロセッサ16が、システムバス19を用いてデータインターフェース17から、アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、アプリケーションコードに従って、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定し、アプリケーションコードが仮想マシン環境で実行される必要がある場合、仮想マシン環境で、アプリケーションコードの実行ポリシーに従ってアプリケーションコードを実行するように構成されること、ならびに、記憶装置18が、アプリケーションコードおよびアプリケーションコードの実行ポリシーを記憶するように構成され、前述のプロセスのソフトウェアプログラムを完了するように構成され、そのため、プロセッサ16が、ソフトウェアプログラムを実行し、アプリケーションコードおよびアプリケーションコードの実行ポリシーを呼び出すことによって前述のプロセスを完了することができること、を含む。
具体的には、アプリケーションコード、アプリケーションコードの実行ポリシー、および前述のプロセスを完了するように構成されているソフトウェアプログラムは、ハードディスク媒体180に記憶することもでき、または、ハードディスクのフラッシュメモリ181に記憶することもでき、または、一部をハードディスク媒体180に記憶し、一部をハードディスクのフラッシュメモリ181に記憶することもでき、これについては本発明では限定されない。
任意選択で、プロセッサ16は、システムバス19を用いてデータインターフェース17から、仮想マシンデータ情報を受け取り、仮想マシンデータ情報に従って仮想マシン環境を作成するようにさらに構成されており、仮想マシンデータ情報は仮想マシン環境を作成するために用いられ、記憶装置18は、仮想マシンデータ情報を記憶するようにさらに構成されている。
任意選択で、アプリケーションコードは仮想マシン識別子を搬送し、
プロセッサ16は、アプリケーションコードで搬送された仮想マシン識別子に従って、アプリケーションコードが実行される仮想マシン環境を決定するようにさらに構成されている。
任意選択で、プロセッサ16は、仮想マシン環境におけるアプリケーションコードのためのアプリケーション・コード・プロセスを作成し、システムバス19を用いて、アプリケーションコードを、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへロードし、仮想マシン環境でアプリケーション・コード・プロセスを実行するように特に構成されている。
任意選択で、プロセッサ16は、システムバス19を用いてデータインターフェース17から、仮想マシンデータ情報の実行指示を受け取り、仮想マシンデータ情報の実行指示に従って仮想マシンデータ情報の操作を行うようにさらに構成されており、操作は仮想マシンデータ情報の実行指示に対応し、仮想マシンデータ情報の実行指示は、仮想マシンデータ情報を持続させるべきかどうかを指示するために用いられ、記憶装置18は、仮想マシンデータ情報の実行指示を記憶するようにさらに構成されている。
任意選択で、プロセッサ16によって受け取られるアプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、を含む。
任意選択で、仮想マシンデータ情報および仮想マシンデータ情報の実行指示は、ハードディスクの記憶媒体に記憶することもできる。具体的には、仮想マシンデータ情報および仮想マシンデータ情報の実行指示は、ハードディスク媒体180に記憶することもでき、または、仮想マシンデータ情報および仮想マシンデータ情報の実行指示は、ハードディスクのフラッシュメモリ181に記憶することもでき、または、仮想マシンデータ情報および仮想マシンデータ情報の実行指示は、一部をハードディスク媒体180に記憶し、一部をハードディスクのフラッシュメモリ181に記憶することもでき、これについては本発明では限定されない。
本発明の本実施形態で提供されるハードディスクはイーサネット・インターフェース・ハード・ディスク(ネットワーク・ハード・ディスクともいう)とすることができ、イーサネット・インターフェース・ハード・ディスクはスマート・ハード・ディスクと呼ぶこともでき、すなわち、本発明の本実施形態で提供されるハードディスクは、ARMシステムに基づくものであるハードディスクとすることができることに留意すべきである。ARMシステムに基づくものであるハードディスクは、ハードディスクの性能を改善するために、従来のハードディスクにARMシステムを組み込んでいる。
本発明の本実施形態はハードディスクを提供する。ハードディスクは、アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定し、ハードディスクがアプリケーションコードは仮想マシン環境で実行される必要があると判定した場合、ハードディスクは、仮想マシン環境で、アプリケーションコードの実行ポリシーに従ってアプリケーションコードを実行する。本解決策によって、ハードディスクは、ハードディスクの外部からのものであるアプリケーションコード(例えば、カスタマイズされたアプリケーションコード)およびアプリケーションコードの実行ポリシーを受け取り、仮想マシン環境で、実行ポリシーに従ってアプリケーションコードを実行することができ、すなわち、本ハードディスクは、ハードディスクの外部からのものであるアプリケーションコードに基づいてハードディスクにアクセスする方法をサポートすることができ、それによってハードディスクの性能が改善され、ハードディスクと対話するクライアントの能力が改善される。
図12に示すように、本発明の本実施形態は別のハードディスクを提供し、本ハードディスクは、本発明の一実施形態で提供されるハードディスクがアプリケーションコードを実行するための別の方法に対応し、本ハードディスクは、CPUといったプロセッサ24と、少なくとも1つのデータインターフェース25と、ストレージ26と、システムバス27とを含むことができる。システムバス27は、これらの構成要素間の接続および通信を実現するように構成されている。ストレージ26は、RAMを含むことができ、少なくとも1つの磁気ディスク記憶装置といった不揮発性メモリをさらに含むことができる。ストレージ26は任意選択で、少なくとも1台の記憶装置を含むこともでき、具体的には、ストレージ26は、ハードディスク媒体260およびハードディスクのフラッシュメモリ261を含むことができる。
いくつかの実施態様において、ストレージ26は、以下の要素、実行可能モジュールもしくはデータ構造、またはそのサブセット、またはその拡張セットを記憶する。
様々な基本サービスを実施し、ハードウェアベースのタスクを処理するように構成された、様々なシステムプログラムを含む、オペレーティングシステム、および
様々なアプリケーションサービスを実施するように構成された、様々なアプリケーションプログラムを含む、アプリケーションモジュール。
アプリケーションモジュールは、それだけに限らないが、本発明の実施形態で提供されるアプリケーション・コード・プロセスなどを含む。
ハードディスクがハードディスクの内部実行命令を実行することによって動作するときに、プロセッサ24は、図2と図6のどちらかの方法プロセスを実行することができ、この方法プロセスは具体的には、
プロセッサ24が、システムバス27を用いてデータインターフェース25から、アプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、アプリケーションコードのアプリケーション・コード・プロセスを作成し、システムバス27を用いて、アプリケーションコードを、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへロードし、ハードディスクのメモリにおいて、アプリケーションコードの実行ポリシーに従ってアプリケーション・コード・プロセスを実行するように構成されること、ならびに、ストレージ26が、アプリケーションコードおよびアプリケーションコードの実行ポリシーを記憶するように構成され、前述のプロセスのソフトウェアプログラムを完了するように構成され、そのため、プロセッサ24が、ソフトウェアプログラムを実行し、アプリケーションコードおよびアプリケーションコードの実行ポリシーを呼び出すことによって前述のプロセスを完了することができること、を含む。
具体的には、アプリケーションコード、アプリケーションコードの実行ポリシー、および前述のプロセスを完了するように構成されているソフトウェアプログラムは、ハードディスク媒体260に記憶することもでき、または、ハードディスクのフラッシュメモリ261に記憶することもでき、または、一部をハードディスク媒体260に記憶し、一部をハードディスクのフラッシュメモリ261に記憶することもでき、これについては本発明では限定されない。
任意選択で、プロセッサ24によって受け取られるアプリケーションコードの実行ポリシーは、アプリケーションコードを実行するためのトリガ条件、アプリケーションコードの実行条件、またはアプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、ならびに、アプリケーションコードの識別子、アプリケーションコードの開始位置、およびアプリケーションコードの長さ、を含むことができる。
任意選択で、プロセッサ24によって受け取られるアプリケーションコードはバイナリ形式のアプリケーションコードである。
本発明の本実施形態で提供されるハードディスクはイーサネット・インターフェース・ハード・ディスク(ネットワーク・ハード・ディスクともいう)とすることができ、イーサネット・インターフェース・ハード・ディスクはスマート・ハード・ディスクと呼ぶこともでき、すなわち、本発明の本実施形態で提供されるハードディスクは、ARMシステムに基づくものであるハードディスクとすることができることに留意すべきである。ARMシステムに基づくものであるハードディスクは、ハードディスクの性能を改善するために、従来のハードディスクにARMシステムを組み込んでいる。
本発明の本実施形態はハードディスクを提供する。ハードディスクはアプリケーションコードおよびアプリケーションコードの実行ポリシーを受け取り、ハードディスクはアプリケーションコードのためのアプリケーション・コード・プロセスを作成し、ハードディスクは、アプリケーションコードを、ハードディスクの、アプリケーション・コード・プロセスに対応するメモリへロードし、そうしてハードディスクは、ハードディスクのメモリにおいて、アプリケーションコードの実行ポリシーに従ってアプリケーション・コード・プロセスを実行する。本解決策によって、ハードディスクは、ハードディスクの外部からのものであるアプリケーションコード(例えば、カスタマイズされたアプリケーションコード)およびアプリケーションコードの実行ポリシーを受け取り、プロセスとして、実行ポリシーに従ってアプリケーションコードを実行することができ、すなわち、本ハードディスクは、ハードディスクの外部からのものであるアプリケーションコードに基づいてハードディスクにアクセスする方法をサポートすることができ、それによってハードディスクの性能が改善され、ハードディスクと対話するクライアントの能力が改善される。
説明を簡便にする目的で、前述の機能モジュールの分割は説明のための例とみなされるものであることを、当業者ははっきりと理解することができる。実際の適用においては、前述の各機能を、異なる機能モジュールに割り振り、要件に従って実装することができ、すなわち、装置の内部構造が上述の各機能の全部または一部を実装するための異なる機能モジュールに分割される。前述のシステム、装置およびユニットの詳細な動作プロセスについては、前述の方法実施形態における対応するプロセスを参照することができ、ここでは詳細を繰り返さない。
本出願で提供されるいくつかの実施形態においては、開示のシステム、装置、および方法を他のやり方で実現することもできることを理解すべきである。例えば、説明された装置実施形態は単なる例示にすぎない。例えば、モジュールまたはユニットの分割は単なる論理的機能分割にすぎず、実際の実装に際しては他の分割も可能である。例えば、複数のユニットまたはコンポーネントが組み合わされ、または統合されて別のシステムになる場合もあり、ある機能が無視され、または実行されない場合もある。加えて、表示された、または論じられた相互結合または直接結合または通信接続を、いくつかのインターフェースを使用して実現することもできる。装置間またはユニット間の間接結合または通信接続は、電子的形態、機械的形態、または他の形態として実現することができる。
別々の部品として記述されたユニットは物理的に分離している場合もそうでない場合もあり、ユニットとして表示された部品は、物理的ユニットである場合もそうでない場合もあり、一箇所に位置する場合もあり、複数のネットワークユニット上に分散される場合もある。ユニットの一部または全部を、各実施形態の解決策の目的を達成するための実際の必要に従って選択することもできる。
加えて、本発明の各実施形態における機能ユニットが1つの処理ユニットへ統合される場合もあり、ユニットの各々が物理的に独立して存在する場合もあり、または2つ以上のユニットが1つのユニットへ統合される。統合ユニットはハードウェアの形態で実現することもでき、ソフトウェア機能ユニットの形態で実現することもできる。
統合ユニットがソフトウェア機能ユニットの形態で実現され、独立した製品として販売され、または使用される場合に、その統合ユニットはコンピュータ可読記憶媒体に記憶することができる。そうした理解に基づき、本発明の技術解決策を本質的に、または先行技術に寄与する部分を、または技術解決策の全部もしくは一部を、ソフトウェア製品の形態で実現することができる。コンピュータソフトウェア製品は記憶媒体に記憶されており、(パーソナルコンピュータ、サーバ、もしくはネットワークデバイスとすることができる)コンピュータデバイスまたはプロセッサ(processor)に、本発明の各実施形態で記述されている方法のステップの全部または一部を実行するよう命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、取り外し可能ハードディスク、読取り専用メモリ(ROM、Read-Only Memory)、ランダム・アクセス・メモリ(RAM、Random Access Memory)、磁気ディスク、光ディスクといった、プログラムコードを記憶することができる任意の媒体を含む。
以上の説明は、単に、本発明の具体的実施態様であるにすぎず、本発明の保護範囲を限定するためのものではない。本発明で開示される技術範囲内で当業者によって容易に考案されるいかなる変形も置換も、本発明の保護範囲内に含まれるものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うべきものとする。
1 ハードディスク
2 ハードディスク
10 受け取り部
11 判定部
12 実行部
13 作成部
14 ロード部
16 プロセッサ
17 データインターフェース
18 記憶装置
19 システムバス
20 受け取り部
21 作成部
22 ロード部
23 実行部
24 プロセッサ
25 データインターフェース
26 ストレージ
27 システムバス
180 ハードディスク媒体
181 ハードディスクのフラッシュメモリ
260 ハードディスク媒体
261 ハードディスクのフラッシュメモリ

Claims (30)

  1. ハードディスクがアプリケーションコードを実行するための方法であって、
    ハードディスクにより、前記ハードディスクのデータAPIを呼び出すことによってアプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取るステップであって、前記データAPIおよび前記ハードディスクのKey-Valueインターフェースは、同一のデータプレーン上にある、ステップと、
    前記ハードディスクにより、前記アプリケーションコードに従って、前記アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定するステップと、
    前記アプリケーションコードが前記仮想マシン環境で実行される必要がある場合、前記ハードディスクにより、前記アプリケーションコードの前記実行ポリシーに従って、前記仮想マシン環境で前記アプリケーションコードを実行するステップと、
    を含む、ハードディスクがアプリケーションコードを実行するための方法。
  2. 前記ハードディスクにより、仮想マシンデータ情報を受け取るステップであって、前記仮想マシンデータ情報は、前記仮想マシン環境を作成するために用いられる、ステップと、
    前記ハードディスクにより、前記仮想マシンデータ情報に従って、前記仮想マシン環境を作成するステップと、
    をさらに含む、請求項1に記載のハードディスクがアプリケーションコードを実行するための方法。
  3. 前記アプリケーションコードは、仮想マシン識別子を搬送し、
    前記ハードディスクにより、前記アプリケーションコードで搬送された前記仮想マシン識別子に従って、前記アプリケーションコードが実行される前記仮想マシン環境を決定するステップ
    をさらに含む、請求項1または2に記載のハードディスクがアプリケーションコードを実行するための方法。
  4. 前記ハードディスクにより、前記アプリケーションコードの前記実行ポリシーに従って、前記仮想マシン環境で前記アプリケーションコードを実行する前記ステップが、
    前記ハードディスクにより、前記仮想マシン環境における前記アプリケーションコードのためのアプリケーション・コード・プロセスを作成するステップと、
    前記ハードディスクにより、前記ハードディスクの、前記アプリケーション・コード・プロセスに対応するメモリへ前記アプリケーションコードをロードするステップと、
    前記ハードディスクにより、前記アプリケーションコードの前記実行ポリシーに従って、前記仮想マシン環境で前記アプリケーション・コード・プロセスを実行するステップと、
    を含む、請求項1から3のいずれか一項に記載のハードディスクがアプリケーションコードを実行するための方法。
  5. 前記ハードディスクにより、前記仮想マシンデータ情報の実行指示を受け取るステップであって、前記仮想マシンデータ情報の前記実行指示は、前記仮想マシンデータ情報を持続させるべきかどうかを前記ハードディスクに指示するために用いられる、ステップと、
    前記ハードディスクにより、前記仮想マシンデータ情報の前記実行指示に従って、前記仮想マシンデータ情報の操作を行うステップであって、前記操作は、前記仮想マシンデータ情報の前記実行指示に対応する、ステップと、
    をさらに含む、請求項2に記載のハードディスクがアプリケーションコードを実行するための方法。
  6. 前記アプリケーションコードの前記実行ポリシーは、前記アプリケーションコードを実行するためのトリガ条件、前記アプリケーションコードの実行条件、または前記アプリケーションコードの前記実行が完了した後の操作のうちの少なくとも1つを含む、請求項1から5のいずれか一項に記載のハードディスクがアプリケーションコードを実行するための方法。
  7. ハードディスクがアプリケーションコードを実行するための方法であって、
    ハードディスクにより、前記ハードディスクのデータAPIを呼び出すことによってアプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取るステップであって、前記データAPIおよび前記ハードディスクのKey-Valueインターフェースは、同一のデータプレーン上にある、ステップと、
    前記ハードディスクにより、前記アプリケーションコードのためのアプリケーション・コード・プロセスを作成するステップと、
    前記ハードディスクにより、前記ハードディスクの、前記アプリケーション・コード・プロセスに対応するメモリへ前記アプリケーションコードをロードするステップと、
    前記ハードディスクにより、前記アプリケーションコードの前記実行ポリシーに従って、前記ハードディスクの前記メモリにおいて前記アプリケーション・コード・プロセスを実行するステップと、
    を含む、ハードディスクがアプリケーションコードを実行するための方法。
  8. 前記アプリケーションコードの前記実行ポリシーは、前記アプリケーションコードを実行するためのトリガ条件、前記アプリケーションコードの実行条件、または前記アプリケーションコードの前記実行が完了した後の操作のうちの少なくとも1つ、ならびに、前記アプリケーションコードの識別子、前記アプリケーションコードの開始位置、および前記アプリケーションコードの長さを含む、請求項7に記載のハードディスクがアプリケーションコードを実行するための方法。
  9. 前記アプリケーションコードは、バイナリ形式のアプリケーションコードである、請求項7または8に記載のハードディスクがアプリケーションコードを実行するための方法。
  10. ハードディスクであって、
    前記ハードディスクのデータAPIを呼び出すことによってアプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取るように構成された、受け取り部であって、前記データAPIおよび前記ハードディスクのKey-Valueインターフェースは、同一のデータプレーン上にある、受け取り部と、
    前記受け取り部によって受け取られた前記アプリケーションコードに従って、前記アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定するように構成された、判定部と、
    前記判定部が前記アプリケーションコードは前記仮想マシン環境で実行される必要があると判定した場合、前記受け取り部によって受け取られた前記アプリケーションコードの前記実行ポリシーに従って、前記仮想マシン環境で、前記受け取り部によって受け取られた前記アプリケーションコードを実行するように構成された、実行部と、
    を含む、ハードディスク。
  11. 作成部をさらに含み、
    前記受け取り部は、仮想マシンデータ情報を受け取るようにさらに構成されており、
    前記仮想マシンデータ情報は、前記仮想マシン環境を作成するために用いられ、
    前記作成部は、前記受け取り部によって受け取られた前記仮想マシンデータ情報に従って、前記仮想マシン環境を作成するように構成されている、請求項10に記載のハードディスク。
  12. 前記アプリケーションコードは、仮想マシン識別子を搬送し、
    前記判定部は、前記アプリケーションコードで搬送された前記仮想マシン識別子に従って、前記アプリケーションコードが実行される前記仮想マシン環境を決定するようにさらに構成されている、請求項10または11に記載のハードディスク。
  13. ロード部をさらに含み、
    前記作成部は、前記受け取り部によって受け取られた前記アプリケーションコードのための前記仮想マシン環境におけるアプリケーション・コード・プロセスを作成するようにさらに構成されており、
    前記ロード部は、前記受け取り部によって受け取られた前記アプリケーションコードを、前記ハードディスクの、前記作成部によって作成された前記アプリケーション・コード・プロセスに対応するメモリへロードするように構成されており、
    前記実行部は、前記受け取り部によって受け取られた前記アプリケーションコードの前記実行ポリシーに従って、前記作成部によって作成された前記仮想マシン環境で、前記作成部によって作成された前記アプリケーション・コード・プロセスを実行するようにさらに構成されている、請求項11または請求項11を引用する請求項12に記載のハードディスク。
  14. 前記受け取り部は、前記仮想マシンデータ情報の実行指示を受け取るようにさらに構成されており、
    前記仮想マシンデータ情報の前記実行指示は、前記仮想マシンデータ情報を持続させるべきかどうかを指示するために用いられ、
    前記実行部は、前記仮想マシンデータ情報の前記受け取り部によって受け取られた前記実行指示に従って、前記受け取り部によって受け取られた前記仮想マシンデータ情報の操作を行うようにさらに構成されており、
    前記操作は、前記仮想マシンデータ情報の前記実行指示に対応する、請求項11、請求項11を引用する請求項12、または請求項13に記載のハードディスク。
  15. 前記受け取り部によって受け取られる前記アプリケーションコードの前記実行ポリシーは、前記アプリケーションコードを実行するためのトリガ条件、前記アプリケーションコードの実行条件、または前記アプリケーションコードの前記実行が完了した後の操作のうちの少なくとも1つを含む、請求項10から14のいずれか一項に記載のハードディスク。
  16. ハードディスクであって、
    前記ハードディスクのデータAPIを呼び出すことによってアプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取るように構成された、受け取り部であって、前記データAPIおよび前記ハードディスクのKey-Valueインターフェースは、同一のデータプレーン上にある、受け取り部と、
    前記受け取り部によって受け取られた前記アプリケーションコードのためのアプリケーション・コード・プロセスを作成するように構成された、作成部と、
    前記受け取り部によって受け取られた前記アプリケーションコードを、前記ハードディスクの、前記作成部によって作成された前記アプリケーション・コード・プロセスに対応するメモリへロードするように構成された、ロード部と、
    前記受け取り部によって受け取られた前記アプリケーションコードの前記実行ポリシーに従って、前記ハードディスクの前記メモリにおいて、前記作成部によって作成された前記アプリケーション・コード・プロセスを実行するように構成された、実行部と、
    を含む、ハードディスク。
  17. 前記受け取り部によって受け取られる前記アプリケーションコードの前記実行ポリシーは、前記アプリケーションコードを実行するためのトリガ条件、前記アプリケーションコードの実行条件、または前記アプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、ならびに、前記アプリケーションコードの識別子、前記アプリケーションコードの開始位置、および前記アプリケーションコードの長さを含む、請求項16に記載のハードディスク。
  18. 前記受け取り部によって受け取られる前記アプリケーションコードは、バイナリ形式のアプリケーションコードである、請求項16または17に記載のハードディスク。
  19. ハードディスクであって、
    前記ハードディスクのデータAPIを呼び出すことによってアプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取り、前記アプリケーションコードに従って、前記アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定し、前記アプリケーションコードが前記仮想マシン環境で実行される必要がある場合、前記アプリケーションコードの前記実行ポリシーに従って、前記仮想マシン環境で前記アプリケーションコードを実行するように構成された、プロセッサであって、前記データAPIおよび前記ハードディスクのKey-Valueインターフェースは、同一のデータプレーン上にある、プロセッサと、
    前記アプリケーションコードおよび前記アプリケーションコードの前記実行ポリシーを記憶するように構成された、記憶装置と、
    を含む、ハードディスク。
  20. 前記プロセッサは、仮想マシンデータ情報を受け取り、前記仮想マシンデータ情報に従って、前記仮想マシン環境を作成するようにさらに構成されており、
    前記仮想マシンデータ情報は、前記仮想マシン環境を作成するために用いられ、
    前記記憶装置は、前記仮想マシンデータ情報を記憶するようにさらに構成されている、請求項19に記載のハードディスク。
  21. 前記アプリケーションコードは、仮想マシン識別子を搬送し、
    前記プロセッサは、前記アプリケーションコードで搬送された前記仮想マシン識別子に従って、前記アプリケーションコードが実行される前記仮想マシン環境を決定するようにさらに構成されている、請求項19または20に記載のハードディスク。
  22. 前記プロセッサは、前記仮想マシン環境における前記アプリケーションコードのためのアプリケーション・コード・プロセスを作成し、前記アプリケーションコードを、前記ハードディスクの、前記アプリケーション・コード・プロセスに対応するメモリへロードし、前記仮想マシン環境で前記アプリケーション・コード・プロセスを実行するようにさらに構成されている、請求項19から21のいずれか一項に記載のハードディスク。
  23. 前記プロセッサは、前記仮想マシンデータ情報の実行指示を受け取り、前記仮想マシンデータ情報の前記実行指示に従って、前記仮想マシンデータ情報の操作を行うようにさらに構成されており、
    前記操作は、前記仮想マシンデータ情報の前記実行指示に対応し、
    前記仮想マシンデータ情報の前記実行指示は、前記仮想マシンデータ情報を持続させるべきかどうかを指示するために用いられ、
    前記記憶装置は、前記仮想マシンデータ情報の前記実行指示を記憶するようにさらに構成されている、請求項20に記載のハードディスク。
  24. 前記プロセッサによって受け取られる前記アプリケーションコードの前記実行ポリシーは、前記アプリケーションコードを実行するためのトリガ条件、前記アプリケーションコードの実行条件、または前記アプリケーションコードの前記実行が完了した後の操作のうちの少なくとも1つを含む、請求項19から23のいずれか一項に記載のハードディスク。
  25. ハードディスクであって、
    前記ハードディスクのデータAPIを呼び出すことによってアプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取り、前記アプリケーションコードのためのアプリケーション・コード・プロセスを作成し、前記アプリケーションコードを、前記ハードディスクの、前記アプリケーション・コード・プロセスに対応するメモリへロードし、前記アプリケーションコードの前記実行ポリシーに従って、前記ハードディスクの前記メモリにおいて前記アプリケーション・コード・プロセスを実行するように構成された、プロセッサであって、前記データAPIおよび前記ハードディスクのKey-Valueインターフェースは、同一のデータプレーン上にある、プロセッサと、
    前記アプリケーションコードおよび前記アプリケーションコードの前記実行ポリシーを記憶するように構成された、記憶装置と、
    を含む、ハードディスク。
  26. 前記プロセッサによって受け取られる前記アプリケーションコードの前記実行ポリシーは、前記アプリケーションコードを実行するためのトリガ条件、前記アプリケーションコードの実行条件、または前記アプリケーションコードの前記実行が完了した後の操作のうちの少なくとも1つ、ならびに、前記アプリケーションコードの識別子、前記アプリケーションコードの開始位置、および前記アプリケーションコードの長さを含む、請求項25に記載のハードディスク。
  27. 前記プロセッサによって受け取られる前記アプリケーションコードは、バイナリ形式のアプリケーションコードである、請求項25または26に記載のハードディスク。
  28. ハードディスクにより、アプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取る前記ステップが、
    前記ハードディスクにより、Key-Valueデータのための伝送路と同一の伝送路を介して、前記アプリケーションコードおよび前記アプリケーションコードの前記実行ポリシーを受け取るステップ
    を含む、請求項1に記載のハードディスクがアプリケーションコードを実行するための方法。
  29. 前記受け取り部は、Key-Valueデータのための伝送路と同一の伝送路を介して、前記アプリケーションコードおよび前記アプリケーションコードの前記実行ポリシーを受け取るようにさらに構成されている、請求項10に記載のハードディスク。
  30. 前記受け取り部は、Key-Valueデータのための伝送路と同一の伝送路を介して、前記アプリケーションコードおよび前記アプリケーションコードの前記実行ポリシーを受け取るようにさらに構成されている、請求項16に記載のハードディスク。
JP2016565326A 2014-04-30 2014-04-30 ハードディスクがアプリケーションコードを実行するための方法および装置 Active JP6418419B2 (ja)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2017515236A JP2017515236A (ja) 2017-06-08
JP6418419B2 true JP6418419B2 (ja) 2018-11-07

Family

ID=54358016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016565326A Active JP6418419B2 (ja) 2014-04-30 2014-04-30 ハードディスクがアプリケーションコードを実行するための方法および装置

Country Status (4)

Country Link
US (1) US10310876B2 (ja)
JP (1) JP6418419B2 (ja)
CN (2) CN107844360B (ja)
WO (1) WO2015165057A1 (ja)

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
US10868836B1 (en) * 2017-06-07 2020-12-15 Amazon Technologies, Inc. Dynamic security policy management
US10839060B1 (en) * 2019-08-27 2020-11-17 Capital One Services, Llc Techniques for multi-voice speech recognition commands

Family Cites Families (31)

* 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
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
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
WO2009118721A1 (en) * 2008-03-28 2009-10-01 Real Imaging Ltd. Method apparatus and system for analyzing thermal images
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 成都市华为赛门铁克科技有限公司 一种固态硬盘中的数据处理方法、固态硬盘和网络设备
CN101442548B (zh) * 2008-12-17 2012-09-05 成都市华为赛门铁克科技有限公司 一种固态硬盘的操作方法和固态硬盘
CN101546601B (zh) * 2009-05-13 2011-06-08 杭州华三通信技术有限公司 固态硬盘及存储***
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
US8725951B2 (en) * 2010-04-12 2014-05-13 Sandisk Enterprise Ip Llc Efficient 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
JP5926373B2 (ja) * 2012-05-07 2016-05-25 株式会社日立製作所 計算機システム、ストレージ管理計算機及びストレージ管理方法
CN102982275A (zh) * 2012-11-14 2013-03-20 北京奇虎科技有限公司 一种运行应用程序的安全控制方法和装置
CN102982276A (zh) * 2012-11-14 2013-03-20 北京奇虎科技有限公司 应用程序控制方法和装置
CN103051687B (zh) * 2012-12-10 2016-05-25 浪潮(北京)电子信息产业有限公司 一种将应用业务部署到云存储虚拟机的***及方法
US8997080B2 (en) * 2013-02-11 2015-03-31 Citrix Systems, Inc. System updates with personal virtual disks
JP2016529575A (ja) * 2013-05-20 2016-09-23 華為技術有限公司Huawei Technologies Co.,Ltd. ハードディスクおよびデータ処理方法

Also Published As

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

Similar Documents

Publication Publication Date Title
US11226847B2 (en) Implementing an application manifest in a node-specific manner using an intent-based orchestrator
US11681441B2 (en) Input/output processing in a distributed storage node with RDMA
JP5680961B2 (ja) 物理イメージと仮想イメージの統合的な提供
KR20110128846A (ko) 장치와 웹 서비스 간에 브라우저 캐시를 동기화하는 프로그래밍 모델
JP6188713B2 (ja) 自律ネットワーク・ストリーミング
US10817312B2 (en) Programming model for performant computing in document-oriented storage services
US8893272B2 (en) Method and device for recombining runtime instruction
US20200320189A1 (en) Processing method for container security policy and related apparatus
US20190199794A1 (en) Efficient replication of changes to a byte-addressable persistent memory over a network
WO2021139431A1 (zh) 微服务的数据同步方法、装置、电子设备及存储介质
US20140082275A1 (en) Server, host and method for reading base image through storage area network
JP6418419B2 (ja) ハードディスクがアプリケーションコードを実行するための方法および装置
US11681653B2 (en) Namespace representation and enhanced browsability for replicated file systems
US10223178B2 (en) Enabling WPD devices to be managed at the capability level
US8924963B2 (en) In-process intermediary to create virtual processes
US11604669B2 (en) Single use execution environment for on-demand code execution
CN109597774B (zh) 一种存储设备功能的控制方法、装置及设备
US20150127682A1 (en) Data connectors in large scale processing clusters
US11017032B1 (en) Document recovery utilizing serialized data
US9697036B2 (en) Method and apparatus for generating unique identifier for distributed computing environment
US9213842B2 (en) Tracing data block operations
US10853040B2 (en) Address space splitting for legacy application compatibility
US9501229B1 (en) Multi-tiered coarray programming

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180911

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180925

R150 Certificate of patent or registration of utility model

Ref document number: 6418419

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250