Saya ingin memungkinkan pengguna situs web saya mengunggah program Java mereka sebagai kumpulan file jar. Tentu saja saya ingin membatasi kelas yang dapat mereka lihat atau gunakan, bersama dengan sumber daya mesin yang mendasarinya seperti heap, thread, disk, prosesor yang digunakan, dll.
Saya ingin server mengelola, menyimpan, dan menjalankan program pengguna tersebut, dan juga memungkinkan mereka membuat akun dan mengonfigurasi lingkungan runtime mereka. Katakanlah saya ingin mengizinkan mereka memilih salah satu dari serangkaian lingkungan yang telah ditentukan sebelumnya: JRE 5, JRE 6, Groovy, dll. Dan juga membiarkan mereka mengonfigurasi beberapa variabel.
Jadi, pertanyaannya adalah apakah Anda mengetahui hal serupa dengan apa yang saya jelaskan sudah dilakukan? apakah ini sumber terbuka?
Mengembangkan hal seperti itu bisa memakan waktu bertahun-tahun. Saya tahu bahwa sesuatu dapat dilakukan dengan memulai berbagai proses dan mengonfigurasi manajer keamanan. Tapi karena program yang saya izinkan akan sangat sederhana, mungkin ini bukan pendekatan terbaik (mahal untuk host server). Selain itu, saya kira ini mempersulit distribusi eksekusi potensial.
Fitur tambahannya adalah:
pengguna harus membeli sumber daya atau fitur tambahan.
distribusi eksekusi melalui sekelompok host (bukan persyaratan awal, tetapi akan menjadi fitur tambahan yang bagus).
Jika Anda masih belum mengerti apa yang saya bicarakan, lihat Google App Engine. Mereka memungkinkan Anda mengunggah aplikasi dalam lingkungan runtime yang terkelola dan sangat ketat.
Salam.