Ж у р н а л   о   к о м п ь ю т е р н ы х   с е т я х   и   т е л е к о м м у н и к а ц и о н н ы х   т е х н о л о г и я х
СЕТИ И СИСТЕМЫ СВЯЗИ on-line
  ПОИСК: ПОДПИСКА НА НОВОСТИ: НОМЕР:
    ДОМОЙ • Архив: Новостей | Конференций | НомеровПодписка
 
   
 
   
    
РЕДАКЦИЯ
 
Все о журнале
Подписка
Как проехать
Где купить
Отдел рекламы
График выхода журнала
Адреса в Интернет

РУБРИКАТОР
   
• Инфраструктура
• Информационные
   системы

• Сети связи
• Защита данных
• Кабельные системы
• Бизнес
• Колонка редактора
• Электронная
   коммерция

• Только на сервере
• Системы
   учрежденческой
   связи

• Новые продукты


Rambler's Top100

  

Технологии доставки динамического контента

Ахмед Абуалсемид

Умение доставить динамический контент HTML имеет первостепенное значение для любого Web-узла и Web-приложения.

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

Грустно, однако, что контент поддерживается в основном в движущемся состоянии усилиями многочисленного персонала, пишущего и модифицирующего HTML-коды. Это дорогостоящий, чреватый ошибками и утомительный процесс. Каскадные таблицы стилей (Cascading Style Sheets -- CSS) помогли упростить разработку визуального представления сложных динамичных Web-узлов, но им еще очень далеко до того, чтобы обеспечить все, что действительно необходимо. Следующим шагом было использование технологий серверной стороны, предназначенных для создания контента. Имеются две разновидности этих технологий: "программный код внутри ваших страниц" и "страницы внутри вашего программного кода".

К первой категории относятся стандарты ASP (Active Server Pages), JSP (JavaServer Pages) и PHP (PHP Hypertext Processor). Во всех этих случаях сценарии, исполняемые на сервере, включаются в код HTML, чтобы обеспечить динамический контент. Ясно, что логика, контент и интерфейс пользователя при этом очень тесно перемешаны. Следовательно, нагрузка перекладывается с кодировщиков HTML на кодировщиков PHP, JSP и/или ASP, но проблема остается.

Вторая категория технологий включает сервлеты Java и Web-классы фирмы Microsoft. И вновь разработчикам были обещаны технологии, которые отделили бы контент от интерфейса пользователя, но вместо этого им приходится иметь дело с большими объемами программного кода Java или Visual Basic, генерирующего теги HTML. Вместо редактирования файлов с HTML-текстами приходится тратить время на модификацию операторов out.println() или response.write(). Справедливости ради надо отметить, что некоторым программистам удается до определенной степени отделить контент от пользовательского интерфейса. Однако этот подвиг совершается вопреки имеющимся технологиям, а не благодаря им. Так что же делать разработчику Web-узла?

С изобретением XML стала развиваться новая схема публикации в Web. Она основывается на XML (Extensible Markup Language) и его "сородичах" -- XSL (Extensible Style Language) и XSLT (Extensible Style Language Transformation). Эта схема обеспечивает контент запрашивающему клиенту во многом тем же способом, каким сегодня Web-серверы обеспечивают HTML-страницы запрашивающему браузеру.

Однако ключевое различие состоит в том, что новая схема обеспечивает не страницу, а ее публикуемую форму. Хотя информационное наполнение -- то же самое, публикуемая страница приобретает другой вид от клиента к клиенту. Например, если запрос делается программой Acrobat Reader, то публикуемая страница придет в формате PDF. WAP-устройства (Wireless Application Protocol) получат WML-старницу (Wireless Markup Language), а обычный Web-браузер -- HTML-страницу. В случае с Web-браузером вы можете даже выбирать между различными вариантами в зависимости от того, пришел ли запрос от браузера Lynx, который может показывать только текст, от Netscape Navigator или от Microsoft Internet Explorer.

Ловкий трюк

Чтобы осуществить это, основанная на XML схема публикации в Web разделяет генерацию контента на три шага:

1. Создание XML-кода. Владелец информационного наполнения создает и разрабатывает XML-файлы. Ему не надо ничего знать о том, как контент обрабатывается и представляется. Именно так обращаются с контентом более современные издательские системы, однако большинство средств публикации в Web не работают в такой манере. Вместо этого владельцы контента и кодировщики HTML часто делают работу друг друга.

Как правило, эта часть цикла выполняется с помощью обычных текстовых редакторов, хотя имеются и специализированные редакторы XML-кода, несколько упрощающие работу. Некоторые поставщики СУБД оснастили свои продукты функцией непосредственной генерации XML-кода в ответ на ввод оператора select.

2. Обработка XML-кода. На втором этапе выполняется обработка XML-файла.

Вся дополнительная логика используется на этом этапе. Он может быть опущен в зависимости от того, как был выполнен шаг 1. Мы рассмотрим пример обработки XML-кода, когда будем обсуждать проект Cocoon Project.

