1. Технология построения приложений FANSY

реклама
ТЕХНОЛОГИЯ ПОСТРОЕНИЯ ПРИЛОЖЕНИЙ FANSY
Вязьмин Д.С., Ермаков А.Н., Крылов С.Н., Тюфягин В.А.
Депозитарно-расчетный Союз, г.Москва
В докладе описывается технология построения на Delphi приложений в классе “клиент-сервер” с использованием SQL-СУБД и
словаря данных (метаданных).
Предполагается, что информационная поддержка автоматизируемой организации будет осуществляется одним или несколькими
приложениями, которые совместно используют задаваемые в технологии объекты, такие как: базы данных (БД), таблицы, процедуры, правовые профили, формы, выборки, функции, отчеты, документы, а также возможные отношения между ними. Эти же объекты используются при коллективной разработке приложений.
Информация о вышеперечисленных объектах заводится и хранится в словаре данных, называемом метаданными (МД), которые
являются неотъемлемой частью приложений и представляют собой
интерпретируемые данные, выносимые за рамки компилируемого
кода программы (фактически это программные ресурсы, хранимые
в БД). Приложения обладают способностью адаптироваться к изменению МД.
В дополнение к императиву Delphi-форм авторы развивают понятие выборок (мета-запросов) для работы с данными и доводят их
по значимости до уровня форм. Тремя составными частями выборки являются: селекция данных, действия над данными и визуализация данных. Селекция определяет критерий отбора данных,
задаваемый на языке SQL. Действия определяют операции на
языке обработке данных (вставка, удаление, изменение), зависимые от текущего курсора выборки, и критерии ограничений бизнес-правил. Визуализация определяет способ отображения полей
данных в контролах формы, справочник значений и т.д.
Системный язык обработки данных FANSY-SCRIPT предназначен для спецификации функций, хранимых в базе МД. Ядро
приложения интерпретирует код метаязыка и предоставляет
средства его динамической отладки. Помимо стандартных
операторов (присущих, например, языку Паскаль) язык имеет
функции для манипулирования данными и управления
транзакциями, функции доступа к МД, средства обработки
исключительных ситуаций, а также возможность работы с
published свойствами классов VCL Delphi.
На этапе эксплуатации приложений возможны модификация и
добавление запросов на обработку данных, функций, визуальных
форм и отчетов без перекомпиляции приложений (путем корректировки МД), что характерно для систем открытого типа. Более того,
возможно создание приложений без программирования на Delphi.
Начальное “пустое” приложение (разработчиками поставляется
набор шаблонов форм и отчетов, в результате клонирования которых получаются производные классы) может получать наполнение
в виде МД, которые затем интерпретируются.
FANSY-технология предоставляет два уровня защиты данных
от несанкционированного доступа: 1) физический уровень прав
(ФУП) - уровень СУБД и 2) логический уровень (ЛУП) -правовой
профиль пользователя, проверяемый во время работы приложений.
Вне зависимости от того, как расставлены физические права на
таблицы, логический уровень прав на выборки проверяется всегда,
и наоборот. Система позволяет вычислить ФУП путем анализа МД.
Предусмотрены процедуры автоматизированной загрузки и выгрузки БД и МД, формирования физических прав пользователей
СУБД на основе их правовых профилей.
Таким образом, разработка FANSY-приложений сводится к
проектированию выборок, конструированию форм (в значительной
степени из готовых типовых фрагментов библиотеки визуальных
компонентов, имеющих доступ к МД) и заведению или использованию соответствующих объектов МД (своего рода базы знаний
разработчиков). Разработчик избавлен от рутины привязки типовых действий над данными (сортировка, группировка, фильтрование, вставка, удаление, экспорт) к формам приложения. При этом
используются три инструментальных языка: SQL - для задания
обработчиков данных, Delphi - для построения компилируемого
ядра приложения, FANSY-SCRIPT - для тонкой (проблемноориентированной) настройки приложения.
На выходе технологического цикла разработки получаются
стандартные по интерфейсу пользователя компилируемые
Windows-приложения (организованные по MDI схеме), содержащие гибкий интерпретируемый код.
Скачать