質問

Javaで書かれた特定のプログラムの正しい実行を確保するために文書化する必要がある完全な仕様は何ですか?たとえば、長期的な保存のためのプログラムをアーカイブしていて、テストや移植が行われない場合。

Javaプログラムをコンパイルして実行できる必要があります。したがって、バイトコードを保存するか、VMware画像として全体をキャプチャすることは除外されます。ただし、JVMはVMware画像として保存でき、コンパイルされたコードにリンクされたコンパイルされたライブラリも問題ありません。ただし、OSに依存関係がある場合は、JVMを実行するマシンのアーキテクチャ、ネットワーキング環境、外部ライブラリ、使用されるJavaバージョンの仕様などをすべてリストする必要があります。 DIG Presの一部の技術リーダーは、Javaで書かれたプログラムが「永遠に」実行可能になると主張しています。どうやってするの?

役に立ちましたか?

解決

Hoeven et al。エミュレーションによるデジタル保存の問題を研究しました。

...デジタル保存は、デジタルオブジェクトの慎重な保存で終わりません。これらのオブジェクトをアクセスできるようにするために、恒久的なアクセスのための戦略の開発に向けて継続的な努力が必要です。

彼らは、モジュラーエミュレーションモデルとユニバーサル仮想マシン(UVM)の必要性になりました。

...モジュラーエミュレーションモデルの基礎は、ユニバーサル仮想マシン(UVM)に基づいています。 UVMは、将来の将来のホストプラットフォームの上にあるプラットフォームおよび時間に依存しないレイヤーです。その結果、UVM向けに開発されたプログラムは、ホストプラットフォームが変更されても機能し続けます。汎用プロセッサとメモリで構成されているだけでなく、ホストプラットフォームとターゲットプラットフォーム間の入力および出力(I/O)周辺デバイス(キーボード、ストレージ、グラフィックス、ネットワークなど)との通信のための追加の機能も提供します。これは、インターフェイスレイヤーによって提供されます。

..そして始めました」Dioscuriプロジェクト":デジタル保存のためのモジュラーエミュレータ。 当然のことながら、彼らはそれを実装するためにJavaを選びました:

... Javaはプログラミング言語として選択されています。主な理由は、ソースコードを再コンパイルする必要なく、Java仮想マシン(JVM)を使用して、多種多様なコンピュータープラットフォームでJavaコードを実行する可能性です。プログラムコードは特定の基礎となるコンピュータープラットフォームに適合しているため、再コンパイルは危険因子です。今日のコンパイラは非常に高度ですが、さまざまなプラットフォーム用にコンパイルされた同じエミュレータの異なる機能をもたらす可能性があります。このステップを避けることにより、エミュレータはより安定してポータブルになります。代わりに、JVMを使用すると、上記のようにUVMの使用に同様の結果が得られます。

論文:

編集: :Dioscuriプロジェクトの最後のChangelogの日付は次のとおりです。 「デジタル保存ツールを保存する方法は?」 :D:D

編集2: :私の個人的な意見:Javaプログラムが有用なことをしている場合、人類は著者による努力を必要とせずに保存します:-)

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top