ИНСТРУМЕНТАРИЙ

При создании особо важных динамических Web-приложений потенциал CGI уже не удовлетворяет разработчиков, и они ищут новые средства с большими возможностями

 

К своей цели Дэн Эрманн несется на всех парах. Он разрабатывает крупномасштабное приложение на базе WWW, которое предоставит сотням тысяч пользователей свободный доступ к двадцати серверным базам данных. Но не думайте, что он проводит долгие часы за составлением программ для CGI (Common Gateway Interface  -  общий интерфейс шлюза) на языке Perl или каком-либо другом. Вовсе нет.

 

"Лично для меня CGI скорее мертв, чем жив",  -  констатирует Эрманн. Его компания Kallista (Чикаго, шт. Иллинойс) занята сейчас созданием нескольких Web-узлов по заказу фирмы Travel Technologies Group. Последняя специализируется на оказании услуг в организации крупных торговых выставок и конференций, включая регистрацию их участников. Разработанные Эрманном приложения позволят клиентам получать информацию о предстоящих выставках, подавать заявки на участие в них, заказывать места в гостиницах  -  и все это непосредственно со своего Web-браузера.

 

"Использование CGI в столь масштабном проекте могло бы превратиться в настоящий кошмар",  -  считает Эрманн.

 

И все же этот интерфейс шлюза, несмотря на ряд присущих ему ограничений, списывать со счетов рано. В конце концов он по-прежнему остается основным средством создания динамических страниц в Web. Главное его достоинство  -  способность связывать HTTP- или Web-серверы и клиенты с внешними приложениями и ресурсами, например с базами данных. Но среди таких программистов, как Эрманн, все больше крепнет убеждение, что CGI почти полностью исчерпал свой потенциал и непригоден для разработки крупномасштабных, ориентированных на транзакции Web-приложений особой важности.

 

"Запросы современных, более сложных приложений на базе WWW быстро превосходят возможности CGI",  -  соглашается с ним и Стэн Долберг, директор службы стратегических исследований в области ПО фирмы Forrester Research (Кеймбридж, шт. Массачусетс).

 

В результате складывающейся ситуации многие разработчики начинают искать альтернативные инструментальные средства, которые бы обеспечили более высокую производительность труда по сравнению с ручным составлением исходных текстов для CGI. Некоторые из этих разработчиков, в том числе и Эрманн, переходят на новое поколение средств создания Web-приложений, позволяющих либо полностью отказаться от CGI, либо избавиться от его недостатков с помощью собственного связующего ПО. Другие программисты обращают свои взоры на технологии распределенных объектов. Как бы то ни было, считают наблюдатели, но дни языков Perl и Си как средств составления сценариев CGI для сложных приложений WWW сочтены.

 

Медленно, но неуклонно

 

Что же не устраивает программистов в CGI? Основные проблемы связаны с тем, что этот интерфейс опирается на пакетно-ориентированную технологию, которая не позволяет эффективно использовать серверные ресурсы. При каждом обращении к URL (Uniform Resource Locator  -  универсальный указатель ресурса) вызывается программа CGI, и на сервере запускается новый процесс. Он устанавливает связь с базой данных, из которой извлекаются требуемые записи или другая информация. После этого программа CGI завершается, зачастую даже без сохранения информации о том, выполнилась ли транзакция и были ли ошибки в ее ходе.

 

Это приводит к некоторым сложностям в работе системы. Во-первых, возрастает пользовательский трафик (ведь каждый URL запускает новый процесс), что может снизить общую производительность системы. Во-вторых, в CGI не предусмотрено сохранение так называемой "информации состояния" (state information) об операциях с базой данных и о других выполняемых операциях. Это серьезно затрудняет создание приложений, которые могли бы обслуживать несколько URL-обращений в одном сеансе и обеспечивали бы целостность каждой транзакции.

 

"В языке сценариев CGI отсутствует концепция управления сеансом,  -  отмечает Реми Мэйлан, директор по маркетингу Internet-сервера фирмы SunSoft (Менло-Парк, шт. Калифорния).  -  Интерфейс не позволяет ни производить откат, ни возобновлять, ни прерывать выполнение транзакций".

 

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

 

