2010-04-03 6 views
0

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

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

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

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

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

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

благодаря

ответ

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

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

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

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

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

Смежные вопросы