Аналитика
Progress для разработчиков ИС
Владимир Смирнов (Окончание. Начало в N 117-118.)
Что дает Словарь данных?
Концепцией Progress предусматривается создание в каждой ИС единого централизованного хранилища Data Dictionary (или Словарь данных), в котором содержатся все заданные при создании приложений настройки по умолчанию (поверка корректности данных, правила представления и контроля целостности), а также информация готовых объектов приложений (форматы вывода данных, объекты пользовательского интерфейса – поля ввода, редактор, "радиокнопки", сообщения помощи и т.д.). Data Dictionary обеспечивает поддержку большого числа типов данных, включая символьные, целые и десятичные числа, логические величины и даты, а также массивы в полях любого типа. Так, на рис. 5 показан процесс задания атрибутов поля базы данных, используемого в приложении.
Единые принципы описания объектов и сохранение этих описаний в Data Dictionary делают излишним создание новых индивидуальных форм, отчетов или процедур, так как все инструментальные средства Progress используют определения словаря автоматически, когда формируется новое приложение. А централизация объектов баз данных существенно упрощает обслуживание большой ИС одно изменение в словарном описании сразу переносится на все компоненты всех приложений, которые имеют ссылку на оригинал описания объекта.

Во-первых, именно эта особенность архитектуры позволила реализовать технологию многократного использования определений объектов путем выбора их из Data Dictionary во вновь создаваемых приложениях. При этом гарантируется единообразие внешнего вида и поведения всех ваших приложений, которые создаются на основе многократно используемых объектов.
Во-вторых, опыт эксплуатации систем, в которых большая часть функций прикладных процессов размещена на сервере, демонстрирует их более высокую масштабируемость. Формирование единого словаря данных, выполняющего часть функций прикладных процессов при определении объектов приложений со стороны сервера, также способствует масштабируемости создаваемых ИС.
Кроме того, когда создаваемая система требует использования информации из многих распределенных баз данных, то при обращении к любой из них возникает проблема идентификации ее структуры и условий ее размещения. Data Dictionary устраняет подобные проблемы, так как в процессе разработки приложения можно сохранить в словаре все описания используемых баз данных, включая имена таблиц, описания полей и индексов. Это избавляет ИС и ее пользователей от специфических деталей и условий размещения каждой базы данных в отдельности и делает прозрачным доступ к информации БД.
Data Dictionary позволяет создавать и хранить различные правила проверки корректности и целостности данных, включая 4GL-пpoцeдypы называемые database triggers (триггерами баз данных) и ассоциируемые с отдельными определениями таблиц или полей в словаре. Созданный триггер автоматически выполняется всякий раз, когда приложение или пользователь обращается к ассоциированным полям и таблицам Database triggers ужесточают контроль за правильностью, целостностью и сохранностью данных вне зависимости от их размещения и внутренней структуры.
В качестве дополнительной возможности, предоставляемой разработчикам ИС, Data Dictionary содержит механизм генерации числовых последовательностей. Он широко используется, когда в процессе обработки информации большим числом пользователей нужно создать уникальную числовую серию для нумерации определенных записей безотносительно к содержимому самих записей базы.
Какая же разработка без инструментов?
Вопрос вполне правомерен – в настоящее время вряд ли кто-нибудь возьмется разрабатывать сложную прикладную ИС, программируя вручную без специального инструментария. Тем более, что некоторые из этих средств, предоставляемые продуктами Progress, уже упоминались выше.
Для оптимизации возможностей разработчиков больших ИС Progress Software создала набор инструментальных средств, образующий Application Development Environment (ADE) – интегрированную объектно-ориентированную среду разработки. Комплекс средств ADE позволяет создавать все элементы приложений – от внешнего графического и символьного интерфейса до сложной логической обработки, выполнения фоновых вычислений, вывода отчетов и интеграции с внешними программами ADE включает в себя.
1. USER INTERFACE BUILDER – UIB (построитель пользовательского интерфейса), который по сути является визуальной средой программирования, расширяя возможности Progress 4GL, и позволяет быстро формировать сложные приложения, конструируя их на основе готовых или вновь создаваемых объектов многократного использования. Собственно пользовательский интерфейс (UI) приложений составляется разработчиком из различных графических элементов и объектов, с которыми клиент может взаимодействовать в рамках приложения (кнопки управления, ниспадающие меню и "радиокнопки"). Графически представляются также объекты баз данных, которые включают таблицы и поля.
Оснащенный UIB разработчик в полной мере может использовать технику "pomt&chck" чтобы добавить какой-либо объект на экране, например, кнопку управления, нужно только выбрать ее на палитре и переместить в необходимое место. Добавление полей на экране также не вызывает труда – построитель выводит на экран список полей базы, из которого можно выбрать требуемое поле и указать его позицию, как это показано на рис. 6. UIB на основе информации из Data Dictionary однозначно определяет данные, относящиеся к конкретному объекту базы, и автоматически генерирует логику интерфейса. Это значит, что при разработке приложений с помощью UIB отпадает необходимость в формировании SQL-запросов, что также способствует упрощению процесса разработки.
Последние версии UIB предусматривают использование техники SmartObjects (интеллектуальных объектов), при которой автоматически генерируются стандартный пользовательский интерфейс, логика доступа к данным и функциональные возможности обработки, что, естественно, еще более ускоряет процесс разработки.

