Подход для серверной скриптовой логики в клиент-серверной программе - PullRequest
0 голосов
/ 19 февраля 2012

Я ищу лучшие практики или общий подход к тому, чтобы сделать серверное приложение модифицируемым обычными непрограммистами. Это не должно быть горячо модифицировано; он может быть перекомпилирован и перераспределен.

Предположим, что система находится в контейнере EJB или Spring. Система управляется сообщениями (возможно, EJB3.1). Существует ряд POJO, которые получают сообщения от клиентских приложений (RCP или RIA), реагируют на эти сообщения и отправляют больше сообщений тем же и другим клиентским приложениям. Каков наилучший способ сделать систему легко модифицируемой? Если я правильно разделю логические компоненты сервера, какой технологический или конструкторский подход позволил бы мне заменять логические POJO новыми POJO, тем самым изменяя поведение приложения?

Я думаю, что я описываю паттерн стратегии. Могут ли эти POJO генерироваться из набора удобочитаемых и редактируемых правил? Является ли механизм правил типа Drools правильным способом решения этой проблемы?

Может ли это быть объединено с генератором конечных автоматов, чтобы каждое состояние имело список входных сообщений и ответов на каждое, правил перехода и т. Д.?

Пример игрушки:

  • State_Evening
    • Ввод sellStocks
      • ответить «Невозможно продать вечером, подождать до дня».
  • State_Day
    • входные данные sellStocks
      • делать SellStocks
      • ответить "Акции проданы за _ "

и т.д.

Теперь, когда я пишу это так, похоже, что язык сценариев будет почти таким же, как программирование ...

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

Отредактировано 22 февраля 2012 г. для ясности

1 Ответ

1 голос
/ 20 февраля 2012

Я согласен с JB Nizet о скальпеле, EJB (или POJO? Или ...?) Пока эта платформа является хорошим подходом?

EJB не будет работать таким образом, им потребуется контейнер EJB, такой как Glassfish или Websphere Application Server.Но если вы используете Spring, то вам не нужны EJB (вместо этого у вас есть Spring Beans).Если вы используете Spring, то в основном у вас есть один сервлет Spring, и все веб-содержимое обрабатывается средой Spring MVC Framework - это отличает от классического программирования на Servelt (без фреймворка)

Один способ изменить код намуха использует язык сценариев.Таким образом, вы можете использовать, например, Rino для запуска кода java-скрипта в JVM.

Но на самом деле, когда мне нужно будет выполнить вашу работу, я бы попытался реализовать некоторую инфраструктуру для сервера.и клиент, который облегчает написание игр на Java.Таким образом, ваши ученики могут использовать обычную IDE и, возможно, maven для развертывания всего приложения.

...