Эрманн сказал: "Если бы мы захотели обойти это препятствие, нам пришлось бы самостоятельно разрабатывать программы, используя что-то типа заготовок, чтобы запомнить информацию о состоянии".

 

Несовершенство CGI заставляет многих потребителей и производителей обратить внимание на альтернативные средства создания приложений. Одно из них представляет собой набор расширений, выпускаемый корпорацией Open Market (Кеймбридж, шт. Массачусетс) под названием FastCGI. Этот продукт позволяет обойти многие ограничения CGI за счет выполнения процесса интерпретации сценария за рамками Web-сервера и посылки квитанции клиенту, обращающемуся к базе данных из программы CGI. Как и его предшественник CGI, FastCGI поддерживает несколько языков, однако он не только повышает производительность, но и позволяет проводить аутентификацию и проверку полномочий.

 

К сожалению, и этому продукту присущи некоторые недостатки. Так, ему явно не хватает поддержки со стороны производителей инструментальных программ и Web-серверов. Более того, корпорация Microsoft и Netscape Communications поддерживают другую технологию, всячески поощряя создание интерфейсов прикладного программирования, обеспечивающих прямой доступ к Web-серверам. Netscape уже предлагает пользователям Netscape Server API, а Microsoft  -  Internet Server API, значительно повышающие производительность приложений за счет использования услуг Web-сервера и обеспечения многопоточности. Усилия гигантов программного обеспечения не пропали даром: целый ряд разработчиков СУБД и поставщиков баз данных  -  среди них фирма Sybase, корпорация Informix Software и фирма Computer Associates International  -  уже начинают обеспечивать прямую связь своих продуктов с Web-серверами и их интерфейсами прикладного программирования.

 

Правда, и такой подход не свободен от недостатков, поскольку подобные интерфейсы разрабатываются индивидуально под конкретный Web-сервер. Они не в состоянии обеспечить управление ходом сеанса или обработкой транзакций, а процесс их создания весьма трудоемок.

 

Все большую популярность в последнее время приобретают новые средства со встроенным связующим ПО, позволяющие отказаться как от CGI, так и от интерфейсов прикладного программирования для Web-серверов. В числе таких инструментальных программ можно назвать Cold Fusion корпорации Allaire, WebSpeed корпорации Progress Software, IntraBuilder фирмы Borland International и NetDynamics фирмы NetDynamics. Все они содержат не только среду разработки на базе шаблонов, но и собственные серверы приложений, способные оказывать многие услуги по управлению ходом сеанса и обработке транзакций, которых не хватает оригинальному CGI и интерфейсам прикладного программирования для Web-серверов.

 

Скорость в WWW

 

Из перечисленных выше продуктов WebSpeed корпорации Progress Software, например, позволяет разработчикам использовать HTML и JavaScript совместно с собственным языком четвертого поколения. Созданные на его основе приложения также подключаются к Web-серверу посредством CGI или интерфейсов прикладного программирования, однако операции бизнес-логики в них осуществляются на отдельном сервере приложений; Progress назвала его "сервером транзакций" (transaction server). В каждом сеансе он организует так называемый "агент транзакций" (transaction agent), который закрепляется за конкретным пользователем на весь сеанс, независимо от количества обращений к различным URL.

 

Фирма Wilke/Thornton (Даблин, шт. Огайо), выпускающая ПО управления центрами телефонного обслуживания, применила WebSpeed для подключения своих приложений к WWW. Это позволило таким ее клиентам, как Lipton Tea и Frigidaire, получать по сети заказы потребителей, а затем направлять их в свои центры обслуживания и розничным продавцам в конкретном географическом районе.

 

В будущем, как предсказывают аналитики, инструментальные программы, подобные IntraBuilder и WebSpeed, приведут к полному отказу от CGI в пользу интерфейсов объектного управления и связующего ПО, которые получают все большее распространение среди основных производителей Web-серверов.

 

