История развития программного обеспечения

XML на рубеже веков

Введение

Поводом для написания этой статьи явились конференция и выставка "XML Europe 2000", проведенные в конгресс-центре Парижа Graphic Communications Association с 12 по 16 июня и собравшие более полутора тысяч заинтересованных представителей практически всех отраслей промышленности и образования со всего мира – как менеджеров и директоров компаний и их подразделений, так и инженеров и консультантов.

Кроме пленарных докладов, на конференции проходило несколько тематических секций, одновременно по пять-шесть в день. Среди них:

  • XML: что это такое и зачем используется?
  • Стандарты
  • Электронная коммерция
  • Издательское дело
  • XML-схема
  • Языки запросов
  • Использование
  • Технологии
  • Тематические карты
  • WAP и WML
  • Электронная печать
  • Построение решений
  • Реализации продуктов
  • Графика
  • Трансформации
  • XML в финансовой индустрии
  • XML в здравоохранении и несколько других.

В процессе проведения конференции стало очевидно, что XML как технология достигла своей "зрелости". Если на конференции 1998 года данная технология только освещалась и намечались дальнейшие перспективы ее развития, в 1999 говорилось о первых промышленных внедрениях и реализации пилотных проектов, то в этом году – опыт промышленной эксплуатации и проекты уже второго поколения систем, в той или иной степени использующих технологию XML.

За эти годы несколько основополагающих стандартов в области XML (собственно XML, XSLT, SVG, XSchema, XLink и XPointer, RDF и другие) достигли относительно стабильного состояния, что безусловно способствовало быстрому развитию программных средств для работы с XML-данными. Выставочная часть конференции – яркое тому подтверждение: на подъем технологии программная индустрия откликается огромным числом продуктов и услуг, направленных как на разработчиков и интеграторов решений, так и на конечных пользователей.

Об участниках и докладах

Интересен состав участников конференции, как докладчиков, так и слушателей, большинство из которых являются представителями индустрии. Доклады включали: обзоры стандартов и предложений, введения в конкретные технологии (WebCGM, SVG, XLink и другие), технологии программирования в приложении к XML-технологиям. Но большая часть докладчиков рассматривали конкретные реализации программ и систем, использующих тот или иной аспект XML-технологий. Многие из этих систем находятся в реальной эксплуатации и доступны пользователям через Internet. Миллионы людей уже пользуются XML-продуктами, зачастую даже не догадываясь об этом. Популярная программа RealAudio player, например, получает и интерпретирует мультимедийные данные, кодированные на XML-языке SMIL.

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

Об электронных документах

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

Такое разделение имеет далеко идущие последствия, в частности, оно позволяет:

  • Выделять структуру документов. Автор может оперировать логическими частями документа в удобном для него виде, и при помощи программного обеспечения – проверять соответствие структуры документа требуемой.
  • Готовить документы, не зависящие от платформы и используемого программного обеспечения. Часто этот аспект недооценивается, однако он весьма важен, если предполагается длительное хранение документов: только представьте себе, как легко будет прочесть архив файлов в формате Microsoft Word 97 лет через пятнадцать? Или как уже сегодня прочесть файлы редактора Sprint или ChiWriter, бывших популярными еще лет семь назад?
  • Готовить один экземпляр документа для публикации на разнообразных носителях и с различным способом представления. Примерами могут служить:
    • файлы формата PDF для печати на бумаге;
    • файлы PDF для просмотра на экране (он обычно отличается от предыдущего варианта выбором шрифта, размером страницы, гиперссылками, интерактивностью);
    • файлы WML для доставки информации на мобильные устройства;
    • файлы HTML для размещения на WWW, возможно с дополнительной функциональностью, интерактивными возможностями, с различными вариантами оформления для разных WWW-навигаторов и пожеланий пользователей;
    • печатное издание в виде книги, буклета, листовки;
    • голосовой вывод для незрячих пользователей или для использования в автомобилях.
  • Кодировать максимально доступное в момент подготовки документов количество информации. Различная метаинформация – библиография, статус различных частей документа, права доступа к ним, правила активизации мультимедийного содержания и многое другое – хранится в том же самом файле, что и основное содержимое, и доступна для обработки теми же программными средствами.
  • Кодировать сколь угодно сложные взаимосвязи и гиперссылки между частями документа и между различными документами, не испытывая при этом ограничений вроде только однонаправленных связей между двумя точками, как это принято сейчас на WWW.
  • Программно обрабатывать тексты документов, поскольку их содержимое размечено формальным образом.

