Поэтому в настоящий момент доступен ещё один «движок» — с гибко подключаемыми языковыми модулями и модулями доступа к БД
Здесь декларативные и процедурные языки подключаются как внешние модули. Таким образом, динамические структуры могут описываться языками SQL, PL/pgSQL, JavaScript, Java, Perl и т.п., а также их комбинациями!
Новая реализация обеспечивает приложению возможность поддерживать одновременно несколько соединений к одной или разным Базам данных, в том числе, СУБД различных типов! (Oracle, Postgres, MySQL, MSSQL Server и др.) К примеру, в формах типа «Мастер-Деталь» мастер список будет извлекать данные из одной БД, а детальные записи будут извлекаться из другой. Этот принцип позволит:
- Интегрировать между собой системы с различными СУБД, не используя трудно отлаживаемые и ненадёжные гетерогенные db-link'и;
- Плавно, частями, безболезненно мигрировать прикладную систему из одной СУБД в другую.
Другая фундаментальная возможность этой реализации: работа как в режиме «длинных транзакций», так и в режиме «коротких транзакций»:
- «Короткая транзакция» начинается и заканчивается в процессе обработки одного интерфейсного события, что очень хорошо подходит для систем массового назначения — для условно бесконечного числа пользователей;
- «Длинная транзакция» поддерживается в промежутке между событиями, что даёт управление блокировками на уровне БД, целостность чтения данных и откатов к началу транзакции. Этот режим очень подходит для внутрикорпоративных систем с критической ответственностью за целостность и корректность данных;
- Комбинированный вариант, когда одни соединения с СУБД работают в режиме «коротких транзакций», а другие — в режиме «длинных транзакций».