Главная - Проект JetBAT

Project codenamed JetBAT (Jet Business Automation Technology)

Проект JetBAT - это (очередная) технология, упрощающая разработку бизнес-приложений. Она родилась и сформировалась как набор инструментов и методология их применения в попытке автоматизировать повседневную рутинную работу разработчика клиент-серверных информационных систем. С самого начала решение ориентировалось на двухзвенный клиент-серверный сценарий с бизнес-логикой, реализованной на SQL-сервере, однако нет никаких препятствий к тому, чтобы адаптировать это решение к многозвенной среде с выделенным слоем бизнес-логики.

Главным отличием JetBAT от большей части аналогичных решений является отказ от попытки абстрагироваться от конкретной реализации РСУБД и попыток создать "универсальное решение". В первую очередь JetBAT - это набор паттернов модели данных. Текущая реализация включает два таких паттерна: простой объект и версионный документ.

Для реализации паттернов используется генерирование кода хранимых процедур. Это позволяет использовать все возможности конкретной СУБД, которая лежит в основе решения. При этом изначально задано противоречивое требование - сгенерированный код никогда не должен модифицироваться вручную, поскольку это свело бы на нет все преимущества кодогенерации как похода: быстрое созадние (и, что крайне важно, пересоздание) большого количества надежного кода.

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

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

Такое хранилище описаний объектов называется хранилищем метаданных. Оно может быть реализовано различными способами, но в JetBAT основной реализацией является хранилище в отдельной базе данных, а вспомогательной реализацией - хранилище метаданных в XML-файле.

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

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

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