Построение системы XML/XSL-преобразований

www.karman.com.ua
портал о хостинге в Украине
Хостинг + Украина = Karman.com.ua

Сайт от А до Б

/

Основы сайта

/

Интересные скрипты

/

Изучаем PHP

/

Как заработать на сайте

/

Раскрутка сайта

/

CMS


Построение системы XML/XSL-преобразований 

Еще по теме:
  wwjd.ru - христианская поисковая система
  Как эффективно отобразить XML?
  Борьба оптимизаторов и поисковых систем
  Информация о SEO – оптимизаци под поисковые системы.
  SEO для начинающих: роботы поисковых систем – это люди
  Различие между оптимизацией под поисковые системы (SEO) и поисковым маркетингом (SEM)
  Способы улучшения позиций в поисковых системах
  Построение системы ссылок для SEO

Интерлюдия

Заранее отвечаю на вопрос, который чаще всего приходил ко мне по по e-mail: "А зачем так извращаться?".

Отвечаю: да, XML/XSL преобразование это очень серьезный подход. Для многих проектов такой подход может быть совершенно не нужен. Для многих проектов он просто не может быть реализован. Для многих проектов он будет лишь тратой машинных ресурсов, сил и времени. Но есть проекты (по больше части академические и чисто информационные), для которых подобное преобразование - верное, выгодное и гибкое решение.

Интернет и связанные с ним технологии развиваются семимильными шагами, следовательно потребителями информации вашего сайта могут быть не только люди с 21-дюймовым монитором и 2Гц пентиумом, но и какая-нибудь кофеварка или тостер, подключеные к интернету. Я конечно утрирую, но смысл в том, что информация должна быть отделена от визуального представления точно так же, как в эпоху компьютеров она была отделена от восковых табличек, пергамента и бумаги.

Характерными сферами применения данных технологий могли бы быть он-лайновые библиотеки (библиотека Мошкова, библиотека РАН, заочные курсы повышения квалификации собирателей бабочек), каталоги (электронные магазины, торговые площадки), новостные сайты и так далее.

Мы еще остановимся на этой теме более подробно.

Варианты решений

Так как xml/xsl-преобразование мы собираемся делать на стороне сервера, то выбор решения непосредственно зависит от того, какая ОС, какой веб-сервер, какие права хозяйничать на сервере, и какие машинные ресурсы имеются в нашем распоряжении. Для работы нам нужен xml-парсер, xsl-преобразователь и скриптовой движок, который будет всем этим заправлять.

IIS

Выбор очевиден: Microsoft распространяет продукт под названием MS XML, который является одновременно и xml-парсером и xsl-преобразователем. Вся химия на стороне сервера делается либо с помощью ASP, либо с помощью ISAPI. Для тех, кому интересно это направление, привожу ряд ссылок:

Microsoft & XML
Вкратце: здесь собрано все, что Microsoft связывает с XML

MS XML
Вкратце: самая свежая версия парсера-трансформатора MS XML 4.0. Этот парсер используется и на клиентской стороне броузером Internet Explorer, так что обновить парсер не мешает всем.

XML/XSL преобразование в виде ISAPI-фильтра
Вкратце: в своем ASP вы генерите XML, а IIS перед отправкой ответа клиенту на лету накладывает на этот XML файл XSL, который соотвествует броузеру, приславшему запрос

Apache

Здесь выбор шире. Вы можете пользоваться парсером и трансформерами Perl, парсером и трансформером PHP, либо парсером и трансформером, написанным на C.

Application Server

Многие сервера приложений являются одновременно и Web-серверами и Java-контейнерами. В этом решении в качестве движка используются Java-технологии (Java-сервелеты и JSP-страницы). В качестве xml-парсеров и xsl-преобразователей используются либо родные продукты, поставляемые вместе с сервером приложений, либо сторонние продукты.

В следующей главе мы опишем пример системы, построенной на Java-технологии.

Архитектура

Вся система будет представлять собой сложную связку серверов и приложений:

  • Apache, IIS (web-server).
  • Tomcat/Sun j2sdkee /Resine/JRun (servlet-jsp container)
  • xml-парсер и xsl-преобразователь
  • приложение xml/xsl преобразования
  • (База данных)

Web-сервер (IIS/Apache)

