2009-11-18 32 views
1

我想創建一個網站,人們可以解決編程任務,並最終上傳他們的解決方案(使用任何JVM語言),以驗證它並與他人分享。如何在JVM/OSGi中限制程序資源+權限?

我想OSGi(學習它現在)可能是一個很好的工具來處理這個任務(是嗎?)。但顯然我有點擔心讓其他人在我的主機上執行他們的代碼(順便說一句,基於輸入/輸出的解決方案是無可奈何的)。

所以我想我需要找出

一)如何讓/限制某些Java功能(例如啓動一個線程,發送郵件,寫文件等)

b)如何限制一個程序/ bundle的CPU/RAM資源所以沒有人可以讓主機停下來,例如一個無限循環。

有什麼建議嗎?

回答

2

b)我認爲最安全的解決方案是爲每個用戶提交的解決方案創建專用的JVM。這樣,您就擁有了所有操作系統的工具。

a)使用Permissions可能會限制Java功能。我從來沒有嘗試過用它做一些複雜的事情,但是爲第三方輸入制定堅實的政策當然不是微不足道的。也許谷歌的Appengine SDK可能會有所幫助。我懷疑它是使用權限來模擬Appengine在本地的行爲。

+0

感謝您的答案 - 給了我一些提示做進一步的研究 – stephanos 2009-11-20 16:48:31