Letyshops

Создание системы бизнес-правил. Часть 5

Барбара фон Халле

Начало в выпусках: #142, #143, #144, #145, #146, #147, #148

Разработка правил в модуле

Этап 6. Спроектируйте правила в модуле. Очередность этапов разработки может быть разной, в зависимости от типа модуля (ориентирован на данные или на службу), от функциональности или ограничений, от требуемых рабочих показателей.

При работе с модулем, ориентированным на данные, проектирование и внедрение правил следует привязывать к данным. Для этого сначала определяются ряды и столбцы, обычно в форме модели данных или объекта. Затем формулируются правила для данных, за которыми будет наблюдать модуль.

Правила выражаются декларативно, хотя для этого может потребоваться перевод. Например, если правило представлено как "if/then", а ваш пакет не поддерживает такой синтаксис, выражение надо переформулировать.

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

В модуле, ориентированном на службу, проектирование правил обычно опирается на процесс. Как правило, создается объектная модель, которая должна обеспечить передачу и совместное использование данных. Объекты для выполнения правил содержат только данные, но не правила. Правила находятся в службе.

Иногда данные выражаются в коде процедуры, иногда нет. Декларативно вы можете использовать синтаксис if/then. Менять спецификации базы данных, скорее всего, не понадобится, так как сервис-ориентированный модуль правил связан с данными не так тесно.

Проектирование правил обычно требует: сгруппировать правила по комплексам и иерархиям; установить очередность выполнения комплексов правил; установить очередность выполнения правил внутри комплекса. Таким образом, когда приложение вызывает модуль правил, он уже подготовлен к конкретному действию.

Способов создания модуля, ориентированного на данные, много. Проще всего, если это возможно, встроить все правила в СУБД. Правила автоматически выполняются при попытке приложения обновить базу данных. Если такая архитектура неприемлема, можно создать простую службу, которая выполняет соответствующие правила при вызове базы данных.

Для простого сервис-ориентированного модуля потребуется создать модуль правил, который принимает от приложений запросы на правила и имеет процесс их исполнения.

Настройка баз данных и правил

Этап 7. Настройте базу данных.

Разработка системы всегда требует настройки базы данных. При этом необходимо указать опции проектирования, которые повышают работоспособность и функциональность исходного проекта базы. В ходе настройки требуется сотрудничество проектировщика правил и разработчика баз данных.

Иногда имеет смысл классифицировать все виды правил по типу доступа к данным: один столбец - много столбцов, одна строка - много строк; требуемые комплексные функции; виды. Здесь применимы традиционные опции настройки баз данных.

Чтобы сохранить стабильность структуры данных, сначала настраивайте прозрачные опции, такие как: адресация файлов, первичное и вторичное пространство, свободное пространство, параметры блокировки, индексы.

Этап 8. Настройте правила.

Настройка правил, как и настройка баз данных, может улучшить или ухудшить реализацию. Оптимальный вариант предполагает настройку опций, прозрачных для персонала, программистов и компонентов приложения, требующих выполнения правил. Все пакеты правил различны, поэтому описание опций настройки ищите в инструкции к вашему пакету.

Некоторые опции настройки не так прозрачны. Например, контроль за выполнением правил можно переместить с идеального уровня (уровня правил) на другой, чтобы реализовать рабочие или функциональные ограничения.

Примеры опций контроля за исполнением правил:

- Уровень приложения. Относится к коду приложения, который не используется совместно с другими приложениями. Обычно это процедурный код (C++, Java, Visual Basic и т. д.).

- Уровень правил. Относится к определению правил, предназначенных для совместного использования несколькими приложениями. В коммерческих пакетах правил этот код обычно декларативный (на базе SQL или синтаксис if/then).

Если конкретный пакет правил допускает определение правил, но реализует его в СУБД, это считается реализацией на уровне правил. Определение правил и управление ими осуществляется на уровне правил, независимо от того, где находится исполняемый код.

Продолжение в следующем выпуске

Продолжение в выпусках: #151

 

 

Реклама: