Нужно ли создавать локальный сервис для этого дизайна приложения? - PullRequest
3 голосов
/ 17 августа 2011

У меня есть ситуация, когда я использую MacRuby для тонкого локального графического интерфейса, и большая часть работы выполняется в объекте Parser, который я создал. Со временем у меня также будет тонкий клиент IronRuby, который также будет взаимодействовать с объектом Parser.

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

Другими словами, есть ли способ заставить мое приложение MacRuby просто каким-то образом сделать вызов внешнему приложению Parser без необходимости запуска локального сервера и службы. И если я создаю сервис, должен ли он быть таким же простым, как вызов localhost: PORT / parser? Path = / what / ever / path? а затем вызовите анализатор для получения обновлений о прогрессе, таких как localhost: PORT / current_file и т. д.

EDIT: Будет ли хорошей идеей использовать JRuby для компиляции приложения Parser? Это дало бы мне инкапсуляцию, которую я искал, и позволило бы мне включить приложение в MacRuby.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2011

Я также не уверен, почему вашему дизайну нужен клиент / сервер.

Почему вы не можете просто включить парсер и заставить его работать с MacRuby?Это кажется самым простым способом для меня.Если вы связываете его как драгоценный камень, вы можете указать драгоценным камням запускаться на определенной виртуальной машине.Таким образом, ваш анализатор может распространяться как драгоценный камень для MRI и драгоценный камень для MacRuby.

Если реальная проблема заключается в поддержке адаптивного графического интерфейса, я настоятельно рекомендую вам прочитать о Grand Central Dispatch.Функциональность GCD доступна в MacRuby.

http://www.macruby.org/documentation/gcd.html

0 голосов
/ 30 августа 2011

Дизайн клиент / сервер кажется слишком сложным для того, что вы описали.

Ваш парсер работает на JRuby? Если так, то почему бы просто не использовать JRuby вместо Macruby? Или C-Ruby в этом отношении ....

Если вам нужен дизайн клиент / сервер, почему бы просто не использовать rails, что делает браузер вашим клиентом / клиентом?

РЕДАКТИРОВАТЬ: было бы хорошей идеей использовать JRuby для компиляции приложения Parser? Тот даст мне инкапсуляцию, которую я искал, и позволит мне включите приложение в MacRuby.

Под "инкапсуляцией" вы имеете в виду развертывание? Если так, то, возможно, нет. Серверные процессы JRuby обычно развертываются в виде военных файлов, управляемых Tomcat или Jetty. Также обратите внимание, что вы на самом деле не компилируете свое приложение в этом случае - но это не имеет значения.

Возможно, вы могли бы выполнить серверный процесс, расширив webrick или mongral и добавив rawr , но, опять же, неясно, почему ваш дизайн должен быть клиент / сервер.

...