Сергей Дмитриевич Кузнецов - ученый секретарь Института системного программирования РАН, председатель редсовета журнала «Открытые системы». Его адрес: kuzloc@ispras.ru

Пять лет тому назад с легкой руки Sun Microsystems компьютерный мир резко сменил базовое средство общения на машинно-независимый, безопасный, объектно-ориентированный язык Java. Java для Internet, Java для построения дешевых распределенных приложений и т. д. Новая эпоха! По всему миру были созданы специализированные Java-центры. И вот теперь понятно, что новая эпоха не состоялась. Просто возникла еще одна технология, которая во многих случаях весьма полезна, во многих бесполезна, а в других откровенно вредна. Меня, например, просто бесит, когда браузер вместо того, чтобы обеспечивать меня информацией, говорит в течение нескольких минут, что загружает абсолютно не интересные мне Java-апплеты.

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

Происхождение

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

Как обычно, все началось с компании IBM, где в 60-х годах был разработан язык GML для обмена текстовыми документами в среде компьютеров IBM. Спустя несколько лет создатели языка нашли подход к обмену документами между платформами разных компаний. В 80-х годах язык был стандартизован

(см. ISO 8879) и получил название SGML (Standard Generalized Markup Language — стандартный обобщенный язык разметки). Позже он был сертифицирован МО США, и все подрядчики этого министерства были обязаны поставлять документацию в формате SGML, чтобы обеспечить ее совместимость в разных департаментах. Обратите внимание: все это происходило до широкого распространения Internet.

Почему же существующая сегодня в Internet Всемирная Паутина WWW базируется на другом языке — HTML?

История HTML началась в конце 80-х в Швейцарии в известной физической лаборатории CERN. Одна из ее особенностей — регулярные перемены в составе ученых, что — при отсутствии стандартов хранения и отображения информации — затрудняло использование полученных ранее результатов. Для решения проблемы SGML в чистом виде не годился из-за большой сложности и дорогостоящих инструментальных средств. Поэтому на основе SGML был создан HTML — специализированный, гораздо более простой язык. Был введен набор предопределенных тегов, которые можно использовать для разметки. Принципиально важной особенностью явились теги специального назначения — гипертекстовые ссылки, связывающие документы, которые хранятся в разных файлах или даже в разных узлах сети.

Поначалу HTML использовался только в локальной сети CERN, но простота, независимость от компьютерной аппаратуры и программного обеспечения привели к быстрому и широкому внедрению языка в Internet. Любой Web-клиент (браузер) одинаково понимает смысл тегов HTML, хотя внешний вид отображения документа на экран терминала или устройство печати может различаться (и действительно различается) для разных браузеров.

Правильное понимание смысла тегов обеспечивается спецификациями HTML, выпускаемыми консорциумом W3C (World Wide Web Consortium, www.w3.org) и называемыми «определениями типа документа» (Document-Type Definitions — DTD).

Основным достоинством HTML является его простота. Для подготовки не очень сложных HTML-документов не требуется высокой квалификации. Унификация набора предопределенных тегов позволяет пользоваться в Internet различными браузерами. Возможно, в этом одна из причин, по которой именно HTML лежит в основе Всемирной Паутины.

Возвращаясь к XML

Язык XML более примитивен, чем HTML. Основное отличие XML состоит в отсутствии предопределенных тегов. Конечно, в среде XML можно использовать DTD для HTML, но это будет явным включением набора внешних определений. В некотором смысле такой подход напоминает использование библиотек функций в среде программирования языка Си, библиотек классов в среде Си++, определений структур таблиц-каталогов в среде SQL и т. д.

Опубликована масса простых примеров описаний на XML. (Например, см. статью П. Храмцова «XML через призму программирования», «Открытые системы», № 9-10, 1999, www.osp.ru/os/1999/09-10/021.htm.) Сложные примеры, сопровождаемые описанием содержательной метаинформации, слишком громоздки для этой статьи. Заметим, что абсолютно не принципиально, используется ли в примерах русский или «заграничный» язык, поскольку для кодировки используется стандарт Unicode.