Так, корпорация Netscape недавно объявила о намерении использовать в своих Web-серверах программный брокер запросов к объектам (ORB  -  Object Request Broker) фирмы Visigenic Software (Сан-Матео, шт. Калифорния).

 

Динамический (run-time) клиент этой же фирмы на базе Java должен войти в новую версию Netscape Navigator, которая известна под условным названием Galileo. Подобная интеграция намного расширит потенциал браузеров Navigator при условии их оснащения брокерами запросов и клиентами Visigenic, совместимыми с архитектурой CORBA (Common Object Request Broker Architecture  -  общая архитектура брокера запросов к объектам). Пользователи получат возможность легко поддерживать связь с базами данных и другими унаследованными подсистемами. Последние при этом могут быть инкапсулированы, что обеспечит их соответствие стандартам CORBA. Новые браузеры, кроме того, позволят осуществлять управление транзакциями и обращаться к другим услугам CORBA.

 

Подобные планы вынашивает и корпорация Microsoft. Они связаны с развитием технологии Distributed Component Object Model (модель распределенных составных объектов) и с новыми расширениями, среди которых объектный монитор обработки транзакций Viper. А фирма SunSoft уже начала использовать в своих Web-серверах совместимый с архитектурой CORBA брокер запросов к объектам под названием Joe.

 

Корпорация Progress и ряд других производителей обещают уже в первой половине этого года связать свои инструментальные программы и серверы приложений с Web. Для этого планируется использовать брокеры запросов к объектам и такие CORBA-интерфейсы Internet, как Inter-ORB Protocol. Производители уверены, что после этого начнется эра перехода пользователей CGI на новые средства.

 

Джефф Моуд

 

Достоинства и недостатки технологий, альтернативных CGI

 

Недостатки: Поддерживается лишь несколькими разработчиками Web-серверов, в число которых не входят Microsoft и Netscape.

 

Достоинства: Решает некоторые проблемы производительности, свойственные CGI. Может запускаться на внешних по отношению к Web-серверу устройствах, что повышает устойчивость системы. Способен сохранять информацию состояния. Имеются библиотеки приложения для FastCGI на языках С, С++, Java, Perl и TCL.

 

Интерфейсы прикладного программирования для Web-серверов

 

Недостатки: Интерфейсы прикладного программирования, хотя и публикуются открыто, все же являются собственностью компаний. Microsoft и Netscape до сих пор не пришли к соглашению о едином подобном интерфейсе. Такие программы компонуются непосредственно с серверными программами, поэтому ошибки в них могут привести к зависанию всей системы. Требуются системные программисты высокой квалификации.

 

Достоинства: Такие интерфейсы прикладного программирования, как ISAPI корпорации Microsoft и NSAPI корпорации Netscape, позволяют Web-клиентам непосредственно использовать услуги Web-сервера, что повышает производительность при доступе к внешним базам данных.

 

Инструментарий разработчика на основе шаблонов

 

Недостатки: Во многих подобных продуктах используются фирменные языки запросов четвертого поколения и фирменные языки программирования сценариев.

 

Достоинства: Такие инструментальные программы и средства внедрения, как WebSpeed корпорации Progress Software, Cold Fusion корпорации Allaire и IntraBuilder фирмы Borland International, обходят ограничения CGI за счет использования собственного связующего ПО обработки транзакций и доступа к базам данных. Исходные тексты языков третьего поколения в них заменены на графические парадигмы разработки.

 

Связующее ПО на базе брокеров запросов к объектам

 

Недостатки: Не все брокеры запросов к объектам способны взаимодействовать между собой. В средах Microsoft и Netscape связующее ПО на базе таких брокеров пока отсутствует. Брокеры запросов к объектам все еще не поддерживаются большинством инструментальных программ.

 

Достоинства: Упрощает интеграцию как с нереляционными унаследованными источниками информации, так и с современными реляционными базами данных. Использует управление транзакциями на базе брокеров запросов к объектам и другие подобные услуги.