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

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

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

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

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


Rambler's Top100

  

Алхимия данных

Эдвард Хэнд

Как известно, данные — это основа любого современного бизнеса, а система документооборота, по сути, кровеносная система вашего корпоративного “организма”. Любые же изменения в производственных процессах неизменно ведут к перенастройке потоков данных.

Рекомендации консорциума W3C (World Wide Web Consortium) по расширяемому языку стилевых таблиц (Extensible Stylesheet Language — XSL) описывают две полезные технологии, обеспечивающие механизм адаптации потоков дан-ных как для корпоративных сервисов, так и для клиентских приложений. Это технология XSLT (XSL Transformations), предлагающая язык для преобразования XML-документов, и технология Xpath, которая представляет собой инструмент для поиска конкретных элементов в XML-документе. Соединение этих технологий с реализующим их языком программирования создает для небольших предприятий возможности реализации самых передовых способов преобразования информации при приемлемом уровне затрат.

Тандем технологий XSLT—Xpath — отличное решение специфических задач, являющихся общими почти для всех ИТ-организаций: извлечения максимума пользы из данных как с точки зрения клиентских приложений, так и при взаимодействии корпоративных сервисов. Версии стандартов XSLT 1.0 и XPath 1.0 были выпущены еще в ноябре 1999 г., и W3C сейчас активно занимается их доработкой. Во время написания данной статьи на стадии предварительной рекомендации (Candidate Recommendation) находились уже версии XSLT 2.0 и XPath 2.0.

Пока ваши программисты решают, заниматься ли этими технологиями, вы можете столкнуться с последними совсем иным образом: их часто закладывают в корпоративные приложения, обрабатывающие XML-структуры данных.

Компании Oracle и Sun уже начали использовать XSLT в своих продуктах. Так, инструментарий разработчика XML-документов версии 10g поддерживает стандарт XSLT 1.0 и предварительную рекомендацию версии XSLT 2.0. Компания Sun сделала XSLT встроенным компонентом своей технологии J2EE. API-интерфейс ее продукта JAXP 1.3 содержит реализацию XSLT, взятую из проекта Xalan-J фирмы Apache Software Foundation. Свои реализации XSLT вывели на рынок и многие другие компании, в том числе Microsoft в продукте XML Core Services, который используется в программах Explorer 6 и .Net Framework. Корни популярного XSLT-процессора Xalan прослеживаются и в продукте LotusXSL фирмы IBM. Хотя он был обнародован как средство для сообщества открытого ПО, IBM продолжает играть значительную роль в развитии этого процессора и создании рекомендации по XSL в рамках W3C.

Азы

Базовым компонентом XSLT является стилевая таблица; в ней задается отображение-переход от XML-документа к конечному документу, который может быть представлен в формате XML, HTML или ином текстовом формате. Такое отображение часто именуется трансформированием. Термин “стилевая таблица” здесь применяется лишь условно, поскольку в данном случае о стиле речь не идет. Стилевая таблица является набором инструкций-команд XSLT-процессору о том, как следует преобразовать данные исходного документа в структуру конечного документа.XML-теги стилевой таблицы определяют трансляции, в результате которых по указанным частям исходного документа строится конечный документ. XSLT содержит общеизвестные программные конструкции ти-па if и choose, позволяющие разработчику задавать условия, при которых те или иные данные будут появляться в выходном документе. XSLT содержит также мощный механизм обработки шаблонов, который запускается, когда в исходном документе встречается заранее описанный образец. Например, если речь идет о розничной торговле и исходном документе с перечнем проданных товаров, вы можете создать шаблоны по товару каждого типа, с тем чтобы их обработка производилась корректным образом.

Технология Xpath играет важную поддерживающую роль в отношении XSLT. Последняя использует выражения Xpath, содержащиеся в обрабатываемых тегах для выявления элементов исходного документа. Xpath напоминает привычное описание пути к конкретному файлу на вашем жестком диске, но здесь вместо файла выступает конкретный элемент в исходном документе.

Выражения Xpath могут быть довольно сложными. Скажем, возможна программная реализация такого запроса: “Найдите в документе первый счет для клиента по имени Джон Доу”. Эти выражения можно использовать также и вне стилевых таблиц XSLT. Возможно их применение во многих языках программирования для поиска заданных элементов в XML-документах.

Практические советы

Существует несколько направлений использования XSLT и Xpath в среде ИТ-разработчиков. Наиболее распространенное и простое — применение XSLT для отображения одного XML-документа в другой. Например, вам надо импортировать данные в новое приложение, но ваше текущее, структурированное по правилам XML сообщение для этого не годится. Вместо того чтобы менять структуру этого сообщения, можно обратиться к стилевой таблице и XSLT-процессору для создания сообщения новой структуры. Технология XSLT является полезной также и тогда, когда внешний клиент предоставляет вам XML-данные. В этом случае стилевую таблицу можно использовать для отображения элементов данных клиента в форму, которую способны распознавать ваши приложения.

XSLT играет также определенную роль на уровне отображения данных для пользовательских приложений, поскольку стилевые таблицы используются для конструирования HTML-документов на основе данных, содержащихся в XML-документе. В этом случае XSLT можно применять для динамической генерации HTML-документов из данных, хранящихся в вашей системе в XML-форме. Разные группы пользователей могут иметь разные стилевые таблицы, отображающие информацию в наиболее удобном для них виде. При этом “настройка внешнего вида” данных превращается в простую модификацию стилевой таблицы.