Подготовка электронных документов уже давно является необходимым звеном технологической цепочки во многих отраслях промышленности. Пионерами в использовании SGML для этих целей были машиностроительные и авиакосмические фирмы. Объем документации, сопровождающей их продукцию, чрезвычайно велик. Кроме того, сама документация меняется довольно часто. В этих условиях выпуск и поддержка жизненного цикла обычной бумажной документации становится очень дорогостоящим и медленным процессом. На конференции выступали с докладами представители таких известных компаний, как Boeing, McDonnel-Douglas, Siemens, Ericsson, и множества других. Интересные цифры были названы в выступлении инженеров из фирмы Cessna, выпускающей большую часть современных коммерческих реактивных самолетов. Объем документации на их продукцию составляет примерно 230 тысяч страниц в год. Готовится она в электронном виде отделом из шестидесяти человек. Выходным форматом являются компакт-диски с технической (конструкторской, ремонтной и эксплуатационной) и полетной документацией.

Об интеграционном подходе с использованием XML

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

Обмен данными и событиями происходит в виде сообщений. Каждое сообщение является экземпляром XML документа. Интерфейсы обычно формализуются в виде так называемых схем, являющихся сочетанием описаний типов документов (DTD) с описанием типов данных и накладываемых на элементы данных ограничений. В сочетании со стандартизированным протоколом передачи таких сообщений, в качестве которого часто используется популярный протокол HTTP, такие описания позволяют обмениваться данными между программами, причем, в отличие от существующих методов, требующих достаточно сложного низкоуровневого программирования, использование XML не накладывает вообще никаких ограничений ни на функционирование программ, ни на выбор языка или технологий программирования. Особенно это удобно, когда взаимодействовать приходится программным комплексам, принадлежащим различным организациям.

Одной из важных задач на этом пути становится выработка вышеупомянутых описаний, диктующих правила обмена данными между приложениями. Часто для этого формируется консорциум, формулирующий стандарты обмена по определенной тематике, обычно в рамках одной вертикальной индустрии. Уже выпущены или находятся в работе спецификации, охватывающие следующие области: бухгалтерию, рекламу, строительство и архитектуру, астрономию и исследования космоса, автомобильную и авиакосмическую промышленность, банковское дело, библиографию и каталогизацию, связь, компьютерную графику, content syndication, отношения с заказчиками, сети и распределенное управление, экономику, образование, электронную коммерцию, обмен электронными данными (EDI), энергетику, информационные порталы, управление предприятием, финансовые рынки, пищевую промышленность, географию, здравоохранение, управление кадрами (HR), автоматизацию производства, страхование, юриспруденцию, музыку, новости, издательское дело, недвижимость, научные дисциплины, программное обеспечение, управление производственными поставками, языковые переводы, отдых и путешествия, синтез голоса, прогнозы погоды, WWW-приложения, и многие, многие другие. Этот впечатляющий список охватывает тематику, по которой работают известные отраслевые комитеты. Задачей каждого из них является выработка словаря для обмена определенной информацией между ПО, обрабатывающим данные в рамках какой-либо отрасли.

Наличие такого словаря, поддерживаемого разработчиками ПО, позволяет очень динамично строить и развивать взаимодействие как между компонентами информационной системы организации, так и между различными сотрудничающими организациями. Кроме того, в отличие от классических систем на базе RPC, CORBA и т.п., данные оказываются не зависящими ни от приложений, их производящих и потребляющих, ни от транспортных протоколов, которыми они передаются. Более того, они хранятся или транспортируются в текстовом формате, что дает возможность читать их человеку и дополнительно упрощает разработку и внесение модификаций во взаимодействующее ПО.

Порталы и интеграция старых приложений

Такой подход находит свое применение в построении различного рода открытых и, в особенности, корпоративных Интернет-порталов. Выработка корпоративного словаря для обмена данными (или принятие в качестве такового существующих или создаваемых индустриальных словарей) становится основой для построения интегрирующей платформы. Программное обеспечение такой платформы получает в свое распоряжение все возможности, связанные с XML-технологией: описание данных и метаданных в синтаксисе XML, связывание информации при помощи XPointer, XLink и XPath, описание метаинформации средствами RDF.

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

Далее рассмотрим некоторые инициативы и выработанные в их рамках стандарты из приведенного списка.

NewsML и PRISM

