Пуля-встраивание проверенного Groovy-скрипта

Я работаю над серверным приложением, которое может быть расширено с помощью сценариев Groovy, предоставляемых пользователем. Очевидно, что я хочу, чтобы эти сценарии выполнялись в очень тесной песочнице, где они не могли нарушить основной код приложения или потреблять слишком много ресурсов для перегрузки сервера.

Я изучил различные возможности, и окончательное решение может быть их комбинацией:

  • Запустить сценарий в очень ограниченном диспетчере безопасности . Сценарий выполняется без разрешения SecurityManager. Необходимо объявить дополнительные разрешения (например, Android).

  • Запустить новую JVM . Создайте оболочку ScriptProcess вокруг Runtime.exec и создайте новую JVM с менеджером безопасности, ограниченной кучей и т. Д. Поскольку мы запускаем полномасштабный процесс, мы можем получить больший контроль над отслеживанием плохо работающих? Затраты в ресурсах были бы ужасными ... Альтернативой было бы использование Ant здесь, но будет ли он масштабируемым?

  • Java Monitor API В Java 6 есть пакет с возможностью мониторинга. Мы могли отслеживать потоки и, возможно, обнаруживать бесконечные циклы и потребление памяти. Кто-нибудь этим пользовался?

Вот что я имею в виду сегодня. Как лучше всего убедиться, что эти сценарии работают правильно и при этом сохраняют определенную масштабируемость и производительность?

12
задан mkobit 3 December 2015 в 20:13
поделиться