Если XML-формат в вашей организации широко не используется, то вы все равно можете задействовать мощь описываемых технологий. Для этого надо построить свой собственный адаптер (с применением таких средств, как Java или Perl) для отображения существующей структуры данных в формат XML. Версия XSLT 2.0 обеспечивает также возможность навигации в данных, представленных не в XML-формате, благодаря команде analyze-string (“анализировать строку” — см. “Будущее XSLT и Xpath”).

Если ваша компания внедряет новое ПО и вам надо перенести пользовательские данные в новую структуру, XSLT может стать механизмом для автоматизации такого переноса (в предположении, что данные хранятся в XML-форме). Пользуясь приложением, осуществляющим модернизацию, вы можете применить стилевую таблицу, разработанную для обновления пользовательских данных, так же как и любых XML-конфигурационных файлов для новой версии ПО.

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

Решения, решения...

Прежде чем принять решение о помещении определенных команд обработки в стилевую таблицу, следует рассмотреть ряд ключевых вопросов. Например, не слишком ли активно вы пользуетесь условными операторами типа if и when, вместо того чтобы вовсю задействовать механизм шаблонов? Обращаетесь ли вы к расширениям XSLT для выполнения задач с применением стилевых таблиц? Если вы ответили на эти вопросы утвердительно, то это значит, что вы заставляете стилевые таблицы производить слишком большой объем вычислительных операций.

Многие программисты попадают в ловушку, создавая стилевые таблицы, обрабатывающие документы последовательно. Разработчики часто скатываются на этот путь, вместо того чтобы хорошо овладеть механизмом шаблонов XSLT. Самый мощный способ применения XSLT — использовать технологию как язык сравнения образцов, когда шаблоны применяются по результатам сравнения с образцами, встречаемыми в исходном документе. Не стоит жалеть времени на изучение языка XSLT, чтобы научиться профессионально на нем программировать, поскольку как раз это позволяет XSLT-преобразованию решать значительно более широкий спектр задач.

В конечном счете стилевые таблицы, приводящие в движение процесс XSLT-преобразования, — это программный код, и к его разработке надо подходить так же, как и к разработке на языках Java или C#. Если вы будете рассматривать их как нечто большее, чем легкие в развертывании конфигурационные файлы, управляющие процессом преобразования данных, то вы можете оказаться погребенными под руинами плохо разработанного и не поддающегося тестированию кода.

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

Одним из средств, которое будет полезным при использовании платформ модульного тестирования JUnit или NUnit, является расширение XMLUnit. В процессе построения документа в автоматизированном режиме оно позволяет сравнивать результирующий XML-документ с ожидаемым. Далее тестировать будет намного легче, если и для входного, и для выходного XML-документов имеются тщательно подготовленные описания в формате DTD (Document Type Definition) или XML Schema.

Поскольку XSLT базируется на открытом Web-стандарте, то вы не рискуете попасть в ситуацию жесткой привязки к одной платформе или одному языку программирования. Любая разработанная вами стилевая таблица применима к множеству платформ. Имеются XSLT-процессоры, ориентированные на самые разные языки программирования, в том числе на C++, Java, Perl и на платформу .Net.

Еще и многое другое

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

У организации, переходящей на архитектуру SOA (Service-Oriented Architecture), может возникнуть желание развернуть шину корпоративных сервисов ESB (Enterprise Service Bus) с целью интеграции своих приложений. В качестве компонента реализации ESB очень часто используется XSLT-процессор, поскольку он позволяет приложениям обмениваться информацией через Web-службы или другие средства. XSLT-трансформация способствует также принятию стандартов, появившихся в связи с SOA, выступая в качестве адаптера по отношению к существующим приложениям.

Еще одна технология, опирающаяся на XSLT, — это язык Security Assertion Markup Language, который позволяет организациям обмениваться характеристиками безопасности конкретного объекта с применением структуры, базирующейся на формате XML. Благодаря коллективному пользованию такой информацией данная организация может распространить концепцию доверительных отношений на другие организации.

Конечно, технология XSLT не является панацеей; она не решает все проблемы оптимальным образом, но на это не способна никакая технология вообще. С появлением XML, как основного метода структуризации корпоративных данных, все большее число технологий и приложений, которые вы захотите использовать, будет опираться на XSLT и Xpath. Если вы проявите сбалансированный подход к их применению, то они, без сомнения, станут ценным приобретением для вашего ИТ-инструментария..





  
14 '2006
СОДЕРЖАНИЕ

бизнес

• Конец эпохи тотального ИТ-контроля

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

• Oracle предлагает Linux неуязвимый

инфраструктура

• Модификация процессоров помогает осуществлять виртуализацию

• Горячие проблемы ЦОДов

• Предпроект в строительстве ЦОДа

информационные системы

• Алхимия данных

• Как нам лучше всего назвать call-центр

• Практическая экономика контакт-центров

• XBRL устанавливает стандарт отчетности

• «Инфоком—2006»: от Москвы до Екатеринбурга

кабельные системы

• Аудио- и видеобалуны расширяют применение UTP-проводки

• Анализ событий на рефлектограмме

сети связи

• Выполнение программы «Тетрарус»

• Сетевое видеонаблюдение

защита данных

• Массированное вторжение похитителей персональной информации

• Поможет ли вам шифрование не потерять работу?

• Поставщики решений NAC готовятся к наступлению

• Не следует игнорировать приложения Open-Source

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

• Новый компактный медиашлюз I-Gate


• Калейдоскоп



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