Web-сервер служит входной дверью всех запросов. Веб-сервер работает как обычно: выдает html файлы, обрабатывает серверные скрипты (cgi/php/asp). Для построения системы могут быть использованы наиболее распространенные web-сервера: IIS или Apache

Почти все серверные скриптовые движки сейчас поддерживают работу с XML-документами и стилями. Свои xml-парсеры есть для Perl, PHP, ASP (MS XML Parser). Это значит, что вы вручную сами можете написать приложение обработки XML-документов с нуля, но работа эта очень сложная и трудоемкая. Поэтому советуем вам воспользоваться уже готовыми отточенными и отлаженными проектами.

JDK (от Sun/ IBM / Oracle)

Предлагаемый вариант построен на Java, поэтому фундаментом всей системы, помимо имеющегося уже web-сервера, будет самый свежий Java Development Kit (JDK). Самая последняя версия от Sun - версия 1.4, но мы рекомендуем пользоваться пока версией 1.3. Напомним, что хоть Sun и является владельцем технологии Java, JDK разрабатывают еще и другие компании-монстры, такие как IBM, Oracle, Microsoft (уже нет). Так что JDK можно взять любой, главное, чтобы он не сильно отступал от спецификации.

Servlet-JSP container (Tomcat/jsdkee/Resine/JRun)

Servlet-JSP контейнер выступает как дополнение к существующему веб-серверу. Контейнер общается с web-сервером чаще всего через редирект по особому протоколу через особый порт. Web-сервер выдает обычные страницы до тех пор, пока не приходит особый запрос, который через перехватчик (redirector) направляется в Servlet-JSP container. Там этот запрос обрабатывается и опять возвращается web-серверу, который его как есть отправляет клиенту.

Использовать можно:

  • Tomcat. Бесплатный контейнер JSP/Servlet. Может работать в связке с существующим web-севрером, а может и сам работать как самостоятельный web-сервер, Tomcat находится под покровительством Sun. В этот проект влилось то, что раньше называлось JServ.
  • Sun j2sdkee. В Sun Java Servlet Development Kit Enterprise Edition есть свой собственный контейнер JSP/Servlet - почти полный аналог Tomcat. Однако в дополнение, этот сервер является еще и контейнером для Enterprise JavaBeans. Если вам они не нужны, пользуйтесь Tomcat-ом
  • Resine (аналог Tomcat, пока бесплатный, но с ограничениями на бесплатное коммерческое использование. Разработчики утверждают, что это самый быстрый JSP/Servlet онтейнер)
  • JRun (Allaire/Macromedia) (полный коммерческий JSP/Servlet/JavaBean контейнер)
  • Прочие Application Servers - такие как iPlanet, WebSphere, WebLogic и так далее

После установки всех этих компонентов на сервере у вас будет создана среда, которая позволит выполнять Java код (в виде сервлетов или JSP-страниц), ну и кроме всего прочего с помощью xml-парсера оперировать XML-документами. Опять-таки, код обработки вы можете написать сами: установив JDK/JSDK, вы получили в свое распоряжение все необходимые составные части. Но вспомним фразу из знаменитого фильма: "Все уже написано до нас".

XML-парсер

Установив Tomcat вы уже получили в свое распоряжение один из xml-парсеров: Crimson. Число парсеров, написаных на Java, весьма велико. Все они отличаются друг от друга скоростью работы, объемом поддерживаемых функций, открытостью кода.

  • Crimson - создавался Sun, потом передан в проект Apache. Входит как библиотека в состав Tomcat, и уже как составная часть JDK в версии Sun JDK 1.4. Исходники не распространяются, бинарники - бесплатны.
  • Saxon - этот парсер является одновременно и xsl-преобразователем. Создан Майклом Кейем (Michael Kay).
  • Xerces - создавался IBM (под названием IBM4J), потом передан в проект Apache. Есть варианты на языке Java, C++ и Perl. Имеются и исходники и бинарники. Распространяется бесплатно.

XSL-преобразователь

  • Xalan - разрабатывается под эгидой Apache. Имеются варианты на Java и C++.
  • Saxon
  • XT - Создан Джеймсом Кларком (James Clark)
  • LotusXSL - by IBM
  • ResineXSL - by Resine

Приложение XML/XSL-преобразования

Xml-парсер и xsl-преобразователь это всего лишь инструменты. Сами по себе они не делают никакого волшебства. Эти инcтрументы связываются в единый ансабль с помощью особого приложения.