Инициатива по разработке языка передачи новостей NewsML была вызвана к жизни проблемой, стоящей перед поставщиками и потребителями новостей. Перед поставщиками, например, информационным агентством, стоит задача постоянного вещания на множество потребителей, использующих разные носители: одним новости необходимы в текстовом формате, другим – в звуковом или видео, третьим – в каких-то их сочетаниях. Кроме собственно информации, каждая единица новостей должна сопровождаться метаинформацией: заголовок, источник, время, место, разнообразные ограничения на распространение, тема, степень важности и многое другое. Перед получателями, например, средством массовой информации, стоит смежная задача: объединение потоков новостей от различных источников, автоматизированная их сортировка, хранение, поиск и обработка, выборка нужной информации в нужном формате.

Такие возможности и предоставляет разработанный язык NewsML. Являясь приложением XML, он позволяет максимально полно и точно описать передаваемые новостные данные. Разработанный и поддержанный ведущими информационными агентствами мира и средствами массовой информации, он уже активно используется для вещания. Например, агентство Reuters с декабря 1999 года передает свои новости в виде NewsML файлов.

ebXML

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

Существует в какой-то степени конкурирующий с проектом ebXML консорциум BizTalk, организованный компанией Microsoft и поддержанный многими промышленными фирмами. В его рамках Microsoft выпустила BizTalk Framework, обозначающий предварительную инфраструктуру реализации электронной коммерции.

О применении XML на WWW

Как правило, когда речь заходит о XML в контексте WWW, имеется в виду передача страниц на том или ином языке с синтаксисом XML, вместо используемого ныне HTML. Это довольно очевидное применение XML, для которого он, в известной степени, и был задуман. С появлением Microsoft IE 5 и бета-версий Netscape 6 стало возможно доставлять XML-страницы на десктоп пользователю. В сочетании с механизмами стилей (стандартов CSS1 и XSL) это позволяет, с одной стороны, выражать содержимое страниц в "естественных" терминах вместо жестких ограничений HTML, а с другой – легко варьировать стилистику отображения материала без изменений собственно WWW-страниц. Но возможности XML далеко не ограничиваются расширениями HTML. XML-инфраструктура включает в себя и другие возможности, которых так сильно не хватает сегодняшним системам, построенным вокруг WWW.

Связывание информации

В инфраструктуру XML входят две спецификации, относящиеся к формализации связей между информационными фрагментами: XPointer и XLink. XPointer задает синтаксис задания сложных адресов внутри XML-документов, тогда как XLink описывает семантику отношений между участвующими в связи документами. В отличие от общеизвестных гиперссылок в HTML, связи, задаваемые при помощи XLink/XPointer, отличаются, в частности:

  • возможностью задавать двунаправленные связи;
  • возможностью помещать спецификации связей вне документов, которые они связывают. Это особенно важно, когда необходимо формировать ссылки на документы, запись в которые запрещена (чужие WWW-страницы) или невозможна (данные на CD-ROM);
  • возможностью специфицировать точки отправления и назначения связи в произвольных терминах структуры документов;
  • возможностью задавать в качестве концов связи не конкретных точек в документах, а диапазонов структурных элементов (например, "см. разделы 1-3").

Пространства имен

Рекомендация по пространствам имен позволяет дизайнеру использовать на одной странице элементы XML, носящие одинаковые имена, но относящиеся к различным прикладным словарям. Классическим примером является элемент "<set>", который в MathML означает математическое множество, тогда как в SVG – операцию присваивания. В том случае, когда в одном документе встречаются и математика (MathML), и графика (SVG), возникает конфликт имен, который и разрешается при помощи разнесения имен по разным адресным пространствам. Каждое пространство специфицируется при помощи глобально уникального адреса (URL).

Таким образом, в рамках одного XML-документа возможно произвольно смешивать словари, необходимые для формирования конкретного предметного языка.

Метаданные и поиск

Неоценимым следствием от внедрения XML в кодирование прикладных данных или использование его для формирования текстовых документов является появление технологии для фиксации любого необходимого количества метаинформации. Это могут быть не только известные по HTML ключевые слова, но и разнообразные "данные о данных": произвольные, зависящие только от прикладной области, свойства как документов, так и их компонентов, вплоть до фрагментов текста. Формальное кодирование такой информации открывает возможность более "интеллектуальной" обработки массивов данных.

XML и беспроводные коммуникации

