Обзор

Новая версия предназначена для опытных разработчиков приложений электронной коммерции

Питер Коффи (PC Week Labs)

Уже прошлые версии среды разработки фирмы Magic Software Enterprises располагали средствами для быстрого создания практически свободных от ошибок многоплатформных приложений. Возможности Magic 8 стали шире благодаря появлению гибких и оригинальных Web-средств для быстрой доставки данных с использованием многочисленных серверов приложений.

В Magic 8 появилась возможность генерировать коды HTML и Java

Продукт Magic 8 был выпущен в конце прошлого года по стартовой цене $5500 (реальная цена зависит от конфигурации) и ориентирован на создателей средств электронной коммерции. Как показали испытания в Тестовом центре PC Week Labs, Magic 8 скрывает от пользователя низкоуровневые элементы взаимодействия с многочисленными серверами Internet, базирующиеся на HTML и Java, подобно тому как Magic 7 скрывал низкоуровневые элементы устройства ГИП в клиентском интерфейсе к СУБД, функционирующей в локальной сети.

Magic 8 может работать под управлением 16- и 32-разрядных версий Windows, многих клонов Unix и ряде других ОС. Мы тестировали этот продукт под Windows NT 4.0.

Magic 8 не снимает проблемы многократной отладки однажды написанного приложения на разных платформах, которая в наше время борьбы между различными стандартами является неизбежным спутником разработки Web-приложений. Например, Magic может создать стандартный HTML-код, однако он беззащитен перед сменой настроек в браузере того или иного пользователя или различиях в реализации Java.    

По этой причине не следует пренебрегать надлежащей поддержкой среды, в которой будет запускаться приложение Magic, даже если это покажется простым делом. В частности, нужно отметить, что начиная с версии 8 создатели продукта постепенно отказываются от некоторых особенностей, присущих предыдущим его версиям.

В Magic 8 они еще остаются доступными, однако пользователям предлагают рекомендации, которые должны сгладить переход к последующим версиям, в которых эти особенности уже исчезнут.

Magic 8 обладает исключительной продуктивностью, существенно сокращая стадии проектирования и программирования приложения. Благодаря этому у пользователей появится больше времени для его тестирования на различных платформах, что крайне важно для средств электронной коммерции на базе Internet. Возможности Magic 8 в области управления приложением, включая новые интегрированные инструменты контроля, должны упростить процесс увязки с изменяющимися технологиями Internet, которые можно образно сравнить с движущейся мишенью. И это должно принести немалые выгоды.    

Трудности первых шагов

Разработчики, прежде не имевшие дела с Magic, как и те, кто уже знаком с его предыдущими версиями, столкнутся в Magic 8 практически с одинаковыми трудностями. Для тех, кто привык к кодированию в рамках заданной процедуры (“сначала сделай это, а затем то”), первое знакомство с Magic создаст впечатление, будто они сели в автомобиль, в котором нет руля и педали акселератора.

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

В отличие от других высококлассных инструментов для быстрой разработки приложений (RAD), например Delphi фирмы Borland International или Clarion корпорации TopSpeed, Magic не сводит создание нового приложения к запуску определенного мастера (wizard) или к другому прямолинейному автоматизированному процессу. Вряд ли можно интуитивно догадаться, что разработку приложения в Magic следует начинать с выбора опции “Create Line” (“создать линию”) из меню Edit репозитория Applications. (Заметим, что в версии 8 под словом “репозиторий” подразумевается то, что обычно называют таблицей. Это сделано, чтобы избежать путаницы с терминологией SQL.)

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

“А как насчет самого кода приложения?”  может спросить дотошный разработчик. В этом как раз и состоит магия Magic. Среда разработки анализирует содержимое всех этих репозиториев и создает с его помощью программный механизм приложения. Этот механизм затем запускается в действие, выполняя все вложенные циклы операций с записями и группами записей в соответствии с базовой моделью, которая удовлетворяет подавляющему большинству требований, предъявляемых к корпоративным приложениям.

