Сергей Кузнецов
Институт системного программирования РАН
Центр информационных технологий, E-mail: kuz@ispras.ru
Начнем с того, что распространенный сегодня подход к разработке Web-узлов на основе языка HTML (конечно, с применением Java-script, Java, CGI и т.д.) делает неравноправными технологии Web и баз данных. С одной стороны, используя CGI-шлюзы, достаточно просто обеспечить доступ к базам данных со стороны Web-клиентов. С другой стороны, приложения, ориентированные на использование баз данных, не в состоянии пользоваться информацией, хранимой в файлах Web-узлов. Обсудим, как сложилась эта асиметрия и почему она вредна.
Лично для меня достаточно очевидно, что на сегодняшний день технологии Web и баз данных находятся в разных весовых категориях. Технология баз данных в ее современном смысле развивалась в течение 30-ти с лишним лет. Это очень "тяжелая" технология, в которой накоплена масса человеческих знаний, опыта и практики. Современные серверы баз данных являются наиболее сложными программными продуктами. В свою очередь, эти обстоятельства влияют и положительно, и отрицательно на психологию специалистов в области баз данных. С одной стороны (положительной), эти специалисты справедливо считают себя наиболее продвинутыми в области сложных программных систем управления данными. С другой стороны (отрицательной), специалистам в области баз данных свойственно преуменьшать значимость других систем управления данными, которые не опираются на обязательную для баз данных структурированность данных. Другими словами, сложилось так, что специалисты в области баз данных образовали нечто вроде элиты, достаточно изолированной от широких масс.
Internet и в особенности Web - это сравнительно новая технология. Эта технология развивалась под давлением непрерывно возрастающих сетевых возможностей и связанных с этим запросов пользователей. Некоторым аналогом может служить телефония, где одновременно с расширением технических возможностей поставляются все новые и новые сервисы. Естественно, что в этих обстоятельствах многие решения приходится принимать "по месту" (ad hoc). Не случайно, что в области Web отсутствуют официально принятые стандарты, их просто не успевают разрабатывать в связи с непрерывными изменениями. Демократичность и открытость Internet требует наличия "легкой", просто осваиваемой технологии. Требование масс - простота публикации на Web. Отсюда следует ориентация на неструктурированную текстовую (с элементами мультимедиа) информацию. Отсюда следует распространенность простого, легко осваиваемого языка разметки гипертекстовых документов HTML. Отсюда следует происхождение поисковых машин, целиком основанных на контекстном поиске (при отсутствии структурированности информации ничего другого не придумаешь). Отсюда следует открытость и даже некоторая анархичность специалистов в области Web-технологии.
Краткие выводы: Элитарное сообщество баз данных в должное время не уделило должного внимания развивающейся Web-технологии. В то же время Web-технология вынужденно включила в себя средства доступа к базам данных. Теперь специалисты в области баз данных весьма озабочены. Почему?
Понятно, что основной задачей СУБД является обеспечение удобного и эффективного доступа пользователей и приложений к содержимому базы данных. Объем баз данных непрерывно возрастает, и на протяжении всей истории разработчики СУБД учились эффективно работать с очень большими базами данных. На сегодня "очень большая база данных", с которой справляются серверы, может включать порядка 10 терабайт данных. Построение и поддержка базы данных такого размера - это сложная и дорогостоящая работа даже при наличии соответствующих инструментов.
Базы данных изолированы. Даже при наличии соответствующей поддержки со стороны серверов баз данных и/или программного обеспечения промежуточного уровня (middleware) интеграция нескольких баз данных, обслуживаемых серверами от разных поставщиков представляет собой нетривиальную техническую задачу, решение которой требует существенных затрат.
Объем данных, доступ к которым возможен во Всемирной Паутине, возрастает экспоненциально. Трудно, а скорее всего, просто невозможно оценить суммарный объем Web-страниц, к которым возможен свободный доступ в Internet. Во всяком случае, очевидно, что этот объем в десятки раз превышает объем самых больших баз данных. В то же время, неструктурированность информации заставляет осуществлять навигацию в Web либо вручную, явно переходя по ссылкам, либо с помощью объективно ограниченных в своих возможностях поисковых машин. Не случайно эффективный поиск нужной информации в Internet стал, по сути дела, отдельной профессией (существуют даже компании, производящие платный поиск в Internet по заказу пользователей).
Всемирная Паутина обеспечивает условную интеграцию информации. Теоретически любой пользователь единообразным способом может обратиться к любой Web-странице, если имеет на это соответствующие полномочия. Однако, если учитывать упомянутую сложность навигации, то интеграция действительно является условной.
Итак, по информационному накоплению Web превосходит самые большие базы данных. Имеется техническая возможность единообразного доступа к распределенной информации. Но технологически с точки зрения специалистов в области баз данных все выглядит очень убого. Например, абсолютно непонятно, каким образом можно производить анализ данных, имеющих отношение к конкретной предметной области. Известно, что данных этих море. Известно, что их анализ был бы полезен. Но даже если все их удастся найти, то отсутствие структуры и тем более метаданных не позволит применить какие-либо средства автоматизации анализа данных категории OLAP. Конечно, все это беспокоит и раздражает здравомыслящих специалистов как из области Web, так и из области баз данных.
С точки зрения технологии баз данных идеальным решением было бы представление информации, накопленной в Internet, в виде одной распределенной структурированной базы данных в единой модели и с общей схемой. К сожалению, это невозможно по нескольким причинам:
С другой стороны Internet-сообщество в целом в полной мере осознало недостатки неструктурированных данных. Простота публикации не уравновешивает сложность и ограниченность средств поиска.
Одним словом сложилась ситуация, когда специалисты двух областей (Web и базы данных) одновременно неудовлетворены сложившейся в Internet ситуацией, но не могут произвести какие-либо революционные изменения. Необходим компромисс между простотой и доступностью применяемой в настоящее время Web-технологии и сложностью, функциональностью и эффективностью технологии баз данных. Имеются некоторые основания надеяться на то, что такой компромисс удастся выработать на основе языка XML (eXtensible Markup Language).
Как следует из полного названия языка, XML, как и HTML, является языком разметки документов. Разметка текста в обоих производится путем расстановки в тексте специальных языковых конструкций - тегов. Но если набор допустимых тегов в языке HTML предопределен (существуют классы тегов для форматирования текста, для установки гипертекстовых ссылок, для вставки графики и т.п.) и должен быть однозначно понимаем любым Web-клиентом (браузером), то в XML допускается определение тегов. Если позволить себе неформальный стиль изложения, то раздел определения тегов напоминает раздел определения схемы базы данных, т.е. позволяет определить структуру документа.
Почему приходится выбирать такие осторожные формулировки? Главным образом потому, что семантика определяемых пользователями тегов остается скрытой от поддерживающей XML программной системы. Например, с помощью набора тегов можно структуризовать документ как набор таблиц, но этот факт станет известным Web-клиенту только после его соответствующей доработки. С этой точки зрения XML является компромиссом для сообщества Internet, где ранее считалось обязательным полное понимание любого Web-документа любым Web-браузером. В настоящее время в мировом сообществе проводится большая работа по созданию библиотек определений тегов (DTD - Document Type Declaration) для использования в конкретных прикладных областях (химии, астрономии, математике и т.д.).
Но этот подход не решает общую проблему интегрированного использования накопленной в Internet информации. Основная проблема состоит в том, что хотя в смысле традиционных структурированных баз данных информация, содержащаяся в файлах DTD, является аналогом метаданных (данных, описывающих структуру и другие свойства хранимых данных), коренное отличие XML от языков определения баз данных заключается в слишком большой свободе. В общем случае универсальная система обработки данных при наличии DTD для XML-документа не сможет точно понять даже саму структуру DTD.
В связи с этим очень важными являются проект консорциума Object Management Group (OMG, www.omg.org) XML Metadata Interchange (XMI), представляющий набор определений тегов для описания в стандартных терминах структуру метаданных, и проект группы компаний (включающей IBM, Oracle и Unisys) Common Warehouse Matadata Interchange (CWMI), содержащий подмножество определений XMI для поддержки определений метаданных хранилищей данных.
Если эти стандарты будут приняты компьютерной индустрией (а имеются все основания на это рассчитывать), то в условиях ограниченной свободы использования XML мы получим существенно большие возможности разумного применения информации. Кроме того, только после согласования стандартов на представление метаданных можно будет серьезно надеяться на появление языков запросов в распределенной среде XML-документов (именно структурных, а не контекстных запросов). Сегодня имеется несколько предложений таких языков, но в условиях полной свободы использования, по моему мнению, они не могут иметь какого-либо практического значения.
Возрастающее распространение языка XML открывает новые перспективы как для исследователей, так и для индустрии. По всей видимости, ближайшие годы будут весьма интересны.