Например, в случае с MS XML, ISAPI-фильтр вместе с ASP страницами и есть то самое приложение, которое вызывает установленный в системе MS XML парсер для чтения XML-файлов и для преобразования XML в нужный формат с помощью XSL.

В нашем случае, мы будем пользоваться приложением, которое называется Cocoon. Это приложение представляет собой набор сервлетов, которые обрабатывают приходящий запрос, определяют, что за броузер его послал, в соответствии с конфигурацией налагают на XML-файл нужный XSL-файл, и отправляют ответ обратно броузеру.

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

Сервера приложений (Application Servers) от таких монстров, как Allaire-Macromedia, BEA, IBM, Oracle, Sybase, Sun-Netscape, IONA, имеют свои собственные модули, позволяющие создавать контент из XML с помощью XSL в нужный формат. Но следует учитывать, что, во-первых, все эти решения - коммерческие и весьма дорогие (цена колеблется от 10.000 до 50.000 долларов за сервер, плюс - стоимость модулей). Вам придется покупать Application-сервер, а покупая его, вы получаете еще кучу функций, которые быть может вам и не нужны. Решение с Cocoon получается хоть и урезанным, но бесплатным. Вполне годится для маленького проекта с маленьким бюджетом.

Если внимательно посмотреть примеры кода, что идут вместе с Xalan и Xerces, простенькое приложение xml/xsl-преобразования с распознаванием броузеров можно написать дня за три. Но Cocoon силен тем, что в нем реализовано намного большее, чем простое преобразование. В его состав входит мощная система кеширования страниц (caching), резервирования объектов (pooling), предтрансляция (pre-translation), гибкие конвейеры преобразований (pipeline transformation) и многое-многое другое, что я не буду пока перечислять. На создание этого приложения и фундамента для этого приложения ушло два года упорного труда десятков программистов высочайшего класса. Поверьте, попытаться создать подобное приложение в одиночку - безнадежное и бессмысленное занятие, можно лишь попытаться сделать, что-то близкое.


Чтобы обсудить это в форуме, нажмите здесь.


Хостинг-источник: http://karman.com.ua, http://www.webmascon.com/topics/technologies/6a.asp
  Оптимизация страниц для поисковых систем.
  системы управления контентом и Построение вашего интернет-бизнеса
Есть вопросы о хостинге и о сайтах?
и получи ответ от профессионалов, которые обожают помогать людям :).
Еще по теме:
  Позиции в поисковых системах, улучшите их
  Каталоги и поисковые системы – сравнительный анализ.
  В системе интернет-адресации ликвидирована важная ошибка
  Положительные стороны системы по имени CUNIC
  Почему доменные имена высшего уровня означают лучшую индексацию поисковыми системами
  Электронная платежная система Alertpay
  система интернет денег Liberty Reserve
  система электронных денег E-gold
  Яндекс деньги (yandex money) достоинства и недостатки системы
  Улучшение положения в поисковых системах: недоразумения относительно рейтинга страниц Google
  Как добиться, чтоб Ваш сайт быстро проиндексировали поисковые системы
  Будни клиента систем контекстной рекламы.
  12 советов по оптимизации вашего веб-сайта для поисковых систем.

© СПД Праведно-Счастливый Аладдин Ярославович, 2004-2008. Все права защищены. При цитировании материалов ссылка на www.karman.com.ua обязательна. Редакция "Кармана" может не разделять точку зрения авторов статей, сообщений и ответственности за их содержание не несет.

Быстрый переход к содержимому сайта Karman.com.ua:
Новости, советы, углубленные знания, знания для новичков, законодательство, интересные скрипты, фотогалереи, отчеты, статьи о хостинге: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24
Часто задаваемые общие вопросы о хостинге, про FTP, PHPMyAdmin и MySQL, CPanel, Предустановленные скрипты, WHM, Cron, .htaccess, SSH, Паролирование директорий, О доменах, о работе с сайтом, о Раскрутке сайта, об Электронной почте, про Основы web-программирования: 0, 1
Энциклопедия основных терминов хостинга, программного обеспечения, железной стороны хостинга, технологий, электронной почты и доменов: 0, 1, 2, 3, 4, 5, 6
Сайты о хостинге (форумы, хостинг-провайдеры, студии веб-дизайна, домен-регистраторы, инструментарии в помощь вебмастеру): 0, 1, 2

Rambler's Top100