3. Наложение стилевых таблиц XSL. На документ, сгенерированный на шаге 2, затем накладываются стилевые таблицы XSL. При этом выполняются конкретные правила форматирования, выдавая в результате документ, соответствующий запрашивающему клиенту. В число возможных выходных форматов входят HTML, PDF, WML и XML.

Реализации такой схемы находятся на очень ранних стадиях разработки. Дальше всего продвинулись Cocoon Project группы Apache; XSQL-страницы фирмы Oracle и вариант фирмы Microsoft, представленный в составе Internet Information Server (IIS) 5.0 и SQL Server 2000.

Решения компаний Oracle и Microsoft основаны на флагманских базах данных этих поставщиков. В отличие от них в Cocoon Project сделан акцент на процессе публикации и инструментальных средствах и меньше внимания уделено источнику данных.

Мы предпочитаем реализацию Microsoft, поскольку она наиболее развита и проще других в освоении. К недостаткам ее относится то, что она работает только на платформе Windows, которая, возможно, не является вашим корпоративным стандартом. Что касается XSQL компании Oracle, то, если у вас имеется база данных Oracle, вам однозначно следует придерживаться этого решения. Чтобы установить и развернуть Cocoon, вам понадобится большой опыт работы с Apache, Java и Linux. При наличии у вас соответствующих кадров, это определенно наиболее разностороннее решение и к тому же единственное независимое от поставщика.

Проект Cocoon

В соответствии с духом Apache проект Cocoon представляет собой плод коллективных усилий сообщества открытых исходных кодов. Информация о нем находится по адресу xml.apache.org, где вы сможете найти также сами продукты, документацию, списки почтовой рассылки и дискуссионные серверы. Вы даже можете внести свой вклад в этот проект, если у вас есть силы на это.

Cocoon основывается на чистой Java-реализации. На упомянутом Web-узле объясняется, почему не работает простое использование сервлетов Java для генерации динамического XML-контента. Оно сводится к тому факту, что API для Java-сервлетов не поддерживает организацию конвейеров для сервлетов, так что выход одного сервлета не может служить входом для другого.

Целью проекта является изменение способа, каким создается, обрабатывается и предоставляется потребителю Web-информация, путем разделения этапов производства, обработки и представления контента. В Cocoon Project производство контента всегда осуществляется с помощью сервлета Java, называемого генератором. Генератор контента может просто считывать XML-код из файла или же выполнять сложные операции с базой данных, динамически извлекая из нее XML-контент.

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

Следующий XML-контент мог быть порожден генератором:

<?xml version= 1.0 ?> 
<page> 
<p>The Current Time in Sydney is 
<AusiTime/></p> 
</page> 

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

<?xml version= 1.0 ?> 
<page> 
<p>The Current Time in Sydney is 
9:15 a.m.</p> 
</page> 

Для более сложных задач Cocoon Project предлагает следующие процессоры (и еще два устаревших и не рекомендуемых к использованию):

· XSLT-процессор, являющийся рекомендацией консорциума W3C. Данный процессор дает вам возможность применить XSLT к вашему документу.

· XSP-процессор, (Extensible Server Pages) -- это предложение группы разработчиков Cocoon Project. Он все еще находится на стадии разработки и должен обеспечить механизм для разработки динамического контента Web-страниц. Этот процессор может компилировать генераторы из XSP-страницы.

· LDAP-процессор. Анализирует теги LDAP внутри документов, выполняет их применительно к серверам справочника и включает результаты в выходные данные.

Принципы работы некоторых из этих процессоров технически слишком сложны для того, чтобы быть изложенными в этой статье. Более подробную информацию вы можете найти по адресу xml.apache.org/cocoon/dynamic.html.

Третьим шагом в публикации XML-документа является представление, или форматирование, окончательных результатов. Cocoon Project использует пять типов форматирования: HTML, XHTML (Extensible HTML), текстовый, XML и Apache FOP (Formatting Objects to PDF), предназначенное для генерации PDF-файлов. Модули форматирования представляют собой простые программы-переходники, вызывающие имеющиеся в Web-сервере Apache компоненты для выполнения собственно форматирования. Это служит подтверждением того, что Web-сервер и находящиеся в его наборе компоненты представляют собой часть любой схемы публикации в Web.

Технология XSQL компании Oracle

Подобно другим реализациям, XSQL позволяет создавать XML-контент, обрабатывать его и форматировать для вывода. Oracle, являясь поставщиком базы данных, делает акцент на генерации XML-контента из базы данных в отличие от Cocoon Project, который почти не уделяет внимания взаимодействию с базой данных, а концентрируется на остальном процессе.

Компания Oracle сформулировала две задачи, которые должна решить ее технология XSQL: во-первых, сделать простые вещи очень простыми, а сложные -- доступными; во-вторых, держать "страницы с данными" отдельно от способа, которым данные будут представляться и форматироваться. Простой XSQL-документ может выглядеть примерно так:

