【手続補正書】
【提出日】令和3年1月21日(2021.1.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ランタイム環境においてジャストインタイム（ＪＩＴ）でコンパイルしたコードを安全に実行するコンピュータ実装方法であって、
コードセグメントをランタイムにおいてコンパイルする要求をアプリケーションのコンテキストにおいて実行するＪＩＴ実行プロセスからアプリケーションによって受信することと、
実行可能なコードセグメントを生成するために前記コードセグメントをコンパイルするＪＩＴコンパイルプロセスを前記アプリケーションによって開始することであって、前記ＪＩＴコンパイルプロセスは、前記アプリケーションの前記コンテキストにおいて前記アプリケーションのレベルで実行される、開始することと、
共有メモリに前記実行可能なコードセグメントを格納することと、
前記共有メモリ内の前記実行可能なコードセグメントに対するポインタを前記ＪＩＴ実行プロセスに提供することであり、前記ＪＩＴ実行プロセスが前記共有メモリへの読取り実行アクセス権を有する、ポインタを前記ＪＩＴ実行プロセスに提供することと、
のために少なくとも１つのハードウェアプロセッサを使用すること、
を含み、
前記ＪＩＴ実行プロセスと前記ＪＩＴコンパイルプロセスとは、異なるプロセスである、コンピュータ実装方法。
【請求項２】
前記ＪＩＴコンパイルプロセスが、前記少なくとも１つのハードウェアプロセッサのアーキテクチャに従って前記実行可能なコードセグメントを生成することに適応したＪＩＴコンパイラを利用する、
請求項１に記載のコンピュータ実装方法。
【請求項３】
前記ＪＩＴ実行プロセスが、コード生成特権を与えられない、
請求項１に記載のコンピュータ実装方法。
【請求項４】
前記ＪＩＴ実行プロセスが、前記共有メモリへの書込みアクセス権を与えられない、
請求項１に記載のコンピュータ実装方法。
【請求項５】
前記ＪＩＴコンパイルプロセスが、前記格納することを許可するために前記共有メモリへの読取り−書込みアクセス権を認可される、
請求項１に記載のコンピュータ実装方法。
【請求項６】
前記ＪＩＴコンパイルプロセスが、前記共有メモリからの実行アクセス権を与えられない、
請求項１に記載のコンピュータ実装方法。
【請求項７】
前記コードセグメントにより開始された少なくとも１つの潜在的に悪意のある動作を識別するために前記実行可能なコードセグメントを生成する前に前記コードセグメントを解析することをさらに含む、
請求項１に記載のコンピュータ実装方法。
【請求項８】
前記コードセグメントにより開始された少なくとも１つの潜在的に悪意のある動作を識別するために、生成した後で前記実行可能なコードセグメントを解析することをさらに含む、
請求項１に記載のコンピュータ実装方法。
【請求項９】
前記ランタイム環境は、オペレーティングシステム（ＯＳ）によって提供され、前記ＪＩＴコンパイルプロセスは、前記ＯＳによって提供される複数のサービスの少なくとも１つを用いて、前記ＪＩＴ実行プロセスから前記コードセグメントを取得し、前記共有メモリは、前記ＯＳによって管理され、前記ポインタは、前記ＯＳによって提供される少なくとも１つのサービスを用いて前記ＪＩＴコンパイルプロセスによって前記ＪＩＴ実行プロセスに提供される、請求項１に記載のコンピュータ実装方法。
【請求項１０】
プロセスダイナミックコードポリシ（ＰｒｏｃｅｓｓＤｙｎａｍｉｃＣｏｄｅＰｏｌｉｃｙ）設定が、前記ＪＩＴ実行プロセスおよび前記ＪＩＴコンパイルプロセスに対して有効にされる、請求項１に記載のコンピュータ実装方法。
【請求項１１】
前記アプリケーションは、リモートウェブサーバ、リモートコンピューティングノード、リモートコンピューティングクラスタ、またはリモートクラウドサービスによって提供されるリモートサービスを提供するローカルエージェントを含む、請求項１に記載のコンピュータ実装方法。
【請求項１２】
前記ＪＩＴコンパイルプロセスの管理は、前記アプリケーションに組み込まれる、請求項１に記載のコンピュータ実装方法。
【請求項１３】
前記ＪＩＴコンパイルプロセスの管理は、プラグインを経由して、前記アプリケーションに追加される、請求項１に記載のコンピュータ実装方法。
【請求項１４】
前記アプリケーションが、ウェブブラウザアプリケーションを含む、請求項１に記載のコンピュータ実装方法。
【請求項１５】
ランタイム環境においてジャストインタイム（ＪＩＴ）でコンパイルしたコードを安全に実行するためのシステムであって、
コードを実行することに適応した少なくとも１つのハードウェアプロセッサであり、前記コードが、
コードセグメントをランタイムにおいてコンパイルする要求をアプリケーションのコンテキストにおいて実行するＪＩＴ実行プロセスから受信するための前記アプリケーションのコード命令と、
実行可能なコードセグメントを生成するために前記コードセグメントをコンパイルするＪＩＴコンパイルプロセスを開始するための前記アプリケーションのコード命令であって、前記ＪＩＴコンパイルプロセスは、前記アプリケーションの前記コンテキストにおいて前記アプリケーションのレベルで実行される、前記アプリケーションのコード命令と、
共有メモリに前記実行可能なコードセグメントを格納するためのコード命令と、
前記共有メモリ内の前記実行可能なコードセグメントに対するポインタを前記ＪＩＴ実行プロセスに提供するためのコード命令であり、前記ＪＩＴ実行プロセスが前記共有メモリへの読取り実行アクセス権を有する、コード命令と、
を含み、
前記ＪＩＴ実行プロセスと前記ＪＩＴコンパイルプロセスとは、異なるプロセスである、
少なくとも１つのハードウェアプロセッサ、
を備えるシステム。
【請求項１６】
前記アプリケーションは、リモートウェブサーバ、リモートコンピューティングノード、リモートコンピューティングクラスタ、またはリモートクラウドサービスによって提供されるリモートサービスを提供するローカルエージェントを含む、請求項１５に記載のシステム。
【請求項１７】
前記ＪＩＴコンパイルプロセスの管理は、前記アプリケーションに組み込まれる、請求項１５に記載のシステム。
【請求項１８】
前記ＪＩＴコンパイルプロセスの管理は、プラグインを経由して、前記アプリケーションに追加される、請求項１５に記載のシステム。
【請求項１９】
前記アプリケーションが、ウェブブラウザアプリケーションを含む、請求項１５に記載のシステム。
【請求項２０】
ランタイム環境においてジャストインタイム（ＪＩＴ）でコンパイルしたコードを安全に実行するためのシステムであって、
コードを実行することに適応した少なくとも１つのハードウェアプロセッサであり、前記コードが、
少なくとも１つの未コンパイルのコードセグメント含むＪＩＴ実行プロセスをアプリケーションのコンテキストにおいて開始するための前記アプリケーションのコード命令と、
少なくとも１つの対応する実行可能なコードセグメントを生成するために、前記少なくとも１つのコードセグメントをコンパイルするＪＩＴコンパイルプロセスを前記ＪＩＴ実行プロセスから分離し且つ独立して実行するための前記アプリケーションのコード命令であって、前記ＪＩＴコンパイルプロセスは、前記アプリケーションの前記コンテキストにおける前記アプリケーションのレベルで実行される、前記アプリケーションのコード命令と、
を含み、
前記少なくとも１つのコードセグメントをコンパイルするために前記ＪＩＴ実行プロセスからの要求に応じて、前記ＪＩＴコンパイルプロセスが、前記対応する実行可能なコードセグメントを生成するために前記少なくとも１つのコードセグメントをコンパイルし、かつ前記ＪＩＴ実行プロセスが読取り実行アクセス権を有する共有メモリに前記対応する実行可能なコードセグメントを格納する、
少なくとも１つのハードウェアプロセッサ、
を備えるシステム。
【請求項２１】
少なくとも１つのハードウェアプロセッサによって、ジャストインタイム（ＪＩＴ）でコードを生成する方法であって、
ＪＩＴ実行プロセスとＪＩＴコンパイルプロセスとは異なるプロセスであり、前記ＪＩＴ実行プロセスと前記ＪＩＴコンパイルプロセスは、共有メモリを使用し、
前記ＪＩＴ実行プロセスは、前記共有メモリへの書込みアクセス権を持たず、
前記ＪＩＴコンパイルプロセスは、前記共有メモリからの実行アクセス権を持たない、方法。