Масюков В.А. () - , Литвинов Ю.С. () - | |
Ключевое слово: |
|
Ключевое слово: |
|
|
Современные инструментальные средства разработки приложений для баз данных (БД) предоставляют широкие возможности для создания программных проектов любой сложности. Однако при этом возникает проблемы, связанные с выбором структуры приложений и рациональных способов их реализации. Важность решения этих проблем возрастает по мере роста объема и сложности проектов. Ошибки выбора структуры, а также методики их реализации приводят к резкому увеличению программного кода, в том числе многократного его дублирования, увеличению сроков разработки, ухудшают возможности сопровождения и модификации приложений, когда изменение, внесенное в один из объектов, может непредсказуемым образом повлиять на работу других объектов. Для решения этих проблем была разработана, реализована в программных продуктах и исследована пятиуровневая модель организации данных (см. рисунок), предназначенная для построения клиент-серверных систем для работы с реляционными БД, ориентированных на конечного пользователя. Статья посвящена одному из возможных способов реализации данной модели. Результаты исследований показывают, что любое отклонение от данной схемы отрицательно сказывается на качестве и характеристиках реализуемых приложений. Наиболее сложной оказалась задача выбора способа организации программного обеспечения промежуточного слоя и методики связывания всех уровней в единое целое, без чего схема не может нормально функционировать. Для решения данной задачи были разработаны специальные case-средства и библиотека специализированных программных объектов, которые были проверены на ряде проектов. Строение и назначение структурных уровней Структура таблиц БД. Разработка структуры БД производится общепринятыми способами проектирования реляционных БД. Для обеспечения правильной работы средств автоматизации проектирования и для создания единого пространства имен были введены специальные правила именования объектов. На использование специальных объектов БД (генераторы, триггеры, функции и др.) никаких ограничений не накладывается. Для целей ведения реализации прав доступа на уровне записей в конкретных проектах были введены дополнительные поля и разработана технология организации средств поддержки. Хранимые процедуры для реализации доступа к данным и их обработка. Доступ к информации, содержащейся в таблицах БД, осуществляется не непосредственно, а через хранимые процедуры. Все действия конечного пользователя над таблицами можно подразделить на две категории: - стандартные – отбор и упорядочивание данных в соответствии с заданными критериями, вставка, удаление и модификация записей; - специальные – любые другие действия над наборами данных. Данные категории не являются равноценными, практика показывает, что наибольший объем приходится на 1 категорию (примерное соотношение 90% к 10%), это означает, что автоматизация процесса проектирования стандартных действий приводит к ощутимому выигрышу в процессе разработки и эксплуатации системы в целом. Для этих целей был выработан специальный формат хранимых процедур, обеспечивающих стандартные действия, и реализовано case-средство для их автоматической гене- рации. Использование хранимых процедур гарантирует работоспособность расширенной техники управления правами доступа, а также обеспечивает многочисленные преимущества, связанные с переносом центра обработки информации с клиентского приложения на сервер. Использование стандартов в оформлении процедур, а также специализированных вспомогательных средств позволяет обеспечить их легкую интеграцию со следующими уровнями. Программные объекты для работы с таблицами. Хранимые процедуры располагаются непосредственно в БД на сервере, в то время как доступ к их возможностям и результату работы осуществляется в приложении на компьютере клиента. Кроме того, для работы с объектами «Таблица» и «Хранимая процедура» сервер предполагает использование специализированного языка (SQL), а для обеспечения комфортной работы конечного пользователя предоставляются стандартные визуальные средства манипулирования данными. · Отображение набора данных в соответствии с заданным набором входных параметров в таблице или в другом виде, отвечающем условию задачи. · Возможности редактирования данных и обеспечения контроля ввода и корректной отработки возможных исключительных ситуаций, в том числе обеспечение вызова других программных объектов для редактирования ссылочных полей. · Сортировка данных по любому заданному полю или их комбинации. · Фильтрация данных или их поиск по условию, задаваемому пользователем. · Возможность изменения порядка расположения полей и их размеров, цветовой гаммы в зависимости от предпочтений пользователя или возможностей экрана монитора. · Сохранение визуального и параметрического составов объекта между сеансами в связи с предпочтениями конкретного пользователя. · Полноценная возможность использования режимов ручного ввода и с помощью мыши. · Контроль за ограничениями прав доступа не только на уровне таблиц и хранимых процедур, что обеспечивается стандартными средствами СУБД, но и на уровне записей (например, один пользователь может не иметь возможность редактирования записи, созданной другим пользователем, но это может сделать его непосредственный начальник, о чем останется соответствующий след). · Обеспечение независимости (!) программного объекта от изменения структуры данных таблицы. Реализация всех пунктов, кроме последнего, не требует специального программирования и осуществляется при помощи разработанной технологии создания программных объектов. Центральным звеном модели, обеспечивающим ее работоспособность, является case-средство для генерации файла определений программных объектов. Основой для формирования этого файла служат стандартные хранимые процедуры, которые однозначно задают входные и выходные параметры, что обеспечивается соглашениями на правила их формирования и использования пространства имен. Техника создания объектов и организации работы с параметрами с использованием файла определений практически исключает возможность появления критических для работы ошибок и обеспечивает легкое реструктурирование объектов в полной согласованности с изменениями структуры БД. Помимо всего прочего, специализированная программная библиотека содержит все необходимые средства для быстрого создания объектов. Программный алгоритм приложения. Программные объекты многое умеют делать с таблицами БД, но они являются только основным ядром программы приложения, его основной библиотекой. Кроме них, приложения могут содержать пользовательские алгоритмы и составные объекты, состоящие из набора объектов, входящих в библиотеку. Разные приложения могут содержать разные комбинации модифицированных алгоритмов и составных объектов. В этом смысле следует вести речь о повторном использовании ранее созданных объектов в рамках приложения и о возможности внесения изменения в логику их работы и в форму внешнего представления в контексте конкретной задачи. Для случая интеграции объектов были решены следующие за- дачи. · Размещение без дополнительного программирования на одной форме различных объектов и организация их совместной работы. · Изменение внешнего вида объектов с целью соответствия новым условиям. · Обеспечение всей функциональной полноты оригинальных объектов, то есть полный набор команд и стандартных средств манипулирования данными. · Обеспечение рассылки и обработки сообщений между независимыми объектами. С этой целью были разработаны две методики: 1) методика встраивания объектов, когда объект становится составной частью другого, при этом настройка внешних атрибутов (размер, цвет, видимость и др.) для каждого составного объекта производится с помощью вспомогательных ресурсных файлов. 2) методика косвенного вызова, которая применяется для случаев сильного изменения внешнего вида объекта по сравнению с объектом-оригиналом. Для этого на форме располагают необходимые элементы управления и отображения, а затем осуществляется их связывание с соответствующими им по функциональному назначению полями оригинального объекта. Все действия, производимые в фокусе связанных объектов (нажатие клавиш, движение мыши и щелчки ее кнопок), передаются в поля оригинала и там обрабатываются, а из них возвращается результат работы. Составные объекты, в свою очередь, могут быть размещены в общей библиотеке и использованы в составе других объектов. Уровень использования одними объектами других ничем не ограничи- вается. Данный структурный уровень является своеобразным клеем для соединения всех необхо- димых программных объектов и алгоритмов в единое целое. Интерфейс взаимодействия с пользователем и внешней средой. Создание модели этого уровня осуществлено на основе организации мета-среды, содержащей информацию, которая является доступной для каждого объекта и учитывается при их работе. Кроме того, мета-среда содержит информацию для обеспечения работоспособности приложения в целом, например, для обеспечения решения задач администрирования. Как видно из рисунка, объекты работающего приложения могут составлять не единое целое, а представлять собой распределенный набор. Таким образом, для обеспечения их правильного функционирования надо точно знать месторасположение объектов и методику доступа к ним. Пользовательское приложение, в свою очередь, также является программным объектом и должно обеспечивать взаимодействие с другими программными комплексами, расположенными в вычислительной сети, или интегрировать в себе их возможности (например, встраивать внешние приложения в виде подключаемых модулей). Опыт использования программного обеспечения, созданного в соответствии с рассмотренной пятиуровневой моделью организации данных при разработке приложений, подтверждает достижение следующих результатов. · Резкое сокращение сроков разработки. · Резкое сокращение объема программного кода (в разы!) без потери его функциональности. · Возможность автоматизации процесса проектирования, реализации и модификации программного обеспечения как на стороне сервера, так и на стороне клиента. · Обеспечение свойств самодокументированности программного кода. · Повторное использование объектов и их копий, в том числе с измененными свойствами и формой отображения. · Создание «синтетических» сборных объектов из набора независимых объектов с обеспечением их синхронной работы. · Автоматическая реконфигурация програм-мных объектов адекватно изменению структуры данных, в том числе изменению числа параметров объектов любого уровня и их типа. · Достижение высокой стандартности кода и доступности сторонним разработчикам. · Возможность создавать распределенные приложения. Кроме того, опыт эксплуатации разработанного программного обеспечения показывает, что оно может быть легко освоено программистами средней квалификации. |
http://swsys.ru/index.php?id=768&lang=%29&page=article |
|