Достаточно было обвести взглядом слушающих доклады конференции, чтобы убедиться, что практически каждый второй делал записи не на бумаге, а на различных блокнотных компьютерах. На фоне многочисленных карманных Palm, Psion, Cassiopea обычные ноутбуки на столах выглядели неприлично громоздкими, тяжелыми и неудобными. Широкое распространение карманных компьютеров предвещает, по мнению многих, настоящую революцию в информационных технологиях. Заметим, однако, что WWW-навигаторы на этих устройствах довольно ограничены карманными ресурсами и относительно мало совместимы с "классическими" NN и IE.

Одно из заметных отличий Европы от США – почти повсеместное доминирование стандарта мобильной связи GSM и все более широкое распространение технологии WAP. С его развитием создается громадная сеть подключенных к Интернету и WWW устройств, также мало совместимых со старыми навигаторами. Эта тенденция заметна уже и в нашей стране.

По прогнозам Gartner Group, к 2005 году более четырех пятых подключенных к Интернету клиентских систем будут не персональными компьютерами, а совершенно другими устройствами – телефонами, карманными и автомобильными компьютерами, и даже холодильниками и микроволновыми печками.

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

К тому моменту, когда WWW получил широкую популярность, большинство пользователей работало с Netscape Navigator. Позже его догнал Internet Explorer. В стремлении максимально полно использовать возможности клиентов, разработчикам WWW-серверов пришлось зачастую делать по два варианта страниц для каждого из популярных навигаторов. Сейчас IE занимает около 80% рынка, и есть тенденция появления серверов, полноценно работающих только с IE. Ситуация, однако, развивается довольно быстро, и скоро разработчикам придется адаптироваться к появлению множества других средств отображения их серверов: уже довольно часто можно встретить варианты страниц, сделанных для системы AvantGo, обеспечивающей удобный доступ к информации в режиме off-line, или для WAP-навигаторов.

Использование XML позволяет поставщику информации не бояться того, что с развитием технологии его документы устареют, или их потребуется постоянно преобразовывать в очередной "формат дня".

Графика и XML

Современное состояние передачи графики средствами WWW оставляет удручающее впечатление для всякого пользователя, сколько-нибудь знакомого с состоянием компьютерной графики вообще. Многочисленные ограничения включают:

  • отсутствие общеупотребительного векторного формата и, как следствие, неудовлетворительное качество изображения; ограниченные возможности масштабирования;
  • отсутствие управления цветом, шрифтами, преобразованием координат;
  • невозможность работы с текстом в графике (поиск и индексирование, копирование и замена);
  • отсутствие возможности связывания графики с другими данными (например, гиперссылок внутрь графического изображения).

Одно из интересных применений XML в области передачи графики – спецификация SVG (Scalable Vector Graphics), предназначенная для разрешения множества существующих проблем с графической информацией. Ее характерные свойства включают:

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

SVG имеет статус свободно распространяемой рекомендации W3C. В настоящее время уже доступны программные средства для создания, редактирования и просмотра данных в формате SVG, а также набор тестов для верификации соответствия данных и продуктов выпущенной рекомендации.

О выставке

В выставке принимали участие около 60 компаний, которые представили свои решения, продукты и услуги. Некоторые из них давно известны как поставщики решений в области SGML, задолго до появления на свет XML: SoftQuad, Adobe, Arbortext, Advent 3B2, Omnimark Technologies и другие.

Как обычно, демонстрировались новые версии флагманских продуктов компаний: Компания SoftQuad показывала XMetaL 2.0, Adobe демонстрировала новый Framemaker+SGML, на стенде Omnimark Technologies раздавались CD-ROM с Omnimark5 для Windows и Linux, Micrografx показывала свои новые средства создания технических иллюстраций.

Интересно появление большого количества продуктов, ориентированных не только на разработчиков ПО или авторов XML-документов, но и на создание развитых систем с использованием XML: порталов, систем электронной коммерции, систем цифровой публикации. Фирма Enigma демонстрировала систему автоматизированного построения цепочек "поставщик-заказчик". На стенде компании Kinecta работала система Interact – платформа для построения систем агрегирования информационных потоков. Корпорация eXcelon показывала business-to-business сервер, технологическое ядро системы электронной торговли. Выставка наглядно иллюстрировала прогнозы, согласно которым рынок корпоративного и межкорпоративного ПО будет испытывать быстрый и непрерывный рост в ближайшие пять лет. AMR Research, например, прогнозирует объем роста порядка 60% ежегодно.

Статья опубликована в журнале Jet Info, №7, 2000 г.