Новые средства разработки файл-серверных приложений
Чем дальше, тем больше файл-серверные приложения сближаются с более развитыми технологиями клиент-серверных приложений. В последнее время появилась целая серия программных продуктов, позиционируемая одновременно как средства "легкой" разработки приложений для персональных компьютеров, так и более "тяжеловесной" разработки приложений в технологии "клиент-сервер". Это и хорошо, поскольку позволяет плавно изменять технологию.
Общая характеристика современных средств
В индустрии СУБД для персональных компьютеров отразились тенденции нормализации систем (Rightsizing). В последнее время в этой области происходили два встречных процесса: (1) разукрупнение серверов БД - появление новых версий серверов БД Informix, Oracle и т.д. сначала в варианте для рабочих групп, а потом облегченные версии для одиночных персональных компьютеров; (2) укрупнение СУБД для персональных компьютеров - новые "персональные" СУБД и связанные с ними инструментальные средства развивались в сторону "истинно реляционных" СУБД, т.е. серверов БД, приложений клиент-сервер и инструментальных средств программирования 4GL и быстрой разработки RAD.
Новые СУБД для персональных компьютеров и соответствующие инструментальные средства разработки файл-серверных приложений обладают перечисленными ниже общими чертами.
· Визуальный характер программирования приложений особенно в части создания диалогового графического интерфейса пользователя. Это множество поддерживаемых диалоговых объектов, поддержка механизма drag-and-drop и наличие мастеров, помогающих реализовать сложные процедуры.
· Управляемость приложений в соответствии с событиями диалога и обеспечение доступа к БД позволяет строить гибкий интерфейс пользователя и поддерживать ссылочную целостность БД.
· Встроенная поддержка языка структурированных запросов SQL (Standard Query Language) закладывает возможность масштабирования создаваемых файл-серверных приложений до уровня приложений клиент-сервер.
· Имеется возможность построения приложений клиент-сервер за счет реализации доступа к серверам БД напрямую или через интерфейс ODBC для открытого взаимодействия с базами данных.
· Использование объектно-ориентированного языка разработки приложений (по крайней мере в части диалога) позволяет широко использовать механизм наследования и тем самым использовать ранее произведенные программные компоненты.
· Поддержка компонентно-ориентированного программирования дает возможность расширения приложений за счет использования готовых внешних визуальных объектов типа VBX и OCX (ActiveX).
· "Истинно реляционная" база данных представляет собой объединенный набор файлов, содержащий таблицы, индексы и т.п., что облегчает сопровождение БД и приложений и является основой для поддержки целостности данных.
· Поддерживается общий для информационной системы словарь данных (data dictionary), который содержит описание структуры БД, типы полей, правила поддержки ограничений целостности и т.п.
· Поддержка целостности БД (данных, ссылок и транзакций) позволяет создавать приложения с необходимым уровнем надежности и сохранности данных.
· Возможности серверных процедур обработки (триггеров и хранимых процедур) закладывают основу для масштабирования приложений, позволяют гибко распределять прикладную логику между клиентом и сервером при переходе к архитектуре клиент-сервер.
· Хранение в БД описания проекта создаваемого приложения является прообразом репозитория инструментальных средств быстрой разработки RAD и CASE-систем.
Рассмотрим подробнее несколько примеров инструментальных средств: MS Access, Visual FoxPro и CA-VisualObjects.
Пакет MS Access
Microsoft Access - первая СУБД для персональных компьютеров, созданная для работы в среде Windows и несущая в себе многие черты новых инструментальных средств для разработки файл-серверных приложений. Эта система ориентирована как на конечных пользователей, так и на профессиональных программистов, облегчая и тем, и другим разработку и доступ к БД, быстрое создание информационных приложений с графическим интерфейсом. Система может работать в различных версиях операционной системы Windowsws NT. Пакет Microsoft Access полностью поддерживает кириллицу, в частности, сортировку данных в соответствии с русским алфавитом. Microsoft Access является составной частью семейства программ Microsoft Office. Все семейство основано на IntelliSense - интеллектуальной технологии, которая "чувствует", что нужно пользователю, и дает требуемый результат, автоматически выполняя рутинные операции и упрощая сложные задачи. Например, наличие десятков мастеров (Wizards), помогает автоматизировать массу операций от создания форм до написания программ. От пользователя требуется ответить лишь на несколько простых вопросов. Ниже приводится перечень некоторых необходимых мастеров:
· мастер Table Wizards;
· мастер Command Button Wizards;
· мастер Form Wizards;
· мастер Report Wizards;
· мастер Mail Merge Wizards.
Мастер Table Wizards создает структуры базы данных и таблиц таким образом, что пользователи могут сразу же получать результаты.
Мастер Command Button Wizards создает функциональные кнопки, что избавляет пользователя от потребностей в программировании.
Мастера Form Wizards и Report Wizards используются при создании сложных форм и отчетов. Для создания более простых форм и отчетов можно использовать такие функции как Автоформа (AutoForm) и Автоотчет (AutoReport).
Мастер Mail Merge Wizard работает совместно с Microsoft Word, облегчая подготовку почтовых рассылок - необходимо только выделить данные для слияния или документ, который необходимо отослать.
MS Word можно также использовать для непосредственной работы с данными в Microsoft Access. В Microsoft Access имеются службы Графического конструктора связей (Graphical System Relationships Builder) и Графического запроса (Graphical query). Эти средства позволяют не только создать базу данных, но и наглядно сконструировать ее, что приближает Microsoft Access к CASE-средствам. Графический конструктор связей позволяет интуитивно конструировать базу данных, используя мышь для организации связи между таблицами, а функция Графического запроса упрощает создание даже очень сложных запросов - все что нужно, это мышью соединить поля, которые нужно включить в запрос. В Microsoft Access существуют функции и технологии, увеличивающие скорость и упрощающие использование конечных средств. К ним относятся:
· технология Rushmore;
· быстрая сортировка (QuickSort);
· средство наиболее часто выполняемых запросов (Top Value queries).
Технология Rashmore ускоряет выполнение запросов в 100 раз по сравнению с версией 1.0 Microsoft Access. Быстрая сортировка мгновенно сортирует данные пользователя. Средство поддержки наиболее часто выполняемых запросов позволяет быстро выбрать наиболее важные для пользователя данные (например, 10 основных заказчиков, 15 основных адресатов и т.д.).
В Microsoft Access имеется ряд средств для совместного использования информации с другими приложениями. OfficeLinks с применением технологии OLE 2.0 позволяет передавать информацию из одной программы в другую. С помощью кнопок Analyze It и Publish It пользователь может перенести данные в Excel или Word для анализа, включения в отчет или слияния с другими данными для отправки почты. Наличие кнопки Mail It облегчает обмен информацией с другими членами рабочей группы - пользователь может послать информацию через Microsoft Mail или другую программу электронной почты.
Microsoft Access может работать с большинством форматов файлов (напрямую или через импорт/экспорт) - это позволяет пользователю максимально использовать имеющиеся наработки, поскольку Microsoft Access обеспечивает полную поддержку Btriеve, dBASE III PLUS и dBASE IV, Microsoft FoxPro, Paradox, Miсrosoft SQL Server, SYBASE SQL Server. Кроме того, возможно использование драйверов ODBC для доступа к другим базам данных.
Microsoft Access представляет мощный инструментарий для разработчика. Универсальная среда разработчика со встроенным отладчиком обеспечивает возможности программирования на уровне Microsoft Visual Basic. Управление событиями позволяет настраивать приложение в процессе исполнения, облегчая создание надежных приложений. Каскадные обновления и удаления помогают поддерживать целостность данных. Проверка правильности ввода на уровне процессора данных сохраняет целостность данных приложения - если разработчик создает правило ввода данных, пользователи могут его обойти.
Конструктор Меню (Menu Builder) предоставляет графический инструментарий для создания меню без программирования. Скорость разработки в Microsoft Access можно повысить с помощью двух отдельно поставляемых пакетов: Microsoft Access Solutions Pack и Microsoft Access Developer's Toolkit. Microsoft Access Solutions Pack содержит четыре готовых универсальных приложения для информационного обеспечения бизнеса:
· Sales Manager - облегчает хранение, отслеживание и нахождение информации о контактах с заказчиками и деловых возможностях;
· Asset Tracker - помогает при учете и управлении активами;
· Registration Desk - упрощает рутинную, но необходимую работу по регистрации событий;
· Service Desk - повышает качество услуг, помогая обрабатывать заявки на обслуживание, от регистрации до завершения обработки и проверки.
Microsoft Access Developer's Toolkit содержит инструменты, необходимые для создания приложений для Microsoft Access, такие как компилятор справок, исполняемая версия Microsoft Access, Microsoft Graph, Setup Wizard, документацию и пример программ создания объектов, обеспечивающих доступ к данным, мастеров и кнопок управления OLE 2.0, справочник по Microsoft Access (Microsoft Access Language Reference) и Руководство для опытного пользователя (Advanced Topics).
Система Visual FoxPro
В Visual FoxPro присутствуют многие новые черты: объектно-ориентированный язык, активный словарь, встроенные средства обращения к серверам баз данных и т.д.
Начнем со средств построения интерфейса и новых терминов, которые приходится осваивать разработчикам. Visual FoxPro уже не стоит особняком от остальных продуктов Microsoft, как это было в версиях 2.х. Интерфейс самого продукта и приложений, которые разрабатываются на его основе, соответствуют стандартам, принятым в комплексе программных продуктов Microsoft Office и в средствах разработки, подобных Visual Basic. Более того, Visual FoxPro полностью интегрируется с остальными приложениями Microsoft Office с помощью OLE Automation. Программа, написанная на Visual FoxPro, сможет полноценно общаться с Microsoft Word, Microsoft Excel и любыми другими приложениями, поддерживающими OLE 2.0. Как и прежде, поддерживается динамический обмен данными DDE.
Использование механизма наследования классов позволяет создавать произвольное число модифицированных форм; при корректировке исходного класса все изменения будут отражены в формах, построенных на его основе. В качестве объекта может выступать любой элемент формы, и это дает неограниченные возможности по модификации форм из программы. Возможность сохранить часто употребляемую форму как класс и строить на ее основе другие формы снимает проблему с параметризацией для приведения интерфейса в соответствие с новыми требованиями. В составе формы-класса может быть любой стандартный элемент интерфейса (кнопки, поля вывода, независимые и зависимые переключатели); в определении класса можно использовать и так называемые "OLE custom controls - OCX", что позволяют делать только самые развитые средства программирования в стиле С++. Для начинающих предусмотрены "Мастера", которые облегчат построение формы, отчета, таблицы и запроса.
Инструментальные средства не поддерживают browse и Foundation Read. Вместо Browse - объект с названием Grid, которым можно управлять как любым другим объектом формы. Причем управлять можно не только как единым монолитом, а с точностью до ячейки. То есть можно сделать все ячейки, где значение баланса меньше нуля, красными, а остальные - зелеными; можно встроить в ячейку элемент check box, если это поле содержит логические величины. Такого рода формы можно создавать как в Конструкторе форм, так и программным путем. Если используется Конструктор форм, то простое "перемещение" таблицы из окружения формы в область формы автоматически создает этот элемент интерфейса. Теперь окружение формы или отчета создается визуально и полностью контролируемо.
Вместо Foundation Read используется команда Read Events, переводящая Visual FoxPro в состояние ожидания, из которого его выводит только какое-либо действие пользователя. Список событий, на которые Visual FoxPro может реагировать, достаточно велик. При этом программа ведет себя, как "настоящее Windows-приложение": обработка событий встроена в сам продукт. Совместимость со старыми версиями поддерживается полностью, и весь старый процедурный код по-прежнему будет работать; однако Visual FoxPro - это новые подходы, новые технологии и новые требования, поэтому разработчику нужно освоить такие понятия, как инкапсуляция, полиморфизм, триггеры, хранимые процедуры, события, методы, наследование.
Для хранения описаний проектов, отчетов, баз данных и т.п. практически везде используются .DBF-файлы. Многие утилиты написаны на самом Visual FoxPro.
В смысле управления базами данных фирма Microsoft продвинула пакет Visual FoxPro очень далеко. У Visual FoxPro наконец появилось настоящее понимание базы данных как совокупности таблиц, индексов и всякого рода дополнительной информации, описывающей правила, которым должны подчиняться данные при вводе или модификации.
Несмотря на то, что по-прежнему можно использовать самостоятельные .DBF-файлы, при "привязывании" таблицы к единому файлу базы данных имеются следующие преимущества: длинные имена таблиц и полей (до 254 символов), вспомогательные имена и комментарии для каждого поля; значения по умолчанию для каждого поля; правила ввода как на уровне поля, так и на уровне записи; триггеры, срабатывающие при удалении, обновлении и добавлении записи; хранимые процедуры, которые хранятся в базе данных и не требуют дополнительного указания библиотеки процедур (кстати, таких библиотек теперь можно открывать сколько угодно).
Помимо локальных данных, все больший интерес разработчиков вызывают данные, хранимые серверами баз данных (например, Microsoft SQLServer). Обращение к такой информации обычно подразумевает работу в системе, построенной на базе архитектуры клиент-сервер. Раньше доступ к этим данным обеспечивался средствами программного продукта FoxPro Connectivity Kit, продававшегося отдельно и позже включенного в состав FoxPro 2.6 Professional Edition. Теперь же все средства, необходимые для построения запросов к серверу баз данных, встроены в Visual FoxPro. Все, что нужно - это просто установить Visual FoxPro. Доступ к данным производится через интерфейс ODBC. В частности, есть возможность получать динамически обновляемые результаты запросов. Для управления процессом можно использовать один из новых элементов интерфейса - таймер, который через определенные промежутки времени выполняет запрос к серверу, так что у пользователя на экране всегда будет находиться наиболее свежая информация.
Все компоненты объединяет значительно модифицированный Менеджер проектов. В проект можно включать таблицы, базы данных и классы. Очень интересно построено само окно Менеджера проектов. Его не только можно превратить в узкую полоску и разместить где-нибудь с краю, но можно также "оторвать" любой из отдельных "листков" проекта и перемещать по экрану.
Среда программирования CA-Visual Objects
Новый продукт СА-VisualObjects, разработанный фирмой Computer Associates, является преемником широко распространенной системы программирования Clipper. Он ориентирован на создание информационных приложений с графическим интерфейсом пользователя в среде Windows.
С точки зрения синтаксиса VisualObjects почти на 90 процентов совпадает с CA-Clipper. Но VisualObjects не является просто продолжением линии Clipper. Хотя, конечно, при работе с VisualObjects можно использовать Clipper и включать разработанный раннее код в новую систему приложений.
Разработчику, использующему новую среду программирования, необходимо четко понимать особенности и преимущества объектно-ориентированного подхода, иметь представления о динамически компонуемых библиотеках (DLL) и принципах программирования в среде Windows.
Для работы систем VisualObjects требуется как минимум Intel 386 с 8 Мб оперативной памяти и Windows, а также примерно 40 МБ свободного дискового пространства. Но чтобы сделать работу более комфортной, лучше иметь 486-й (или более старший) процессор и 16 Мб памяти. Для создания приложений в среде GUI рекомендуется использовать сопроцессор. Такая конфигурация необходима именно для разработчиков, конечный же пользователь, применяющий готовые приложения, написанные в среде VisualObjects, не нуждается в таком мощном оборудовании. Это очень существенно для разработки коммерческих систем. При работе с VisualObjects не требуются дополнительные библиотеки, кроме библиотеки для работы с графикой.
В отличие от рассмотренных ранее сред программирования, при использовании VisualObjects простое изучение синтаксиса не позволяет сразу начинать работать. Необходимо освоить новые понятия. Прежде всего, это репозиторий (центральное хранилище объектов разработки). Это понятие чрезвычайно важно при разработке приложений в среде VisualObjects и непривычно для пользователей CA-Clipper. Вместо операций с PRG- и СН-файлами в VisualObjects используются модули, каждый из которых состоит, возможно, из нескольких функций, определений классов и методов.
Приложения, модули и компоненты хранятся в репозитории - своего рода глобальной базе данных. У репозитория есть еще одна важная функция - управление всеми частями приложения вплоть до компонентов самого низкого уровня. Автоматически поддерживаются связи между различными модулями и компонентами всех приложений. Репозиторию всегда "известно", был ли исходный код модифицирован или откомпилирован, так что отпадает необходимость в make-файлах и других файлах, так или иначе описывающих процесс компоновки.
Выбор опций в компиляции VisualObjects отличается от Clipper. По умолчанию устанавливается режим low (отображение самых серьезных ошибок). Однако можно выбрать опции none (предупреждения не выводятся), med (только важные предупреждения и серьезные ошибки), high (вывод всех предупреждений и ошибок). Существует режим, позволяющий предупреждать возникновение ошибок во время выполнения, при котором можно заказать отслеживание ситуаций переполнения, выхода за пределы указанного диапазона адресов (например, контроль доступа к элементам массива вне указанной размерности) и проверку корректности принадлежности объекта к тому или иному классу.
В VisualObjects реализован целый список переключателей компилятора, используемых для обеспечения совместимости с CA-Clipper. Так, можно "разрешить" применение переменных в стиле Clipper, объявить правила использования операторов присваивания "=" или "(=", а также обеспечить применение функции ProcName() и ProcLinep(). Кроме того, компилятор VisualObjects позволяет проводить оптимизацию кода по размеру и скорости выполнения, а также имеется возможность смешанной проверки, что очень полезно в процессе конвертирования Clipper-программы в VisualObjects.
С VisualObjects пользователь получает большой выбор библиотек, интегрируемых в IDE. Каждая используемая библиотека должна быть связана с приложением. Наиболее интересна библиотека GUI Classes - совокупность почти 100 классов. Здесь описаны классы для формирования окон, списков, кнопок, линеек прокрутки и прочих атрибутов GUI. DBF-библиотека поддерживает стандартные для xBase-архитектуры команды и функции обработки данных. Средства ООП позволяет реализовывать библиотека DBF Classes.
Доступ через протокол ODBC к таблицам обслуживает библиотека SQL Classes, объектно-ориентированный интерфейс для генератора отчетов Report Classes, ввод/вывод в традиции xBase-Terminal, а функции прикладного программирования для Windows - Windows API.
Центральное место занимает библиотека System Library, содержащая все системные средства.
При работе с VisualObjects существует два варианта программирования в графическом интерфейсе - использование программы эмуляции терминала или применение библиотеки CommonView. В первом случае существует возможность использовать созданные раннее Clipper-приложения как программы Windows, хотя, конечно, это будет все то же DOS-приложение, просто работающее в окне Windows.
Переход к GUI создает для разработчика массу новых проблем, что, правда, окупается на порядок более качественным и гибким приложением, получаемым в итоге.
Поскольку программисту приходится учитывать событийный характер поведения тех или иных узлов приложения, инструментарий визуальной разработки оказывается ключевым. СА-VisualObjects дает возможность применять мощный набор средств визуального программирования. Так, доступны редакторы меню, окон, отчетов, исходных текстов программ и пиктограмм. Все это позволяет создавать качественные приложения.
Сложность освоения VisualObjects состоит в традиционной ломке представлений и привычек, происходящей на пути от процедурного программирования к ООП. В скором времени появится большое количество программных систем, созданных на базе VisualObjects и реализующих все достоинства информационных систем в архитектуре клиент-сервер.
Дата добавления: 2020-10-14; просмотров: 444;