UIB дает возможность выводить на экран (или в окно) приложения как одиночные записи из базы, так и список записей. В последнем случае управление списком осуществляется автоматически благодаря специальному механизму и логике поиска вперед/назад, независимо от того, поддерживает ли конкретно используемая база данных такой скроллинг. При этом в одном или нескольких окнах приложения могут одновременно выводиться связанные данные из всевозможных типов БД.
2. PROCEDURE EDITOR (редактор процедур), используемый для корректировки тех частей приложений, которые не могут быть визуально запрограммированы, например, для выполнения сложных расчетов или процессов пакетной обработки Procedure Editor дает возможность быстро создавать, изменять и тестировать многократно исполняемые процедуры и функции, которые могут использоваться всеми разработчиками и на которые могут ссылаться любые компоненты прикладной системы. Редактор Procedure Editor позволяет изменять условия представления данных или правила проверки их целостности и корректности, централизованно сохраняемых в Data Dictionary.
3. APPLICATION DEBUGGER (отладчик приложений), обладающий полным набором средств для локализации и исправления ошибок в логике приложения или данных. Этот инструмент дает возможность проследить поток команд управления между объектами приложения, тестируя содержимое буферов данных приложения и переменных, информацию состояния и последовательность событий в процессах.
4. REPORT BUILDER (построитель отчетов) является графическим инструментом, позволяющим разработчикам проектировать внешний вид и содержание выходных отчетов. Его средствами можно создавать различные качественно оформленные отчеты, в том числе табличные и многострочные, а также документы, состоящие из множества разделов, и итоговые отчеты.
5. PROGRESS RESULTS является инструментом конечных пользователей-непрограммистов, с помощью которого они получают доступ к данным и формируют собственные отчеты. Пользователи на основе простого принципа "по примеру" определяют запросы к базам данных, а затем выбирают предпочтительный формат отображения выбранных данных. А созданные с помощью RESULT представления данных могут быть легко добавлены разработчиком в систему.
7. ON-LINE HELP (оперативная помощь) – специальный инструмент, обеспечивающий встраивание контекстно-чувствительной помощи с системой перекрестных ссылок в любое приложение Progress или в систему оперативной помощи используемой операционной среды (например, MS-Windows).
8. DATABASE ADMINISTRATION включает в себя полный набор инструментальных средств для выполнения функций администрирования базами данных, в том числе БД, размещаемых на серверах данных других производителей, а также для импорта и экспорта данных из различных источников, включая ASCII-файлы, электронные таблицы, текстовые процессоры, xBASE-файлы и графические пакеты.
9. DEPLOYMENT TOOLKIT (пакет инструментов для развертывания) -набор дополнительных средств для фиксации схем баз данных, создания и поставки клиентам новых версий приложений, подготовки для пользователей командных файлов, программ пакетной обработки и т.п.
Благодаря функциональной полноте языка Progress 4GL, созданные на его основе инструментальные средства ADE позволяют разрабатывать приложения, обладающие свойствами предсказуемой масштабируемости и легкой переносимости в широком круге вычислительных платформ. А достаточно разнообразный набор инструментов дает возможность осуществлять быструю адаптацию разработанных приложений к изменениям инфраструктуры и требований пользователей.