Эти критерии определенно благоприятствуют использованию PL / SQL.
1) Данные будут из базы данных (минимум Oracle 10g).
2) Программа будет рассчитывать и генерировать счета на основе записей агрегированных данных (100k-1M)
5)В расчетах будет использоваться несколько справочных таблиц
6) Программа будет запускаться один раз в день
Если она находится в базе данных и содержит данные, особенно большие, то PL / SQL являетсяопция по умолчанию.
Остальные критерии сложнее оценить:
3) Бизнес-правила очень сложны
4) Бизнес-правила могут меняться как минимум раз в месяц
PL / SQL определенно способен выполнять вычисления и имеет много встроенных арифметических функций.Таким образом, все сводится к тому, что вы подразумеваете под «бизнес-правилами» и «сложными».Мы можем кодировать сложную бизнес-логику в PL / SQL (я это сделал), но в Java есть языковые возможности, которые, несомненно, облегчают задачу: я думаю о таких вещах, как рефлексия и самоанализ.
Возможно, вы думаете об использовании механизма правил?Безусловно, сектор финансовых услуг был основным пользователем Rule Engines.А абстракция наборов правил от обработки облегчит выполнение четвертого критерия.
Java имеет два установленных двигателя правил: Drools и JESS . - это Механизм правил в PL / SQL, и он использовался в течение некоторого времени, но в основном он используется как часть Oracle Streams.Тем не менее, API доступен, поэтому его можно использовать для других целей. Узнайте больше .
Если вы думаете о двигателях правил, то я думаю, что это указывает на Java.Обработка бизнес-правил - это специальная парадигма программирования, и в Java просто больше опыта и поддержки, чем в PL / SQL.Я подозреваю, что это означает переход на Java среднего уровня, а не хранимые процедуры Java, что влияет на сетевой трафик и производительность.