Проблем у разработчиков - не счесть
Питер Коффи
Если бы кто-то взялся перечислить технические трудности, с которыми приходится сталкиваться при разработке Web-сервисов, результат был бы весьма настораживающим. В этом списке мы увидели бы примерно те же проблемы, что связаны с любой другой технологией разработки ПО. Особенно пугает, что за последний десяток лет, а то и больше, ситуация существенно не изменилась!
Для превращения Всемирной паутины в открытую платформу для создания приложений программистам нужно совершить прорыв по целому ряду направлений: потребуются средства для скрупулезного описания требований, надежной генерации кодов на основе поддающихся проверке спецификаций, а также для обеспечения быстрого поиска модулей многократного использования, предлагаемых сторонними разработчиками. Web-сервисы при этом вполне могут стать катализатором развития по всем этим направлениям, но возможен и обратный сценарий. Фундаментальные проблемы на пути технического прогресса способны ограничить роль Web-сервисов, превратив их просто в еще одно средство интеграции приложений. В этом случае они наверняка будут окружены дымовой завесой из заявлений производителей ПО, наподобие “основано на стандартах, но еще лучше”.
Если Web-узел организован в виде HTML-страниц либо его страницы динамически создаются с помощью технологий ASP или JSP, разработчику вполне достаточно ограничиться написанием отдельного модуля (в худшем случае - набора модулей с четко определенными взаимозависимостями). Правда, в этом случае, когда с браузера клиента поступает команда “обновить”, ситуация становится сходной с перезагрузкой ПК: разработчик снова получает девственно чистое состояние объекта.
Когда же сайт представляет собой набор Web-сервисов, приходится гораздо больше внимания уделять разделению ресурсов с другими приложениями, стараться избегать необоснованных предположений о системе и предвидеть возникновение проблем, которые должны решаться не отключением сервиса, а постепенным снижением качества обслуживания.
Создание Web-сервисов просто невозможно без их интегрального тестирования в среде разработки. В середине 90-х годов эти среды начали предлагать функции просмотра реальных данных, хранящихся в СУБД. Сейчас нечто подобное требуется создателям Web-сервисов: среда разработки должна обеспечить им “живое” взаимодействие с реальными удаленными ресурсами и их имитациями. Это крайне необходимо для анализа поведения сервиса при возможных сбоях.
Комбинаторный рост числа сценариев, которые приходится просчитывать и проверять, вызывает острую потребность в автоматизации процессов программирования. В результате проекты создания помощников программиста, реализуемые в Массачусетском технологическом институте и других исследовательских центрах, должны покинуть стены лабораторий и влиться в практику работы отрасли.
Разработка Web-сервисов ставит примерно такие же проблемы, что и “решеточные” вычислительные системы - еще одна животрепещущая тема нынешнего времени. Выступая в феврале на глобальном форуме grid-вычислений, который прошел в Торонто (Канада), исследователь Калифорнийского технологического института Пол Мессина (председатель консультативного комитета grid-вычислений) высказал мнение о неминуемости конвергенции таких вычислений с Web-сервисами. “Успех, - заявил он, - будет достигнут тогда, когда между этими направлениями почти не останется различий”.
Что ж, будем надеяться, что их общая судьба пополнит список успешного слияния технологий, а не станет еще одним примером громких обещаний, которые отрасль так и не смогла претворить в жизнь.
Конвергенция может охватить и базы данных
Базы данных - не что иное, как точка пересечения множества различных технологий клиентского доступа к информации. А это делает репозитории естественными кандидатами на роль Web-сервисов.
Разработчики СУБД уже предвидят такую конвергенцию, а некоторые из них даже закладывают в свои продукты функции Web-сервисов первого поколения.
Корпорация Microsoft, например, предложила для своего SQL Server 2000 набор средств для простого и удобного развертывания Web-сервисов. Этот набор включен в бесплатный и полностью поддерживаемый добавочный пакет SQLXML 3.0 для SQL Server 2000 (его можно скачать с сайта www.microsoft.com/sql). Правда, чтобы воспользоваться этим дополнением, на машине должен быть установлен ряд других технологий этой же корпорации, включая SOAP Toolkit 2.0 SP2 и Web-сервер Internet Information Services.
SQLXML обеспечивает передачу данных клиентам, делающим запросы к Web-сервисам, опубликованным на Web-сервере IIS. Простые запросы к БД и хранимые процедуры Transact-SQL можно будет оформлять в качестве сервисов SOAP, и, кроме того, появляется возможность преобразовывать исходящие данные XML перед их пересылкой клиенту. Имеется в пакете и инструментальная программа массовой загрузки данных XML на SQL Server. Работает новый набор инструментария в средах Visual Studio 6 и Visual Studio .Net.
Корпорации Oracle, IBM и фирма Sybase в качестве интерфейсов подключения Web-сервисов к базам данных используют собственные серверы приложений. Все три производителя уже включают в свои СУБД встроенные средства преобразования данных в формат XML, позволяющие, кроме всего прочего, переформатировать XML в нужную схему.
Чтобы превратить обычные XML-данные в Web-сервис, администратору базы данных нужно соответствующим образом упаковать их, а затем опубликовать, воспользовавшись для этого функциями поддержки Web-сервисов, предлагаемыми серверами приложений всех трех производителей. Такой подход не столь прост, как в СУБД Microsoft, оснащенной встроенными функциями Web-сервисов, однако вполне работоспособен.
В DB2 8.1, выпуск которой IBM начинает нынешней осенью, также предусмотрена возможность для показа SQL-клиентам внешних Web-сервисов в виде SQL-таблиц. Таким образом, здесь обеспечивается “прозрачный” интерфейс подключений к источнику данных реального времени (функция, правда, требует наличия WebSphere).
СУБД на базе XML постепенно проникают в Web-сервисы и в качестве технологии доступа. Об этом, в частности, свидетельствует то, что содержимое таких баз данных все чаще сохраняется непосредственно в формате XML.
Фирма Ipedo включила в свою СУБД Ipedo XML Database 3.0 поддержку SOAP-запросов, расширив тем самым список интерфейсов, который раньше включал в себя запросы на основе Java и Microsoft COM.
Система управления базами данных XML под названием NeoCore XMS 2.6 фирмы NeoCore - ее выпуск начался в августе - также предлагает интерфейс подключения данных к Web-сервисам, однако использует для этого технологию REST (Representational State Transfer - передача статуса представления). Основанная на механизме доступа по адресам URL, она не столь популярна у разработчиков Web-сервисов, как SOAP, поэтому NeoCore уже пообещала включить поддержку интерфейса SOAP в очередную версию 2.7 своей СУБД, выпуск которой намечен на IV квартал.
Системы управления контентом и порталы дают фору
Джим Рапоза
Производителям порталов и средств управления контентом о поддержке Web-сервисов размышлять не приходится: подобные функции были присущи их продукции даже в те времена, когда о Web-сервисах никто и слыхом не слыхивал.
В конце концов, порталы представляют собой не что иное, как централизованные Web-интерфейсы, сочетающие в себе различные сервисы извлечения данных из множества внутренних и внешних источников. К тому же порталам всегда была свойственна возможность доставки портлетов (по существу - портальных Web-сервисов) на другие порталы и Web-страницы.
Сходным образом действуют и системы управления контентом, которые делят все элементы динамического Web-узла на небольшие, легко управляемые приложения или сервисы. На новостном сайте, скажем, может использоваться Web-сервис управления рекламными блоками, Web-сервис “горячих” новостей или связанного с новостями контента.
Кроме того, системы управления контентом упрощают обмен с другими Web-узлами - чем не Web-сервис совместного использования информационного наполнения?
Таким образом, нет ничего удивительного в том, что в части развития Web-сервисов порталы и системы управления контентом оказались в большом отрыве от своих конкурентов. Более того, производители таких систем стали инициаторами разработки некоторых стандартов отображения и доставки Web-сервисов.
И все же возможности подобных продуктов по отношению к Web-сервисам равными назвать нельзя. Компания, желающая обеспечить хорошую интеграцию Web-сервисов с порталом или системой управления контентом, должна обращать самое пристальное внимание на базовую инфраструктуру таких приложений.
Foundation Server фирмы Epicentric и Content Server фирмы Divine, активно использующие XML и другие открытые стандарты, интегрируются с Web-сервисами очень легко. Если же основу продукта составляют специализированные коды, то чтобы сделать его совместимым с Web-сервисами, программистам придется затратить немало времени и усилий.
Тем же компаниям, что уже развернули портал и системы управления контентом, стоит подумать о том, как расширить их возможности с помощью Web-сервисов.
Преобразовав, например, в Web-сервис портлет инвентаризации, который запускается в виде специализированного приложения, можно упростить его развертывание на разных устройствах и для разных аудиторий.
Что же касается управления контентом, то Web-сервисы могут упростить интеграцию информационного наполнения узла с другими сайтами.
Из стандартов Web-сервисов, предложенных или поддержанных разработчиками порталов и систем управления контентом, назовем WSIA (Web Services for Interactive Applications - Web-сервисы для интерактивных приложений) и WSRP (Web Services for Remote Portals - Web-сервисы для удаленных порталов).
Главное назначение WSIA состоит в построении компонентной инфраструктуры для интерактивных Web-приложений, упрощающей их интеграцию с Web-узлами и порталами. А спецификация WSRP призвана помогать в развертывании Web-сервисов на порталах и Web-узлах по принципу “подключи и работай”.
Из производителей порталов и систем управления контентом, поддерживающих оба этих стандарта, можно назвать фирмы Divine, Epicentric, Computer Associates International, Documentum, Plumtree Software, IBM и SAP AG.
(Продолжение следует)