Выполнение удаленного скрипта - Архитектура - PullRequest
0 голосов
/ 03 апреля 2010

Я хочу сделать приложение, которое выполняет удаленный скрипт. Пользователь может создать сценарий (вероятно, сценарий LUA) и затем сохранить его на сервере. Затем он может использовать API для выполнения скрипта. Я думал, что API может быть веб-сервисом. Итак, мои вопросы:

  • Мне нужна высокая производительность для выполнения скрипта. Таким образом, мой первый выбор был сценарием LUA. У кого-то есть другое предложение?

  • Потому что мне нужна высокая производительность, я подумал, является ли веб-сервис лучшим решением. Возможно я мог бы создать Службу Windows TCP / IP, которая будет содержать запрос пользователей. Важно сказать, что у меня будет много пользователей, выполняющих сценарии одновременно. Так что у меня будет проблема с параллелизмом.

  • Мои скрипты будут запрашивать в базе данных. Я буду использовать Токийский кабинет или Токио Тиран. Я думаю, что Токио Тиран является единственным решением, потому что у меня будет много запросов. Для производительности, мне нужно сделать пул соединений? Есть ли способ обмена переменными между запросами веб-сервисов?

  • Чтобы создать веб-сервис или службу Windows, я думал использовать C ++.

Может кто-нибудь помочь с этими вопросами?

спасибо

1 Ответ

1 голос
/ 12 октября 2010
  • Lua - довольно высокая производительность для языка сценариев, особенно если вы используете LuaJIT или что-то подобное.

  • Вы говорите о высокой производительности. О чем мы говорим? Допустим, у вас есть очень простой веб-сервис, который выполняет сценарии, которые он получает через POST, и, вероятно, издержки HTTP сравнительно невелики по сравнению с компиляцией Lua, настройкой среды и временем выполнения.

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

  • C ++, безусловно, является хорошим выбором для размещения Lua, потому что Lua хорошо вписывается. Хотя есть и другие хорошие языковые привязки.

Но имейте в виду, что ваша работа не закончена просто скриптами песочницы. Пользовательские скрипты могут делать много других плохих вещей, намеренно или по ошибке, например, выделять много памяти или загружать процессор. В Lua (и я думаю, что это верно для многих, если не во всех средах с песочницей), вы ничего не можете с этим поделать, кроме как убить оскорбляющий экземпляр или, если вы запретили использовать сопрограммы в вашей песочнице, выйти из оскорбительной подпрограммы и сделать что-то умнее.

...