(57)【特許請求の範囲】
【請求項１】
ハードディスクがアプリケーションコードを実行するための方法であって、
ハードディスクにより、前記ハードディスクのデータAPIを呼び出すことによってアプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取るステップであって、前記データAPIおよび前記ハードディスクのKey-Valueインターフェースは、同一のデータプレーン上にある、ステップと、
前記ハードディスクにより、前記アプリケーションコードに従って、前記アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定するステップと、
前記アプリケーションコードが前記仮想マシン環境で実行される必要がある場合、前記ハードディスクにより、前記アプリケーションコードの前記実行ポリシーに従って、前記仮想マシン環境で前記アプリケーションコードを実行するステップと、
を含む、ハードディスクがアプリケーションコードを実行するための方法。
【請求項２】
前記ハードディスクにより、仮想マシンデータ情報を受け取るステップであって、前記仮想マシンデータ情報は、前記仮想マシン環境を作成するために用いられる、ステップと、
前記ハードディスクにより、前記仮想マシンデータ情報に従って、前記仮想マシン環境を作成するステップと、
をさらに含む、請求項1に記載のハードディスクがアプリケーションコードを実行するための方法。
【請求項３】
前記アプリケーションコードは、仮想マシン識別子を搬送し、
前記ハードディスクにより、前記アプリケーションコードで搬送された前記仮想マシン識別子に従って、前記アプリケーションコードが実行される前記仮想マシン環境を決定するステップ
をさらに含む、請求項1または2に記載のハードディスクがアプリケーションコードを実行するための方法。
【請求項４】
前記ハードディスクにより、前記アプリケーションコードの前記実行ポリシーに従って、前記仮想マシン環境で前記アプリケーションコードを実行する前記ステップが、
前記ハードディスクにより、前記仮想マシン環境における前記アプリケーションコードのためのアプリケーション・コード・プロセスを作成するステップと、
前記ハードディスクにより、前記ハードディスクの、前記アプリケーション・コード・プロセスに対応するメモリへ前記アプリケーションコードをロードするステップと、
前記ハードディスクにより、前記アプリケーションコードの前記実行ポリシーに従って、前記仮想マシン環境で前記アプリケーション・コード・プロセスを実行するステップと、
を含む、請求項1から3のいずれか一項に記載のハードディスクがアプリケーションコードを実行するための方法。
【請求項５】
前記ハードディスクにより、前記仮想マシンデータ情報の実行指示を受け取るステップであって、前記仮想マシンデータ情報の前記実行指示は、前記仮想マシンデータ情報を持続させるべきかどうかを前記ハードディスクに指示するために用いられる、ステップと、
前記ハードディスクにより、前記仮想マシンデータ情報の前記実行指示に従って、前記仮想マシンデータ情報の操作を行うステップであって、前記操作は、前記仮想マシンデータ情報の前記実行指示に対応する、ステップと、
をさらに含む、請求項2に記載のハードディスクがアプリケーションコードを実行するための方法。
【請求項６】
前記アプリケーションコードの前記実行ポリシーは、前記アプリケーションコードを実行するためのトリガ条件、前記アプリケーションコードの実行条件、または前記アプリケーションコードの前記実行が完了した後の操作のうちの少なくとも1つを含む、請求項1から5のいずれか一項に記載のハードディスクがアプリケーションコードを実行するための方法。
【請求項７】
ハードディスクがアプリケーションコードを実行するための方法であって、
ハードディスクにより、前記ハードディスクのデータAPIを呼び出すことによってアプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取るステップであって、前記データAPIおよび前記ハードディスクのKey-Valueインターフェースは、同一のデータプレーン上にある、ステップと、
前記ハードディスクにより、前記アプリケーションコードのためのアプリケーション・コード・プロセスを作成するステップと、
前記ハードディスクにより、前記ハードディスクの、前記アプリケーション・コード・プロセスに対応するメモリへ前記アプリケーションコードをロードするステップと、
前記ハードディスクにより、前記アプリケーションコードの前記実行ポリシーに従って、前記ハードディスクの前記メモリにおいて前記アプリケーション・コード・プロセスを実行するステップと、
を含む、ハードディスクがアプリケーションコードを実行するための方法。
【請求項８】
前記アプリケーションコードの前記実行ポリシーは、前記アプリケーションコードを実行するためのトリガ条件、前記アプリケーションコードの実行条件、または前記アプリケーションコードの前記実行が完了した後の操作のうちの少なくとも1つ、ならびに、前記アプリケーションコードの識別子、前記アプリケーションコードの開始位置、および前記アプリケーションコードの長さを含む、請求項7に記載のハードディスクがアプリケーションコードを実行するための方法。
【請求項９】
前記アプリケーションコードは、バイナリ形式のアプリケーションコードである、請求項7または8に記載のハードディスクがアプリケーションコードを実行するための方法。
【請求項１０】
ハードディスクであって、
前記ハードディスクのデータAPIを呼び出すことによってアプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取るように構成された、受け取り部であって、前記データAPIおよび前記ハードディスクのKey-Valueインターフェースは、同一のデータプレーン上にある、受け取り部と、
前記受け取り部によって受け取られた前記アプリケーションコードに従って、前記アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定するように構成された、判定部と、
前記判定部が前記アプリケーションコードは前記仮想マシン環境で実行される必要があると判定した場合、前記受け取り部によって受け取られた前記アプリケーションコードの前記実行ポリシーに従って、前記仮想マシン環境で、前記受け取り部によって受け取られた前記アプリケーションコードを実行するように構成された、実行部と、
を含む、ハードディスク。
【請求項１１】
作成部をさらに含み、
前記受け取り部は、仮想マシンデータ情報を受け取るようにさらに構成されており、
前記仮想マシンデータ情報は、前記仮想マシン環境を作成するために用いられ、
前記作成部は、前記受け取り部によって受け取られた前記仮想マシンデータ情報に従って、前記仮想マシン環境を作成するように構成されている、請求項10に記載のハードディスク。
【請求項１２】
前記アプリケーションコードは、仮想マシン識別子を搬送し、
前記判定部は、前記アプリケーションコードで搬送された前記仮想マシン識別子に従って、前記アプリケーションコードが実行される前記仮想マシン環境を決定するようにさらに構成されている、請求項10または11に記載のハードディスク。
【請求項１３】
ロード部をさらに含み、
前記作成部は、前記受け取り部によって受け取られた前記アプリケーションコードのための前記仮想マシン環境におけるアプリケーション・コード・プロセスを作成するようにさらに構成されており、
前記ロード部は、前記受け取り部によって受け取られた前記アプリケーションコードを、前記ハードディスクの、前記作成部によって作成された前記アプリケーション・コード・プロセスに対応するメモリへロードするように構成されており、
前記実行部は、前記受け取り部によって受け取られた前記アプリケーションコードの前記実行ポリシーに従って、前記作成部によって作成された前記仮想マシン環境で、前記作成部によって作成された前記アプリケーション・コード・プロセスを実行するようにさらに構成されている、請求項11または請求項11を引用する請求項12に記載のハードディスク。
【請求項１４】
前記受け取り部は、前記仮想マシンデータ情報の実行指示を受け取るようにさらに構成されており、
前記仮想マシンデータ情報の前記実行指示は、前記仮想マシンデータ情報を持続させるべきかどうかを指示するために用いられ、
前記実行部は、前記仮想マシンデータ情報の前記受け取り部によって受け取られた前記実行指示に従って、前記受け取り部によって受け取られた前記仮想マシンデータ情報の操作を行うようにさらに構成されており、
前記操作は、前記仮想マシンデータ情報の前記実行指示に対応する、請求項11、請求項11を引用する請求項12、または請求項13に記載のハードディスク。
【請求項１５】
前記受け取り部によって受け取られる前記アプリケーションコードの前記実行ポリシーは、前記アプリケーションコードを実行するためのトリガ条件、前記アプリケーションコードの実行条件、または前記アプリケーションコードの前記実行が完了した後の操作のうちの少なくとも1つを含む、請求項10から14のいずれか一項に記載のハードディスク。
【請求項１６】
ハードディスクであって、
前記ハードディスクのデータAPIを呼び出すことによってアプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取るように構成された、受け取り部であって、前記データAPIおよび前記ハードディスクのKey-Valueインターフェースは、同一のデータプレーン上にある、受け取り部と、
前記受け取り部によって受け取られた前記アプリケーションコードのためのアプリケーション・コード・プロセスを作成するように構成された、作成部と、
前記受け取り部によって受け取られた前記アプリケーションコードを、前記ハードディスクの、前記作成部によって作成された前記アプリケーション・コード・プロセスに対応するメモリへロードするように構成された、ロード部と、
前記受け取り部によって受け取られた前記アプリケーションコードの前記実行ポリシーに従って、前記ハードディスクの前記メモリにおいて、前記作成部によって作成された前記アプリケーション・コード・プロセスを実行するように構成された、実行部と、
を含む、ハードディスク。
【請求項１７】
前記受け取り部によって受け取られる前記アプリケーションコードの前記実行ポリシーは、前記アプリケーションコードを実行するためのトリガ条件、前記アプリケーションコードの実行条件、または前記アプリケーションコードの実行が完了した後の操作のうちの少なくとも1つ、ならびに、前記アプリケーションコードの識別子、前記アプリケーションコードの開始位置、および前記アプリケーションコードの長さを含む、請求項16に記載のハードディスク。
【請求項１８】
前記受け取り部によって受け取られる前記アプリケーションコードは、バイナリ形式のアプリケーションコードである、請求項16または17に記載のハードディスク。
【請求項１９】
ハードディスクであって、
前記ハードディスクのデータAPIを呼び出すことによってアプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取り、前記アプリケーションコードに従って、前記アプリケーションコードが仮想マシン環境で実行される必要があるかどうかを判定し、前記アプリケーションコードが前記仮想マシン環境で実行される必要がある場合、前記アプリケーションコードの前記実行ポリシーに従って、前記仮想マシン環境で前記アプリケーションコードを実行するように構成された、プロセッサであって、前記データAPIおよび前記ハードディスクのKey-Valueインターフェースは、同一のデータプレーン上にある、プロセッサと、
前記アプリケーションコードおよび前記アプリケーションコードの前記実行ポリシーを記憶するように構成された、記憶装置と、
を含む、ハードディスク。
【請求項２０】
前記プロセッサは、仮想マシンデータ情報を受け取り、前記仮想マシンデータ情報に従って、前記仮想マシン環境を作成するようにさらに構成されており、
前記仮想マシンデータ情報は、前記仮想マシン環境を作成するために用いられ、
前記記憶装置は、前記仮想マシンデータ情報を記憶するようにさらに構成されている、請求項19に記載のハードディスク。
【請求項２１】
前記アプリケーションコードは、仮想マシン識別子を搬送し、
前記プロセッサは、前記アプリケーションコードで搬送された前記仮想マシン識別子に従って、前記アプリケーションコードが実行される前記仮想マシン環境を決定するようにさらに構成されている、請求項19または20に記載のハードディスク。
【請求項２２】
前記プロセッサは、前記仮想マシン環境における前記アプリケーションコードのためのアプリケーション・コード・プロセスを作成し、前記アプリケーションコードを、前記ハードディスクの、前記アプリケーション・コード・プロセスに対応するメモリへロードし、前記仮想マシン環境で前記アプリケーション・コード・プロセスを実行するようにさらに構成されている、請求項19から21のいずれか一項に記載のハードディスク。
【請求項２３】
前記プロセッサは、前記仮想マシンデータ情報の実行指示を受け取り、前記仮想マシンデータ情報の前記実行指示に従って、前記仮想マシンデータ情報の操作を行うようにさらに構成されており、
前記操作は、前記仮想マシンデータ情報の前記実行指示に対応し、
前記仮想マシンデータ情報の前記実行指示は、前記仮想マシンデータ情報を持続させるべきかどうかを指示するために用いられ、
前記記憶装置は、前記仮想マシンデータ情報の前記実行指示を記憶するようにさらに構成されている、請求項20に記載のハードディスク。
【請求項２４】
前記プロセッサによって受け取られる前記アプリケーションコードの前記実行ポリシーは、前記アプリケーションコードを実行するためのトリガ条件、前記アプリケーションコードの実行条件、または前記アプリケーションコードの前記実行が完了した後の操作のうちの少なくとも1つを含む、請求項19から23のいずれか一項に記載のハードディスク。
【請求項２５】
ハードディスクであって、
前記ハードディスクのデータAPIを呼び出すことによってアプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取り、前記アプリケーションコードのためのアプリケーション・コード・プロセスを作成し、前記アプリケーションコードを、前記ハードディスクの、前記アプリケーション・コード・プロセスに対応するメモリへロードし、前記アプリケーションコードの前記実行ポリシーに従って、前記ハードディスクの前記メモリにおいて前記アプリケーション・コード・プロセスを実行するように構成された、プロセッサであって、前記データAPIおよび前記ハードディスクのKey-Valueインターフェースは、同一のデータプレーン上にある、プロセッサと、
前記アプリケーションコードおよび前記アプリケーションコードの前記実行ポリシーを記憶するように構成された、記憶装置と、
を含む、ハードディスク。
【請求項２６】
前記プロセッサによって受け取られる前記アプリケーションコードの前記実行ポリシーは、前記アプリケーションコードを実行するためのトリガ条件、前記アプリケーションコードの実行条件、または前記アプリケーションコードの前記実行が完了した後の操作のうちの少なくとも1つ、ならびに、前記アプリケーションコードの識別子、前記アプリケーションコードの開始位置、および前記アプリケーションコードの長さを含む、請求項25に記載のハードディスク。
【請求項２７】
前記プロセッサによって受け取られる前記アプリケーションコードは、バイナリ形式のアプリケーションコードである、請求項25または26に記載のハードディスク。
【請求項２８】
ハードディスクにより、アプリケーションコードおよび該アプリケーションコードの実行ポリシーを受け取る前記ステップが、
前記ハードディスクにより、Key-Valueデータのための伝送路と同一の伝送路を介して、前記アプリケーションコードおよび前記アプリケーションコードの前記実行ポリシーを受け取るステップ
を含む、請求項1に記載のハードディスクがアプリケーションコードを実行するための方法。
【請求項２９】
前記受け取り部は、Key-Valueデータのための伝送路と同一の伝送路を介して、前記アプリケーションコードおよび前記アプリケーションコードの前記実行ポリシーを受け取るようにさらに構成されている、請求項10に記載のハードディスク。
【請求項３０】
前記受け取り部は、Key-Valueデータのための伝送路と同一の伝送路を介して、前記アプリケーションコードおよび前記アプリケーションコードの前記実行ポリシーを受け取るようにさらに構成されている、請求項16に記載のハードディスク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記憶技術の分野に関し、詳細には、ハードディスクがアプリケーションコードを実行するための方法および装置に関する。
【背景技術】
【０００２】
近年、クラウド記憶の出現と共に、イーサネット（登録商標）インターフェースを備えるハードディスク、すなわち、イーサネット・インターフェース・ハード・ディスクがますます広く用いられるようになってきている。
【０００３】
既存のイーサネット・インターフェース・ハード・ディスクはオープンな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  ハードディスクのフラッシュメモリ
【図１】
0006418419.tif 000002
【図２】
0006418419.tif 000003
【図３】
0006418419.tif 000004
【図４】
0006418419.tif 000005
【図５】
0006418419.tif 000006
【図６】
0006418419.tif 000007
【図７】
0006418419.tif 000008
【図８】
0006418419.tif 000009
【図９】
0006418419.tif 000010
【図１０】
0006418419.tif 000011
【図１１】
0006418419.tif 000012
【図１２】
0006418419.tif 000013