Создать статический сайт - дело нехитрое. Для этого не требуется специальных знаний, достаточно сильного желания и некоторого опыта работы в Интернете. Наверное, поэтому знакомство с миром интернет-технологий для многих компаний часто начинается с создания статического web-узла, содержащего несколько десятков простейших HTML-страничек. Как правило, разработчикам таких решений вполне хватает традиционных возможностей языка HTML в связке со стандартным web-сервером. И вряд ли тут стоит всерьез задумываться об XML, сколь бы красиво о нем ни писалось в прессе.
Однако по мере роста компании и развития ее бизнеса меняются и задачи. Усложняется структура, расширяется функциональность пользовательского интерфейса, появляются новые требования к режимам обновления информации, самих данных становится больше. Сайт перестает быть архивом HTML-документов и превращается в довольно серьезную программную, техническую, организационную систему.
Вершиной "сайтоэволюции" на сегодняшний день являются специализированные web-приложения, предназначенные для активного ведения бизнеса в Интернете. Такие приложения в ряде случаев представляют собой сложную информационную систему, видимая часть которой, сайт, является лишь вершиной огромного айсберга внутренних инфраструктурных решений. И именно при создании таких систем наиболее отчетливо проявляются возможности XML.
XML на стороне клиента
Рассмотрим особенности использования XML на примере электронного магазина.
Основная задача клиентской части - помочь посетителям сайта при поиске, выборе товаров и услуг, их заказе и покупке. В электронном мире заказчики тоже хотят обслуживаться по первому разряду, и задача информационной системы - обеспечить им такое обслуживание. Для этого дизайнеры создают сложные графические конструкции и проектируют удобные формы, а программисты пишут сценарии, составляющие клиентскую логику.
При этом в основном используются следующие варианты организации клиентских компонент: "сверхтонкий клиент" (HTML или WML в чистом виде), "тонкий клиент" (HTML/WML-странички со встроенными в них сценариями на Javascript или VBScript) и "толстый клиент", когда на сторону клиента вслед за данными высылаются мобильные интерпретирующие модули (обычно это Java-апплеты или компоненты ActiveX).
Преимущества и недостатки этих подходов очевидны. Использование первых двух вариантов позволяет до минимума снизить требования к компьютеру клиента, но при этом может пострадать "интерфейсная составляющая" приложения, которая в рассматриваемых нами системах исключительно важна. Кроме того, без привлечения дополнительных подключаемых компонентов нельзя использовать форматы данных, отличные от HTML (программы просмотра их просто проигнорируют).
"Толстый" клиент способен правильно интерпретировать любую присланную информацию, так как вместе с ней приходит и код нужного обработчика. Но загрузка апплетов или компонентов ActiveX, как правило, вызывает дополнительные временные задержки. Кроме того, редко где администратор сети допустит бесконтрольную установку дополнительных модулей, поэтому очень часто данные до клиента не доходят вообще.
В этой ситуации XML является довольно интересным компромиссным решением. Во-первых, с помощью этого языка можно описывать данные практически любой предметной области, используя стандартные языковые средства. Во-вторых, сам факт использования XML означает, что данные, сохраненные в этом формате, могут быть легко распознаны стандартным XML-анализатором и интерпретированы (обработаны, отображены, пересланы на другой сайт) с помощью обыкновенных сценариев на JScript или VBScript. XML-анализаторы присутствуют в последних версиях браузеров от Netscape и Microsоft; в скором времени они и вовсе станут стандартным средством любых операционных систем. То есть с использованием XML обработка и визуализация данных может проходить без привлечения подключаемых программных модулей.
И, наконец, XML может быть легко встроен в существующие HTML-страницы (с помощью "островков данных", специальных объектов внутри HTML-документов), а затем доставлен вместе со стандартным HTML-кодом клиенту, выполняя роль "временного хранилища" информации на стороне клиента. Так, скажем, можно за раз передать клиенту нужный раздел сайта, и затем клиентский сценарий, созданный стандартными средствами JScript или VBScript, будет просто выводить нужные фрагменты информации в ответ на определенные действия пользователя. Как правило, передача данных в несколько приемов выполняется медленней, чем загрузка одного ресурса, и такой способ распределения контента представляется перспективным.
В некоторых ситуациях клиентский сценарий может также отсылать часть данных на сервер, не вызывая этим перезагрузку всей страницы целиком. Такой способ позволяет уменьшить временные затраты и упростить логику пользовательской части, но работает он только на платформе Microsoft, так как использует XML-анализатор Microsoft (MSXML).
Новые возможности открывает использование связки XML-XSL. Так, можно передавать от сервера к клиенту только "полезные" данные, без форматирующего кода, сохранив XSL-сценарий на машине клиента (например, в cookies или в кэше браузера).
Как видим, XML действительно предоставляет много новых интересных возможностей. При этом, однако, он не поддерживается более ранними версиями браузеров, все еще довольно часто распространенными в Интернете. К тому же процесс стандартизации разнообразнейших XML-технологий все еще не завершен, что вызывает серьезные трудности с совместимостью кода. Будем надеяться, в ближайшем будущем ситуация изменится.
XML и Flash
Другой пример интересного использования XML на стороне клиента - создание динамических Flash-заставок. Грамотно составленная презентация может рассказать о продукции больше, чем десятки строк текста, и многие компании активно используют эту возможность.
Очевидным неудобством является необходимость привлечения специалистов-дизайнеров для внесения даже самых незначительных изменений, таких как модификация отдельных текстовых фрагментов ролика. Именно поэтому Flash с трудом интегрируется в современные системы управления контентом.
В Macromedia Flash 5 появился XML-анализатор, и ситуация немного изменилась: теперь некоторые параметры Flash-роликов можно менять дистанционно, причем - используя формат, общий для всех компонентов сайта. Это сделало, например, возможным создание рекламных Flash-роликов, текст которых зависит от времени суток и т. д.
XML на стороне сервера
Серверная часть современного web-приложения представляет собой весьма сложную многоуровневую систему, в задачи которой входит не только управление контентом, но и выполнение множества других функций: хранение разнотипных информационных объектов, их обработка на разном уровне представления данных, обеспечение целостности связей, пересылка информации между подразделениями организации, взаимодействие с другими системами, обеспечение необходимого уровня защиты и т. д. Вдобавок ко всему, web-система должна быть удобной в использовании и управляться с любого компьютера Сети.
Естественно, что при реализации таких систем у разработчиков возникает множество разнообразных технических проблем. Одной из самых важных и сложных является задача объединения в рамках единой информационной среды множества разнообразных приложений.
Единственным правильным решением здесь является использование некоторого единого, легко изменяемого и расширяемого формата, который бы имел достаточную поддержку среди разработчиков баз данных, информационных серверов и инструментального ПО. XML способен если не снять, то хотя бы уменьшить головную боль многих разработчиков и руководителей ИТ-подразделений.
На практике в большинстве современных web-решений XML-технологии используются:
-
в качестве основного формата хранения в XML-ориентированных базах данных;
-
для временного хранения данных, получаемых от различных приложений;
-
в глобальных системах обмена коммерческой информацией;
-
для хранения информации о структуре сайта (например, в сетях обмена контентом);
-
для конвертирования форматов с помощью XSL-преобразователей.
Основные вопросы использования XML в распределенных информационных системах уже обсуждались во множестве публикаций, и мы не будем останавливаться на них подробнее.
Системы управления контентом
Системы управления контентом - одна из важнейших составляющих любых web-приложений. Среди обязательных функций, выполняемых такими системами, можно выделить следующие:
-
управление доступом и персонификация данных;
-
управление каталогом;
-
средства передачи информации между отдельными компонентами системы;
-
планировщик заданий (scheduler);
-
средства контроля версий.
XML в таких системах выполняет привычную роль единого универсального формата. Вот некоторые примеры реализации таких систем:
XML-ориентированные базы данных
XML-ориентированными называются базы данных, в которых для хранения информации используется модель данных XML. Преимущества XML как базового способа представления информации в СУБД очевидны:
-
XML позволяет хранить информационный объект "целиком", без "расщепления" его по полочкам реляционных таблиц. Точно так же программист всегда извлекает из базы и работает с объектом целиком, а не с отдельными строками и полями;
-
структура документа в случае соблюдения всех требований спецификации XML представляет собой дерево, а как известно, алгоритмы работы с B-деревьями очень производительны;
-
данные в XML всегда хранятся в упорядоченном виде (строгая иерархия элементов - одно из основных достоинств XML-документов).
Многие производители баз данных давно уже провозгласили свои продукты XML-ориентированными, однако это далеко не всегда соответствует действительности - часто "переход на XML" означает лишь добавление встроенной XML-машины, конвертирующей на лету внутренний формат хранения в XML. Среди продуктов, действительно построенных на основе XML-ориентированной архитектуры, особенно выделяются Tamino и Cache.
Tamino
Tamino (Transaction Architecture for the Management of INternet Objects) - один из первых и наиболее известных информационных XML-серверов, в котором XML используется в качестве основного формата хранения и представления информации. Производитель позиционирует Tamino как "первый в мире информационный XML-сервер, являющийся быстродействующим, надежным, высоко масштабируемым продуктом, основанным на открытых стандартах".
Основным преимуществом Tamino является то, что он позволяет хранить не просто данные, а целые информационные объекты любых типов (текст, XML, HTML, документы офисных приложений, мультимедиа и т. д.). При этом единым стандартным форматом для представления таких объектов служит XML - Tamino хранит XML-документы в их оригинальном виде, а не преобразует их во внутренний формат.
Естественно, в Tamino сохранен и "джентльменский набор" любой современной СУБД, без которого реальное ее использование невозможно: полнотекстовая поисковая машина, механизм управления транзакциями (причем поддерживаются не только классические, но и так называемые "длинные транзакции"), ведение журналов, встроенные средства разграничения доступа. А тесное взаимодействие со специализированной Java-фабрикой приложений Bolero (производства той же Software AG) позволяет создавать действительно гибкие и производительные web-системы для электронного бизнеса.
Cache
Постреляционная СУБД Cache (читается как "каше" с ударением на последний слог) - еще одна из немногих баз данных, которые можно охарактеризовать как XML-ориентированные.
Основным преимуществом Cache является то, что она предоставляет различные интерфейсы доступа к данным. На самом нижнем уровне - это B-деревья (реальный формат хранения этой СУБД), на более высоком - реляционная и объектно-ориентированная модели.
В качестве основных достоинств этой СУБД можно выделить:
-
высокую производительность;
-
гибкость и масштабируемость;
-
наличие дополнительных средств для интеграции с глобальными информационными системами;
-
оптимизированный SQL;
-
наличие встроенных средств для оптимизации нагрузки сети.
Вместо заключения
XML-лихорадка затронула многие области современных информационных систем. Наиболее активно развиваются следующие направления XML-эволюции: системы управления контентом; информационные серверы и базы данных; инструментарий для проектирования и создания сайтов; публичные форматы обмена финансовой информацией; системы управления порталами; системы управления торговыми площадками.
В российском Интернете процесс идет медленней, чем за рубежом, так как и само развитие электронной коммерции вряд ли пока можно назвать стремительным. Но - все-таки идет, и большинство отечественных компаний-разработчиков интернет-решений уже активно используют XML. Вот лишь несколько известных примеров.
-
"Менеджер обмена данными" - новая стратегия управления информационными потоками в системе "1C:Предприятие". XML здесь используется в качестве промежуточного формата хранения данных, что позволяет объединять различные компоненты "1C:Предприятия" между собой и интегрировать приложения "1C" с другими информационными системами. Разработчик - компания "Пи-Би".
-
В автоматизированных системах управления предприятием корпорации "Парус" XML тоже выполняет роль связующего звена между внутренними компонентами системы и "внешним миром".
-
Synergy Studio - система автоматизации процесса проектирования и создания сложных web-систем. Разработчик - компания "Анет". XML здесь используется в качестве одного из основных форматов хранения данных.
-
Серия продуктов компании "Нейрок". XML используется в нейроагентах и на стороне клиента при визуализации данных.
-
Communiware - новая платформа для современных web-систем с поддержкой community. Разработчик - Communiware.Net. Для описания текущей структуры сайта используется мощный XML-производный язык описания объектов - RDF.
-
XML-ориентированные СУБД Cache и Tamino с успехом применялись при создании многих сложных информационных систем. Специализированные приложения на базе этих СУБД предлагают такие компании, как "Програмбанк", "Информ Икс", "Конус-Медик", ОАО "Программпром".
Многие разработки находятся в стадии производства, и в скором будущем стоит ждать появления сообщений о новых решениях в этой области.
Подводя итог нашему разговору стоит отметить тот факт, что XML сегодня перестает быть интересной игрушкой, стремительно превращаясь в мощную систему промышленных стандартов. Всеобщее восхищение новой технологией заменяется сегодня активными действиями по проверке ее жизнеспособности. И пока что XML с экзаменом успешно справляется.
Почитать на ту же тему на сайте «Софтерра»:
-
Кому это понадобилось или долгий путь от SGML до XML...
-
Начинаем размечать. IE - наш друг, брат и вообще...
-
XML как база: применение на стороне сервера и создание новых языков
-
Краткий обзор посвященный одной из самых фундаметальных технологий последнего времени - XML!
-
Эта статья посвящена началам работы с Microsoft XML Parser 3.0. Устанавливаем, настраиваем, пробуем...
«Copyright © "Софтерра", www.softerra.ru, inform@softerra.ru»
Александр Печерский |