<?xml version= 1.0 ?> 
<?xml-stylesheet type= text/xsl href= 
mydemo.xsl ?> 
<page connection= demo xmlns:xsql= 
urn:oracle-xsql > 
<xsql:query bind-params= id sal > 
select * from EMP where EMPNO= ? 
AND ? BETWEEN 1000 and 4000 
</xsql:query> 
</page>

В этом примере мы не только включаем код на SQL в XML-страницу, но и вводим в нее параметры, используя стандартные индикаторы привязки переменных JDBC (Java Database Connectivity). Во время исполнения имеющиеся в тексте оператора select два знака вопроса будут замещены значениями параметров id и sal соответственно.

Для того чтобы представить выходные данные в соответствии с вашими вкусами, необходимо просто включить ссылку на избранную вами таблицу стилей, как это сделали мы, указав mydemo.xsl sheet. Хотя Oracle оставляет выбор стилевых таблиц на ваше усмотрение, данная реализация предусматривает поддержку вызова процессора Apache FOP для создания PDF-документов во многом подобно тому, как это сделано в проекте Cocoon.

Реализация XSQL основана на технологии сервлетов Java и тесно связана с JDBC. Более подробную информацию по этому вопросу вы найдете по адресу technet.oracle.com/tech/xml/xsql_servlet/htdocs/relnotes.htm.

Microsoft SQL Server

Сервер SQL Server 2000 фирмы Microsoft обладает новыми функциями, которые позволяют оператору select возвращать XML-код непосредственно с сервера. Эти функциональные возможности не ограничены Web-публикациями -- они могут быть использованы в проектах XML EDI (Electronic Data Interchange) и везде, где требуются данные, форматируемые с помощью XML. Например, для извлечения информации из простой базы данных Northwind, которая продается вместе с SQL Server, вам надо было бы написать следующий код:

select * from Customers order by CustomerID for XML AUTO

Результат был бы получен на XML. Кроме того, с помощью IIS 5 вы теперь можете встроить SQL-код прямо в XML-страницу во многом так же, как вы делаете это при работе с SQL-сервером компании Oracle. Затем выходные данные форматируются с помощью таблицы стилей XSL и представлены в подходящем формате. Если вы уже знакомы с сервером Microsoft SQL Server и таблицами стилей, вы, вероятно, без проблем с помощью новых предложений XML компании Microsoft за 30 мин создадите простой, но тем не менее полностью динамически управляемый данными Web-узел.

Помимо этого, вы можете создавать XML-представления вашей реляционной базы данных, во многом подобные представлениям SQL. Для обращения к XML-представлениям затем могут быть использованы запросы XPath. В целом Microsoft включила больше возможностей и функций в свои новые предложения XML, как в СУБД SQL Server, так и в Web-сервер. Однако, по-видимому, компания оказалась слабее в форматировании выходных данных при помощи XSL.

Почему рекомендация, а не стандарт?

Мы называем различные официальные спецификации рекомендациями, а не стандартами. Это объясняется тем, что консорциум W3C и связанные с ним рабочие группы не являются официальными органами стандартизации. Поэтому они не выпускают официальных стандартов. В прошлом, чтобы сделать стандартом HTML, W3C сотрудничал с ISO, и сейчас W3C настойчиво склоняют к тому, чтобы сделать XML тоже стандартом ISO. Такой шаг имел бы как положительные, так и отрицательные стороны.

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

Как это теперь бывает, рекомендации консорциума W3C часто появляются вдогонку за коммерческим ПО. Во время написания этой статьи еще не было принято никакого решения относительно того, какого подхода следует придерживаться. Статью, описывающую разные точки зрения по этому вопросу, можно найти по адресу www.xml.com/pub/a/2000/11/devcon/standards.html.





  
8 '2001
СОДЕРЖАНИЕ

колонка редактора

• Старые фокусы новой экономики

бизнес

• Сеть современных викингов

локальные сети

• Сетевые адаптеры Ethernet/Fast Ethernet

• На пути к контролю физического уровня сети

• Стандарты на кабельные системы: в ожидании формального принятия

корпоративные сети

• Лучшие продукты 2001 года

• Комплексные решения от одной фирмы. Плюсы и минусы

• Одна сеть - один выбор

• Телекомпьютинг, или как повысить производительность труда работающих дома?

услуги сетей связи

• От 2G к 3G. Проблемы миграции и пути их решения

• Карманные WAP-устройства. Руководство для покупателя

• День переезда

• Создание отечественных универсальных средств мультисервисной связи. Проблемы и решения

• Оптическая коммутация блоков

новые продукты

• Высокоскоростная связь между сетями; Новинки от Кроникс; АО "Радиус" расширяет диапазон производимого оборудования

только на сервере

• Оптимизация производительности баз данных для Web

• Знакомьтесь, XML!

• Технологии доставки динамического контента

• Тестируем серверы высотой 1U



 Copyright © 1997-2007 ООО "Сети и Системы Связи". Тел. (495) 234-53-21. Факс (495) 974-7110. вверх