Гораздо более важно общее понимание смысла документа. В чем состоит проблема Web? Пользователь знает (хотя бы примерно), что его интересует, но может выражать свой запрос к поисковым машинам Internet только в терминах ключевых слов или фраз, не имея возможности сообщить смысл нужной ему информации. Поисковые машины знают, как устроены HTML-документы, но не знают и не могут узнать, что они означают. Слишком часто пользователи, получая формально корректный ответ на свой запрос, фактически получают совсем не то, что они имели в виду. HTML предназначен только для правильного отображения данных на стороне клиента, но что все это значит, знает только публикатор информации. Получатель информации может понять ее смысл только после внимательного прочтения. Именно из-за этого в Internet невозможно ничего найти: отсутствует возможность смыслового поиска.

Как же понять смысл документа? Сам по себе XML не предлагает универсального решения проблемы. Решение должно приниматься людьми. Этими людьми являетесь именно вы — руководители служб информации, которые должны договориться о единообразной трактовке смысла информации в своей предметной области. Ну а XML и среда этого языка дают «эсперанто» для выражения общего понимания, обеспечивая возможность средствами самого языка выразить смысл документа или группы документов. В W3C и OMG (Object Management Group, www.omg.org) имеются описания, устанавливающие формальные правила выражения метаинформации. А смысловое содержание определяется в прикладных областях.

XML на предприятии

Правильным будет поставить еще один вопрос: может ли быть полезен XML в автоматизированных системах предприятия и каковы перспективы применения этой технологии при общении с другими предприятиями (то, что теперь модно называть B2B-информационными системами)? Совершенно очевидно, что технология XML полезна для систем категории ERP (между прочим, ведущий поставщик таких систем — компания SAP - находится в числе лидеров в этой технологии), менее понятна роль XML в САПР. В системах автоматизации научных исследований XML используется давно и плодотворно. Например, химики одними из первых договорились о едином DTD для своих документов и общаются в Internet на XML (см. www.w3c.org). Сегодняшняя и, скорее всего, завтрашняя задача — это автоматизация бизнес-отношений между предприятиями. Вы должны договориться о понимании смысла общей деятельности, т. е. выработать межкорпоративный стандарт представления метаданных. Инструмент есть, он прост.

Грубо говоря, к описанию метаданных имеются три подхода. Первый из них состоит в том, что в некоторой прикладной области участники XML-проекта просто договариваются между собой о названиях и смысле тегов предметно-ориентированных документов. В этом случае, естественно, никто вне группы участников проекта не сможет полноценным образом получить доступ к документам участников, а им самим необходимо разработать собственное программное обеспечение, в которое, по сути дела, «вшита» семантика предметной области. Видимо, этот подход может нормально использоваться во внутрикорпоративных intranet- или еxtranet-приложениях.

Второй подход состоит в создании единой библиотеки DTD для всей прикладной области. Стандартизация DTD позволяет решить две проблемы — выработать прикладной стандарт представления документов и, вообще говоря, договориться об их смысловом контексте (как понимать документы в данной области). В этом случае можно рассчитывать на использование как специализированного, так и универсального программного обеспечения. Специализированные клиенты будут воспринимать и обрабатывать документы полностью в соответствии с их описанием, а универсальные клиенты смогут по крайней мере правильно отображать структуру документов. Этот второй подход расширяет возможности применения XML в межкорпоративных областях (например, приложениях категории B2B), но понятно, что он все равно относится к категории at hoc. Насколько мне известно, первыми такую работу проделали химики (хотя многие специалисты критически отзываются о ней).

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

Что же касается узкоотраслевых библиотек тегов, то они разрабатываются многими сообществами и публикуются в Internet главным образом на www.w3c.org, www.ogm.org и www.rosettanet.org. Конечно, эта работа начата совсем недавно, но продвигается очень активно. Как уже упоминалось, первые такие библиотеки были созданы в научных сообществах. Сейчас ведутся аналогичные разработки для промышленности (в частности, для автомобильной).

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

Итак, зачем нужен XML? Основной ответ — чтобы вы понимали друг друга внутри предприятия и чтобы вас правильно понимали партнеры и заказчики. Это очень важно, поскольку большая часть проблем возникает из-за непонимания. Количество технического персонала, необходимое для использования XML, и уровень его квалификации зависят от конкретной стратегии корпорации. Возможно, для начала потребуется всего один человек, которому будет предоставлена возможность учиться (желательно самостоятельно). Я бы начал именно с этого.

Вряд ли XML открывает новую эпоху в информационной технологии. Скорее это еще один полезный шаг, развивающий эту технологию.

Сергей Дмитриевич Кузнецов - ученый секретарь Института системного программирования РАН, председатель редсовета журнала «Открытые системы». Его адрес: kuzloc@ispras.ru