Если до сих пор вы разрабатывали программы в традиционной среде клиент-сервер, то переход к 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 СУБД? Инструментальные средства, позволяющие развертывать прикладные программы на различных платформах серверов, заслужили дополнительные баллы.
Распределение приложений. Этот показатель оценивает степень, до которой инструмент обеспечивает поуровневое распределение прикладных программ. Можно ли логически разбивать прикладные программы на уровни интерфейса, деловой логики и доступа к данным? Можно ли физически разбить прикладную программу на разделы?
Разработка баз данных. Данный параметр характеризует эффективность инструментария при реконструкции существующих баз данных или разработке новых. Предоставляет ли он графический, объектно-ориентированный интерфейс пользователя, который обеспечивает общее представление об объектах приложения и базы данных? Можно ли работать с высокоуровневыми объектами доступа к данным? Имеютс ли в пакете возможности моделирования данных? Мы также высоко оценивали наличие мощного стандартного языка программирования, расширяемой модели данных и хорошего выбора заготовок программных объектов.
Пакет 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
В то время как многие системы разработки для 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 | ||
---|---|---|
Простота использования | Функциональные возможности | |
Разработка интерфейса | Отлично | Отлично |
Соединение с базами данных | Отлично | Хорошо |
Распределение приложений | Отлично | Хорошо |
Разработка баз данных | Хорошо | Хорошо |
Пакет NetDynamics надежен сегодня и очевидно имеет хорошие перспективы. Наращиваемая архитектура и прекрасные возможности управления состоянием и сеансами делают его идеальным вариантом выбора для разработки мощных прикладных программ Web.
NetDynamics 2.0
Цена, рекомендуемая изготовителем: 1295 долл.
Spider Technologies Inc., Menlo Park, CA; 415-462-7600; fax, 415-617-5920; http://www.w3spider.com.
Пакет 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 позволяет разрабатывать прикладную программу на одной платформе и переносить ее на другую без изменений.
Пакет 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 выглядит довольно грубой - печальный факт, поскольку это действительно очень мощный и наделенный большими возможностями инструмент.
Другая проблема, связанная с этим продуктом, заключается в его позиции на рынке. Судя по документации, можно сделать вывод, что целевой сегмент рынка составляют опытные пользователи 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.
Самый нестандартный инструмент в этом обзоре - пакет 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.
В пакете 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-Мбайт памятью использовалась исключительно для доступа к прикладной программе с помощью браузера.
+ Да - Нет | 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/электронную почту | + - + | + - + | + - + | - - + | + + + | + + + | + - + | + - + |
Контракты на сопровождение | + | + | + | + | + | + | + | + |
Наши авторы: Стивен У. Плейн - внештатный редактор PC Magazine, Ричард В. Дрейган - программист из лаборатории PC Magazine. Марк Чилдерз работает старшим техническим консультантом в Client/Server Solutions - фирме, специализирующейся на лабораторных испытаниях SQL СУБД и разработке прикладных систем архитектуры клиент-сервер. Рик Добсон - президент фирмы, консультирующей по вопросам использования баз данных и Internet. Габриель Ганьон - частый автор PC Magazine. Джошуа Кериевски - основатель Industrial Logic, компании, занимающейся разработкой систем для Web. Томас Мейс был главным редактором этой статьи, а Джей Манро - главой проекта.