Однако в программном механизме Magic, образно выражаясь, имеется также система “переключения передач”. Я, конечно, говорю не о педалях сцепления. Например, хотите вы этого или нет, но созданное вами приложение обязательно будет содержать полоску собственного меню. Работа с Magic напоминает приятную автомобильную прогулку по хорошо накатанной дороге, а не автогонки или перевозку тяжелого груза по горным дорогам.

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

Здесь большую роль играет опыт. Для опытных разработчиков правильный выбор между возможными опциями, которые предлагает Magic, не составит никакого труда. Испытывая этот продукт, мы ощущали почти телепатическую связь между тем, что всякий раз хотели увидеть, и тем, что нам предлагал тот или иной раскрывающийся список Magic, и автоматически заполняли нужные позиции.

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

При изучении Magic разработчику достаточно проделать ту или иную операцию всего один раз, и она будет усвоена. Но при самостоятельном освоении этого продукта не исключено, что первое время придется учиться на ошибках.    

Cоздание приложений для Web

Среда Magic обогатилась возможностями генерации кодов HTML и Java, а также палитрами экранных элементов управления, форматирующих команд HTML и т. п. (см. рисунок). У нас сложилось впечатление, что генерируемый код ясно читаем и легко поддается окончательной доводке, удовлетворяющей запросам опытных программистов.

Magic учитывает требования, связанные с отсутствием в протоколе HTTP понятия состояния. Продукт позволяет создавать контекстные переменные, поддерживающие информацию о состоянии, которые сохраняются при перемещении с одной Web-страницы на другую. Это очень существенно для приложений, связанных с электронной коммерцией. Контекстный механизм интегрирован со стандартным HTML, позволяя использовать, по выбору разработчика, либо cookie-файлы, либо скрытые поля.

Если бы единственным новшеством версии Magic 8 было упрощение разработки и внедрения Web-приложений, то это было бы похвально, но не могло считаться чем-то выдающимся. Это еще не гарантирует, что пользователи приложений в конечном счете получат на экранах своих Web-браузеров корректные данные. Другое важное требование к Web-приложениям  быстрота их выполнения.

Поэтому нас обрадовало, что Magic 8 не перекладывает проблемы быстродействия на плечи самих разработчиков. Magic 8 имеет новые средства декомпозиции (partitioning) приложений, которые вполне можно освоить и использовать.

Декомпозиция приложения, позволяющая развернуть его на многочисленных серверах, не требует от разработчика большой изобретательности, поскольку для осуществления этого процесса достаточно чисто декларативного описания поведения приложения, а процедурные детали обеспечивает сам Magic. Использованная в Magic 8 технология Magic Request Broker играет роль дополнительного программного уровня, который в обычных условиях невидим для пользователя, но обладает опциями, позволяющими, если нужно, перестраивать его поведение.

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

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

Magic предназначен не для тех, кто пишет программы ради собственного удовольствия. Основной круг его пользователей  профессиональные разработчики, и в первую очередь те, кто создает новые технологии для электронной коммерции. И Magic станет для них серьезным подспорьем.         

Резюме для руководителей

Magic 8

Среда разработки приложений Magic 8 фирмы Magic Software Enterprises не отличается элегантностью, но надежна и производительна. Она позволяет создавать Web-приложения, генерируя коды HTML и Java, а также имеет новые возможности для многосерверной декомпозиции приложений и их защиты от сбоев.

Декларативное представление элементов приложения; слаженная интеграция разработки и развертывания Web-приложений.    

Продукт менее гибок и менее автоматизирован по сравнению с такими средствами, как Delphi; слабо разработаны вопросы поддержки; довольно труден в освоении.

Magic Software Enterprises, Ирвин, шт. Калифорния, (800) 345-6244, www.magic-sw.com.

Методика оценки: www.pcweek.com/reviews/meth.html.