div.main {margin-left: 20pt; margin-right: 20pt}Инструментальные средства баз данных для Web
Инструментальные средства баз данных для Web
Стивен У. Плейн
Прикладные программы Web, управляемые данными,
- новое активное направление деятельности, и
фирмы-изготовители спешат выпустить инструментарий для их
создания. Среди таких изделий первого поколения есть
удивительно мощные.
Если до сих пор вы разрабатывали программы в традиционной
среде клиент-сервер, то переход к World-Wide Web откроет вам
прекрасный новый мир. Вместо десятков пользователей у вас
могут появиться миллионы во всем мире, получающие доступ к
вашей программе с помощью ПК, электронных секретарей, рабочих
станций UNIX и других компьютерных платформ, которые могут
работать с браузерами Web.
Однако это и пугающий новый мир. Хотя технически Web может
быть просто очередной разновидностью платформы клиент-сервер,
она радикально отличается от традиционных сред клиент-сервер,
и многие подходы с использованием метода проб и ошибок здесь
неприменимы. Кроме того, это та сфера, в которой популярные
средства ускоренной разработки программного обеспечения (RAD)
могут не иметь реальных преимуществ. Если разработчикам
традиционных прикладных программ клиент-сервер необходимо
тщательно подбирать свой инструментарий, то при переносе
приложения СУБД в Internet требования удваиваются.
Новый рынок, новые средства
Отбирая продукты для этого обзора, мы обнаружили четкие
признаки того, что внезапно возникший спрос на системы
разработки, ориентированные на Web, застал врасплох многих
изготовителей. Восемь инструментальных пакетов, которые мы в
конце концов испытали, образуют эклектическую смесь изделий,
сильно различающихся по степени зрелости. Некоторые из них,
например NetDynamics фирмы Spider Technologies, HahtSite
компании Haht Software и WebObjects фирмы NeXT, были
специально разработаны для Web, и в них решены многие
проблемы, присущие только приложениям СУБД для Web. Другие,
такие как Delphi Client/Server компании Borland, JAM WEB
Toolkit фирмы JYACC и VisualWave компании ParcPlace-Digitalk,
явно относятся к краткосрочным решениям, предназначенным для
того, чтобы предоставить разработчикам временный способ
перехода в среду Web.
Кажется, что кое-кто из ведущих поставщиков опоздал с
предложением изделий для этого рынка. Корпорации Oracle и
Microsoft отказались принять участие в подготовке данного
обзора. Пакеты PowerBuilder и Optima++ компании Sybase не были
поставлены вовремя для полноценного анализа, хотя мы смогли
рассмотреть бета-версии этих многообещающих инструментальных
средств (подробности можно найти во врезке "Средства
разработки фирмы Sybase и Internet").
Мы ожидаем, что на протяжении последующих шести месяцев
рынок станет значительно более насыщенным по мере того, как
эти поставщики выйдут на сцену и начнут появляться другие
инструментальные средства второго поколения. Несколько
превосходных средств доступны уже в настоящее время. Для
небольших узлов и некоторых приложений интрасетей (intranet)
решения, основанные на СУБД для ПК, также могут быть вполне
подходящими (врезка "СУБД для ПК: решения меньшего
масштаба").
Новое мышление
Процесс разработки баз данных Web сопряжен с преодолением
большого числа технических барьеров и требует, чтобы
разработчики кардинальным образом изменили свое мышление.
Например, прикладная программа клиент-сервер в ЛВС может
пользоваться ресурсами ПК-клиента для раздельного выполнения
задач по обработке и хранению данных. В отличие от этого, СУБД
для Web напоминает старинную программу для универсальных ЭВМ,
где браузер играет роль маломощного клиента, аналогичного
неинтеллектуальному терминалу. В то время как разработчики
программ для ЛВС свободны в использовании всех вычислительных
ресурсов машины клиента и функциональных возможностей ее
многооконной системы, их коллеги, программирующие для Web,
вынуждены работать в рамках ограничений стандарта HTML, если
только они не хотят ориентироваться на конкретную локальную
конфигурацию пользовательской системы.
Возможно, наиболее значительная проблема, с которой
сталкиваются разработчики, - неструктурированная природа Web.
Web-сервер реагирует на запрос страницы, либо отсылая страницу
HTML, либо запуская внешнюю прикладную программу посредством
сервера API. Как только предоставлена страница или выполнено
приложение, транзакция завершена и связь разрывается. Сервер
не обеспечивает хранения жизненно важной информации о
прикладной программе и пользователе в рамках самой программы.
Такой подход хорош при распространении гипертекстовых
документов, но вызывает серьезные проблемы у всякого, кто
пытается создать компактную программу для работы с
многостраничной базой данных.
Для разрешения этих проблем Web-программе нужно иметь
средства обслуживания информации о сеансе или средства обмена
данными о состоянии системы с пользователем посредством
встраивания информации в HTML-формы. В любом случае уникальный
идентификатор сеанса обычно генерируется на сервере. От того,
какую информацию обслуживает приложение базы данных Web и
насколько прост доступ к нему со стороны разработчика базы
данных, во многом зависит выбор системы разработки.
Другая сложная проблема заключается в непредсказуемой
нагрузке, с которой может столкнуться Web-приложение.
Управление нагрузкой в Web предусматривает множество факторов,
причем необходимо учитывать их все. Первый - это способность
сервера приложений управлять большим числом одновременных
подключений. В наиболее сложных изделиях используется
архитектура распределенной обработки, которая дает возможность
перенаправлять запросы приложения на несколько физических
машин. Однако большинство разработчиков при ограничении числа
одновременно поддерживаемых подключений просто рассчитывают на
Web-сервер. Другое соображение касается числа одновременно
требуемых подключений к базам данных: Web-СУБД, которая может
экономно использовать канал связи с базой данных, - это
реальный плюс. В то время как одни изделия обеспечивают
кэширование и совместное подключение к базе данных для
различных Web-сеансов, другим требуется отдельное подключение
для каждого создаваемого прикладной программой процесса.
Еще одна проблема - неэффективность традиционных
CGI-сценариев. Хотя интерфейс CGI - стандартный компонент
большинства Web-серверов, это не очень удачное решение, когда
речь идет об управлении памятью. Каждое обращение через CGI
порождает отдельный процесс, выгружаемый по завершении
выполнения запроса. Это увеличивает нагрузку на память и
снижает производительность. Более эффективный способ
подключения внешней СУБД к Web-серверу - использование
интерфейсов NSAPI фирмы Netscape или ISAPI корпорации
Microsoft - патентованных API, которые позволяют прикладным
программам работать с отдельными процессами в рамках
собственного адресного пространства Web-сервера и обеспечивают
лучшее управление самим Web-сервером. В одном из таких средств
- пакете NetDynamics - использует в качестве основы прикладных
программ служит язык Java, имеющийся на сервере.
Ввиду многообразия предложений, незрелости инструментальных
средств и противоречивой природы архитектуры Web выбор
подходящего решения для разработки Web-СУБД представляет собой
непростую задачу. Восемь изделий, описания которых приводятся
ниже, позволят вам почувствовать преимущества и недостатки
существующих вариантов выбора.
Редакция советует:
NetDynamics 2.0, |
WebObjects Enterprise 2.0
|
Наши победители выходят далеко за рамки обычных
технологий клиент-сервер, чтобы соответствовать специальным
требованиям разработки СУБД для Web. Пакет NetDynamics 2.0
компании Spider Technologies бесспорно наиболее
претенциозный инструментальный пакет на основе языка Java
среди существующих. Прикладные программы генерируются на
языке Java для сервера, а сервер приложений NetDynamics
элегантно управляет доступом к данным, балансировкой
нагрузки и служебной информацией. Рабочая среда
предоставляет превосходные средства управления
безопасностью, от координализации потоков приложений до
настройки привилегий для доступа к базе данных. NetDynamics
Studio - это эффективная среда разработки ГИП, "мастера"
которой помогают с легкостью создавать страницы и
SQL-запросы. NetDynamics - серьезный инструмент для сетевых
узлов на уровне предприятия, но простота его применения и
цена будут привлекательны для сетей любого масштаба.
Пакет WebObjects Enterprise 2.0 компании NeXT, основанный
на использовании объектно-ориентированных структур NeXT,
содержит удивительно мощное собрание инструментов для
разработки прикладных программ Web-СУБД на уровне
предприятия. Его модуль Enterprise Object Modeler
предоставляет все необходимые возможности для моделирования
программ и данных, тогда как модуль Enterprise Objects
Framework обеспечивает способность абстрагировать деловую
логику от внутренней базы данных и интерфейса приложения.
WebObjects предназначен также для решения задач управления
состоянием системы и обработкой транзакций. Пакет WebObjects
Enterprise - это сложный инструмент, но для построения узлов
с большой нагрузкой он подходит лучше всех рассмотренных
нами изделий.
Соответствие решаемой задаче: настольные системы
управления
Разработка интерфейса. Для получения этого показателя мы
оценивали любые имеющиеся функциональные возможности
генерирования HTML-форм, которые выводятся на экран
браузером конечного пользователя. Инструментальные средства,
при работе с которыми нам приходилось программировать
описания экранных форм вручную, здесь оценивались как
неудачные. Помогает ли инструмент графически проектировать
экранные формы? Предоставляет ли он высокоуровневые
программируемые объекты интерфейса? Можно ли генерировать
HTML-страницы из экранных образов существующих прикладных
программ? Наличие инструментальных средств, использующих
знания о лежащей в основе СУБД или модели для генерации
экранных форм, приносило дополнительные баллы. Возможность
усовершенствований на стороне клиента с применением языка
Java оценивалась положительно наряду со средствами создания
сложных отчетов.
Соединение с базами данных. Этот показатель характеризует
взаимодействие между базой данных, приложением, запущенным
на сервере, Web-сервером и клиентом. Мы рассчитывали найти
средства, которые наряду с CGI обеспечивают работу с ISAPI и
NSAPI. Нам было важно, насколько хорошо этот инструмент
управляет сеансом и обеспечивает ли он реальную обработку
транзакций. Предоставляются ли собственные и ODBC-драйверы
для SQL СУБД? Инструментальные средства, позволяющие
развертывать прикладные программы на различных платформах
серверов, заслужили дополнительные баллы.
Распределение приложений. Этот показатель оценивает
степень, до которой инструмент обеспечивает поуровневое
распределение прикладных программ. Можно ли логически
разбивать прикладные программы на уровни интерфейса, деловой
логики и доступа к данным? Можно ли физически разбить
прикладную программу на разделы?
Разработка баз данных. Данный параметр характеризует
эффективность инструментария при реконструкции существующих
баз данных или разработке новых. Предоставляет ли он
графический, объектно-ориентированный интерфейс
пользователя, который обеспечивает общее представление об
объектах приложения и базы данных? Можно ли работать с
высокоуровневыми объектами доступа к данным? Имеются ли в
пакете возможности моделирования данных? Мы также высоко
оценивали наличие мощного стандартного языка
программирования, расширяемой модели данных и хорошего
выбора заготовок программных объектов.
Borland International Inc. Delphi Client/Server Suite
Марк Чилдерз
Пакет Delphi компании Borland International имеет
заслуженно высокую репутацию как средство для создания систем
клиент-сервер в среде ЛВС. Если вы собираетесь создавать
прикладные программы клиент-сервер для World-Wide Web, то
обнаружите, что текущая редакция Delphi Client/Server Suite
2.0 - мощное, хотя в чем-то грубоватое решение, которое
требует значительных вложений в программирование библиотек DLL
на языке Паскаль и конструирование страниц Web вручную.
Однако, несмотря на то что этому подходу не хватает
простоты и элегантности, присущих RAD-средствам, он имеет
преимущества благодаря быстродействию и гибкости
развертываемого узла. Теперь в дополнение к интерфейсу CGI в
Delphi встроены средства обеспечения работы как с ISAPI, так и
с NSAPI. Это наряду со способностью Delphi генерировать DLL
предоставляет разработчикам необыкновенно гибкие возможности и
обеспечивает высокую производительность. Прикладные программы
Delphi должны распространяться на платформе Windows-серверов,
обычно Windows NT, и использоваться с Web-сервером основанным
на Windows.
Благодаря лицензионным соглашениям в Delphi теперь входят
два мощных средства, ориентированные на Web: QuickSite фирмы
DeltaPoint - полнофункциональный HTML-редактор и пакет
Internet Solutions Pack компании NetManage - набор элементов
управления ActiveX, хорошо приспособленных для разработки
заказных программ, предназначенных для работы в
интрасетях.
Конструирование узла
Построение испытательного узла Web для этого обзора
предусматривало два различных процесса. Мы начали с создания
страниц HTML и средств управления ими - внешнего интерфейса
пользователя на основе QuickSite. Эти HTML-страницы играют
роль шаблонов и содержат специально вставленные коды (мы
применяли "%S") для идентификации полей данных, которые будут
использоваться позднее. Хотя формирование страниц в QuickSite
выполняется непосредственно, система Delphi не может
генерировать HTML-формы автоматически, запрашивая описания
колонок в вашей базе данных.
Следующий шаг заключался в создании библиотек DLL для
страниц, управляемых данными (при желании одна DLL может
запускать несколько страниц). В процессе работы браузер
фактически открывает не саму HTML-страницу, а библиотеку DLL с
помощью интерфейса ISAPI или NSAPI. Эта DLL считывает типовой
HTML-файл и заполняет предварительно определенные коды
значениями, извлекаемыми в ходе запроса к базе данных, который
выполняется через DLL. Затем она передает полученную
HTML-строку назад, в интерфейс ISAPI, и в конце концов
браузеру пользователя через службу HTTP.
Одно из преимуществ подхода, основанного на применении DLL,
заключается в том, что это позволяет программировать Web-узел
для выполнения почти любых задач. Другое состоит в том, что
собственные 32-разрядные DLL изначально позволяют использовать
многопотоковость Windows NT и управление ресурсами
Web-сервера.
Однако построение таких DLL может отнимать много времени.
И, поскольку для них не требуются визуальные компоненты, вам
не придется воспользоваться возможностями прекрасных
графических оформителей Delphi (помните, что стандартному
браузеру можно пересылать только строки на языке HTML). По
большей части разработка прикладных программ для Web
воспринимается как шаг назад к временам, когда еще не было
таких средств, как Delphi. Большая часть рабочего времени
уходит на программирование на языке Паскаль, для чего
необходим огромный опыт.
Главное преимущество языка Object Pascal компании Borland
заключается в том, что он позволяет быстро создавать
библиотеку объектов, а это ускоряет дальнейшую разработку. В
качестве примера приведем такой факт: представителю Borland
потребовалось всего несколько часов для создания HTTP-модуля
для этого обзора на языке Паскаль с возможностью компоновки с
вашей DLL. Эта библиотека скрывает реальные HTML-коды от
разработчика, замещая такие функции, как способность
представлять раскрывающиеся списки на странице с запросом к
базе данных. Borland сделает эту библиотеку доступной
бесплатно на своем Web-сервере.
Подключения баз данных
Работа с базами данных обеспечивается благодаря применению
процессора Borland Database Engine (BDE), который должен быть
установлен и настроен на Web-сервере, позволяя осуществлять
доступ ко всем СУБД, совместимым со средой Delphi. В этот
обширный перечень входят IBM DB2 (только 16-разрядная версия),
Informix, Interbase, Microsoft SQL Server, Oracle и Sybase SQL
Server. Можно также использовать источники данных ODBC и
IDAPI, причем процессор BDE способен обслуживать гетерогенные
запросы к базам данных.
Процессор BDE загружается в память при первом обращении
Web-сервера к ISAPI или NSAPI. С этого момента он становится
доступным и управляет подключениями к базам данных. Оставаясь
резидентным до тех пор, пока Web-сервер работает, он
обеспечивает устойчивые подключения к базам данных для
многочисленных пользователей - в отличие от обычных прикладных
программ, основанных на применении интерфейса CGI, которые
подключаются и отключаются от базы данных при каждом запросе.
BDE сводит к минимуму число требуемых подключений к базам
данных и обеспечивает управление подключениями, создавая и
удаляя связи в зависимости от нагрузки.
В пакете Delphi предложено совсем немного вариантов выбора,
когда дело касается составления отчетов в ЛВС. Он выпускается
в комплекте с полнофункциональным пакетом ReportSmith, а также
с программой Quick Reports компании Quick Soft Development для
менее сложных задач по подготовке отчетов. Однако ни одна из
этих программ не подготовлена для применения в среде Web.
Теоретически возможно представление любых данных, которые
можно получить с помощью SQL-запроса, но подготовка сложных
отчетов, таких, как перекрестные таблицы, перекладывается на
плечи программистов с опытом работы на языках SQL и Паскаль.
Соответствие решаемой задаче: Delphi
Client/Server Suite
|
Простота использования |
Функциональные возможности |
Разработка интерфейса |
Приемлемо |
Приемлемо |
Соединение с базами данных |
Хорошо |
Отлично |
Распределение приложений |
N/A |
N/A |
Разработка баз данных |
Хорошо |
Хорошо |
В ходе испытаний нам не пришлось использовать входящий в
комплект поставки Internet Solutions Pack, но он составляет
ценное дополнение к продукту. Средства управления появляются
на закладке Internet панели инструментов и легко интегрируются
в среду Delphi. Можно добавлять Web-браузер в приложение
Delphi простым переносом трех элементов управления (браузер,
раскрывающийся список для введения URL и кнопка) в форму и
вставкой одной строчки программы. Другие элементы управления
NetManage позволяют работать с электронной почтой Internet,
FTP или сетевыми конференциями.
Как средство разработки для ЛВС система Delphi за короткое
время прошла большой путь благодаря своей 32-разрядной
объектно-ориентированной среде разработки, языку Паскаль с
богатыми возможностями, интуитивно понятной интегрированной
среде разработки IDE, наличию элементов управления ActiveX
(например, OLE) и настоящему компилятору. В среде Web, где
быстродействие и время отклика имеют важнейшее значение,
использование компилируемых DLL фирмы Delphi и поддержка
интерфейсов ISAPI/NSAPI, возможно, и создают некоторые
неудобства в работе, однако это сочетание трудно
превзойти.
Delphi Client/Server Suite 2.0 Цена, рекомендуемая
изготовителем: 1999,95 долл. Borland International Inc.,
Scotts Valley, CA; 800-932-9994, 408-431-1000; fax
408-431-4122; http://www.borland.com/ В
Москве: тел. 366-4298, факс 366-4637
Spider Technologies Inc. NetDynamics
Стивен У. Плейн
В то время как многие системы разработки для Web - по сути
частичные решения, собранные на скорую руку из средств для
ЛВС, пакет NetDynamics фирмы Spider Technologies представляет
собой законченную специализированную систему, основанную на
стандартах Web в точном соответствии с ее HTML-документацией.
В качестве языка разработки и платформы для приложений со
стороны сервера в пакете NetDynamics используется язык Java.
На сегодня это одна из наиболее значительных реализаций Java.
В пакете есть также встроенные средства работы с
распределенными прикладными системами, "мастера" HTML,
механизмы связи с базами данных и прекрасные средства
управления состоянием. В целом это одно из наиболее
универсальных и мощных решений для профессионального
программирования в среде Web.
Инструменты и сервер
NetDynamics состоит из NetDynamics Studio, среды разработки
ГИП и сервера приложений NetDynamics. В пакете NetDynamics
Studio проект представлен в виде дерева, ветви которого
соответствуют шаблонам страниц - DataSources (источники
данных), DataObjects (объекты данных) и SecurityObjects
(средства обеспечения безопасности). По мере добавления
элементов к проекту "мастера" помогают настраивать параметры,
а затем автоматически генерируют текст программы на языке
Java. С этого момента вы можете настраивать свойства элементов
проекта с помощью окна Inspector (инспектор) и добавлять любой
фрагмент на языке Java к стандартным и определяемым
пользователями откликам на события. В отличие от многих других
изделий сервер приложений представляет собой не просто
интерфейс между Web и серверами баз данных. Сервер приложений
NetDynamics - это самостоятельная устойчивая система, которая
обеспечивает расширяемую архитектуру для управления доступом к
базам данных, выравнивания нагрузки и управления сеансами. В
нее входит ряд компонентов: несколько серверов приложений и
серверов данных, отдельные модули посредников запросов для
обработки обращений к программе и базам данных, Session
Monitor (Монитор сеанса) и System Monitor (Системный монитор).
Каждый процесс сервера приложений имеет свою собственную
виртуальную Java-машину для выполнения вашей программы, тогда
как сервер данных отвечает за подключение к базе данных.
Посредники запросов регулируют трафик прикладной программы и
распределяют его среди разнообразных служб управления данными
и программой.
Сервер приложений NetDynamics обычно располагается на той
же машине, работающей в среде Windows NT, Windows 95 или UNIX,
что и Web-сервер, но отдельные службы управления программами и
данными могут находиться на нескольких машинах. Эти компоненты
взаимодействуют по протоколу TCP/IP. В рамках отдельного
процесса системного монитора, выполняемого на каждой машине,
можно автоматически перезапускать процессы или даже машины
целиком. NetDynamics работает с CGI, NSAPI и ISAPI. Возможно
применение любого Web-сервера, совместимого с CGI, но варианты
настройки для серверов Netscape и Microsoft документированы
лучше, чем другие. Хотя сервер NetDynamics изначально
совместим с Informix, Oracle и Sybase, в Studio должны
использоваться 32-разрядные ODBC-драйверы для подключения к
ним. Один из наиболее интересных аспектов архитектуры
NetDynamics заключается способности "разделять" подключения к
базам данных. Устойчивые соединения могут обслуживать сразу
несколько пользователей, чтобы избежать падения
производительности при открытии и закрытии канала связи для
каждого запроса.
Функции обеспечения безопасности пакета NetDynamics так же
сложны, как и в любом другом из испытанных нами изделий, и
должны справляться с большинством реальных жизненных
требований. В дополнение к аутентификации серверов Web и баз
данных в NetDynamics имеются средства навигации на уровне
страниц и отображение полномочий доступа к базе данных в виде
карты. С помощью модуля обеспечения безопасности пакета
NetDynamics можно присоединять полномочия на чтение, запись
или добавление либо устанавливать уровни допуска для групп
пользователей, например User (пользователь) или Admin
(администратор). Можно также использовать таблицу с данными о
безопасности для отображения внешних имен пользователей и
паролей на аналоги, хранящиеся на сервере базы данных.
Поступая таким образом, удается избежать передачи этой
информации по Web и даже скрыть реальную регистрационную
информацию, используемую для входа в базу данных, от конечного
пользователя. Наконец, можно управлять потоком прикладной
программы Web, присваивая свойства Previous Page
(предшествующая страница) любому шаблону страницы и определяя
конкретные страницы как начальные. Преимущество такого подхода
заключается в том, что он позволяет программным путем
контролировать, в каком месте пользователь входит в вашу
прикладную программу.
NetDynamics также прекрасно управляет информацией о сеансе.
Когда пользователь загружает первую страницу прикладной
программы, сервер создает объект-сеанс. Компонент Session
Manager на сервере приложений обслуживает информацию о сеансах
и состоянии системы для каждого пользователя до тех пор, пока
не происходит отключение по истечении времени, определенного
разработчиком, или не будет выполнена команда Exit Application
(завершить программу). Кроме того, можно создавать постоянные
объекты, которые управляют состоянием в течение сеанса.
Идентификатор сеанса, создаваемый с помощью IP-адреса клиента
и значения, генерируемого сервером, шифруется и встраивается в
виде скрытого поля на каждую страницу HTML, пересылаемую
пользователю. Если пользователь затем инициализирует форму или
"горячую" связь, этот идентификатор отсылается на сервер в
адрес URL, активизируя соответствующий сеанс. Данный
идентификатор изменяется при переходе от одной страницы к
другой, поэтому сервер всегда знает, в каком месте прикладной
программы работает пользователь и куда ему следует позволить
двигаться далее. Модуль Session Manager также управляет
указателями (курсорами) базы данных для каждого сеанса,
поэтому нет необходимости беспокоиться о непредсказуемом
порядке извлечения данных.
Легко преодолевая испытания
Наша программа испытаний была разработана будто специально
для NetDynamics. "Мастера" Studio быстро помогли нам
сформировать наши страницы и объекты управления данными,
такие, как запросы. "Мастера" шаблонов страниц показали, что
они весьма хорошо выполняют работу по созданию приложений баз
данных. "Мастер" DataObject руководил нами на протяжении всего
процесса создания запросов: в нем предусматривались этапы для
определения вычисляемых полей, создания объединений,
генерирования предложений Where и определения групп. В
конечном итоге SQL-предложение можно было модифицировать
вручную, но для конструирования запросов не требовалось знать
язык SQL.
Соответствие решаемой
задаче: NetDynamics
|
Простота использования |
Функциональные возможности |
Разработка интерфейса |
Отлично |
Отлично |
Соединение с базами данных |
Отлично |
Хорошо |
Распределение приложений |
Отлично |
Хорошо |
Разработка баз данных |
Хорошо |
Хорошо |
Мы легко добавили такие элементы интерфейса пользователя,
как метки, поля, кнопки и контрольные флажки, и изменили их
свойства с помощью диалогового окна "property/event"
("свойство/событие"), вызываемого из окна Inspector. В
дополнение к стандартным событиям, создаваемым для каждого
объекта, мы сами добавили несколько событий для нашей
прикладной программы. Когда мы вводили название нового события
в окне инспектора, пустой метод с тем же самым именем
автоматически добавлялся в класс Java для текущей страницы.
Модуль Studio, имеющий в своем составе встроенный редактор
текста программ, позволяет запускать предпочитаемые вами
браузер, HTML-редактор и текстовый редактор непосредственно из
рабочей среды. Подобно большинству других описываемых здесь
программных продуктов, NetDynamics не содержит каких-либо
специализированных средств для работы с отчетами, хотя мы
обнаружили, что "мастера" DataObject достаточно для выполнения
основных задач по формированию отчетов.
Пакет NetDynamics надежен сегодня и очевидно имеет хорошие
перспективы. Наращиваемая архитектура и прекрасные возможности
управления состоянием и сеансами делают его идеальным
вариантом выбора для разработки мощных прикладных программ
Web.
NetDynamics 2.0 Цена, рекомендуемая изготовителем:
1295 долл. Spider Technologies Inc., Menlo Park, CA;
415-462-7600; fax, 415-617-5920; http://www.w3spider.com/
ParcPlace-Digitalk Inc. VisualWave
Габриель Ганьон
Пакет VisualWave 1.0a фирмы ParcPlace-Digitalk - это
высококлассная платформонезависимая среда разработки на языке
Smalltalk, основанная на одном из основных промышленных
диалектов и средств разработки Smalltalk - VisualWorks этой же
фирмы. В настоящее время существуют версии VisualWave для
Digital UNIX, Digital NT, HP/UX, IBM AIX, Microsoft Windows
3.x, Windows 95, Windows NT, Sun Solaris и SunOS. (С другими
операционными системами, упомянутыми в документации к
VisualWave, такими, как Mac OS и OS/2, ко времени написания
этого материала VisualWorks не работал.) Архитектура
VisualWorks позволяет разрабатывать прикладную программу на
одной платформе и переносить ее на другую без изменений.
Надмножество VisualWorks
Пакет VisualWave - это дополняющая VisualWorks
инфраструктура классов и инструментальных средств,
предназначенная для трансляции приложений на языке VisualWorks
в программы для Web. Каждое окно прикладной программы пакет
преобразует в отдельную HTML-форму, отображая его детали в
эквивалентные конструкции на языке HTML, а затем получающийся
HTML-текст передается непосредственно браузеру. Одно из
преимуществ такого подхода заключается в том, что существующие
VisualWorks-приложения можно переносить в Web, лишь
незначительно изменив их, причем вы можете использовать
богатый набор инструментов VisualWorks для создания новых
мощных программ Web. В среде разработки VisualWorks имеются
редакторы изображений и меню, инструмент Canvas (холст) и
палитра деталей (widgets) для оформления ГИП, несколько
браузеров и редакторов Smalltalk, полнофункциональный отладчик
и средства для комплектования исполнимых модулей.
Дополнительный пакет Database Connect (495 долл. за драйвер)
требуется для подключения к СУБД Sybase, Oracle или IBM DB2
(следующая редакция также будет работать с источниками данных
ODBC). Отдельно можно приобрести средства коллективной
разработки и контроля версий.
В дополнение к основному набору инструментов VisualWorks
расширение VisualWave содержит консоль сервера Web, редактор
HTML, редактор "горячих" зон для формирования навигационных
карт и программные блоки для встраивания мини-приложений на
языке Java. Кроме того, в VisualWave входит персональный
HTTP-сервер, который работает в рамках образа Smalltalk. Его
можно применять для тестирования прикладных программ.
Поскольку в языке Smalltalk используется динамическое
связывание, можно разрабатывать, испытывать, отлаживать и
модифицировать работающие программы без необходимости
останавливать сервер. Это существенно экономит время,
поскольку генерирование интерфейса, подходящего для
разнообразных браузеров, в лучшем случае представляет собой
процесс проб и ошибок. Предполагая, что работа идет в
многозадачной операционной системе, можно разрабатывать
интерфейс в одном сеансе и в то же самое время наблюдать за
результатами своего творчества на нескольких браузерах Web.
Хотя во многих случаях персональный сервер HTML устраняет
необходимость в коммерческом сервере Web, у него есть ряд
ограничений. Он способен работать только с элементами, которые
существуют в образах Smalltalk, поэтому не может обслуживать
документы из файловой системы в ответ на запрос браузера. У
него нет также функций, обеспечивающих безопасность. Для
создания надежных прикладных программ предпочтительнее
использовать коммерческий сервер Web, но, к сожалению,
средства, обеспечивающие в этом случае работу прикладных
программ VisualWave, продаются отдельно.
Потери при переносе
Недостаток переноса прикладных программ VisualWave в среду
Web состоит в том, что при трансляции происходят большие
потери. Функции форматирования HTML намного скуднее, чем в
VisualWave, так что этот инструментарий обещает больше, чем
может сделать. Некоторые элементы отсутствуют в HTML, однако
они могут быть представлены как навигационные карты. Например,
строки меню размещаются по вертикали и вдоль края окна в
полностью раскрытом формате. Но другие элементы,
преобразование которых невозможно, такие, как ячейки групп,
игнорируются. Ряд элементов оформления из палитры в HTML
отсутствуют, в том числе комбинированные окна, наборы данных и
ползунковые регуляторы. Нет инструментов для выравнивания и
тонкой настройки их положения на экране. Это досадно, а кроме
того, приводит к дополнительным затратам труда на определение
того, что может и его не может выполнить разработчик.
Фирма ParcPlace сделала скрытыми некоторые функциональные
возможности, главным образом средства для работы с базами
данных, удалив элементы из меню и инструментальных панелей, но
это было сделано бессистемно, в предположении, что на продукт
будет большой спрос на рынке (классы по-прежнему остаются в
виде образов, и в документации все еще содержатся сведения об
этих элементах). Исключение таких средств, как Data Modeler
(разработчик модели данных), имеет смысл в том отношении, что
он создает наборы данных, с которыми нельзя работать (в
формате HTML), однако такие его функциональные возможности,
как способность представить схему базы данных, следовало бы
сохранить. В итоге реализация VisualWave выглядит довольно
грубой - печальный факт, поскольку это действительно очень
мощный и наделенный большими возможностями инструмент.
Познайте свой Smalltalk
Другая проблема, связанная с этим продуктом, заключается в
его позиции на рынке. Судя по документации, можно сделать
вывод, что целевой сегмент рынка составляют опытные
пользователи Web, незнакомые или мало знакомые с языком
Smalltalk. В действительности рыночные ориентиры следовало бы
нацелить на программистов, работающих на языке Smalltalk и
имеющих малый опыт работы с Web. Язык HTML относительно прост,
и все HTML-тексты для самых полезных прикладных программ можно
скрыть от разработчика. С другой стороны, работы со средой
программирования на Smalltalk избежать невозможно. Для
создания даже простой прикладной программы из учебного
руководства требуется составить специальную программу на языке
Smalltalk, а чтобы использовать мощные функции VisualWorks, в
частности повторное употребление фрагментов программ и
способность отделять интерфейс от компонентов области и
программы, вы должны изучить структуру модель-вид-контроллер
(model-view-controller, MVC) прикладной программы, на которой
основан этот язык.
Соответствие решаемой
задаче: VisualWave
|
Простота использования |
Функциональные возможности |
Разработка интерфейса |
Отлично |
Хорошо |
Соединение с базами данных |
Хорошо |
Хорошо |
Распределение приложений |
Отлично |
Хорошо |
Разработка баз данных |
Хорошо |
Приемлемо |
Парадоксально, но предполагалось, что такая структура
прикладных программ VisualWorks упростит разработку - и это
действительно так, если сравнивать с началом эпохи
программирования на языке Smalltalk. Но для того, чтобы
применить ее, разработчик вынужден разобраться в сложной
концептуальной модели и овладеть MVC-терминологией "адаптеров
аспектов", "моделей значений", пар "вид-контроллер" и других
трудных для понимания конструкций. Учебное руководство по
VisualWorks героически пытается донести этот громоздкий
материал до новичка и вполне преуспевает в этом, но далее
приходится пускаться в самостоятельное плавание. Бесстрашный
новый приверженец объектно-ориентированного программирования
захочет одолеть это препятствие, но других оно может
обескуражить.
Возможно, более мощной среды разработки, чем VisualWave, не
найти, но ее сложность и стоимость достаточны для того, чтобы
от нее отвернулись те разработчики, которые могут найти более
простые альтернативы для прикладных программ баз данных
Web.
VisualWave 1.0a Цена, рекомендуемая изготовителем:
4995 долл.; модуль Database Connect 495
долл. ParcPlace-Digitalk Inc., Sunnyvale, CA.;
800-759-7272, 408-481-9090; fax, 408-481-9095; http://www.parcplace.com/
Allen Systems Group Inc. WebGalaxy Information Edition
Ричард В. Дрейган
Самый нестандартный инструмент в этом обзоре - пакет
WebGalaxy 1.0 Information Edition фирмы Allen Systems Group -
разработан специально для того, чтобы позволить
непрограммистам создавать интерактивные программы Web. Его
мощные функции не слишком годятся для программирования
традиционных приложений баз данных, а отладка и обслуживание,
как мы установили, представляют трудности для пользователей.
В то же время некоторые привлекательные особенности
WebGalaxy вполне могут удовлетворить потребности разработчиков
для среды Web. По сути WebGalaxy - это основанная на языке
Java система, берущая начало от системы разработки оперативных
справочников. Столь необычные истоки помогают объяснить как ее
сильные стороны, так и недостатки.
Нетрадиционный инструмент
Вместо процедур и объектов для представления логики
программы в WebGalaxy применяются деревья принятия решений.
Программирование заключается в графическом добавлении узлов к
этим деревьям для построения карт знаний (knowledge maps). В
данной модели не применяются многие соглашения как
процедурного, так и объектно-ориентированного
программирования. Например, можно создавать поддерево для
имитации функции, но нельзя передавать ему аргументы. Нет
здесь и ничего напоминающего объекты, классы или наследование.
И в то время, как многие другие инструментальные средства
позволяют формировать свои собственные компоненты и добавлять
их в палитру доступных объектов, WebGalaxy ограничивает вас
примерно дюжиной основных типов узлов. Все это идет вразрез с
современным направлением развития расширяемых и основанных на
применении компонентов систем RAD как в среде Web, так и в
других областях.
Ход выполнения программы расположением узлов определяется.
Узел Question Node, например, позволяет ввести значение поля и
выбрать направление разветвления в зависимости от введенного
значения. Action Node выводит на экран текст или иные данные.
В этой версии WebGalaxy нет функции работы с отчетами. Для
того чтобы создать отчет из таблицы, нам пришлось составлять
HTML-предложения вручную. К достоинствам пакета следует
отнести простоту вставки GIF-, звуковых или видеофайлов. Кроме
того, мультимедиа-объекты можно привязывать к узлам Help
Nodes, чтобы помочь пользователям в навигации по Web-связям.
Подключение к базам данных осуществляется посредством узлов
ODBC Query Nodes, в которых вы создаете пользовательские
запросы на выборку или выполнение действий путем отбора таблиц
и полей. К сожалению, SQL-предложения для объединения таблиц
приходится формировать вручную. Как только запрос определен,
его данные становятся доступны остальной части вашей
программы. Наконец, узлы Conclusion Nodes предоставляют
сводную информацию для пользователей и прерывают каждую ветвь
вашего дерева карты знаний.
В каждом типе узлов, за исключением тех, которые не могут
быть представлены визуально, применяются HTML-шаблоны,
действующие как контейнеры для мини-программ WebGalaxy на
языке Java. В пакете WebGalaxy обеспечивается полный контроль
над HTML-шаблонами, с помощью которых отображается каждый шаг
программы. По требованию пользователя можно изменять
конфигурацию этих шаблонов, добавлять графические изображения
и многократно включать их в разные проекты. В данном пакете
нет редактора HTML - предполагается, что будет применяться
программа стороннего производителя. Прикладные программы
WebGalaxy представляются пользователю в виде HTML-страниц, на
которых размещены Java-утилиты. Следовательно, для них
требуется браузер, способный понимать язык Java.
Наш испытательный сценарий явно не соответствовал сильным
сторонам WebGalaxy. Для создания отчетов по базе данных нам
приходилось вручную конструировать SQL-предложения, а также
составлять HTML-программы для динамического генерирования
таблиц. Это может отпугнуть пользователей, не имеющих большого
опыта в программировании.
Нас также огорчила ограниченность средств отладки. Отладка
должна выполняться с помощью расположенного на сервере журнала
трассировки, что почти любому покажется устрашающим.
Обслуживание прикладной программы также составляет проблему.
Вставка нового узла в дерево - рискованный процесс, поскольку
сначала необходимо поместить существующие узлы в монтажный
буфер, добавить новый узел, а затем вставить вслед за ним
старые узлы из буфера. Если вас не смущают эти ограничения, то
в остальном среда разработки в WebGalaxy работает хорошо и
доказала свою стабильность.
Создание и развертывание
Для создания и распространения прикладных программ
WebGalaxy имеются два отдельных модуля. Модуль разработки
можно бесплатно получить на Web-сервере компании. 16-разрядные
прикладные программы запускают локальную копию сервера Web,
позволяя вести разработку приложений на отдельной рабочей
станции. Модуль сервера можно получить в форме 32-разрядной
консольной программы как для Windows NT, так и для
разнообразных вариантов ОС SunSolaris и SunOS.
В WebGalaxy не придумано ничего нового для решения
проблемы, связанной с неструктурированной природой соединений
через Internet. Все связи определяются вашим браузером. Для
того чтобы просматривать страницы Web, которые используют
WebGalaxy, в качестве первого шага рекомендуется загрузить
локальную копию заказных Java-утилит на локальной машине. В
противном случае быстродействие прикладных программ WebGalaxy
будет слишком низким, поскольку каждая форма загружает всякий
раз новую утилиту.
Одна потенциально мощная возможность этого изделия состоит
в способности WebGalaxy передавать системные вызовы на сервере
другим процессам. Хотя подход, при котором логика программы
хранится отдельно от ее пользовательской части и логики
доступа к данным, не соответствует стандартной многозвенной
архитектуре, он позволит использовать существующие прикладные
программы с сервера.
Доказательная аргументация
Альтернативная версия продукта - WebGalaxy Knowledge
Edition (10 тыс. долл. за модуль сервера) - содержит модуль
Case-Base Reasoning (доказательной аргументации) пакета
WebGalaxy. Рассмотрев примеры приложений, имеющихся на
Web-сервере компании, можно сделать вывод, что именно в этом
инструменте, а не в испытанном нами пакете WebGalaxy
Information Edition, который работает с использованием ODBC,
проявляются основные преимущества сильных сторон WebGalaxy.
Прикладные программы, основанные на Knowledge Edition, могут
руководить пользователем при получении ответов на запросы,
сформулированные на естественном языке. Функция доказательной
аргументации - часть наследства WebGalaxy как системы
подготовки оперативных справок.
Соответствие решаемой задаче: WebGalaxy
Information Edition
|
Простота использования |
Функциональные возможности |
Разработка интерфейса |
Хорошо |
Отлично |
Соединение с базами данных |
Хорошо |
Хорошо |
Распределение приложений |
N/A |
N/A |
Разработка баз данных |
Плохо |
Плохо |
Применение подхода "сделай сам" к разработке прикладных
программ для Web в пакете WebGalaxy представляет собой попытку
сделать разработку для Internet и интрасетей доступной для
непрограммистов. Для определенных типов приложений Web эта
стратегия может быть действенной, до тех пор пока отладка и
обслуживание управляемы.
Если ваши потребности соответствуют более традиционным
приложениям баз данных на основе форм, которые предназначены
для работы в Web, то в настоящее время вам определенно следует
поискать что-то иное. Но для построения целого класса
потенциально прибыльных прикладных программ для Internet пакет
WebGalaxy - весьма перспективное изделие.
WebGalaxy 1.0 Information Edition Цена, рекомендуемая
изготовителем: модуль клиента - бесплатно; модуль сервера -
5000 долл. Allen Systems Group Inc., Naples, FL;
800-475-7171, 941-435-2200; fax, 941-263-3692;
webgalaxy.net.
NeXT Software Inc. WebObjects Enterprise
Джошуа Кериевски
В пакете WebObjects Enterprise 2.0 компания NeXT Software
реализует мощное решение для Web, основанное на применении
собственных проверенных временем объектно-ориентированных
структур. В комплекте с объектами, структурами, средствами
обеспечения транзакций, выравнивания нагрузки, устойчивости к
сбоям, распределенных вычислений, серверами баз данных,
соответствующими промышленным стандартам, и мощным
объектно-ориентированным языком Objective-C система WebObjects
удовлетворяет требованиям, предъявляемым к среде разработки
программ на промышленном уровне. Но в начальный период
применения этого пакета будьте готовы столкнуться с
трудностями в его освоении, степень которых будет зависеть от
вашего предшествующего опыта работы с
объектно-ориентированными средами.
WebObjects, совместимый с любыми браузерами и серверами,
выполняется в операционных средах HP/UX, NextStep, Solaris и
Windows NT. Он работает с интерфейсами CGI, NSAPI и ISAPI и
может обмениваться информацией с утилитами на языке Java.
Прикладные программы WebObjects взаимодействуют с
Web-серверами посредством модуля Web Adapter. Получив запрос
от сервера Web (который может быть локальным или удаленным),
адаптер реагирует, перенаправляя запрос программе WebObjects.
Приложение WebObjects, получившее запрос, обычно обрабатывает
HTML-документы, содержащие коды <WEBOBJECT...>, которые
подобны тегам в утилитах Java, но распознаются и заменяются
программой WebObjects прежде, чем будут переданы через
Web-сервер браузеру. Для выравнивания нагрузки на локальном
или удаленном сервере можно сделать несколько копий прикладных
программ WebObjects. Продукт поставляется более чем 20
классами для обработки HTML и с 20 повторно используемыми
объектами WebObjects. Можно получить другие классы и объекты с
Web-сервера компании NeXT и от независимых поставщиков. Если
вы собираетесь добавить функции редактирования таблиц к своим
Web-страницам, то наверняка получите удовольствие, используя
объект CRUD (Create, Read, Update and Delete - Создание,
Чтение, Модификация и Удаление) WebObjects.
Также относительно просто вы можете создавать собственные
объекты WebObjects. Модуль WebObjects Builder - это
графический инструмент, который позволяет строить интерфейс
пользователя WebObjects (с помощью HTML) и по особому заказу
составлять фрагменты программ, применяя либо язык сценариев
WebScript, либо Objective-C. Несложный язык программирования
WebScript применяется для обмена информацией со структурами и
для управления другими объектами WebObjects. В следующую
версию компания NeXT планирует ввести средства работы с
языками JavaScript и VBScript.
Построение модели
Модуль Enterprise Objects Modeler (EOModeler) формирует
объектную модель и связывает между собой объекты Enterprise
Objects и свойства с таблицами и атрибутами модели реляционной
базы данных. Модуль EOModeler, также являющийся прикладной
программой WebObjects, считывает словари данных с серверов
СУБД Informix, Microsoft, Oracle, Quickbase и Sybase
(сторонние поставщики предлагают средства для работы с DB2 и
Interbase) и позволяет определять отображения между вашей
базой данных и объектами Enterprise Objects. Объектная модель,
которая создается с помощью EOModeler, затем используется
структурой Enterprise Objects Framework в вашей прикладной
программе WebObjects.
При таком подходе трансляция реляционных данных в
объектно-ориентированную форму осуществляется на ходу без
вашего участия, а синхронизацию Enterprise Objects с
соответствующими строками базы данных можно поддерживать в
течение всего исполнения программы.
Возможно, важнейшей частью WebObjects является модуль
Enterprise Objects Framework (EOF). Он используется для
манипуляций с данными по мере их перемещения между базой
данных, Enterprise Objects и HTML-интерфейсом в прикладной
программе WebObjects. Такая инфраструктура (framework)
обеспечивает удобный уровень абстракции для деловой логики. В
результате взаимодействия вашей программы с инфраструктурой
интерфейс приложения или внутренней базы данных может
изменяться без необходимости изменения деловой логики.
EOF необязателен для построения прикладных программ
WebObjects. Версия WebObjects Pro поставляется без EOF. Вместо
этого в WebObjects Pro используется комплект SQLKit, который
позволяет связываться непосредственно с сервером базы данных.
Средства обработки транзакций - составная часть EOF со
сложными механизмами обслуживания транзакций, применяемыми как
к функциям базы данных, так и к деловой логике. Получив
информацию с сервера баз данных, можно использовать канал
EODatabaseChannel, посредством которого EOF автоматически
запускает и завершает транзакции. Еще больший контроль над
этими транзакциями можно получить, используя ДЕЛЕГАТОВ
(delegates), которые играют роль диспетчеров транзакций и
решают, отклонить, одобрить или отменить конкретную
транзакцию, на основе заложенной в программе логики. Кроме
того, при необходимости EOF обслуживает стек действий, для
которых можно выполнить откат.
WebObjects поставляется с API управления состоянием и
позволяет хранить информацию о состоянии в прикладных
программах WebObjects или на HTML-страницах. Вы можете также
использовать собственный механизм сохранения (например, для
того чтобы применять небольшие хранилища данных Netscape). Для
прикладных программ информация о состоянии хранится в объекте
NSDictionary. Для страниц в приложении формируется объект
NSData, ASCII-представление которого помещается в скрытое поле
HTML-документа. Идентификатор stateID генерируется прикладными
программами WebObjects в процессе обработки запроса. Эти
идентификаторы имеют формат
applicationInstance.sessionIdentifier.key.extension
(экземплярПриложения.идентификаторСеанса.ключ.расшире- ние).
Идентификатор sessionIdentifier однозначно описывает каждый
пользовательский сеанс, key - это случайное число, а extention
увеличивается с каждой транзакцией, в результате чего URL для
каждой транзакции будет уникальным. Можно реализовать
пользовательские механизмы сохранения, если переписать
несколько методов в одном из объектов WOApplication.
Соответствие решаемой
задаче: WebObjects Enterprise
|
Простота использования |
Функциональные возможности |
Разработка интерфейса |
Хорошо |
Хорошо |
Соединение с базами данных |
Отлично |
Отлично |
Распределение приложений |
Отлично |
Отлично |
Разработка баз данных |
Отлично |
Отлично |
WebObjects обеспечивает распределенные объектные вычисления
с помощью программного обеспечения D'OLE фирмы NeXT. Программа
D'OLE - это главный интеллектуальный механизм, позволяющий
объектам обмениваться информацией по всему предприятию. D'OLE
дает возможность клиентам Objective-C связываться с серверами
OLE-автоматизации, а серверам Objective-C - с клиентами
OLE-автоматизации. Это означает, что значения из электронной
таблицы Excel могут появиться на странице HTML, а информацию
из HTML-формы можно передать в прикладную программу Visual
Basic или Delphi. В программе D'OLE реализованы многие
функции, указанные в CORBA. Она поставляется в комплекте с
посредником объектных запросов (Object Request Broker, ORB)
фирмы NeXT - NextORB. Этот модуль обеспечивает обмен
информацией между объектами NeXT и компонентами OLE/COM и
скоро будет обеспечивать работу с протоколом Internet
Inter-ORB (IIOP), позволяющим объектам NeXT связываться с ORB
других поставщиков, совместимыми со стандартом CORBA 2.0.
В целом WebObjects - весьма впечатляющий, хорошо
проработанный продукт. Придется приложить немало усилий, чтобы
разобраться в нем, прежде чем вы сможете что-то построить, но,
как только теория будет усвоена, возможности WebObjects могут
оказаться весьма удобными. Пакет WebObjects имеет довольно
открытую архитектуру, которая становится все более открытой и
пригодной для любого большого или сложного узла Web.
WebObjects Enterprise 2.0 Цена, рекомендуемая
изготовителем: лицензия разработчика 4995 долл.; лицензия на
распространение 24 995 долл. NeXT Software Inc., Redwood
City, CA; 800-879-6398, 415-366-0900; fax, 415-780-3929; http://www.next.com/
Управляемые данными прикладные программы Web
Internet - это в некотором роде лишь другая платформа для
среды клиент-сервер. С другой стороны, она представляет
собой принципиально иную область, для которой требуются
совершенно новые решения. ________ _______
| | | | ____
| Сервер | Сервер API | ПК |
| базы | <---> Прикладная <-----------> Инструмен- <--> СЕТЬ <--->|____|
| данных | программа | Web- | тальные Клиент
| 1) | 2) | сервер| средства 4)
|________| | 3) |
|_______|
____ ____ |
| ПК |--------------->| ПК |-->
|____| |____| Инструментальные средства.
Создание страниц. В проектировании интерфейсов для Web
В большинстве организаций делается гигантский шаг назад. Многие
подготовка содержимого инструментальные средства вынуждают
Web и программирование вас вручную программировать экраны на
для среды клиент-сервер языке HTML, и лишь в некоторых из них
представляют собой возможна генерация HTML с помощью
отдельные направления. "оформителей" экранов или существующих
Проверьте, смогут ли форм. Хороший инструмент для Web
непрограммисты с помощью должен также иметь добротный язык
вашего инструментария программирования, заготовки основных
создавать и обслуживать компонентов и мощные средства отладки.
содержимое Web.
1) SQL СУБД никогда не строились в расчете на асинхронный
протокол HTTP, применяемый на Web-серверах. СУБД
обменивается информацией с вашей прикладной программой
посредством ODBC или собственных драйверов. Со стороны СУБД
деятельность Web выглядит как набор стандартных транзакций.
2) Web-приложение часто размещается на той же системе,
что и Web-сервер. Оно управляет запросами и состоянием,
генерирует HTML или другие элементы интерфейса. Поскольку
нагрузка на Web-серверы заведомо непредсказуема,
инструментальное средство должно "экранировать" сервер базы
данных от задач, связанных с управлением соединениями.
3) Ваша прикладная программа обменивается информацией с
Web-сервером через интерфейсы CGI, NSAPI фирмы Netscape или
ISAPI корпорации Microsoft. Запатентованные API могут
обеспечивать лучшую производительность, но они не
ориентированны на соединения с базами данных.
4) Браузер выступает в роли классического маломощного
клиента и обеспечивает преимущества общего интерфейса на
многих платформах. Недостаток заключается в том, что
интерфейс вашей прикладной программы должен быть представлен
в относительно простых терминах HTML.
СУБД для ПК: решения меньшего масштаба
Рик Добсон
Небольшим фирмам, размещающим свои собственные узлы Web,
или разработчикам интрасетей, создающим прикладные программы
для внутреннего применения, может не понадобиться мощь SQL
СУБД для управления их программами. Ряд СУБД для ПК имеет
требуемые функциональные возможности и мощность, чтобы
надежно выполнять нужную работу при более низкой цене.
Каждый из описанных ниже инструментов реализует некоторые
функции разработки программ для среды Web и предлагается в
качестве дополнительного модуля к основному продукту.
Microsoft Access
В пакете Microsoft Access вопросы разработки для Web
решаются тремя способами. На высшем уровне разработчик может
с помощью сервера Internet Information Server (IIS)
корпорации Microsoft записывать файлы с пользовательскими
SQL- и HTML-программами, а также для Internet Database
Connector (IDC).
Это решение не использует среду разработки Access, а
только ODBC-драйвер и файлы данных пакета Access. В файлах с
расширением IDC указывается источник данных ODBC и
определяется запрос. В других файлах - с расширением HTX -
формируется итоговый набор для вывода на экран удаленным
браузером.
Чтобы привлечь больший круг пользователей, корпорация
Microsoft выпустила дополнение IIS Add-In for Microsoft
Access for Windows 95. Этот продукт автоматизирует процесс
создания IDC- и HTX-файлов, но, как и раньше, допускает их
последующую настройку.
Для разработки динамических страниц Web, которые основаны
на базах данных Access, в пакете Microsoft dbWeb применен
более ценный подход, напоминающий применение "мастеров".
Несмотря на то что dbWeb работает с ISAPI, в нем применяется
IDC.
Другое преимущество заключается в том, что dbWeb может
параллельно соединять и сопоставлять данные Access с данными
из Microsoft Visual FoxPro, Oracle, SQL Server и других
СУБД, которые имеют надежные драйверы ODBC. (Microsoft
Corp., 800-621-7930; http://www.microsoft.com//msaccess)
Microsoft Visual FoxPro
Подход, реализуемый в Microsoft Visual FoxPro 3.0 при
создании динамических страниц Web, подобен применяемому в
dbWeb. Он обеспечивает управляемую "мастерами" среду
разработки без применения IDC. Поскольку этот подход не
зависит от ISAPI, для его работы не требуется Microsoft IIS.
Реализация зависит от трех ключевых компонентов: поискового
модуля WWW Search Page Wizard, сценария Common Gateway
Interface (CGI) и сервера Visual FoxPro Information
Server.
Браузер обменивается информацией с выбранным сценарием
CGI с помощью служб HTTP. В фоновом режиме FoxPro
Information Server непрерывно опрашивает новые экземпляры
сценариев CGI. После обработки SQL-выражений, связанных со
сценарием CGI, сервер Visual FoxPro Information Server
вставляет итоговый набор в документ на языке HTML. Сценарий
CGI выбирает HTML-страницу и передает ее службе HTTP для
пересылки браузеру. (Microsoft Corp., 800-621-7930; http://www.microsoft.com//vfoxpro)
Visual dBASE Professional фирмы Borland
В пакете Visual dBASE Professional компании Borland
International имеется пара инструментов для создания
Web-страниц, управляемых данными. Модуль Table Search
WebExpert обеспечивает простой способ создания динамических
CGI-программ для извлечения данных из таблиц. Благодаря
этому ориентированному на работу с мышью методу разработка
превращается в простое заполнение полей в форме Expert.
Входящий в комплект поставки пакет DeltaPoint WebTools for
Visual dBASE содержит три класса, которые обеспечивают
различные уровни контроля над входными формами и
публикуемыми страницами Web из хорошо знакомой среды
программирования Xbase. Два класса помогают управлять
CGI-сценариями, а третий обеспечивает довольно подробный
контроль над форматированием HTML. Вместе они позволяют
разработчикам управлять формой запроса и отображать итоговый
набор в рамках их привычной среды разработки прикладных
программ.
Этот продукт представляет интерес и потому, что он
работает на серверах Windows 3.x и Windows 95, а не только в
среде Windows NT (изделия Microsoft Access работают
исключительно с Windows NT). Сниженные требования к
аппаратуре делают этот пакет особенно подходящим для
программ, основанных на СУБД для ПК в противоположность
мощным СУБД для серверов. (Borland International Inc.,
800-932-9994; http://www.borland.com/)
R:WEB for Windows фирмы Microrim
Пакет R:WEB компании Microrim построен на базе
собственной СУБД R:BASE 5.5 для обеспечения запросов и
доступа для записи к базам данных R:BASE или ODBC через Web.
В пакете R:WEB нет средств работы с таблицами и рамками,
поэтому его возможности по выводу данных - ниже среднего.
Однако средства графического конструирования форм в R:BASE,
наличие которых сводит необходимость программирования к
минимуму, превращают его в привлекательный подход для
прикладных программ, которые передаются на сервер.
Способность взаимодействовать с другими базами данных с
помощью ODBC-драйверов и собственных средств связи с файлами
dBASE делает его приемлемым вариантом выбора для прикладных
программ, разрабатываемых для других СУБД. Пакет R:BASE
представляет собой особенно надежную СУБД для ПК, которая
обеспечивает работу с реляционной моделью, использует
словарь данных и имеет SQL-интерфейс. (Microrim Inc.,
800-628-6990; http://www.microrim.com/)
Средства разработки фирмы Sybase и Internet
Марк Чилдерз
Отделение Powersoft компании Sybase решило отказаться от
участия в данном обзоре, поскольку ряд запланированных
усовершенствований для Internet в их основных изделиях
PowerBuilder и Optima++ все еще находился на бета-стадии во
время наших тестовых испытаний. Предварительное знакомство с
этими инструментами наводит на мысль, что Powersoft
объединит их в законченный комплект, который будет
ориентирован на разработку систем клиент-сервер для Web в
различных направлениях, используя в то же время сильные
стороны существующих прикладных программ PowerBuilder. Новые
редакции - PowerBuilder, версия 5.1, и Optima++, версия 1.1,
- планируется выпустить в III или IV квартале этого
года.
В пакет PowerBuilder 5.0, поставки которого начались
нынешней весной, уже введена возможность вывода окон
DataWindow или DataStore в формате HTML.
DataWindow в Web
Один из основных способов, которым компания собирается
перенести функции ориентированных на работу с данными систем
клиент-сервер в Internet, состоит в расширении возможностей
браузеров благодаря встраиваемым модулям Netscape Navigator
и средствам управления Microsoft ActiveX. Наибольшее
значение среди них будет иметь PowerBuilder Window Plug-In
(который также будет реализован как элемент управления
ActiveX). Это позволит разработчику PowerBuilder
воспользоваться окном PowerBuilder, которое было разработано
для приложения клиент-сервер в среде ЛВС, и перенесено с
помощью мыши в браузер Web как полноценное функциональное
окно для просмотра и редактирования данных.
Дополнительный управляющий элемент - встраиваемый модуль
DataWindow - позволит браузеру считывать и отображать файл,
генерируемый прикладной программой PowerBuilder или Optima++
в формате отчета Powersoft (PSR). Этот файл наряду с
извлеченными данными содержит информацию о форматировании.
По завершении разработки как PowerBuilder Window, так и
DataWindow можно будет бесплатно загрузить с Web-сервера
PowerSoft.
Недавно приобретенное Powersoft отделение компонентов -
Visual Components Inc. - будет поставлять дополнительные
элементы управления ActiveX, создаваемые для обеспечения
основных функций Internet в существующих прикладных
программах. Элемент управления браузером позволит
разработчику вводить полнофункциональный браузер Web в
программы. Дополнительные элементы управления позволят
внедрять функции FTP или управлять поведением стандартных
браузеров, таких, как Netscape Navigator или Microsoft
Internet Explorer, из вашей программы. Эти элементы можно
применять в прикладных программах PowerBuilder или Optima++
либо в любом инструменте для разработки, совместимом со
стандартом ActiveX.
Optima++
Optima++ - основанное на языке Си++ средство компании
Powersoft для ускоренной разработки ПО (RAD) - скоро сможет
обеспечивать создание утилит на языке Java с помощью тех же
самых средств, которые в настоящее время применяются для
генерирования программ Си++. Вы сможете создавать свои формы
визуально и применять "мастеров" Reference Card
(справочники) для указания возможностей работы с функциями и
событиями. В Optima++ со временем войдет элемент управления
окном DataWindow, который по своим функциональным
возможностям будет соответствовать "родному" окну DataWindow
пакета PowerBuilder.
Серверы приложений
В дополнение к упомянутым выше методам распространения
прикладных программ клиент-сервер для среды Web компания
Powersoft предлагает также разработку распределенного
сервера приложений Web с помощью Optima++ и
PowerBuilder.
При применении распределенного сервера приложений
PowerBuilder страница Web с легкостью может выполнять запрос
на извлечение информации из DataStore (невизуальный элемент
DataWindow), хранящейся на распределенном сервере. Он, в
свою очередь, может передать либо HTML-файл браузеру, либо
PSR-файл для отображения через модуль DataWindow Viewer
Plug-In.
Выходные данные DataWindow или DataStore можно сохранять
в формате HTML-файлов. Это также позволяет выполнять сложные
сценарии и расчеты, которые обычно не реализуются с помощью
HTML. Кроме того, это обеспечивает масштабируемость по мере
роста прикладных программ и в значительной степени упрощает
их распределние. Нет необходимости посылать новый исполнимый
модуль, когда в окне DataWindow создается новая колонка.
Обмен информацией между Web-сервером и сервером приложений
Powersoft реализуется посредством CGI или через собственные
API Web-сервера (NSAPI/ISAPI).
Пакет Optima++ также можно применять для создания
серверов приложений, которые взаимодействуют с Web-сервером
через собственный API. Они создаются в виде EXE- или
DLL-файлов и взаимодействуют непосредственно с сервером Web.
Подобным образом реализован пакет Delphi Client/Server Suite
компании Borland International. Компания Powersoft планирует
ввести в Optima++ возможность создания распределенных
серверов приложений, подобных серверам PowerBuilder.
Все эти варианты выбора предоставляют разработчику
определенную гибкость при реализации приложения
клиент-сервер для Web. Если вы не хотите, чтобы для браузера
пользователя требовался подключаемый модуль, то можете
подготовить распределенное приложение Optima++ или
PowerBuilder, вызываемое через CGI, NSAPI или ISAPI и в
конечном итоге передающее результаты Web-браузеру в формате
HTML. С другой стороны, если важное значение имеют
представление выходных данных, универсальность и возможность
многократного использования, то можно легко создать окно
Window или DataWindow, которое передает результаты модулям
Window Plug-In или DataWindow Viewer.
Многим средствам разработки в прошлом не хватало
гибкости, которую Powersoft рассчитывает обеспечить.
Возможность создавать окна Window и DataWindow для
прикладных программ, ориентированных на ЛВС, и затем
запускать их с вашего Web-браузера с незначительной
модификацией (если она вообще понадобится) заставит многих
менеджеров информационных систем с нетерпением ожидать
выпуска этого продукта компании Powersoft.
Лабораторные испытания. Инструментальные средства для
баз данных Web
Джей Манро
Разработка баз данных для среды Web - новая сфера
производственной деятельности, и, за несколькими отмеченными
исключениями, наши испытания показали, что современные
средства разработки пока еще незрелы. Многие из них
представляют собой приспособленные на скорую руку
традиционные пакеты для архитектуры клиент-сервер с
возможностью подключения к Web - практика, которая отражает
стремительный рост рынка средств для работы с Web.
Тем не менее в нескольких инструментальных пакетах были
предложены эффективные решения специфических проблем
разработки для среды Web, в том числе выбор интерфейса
программирования с помощью скромных ресурсов HTML,
размещение уровня управления состоянием поверх
неструктурированного протокола HTTP и необходимость
управления подключением, связанная с непредсказуемой
нагрузкой от клиентов. Как отмечается в наших обзорах,
вскоре выйдут новейшие версии многих инструментальных
средств, в которых нынешние ограничения будут устранены.
Как проводились испытания
Чтобы провести испытания средств разработки баз данных
для Web, мы приглашали каждого производителя побывать в
течение двух дней в лаборатории PC Magazine Labs в
Нью-Йорке, чтобы совместно с нашими испытателями поработать
над созданием образца прикладной программы Web-базы данных.
Эта тестовая программа выполняет обычные функции приложений,
используемых для торговли по почтовым заказам через Web.
Сценарий испытаний описывает страницу каталога, форму заказа
и несколько отчетов с диаграммами. Оказалось, что с блоком
подготовки отчетов у большинства производителей были
проблемы, поэтому, если продукт не имел специализированного
средства для работы с отчетами, мы опускали этот раздел
испытаний.
Испытательная база данных, лежащая в основе тестовой
программы, состояла из шести таблиц: Products (Изделия),
Customers (Покупатели), Orders (Заказы), Details
(Подробности), Salespersons (Продавцы) и Salestax (Налог с
оборота). Данные мы генерировали с помощью нескольких
программ на Бейсике, которые случайным образом формировали
сведения о покупателях, заказах (с подробной информацией) и
продавцах. Таблица Salestax была построена на основе
правительственной таблицы налогов с оборота, полученной
через Web. В целом данные описывали 10 тыс. заказов, в
каждом из которых было до 5 предметов, для 43 изделий,
распространяемых среди 200 покупателей. Таблица Salespersons
объединялась с таблицей Orders по штатам проживания
покупателей. Задача каталога в испытательном сценарии
состояла в описании простой формы, с помощью которой
покупатели могут запросить через таблицу изделий сведения о
конкретном продукте или диапазоне цен. Мы требовали, чтобы
при нахождении нужного изделия на странице указывалось, есть
ли оно на складе.
Задача создания формы заказа, которую относительно просто
реализовать в традиционной среде клиент-сервер на базе ЛВС,
для ряда производителей оказалась трудной. Для формы заказа
требовалось ввести два пункта: "конечный пользователь/новый
покупатель" и "продавец, обслуживающий существующего
покупателя". В прикладной программе задавались следующие
деловые правила: когда продукт заказан, его складской запас
уменьшается; новые покупатели получают максимальный кредит
100 долл.; покупатели не могут заказывать изделия на сумму,
превышающую предел их кредита. Мы просили всех изготовителей
пополнять запасы изделий на складе, если их количество
снижалось ниже указанного уровня, основанного на значениях,
которые мы приводили в таблице Products.
Физическая локальная сеть, которую мы использовали для
испытаний, представляла собой интрасеть, состоящую из
Web-сервера, сервера базы данных и двух клиентов. Нашими
серверами были системы Micron Electronics P133 Millennia,
оснащенные 32-Мбайт ОЗУ и жесткими дисками емкостью 2 Гбайт
и работающие под управлением Microsoft Windows NT Server
3.51 с Service Pack 3. Сервером базы данных служит Microsoft
SQL Server 6.0. В качестве Web-сервера поставщики могли
выбирать Netscape FastTrack 1.0, Netscape Comminication
Server, WebSite 1.1 фирмы O'Reilly или Microsoft Internet
Information Server (IIS) 1.0. Для простоты настройки
большинство выбрало IIS или WebSite.
Каждая клиентская система представляла собой ПК HP Vectra
XU 5/90C на базе процессора Pentium. Одна из них была
оснащена 32-Мбайт, а другая - 16-Мбайт ОЗУ. Обе работали под
управлением Microsoft Windows 95. Система с 32-Мбайт ОЗУ
использовалась как платформа для разработки прикладной
программы, за исключением тех случаев, когда производитель
предпочитал работать на сервере. Система с 16-Мбайт памятью
использовалась исключительно для доступа к прикладной
программе с помощью браузера.
Сводка характеристик. Инструментальные средства для баз
данных Web
+ Да - Нет
Delphi Client/Server Suite
4D Web SmartServer
HahtSite 1.0
JAM WEB Toolkit 1.0
NetDynamics 2.0
Visual Wave
WebGalaxy 1.0 Informationa Edition
WebObjects Enterprise 2.0
Цена, рекомендуемая изготовителем, долл. |
1999,95 |
1195,00 |
IDE 995,00 долл. на пользователя,
процессор 2495,00 на ЦП |
Бесплатно (требует JAM 7.01 - 2400
долл.) |
1295,00 |
4995,00 модуль Database Connect
495,00 |
5000,00 |
Лицензия разработчика 4995,00 Лицензия
на развертывание 24 995,00 |
Общие характеристики |
Графическая IDE |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
Станд. язык/язык 4-го поколения/истинный
объектно-ориентированный язык |
+ - + |
- + - |
+ - - |
- + - |
+ - + |
+ - + |
+ - - |
+ - + |
Развертывание программ для Web/ЛВС |
+ + |
+ + |
+ - |
+ + |
+ - |
+ + |
+ + |
+ - |
Работа с текстом и графикой для непрограммистов |
+ |
+ |
+ |
+ |
- |
+ |
+ |
+ |
Подключение отдельных модулей или вспомогательных
программ |
+ |
+ |
+ |
- |
+ |
+ |
+ |
+ |
Возможность работы с Java/ActiveX |
- + |
+ - |
+ + |
- - |
+ - |
+ - |
+ - |
+ + |
Java-приложения на сервере/клиенте |
- - |
- - |
- - |
- - |
- + |
- - |
- - |
- - |
Развертывание многозвенных приложений |
- |
- |
- |
+ |
+ |
+ |
- |
+ |
Платформы для серверов приложений |
Macintosh |
- |
+ |
- |
+ |
- |
- |
- |
- |
OS/2 |
- |
- |
- |
+ |
- |
- |
- |
- |
UNIX |
- |
- |
- |
+ |
+ |
+ |
+ |
+ |
Windows NT/Win32s |
+ - |
+ + |
+ - |
+ + |
+ - |
+ + |
+ - |
+ - |
Соединение с базами данных и управление
сеансами |
Работа с CGI/NSAPI/ISAPI |
+ + + |
+ - + |
+ - - |
+ - - |
+ + + |
+ - - |
- - - |
+ + + |
Наличие собственных/ODBC драйверов |
+ + |
- + |
- + |
+ + |
+ + |
+ - |
- + |
+ - |
Программа сохраняет внутреннюю информацию о сеансе
(постранично) |
- |
+ |
+ |
- |
+ |
+ |
+ |
+ |
Программа сохраняет внешнюю информацию о сеансах
(между вхождениями в систему) |
- |
+ |
- |
- |
+ |
+ |
- |
+ |
Нагрузкой от пользователей управляет специальное
промежуточное ПО |
+ |
- |
- |
- |
+ |
+ |
- |
+ |
Жестко заданная последовательность страниц |
+ |
- |
- |
- |
+ |
+ |
- |
+ |
Завершение сеанса по времени |
- |
- |
+ |
N/A |
+ |
+ |
+ |
+ |
Отображение соответствия прав доступа к Web правам
доступа к базе данных |
- |
- |
- |
- |
+ |
+ |
- |
+ |
Разработка прикладных программ |
Наличие "мастеров" для типовых задач разработки |
+ |
- |
+ |
- |
+ |
- |
- |
- |
Наличие встроенного/входящего в комплект редактора
HTML |
- + |
- - |
+ - |
- - |
- - |
+ - |
- - |
+ + |
Генерирование HTML с помощью "оформителя" экрана |
- |
+ |
+ |
+ |
+ |
+ |
- |
+ |
Графический конструктор запросов |
+ |
+ |
+ |
- |
+ |
- |
- |
- |
Автоматическое создание полей из базы данных |
+ |
+ |
- |
+ |
+ |
- |
+ |
+ |
Гетерогенные объединения/модификации |
+ + |
+ + |
- - |
+ + |
+ + |
- - |
- - |
+ + |
Создание запросов, выполняемых в заданное время |
+ |
- |
- |
- |
- |
- |
- |
+ |
Проверка синтаксиса программы на ходу |
+ |
+ |
- |
- |
- |
+ |
- |
- |
Встроенные средства контроля версий |
+ |
- |
- |
- |
- |
- |
- |
- |
Встроенные точки для подключения программ
независимых поставщиков |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
Уровни обеспечения безопасности для разработчиков
|
+ |
+ |
- |
- |
- |
+ |
- |
- |
Развертывание программ с использованием
"мастеров" |
+ |
- |
- |
- |
+ |
- |
- |
- |
Сложные HTML-отчеты |
- |
- |
- |
- |
- |
- |
- |
- |
Отладка |
Возможность испытаний в среде разработки |
+ |
+ |
+ |
+ |
+ |
+ |
- |
- |
Интерактивный отладчик |
+ |
+ |
+ |
+ |
- |
+ |
- |
+ |
Точки прерывания/контрольные точки/контрольные
значения |
+ + + |
+ - - |
+ + + |
+ + + |
- - - |
+ + + |
- - - |
+ + + |
Пошаговое выполнение/трассировка |
+ + |
+ + |
+ + |
+ + |
- - |
+ + |
- + |
+ + |
Дистанционная отладка через Internet |
- |
- |
+ |
- |
- |
+* |
- |
- |
Справочная система и документация |
Оперативная справка/контекстно-чувствительная
справка/полная оперативная документация |
+ + + |
+ - + |
+ + + |
+ + + |
+ + + |
+ - + |
+ + + |
+ - + |
Справочная система на базе Web |
- |
- |
- |
- |
+ |
+ |
- |
+ |
Справки по языку программирования/справки по
синтаксису SQL |
+ + |
+ - |
+ - |
+ - |
+ - |
+ - |
+ + |
+ - |
Техническое сопровождение |
Бесплатное/платное техническое сопровождение |
- + |
- + |
+ + |
+ + |
+ + |
- + |
+ + |
+ + |
Техническое сопровождение по телефону: бесплатный
вызов/номер 900 |
+ + |
- + |
- - |
+ - |
- - |
- - |
+ + |
+ - |
Сопровождение через Web/BBS/электронную почту |
+ - + |
+ - + |
+ - + |
- - + |
+ + + |
+ + + |
+ - + |
+ - + |
Контракты на сопровождение |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
N/A - неприменимо. Эта программа не предусматривает
открытие сеансов. * Только просмотр, доступ на запись не
предоставляется.
Наши авторы: Стивен У. Плейн - внештатный редактор PC
Magazine, Ричард В. Дрейган - программист из лаборатории PC
Magazine. Марк Чилдерз работает старшим техническим
консультантом в Client/Server Solutions - фирме,
специализирующейся на лабораторных испытаниях SQL СУБД и
разработке прикладных систем архитектуры клиент-сервер. Рик
Добсон - президент фирмы, консультирующей по вопросам
использования баз данных и Internet. Габриель Ганьон -
частый автор PC Magazine. Джошуа Кериевски - основатель
Industrial Logic, компании, занимающейся разработкой систем
для Web. Томас Мейс был главным редактором этой статьи, а
Джей Манро - главой проекта.
|