Какую технологию / методологию я могу использовать для оперативного развертывания изменений в среде J2EE? - PullRequest
2 голосов
/ 03 февраля 2012

Я работаю над программным обеспечением, которое включает систему начисления заработной платы, и правила начисления заработной платы имеют тенденцию меняться, особенно когда речь идет о налогах. У моей компании есть филиалы по всей территории США, и почти в каждом штате есть свои собственные правила для государственных (а иногда и местных) налогов. Поэтому я должен иметь возможность обновлять логику для каждого состояния в любой момент. Я должен быть в состоянии сделать это, не выдвигая новую версию всего приложения. Мне также нужно иметь доступ к базе данных, и мы используем JBoss в качестве нашей AS. В настоящее время мы используем более старую версию Drools , и она работает, но похоже на решение этой проблемы.

Я читал немного о OSGI , но, похоже, это излишне.

Какие еще варианты доступны?

Ответы [ 3 ]

3 голосов
/ 03 февраля 2012

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

Если это нечто большее, включая некоторую логику технического уровня, вы можете попробовать язык сценариев, такой как groovy. GroovyScriptEngine способен отслеживать изменения файлов и перекомпилировать код при необходимости.

Наконец, есть такие инструменты, как LiveRebel, которые позволяют плавно переустанавливать практически любое Java-приложение. Это коммерческий инструмент

2 голосов
/ 06 февраля 2012

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

Во время выполнения, когда правила перераспределяются, Drools автоматически обрабатывает обновления базы знаний и оперативно развертывает их. Изменения видны и безопасно распространяются в любом существующем сеансе, что означает отсутствие необходимости заново создавать сеансы или перезагружать существующие факты (данные).

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

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

Liverebel 2.0 - ваш продукт - см. http://liverebel.com

...